2016-03-19 16 views
0

Hier ist mein login.php Code-Schnipsel:Neue Sitzung wurde unerwartet erstellt. Auch eine neue Session-Datei auf der nächsten Seite erstellt

<?php 
session_start(); 
include 'db_connection.php'; 

if (isset($_POST['login'])) { 

    $match_flag = false; 
    $username = $_POST["username"]; 
    $password = $_POST["password"]; 


    //$_SESSION['username'] = $username; 

    $query_select = "SELECT admin_username, admin_password FROM users_admin"; 
    $query_result = $conn->query($query_select); 
    if($query_result){ 
     foreach($query_result as $rows){ 
      if(($rows['admin_username'] == $username)&&($rows['admin_password'] == $password)){ 
       $_SESSION['username'] = $username; 
       echo "<br> Session ID -> ".SID; 
       $match_flag = true; 
       break; 
      } 
     } 
    } 

    if($match_flag){ 

     echo "1"; 
    }else{ 
     echo "0"; 
    } 
    exit(); 
} 
?> 

Und hier ist mein dashboard.php Code:

<?php 
session_start(); 

echo "Session is -> ".$_SESSION['username']; 
echo "<br> Session ID -> ".SID; 
if(!isset($_SESSION['username'])) 
{ 
    echo '<META HTTP-EQUIV="Refresh" Content="0; URL=http://www.example/login.php">'; 
    exit(); 
} 
?> 

Nach dem Ausführen login.php der Sitzung Wert ist gesetzt und ich bekomme Sitzungs-ID und wenn ich Sitzungsdatei sehe, fand ich mit feinem Inhalt. Aber wenn die Dashboard.php ausgeführt wird, bekomme ich eine andere, aber andere Session-ID mit einer leeren Session-Datei. Das bedeutet, dass eine neue Sitzung beim Ausführen der dashboard.php erstellt wird, aber das ist völlig unerwartet. Ich habe viel gesucht, aber keine zufriedenstellende Antwort bekommen. Bitte führen Sie meine why Sitzung wird wieder auf einer neuen Seite gestartet?

Vielen Dank im Voraus!

+0

@RyanVincent ja alle Seiten sind in http. keine https – gojobs

Antwort

1

Dies ist nur eine begründete Vermutung, aber vielleicht gibt es ein Problem mit der Art, wie Sie Ihren Sitzungsnamen und Sitzungs-ID angeben. Es ist wichtig, dass beide Skripts die gleiche Sitzungs-ID kennen.

Es gibt mehrere Möglichkeiten, dies zu tun. Heutzutage sind die meisten PHP-Installationen so konfiguriert, dass sie Cookies und nur Cookies verwenden. Vor einigen PHP-Versionen wurden Sitzungsparameter über URL-Parameter übertragen.
Die Art, wie PHP diese behandelt, ist in Ihrer php.ini konfiguriert. Sie könnten den Abschnitt über Session-Konfiguration im PHP-Handbuch hilfreich finden: http://php.net/manual/session.configuration.php
Stellen Sie sicher, dass Sie die session.use_cookies und session.use_trans_sid Richtlinien überprüfen. Aus Sicherheitsgründen schlage ich vor, dass Sie alles auf die Standardwerte setzen. Sie können Ihre aktuelle Konfiguration über <?php phpinfo(); ?> einsehen.

+0

Vielen Dank für Ihre Hilfe. Ich habe die Konfiguration über Meine 'session.use_cookies' ist auf Aus (Local und Master beide) gesetzt und' session.use_trans_sid' ist auf 0 gesetzt (Local und Master beide) Ich weiß nicht viel über diese Konfigurationswerte. Sind sie in Ordnung? – gojobs

+0

Versuchen Sie, 'session.use_cookies' auf' 1' zu setzen (dies sollte die Standardeinstellung sein) in Ihrer php.ini-Datei. Versuchen Sie dann, Ihr Skript erneut auszuführen und lassen Sie mich wissen, ob das für Sie funktioniert hat. – djsnape

Verwandte Themen