【发布时间】:2018-04-10 14:08:02
【问题描述】:
我正在处理带有数据库的注册/登录页面(第一次) 每当我注册我的用户时,我都会在数据库中获得以下信息:
它给了我密码之类的东西,但它不会给我我的用户名和电子邮件(我也猜密码)
谁能帮我解决这个问题?
我的 php 代码如下所示:
<?php
session_start();
// connect to database
$db = mysqli_connect('localhost', 'root', '', 'toolsforever');
if (isset($_POST['login_btn'])) {
$username = $db->real_escape_string($username);
$password = $db->real_escape_string($password);
$password = md5($password); // hashed
$sql = "SELECT * FROM users WHERE username='$username' AND password='$password'";
$result = mysqli_query($db, $sql);
if (mysqli_num_rows($result) == 1) {
$_SESSION['message'] = "You are now logged in";
$_SESSION['username'] = $username;
header("location: home.php"); //redirect to home page
}else{
$_SESSION['message'] = "Username/password combination incorrect";
}
}
?>
提前致谢 PS:Password2=确认注册密码password==password2才可以注册。
【问题讨论】:
-
请不要存储纯文本密码,也不要用弱算法散列,使用PHP提供的password functions。
-
$username和$password未定义。您的意思是 $_POST['username'] 和 $_POST['password'] 还是类似的?至于为什么它在数据库中是空的?好吧,你没有告诉我们它的插入位置,所以不知道。 -
这些字段在您的数据库中是空的,那么您认为应该得到什么?
-
你是对的@JonStirling
-
您向我们展示了
select查询,但抱怨inserting 不起作用。你不觉得用insert查询显示代码更好吗?