Hoevaak mag je sessions gebruiken?
ik vroeg me af of je sessions zo vaak in een script mag gebruiken als je wilt (bv:
Code (php)
of dat je er maar één per browser mag gebruiken (dus zo:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$userid = '1';
$ip = '2';
$userstatus = '3';
$session = $userid.$ip.$userstatus.$_SERVER['HTTP_USER_AGENT'];
$_SESSION['je_moeder'] = $session;
?>
$userid = '1';
$ip = '2';
$userstatus = '3';
$session = $userid.$ip.$userstatus.$_SERVER['HTTP_USER_AGENT'];
$_SESSION['je_moeder'] = $session;
?>
en dat dan natuurlijk op te halen door:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$userid = '1';
$ip = '2';
$userstatus = '3';
if($_SESSION['je_moeder'] = $userid.$ip.$userstatus.$_SERVER['HTTP_USER_AGENT'] {
bla bla bla..
?>
$userid = '1';
$ip = '2';
$userstatus = '3';
if($_SESSION['je_moeder'] = $userid.$ip.$userstatus.$_SERVER['HTTP_USER_AGENT'] {
bla bla bla..
?>
)
Bvd
Gewijzigd op 01/01/1970 01:00:00 door Rick
Als ik je vraag goed begrijp moet het antwoord zijn, je mag zoveel sessions gebruikers als je wilt, mits je elke pagina waar je ze gebruikt begint met session-start();
Maakt niet uit hoeveel.. Zolang je server/host maar niet gaat zeuren dat de map waar de sessies worden opgeslagen te groot word;)
In mijn /login script staat het stukje
Code (php)
Met alle verwerking enzo, maar dat heb ik even weggelaten.
Mijn beveiliging van de /admin pagina ziet er zo uit:
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
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
<?php ///////////////////// ADMIN.PHP////////////////////
function get_ip () { //Niet mijn functie, volgens mij van Jan Koehoorn
if (@getenv ($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = @getenv ($_SERVER['HTTP_X_FORWARDED_FOR']);
}
elseif (@getenv ($_SERVER['HTTP_CLIENT_IP'])) {
$ip = @getenv ($_SERVER['HTTP_CLIENT_IP']);
}
else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
if(isset($_SESSION['user_id'])) {
$ip = get_ip ($ip);
if(($_SESSION['user_ip'] == $ip) && ($_SESSION['user_ip'] == $_COOKIE['cookie_ip'])) {
if($_SESSION['user_status'] == 1) {
}else{
echo 'Geen rechten ol kokstione';
exit();
}
}else{
header("Location: /login");
}
}else{
header("Location: /login");
}
//}else{
?>
function get_ip () { //Niet mijn functie, volgens mij van Jan Koehoorn
if (@getenv ($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = @getenv ($_SERVER['HTTP_X_FORWARDED_FOR']);
}
elseif (@getenv ($_SERVER['HTTP_CLIENT_IP'])) {
$ip = @getenv ($_SERVER['HTTP_CLIENT_IP']);
}
else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
if(isset($_SESSION['user_id'])) {
$ip = get_ip ($ip);
if(($_SESSION['user_ip'] == $ip) && ($_SESSION['user_ip'] == $_COOKIE['cookie_ip'])) {
if($_SESSION['user_status'] == 1) {
}else{
echo 'Geen rechten ol kokstione';
exit();
}
}else{
header("Location: /login");
}
}else{
header("Location: /login");
}
//}else{
?>
Als ik dan, zonder ingelogd te zijn, naar /admin ga, word ik keurig doorgestuurd naar /login. Als ik dan, ingelogd als gewone user, naar /admin ga, krijg ik geen 'Geen rechten' bericht te zien maar word ik doorgestuurd naar /login (omdat ik al ingelogd ben word ik van daar ook weer doorgestuurd naar de hoofdpagina (de '/'). Dat laatste heb ik óók wanneer ik wél als admin ingelogd ben.
Daarom vroeg ik me af of dat kwam doordat ik meerdere session gebruikte.
Heeft iemand een idee waarom mijn script fout is?
Bvd!!
Gewijzigd op 01/01/1970 01:00:00 door Rick