Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>First of all:</p> <pre><code> // User pressed "Login" if (count($_POST)) { $result = mysql_query("SELECT id FROM users WHERE username = '".mysql_real_escape_string($_POST['username'])."' AND password = '".mysql_real_escape_string($_POST['password'])."' "); if (mysql_num_rows($result) == 0) { $error = '&lt;script&gt;alert("Wrong username and/or password.\nTry again.") &lt;/script&gt;'; } else { $_SESSION['id'] = mysql_result($result, 0, 'id'); header("Location: login.php"); mysql_query("UPDATE users SET session_key = '".md5($_SERVER['REMOTE_ADDR'])."'"); setcookie("autologin", md5($_SERVER['REMOTE_ADDR']), time()+3600); } } </code></pre> <p>In the last section where you have written:</p> <pre><code>header("Location: login.php"); </code></pre> <p>You are updating database and setting cookie, after you are redirecting the user by header function. So your code never updates and set that cookie. Change it to:</p> <pre><code> // User pressed "Login" if (count($_POST)) { $result = mysql_query("SELECT id FROM users WHERE username = '".mysql_real_escape_string($_POST['username'])."' AND password = '".mysql_real_escape_string($_POST['password'])."' "); if (mysql_num_rows($result) == 0) { $error = '&lt;script&gt;alert("Wrong username and/or password.\nTry again.") &lt;/script&gt;'; } else { $_SESSION['id'] = mysql_result($result, 0, 'id'); mysql_query("UPDATE users SET session_key = '".md5($_SERVER['REMOTE_ADDR'])."'"); setcookie("autologin", md5($_SERVER['REMOTE_ADDR']), time()+3600); header("Location: login.php"); } } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload