2016-06-26 72 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']; 

编辑:试想想起来了,你甚至从来没有设置第一页上$username变量。你的意思是用$user代替吗?或$name

您可以通过会话完全按照您的要求传输值,但首先必须有一个值才能传输。

+0

你好先生,我试过它的工作,但用户名是空白,当管理页面上。这是输出“欢迎,!”用户名缺失。空白。 – nethken

+0

或者他可以直接在下一页使用'$ _SESSION ['uname']' –

+0

@nethken:* first *页面上'$ username'的值是多少?再次查看代码,您根本不会设置该变量。永远。您无法打印您从未设置的变量。 – David

1

在管理页面的哪个位置设置了$username = $_SESSION['uname']?第一页中的$username变量是该页面的本地变量,它不是会话变量。当您在管理页面上时,$username是一个新变量,并且未定义,即使$_SESSION['uname']是。

1

好的这里有两个问题。首先,$ _SESSION ['uname']需要包含用户名,这将是$用户不是$用户名($用户名未定义)。其次,如果您想将$ _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> 
相关问题