2016-04-13 36 views
0

我正在使用此代码登录用户,并且我想更新MySQL数据库中已登录的列的值为yes。我在发送标题之前尝试更新它,但没有更新。我应该在哪里放置代码来更新列?当用户登录时在mysql数据库中更新列

if (isset($_POST['login'])) 
    { 
    $username = trim(mysqli_real_escape_string($con, $_POST['username'])); 
    $password = trim(mysqli_real_escape_string($con, $_POST['password'])); 
    $md5password = md5($password); 

    // check user and password match to the database 

    $query = mysqli_query($con, "SELECT * FROM `user` WHERE username='$username' AND password='$md5password'"); 

    // check how much rows return 

    if (mysqli_num_rows($query) == 1) 
     { 

     // login the user 
     // get the id of the user 

     $fetch = mysqli_fetch_assoc($query); 

     // start the session and store user id in the session 

     session_start(); 
     $_SESSION['id'] = $fetch['id']; 
     $_SESSION['username'] = $fetch['username']; 
     $query = mysqli_query($con,"UPDATE user SET loggedin = 'yes' WHERE userid = 1;"); 
     header("Location: message.php"); 
     } 
     else 
     { 

     // show error message 

     echo "<div class='alert alert-danger'>Invalid username Or password.</div>"; 
     } 
    } 
+0

不要紧,你把这样的命令。它必须被执行,就是这样。 – arkascha

+0

也许问题是在这个代码的任何地方都没有'UPDATE'操作... – David

+0

UPDATE'user' SET'loggedinin'='yes'WHERE'user'.'id' = 1;即时通讯使用这个,但它不会更新 –

回答

1

你不更新正确userid。要更新userid = 1,而不是属于谁登录的用户的ID应该是:

$query = mysqli_query($con,"UPDATE user SET loggedin = 'yes' WHERE id = {$_SESSION['id']};"); 
+0

它不会更新.. –

+0

它会得到一个错误吗? 'echo mysqli_error($ con);'show? – Barmar

+0

其工作..我没有改变用户ID在代码中的ID ...谢谢.. –

0

您需要更改此:

UPDATE user SET loggedin = 'yes' WHERE userid = 1; 

要这样:

mysqli_query($con, 'UPDATE user SET loggedin = 'yes' WHERE userid = 1'); 

请不要使用md5()功能散列密码,它是不是安全,使用这些功能相反:
http://php.net/manual/en/function.password-hash.php
http://php.net/manual/en/function.password-verify.php

还可以使用此:

if (mysqli_num_rows($query) == 1) 

要检查如果用户名存在,我建议将其更改为这样:

if (mysqli_num_rows($query)) 

它确实相同,但你需要更少的代码来做到这一点。

除此之外,也请学会如何将它们插入之前prepare您的疑问,当前的代码很容易受到SQL注入,更多关于可以在这里找到:
How can I prevent SQL injection in PHP?

+0

仍然没有更新... –

相关问题