2016-06-22 37 views
2

Ich benutze PHP, um einen Benutzernamen in einer Sitzung zu speichern, und ich kann es einfach nicht. Was ich versuche, ist, die Ausgabe von einem Formular zu erhalten und es in der Sitzung zu speichern, um den Benutzernamen später auf einer anderen Seite zu erhalten.Daten können nicht in Sitzung gespeichert werden

index.php (Wo ich die Daten aus dem Anmeldeformular erhalten):

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


$uname = $_POST['uname']; 
$password = $_POST['password']; 
$password = md5($password); 

$result = mysqli_query($Conn, "SELECT * FROM `users` WHERE `Username` = '$uname' AND `Password` = '$password'"); 

$num_rows = mysqli_num_rows($result); 

if($num_rows > 0){ 

    if($uname == "admin"){ 
     echo "Hello, admin. Do you want to access to the "."<a href='database.php'>database?</a>"; 

     $name = mysqli_query($Conn, "SELECT `Name` FROM `users` WHERE `Username` = '$uname'"); 
     $lname = mysqli_query($Conn, "SELECT `Last Name` FROM `users` WHERE `Username` = '$uname'"); 
     $email = mysqli_query($Conn, "SELECT `Email` FROM `users` WHERE `Username` = '$uname'"); 
    } else{ 
    echo "Welcome ".$uname."! You are now logged in!"; 
    } 
} else { 
    echo "Sorry, your password and username do not match. Please try again"; 
} 

$_SESSION["uname"] = $_POST['uname']; 

} 

index.php (Wo ich die Daten aus der regsiter Form erhalten):

if(isset($_POST['submit-register'])){ 


$uname = $_POST['uname']; 
$password = $_POST['password']; 
$password2 = $_POST['password2']; 
$email = $_POST['email']; 
$email2 = $_POST['email2']; 
$name = $_POST['fname']; 
$lname = $_POST['lname']; 

if($password2 == $password && $email2 == $email){ 
    $result = mysqli_query($Conn, "SELECT * FROM `users` WHERE `Username` = '$uname'"); 
    $num_rows = mysqli_num_rows($result); 


    if($num_rows > 0){ 
     echo "Sorry, that username is already taken."; 
    } else { 
     mysqli_query($Conn, "INSERT INTO `users` (`Name`, `Last Name`, `Username`, `Password`, `Email`, `Level`) VALUES ('$name', '$lname', '$uname', '$password', '$email', 0)") or die (mysqli_error($Conn)); 
     echo "Welcome ".$name." ".$lname." (".$uname.")! You are now registered. Log in, please."; 
    } 
} 

$_SESSION["uname"] = $_POST['uname']; 
} 

mich. php:

Auf index.php starte ich die Sitzung am Anfang des Codes.

Auf mir.php, das Echo druckt nichts!

Hilfe bitte, können Sie mir sagen, wo ist der Fehler?

Auch, wenn ich das mit Cookies tun könnte, wäre das toll! Aber ich weiß nicht wie ...

Danke!

Antwort

1

Sie müssen session_start() verwenden, um Dinge in Sitzung zu schreiben.

Fügen Sie in Ihrer index.php session_start(); an der Spitze hinzu.

+0

Eigentlich, wie ich schon sagte, auf index.php beginne ich die Sitzung am Anfang des Codes – Ardi

0

Sie benötigen session_start() für jede Datei, die etwas mit Sitzungen zu tun hat.

Übrigens, bitte lesen Sie weiter mit vorgefertigten Anweisungen auf mysqli_, Ihr aktueller Code ist voller Schwachstellen.

+0

Eigentlich, wie ich schon sagte, auf index.php beginne ich die Sitzung am Anfang des Codes – Ardi

+0

Bitte vollständig Code von index.php. – guest

Verwandte Themen