Kan iemand mij helpen, alvast bedankt.
Dit script dient om in te loggen op de site,
(dit is maar een deel van het script).

Het enige probleem is dat je niet wordt doorgestuurd nadat je met correcte gegevens hebt ingelogd terwijl
in de database onder de tabelnaam sessions wel degelijk de gegevens worden gestockeerd.

Wie kan mij helpen?

<?php
if(!$error){
$selectleden = mysql_query("SELECT * FROM users WHERE inlog='$inlog' AND wachtwoord = '$ww'");
if(mysql_num_rows($selectleden)) {
// Ingelogd
$hash = md5(uniqid(rand(), true));
$get_id = mysql_query("SELECT id FROM users WHERE inlog='$inlog' AND wachtwoord = '$ww'");
$fetch_id = mysql_fetch_assoc($get_id);
$insert_session = mysql_query("INSERT INTO sessions (id, userid, hash, logintime) VALUES ('','".$fetch_id['id']."','".$hash."',NOW())");

if ($insert_session) {
setcookie ("id", $fetch_id['id'],time()+$sessiontime);
setcookie ("hash", $hash,time()+$sessiontime);
header('Window-target: _parent');
header('location:beveiligd.html');
} else {
$error="FOUT";
exit();
}
} else {
// Foute pass
$error = "Fout wachtwoord!";
}



}
}

if(!$error){
echo $error;}

mysql_close($link);

?>
Ik heb het eens geprobeerd door het gewoon op te roepen in plaats van via het script en als ik dan

$inlog = 'gebruikersnaam';
$ww= 'wachtwoord';

dit invul met de juiste gegevens lukt het wel.
Dus dan zit het probleem niet in de code die ik net toonde

Toevoeging op 16/08/2013 17:25:50:

Dus volgens mij wil hij gewoon niet redirecten ...
door het gewoon op te roepen
'het' ?

Ik denk dat het voor jezelf het gemakkelijkste is om een betere foutcontrole toe te gaan passen op o.a. je query's. Als een query nu niet lukt of fout is, gaat je script gewoon door zonder dat je weet dat er iets fout is gegaan. Nu loop je tegen problemen aan.
Jos, heb je onze tips al toegepast, en bij elk onderdeel van je statement een aparte echo geplaatst?

En waar komen $inlog en $ww vandaan?
als ik het script login.php uitvoer dan werkt het helemaal.
Als ik het oproep via mijn form krijg ik enkel een row in sessions maar wordt ik niet doorgestuurd.
Dan lijkt het erop dat $ww en $login niet bestaan.
Hier zit wellicht ook al een fout:


"INSERT INTO sessions (id, userid, hash, logintime) VALUES ('',


Zit op id een auto_increment? Zo ja; kun je het ook zo doen:


"INSERT INTO sessions (userid, hash, logintime) VALUES ('".mysql_real_escape_string($fetch_id['id'])."','".mysql_real_escape_string($hash)."',NOW())");

Toch wel want als je gaat kijken in de database wordt de juiste userid getoond.
en je doet


if(mysql_num_rows($selectleden)) 


probeer dit eens met:

if(mysql_num_rows($selectleden) == 1){ 


heb je bij alle query's al een foutafhandeling (mysql_error) bijgezet?
Ramon van Dongen op 16/08/2013 17:32:37

en je doet


if(mysql_num_rows($selectleden)) 


probeer dit eens met:

if(mysql_num_rows($selectleden) == 1){ 


heb je bij alle query's al een foutafhandeling (mysql_error) bijgezet?


Ja foutafhandeling gedaan, krijg geen errors.

Ja foutafhandeling gedaan, krijg geen errors.

Met alle respect, maar ik geloof het niet 100%.

Dus jij beweert dat:
- Alle query's kloppen (geen mysql_errors)
- De php code 100% klopt (door error_reporting geen errors)
- De if statement uitgevoerd wordt (je hebt een echo ertussen gezet)
- Je geen foutmelding van de header krijgt (headers already send ofzo)

Maar het toch niet werkt... ?

Reageren