PHP和Mysql - 如何让我的登录系统与我的数据库一起使用?

时间:2013-12-19 13:52:24

标签: php mysql session

我现在已经编写了一段时间,我目前正在创建一个PHP,html和mysql数据库的网站。我在我的数据库中为用户提供了一个表,我的注册码运行良好:它注册用户,他选择的电子邮件地址,姓名,昵称和密码;并且无法创建具有已存在邮件或昵称的帐户。

我的登录代码有效......差不多。

<?php
session_start();
[...]
$query_users = "SELECT `name`, `password`, `id_user` FROM `users`";
$result_users = mysqli_query($link, $query_users);
while ($row = mysqli_fetch_assoc($result_users))
{
    if (($row['name'] == $_POST['nickname']) && ($row['password'] == $_POST['password']))
    {
        $_SESSION['id'] = $row['id_user'];
        $_SESSION['name'] = $row['name'];
        header('Location: /Myblog/?action=login_success');
    }
}
?>

如果您的用户名/密码与数据库中的内容不匹配,则无法登录。但是,一旦我更改页面,服务器似乎就不会记住我的$ _SESSION:检查?action=login_success

<?php
$user = $_SESSION['name'];
echo 'Welcome, $user.';
?>

它只显示“欢迎,”。有谁知道为什么它不起作用?我是否必须改变我的代码构建方式,或者只是我忘记了一些东西?

2 个答案:

答案 0 :(得分:1)

您忘记将session_start()放入第二个文件中。必须将此函数放在要在

中使用会话的每个文件中

答案 1 :(得分:0)

你也忘了加双重引用欢迎信息,如:

echo "Welcome, $user";

单引号不解析变量。