2016-06-26 4 views
0

Я не могу передать переменную на другую страницу, используя сеанс, и я не знаю, что здесь представляет ошибка. Кто-нибудь может мне помочь? и подсказки о том, как использовать сеанс? Я хочу передать имя переменной на другую страницу.Передать переменную с другой страницы

вот код html. это моя страница входа, откуда идет переменная.

<div class="wrapper"> 
    <form class="logform" action="" method="post"> 
    <p class="title">Admin Login</p> 
    <input type="user" name="uname" placeholder="Username" autofocus/> 
    <i class="fa fa-user"></i> 
    <input type="password" name ="pword" placeholder="Password" /> 
    <i class="fa fa-key"></i> 
    <a href="#">Forgot your password?</a> 
    <button type="submit" value="login" name="login"> 
     <i class="spinner"></i> 
     <span class="state">Log in</span> 
    </button> 
    </form> 
</div> 

<?php 
session_start(); 

include_once("connection.php"); 
if(isset($_POST['login'])){ 
    $user = $_POST["uname"]; 
    $password = $_POST["pword"]; 
    $name = mysqli_real_escape_string($con, $user); 
    $password = mysqli_real_escape_string($con, $password); 
    $select_user="SELECT * FROM accounts WHERE username ='$user' AND password ='$password'"; 
    $run_user = mysqli_query($con, $select_user); 
    $check_user = mysqli_num_rows($run_user); 
    if($check_user > 0){ 
    $_SESSION['uname'] = $username; 
     header('location:admin.php'); 
    } 
    else{ 
     echo "wrong"; 
    } 
} 
?> 

вот страница администратора.

<?php 
session_start(); 
?> 
<!DOCTYPE HTML> 
<html> 
<head> 
</head> 
<body> 

    <h1>Welcome, <?php echo $username; ?>!</h1> 
</body> 
</html> 
+0

админ страница неудачу вас, как ваша страница Войти и не идут жить с этим, а не с этим текстовым хранилищем паролей –

+0

@Fred почему? вы можете дать мне понять, почему? – nethken

+0

спросить Дэвида; он положил ответ ниже –

ответ

2

Вы установки значения сеанса на первой странице:

$_SESSION['uname'] = $username; 

Но вы никогда не читали его на второй странице. Считайте значение сеанса:

$username = $_SESSION['uname']; 

Edit: Давай думать об этом, вы никогда даже установив переменную $username на первой странице. Вы имели в виду использовать $user вместо этого? Или $name?

Вы можете передавать значение через сеанс точно так же, как и вы, но в первую очередь необходимо передать значение.

+0

привет, сэр, я попробовал, чтобы он работал, но имя пользователя пуст на странице администратора. это результат «Добро пожаловать!» Имя пользователя отсутствует. Blank. – nethken

+0

или он может просто использовать '$ _SESSION ['uname']' непосредственно на следующей странице. –

+0

@nethken: Каково значение '$ username' на первой странице? Еще раз взглянув на код, вы никогда не устанавливаете эту переменную вообще. Когда-либо. Вы не можете напечатать переменную, которую вы никогда не устанавливали. – David

1

На странице администратора вы установили $username = $_SESSION['uname']? Переменная $username на первой странице является локальной для этой страницы, это не переменная сеанса. Когда вы находитесь на странице администратора, $username - это новая переменная и не определена, хотя $_SESSION['uname'] есть.

1

Хорошо, здесь есть две проблемы. Прежде всего, $ _SESSION ['uname'] должно содержать имя пользователя, которое будет $ пользователь NOT $ username ($ username undefined). Во-вторых, если вы хотите присвоить переменной $ _SESSION ['uname'], вы должны сделать это на странице администратора. Ниже приведен код, который Вы должны использовать ...

Войти Страница

<div class="wrapper"> 
    <form class="logform" action="" method="post"> 
    <p class="title">Admin Login</p> 
    <input type="user" name="uname" placeholder="Username" autofocus/> 
    <i class="fa fa-user"></i> 
    <input type="password" name ="pword" placeholder="Password" /> 
    <i class="fa fa-key"></i> 
    <a href="#">Forgot your password?</a> 
    <button type="submit" value="login" name="login"> 
     <i class="spinner"></i> 
     <span class="state">Log in</span> 
    </button> 
    </form> 
</div> 

<?php 
session_start(); 

include_once("connection.php"); 
if(isset($_POST['login'])){ 
    $user = $_POST["uname"]; 
    $password = $_POST["pword"]; 
    $name = mysqli_real_escape_string($con, $user); 
    $password = mysqli_real_escape_string($con, $password); 
    $select_user="SELECT * FROM accounts WHERE username ='$user' AND password ='$password'"; 
    $run_user = mysqli_query($con, $select_user); 
    $check_user = mysqli_num_rows($run_user); 
    if($check_user > 0){ 
     $_SESSION['uname'] = $name; 
     header('location:admin.php'); 
    } 
    else{ 
     echo "wrong"; 
    } 
} 
?> 

Администратор Страница

<?php 
session_start(); 
$username = $_SESSION['uname']; 
?> 
<!DOCTYPE HTML> 
<html> 
<head> 
</head> 
<body> 

    <h1>Welcome, <?php echo $username; ?>!</h1> 
</body> 
</html> 
Смежные вопросы