Daten auf dem Userrechner hinterlegen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
adresse
auslese
bild
code
datenbank
feld
grafik
login
merken
page
plan
problem
programm
rechner
sagen
umgehen
verwenden
verzeichnis
wort
zugreifen
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Nein, gibt es nicht. Zum Glück!
-
Kurze Antwort: Nein.
Außer du mutest dem User zu, dass er die Datei jedes mal mit hochlädt, wenn er deine Seite aufruft. Cookies sind da die einzige Möglichkeit.
Ich hab das damals ganz einfach realisiert:
Ich hab ein Cookie mit der gehashten IP, und zwei weiteren ID\'s (alle MD5 gehasht) gesetzt. Sprich: Ein Cookie mit 96 Zeichen ohne erkennbaren Sinn. Es war nicht herauslesbar, was was ist und entschlüsselt wurde es durch das php-Programm. Dadurch konnte man den User ziemlich eindeutig identifizieren und die restlichen Informationen aus der Datenbank auslesen. Diese Methode könnte man jetzt noch durch einen Ver-/Entschlüsselungsalgorithmus erweitern, sodass das Programm den Hash-Wert erst aus dem Cookie wieder zusammensetzten muss, bevor er verwendbar wird.
Beitrag geändert: 14.5.2008 9:48:03 von schrotti12 -
Nein, gibt es nicht. Zum Glück!
Das Gute an PHP ist doch gerade, dass es nur serverseitig ausgeführt wird! Du kannst es höchstens über JavaScript o.ä umgehen -
aber mit cookies kann ich nicht auf verschiedenen Seiten zugreifen, ich verwende zum Beispiel:
setcookie(\"xyz\", \"abc\", time() + 6000);
damit kann ich aber nicht auf einer anderen seite zugreifen und den Wert abc auslesen.. -
damit kann ich aber nicht auf einer anderen seite zugreifen und den Wert abc auslesen..
Da hast du natürlich recht, aber es fragt sich auch, ob das überhaupt Sinn machen würde...
Ich denke, dass es am einfachsten wäre, den Wert des Cookies auf einer MySQL-Datenbank abzuspeichern; zusätzlich müsstest du natürlich auch die IP-Adresse und das \'Verfallsdatum\' mitspeichern. Allerdings hast du dann ein Problem, wenn die IP-Adresse gewechselt wird...
Alternativ könntest du vielleicht einfach das Cookie immer von der gleichen Seite setzen/ auslesen (iframe), aber das wird wohl eher umständlich sein...
MfG
sebigisler
-
währe es auch möglich, eine extra Seite zu machen, auf der immer der Cookie gesetzt wird und gelesen. diedatei wird dann auf jeder Seite includet. Dann müsste sich doch auf jeder Seite der Wert des Cookies zu verwenden sein, oder wird der cookie dann für die seite gesetzt, die ihn includet?
-
währe es auch möglich, eine extra Seite zu machen, auf der immer der Cookie gesetzt wird und gelesen. diedatei wird dann auf jeder Seite includet. Dann müsste sich doch auf jeder Seite der Wert des Cookies zu verwenden sein, oder wird der cookie dann für die seite gesetzt, die ihn includet?
Mit Including wird das nicht funktionieren; wie du richtig vermutest, würde das Cookie dann von der includenden Seite gesetzt. Der Browser ist zu doof, um zu merken, von wo das Cookie kommt ;) Die einzige Möglichkeit wäre da ein iFrame. Für was brauchst du das denn? Werden die Cookiedaten dann in der eigentlichen Seite verwendet, oder geht es nur darum, eine Besucherstatistik zu machen?
MfG
sebigisler -
nein, mein problem ist, dass wenn der user sich einloggt, dann is auf der ersten seite der username vorhanden, auf allen andern seiten aber nicht. Da ich die ganze grafik und so nicht für jeden user einzeln speichere, sondern in einem anderen verzeichnis für alle, und nur die aktuellen werte und so für jeden user einzeln speichere muss ich dem rechner ja sagen, auf welches Verzeichnis er zugreifen soll. Also der wert der Variable user soll überall da sein.
-
nein, mein problem ist, dass wenn der user sich einloggt, dann is auf der ersten seite der username vorhanden, auf allen andern seiten aber nicht. Da ich die ganze grafik und so nicht für jeden user einzeln speichere, sondern in einem anderen verzeichnis für alle, und nur die aktuellen werte und so für jeden user einzeln speichere muss ich dem rechner ja sagen, auf welches Verzeichnis er zugreifen soll. Also der wert der Variable user soll überall da sein.
Du schreibst ja ein Browsergame, wie ich deiner Page entnehme... Da ist eine Speicherung der Userdaten in Textfiles/ einzelnen Userverzeichnissen eine denkbar schlechte Lösung... Spätestens wenn du eine Erweiterung der Möglichkeiten wünschst, wirst du aber selber merken, dass du nicht ohne MySQL auskommen wirst.
Wenn sich alle Seiten deines Games auf dem selben Server befinden, ist das mit den Cookies auch gar kein Problem; es kommt nicht drauf an, ob du von \'index.php\' oder von \'dir/page.php\' auf ein Cookie zugreifst. Also brauchst du auch gar nichts auf dem Clientpc zu speichern.
Allerdings würde ich bei einem Browsergame den Login sowieso nicht unbedingt mit Cookies regeln... Ich habe bei meinem Browsergame das so gemacht, dass ich in der Benutzertabelle in meiner Datenbank ein Feld \'IP\' hatte. Sobald ein User die richtigen Logindaten angibt, wird in diesem Feld seine IP eingetragen und er wird ins Browsergame selber weitergeleitet (home.php?user=username). Von dort wird dann vor jeder Aktion überprüft, ob MySQL->DB->Users->username->IP = IP des Zugreifers. Gibt natürlich ein kleines Problem, wenn mehrere User vom selben Proxy aus zugreifen (Sit. Schule), aber da kannst du ausweichen, indem du beim Login eine ID generierst (aus Zeit und einer Zufallszahl), diese ebenfalls in der Benutzertabelle beim zugehörigen Benutzer speicherst un anschliessend auf jeder Seite per GET übergibst. Aber wenn dir das zu kompliziert ist, machst dus eben doch mit Cookies; es geht, ist aber nicht gerade die beste Lösung.
Übrigens: Wenn ich auf deine Page gehe, sehe ich, dass gewisse Sachen mit MS-Word gemacht sind - du machst das Game doch nicht etwa damit?
MfG
sebigisler -
sorry, aber ich hab keinen plan, was \"ms-word\" ist. und die bilder sind alle absichtilich weg, da kommen neue hin, die sind aber noch nicht fertig.
Micro(shit)soft Word -.- -
jo, ich muss mich wohl verbessern. Was hat das zu bedeuten?
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage