2016-06-22 2 views
2

Я использую php для хранения имени пользователя в сеансе, и я просто не могу. Я пытаюсь сделать вывод из формы и сохранить ее в сеансе, чтобы получить имя пользователя позже на другой странице.Не удается сохранить данные в сеансе

index.php (Где получить данные из формы входа в систему):

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 (Где получить данные из формы regsiter):

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']; 
} 

меня. php:

<?php 
session_start(); 

$uname = $_SESSION["uname"]; 
echo $_SESSION["uname"]; 

?> 

На index.php Я начинаю сеанс в самом начале кода.

На me.php эхо ничего не печатает!

Помогите, пожалуйста, скажите мне, где ошибка?

Кроме того, если бы я мог сделать это с помощью печенья, это было бы здорово! Но я не знаю, как ...

Спасибо!

ответ

1

Вам необходимо использовать session_start(), чтобы писать вещи в сессии тоже.

В вашем index.php добавьте session_start(); наверху.

+0

На самом деле, как я уже сказал, на index.php Я начинаю сеанс в самом начале кода – Ardi

0

Для каждого файла, который имеет какое-либо отношение к сеансам, вам нужен session_start().

К сожалению, код не совпадает с указанным кодом.

+0

Собственно, как я уже сказал, на index.php Я начинаю сеанс в самом начале кода – Ardi

+0

Просьба включить полный код index.php. – guest

Смежные вопросы