Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <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>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

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