2016-06-26 94 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> 
相關問題