PHP:$ _SESSION变量没有传递到下一个网页

时间:2012-12-08 20:42:39

标签: php html mysql session

我无法尝试将用户名变量从登录页面传递到下一个“欢迎”页面。我使用大学的服务器托管网页,因此可以在public_html文件夹中访问我的网页文件。

在login.php页面上测试时,我能够打印会话中保存的用户名,但是当我在会员页面中尝试相同时,它不会打印会话数组中保存的用户名吗?我检查了所有其他帖子,但似乎没有解决方案。

的login.php

<?php
session_start();
include ('connect.php');
$userName=$_POST['username']; 
$password=$_POST['password'];  
$result = mysql_query("SELECT * FROM users WHERE username='$userName' AND password='$password'") or die ('Query is invalid: ' . mysql_error());;
$count =  mysql_num_rows($result);

if($count==1)
{
$_SESSION['username']=$userName;
header("Location: memberPage.php");
} else {
echo "Incorrect username or password";
}
?>

memberLogin.php

<?php
session_start();
include ('connection.php');

$_SESSION['username'] = $userName;
echo $userName;

//$result = mysql_query("SELECT * FROM users");
//while ($row = mysql_fetch_array($result)) {
//    echo $row['username'];
//}
?> 

<html>
<link rel="stylesheet" type="text/css" href="style.css" />

<div id = main-nav>
<a href="http://www.cs.nott.ac.uk/~rxp00u/logout.php" >Logout</a> 
</div>
</html>

P.S。我意识到我的代码不是很安全,我将在获得网站的基本框架后继续努力!

编辑:登录login.php时出错报告显示以下错误: “警告:未知:打开(/ var / lib / php5 / sess_d760m9ebgose4liptp6jbgbc17nqjgg4,O_RDWR)失败:第0行的未知权限被拒绝(13)警告:未知:无法写入会话数据(文件)。请验证当前设置session.save_path在第0行的“未知”中是正确的(/ var / lib / php5)“

3 个答案:

答案 0 :(得分:1)

<?php
session_start();
include ('connection.php');

$_SESSION['username'] = $userName;
echo $userName;

未设置$ userName。如果你有错误,你已经看到了。你的意思是

$userName = $_SESSION['username'];
echo $userName;

答案 1 :(得分:1)

您正在设置 memberLogin.php

$_SESSION['username'] = $userName;

其中$userName未定义。如果您可以成功将$userName分配给 Login.php 上的$_SESSION变量,则不再需要设置变量。拨打session_start();后即可访问。

答案 2 :(得分:0)

在memberLogin中,它应该是:

$username = $_SESSION['username'];

分配是左关联的,意味着=右侧的值被分配给=左侧的变量。您当前的设置是否使用null覆盖会话值。