在php上使用session的未定义索引错误

时间:2013-07-10 12:23:23

标签: php xampp dreamweaver

我有一个login.php文件,其中包含要登录的表单。 我有一个validation.php文件来验证登录,使用以下代码:

<?php

session_start();

if(($_SESSION['user'] == "user123") && ($_SESSION['pass'] = "123"))
{

 header("Location: index.php");

}

else
{
 header("Location: login.php");
}

?>

我有一个index.php文件,当我登录时,我想转到index.php页面,使用以下代码:

<?php

session_start();
if(($_SESSION["user"]) and ($_SESSION["pass"]))
{
    ?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml2/DTD/xhtml2-transitional.dtd">
<html xmlns="http://www.w3.org/1993/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=u2f-5" />
<title>Untitled Document</title>
</head>

<body>
<p>geageagge</p>
<p>egeageage</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>geagaegea</p>
</body>
</html>
<?php
}
else
 echo "You didnt do login";

但我得到了这个错误:未定义的索引用户用户,在这一行:if(($_SESSION["user"]) and ($_SESSION["pass"]))

任何人都知道我做错了什么?

1 个答案:

答案 0 :(得分:1)

1)login.php(我猜)

中的小错误

$_SESSION['pass'] = "123"应该是 $_SESSION['pass'] == "123"

2)检查值isset

if(isset($_SESSION["user"]) and isset($_SESSION["pass"]))

修改

在我看到你的html表单之后,我认为你几乎没有错误。

validation.php中你必须检查输入的值,所以你需要使用$_POST然后如果它们是正确的,就把它们放在会话中。

因此validation.php中的代码应该看起来不错

<?php

session_start();

if(($_POST['user'] == "user123") && ($_POST['pass'] == "123"))
{
 $_SESSION['user'] = $_POST['user'];
 $_SESSION['pass'] = $_POST['pass'];
 header("Location: index.php");

}

else
{
 header("Location: login.php");
}