Beste tweakers,
Ik had een goed werken website sinds ik gebruik maak van subdomeinen. Werken mijn SESSION niet meer.
Een lid die zich inlogt en vervolgens naar andere subdomein gaat is hij uitgelogt en als hij terug komt is hij wel weer ingelogt. Hoe kan ik een session maken die over meerdere subdomeinen geldig zijn?
Ik heb veel gezocht maar kom er niet uit?
Dit onderstaande stukje is wat in ieder pagina boven aan geincludeert wordt.
Deze stukje is als voor inloggen.
Met de volgende controleer ik of iemand ingelogt is of niet
Ik had een goed werken website sinds ik gebruik maak van subdomeinen. Werken mijn SESSION niet meer.
Een lid die zich inlogt en vervolgens naar andere subdomein gaat is hij uitgelogt en als hij terug komt is hij wel weer ingelogt. Hoe kan ik een session maken die over meerdere subdomeinen geldig zijn?
Ik heb veel gezocht maar kom er niet uit?
Dit onderstaande stukje is wat in ieder pagina boven aan geincludeert wordt.
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
| if(isset($_GET['cikis']) == 1){ session_unset(); session_destroy(); $_SESSION = array(); setcookie("user_id", "", time() - 3600); setcookie("user_password", "", time() - 3600); unset($_COOKIE['user_id']); unset($_COOKIE['user_password']); header("Location: ".$SITE['url'].""); }elseif(isset($_SESSION['user_id'])){ mysql_query("UPDATE uye SET lastactive = NOW() WHERE id = '".$_SESSION['user_id']."'"); }elseif(isset($_COOKIE['user_id'])){ $query = mysql_query("SELECT naam,wachtwoord,status FROM uye WHERE id='".$_COOKIE['user_id']."'"); $object = mysql_fetch_assoc($query); $dbnaam = htmlspecialchars($object['naam']); $dbpass = htmlspecialchars($object['wachtwoord']); $dbstatus = htmlspecialchars($object['status']); if($dbpass == $_COOKIE['user_password']){ $_SESSION['user_id'] = $COOKIE['user_id']; $_SESSION['user_status'] = $dbstatus; $_SESSION['user_name'] = $dbnaam; }else{ setcookie("user_id", "", time() - 3600); setcookie("user_password", "", time() - 3600); unset($_COOKIE['user_id']); unset($_COOKIE['user_password']); } } |
Deze stukje is als voor inloggen.
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
| if(isset($_POST['giris'])){ $query = mysql_query("SELECT id,naam,wachtwoord,status,actief FROM uye WHERE naam='".$_POST['user']."'"); $object = mysql_fetch_assoc($query); $dbpass = htmlspecialchars($object['wachtwoord']); $count = mysql_num_rows($query); $userpass = md5($_POST['pass']); $userid = htmlspecialchars($object['id']); $dbnaam = htmlspecialchars($object['naam']); $userstatus = htmlspecialchars($object['status']); $useractief = htmlspecialchars($object['actief']); if($count == 1){ if($dbpass == $userpass){ if($useractief == 1){ $_SESSION['user_id'] = $userid; $_SESSION['user_status'] = $userstatus; $_SESSION['user_name'] = $dbnaam; if($_POST['cookie'] == "do"){ setcookie("user_id", $userid, time() + 365 * 86400); setcookie("user_password", $dbpass, time() + 365 * 86400); } }else{ echo "Je account is niet geactiveerd. Activeer deze, door op de link in de verzonden e-mail te klikken.<br />\n"; } }else{ echo "<font color=\"red\">Þifre yanlis</font>"; } }else{ echo "<font color=\"red\">Lütfen geçerli bir kullanýcý adý giriniz</font>"; } } |
Met de volgende controleer ik of iemand ingelogt is of niet
PHP:
1
2
3
4
5
| if(isset($_SESSION['user_id'])){ /// ingelogt }else{ // niet ingelogt } |