Sessies
een vraagje, ik heb problemen om een sessie te starten... ik weet wel dat ik
moet gebruiken, maar verder snap ik er niets van, ik zou graag dmv sessies op mijn site een admin, user en guest role willen maken, waarbij dat deze verschillende rechten hebben, en slechts 1x hoeven in te loggen..
greetz,
thewaterboy
Begin nog voordat je ook maar iets output naar de gebruiker je pagina met:
Dit gebruik je op elke pagina waarop je van deze sessie gebruik wil maken. (maar niet in pagina's die je include, dit geeft namelijk warnings/errors!) Vervolgens kan je door onderstaande te doen een waarde toekennen aan de sessie. Die is dan op elke pagina waar je je sessie start beschikbaar (voor een bepaalde tijd!)
Controleren gaat zoals je bent gewend door:
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<?php
include_once("connectie.php");
if ($_GET['actie'] == 'inloggen') {
// als inlogformulier is verstuurd
$naam=$_POST['lognaam'];
$query = "SELECT wachtwoord, niveau FROM gebruiker where gebruikersnaam='".$naam."'";
$content = mysql_query($query)
or die ("Kan de query niet uitvoeren".mysql_error("Er zit nog een fout in de eerste query"));
$login = mysql_fetch_object($content);
if ($_GET['actie'] == 'uitloggen') {
session_destroy();
echo"u bent afgemeld";
}
if(md5($_POST['wachtwoord'])==$login->wachtwoord ){
//als gegevens kloppen met die uit de database,sessie starten
session_start();
$_SESSION['suser'] = $naam;
$_SESSION['slevel'] = $login->niveau;
echo"Welkom $naam, u hebt momenteel bestellingen lopen en $aantalproducten aantal producten in uw winkelwagentje. <br /><p></p>
<input type='submit' value='uitloggen'> ";
else{
echo"Uw inloggegevens kloppen niet. <a href='index.php'>Probeer opnieuw</a>";
}
}
else if ($_GET['actie'] == 'registreren'){
//als men zich wil registreren
if(!empty($_POST['gebruikersnaam']) AND !empty($_POST['wachtwoord'])){
if($_POST['wachtwoord'] != $_POST['wachtwoordcontrole']) {
echo "De ingevoerde wachtwoorden kloppen niet!";
}
else{
$level=1;
$registreer = "INSERT INTO gebruiker(gebruikersnaam, niveau, wachtwoord, voornaam, naam, email, leeftijd, straat, nr, bus, postcode,gemeente)
VALUES ('".$_POST['gebruikersnaam']."','".$level."','".md5($_POST['wachtwoord'])."',
'".$_POST['voornaam']."','".$_POST['naam']."','".$_POST['email']."',
'".$_POST['leeftijd']."','".$_POST['straat']."',
'".$_POST['nr']."','".$_POST['bus']."','".$_POST['postcode']."',
'".$_POST['gemeente']."')";
mysql_query($registreer) or die ("Kan de gegevens niet invoeren" .mysql_error());
}
}
else{
echo
//registreerformulier
"<form action='gebruikers.php?actie=registreren' method='post'>
<table>
<tr>
<td colspan=2><h1>Registreren</h1></td>
</tr>
<tr>
<td>Gebruikersnaam: </td>
<td><input type='text' name='gebruikersnaam' size='16'></td>
</tr>
<tr>
<td>Wachtwoord: </td>
<td><input type='password' name='wachtwoord' size='16'></td>
</tr>
<tr>
<td>Wachtwoord controle: </td>
<td><input type='password' name='wachtwoordcontrole' size='16'></td>
</tr>
<tr>
<td>Voornaam: </td>
<td><input type='text' name='voornaam' size='16'></td>
</tr>
<tr>
<td>Naam: </td>
<td><input type='text' name='naam' size='16'></td>
</tr>
<tr>
<td>E-mailadres*: </td>
<td><input type='text' name='email' size='16'></td>
</tr>
<tr>
<td>Leeftijd: </td>
<td><input type='text' name='leeftijd' size='16'></td>
</tr>
<tr>
<td>Straat: </td>
<td><input type='text' name='straat' size='16'></td>
</tr>
<tr>
<td>Nr: </td>
<td><input type='text' name='nr' size='16'></td>
</tr>
<tr>
<td>Bus: </td>
<td><input type='text' name='bus' size='16'></td>
</tr>
<tr>
<td>Postcode: </td>
<td><input type='text' name='postcode' size='16'></td>
</tr>
<tr>
<td>Gemeente: </td>
<td><input type='text' name='gemeente' size='16'></td>
</tr>
<tr>
<td></td><td><input type='submit' value='registreer'></td>
</tr>
</table>
</form>";
}
}
else{
echo
//Inlog formulier
"<form action='index.php?actie=inloggen' method='post'>
<table>
<tr>
<td colspan=2><h1>Inloggen</h1></td>
</tr>
<tr>
<td> Gebruikersnaam </td>
<td><input type='text' name='lognaam' size='16'></td>
</tr>
<tr>
<td> Wachtwoord: </td>
<td><input type='password' name='wachtwoord' size='16'></td>
</tr>
<tr>
<td colspan=2><input type='submit' value='inloggen'> <br />
Nog geen account? <a href ='registreren.php' target='_self'>Registreer</a> hier !
</td>
</tr>
</table>
</form>";
}
?>
include_once("connectie.php");
if ($_GET['actie'] == 'inloggen') {
// als inlogformulier is verstuurd
$naam=$_POST['lognaam'];
$query = "SELECT wachtwoord, niveau FROM gebruiker where gebruikersnaam='".$naam."'";
$content = mysql_query($query)
or die ("Kan de query niet uitvoeren".mysql_error("Er zit nog een fout in de eerste query"));
$login = mysql_fetch_object($content);
if ($_GET['actie'] == 'uitloggen') {
session_destroy();
echo"u bent afgemeld";
}
if(md5($_POST['wachtwoord'])==$login->wachtwoord ){
//als gegevens kloppen met die uit de database,sessie starten
session_start();
$_SESSION['suser'] = $naam;
$_SESSION['slevel'] = $login->niveau;
echo"Welkom $naam, u hebt momenteel bestellingen lopen en $aantalproducten aantal producten in uw winkelwagentje. <br /><p></p>
<input type='submit' value='uitloggen'> ";
else{
echo"Uw inloggegevens kloppen niet. <a href='index.php'>Probeer opnieuw</a>";
}
}
else if ($_GET['actie'] == 'registreren'){
//als men zich wil registreren
if(!empty($_POST['gebruikersnaam']) AND !empty($_POST['wachtwoord'])){
if($_POST['wachtwoord'] != $_POST['wachtwoordcontrole']) {
echo "De ingevoerde wachtwoorden kloppen niet!";
}
else{
$level=1;
$registreer = "INSERT INTO gebruiker(gebruikersnaam, niveau, wachtwoord, voornaam, naam, email, leeftijd, straat, nr, bus, postcode,gemeente)
VALUES ('".$_POST['gebruikersnaam']."','".$level."','".md5($_POST['wachtwoord'])."',
'".$_POST['voornaam']."','".$_POST['naam']."','".$_POST['email']."',
'".$_POST['leeftijd']."','".$_POST['straat']."',
'".$_POST['nr']."','".$_POST['bus']."','".$_POST['postcode']."',
'".$_POST['gemeente']."')";
mysql_query($registreer) or die ("Kan de gegevens niet invoeren" .mysql_error());
}
}
else{
echo
//registreerformulier
"<form action='gebruikers.php?actie=registreren' method='post'>
<table>
<tr>
<td colspan=2><h1>Registreren</h1></td>
</tr>
<tr>
<td>Gebruikersnaam: </td>
<td><input type='text' name='gebruikersnaam' size='16'></td>
</tr>
<tr>
<td>Wachtwoord: </td>
<td><input type='password' name='wachtwoord' size='16'></td>
</tr>
<tr>
<td>Wachtwoord controle: </td>
<td><input type='password' name='wachtwoordcontrole' size='16'></td>
</tr>
<tr>
<td>Voornaam: </td>
<td><input type='text' name='voornaam' size='16'></td>
</tr>
<tr>
<td>Naam: </td>
<td><input type='text' name='naam' size='16'></td>
</tr>
<tr>
<td>E-mailadres*: </td>
<td><input type='text' name='email' size='16'></td>
</tr>
<tr>
<td>Leeftijd: </td>
<td><input type='text' name='leeftijd' size='16'></td>
</tr>
<tr>
<td>Straat: </td>
<td><input type='text' name='straat' size='16'></td>
</tr>
<tr>
<td>Nr: </td>
<td><input type='text' name='nr' size='16'></td>
</tr>
<tr>
<td>Bus: </td>
<td><input type='text' name='bus' size='16'></td>
</tr>
<tr>
<td>Postcode: </td>
<td><input type='text' name='postcode' size='16'></td>
</tr>
<tr>
<td>Gemeente: </td>
<td><input type='text' name='gemeente' size='16'></td>
</tr>
<tr>
<td></td><td><input type='submit' value='registreer'></td>
</tr>
</table>
</form>";
}
}
else{
echo
//Inlog formulier
"<form action='index.php?actie=inloggen' method='post'>
<table>
<tr>
<td colspan=2><h1>Inloggen</h1></td>
</tr>
<tr>
<td> Gebruikersnaam </td>
<td><input type='text' name='lognaam' size='16'></td>
</tr>
<tr>
<td> Wachtwoord: </td>
<td><input type='password' name='wachtwoord' size='16'></td>
</tr>
<tr>
<td colspan=2><input type='submit' value='inloggen'> <br />
Nog geen account? <a href ='registreren.php' target='_self'>Registreer</a> hier !
</td>
</tr>
</table>
</form>";
}
?>
deze pagina heb ik opgeslagen als gebruikers.php, deze include ik op mijn index in een div-tag waar dat ik dus mijn inlogformulier in toon. Ik heb ook nog problemen met mijn uitloggen, er zit een foutje in mijn session_destroy() denk ik...
In dat geval zal session_start() sowieso een foutmelding opleveren...
Gewijzigd op 01/01/1970 01:00:00 door thewaterboy
Dus zet hem bijvoorbeeld aan het begin van index.php neer. Zet bovendien ook eens:
boven aan je script. Dan worden alle foutmeldingen tenminste weergegeven...