【问题标题】:Why does my Username and email not save in sql server (localhost)为什么我的用户名和电子邮件没有保存在 sql server (localhost) 中
【发布时间】: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查询显示代码更好吗?

标签: php mysql localhost


【解决方案1】:

你没有从 post 数组中获取值,所以这样做:

$username   = $db->real_escape_string($_POST['username']);
$password   = $db->real_escape_string($_POST['password']);

我假设表单字段的名称为 usernamepassword

这不仅仅与检索有关,看来您还需要检查保存操作。您在注册期间存储了空值。

【讨论】:

    【解决方案2】:

    那个工作@danyal Sandeelo。我感到难以置信的愚蠢,因为我尝试了 $_POST 但我这样做了: $username = $_POST['username']; $username = $db->real_escape_string;

    【讨论】:

    • 我很高兴它帮助了你。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-08
    • 2015-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多