Will Variable in Cookie schreiben und auslesen
Hi
ich hab wieder ne frage und zwar ich will ein Admincenter schreiben. Da es hierbei 3 verschiedene Adminklassen geben soll wollte ich via jedes mal abfrage wenn er eine Seite aufruft ob in dem Cookie seine Berechtigung für diese Seite vorhanden ist.
Doch leider gibt es shcon Probleme bie der erstelllung des Cookies. Kann mir bitte einer helfen? Bin am verzweifeln.
Hier meine zeile wie ich den Cookei erstelle
<code="php">
setcookie("d-d_admincenter", $adminlevel, time()+(24*60*60));
das Adminlevel ist entweder 1, 2 oder 3.
Wäre nett wenn mir wer schreiben könnte iwe ich den Cookie richtig erstellt und wie ich das adminlevel auch wieder abfragen kann.
Gruß
Michi262
ich hab wieder ne frage und zwar ich will ein Admincenter schreiben. Da es hierbei 3 verschiedene Adminklassen geben soll wollte ich via jedes mal abfrage wenn er eine Seite aufruft ob in dem Cookie seine Berechtigung für diese Seite vorhanden ist.
Doch leider gibt es shcon Probleme bie der erstelllung des Cookies. Kann mir bitte einer helfen? Bin am verzweifeln.
Hier meine zeile wie ich den Cookei erstelle
<code="php">
setcookie("d-d_admincenter", $adminlevel, time()+(24*60*60));
das Adminlevel ist entweder 1, 2 oder 3.
Wäre nett wenn mir wer schreiben könnte iwe ich den Cookie richtig erstellt und wie ich das adminlevel auch wieder abfragen kann.
Gruß
Michi262
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 94444
Url: https://administrator.de/contentid/94444
Ausgedruckt am: 16.11.2024 um 09:11 Uhr
12 Kommentare
Neuester Kommentar
Ich rate auch zu der Sessionvariante aber nicht weil die Möglichkeit besteht das die Benutzer sie nicht akzeptieren sondern weil die Cookies Clientseitig gespeichert werden.
Und weil sie Clientseitig gespeichert werden, könnte man sie ganz einfach mit einem Texteditor bearbeiten, den Adminlevel hochsetzen und schon hast du Benutzer in deinem Adminbereich die dort nicht zu suchen haben.
Die Sessions werden Serverseitig gespeichert, das heist also das der Benutzer keinen Zugriff auf die Datei hat, demnach kann der Adminlevel auch nicht geändert werden.
!! Um eine Session jedoch einem Benutzer zuzuordnen, wird dem Client die Session-ID übergeben, die er bei jedem neuem Request mitsendet.
Entweder wird die Session-ID als Seitenparameter übertragen oder, sofern aktiviert, per Cookie !!
Zu den Cookies in PHP: PHP-Cookies
Zu den Sessions in PHP PHP-Sessions
~Arano
Und weil sie Clientseitig gespeichert werden, könnte man sie ganz einfach mit einem Texteditor bearbeiten, den Adminlevel hochsetzen und schon hast du Benutzer in deinem Adminbereich die dort nicht zu suchen haben.
Die Sessions werden Serverseitig gespeichert, das heist also das der Benutzer keinen Zugriff auf die Datei hat, demnach kann der Adminlevel auch nicht geändert werden.
!! Um eine Session jedoch einem Benutzer zuzuordnen, wird dem Client die Session-ID übergeben, die er bei jedem neuem Request mitsendet.
Entweder wird die Session-ID als Seitenparameter übertragen oder, sofern aktiviert, per Cookie !!
Zu den Cookies in PHP: PHP-Cookies
Zu den Sessions in PHP PHP-Sessions
~Arano
Wo hängt es denn ?
Vielleicht hilft dir dies hier ja etwas weiter:
..oder dies hier: PHP-Quake.net-Tutorials - Sessions
Gruß Arano
Vielleicht hilft dir dies hier ja etwas weiter:
<?php
// sessionmanagement aktivieren
// (muss vor der ersten ausgabe an den browser geschehen !)
session_start();
// wenn die session geloescht werden soll
if(isset($_GET['logout'])){
$_SESSION['name'] = NULL;
session_destroy();
}
// wenn das formular abgeschickt wurde, speichere "name" in eine Sessionvariable
if(isset($_POST['name']) && trim($_POST['name'])!=''){
$_SESSION['name'] = trim($_POST['name']);
}
// pruefen ob eine sessionvariable namens "name" existiert...
if(isset($_SESSION['name'])){
// ...sessionvariable "name" exitier, gebe sie aus:
echo 'Ihr Name lautet: <b>'.$_SESSION['name'].'</b><br><br>
<a href="'.$_SERVER['PHP_SELF'].'?logout">löschen</a><br>';
} else{
// ...sessionvariable existiert nicht, zeige formular:
echo 'Keine Sessionvariable names "name" vorhanden !<br>
<form action="'.$_SERVER['PHP_SELF'].'" method="POST">
<input type="text" name="name" value=""><br>
<input type="submit" value="Übernehmen">
</form><br>';
}
?>
..oder dies hier: PHP-Quake.net-Tutorials - Sessions
Gruß Arano
Gern geschehen.
Theoretisch schon.
Aber nur über Einstellungen in oder an der PHP.ini (ini_set()).
Und nur wenn der Browser in dieser Zeit nicht geschlossen wird, den eine Session ist nur innerhalb der Session (Seite aufrufen bis BROWSER geschlossen) gültig.
Zu der PHP.ini.
PHP hat eine Session Garbage Collection 1
Wenn der GC ausgeführt wird, werden die Session die älter als "gc_maxlifetime" sind gelöscht !
Eine andere Möglichkeit wäre in einem Cookie einen "Schlüssel" beim Besucher zu speichern über den du einen Besucher einmalig wiedererkennen kannst, worauf eine neue Session erstellt wird. Dieser Schlüssel wird natürlich mit der Neuerstellung der Session geändert.
(Diese Methode erfordert eine zusätzlich DB-Tabelle in der die Schlüssel und z.B. die ID des entsprechenden Benutzers stehen um ihn wieder einzuloggen).
Gruß Arano
Theoretisch schon.
Aber nur über Einstellungen in oder an der PHP.ini (ini_set()).
Und nur wenn der Browser in dieser Zeit nicht geschlossen wird, den eine Session ist nur innerhalb der Session (Seite aufrufen bis BROWSER geschlossen) gültig.
Zu der PHP.ini.
PHP hat eine Session Garbage Collection 1
- "session.gc_probability"
- "session.gc_divisor"
- "session.gc_maxlifetime"
Wenn der GC ausgeführt wird, werden die Session die älter als "gc_maxlifetime" sind gelöscht !
Eine andere Möglichkeit wäre in einem Cookie einen "Schlüssel" beim Besucher zu speichern über den du einen Besucher einmalig wiedererkennen kannst, worauf eine neue Session erstellt wird. Dieser Schlüssel wird natürlich mit der Neuerstellung der Session geändert.
(Diese Methode erfordert eine zusätzlich DB-Tabelle in der die Schlüssel und z.B. die ID des entsprechenden Benutzers stehen um ihn wieder einzuloggen).
Gruß Arano
Nein sorry, da muss ich passen....
...so komisch es klingen mag, aber das habe ich selber noch nicht gemacht :D
Solange "Relogins" habe ich bis jetzt nicht gebraucht, schließlich steigt auch das Risiko je länger die Zeitspanne ist in der man sich nicht wieder Authentifizieren muss.
(Kommt natürlich auch auf den Verwendungszweck an)
~Tobias
...so komisch es klingen mag, aber das habe ich selber noch nicht gemacht :D
Solange "Relogins" habe ich bis jetzt nicht gebraucht, schließlich steigt auch das Risiko je länger die Zeitspanne ist in der man sich nicht wieder Authentifizieren muss.
(Kommt natürlich auch auf den Verwendungszweck an)
~Tobias