2

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

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

登录.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>

PS 我意识到我的代码不是很安全,在网站的基本框架正常工作后,我将继续努力!

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

4

3 回答 3

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

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

$userName 未设置。如果你有错误,你会看到的。你的意思

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

?

于 2012-12-08T20:45:32.543 回答
1

memberLogin.php上,您正在设置:

$_SESSION['username'] = $userName;

哪里$userName是未定义的。看来,如果您可以成功分配$userNameLogin.php$_SESSION上的变量,则不再需要设置该变量。调用后即可访问。session_start();

于 2012-12-08T20:46:21.923 回答
0

在 memberLogin 中,应该是:

$username = $_SESSION['username'];

赋值是左关联的,这意味着 右边的值=被赋值给左边的变量=。您当前的设置让您用 null 覆盖您的会话值。

于 2012-12-08T20:46:32.733 回答