kostenloser Webspace werbefrei: lima-city


PHP | Session Problem

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    x**********x

    Hallo zusammen,

    ich stehe mal wieder vor einem Rätsel ^^
    Ich hatte eine Art Verwaltungsscript geschrieben, was auf meinem Server einwandfrei funktioniert.
    Der Login läuft über Sessions.

    So jetzt packe ich das Script auf den Server von der Person, für die das Script gedacht ist und nun
    funktioniert nix mehr. :(

    Das komische ist, auf \"session_is_registered\" mit \"true\" geantwortet wird. Die Sessionvariablen aber nicht zur Verfügung stehen.

    Mein Login sieht so aus:

    <?php
    
    session_start();
    
    $error = \"\";
    include \'connect.php\';
    include \'errors.php\';
    
    if((!isset($_POST[\'username\'])) OR ($_POST[\'username\'] == \"\") OR (!isset($_POST[\'passwort\'])) OR ($_POST[\'passwort\'] == \"\")){ $error = \"1\"; } 
    
    if($error == \"\"){
     $username = mysql_escape_string($_POST[\'username\']);
     $passwort = mysql_escape_string($_POST[\'passwort\']);
     
     $sql = \"SELECT * FROM \".$tblname.\"_user WHERE name = \'\".$username.\"\'\";
     $result = mysql_query($sql) OR die(mysql_error());
     $row = mysql_fetch_array($result);
     
     if($row[\'id\'] == \"\"){
     $error = \"2\";
     }
    }
    
    
    if($error == \"\"){
     if($row[\'passwort\'] != $passwort){
     $error = \"3\";
     }
    }
    
    
    if($error == \"\"){
     $login_date = date(\"d.m.Y\");
     $login_time = date(\"H:i\");
     $session_status = $row[\'status\'];
    
     session_register(\'username\');
     session_register(\'login_date\');
     session_register(\'login_time\');
     session_register(\'session_status\');
    
     header(\"Location:layout.php\");
     exit;
    
    }
    
    header(\'Location:index.php?error=\'.$error);
    
    ?>


    Im nächsten Script wird dann mit :
    if(!session_is_registered(\'username\')){
    header(\"Location:index.php?error=7\");
    
    }

    abgefragt.

    Die Variablen wie \"username\" usw sind aber nicht vorhanden.
    Wie kann das sein?

    Wäre für jeden Tipp dankbar
    Gruß
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hast du im nächsten Script session_start() aufgerufen?
    Bei manchen Servern ist das nicht nötig, da in der php.ini session.auto_start = 1 angegeben ist. Zur Sicherheit, sollte man aber dennoch immer session_start() verwenden um solche Probleme zu vermeiden.

    Bei neueren php-Versionen sollte man außerdem nicht mehr session_register() verwenden, sondern die Sessionvariablen mit $_SESSION[\'foo\']=\'bar\'; belegen.
  4. Autor dieses Themas

    x**********x

    Danke schön ^^


    Hast du im nächsten Script session_start() aufgerufen?
    Bei manchen Servern ist das nicht nötig, da in der php.ini session.auto_start = 1 angegeben ist. Zur Sicherheit, sollte man aber dennoch immer session_start() verwenden um solche Probleme zu vermeiden.


    Hatte ich auch schon dran gedacht, dass Problem ist nämlich, dass der Server bei T-Online ist und man da auf solche sachen wie die php.ini keinen Zugriff hat :mad:



    Bei neueren php-Versionen sollte man außerdem nicht mehr session_register() verwenden, sondern die Sessionvariablen mit $_SESSION[\'foo\']=\'bar\'; belegen.


    Damit hats jetzt geklappt. Vielen Dank =)
  5. Ich hätte da auch was zu Sessionen. Kann man eine Session auf eine bestimmmte IP speichern?

    Weil, wenn man eine Session zu einem ACP öffnet, und jemand anderem die URL gibt während man selsbt den ACP offen hat kommt der leider auch rein.

    Kann man da was machen? :eek:

  6. Ich hätte da auch was zu Sessionen. Kann man eine Session auf eine bestimmmte IP speichern?


    Die IP auszulesen und wie das Logindatum und -uhrzeit in der Session zu speichern sollte kein Problem sein.
    Bedenke aber das diverse Proxy\'s ständig die IP wechslen. Prominentes Beispiel ist AOL das die IPs rotiert und somit der Benutzer sporadisch neu anmelden müsste.

    (siehe auch http://www.php-faq.de/q/q-sessions-ip.html)

    Grüße
  7. Dann hast du was falsch gemacht, denn das sollte definitiv nicht so sein.

    Aber zu Frage: du kannst die IP zB in einer Sessionvariable ála $_SESSION[\'ip\']=$_SERVER[\'REMOTE_ADDR\']; speichern und bei jedem Seitenaufrug überprüfen, ob die IP in der Session gleich der IP des Users entspricht. Aber wie gesagt, eigentlich sollte das nicht nötig sein, denn selbst wenn man von einem Rechner aus mit zwei unterschiedlichen Browsern versucht einen mit Sessions geschützen Bereich aufzurufen, funktioniert das nicht.
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!