$_SESSION wil niet werken
ik heb een klein probleem waar ik nu toch al even op zit te vloeken, mijn script wil namelijk geen $_SESSION aanmaken, iemand een idee hoe dat zou kunnen?
Code (php)
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
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
<?php
/* login controller*/
session_start();
/* imports */
require_once 'bussines/user.service.php';
$user_service = new UserService();
/* nakijken of er al ingelogd is */
if (isset($_SESSION['user_status']) && $_SESSION['user_status'] == 'true') {
$page = 'location: index.php';
}
else {
/* nakijken of inlog form ingevuld is en overeenkomstige afhandeling uitvoeren */
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (isset($_POST['username']) && $_POST['username'] != '') {
if (isset($_POST['pwd']) && $_POST['pwd'] != '') {
$validate = $user_service->validateUser($_POST['username'], md5($_POST['pwd']));
if ($validate == 'true') {
$_SESSION['user_status'] == 'logged_in';
/*print_r($_SESSION['user_status']);
exit();*/
$page = 'location: index.php';
}
else {
$error = 'Geef een juiste gebruikersnaam en/of paswoord in.';
$page = 'location: presentation/login.php';
}
}
}
}
else {
$page = 'location: presentation/login.php';
}
}
header($page);
/* login controller*/
session_start();
/* imports */
require_once 'bussines/user.service.php';
$user_service = new UserService();
/* nakijken of er al ingelogd is */
if (isset($_SESSION['user_status']) && $_SESSION['user_status'] == 'true') {
$page = 'location: index.php';
}
else {
/* nakijken of inlog form ingevuld is en overeenkomstige afhandeling uitvoeren */
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (isset($_POST['username']) && $_POST['username'] != '') {
if (isset($_POST['pwd']) && $_POST['pwd'] != '') {
$validate = $user_service->validateUser($_POST['username'], md5($_POST['pwd']));
if ($validate == 'true') {
$_SESSION['user_status'] == 'logged_in';
/*print_r($_SESSION['user_status']);
exit();*/
$page = 'location: index.php';
}
else {
$error = 'Geef een juiste gebruikersnaam en/of paswoord in.';
$page = 'location: presentation/login.php';
}
}
}
}
else {
$page = 'location: presentation/login.php';
}
}
header($page);
ligt het eens toe, wat gaat er niet goed met sessie?
if (isset($_SESSION['user_status']) && $_SESSION['user_status'] == 'true') {
Je controleert of $_SESSION['user_status'] geset is en of de waarde 'true' is. De waarde wordt nergens op 'true' gezet. Je set hier de waarde namelijk op 'logged_in':
$_SESSION['user_status'] == 'logged_in';
(Daarnaast zie ik dat je in je script een paar keer controleert op 'true'. Besef je wel dat je dan controleert op de string true en niet op de boolean true.)
$_SESSION['user_status'] == 'logged_in';
Je bedoelt waarschijnlijk een toekenning:
$_SESSION['user_status'] = 'logged_in';
Ah, die had ik nog niet eens gezien. Goed gezien SanThe.
Ozzie PHP op 31/05/2012 09:28:45:
(Daarnaast zie ik dat je in je script een paar keer controleert op 'true'. Besef je wel dat je dan controleert op de string true en niet op de boolean true.)
Ook een zeer belangrijk verschil.
Oooh, en bij een vergelijking hoort true of false niet tussen quotes ' ' te staan ;)
Chris NVT op 31/05/2012 09:40:02:
Oooh, en bij een vergelijking hoort true of false niet tussen quotes ' ' te staan ;)
Ah, daar hebben we Spuit 11 :)
@ozzie en santhe ik ben mij er degelijk van bewust dat ik controleer op de string true en niet de boolean true, dat is hier ook de bedoeling.
@ozzie had die typo in de eerste if else niet opgemerkt, goed dat je het zag had er al een paar keer overgezien.
@santhe ik had idd een toekenning nodig ipv een vergelijking. Daarmee is het probleem opgelost.
Iedereen bedankt voor de hulp, is weer zo een onnozele typo waar ik lang had kunnen op blijven zoeken, da komt ervan als je aan het scripten bent als je volk over de vloer hebt.
Mooi dat het is opgelost.