niet inloggen (ODBC)
ik ben bezig met een FAQ Systeem met een MS Access Database
maar nu zit ik met een probleem
hij blijft maar aangeven dat de gebruikersnaam en wachtwoord niet kloppen
Deze staan echter wel in de database
ik heb het script nagekeken maar zie geen enkele fout
misschien dat iemand anders hem ziet
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?
// controle op het formulier
// rs = 0 staat ervoor dat het formulier nog niet verstuurt is en dat hij die eerst moet laten zien
if(empty($_GET['rs'])) { $rs = "0";} else {$rs = $_GET['rs'];}
// script voor als het formulier verstuurt is
if($rs == "1"){
// variabelen ophalen uit het formulier
$username = $_POST['username'];
$password = $_POST['password'];
// query opmaken om de ingevoerde gebruikersnaam en wachtwoord uit de database te halen
$query = "SELECT * FROM users WHERE username='$username' AND password='$password'"; if(empty($query)){echo "Query failed";}
// de query uitvoeren
$exec = odbc_exec($con, $query); if(empty($exec)){echo "odbc_exec failed";}
// kijken of er een gebruiker bestaat met die username en wachtwoord
$aantal = odbc_num_rows($exec);
// als de gebruiker bestaat hem inloggen
if($aantal > 0){
// de admin status aan de gebruikersnaam koppelen
$admin = $username;
// een sessie aanmaken voor die gebruiken
session_register("admin");
// een berichtje weergeven
echo "U bent succesvol ingelogt<br>Klik <a href=\"index.php?pid=home\">hier</a> om terug te gaan naar de index";
}
// als de combinatie van het wachtwoord en gebruiksersnaam niet klopte dit uitvoeren
else{
echo "De combinatie van die gebruikersnaam en wachtwoord waren niet correct";
}
}
else{
?>
<table border="1" align="center" width="200" cellpadding="0" cellspacing="0" style="margin-top: 5px; margin-bottom: 5px;">
<Tr>
<form action="index.php?pid=login&rs=1" method="POST">
<Td>
Gebruikersnaam:<br>
<input type="text" name="username">
<br>
<br>
Wachtwoord:<Br>
<input type="password" name="password"><br>
<input type="submit" value="Log in">
</td>
</tr>
</table>
<?
}
?>
// controle op het formulier
// rs = 0 staat ervoor dat het formulier nog niet verstuurt is en dat hij die eerst moet laten zien
if(empty($_GET['rs'])) { $rs = "0";} else {$rs = $_GET['rs'];}
// script voor als het formulier verstuurt is
if($rs == "1"){
// variabelen ophalen uit het formulier
$username = $_POST['username'];
$password = $_POST['password'];
// query opmaken om de ingevoerde gebruikersnaam en wachtwoord uit de database te halen
$query = "SELECT * FROM users WHERE username='$username' AND password='$password'"; if(empty($query)){echo "Query failed";}
// de query uitvoeren
$exec = odbc_exec($con, $query); if(empty($exec)){echo "odbc_exec failed";}
// kijken of er een gebruiker bestaat met die username en wachtwoord
$aantal = odbc_num_rows($exec);
// als de gebruiker bestaat hem inloggen
if($aantal > 0){
// de admin status aan de gebruikersnaam koppelen
$admin = $username;
// een sessie aanmaken voor die gebruiken
session_register("admin");
// een berichtje weergeven
echo "U bent succesvol ingelogt<br>Klik <a href=\"index.php?pid=home\">hier</a> om terug te gaan naar de index";
}
// als de combinatie van het wachtwoord en gebruiksersnaam niet klopte dit uitvoeren
else{
echo "De combinatie van die gebruikersnaam en wachtwoord waren niet correct";
}
}
else{
?>
<table border="1" align="center" width="200" cellpadding="0" cellspacing="0" style="margin-top: 5px; margin-bottom: 5px;">
<Tr>
<form action="index.php?pid=login&rs=1" method="POST">
<Td>
Gebruikersnaam:<br>
<input type="text" name="username">
<br>
<br>
Wachtwoord:<Br>
<input type="password" name="password"><br>
<input type="submit" value="Log in">
</td>
</tr>
</table>
<?
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Vincent -
Je hebt het wachtwoord niet gehashed/gecodeert opgeslagen?
alles klopt
heb het script laten nakijken door een vriend van me die zag ook niks
een ander script op dezelvde database werkt perfect
*bump*
Kan je een echo doen van je query; je krijgt dan dus:
Code (php)
1
echo $query = "SELECT * FROM users WHERE username='$username' AND password='$password'"; if(empty($query)){echo "Query failed";}
Nog een aantal opm. tenaanzien van de code. Haal variabelen buiten de quotes.
Gebruik geen shorttags
kan
maar ik heb al zoveel geprobeert
sessies ligt het ook niet aan
variabelen worden aangemaakt
query klopt
script zitten (voor mijn weten) geen fouten in
maar hij blijft maar aangeven dat de username & password niet kloppen
Een nieuwe sessie variabelen maak je niet aan met session_register maar met:
$_SESSION['naam-van-variabelen'] = waarde
Plaatst is het resultaat van de echo
vincent schreef op 04.03.2007 15:35:
hmm
kan
maar ik heb al zoveel geprobeert
sessies ligt het ook niet aan
variabelen worden aangemaakt
query klopt
script zitten (voor mijn weten) geen fouten in
maar hij blijft maar aangeven dat de username & password niet kloppen
kan
maar ik heb al zoveel geprobeert
sessies ligt het ook niet aan
variabelen worden aangemaakt
query klopt
script zitten (voor mijn weten) geen fouten in
maar hij blijft maar aangeven dat de username & password niet kloppen
Vaak zijn het maar hele kleine foutjes, maar wat webmakerij zegt kan je helpen om de fout te vinden. Zet gewoon even de echo neer van de query, het voordeel ervan is dat je snel kan zien of de query wel goed is na het toevoegen van die variabelen.
Als je een fout wil vinden, dan moet je ok alles proberen om die fout te ontdekken.
Webmakerij schreef op 04.03.2007 16:14:
session_start ontbreekt¿
Een nieuwe sessie variabelen maak je niet aan met session_register maar met:
$_SESSION['naam-van-variabelen'] = waarde
Plaatst is het resultaat van de echo
Een nieuwe sessie variabelen maak je niet aan met session_register maar met:
$_SESSION['naam-van-variabelen'] = waarde
Plaatst is het resultaat van de echo
session_start(); staat inde index.php
echo van de query:
SELECT * FROM users WHERE username='admin' AND password='admin'
Gewijzigd op 01/01/1970 01:00:00 door vincent -
en ik heb het even nagekeken
maar als ik het aantal van de odbc_num_rows laat weergeven komt die uit op -1
dus het lijkt wel alsof die geen resultaten ophaalt
is de ODBC ondersteuning in apache wel goed ?