0

ログインするためのフォームを含む 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";

しかし、私はこのエラーを受け取りました: undefined index user user, in this line:if(($_SESSION["user"]) and ($_SESSION["pass"]))

誰が私が間違っているのか知っていますか?

4

1 に答える 1

1

login.php1) (私が推測する) の小さな間違い

これ $_SESSION['pass'] = "123"$_SESSION['pass'] == "123"

2)値が設定されているかどうかを確認します

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");
}
于 2013-07-10T12:24:55.567 に答える