0

首先我不会建立一个使用数据库的登录系统,我知道它更安全,但在这种情况下它不相关......

我有三个文件 login.php、admin.php 和 config.php。用户的电子邮件和密码存储在 config.php 的变量中。如果用户正在登录,则应设置会话。然后,如果一个没有登录的用户试图访问 admin.php “:-(” 应该被打印出来。但现在“:-(”总是被打印出来,我的编码方式需要有问题.. .

配置.php:

<?php

//site data

$title = "Abbesplace";
$siteurl = "index.php";

//user data
$password = "testtest";
$email = "example@example.com";
$name = "Albin Larsson";
?>

登录.php:

<?php

require_once("config.php");

if (($_POST['email'] == $email && $_POST['password'] == $password)) {
    //login
    session_start();
    $_SESSION['logged']= "welcometomoon";
    header("Location: admin.php");
} else {
    echo "login faild";
}
?>

<!DOCTYPE HTML>
<html>
    <head>
        <title>Login</title>
    </head>
    <body>
        <div>
            <form method="post" action="login.php">
                Email:<input type="email" name="email"/>
                Password:<input type="password" name="password"/>
                <input type="submit"/>
            </form>
        </div>
    </body>
</html>

管理员.php:

<?php

if(isset($_SESSION['logged'])){
    echo "Hello";
} else {
    echo ":-(";
}

?>

关于我应该做出什么不同的任何建议?(当我谈到 PHP 时,我是一个新手)......

4

1 回答 1

4

您必须在每个页面上调用 session_start 。现在,您只有在发布到登录表单时才调用它。

于 2013-07-16T13:15:01.207 回答