これは課題ですが、私は研究のために多くのことをしましたが、壁に到達したような気がします。ユーザーがサインインできるページ(login.php)を作成する必要があります。サインインすると、インデックスページにリダイレクトされます。彼らがログインするためにクリックしたリンクは、ログアウトリンクに置き換える必要があります。
ただし、これらすべてに注意して、最初にセッション部分に入り、変数をエコーして取得しましたが、セッション変数をログに記録した後に手動でindex.phpをクリックしても、index.phpへのリダイレクトは行われません。空です。私はここで何が間違っているのですか?
これがlogin.phpの私のphpコードです
$found = false;
//read the read.txt until the end of file
while(!feof($inputFile) && $found == false)
{
$line = fgets($inputFile);
// replace the special charater within the lines by there proper entity code
$lineArray = preg_split("/\,/", (string)$line);
if(strcmp($_REQUEST['email'],$lineArray[2]) && strcmp($_REQUEST['pwd'],$lineArray[4]))
{
$found = true;
echo "<script>alert(' FOUND!')</script>";
session_start();
$myuseremail=$_REQUEST['email'];
$mypassword= $_REQUEST['pwd'];
$_SESSION['login_email']=$myuseremail;
$_SESSION['login_pwd']=$mypassword;
setcookie("login_email", $_SESSION['login_email'], time()+60*60*24);
setcookie("login_pwd", $_SESSION['login_pwd'], time()+60*60*24);
header('Location:index.php');
}
}
fclose($inputFile);
次に、index.phpで、htmlの本文の前にこのコードを含めます
<?php
session_start();
if(isset($_SESSION['login_email']) && isset($_SESSION['login_pwd']))
{
$user_check=true;
echo $_SESSION['login_email'];
}
else
{
$user_check=false;
}
?>
index.php内に、リンク用にこのコードを並べています
<li><a href="index.php">Home</a></li>
<li><a href="register.php">Register</a></li>
<?php
if ($user_check){
print "<li><a href='logout.php'>Logout</a></li>";
}
else{
print "<li><a href='login.php'>Login</a></li>";
}
?>
<li><a href="#"> Link 4</a></li>