如何创建一个非常简单的用户名-用PHP登录密码?

Ham*_*ter 3 php authentication session login session-cookies

index.php

<?php
if( $_SESSION['auth'] != 1 ) {
    require( 'login.php' );
}
else {
    echo "hello";
}
?>
Run Code Online (Sandbox Code Playgroud)

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
}
?>
Run Code Online (Sandbox Code Playgroud)

因此,在我仍在学习PHP的同时,现在我想尝试一些事情:

  • 我如何获得它以便重新加载index.php并显示“ hello”?
  • 如何通过成功的身份验证使login.php自动加载index.php,以便将其发送到该“ hello”?
  • 以后,使用cookie来存储用户提交的登录数据(这样他们就不必重新填写表单来恢复其会话)会不会有潜在的问题?

帮助表示赞赏。

ale*_*exn 5

1,您在index.php中缺少session_start()。添加它,您应该可以看到“ Hello world”

2,将行替换为“已授予访问权限!” 重定向:

header('Location: index.php');
exit;
Run Code Online (Sandbox Code Playgroud)

3,您绝对可以将凭据存储在cookie中,但是您应该始终对密码进行哈希处理和添加盐分。是一篇有关密码哈希的好文章。