Ik ben dit weekend druk bezig geweest met een re-design van mijn website, maar zit nu nogal met een probleem.
Ik wilde zelf inloggen op de site, met Google Chrome als browser, maar toen ik op Inloggen klikte na het invullen van mijn gebruikersnaam en wachtwoord, kwam ik gewoon weer op de login pagina.
Toen ik IE erbij pakte werkte het wel, dus het licht aan Chrome...
<?php
// Connects to your Database
mysql_connect("host", "User", "mijnmooiewachtwoord") or die(mysql_error());
mysql_select_db("DB") or die(mysql_error());
//Checks if there is a login cookie
if(isset($_COOKIE['koekje1']))
//if there is, it logs you in and directes you to the members page
{
$username = $_COOKIE['koekje1'];
$i = $_COOKIE['koekje2'];
$check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error());
while($info = mysql_fetch_array( $check ))
{
if ($i != $info['id'])
{
}
else
{
header("Location: lid.php?id=$id");
}
}
}
//if the login form is submitted
if (isset($_POST['submit'])) { // if form has been submitted
// makes sure they filled it in
if(!$_POST['username'] | !$_POST['pass']) {
die('Je hebt een verplicht veld niet ingevuld!');
}
// checks it against the database
if (!get_magic_quotes_gpc()) {
$_POST['email'] = addslashes($_POST['email']);
}
$check = mysql_query("SELECT * FROM users WHERE username = '".$_POST['username']."'")or die(mysql_error());
//select the table
$result = mysql_query("select ID from users WHERE username = '".$_POST['username']."'");
//grab all the content
while($r=mysql_fetch_array($result))
$id=$r["ID"];
//Gives error if user dosen't exist
$check2 = mysql_num_rows($check);
if ($check2 == 0) {
die('Die gebruiker bestaat niet. <a href=lregister.php>Wil je deze aanmaken?</a>');
}
while($info = mysql_fetch_array( $check ))
{
$_POST['pass'] = stripslashes($_POST['pass']);
$info['password'] = stripslashes($info['password']);
$_POST['pass'] = crc32($_POST['pass']);
$_POST['pass'] = md5($_POST['pass']);
$_POST['pass'] = sha1($_POST['pass']);
//gives error if the password is wrong
if ($_POST['pass'] != $info['password']) {
die('Verkeerd wachtwoord, probeer opnieuw.<BR>Heb je een account van voor 15 januari 2010? Klik dan <a href=lloginoud.php title="Hier kun je je inloggen met een oud account, met oude versleuteling">HIER om je in te loggen, en verander gelijk je wachtwoord!');
}
else
{
if ($_POST['blijfingelogd'] == 'Ja!'){
// if login is ok then we add a cookie
$_POST['username'] = ($_POST['username']);
$hour = time() + 31536000;
setcookie(koekje1, $_POST['username'], $hour);
setcookie(koekje123, $id, $hour);
}
else{
// if login is ok then we add a cookie
$_POST['username'] = ($_POST['username']);
setcookie(koekje1, $_POST['username']);
setcookie(koekje13, $id);
}
//then redirect them to the members area
header("Location: lid.php?id=$id");
}
}
}
else {
?>
Zie regel 28. Daar kijk je of $_POST['submit'] bestaat.
Je moet altijd if($_SERVER['REQUEST_METHOD'] == 'POST') gebruiken omdat sommige browsers (niet alleen Chrome) die submit niet mee sturen (is namelijk geen vereiste geloof ik).