Login script
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?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?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);
?>
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);
?>
Voglens mij is header('Window-target: _parent'); geen geldige header?
en als je header('Window-target: _parent'); weg haalt en location in header('location:beveiligd.html'); laat beginnen met een hoofdletter L ?
Nee werkt nog steeds niet :(
Want wat gebeurt er wel?
Gewijzigd op 16/08/2013 17:13:28 door - Ariën -
Oftewel: komt het script wel echt bij die header('Location: ...'); uit?
Gewijzigd op 16/08/2013 17:17:04 door Ramon van Dongen
Ik kan niet aan het .ini bestand ...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Ik weet echter wel dat ik in de tabel sessions telkens rows bij krijg tijdens het proberen ..
Gooi eens een echo in elk statement, puur om te debuggen.
En wat gebeurt er nu juist wel?
Gewijzigd op 16/08/2013 17:20:43 door - Ariën -
Quote:
Ik ben niet zeker dat dit deel wordt uitgevoerd
Dat is toch wel handig om te weten, misschien werkt je header wel maar komt het script er nooit
zet net boven je setcookie regels eens:
---
offtopic: grapig dat ik op dit forum steeds hetzelfde op bijna hetzelfde moment als een ander post ;-) - Aar -
Gewijzigd op 16/08/2013 17:20:54 door Ramon van Dongen
$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 ...
Quote:
'het' ?door het gewoon op te roepen
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.
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.
Zit op id een auto_increment? Zo ja; kun je het ook zo doen:
Toch wel want als je gaat kijken in de database wordt de juiste userid getoond.
probeer dit eens met:
heb je bij alle query's al een foutafhandeling (mysql_error) bijgezet?
Gewijzigd op 16/08/2013 17:35:31 door Ramon van Dongen
Ramon van Dongen op 16/08/2013 17:32:37:
Ja foutafhandeling gedaan, krijg geen errors.
Quote:
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... ?