index.php
<?php
if( $_SESSION['auth'] != 1 ) {
require( 'login.php' );
}
else {
echo "hello";
}
?>
login.php
<?php
$name = $_POST['name'];
$pass = $_POST['pass'];
if( isset($name) || isset($pass) )
{
if( empty($name) ) {
die ("ERROR: Please enter username!");
}
if( empty($pass) ) {
die ("ERROR: Please enter password!");
}
if( $name == "<some name>" && $pass == "<some password>" )
{
// Authentication successful - Set session
session_start();
$_SESSION['auth'] = 1;
setcookie("username", $_POST['name'], time()+(84600*30));
echo "Access granted!";
}
else {
echo "ERROR: Incorrect username or password!";
}
}
// If no submission, display login form
else {
?>
<html>
<head></head>
<body>
<center>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Username: <input type="text" name="name" value="<?php echo $_COOKIE['username']; ?>">
<p />
Password: <input type="password" name="pass">
<p />
<input type="submit" name="submit" value="Log In">
</center>
</body>
</html>
<?php
}
?>
ですから、私はまだPHPを学んでいるので、今理解しようとしていることがいくつかあります。
- index.phpをリロードして、「hello」と表示されるようにするにはどうすればよいですか?
- 認証が成功したときにlogin.phpを自動ロードしてindex.phpを取得し、その「こんにちは」に到達できるようにするにはどうすればよいですか?
- 後で、Cookieを使用してユーザーが送信したログインデータを保存する(つまり、セッションを復元するためにフォームに入力し直す必要がない)場合、潜在的な問題が発生しますか?
感謝します。