PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   reloads verhindern (http://www.selfphp.de/forum/showthread.php?t=5278)

wuerzie 20.08.2003 12:22:17

reloads verhindern
 
Hallo zusammen
Ich habe eine Frage zum Thema Cookie.

Ich möchte ein Cookie erzeugen. In das Cookie will ich eine
Zufallszahl speichen. Diese Zufallszahl möchte ich dann im
Formular mit hidden an die nächste Seite weitergeben.

Im nächste Formular will ich den Wert der Hidden-Variable
mit der Cookie-Variable vergleichen.
Wenn Sie übereinstimmen, soll das Spiel von vorne beginnen.
( Neue Zufallszahl ins Cookie .............)
Ich möchte sozusagen ein reload verhindern.

Dazu habe ich das Script geschieben.
Dabei ist mir etwas aufgefallen, was ich nicht verstehe.
Wenn ich ein Cookie erzeuge und dann direkt im Anschluß
die Cookie-Variable anzeigen lassen möchte geht das nicht.
Die Variable gibt es noch nicht.
Lasse ich die Seite aktualisieren wird die Zufallszahl die im
Cookie stand angezeigt. Allerdings die Zufallszahl die ich
beim ersten mal erzeugt habe. Da das Script ja erneut aufgerufen
wurde, wurde das Cookie ja überschrieben.
Im Script unten lasse ich mir (nach dem erzeugen des Cookie)
die Cookie-Variable ud die Zufallszahl ausgeben.
Beide sollten doch gleich sein.

Hat jemand Ahnung warum ?????

<?php

srand((double)microtime()*1000000);
$id= rand();
setcookie("loggen",$id,time()+600);

echo "Cookieinhalt:".$_COOKIE['loggen'];
echo "<br>";
echo "Zufallszahl:".$id;

?>

Taube 20.08.2003 12:34:38

Hi,

habe ich auch festgestellt.

Ich kann mir das nur so erklären dass das Cookie zwar gesetzt wird, aber erst beim nächsten Aufruf der Seite alle Cookies die zur Domain gehören ausgelesen werden.

mfg - Taube

wuerzie 20.08.2003 12:50:07

Hi Taube

Hast du eine Lösung für das Problem gefunden ?????

Ich wollte es statt mit einem Cookie mal mit der

Session_ID versuchen.


Gruss Wuerzie

Taube 20.08.2003 13:31:31

Wieso ist es für Dich ein Problem wenn das Cookie erst beim nächsten Seitenaufruf ausgelesen wird? Was bringen Dir die Werte des Cookies wenn Du sie noch in den Variablen des Skripts stehen hast?

Ich arbeite im Moment nur mit Sessions.
Wieso soll ein User denn nicht reloaden dürfen und was soll es bewirken?

mfg - Taube

MiH 20.08.2003 14:16:22

http://news.rent-a-phpwizard.de/0803/#form

Taube 20.08.2003 14:36:41

*lol* wie kompliziert.
Meine Methode wäre:

Der Senden-Button trägt den Namen "Speichern"

Code:

if ($Speichern $$ !$doppelt) {
alles machen, Werte speichern,...;
echo "<input type='hidden' name='doppelt' value='1'>"; }

Somit würde bei erneutem Aufrufen der Wert "doppelt" mitgeschickt, das Skript würde beendet, oder? ;-)=

mfg - Taube

Nev 20.08.2003 17:04:25

Die Variante die in dem Artikel von MiH steht,

ist sehr nett.

Das Sinnvolle daran ist, das es universal eingesetzt werden kann, ohne das es jedesmal neugecodet werden muss


@Taube
Natürlich geht deine Version, auch!

MiH 21.08.2003 08:08:19

wenn man die klasse noch ein wenig abändert schreibt man am ende nur noch
Code:

$f->getID();
und schon hat man die komplette zeile ;)

wuerzie 22.08.2003 11:35:55

Hallo zusammen
Erst mal vielen Dank für die vielen Antworten.
Ich habe aber nicht alles verstanden.
Ich habe mich noch nicht mit Klassen beschäftigt.
Ich glaube auch, das ich mein Problem mit Reload verhindern
falsch beschrieben habe.
Ich möchte nicht verhindern, dass man Daten zweimal in eine
Datenbank eintragen kann.
Ich will verhindern, dass jemand mit dem Zurück-Button
auf Seiten gelangt die normal mit einem Passwort geschützt sind.
Ich versuche meine Frage dann nochmal genauer zu stellen.
Unter: Zurück in den Loginbereich verhindern


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:48:35 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.