Hallo,
Ik een tijdje geleden een inlogscript geschreven. Van de week ben ik weer eens begonnen met wat te spelen met php. Nu heb ik dit inlogscript bijna letterlijk gekopieerd, het enige verschil is dat ik nu gebruik (wil) maken van classes en functies. Nu is echter het probleem, ik kan inloggen, maar wanneer ik naar een andere pagina ga blijkt de sessie weer leeg te zijn. Ik heb het nu al een paar keer na gelopen en ik snap eigenlijk niet wat ik fout doe. Vergeleken met het vorige script en weinig verschil te vinden. Ziet iemand wat ik fout doe?
Hier de relevante code:
Functies:
Code waarmee ik inlog:
Het laatste stukje php staat in een andere file, genaamd index.php, en bovenaan heb ik de class file geinclude en de variable $func aan toegekend.
Alvast bedankt!
Ik een tijdje geleden een inlogscript geschreven. Van de week ben ik weer eens begonnen met wat te spelen met php. Nu heb ik dit inlogscript bijna letterlijk gekopieerd, het enige verschil is dat ik nu gebruik (wil) maken van classes en functies. Nu is echter het probleem, ik kan inloggen, maar wanneer ik naar een andere pagina ga blijkt de sessie weer leeg te zijn. Ik heb het nu al een paar keer na gelopen en ik snap eigenlijk niet wat ik fout doe. Vergeleken met het vorige script en weinig verschil te vinden. Ziet iemand wat ik fout doe?
Hier de relevante code:
Functies:
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
| function checkLogin(){ session_start(); if(isset($_SESSION['id'])){ return true; }else { return false; } } function login($user, $password){ $this->connect(); if(isset($_SESSION['id'])){ return false; }else { $user = mysql_real_escape_string($user); $pass = mysql_real_escape_string(md5($password)); $sql = ("SELECT * FROM users WHERE username='" . $user . "' AND pass='" . $pass . "'"); $uitvoer = mysql_query($sql); $controle = mysql_num_rows($uitvoer); if ($controle != 0) { //kijk of er een match is gevonden while ($record = mysql_fetch_object($uitvoer)) { //haal gegevens uit de DB en stop ze in vars $id = $record->id; $naam = $record->username; } session_start(); //check. gegevens klopppen. maak sessie aan met de gegevens $_SESSION['id'] = $id; $_SESSION['naam'] = $naam; return true; } else { return false; }}} |
Code waarmee ik inlog:
PHP:
1
2
3
4
5
6
7
8
9
10
11
| if(isset($_POST['Submit']) && $func->checkLogin()==false) { if(empty($_POST['username']) || empty($_POST['password'])) { $error = "niet alle velden zijn ingevuld!"; } else { $func->login($_POST['username'],$_POST['password']); if( $func->checkLogin() == false) { $error = "Foutieve loggingegevens!"; } } } |
Het laatste stukje php staat in een andere file, genaamd index.php, en bovenaan heb ik de class file geinclude en de variable $func aan toegekend.
Alvast bedankt!