Problem mit Cookie auslesen

Peetz

Mitglied
Also ich habe folgendes Script um einen Cookie auszulesen:
PHP:
<?php 
  
$cookievar = preg_split("/#/", $_COOKIE['planetenkampf']); 
$nick = $cookievar[0];
$passwort = $cookievar[1]; 
echo $nick . "<br>"; 
echo $passwort . "<br>"; 
?>

Welchen ich mit diesem Script erstellt habe:
PHP:
<?php 

#Variablen die vorher in Textfelder eingegeben wurden: 
$nick = $_POST['nick']; 
$passwort = $_POST['passwort']; 

# DB Verbindung: 
$connectionid  = mysql_connect ("localhost", "root", ""); 
mysql_select_db ("planetenkampf", $connectionid) or die ("Keine Verbindung zur Datenbank"); 

# ID die ausgelesen werden soll 
$sql = "SELECT ID FROM member WHERE nick = '$nick'"; 
$result = mysql_query($sql); 
$row = mysql_fetch_array($result); 

$vars = $nick . "#" . $passwort . "#" . $row['ID']; 

setcookie("planetenkampf", $vars, time()+3600);         
$cookievar = preg_split("/#/", $_COOKIE['planetenkampf']); 
$nick = $cookievar[0]; 
$passwort = $cookievar[1]; 
$id = $cookievar[2]; 

# Ausgabe der Daten und Weiterleitung 
echo "Login war erfolgreich, du hast dich mit folgenden Daten eingeloggt:<p>"; 
echo "Nick: "; 
echo $nick . "<br>"; 
echo "Passwort: "; 
echo $passwort . "<br>"; 
echo "ID: "; 
echo $id . "<p>"; 

echo "<a href=playerindex.htm>weiter zum Spiel</a>";
?>

Nun das Problem: Ich habe einen Ordner in dem ich dieses cookieschreibende Script habe welches einen Cookie schreibt und auch diese Datei von oben, welche den Cookie dann auch wieder ordnungsgemäß ausliest (auch im selben Ordner). Wenn ich aber diese Datei in einen anderen Ordner verschiebe, liest sie den Cookie nicht mehr aus obwohl er mit der gleichen Datei im anderen Ordner immernoch ausgelesen wird. Woran kann das liegen?
 
[phpf]setCookie[/phpf]

LESEN (!)

path
Der Pfad zu dem Server, auf welchem das Cookie verfügbar sein wird.
Ist er auf '/' gesetzt, wird das Cookie innerhalb der gesamten Domain verfügbar. Ist er auf '/foo/' gesetzt, wird das Cookie nur innerhalb des Verzeichnisses /foo/ der domain, sowie allen Unterverzeichnissen wie z.B. /foo/bar/ verfügbar. Der Standardwert ist das Verzeichnis, in dem das Cookie gesetzt wurde.
 
...

Und wie kann ich das nun so ändern, das die Cookies für alle Daten in meinem htdocs Ordner erreichbar sind. Was muss ich dann in das Script einfügen?
 
.....

Also ich hab mir den Link angeguckt, konnte ihm aber nur wenig abgewinnen. Ich hab's auch probiert wie es da stand aber bei mir hat es nicht geklappt, ganz einfach. Nun wollt ich einfach wissen wie ich mein Script so erweitere, dass ich den gesetzten Cookie von überall auslesen kann. Und auf dumme Kommentare von Leuten den es nur darum geht hier einen weiteren Post reinzusetzen um ihre Statistik zu verbessern kann ich sowieso verzichten (@snuu
). Also kann es mir nochmal jemand an meinem Beispiel erklären?
 
Hier Du Held:
PHP:
setcookie("planetenkampf", $vars, time()+3600,'/');
Schön vorgekaut. Musst Du nur noch kopieren und einfügen. Traurig, wenn man aus 5 Zeilen Text , die auf Dein Problem zugeschnitten sind, nicht die benötigten Informationen herausziehen kann.

snuu
 
Pssst, nicht streiten!

Ich habs mal probiert mit Deinem Skript was Du gepostet hast. Dabei hab ich festgestellt, dass das nach einem Reload durchaus funktioniert. Hast Du das Ganze denn auch in Wirklichkeit in einem Skript? Ich denke, dass es damit zu tun hat, dass der Cookie gesetzt wird und erst bei einem nächsten Zugriff ausgelesen werden kann. Das würde heissen, dass Du nach einem erfolgreichen Login auf eine andere Seite weiterleiten musst. Und dann erst kannst Du den Cookie auslesen.

Oder aber, wenn Du alles in einem Skript behalten willst, musst Du eben die Variablen für die Ausgabe benutzen, mit denen Du den Cookie schreibst.

PS: Das mit dem Pfad kannst Du ja trotzdem noch einbauen, dann weisst Du ganz sicher, dass Du von überall drauf zugreifen kannst.
 
...

Ja jenno danke für die Information, hab ich auch schon bemerkt das man das erst noch mal reloaden muss. Hat zwar nicht's mit meinem gepostetem Problem zu tun aber danke für deine Hilfestellung.

@snuu: Genau so wollte ich das Wissen, ich hatte das in dem Link nämlich so verstanden das dieser Zusatz '/' auserhalb der Klammer stehen muss. Und warum regst du dich über meine Fragestellung auf, obwohl du sie verstanden und sogar gelöst hat? Aber egal, jedenfalls Danke für die Lösung.
 
Zuletzt bearbeitet:
Ich habe Dir die Lösung nur vorgekaut, weil Du mich bezichtigst hast, nur meine Beitrags-Zahl in die Höhe zu treiben. Auf der Seite, die _voodoo gepostet hat steht ganz oben der Funktionsaufruf mit allen obligatorischen und optionalen Parametern. Des Weiteren wurdest Du in seinem Post darauf aufmerksam gemacht, dass der Parameter "path" für die Lösung Deines Problems verantwortlich ist - mit ausführlicher Beschreibung. Was willst Du mehr?

Im Laufe Deiner Laufbahn als Programmierer, wirst Du immer wieder in Funktionsreferenzen nachschlagen müssen, lesen und verstehen. Du kannst nicht verlangen, dass Dir immer alles nochmal genau erklärt wird.

snuu
 
Aber hast Du denn Dein Problem noch nicht gelöst bekommen? Es funktioniert doch! Und wenn Du keinen Reload machen kannst (also auf ne andere Seite weiterleiten nach dem Login), dann benutze doch die $_POST-Variablen und die Ergebnisse Deiner Datenbankabfrage. Dann gehts doch alles wunderbar!
 
Zurück