简体   繁体   English

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

[英]PHP and Mysql - How can I get my login system to work with my database?

I've been coding for a short while now, and I am currently creating a website in PHP, html and with a mysql database. 我已经编码了一段时间,目前正在用PHP,html和mysql数据库创建一个网站。 I got a table in my database for users, and my registration code works well : it registers the user, with the email adress, name, nickname and password he chose ; 我在数据库中为用户找到了一个表,我的注册代码运行良好:它用用户选择的电子邮件地址,姓名,昵称和密码注册用户; and an account with an already existing mail or nickname cannot be created. 并且无法创建具有现有邮件或昵称的帐户。

My login code works... Almost. 我的登录代码有效。

<?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');
    }
}
?>

You can't login if your username/password doesn't match with something in the database. 如果您的用户名/密码与数据库中的内容不匹配,则无法登录。 But it seems that my $_SESSION aren't remembered by the server as soon as I change my page : check ?action=login_success 但是似乎我更改页面后服务器就不记得我的$ _SESSION了:检查?action=login_success

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

And it only displays "Welcome, ." 并且仅显示“ Welcome,”。 Does anyone know why it doesn't work ? 有谁知道为什么它不起作用? Do I have to change all the way my code is built or is it just a little something that I forgot ? 我是否必须更改代码构建的全部方式,还是只是忘记了一些东西?

You forgot to put session_start() in your second file. 您忘记将session_start()放在第二个文件中。 This function must be put in every file where you want to use sessions in 此功能必须放在您要在其中使用会话的每个文件中

Also you forgot to double quote the welcome message, like that: 同样,您也忘记了对欢迎消息加双引号,例如:

echo "Welcome, $user";

Single quotes don't parse variables. 单引号不解析变量。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM