Ankündigung

Einklappen
Keine Ankündigung bisher.

Session probleme

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PrincePitt
    hat ein Thema erstellt Session probleme.

    Session probleme

    Hallo Leute ich habe ein problem mit der Session ich möchte nicht die seiten doppelt anlegen sondern das mit if und else andere dinge angezeigt werden
    if sollte so z.b. die profil daten im kopf anzeigen und else sollte dann das login formular enthalten da ich keine seite brauch die erst angezeigt wirden wenn man sich einlogt finde ich das als quatsch. ich schreibe euch mal den code vielleicht könnt ihr mir weiter helfen und es vielleicht sogar passend schreiben. Ich habe wieder eine ganze menge rumprobiert und umgeschrieben also könnten fehler auftauchen die ich vergessen habe zu tauschen.
    Wenn noch etwas fehlt schreibt es ruhig ich poste es dann dazu.

    überings bekomme ich diesen Fehlercode:
    Parse error: syntax error, unexpected end of file in C:\xampp\htdocs\Zelios\index.php on line 118

    PHP-Code:
    <?php session_start ();
    if (
    $_SESSION["Login"] != "YES") {
          echo 
    "Hallo $name";
        }
    else{
        if(!isset(
    $_POST['submit'])) { ?>
    <?php 
    require("connect.inc.php");?>
    <div style="background-color: #BCB7B3;"><form action="<?php $PHP_SELF ?>" method="post">
     Benutzername:<input type="text" name="username" size="20" class="input"/>
     Passwort:<input type="password" name="password" size="20" class="input"/>
     <input type="submit" name="submit" value="Anmelden" class="button">
     <a href="registrierung.php">Registrieren?</a>
    </form></div>
     <?php
     
    }elseif(!$_POST['username'] || $_POST['username'] == "") {
     echo 
    '<p align="center">Einen Benutzernamen brauchen wir schon ;-)<br /><br />
     <a href="index.php">Zurück</a></p>'
    ;
     }elseif(!
    $_POST['password'] || $_POST['password'] == "") {
     echo 
    '<form action="index.php" method="post">';
     echo 
    '<p align="center">Ein Passwort brauchen wir schon ;-)<br /><br />';
     echo 
    '<input type="hidden" name="username" value="'.$_POST['username'].'">';
     echo 
    '<input type="submit" name="zurueck" value="Zurück">';
     echo 
    '</p>';
     echo 
    '</form>';
     }else{
     
    $password md5($_POST['password']);
     
    $query = @mysql_query("SELECT Username, Userpasswort FROM login WHERE Username = '".mysql_real_escape_string($_POST['username'])."'");
     
    $result = @mysql_fetch_array($query);
     if(
    $password != $result['Userpasswort']){
     
    $_SESSION["Login"] = "NO";
     echo 
    '<form action="index.php" method="post">';
     echo 
    '<p align="center" style="background-color: #BCB7B3;">Der Benutzername oder das Passwort ist nicht richtig!<br /><br />';
     echo 
    '<input type="hidden" name="username" value="'.$_POST['username'].'">';
     echo 
    '<input type="submit" name="zurueck" value="Zurück"></p>';
     echo 
    '</form>';
     die;
     }else{
        
    $_SESSION["Login"] = "YES";

    }
     }
     
    ?>
    <?php 
    include("head.inc.php");?>





    <!DOCTYPE html>
    <html>

    <head>

        <title>test</title>
        <meta charset="UTF-8">
        <meta name="description" content=""/>
        <meta name="author" content=""/>
        <meta name="keywords" content=""/>
        <meta name="generator" content="Webocton - Scriptly (www.scriptly.de)"/>
        <link href="style.css" type="text/css" rel="stylesheet"/>
        <link rel="stylesheet" href="styles/KopfbisFuß.css" type="text/css" />
        <link rel="stylesheet" href="styles/Werbung.css" type="text/css" />
        <link rel="stylesheet" href="styles/menü.css" type="text/css" />
        <style>
                body {  margin: 0;
                background-image: url(images/metallplatte.jpg);
    width: 1920px;
    height: 1200px;

                        width: auto;
                        height: auto;}
                    a:link {
                    text-decoration:none;

        </style>


    </head>

    <body>

    <div id="Werbung_Mitte" align="center"><img src="images/imgad.jpg" width="728" height="90" alt="" /></div>
    <div id="Werbung_Links"><img src="images/imgad (1).jpg" width="160" height="600" alt="" /></div>
    <div id="Werbung_Rechts"><img src="images/imgad (1).jpg" width="160" height="600" alt="" /></div>
    <table id="menue" align="center">
        <tr>
            <td rowspan="2" id="a"><a href="news.php">News</a></td>
            <td id="b">Games</td>
            <td id="d">Let`s Player</td>

       </tr>
       <tr>
            <td id="c">Events</td>
            <td id="e">Forum</td>
       </tr>
    </table>
    <table align="center" id="menue2">
        <tr>
            <td id="j">Rangliste</td>
            <td rowspan="2" colspan="2" id="h">Archiv</td>
            <td id="f">f</td>
        </tr>
        <tr>
            <td id="g">Stadt Community</td>
            <td id="i">i</td>
        </tr>
        <tr>
        </tr>
    </table>
    </div>
    <div class="clear"></div>




    <?php include("foot.inc.php"); ?>
    </body>
    </html>

  • tkausl
    antwortet
    PHP-Code:
    $_SESSION["Login"] != "true" 
    "true" ist kein boolean sondern ein String.
    http://www.php.de/php-einsteiger/489...rundlagen.html

    Einen Kommentar schreiben:


  • PrincePitt
    antwortet
    Ich habe dann mal schon einige Sachen umgesetzt die ihr geschrieben habt
    was mich jetzt aber stört ist das beim Logout das Login Formular nicht mehr erscheint so wie es eigentlich sollte.
    Mir scheint es so als wenn ich dauerhaft eingeloggt bin und was jetzt noch dazu kommt ist das
    die "($_SESSION["Login"] != "true");" nicht benannt ist was mach ich da falsch?

    PHP-Code:
    <?php session_start ();
        if (
    $_SESSION["Login"] != "true") {

        }else
    {
        if(!isset(
    $_POST['submit'])) { ?>
    <?php 
    require("connect.inc.php");?>

    <div style="background-color: #BCB7B3;">
        <form action="index.php" method="post">
        Benutzername:<input type="text" name="username" size="20" class="input"/>
        Passwort:<input type="password" name="password" size="20" class="input"/>
        <input type="submit" name="submit" value="Anmelden" class="button">
        <a href="registrierung.php">Registrieren?</a>
        </form>
    </div>

     <?php
         
    }elseif(!$_POST['username'] || $_POST['username'] == "") {
            echo 
    '<p align="center">Einen Benutzernamen brauchen wir schon ;-)<br /><br />
                  <a href="index.php">Zurück</a></p>'
    ;
        }elseif(!
    $_POST['password'] || $_POST['password'] == "") {
            echo 
    '<form action="index.php" method="post">';
            echo 
    '<p align="center">Ein Passwort brauchen wir schon ;-)<br /><br />';
            echo 
    '<input type="hidden" name="username" value="'.$_POST['username'].'">';
            echo 
    '<input type="submit" name="zurueck" value="Zurück">';
            echo 
    '</p>';
            echo 
    '</form>';
        }else{
     
    $password md5($_POST['password']);
     
    $query   =    mysqli_query("SELECT Username, Userpasswort FROM login WHERE Username = '".mysqli_real_escape_string($_POST['username'])."'");
     
    $result =   mysqli_fetch_array($query);
     
    $nick $_POST['username'];

         if(
    $password != $result['Userpasswort']){
            
    $_SESSION["Login"] = "false";
            echo 
    '<form action="index.php" method="post">';
            echo 
    '<p align="center" style="background-color: #BCB7B3;">Der Benutzername oder das Passwort ist nicht richtig!<br /><br />';
            echo 
    '<input type="hidden" name="username" value="'.$_POST['username'].'">';
            echo 
    '<input type="submit" name="zurueck" value="Zurück"></p>';
            echo 
    '</form>';
            die;
        }else{
            
    $_SESSION["Login"] = "true";
            
    $_SESSION['username'] = $nick;
          }
        }
      }
     
    ?>

    <!DOCTYPE html>
    <html>

    <head>

        <title>Zelios Gaming Community</title>
        <meta charset="UTF-8">
        <meta name="description" content=""/>
        <meta name="author" content=""/>
        <meta name="keywords" content=""/>
        <meta name="generator" content="Webocton - Scriptly (www.scriptly.de)"/>
        <link href="style.css" type="text/css" rel="stylesheet"/>
        <link rel="stylesheet" href="styles/KopfbisFuß.css" type="text/css" />
        <link rel="stylesheet" href="styles/Werbung.css" type="text/css" />
        <link rel="stylesheet" href="styles/menü.css" type="text/css" />
        <style>
                body {  margin: 0;
                background-image: url(images/metallplatte.jpg);
                width: 1920px;
                height: 1200px;

                width: auto;
                height: auto;}
                a:link {
                text-decoration:none;

        </style>


    </head>
    <header>
    <?php  if ($_SESSION["Login"] != "true");{ ?>
          <div style="background-color: #BCB7B3;"></div>
    <?php
          
    echo '<a href="logout.php">Logout</a>';

     } 
    ?>





    <?php include("head.inc.php");?>
    </header>

    <body>

    <div id="Werbung_Mitte" align="center"><img src="images/imgad.jpg" width="728" height="90" alt="" /></div>
    <div id="Werbung_Links"><img src="images/imgad (1).jpg" width="160" height="600" alt="" /></div>
    <div id="Werbung_Rechts"><img src="images/imgad (1).jpg" width="160" height="600" alt="" /></div>
    <table id="menue" align="center">
        <tr>
            <td rowspan="2" id="a"><a href="news.php">News</a></td>
            <td id="b">Games</td>
            <td id="d">Let`s Player</td>

       </tr>
       <tr>
            <td id="c">Events</td>
            <td id="e">Forum</td>
       </tr>
    </table>
    <table align="center" id="menue2">
        <tr>
            <td id="j">Rangliste</td>
            <td rowspan="2" colspan="2" id="h">Archiv</td>
            <td id="f">f</td>
        </tr>
        <tr>
            <td id="g">Stadt Community</td>
            <td id="i">i</td>
        </tr>
        <tr>
        </tr>
    </table>
    </div>
    <div class="clear"></div>




    <?php include("foot.inc.php"); ?>
    </body>
    </html>

    Einen Kommentar schreiben:


  • hausl
    antwortet
    aber wie sieht der Rest vom Code aus ist der i.o.?
    Was mir weiter noch aufgefallen ist:

    PHP-Code:
    $_SESSION["Login"] = "YES"
    ...
    $_SESSION["Login"] = "NO"
    Dafür kannst doch boolean verwenden -> true / false

    PHP-Code:
    <div style="background-color: #BCB7B3;"><form action="<?php $PHP_SELF ?>" method="post">
    PHP Self ist böse: http://blog.oncode.info/2008/05/07/p...scripting-xss/

    PHP-Code:
    $password md5($_POST['password']); 
    md5() ist nicht mehr sicher da tech. überholt, siehe hier Punkt 2: http://php.net/manual/de/faq.passwords.php

    Einen Kommentar schreiben:


  • Ma27
    antwortet
    mysql* ist veraltet und wird entfernt, nimm am besten für die Datenbankkommunikation PDO (http://php.net/manual/de/book.pdo.php)

    $_SESSION["Login"] = "NO";
    brauchste imo nicht

    Nimm außerdem den @-Operator raus und kümmere ich richtig um die Fehlerbehandlung

    Das wärs bis jz
    LG

    Einen Kommentar schreiben:


  • PrincePitt
    antwortet
    Ok danke für den tip aber wie sieht der Rest vom Code aus ist der i.o.?

    Einen Kommentar schreiben:


  • Ma27
    antwortet
    Also parse error werden dir von jeder guten IDE angezeigt.

    Und halte dich an die PSR Standards (http://www.php-fig.org/) oder sonst irgendeinen halbwegs sinn machenden Standard, dann fällt sowas viel leichter auf

    LG

    Einen Kommentar schreiben:


  • uha
    antwortet
    Ein Parse-Error ist aber kein Session-Error, oder?

    Ein Tipp: rücke den Quellcode mal ordentlich ein, dann fällt dir der Fehler alleine auf.

    Einen Kommentar schreiben:

Lädt...
X