SESSION ID wird nicht übergeben

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

  • SESSION ID wird nicht übergeben

    Hallo

    Ich bin gerade dabei ein Loginscript zu schreiben und hab folgendes hier bisher:

    PHP-Code:
    <?php
    //index.php
        
    error_reporting(E_ALL);
        include 
    "inc/config.php"// die Konfigurationsdateien lesen.

        
    @mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS) OR die(mysql_error());
        
    mysql_select_db(MYSQL_DB) OR die(mysql_error());

        
    // Session starten wenn ?section=admin geöffnet wurde
        
    if(isset($_GET['section']) AND ("admin" == $_GET['section'])) {
            
    session_start();
            if(!isset(
    $_SESSION['IP'])) {
                
    $_SESSION['IP'] = $_SERVER['REMOTE_ADDR'];
            }
            if(
    $_SESSION['IP'] != $_SERVER['REMOTE_ADDR']) {
                echo 
    "<p class=\"error\">\n";
                echo 
    "    Sie dürfen nicht die Session von einem\n";
                echo 
    "    anderen user Benutzten. Bitte benutzen sie\n";
                echo 
    "    folgenden Link um zur Homepage zu gelangen.\n";
                echo 
    "    <a href=\"/\">Zurück zur Homepage</a>\n";
                echo 
    "</p>\n";
                die(); 
    // Aus Sicherheitsgründen die Abarbeitung sofort beenden
            
    }
        }

        if(
    get_magic_quotes_gpc()) {
            
    array_stripslashes($_GET);
            
    array_stripslashes($_POST);
            
    array_stripslashes($_COOKIE);
        }

        echo 
    "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n";
        echo 
    "         \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n";
        echo 
    "<html>\n";
        echo 
    "    <head>\n";
        echo 
    "        <title>Meine Seite</title>\n";
        echo 
    "        <link rel=\"stylesheet\" type=\"text/css\" href=\"page.css\" />\n";
        echo 
    "        <meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\" />\n";
        echo 
    "    </head>\n";
        echo 
    "    <body>\n";

        echo 
    "        <div id=\"root\">\n"// ganz oberer Div-Holder
        
    echo "            <div id=\"banner\">\n"// banner
        
    include "banner.php";
        echo 
    "            </div>\n";
        echo 
    "            <div id=\"links\">\n"// linkes Menu
        
    include "menu.php";
        echo 
    "            </div>\n";
        echo 
    "            <div id=\"mitte\">\n"// In der Mitte der Inhalt
        
    include "inhalt.php"
        echo 
    "            </div>\n";
        echo 
    "            <br style=\"clear:both;\" />\n"// css-float beenden
        
    echo "       </div>\n";

        echo 
    "    </body>\n";
        echo 
    "</html>\n";
    ?>




    <?php
        
    // die admin.php
        
    if(isset($_GET['action']) AND ("logout" == $_GET['action'])) {
            
    session_destroy();
            echo 
    "<p>\n";
            echo 
    "    Sie haben sich ausgeloggt. Um wieder in den Adminbereich\n";
            echo 
    "    zu kommen müssen sie sich wieder Einloggen\n";
            echo 
    "</p>\n";
        } else {
            if(isset(
    $_POST['UserID']) AND '0' == $_POST['UserID']) {
                echo 
    "<p>\n";
                echo 
    "    Bitte wählen sie einen Benutzernamen aus.\n";
                echo 
    "</p>\n";
            } else {
                if(isset(
    $_POST['UserID'], $_POST['Password']) AND
                   
    login_right(addslashes($_POST['UserID']),
                               
    addslashes($_POST['Password']))) {
                    
    $_SESSION['ID'] = $_POST['UserID'];
                }

                if(isset(
    $_SESSION['ID'])) {
                    echo 
    "<p>\n";
                    echo 
    "Willkommen im Adminbereich <br />\n";
                    
    // Die Session-ID nicht vergessen
                    
    echo "    <a href=\"index.php?section=admin&amp;".SID."\">Repeat</a>\n";
                    echo 
    "    <a href=\"index.php?section=admin&amp;action=logout&amp;".SID."\">Ausloggen</a>\n";
                    echo 
    "</p>\n";
                } else {
                    if(isset(
    $_POST['submit'])) {
                         
    // Der Submit-Button wurde gedrückt
                         // aber der Login ist falsch. Deshalb
                         // erstellen wir eine Fehlermeldung
                         
    echo "<p>\n";
                         echo 
    "    Ungültiges Password.\n";
                         echo 
    "</p>\n";
                    }
                    echo 
    "<form action=\"index.php?section=admin\" method=\"post\" class=\"formular\">\n";
                    echo 
    "    <p>\n";
                    echo 
    "        Adminbereich\n";
                    echo 
    "    </p>\n";
                    echo 
    "    <ol>\n";
                    echo 
    "        <li>\n";
                    echo 
    "            <label for=\"name\">Name</label>\n";
                    
    $sql "SELECT
                                ID,
                                Name
                            FROM
                                users
                            ORDER BY
                                Name ASC;"
    ;
                    
    $result mysql_query($sql) OR die(mysql_error());
                    echo 
    "                <select size=\"1\" name=\"UserID\" id=\"name\">\n";
                    echo 
    "                    <option value=\"0\" selected=\"selected\">Bitte wählen</option>\n";
                    while(
    $row mysql_fetch_assoc($result)) {
                        echo 
    "<option value=\"".$row['ID']."\">".$row['Name']."</option>\n";
                    }
                    echo 
    "                </select>\n";
                    echo 
    "        </li>\n";
                    echo 
    "        <li>\n";
                    echo 
    "            <label for=\"password\">Password</label>\n";
                    echo 
    "            <input type=\"password\" name=\"Password\" id=\"password\" />\n";
                    echo 
    "        </li>\n";
                    echo 
    "        <li>\n";
                    echo 
    "            <input type=\"submit\" name=\"submit\" value=\"Speichern\" />\n";
                    echo 
    "            <input type=\"reset\" name=\"submit\" value=\"Zurücksetzen\" />\n";
                    echo 
    "        </li>\n";
                    echo 
    "    </ol>\n";
                    echo 
    "</form>\n";
                }
            }
        }
    ?>
    Eigentlich sollte ja beim aufrufen von index.php?section=admin die Session gestartet werden, spätestens beim Eingeben der Userdaten ist sie aber nicht mehr da. Ich weiss nicht wieso sie nicht übergeben wird. HIer könnt ihr es testen: http://uge.anime-host.de/test%20test...?section=admin
    Nimmt einfahc den User "Admin" Passwort = "admin"

    MfG

  • #2
    also bei mir funktioniert das,
    ich kann mich auf deiner seite einloggen, fenster schließen & öffnen und bin eingeloggt ..

    akzeptiert dein browser evtl keine cookies ?
    mfg,
    [color=#0080c0]Coragon[/color]

    Kommentar


    • #3
      Ja das einloggen klappt, aber schau jetzt nochmal drauf ich hab den Link "Eigenen Account bearbeiten" hinzugefügt. Der ladet jetzt ncihts in die einzelnen Felder hinein (was er tun sollte) weil die SessID nicht übergeben wird

      Kommentar


      • #4
        Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/www/web39/html/test test/team-uge/admin/admin_self.php on line 45
        irgendwo hast du ein mysql_query() ohne mysql_error() oder du bekommst keine daten.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Eben, dass wird es wohl sein das ich keine Daten bekomme, es funktioniert nämlich sicherlich das ID = '".$_SESSION['ID']."';" in diesem Code hier nicht:

          PHP-Code:

          <?php
          //admin_self.php
              
          if(isset($_POST['submit']) AND "speichern" == $_POST['submit']) {
                 if(!
          preg_match('/^\w+$/'trim($_POST['name']))) {
                    echo 
          "Der Name darf nur aus Buchstaben oder Nummern bestehen!";
                 } else {

                    
          $sql "UPDATE
                               users
                            SET
                               Name = '"
          .trim($_POST['name'])."'
                               Email = '"
          .addslashes(trim($_POST['email']))."'
                            WHERE
                               ID = '"
          .$_SESSION['ID']."';";
                             
          mysql_query($sql) OR die(mysql_error());
                             echo 
          "Ihre Daten wurden gespeichert";
                   }
              }

              if(isset(
          $_POST['submit']) AND "Neues Password speichern" == $_POST['submit']) {
                 if(
          trim($_POST['password'] == "")) {
                    echo 
          "Du musst schon ein Passwort eintragen!";
                 } elseif (
          trim($_POST['password']) != trim($_POST['password2'])) {
                     echo 
          "Deine beiden Passwörter stimmen nicht überein!";
                   }
                 else {
                   
          $sql "UPDATE
                             users
                           SET
                             Password = MD5('"
          .trim($_POST['password'])."')
                           WHERE
                             ID = '"
          .$_SESSION['ID']."';";
                   
          $result mysql_query($sql) OR die(mysql_error());
                   
          $row mysql_fetch_assoc($result);
                 }
              }

              
          $sql "SELECT
                         Name,
                         Email,
                      FROM
                         users
                      WHERE
                         ID = '"
          .$_SESSION['ID']."';";
               
          $result mysql_query($sql);
               
          $row mysql_fetch_assoc($result);


              echo 
          "<form action=\"index.php?section=admin&amp;site=self\" method=\"post\" class=\"formular\">\n";
              echo 
          "    <p>\n";
              echo 
          "        Eigene Daten bearbeiten\n";
              echo 
          "    </p>\n";
              echo 
          "    <ol>\n";
              echo 
          "        <li>\n";
              echo 
          "            <label for=\"name\">Name</label>\n";
              echo 
          "            <input type=\"text\" name=\"name\" id=\"name\" value=\"".$row['Name']."\"/>\n";
              echo 
          "        </li>\n";
              echo 
          "        <li>\n";
              echo 
          "            <label for=\"email\">Emailadresse</label>\n";
              echo 
          "            <input type=\"text\" name=\"email\" id=\"email\" value=\"".$row['Email']."\"/>\n";
              echo 
          "        </li>\n";
              echo 
          "        <li>\n";
              echo 
          "            <input type=\"submit\" name=\"submit\" value=\"Speichern\" />\n";
              echo 
          "            <input type=\"reset\" name=\"submit\" value=\"Zurücksetzen\" />\n";
              echo 
          "            <input type=\"hidden\" name=\"".session_name()."\" value=\"".session_id()."\" />\n";
              echo 
          "        </li>\n";
              echo 
          "    </ol>\n";
              echo 
          "</form>\n";
              echo 
          "<form action=\"index.php?section=admin&amp;site=self\" method=\"post\" class=\"formular\">\n";
              echo 
          "    <p>\n";
              echo 
          "        Neues Password erstellen\n";
              echo 
          "    </p>\n";
              echo 
          "    <ol>\n";
              echo 
          "        <li>\n";
              echo 
          "            <label for=\"password\">Neues Password</label>\n";
              echo 
          "            <input type=\"password\" name=\"password\" id=\"password\" />\n";
              echo 
          "        </li>\n";
              echo 
          "        <li>\n";
              echo 
          "            <label for=\"password2\">Bestätigung</label>\n";
              echo 
          "            <input type=\"password\" name=\"password2\" id=\"password2\" />\n";
              echo 
          "        </li>\n";
              echo 
          "        <li>\n";
              echo 
          "            <input type=\"submit\" name=\"submit\" value=\"Neues Password speichern\" />\n";
              echo 
          "            <input type=\"reset\" name=\"submit\" value=\"Zurücksetzen\" />\n";
              echo 
          "            <input type=\"hidden\" name=\"".session_name()."\" value=\"".session_id()."\" />\n";
              echo 
          "        </li>\n";
              echo 
          "    </ol>\n";
              echo 
          "</form>\n";
              echo 
          "<p>\n";
              echo 
          "    <a href=\"index.php?section=admin&amp;".SID."\">Zurück</a>\n";
              echo 
          "</p>\n";



          ?>
          Das liegt aber wiederrum daran das die Session ID nicht übergeben wird! Sieht wirklich niemand den Fehler ?

          Kommentar


          • #6
            mache aus $_SESSION['ID'] ein session_id()

            und aus SID machst du bitte session_name()+session_id()
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar

            Lädt...
            X