PHP:在没有MySQL的情况下创建一个简单的登录表单

时间:2014-11-11 20:16:20

标签: php session login

我正在尝试使用简单的登录表单,这只是为了好玩。内容并不敏感,但我正在努力学习SESSION等等。我创建了这个简单的登录表单,效果很好,但如果用户点击"home"href'd的{​​{1}}按钮,则会要求他们再次登录。我正在尝试将process_login.phpusername保存在password中,因此如果他们登录,并从任何页面点击SESSION,它将记住他们的登录信息和不要求他们继续登录。

我有一个home脚本,使用form.php方法,有两个POST,用户名和密码在textfields中保存为“admin”,并且如果它们与表单中的process_login.php POST匹配,那么我将包含indices。在content.php中,我获取了process_login.php数据并按照以下方式运行:

POST

您将在上面看到我正在尝试设置SESSION信息,但我知道我没有正确地执行此操作。一旦用户登录,一切正常。但如果同一个用户点击另一个页面的“home”,它会告诉他们“SESSION_start(); //var_dump($_POST); $match_username = 'admin' ; $match_password = 'admin'; if(isset($_POST['submit'])){ $username = $_POST['username']; $password = $_POST['password']; if($username == $match_username && $password == $match_password ){ include 'content.php'; }elseif($username == "" || $password != $match_password){ echo "Please try again."; } if(!isset($_SESSION["logged_in"])){ //Run if not set $_SESSION["logged_in"] = array(1 => array($username => $_POST['username'], $password => $_POST['password'])); }; }; ”我想让用户在登录后保持登录状态。

感谢所有建议。谢谢!

1 个答案:

答案 0 :(得分:2)

您对$_SESSION["logged_in"]的测试不应位于if(isset($_POST['submit']))区块内。

if (isset($_SESSION['logged_in'])) {
    include 'content.php';
    exit();
}
if (isset($_POST['submit'])) {
    $username = $_POST['username'];
    $password = $_POST['password'];
    if($username == $match_username && $password == $match_password ){
        $_SESSION["logged_in"] = array('username' => $_POST['username'], 'password => $_POST['password']);
        include 'content.php';
        exit();
} elseif($username == "" || $password != $match_password){
    echo "Please try again.";
}
// Put login form here

我更改了您的$_SESSION["logged_in"]变量。现在它只是一维数组而不是二维数组,键是单词usernamepassword - 使用变量不是很有意义那里的钥匙。

相关问题