Session probleem gaat naar ELSE terwijl de sessie gewoon bestaat
Ik heb een probleem met een session die ik aanmaak op een login pagina. Hij pakt namelijk de else in de index pagina hoewel er in de if naar een sessie wordt gevraagd en deze toch echt bestaat. Via error reporting heb ik al fouten proberen te vinden, deze heb ik verder niet gevonden.
Login.php
Index.php
Suggesties/tips zijn altijd welkom ;)
Login.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
41
42
43
44
45
46
47
48
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
<?php
require_once('config.php');
if(isset($_POST['userName']))
{
$userName = mysql_real_escape_string($_POST['userName']);
$password = md5(mysql_real_escape_string($_POST['password']));
$selectUser = "SELECT
db_user.id,
db_user.UserName,
db_user.Password
FROM
db_user
WHERE
db_user.UserName = '".$userName."' AND
db_user.Password = '".$password."'
Limit 1";
$resultUser = mysql_query($selectUser);
$aantal_bedrijven=mysql_num_rows($resultUser);
if($aantal_bedrijven >0)
{
while($rowUser = mysql_fetch_array($resultUser))
{
header('Location: http://www.puurdb.nl/winkels/puuroranje/index2.php');
echo 'U bent ingelogd';
$_SESSION['user']=$rowUser['id'];
}
}
else
{
echo('Verkeerd wachtwoord.');
}
}
else
{
echo '
<form action="login.php" method="post">
<div class="login"> Gebruiksnaam <input type="text" name="userName"></br>
<div class="login"> Wachtwoord <input type="password" name="password"></br>
<input type="submit" value="submit" name="submit">
</form>
';
}
?>
require_once('config.php');
if(isset($_POST['userName']))
{
$userName = mysql_real_escape_string($_POST['userName']);
$password = md5(mysql_real_escape_string($_POST['password']));
$selectUser = "SELECT
db_user.id,
db_user.UserName,
db_user.Password
FROM
db_user
WHERE
db_user.UserName = '".$userName."' AND
db_user.Password = '".$password."'
Limit 1";
$resultUser = mysql_query($selectUser);
$aantal_bedrijven=mysql_num_rows($resultUser);
if($aantal_bedrijven >0)
{
while($rowUser = mysql_fetch_array($resultUser))
{
header('Location: http://www.puurdb.nl/winkels/puuroranje/index2.php');
echo 'U bent ingelogd';
$_SESSION['user']=$rowUser['id'];
}
}
else
{
echo('Verkeerd wachtwoord.');
}
}
else
{
echo '
<form action="login.php" method="post">
<div class="login"> Gebruiksnaam <input type="text" name="userName"></br>
<div class="login"> Wachtwoord <input type="password" name="password"></br>
<input type="submit" value="submit" name="submit">
</form>
';
}
?>
Index.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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
include('config.php');
require_once('header.php');
if(isset($_SESSION['user']))
{
include('functions.php');
// VERDERE IF RESULTS
}
else
{
include('functions.php');
include('login.php');
}
require_once('footer.php');
?>
include('config.php');
require_once('header.php');
if(isset($_SESSION['user']))
{
include('functions.php');
// VERDERE IF RESULTS
}
else
{
include('functions.php');
include('login.php');
}
require_once('footer.php');
?>
Suggesties/tips zijn altijd welkom ;)
session_start bij index.php in ieder geval
Toevoeging op 15/11/2010 15:52:24:
bij login.php ook session starten
Toevoeging op 15/11/2010 15:52:24:
bij login.php ook session starten
Het werkt bedankt! Maar raar dat dit niet hoeft bij mijn andere login script (de login pagina). Verder alsnog bedankt!
Nee hoor, niets is raar, het is logisch!
Op het moment dat je een waarde uit de $_SESSION wilt gebruiken of wilt toevoegen moet eerst de sessie gestart worden in je script.
Je hebt in je index.php de login.php als include, dus als je in index.php al de sessie hebt gestart dan is deze ook in je login.php beschikbaar.
Misschien moet je overwegen om niet include maar juist require te gebruiken. Als de pagina (om wat voor reden dan ook) niet beschikbaar is wordt deze overgeslagen bij een include. Is het een require dan volgt er een error aangezien deze required (vereist) is!
Succes!
Op het moment dat je een waarde uit de $_SESSION wilt gebruiken of wilt toevoegen moet eerst de sessie gestart worden in je script.
Je hebt in je index.php de login.php als include, dus als je in index.php al de sessie hebt gestart dan is deze ook in je login.php beschikbaar.
Misschien moet je overwegen om niet include maar juist require te gebruiken. Als de pagina (om wat voor reden dan ook) niet beschikbaar is wordt deze overgeslagen bij een include. Is het een require dan volgt er een error aangezien deze required (vereist) is!
Succes!




