Hallo mensen!

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...

Weet iemand wat ik hieraan kan doen?

Alvast bedankt!
Misschien handig wat relevante code te posten? DIt is wel erg weinig info om een probleem op te lossen...
Waarschijnlijk is je submit controle niet goed. Wij moeten nu maar gaan raden omdat jij niks laat zien.

<?php
if(strtolower($_SERVER['REQUEST_METHOD']) == 'post')
{
echo 'Er is gepost';
}
?>
<?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 {
?>

<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
<table border="0">
<tr><td colspan=2><h1>Inloggen</h1></td></tr>
<tr><td>Gebruikersnaam:</td><td>
<input type="text" name="username" maxlength="40">
</td></tr>
<tr><td>Wachtwoord:</td><td>
<input type="password" name="pass" maxlength="50">
</td></tr>
<tr><td>Ingelogd blijven:</td><td>
<INPUT TYPE="checkbox" NAME="blijfingelogd" VALUE="Ja!">
</td></tr>
<tr><td colspan="2" align="right">
<input type="submit" name="submit" value="Login">
</td></tr>
<tr><td colspan="2" align="right">
<a href=wachtwoord.php>Wachtwoord vergeten?</a>
</td></tr>
</table>
</form>
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).
Hey, bedankt! Eerst werkte het wel... heb de site dit hele weekend getest met Chrome en alles werkte!

maar bedankt!
Wat is je site dan kunnen we even testen
Klaasjan Boven schreef op 24.01.2010 21:50
Wat is je site dan kunnen we even testen

Hoezo, het werkt nu toch?
Klaasjan Boven schreef op 24.01.2010 21:50
Wat is je site dan kunnen we even testen

Als hij die controle op submit heeft aangepast voor wat ik of Turmin zei, dan werkt het per definitie.
if(strtolower($_SERVER['REQUEST_METHOD']) == 'post')


Waarom moet dit? Php heeft toch helemaal niks met de browser te maken?
Bij mij werkt een post formulier gewoon zonder server_method.??
Het is altijd POST, nooit Post, POst, post, of wat je dan ook wilt. Je kunt dus $_SERVER['REQUEST_METHOD'] altijd gelijkstellen aan POST.

Reageren