Ben bezig met een inlogsysteem voor een website met webshop, de gebruikers zijn gedefineerd in de database en worden geidentificeerd aan de hand van hun emailadres
bestanden:
loginform.php, formulier om in te kunnen loggen
login.php, verwerking van loginform.php
reqlogin.php, checkt of iemand is ingelogd
// loginform.php
// login.php
So far so good, ik krijg namelijk gewoon de melding "Je bent ingelogd als $email".
Maar dan begint het, als ik wil gaan checken of een gebruiker is ingelogd loopt het dus mis.
// reqlogin.php
Verder roep ik in het bestand waar gecontroleerd moet worden of een gebruiker is ingelogd nog de volgende functie aan:
Maar dit resulteert dus in de foutmelding: "MisluktNiet ingelogd". Dus van allebei de stukken een foutmelding.
Ik snap er niks van, ben al een paar avonden hiermee bezig maar ik kom er niet uit, ik hoop dus dat iemand hier me kan vertellen wat ik fout doe.
bestanden:
loginform.php, formulier om in te kunnen loggen
login.php, verwerking van loginform.php
reqlogin.php, checkt of iemand is ingelogd
// loginform.php
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
| <? include ("../db.inc"); mysql_connect("$host","$db_user","$db_psw"); mysql_select_db("$db_name"); $username = $_COOKIE['username']; $password = $_COOKIE['password']; $sql = "SELECT * FROM users WHERE email='$email' AND password='$password'"; $select = mysql_query($sql); if(mysql_num_rows($select) == 1) { echo 'Ingelogged als '.$_COOKIE['email']; echo '<br><a href=/users/logout.php>logout</a>'; } else { echo "<form action=login.php method=post name=login.php id=login.php> Username: <input name=email type=text id=email> <br> Password: <input name=password type=password id=password> <br> <input name=submit type=submit id=submit value=Login> </form>"; } ?> |
// login.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| <? include ("../db.inc"); mysql_connect("$host","$db_user","$db_psw"); mysql_select_db("$db_name"); $sql = "SELECT * FROM users WHERE email='$email' AND password='$password'"; $select = mysql_query($sql); if(mysql_num_rows($select) == 1) { setcookie('email', $email, time()+36000); setcookie('password', $password, time()+36000); echo "Je bent ingelogd als $email"; } else { echo "De door jou ingevoerde gegevens zijn onjuist"; } ?> |
So far so good, ik krijg namelijk gewoon de melding "Je bent ingelogd als $email".
Maar dan begint het, als ik wil gaan checken of een gebruiker is ingelogd loopt het dus mis.
// reqlogin.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| <? include ("../db.inc"); mysql_connect("$host","$db_user","$db_psw"); mysql_select_db("$db_name"); function is_logged_in() { $email = $_COOKIE['email']; $password = $_COOKIE['password']; $sql = "SELECT * FROM users WHERE email='$email' AND password='$password'"; $select = mysql_query($sql); if(mysql_num_rows($select) == 1) { echo "Ingelogd"; } else { echo "Misklukt"; } } ?> |
Verder roep ik in het bestand waar gecontroleerd moet worden of een gebruiker is ingelogd nog de volgende functie aan:
PHP:
1
2
3
4
5
6
7
| if(is_logged_in() == 1){ //ingelogged, laat pagina zien } else { echo "Niet ingelogd"; } |
Maar dit resulteert dus in de foutmelding: "MisluktNiet ingelogd". Dus van allebei de stukken een foutmelding.
Ik snap er niks van, ben al een paar avonden hiermee bezig maar ik kom er niet uit, ik hoop dus dat iemand hier me kan vertellen wat ik fout doe.
[ Voor 26% gewijzigd door Verwijderd op 05-05-2003 23:11 ]