我现在已经编写了一段时间,我目前正在创建一个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.';
?>
它只显示“欢迎,”。有谁知道为什么它不起作用?我是否必须改变我的代码构建方式,或者只是我忘记了一些东西?
答案 0 :(得分:1)
您忘记将session_start()
放入第二个文件中。必须将此函数放在要在
答案 1 :(得分:0)
你也忘了加双重引用欢迎信息,如:
echo "Welcome, $user";
单引号不解析变量。