Nach Refresh wird Satz neu gespeichert

Hallo!

habe ein PHP-Skript, das Datensätze - sagen wir Zitat+Autor erfasst, aendert, löscht und anzeigt - funzt alles prächtig mittlerweile…

nur der Aufruf aus dem HTML-Formular, der für das speichern eines neuen Satzes sorgt (was auch funzt) macht das auch gleich nochmal und nochmal… - jedesmal wenn man die Seite mit F5 im Browser refresht

beim Editieren ist das egal (Satz einfach nochmal angezeigt), beim Loeschen merkt „er“, dass es den Satz nimmer gibt und gibt nen Fehler aus… (auch das Löschen eines nicht existenten Satzes wäre egal…)

nur beim neu anlegen raffen wir (PHP und ich) das nicht :frowning:

Versuche, den letzten neu angelegt Satz als Kontrollvariable zu merken klappt auch nicht (nach F5 sind alle Variablen wieder zurück auf Anfang…)

Frage:
wie kann man PHP sich etwas merken lassen, das nach dem F5-Refresh noch da ist?

Danke
cu kai

Hallo

Schreibe an den Anfang deines Scripts den Befehl session_start(). Anschließend kannst du im Array $_SESSION dauerhafte Werte ablegen.

http://de3.php.net/manual/de/function.session-start.php

Johannes

Hallo! Danke fuer den Tip, an sowas dachte ich, aber…

in datei.php steht:

<?php session_start();<br /> define(LF,"
");
 echo "session\_id()=",session\_id(),", ";
 echo "\$\_SESSION="; print\_r($\_SESSION); echo LF;
 if ($\_SESSION[SITZUNG]!=session\_id()) { // neue oder andere Sitzung
 unset($\_SESSION); // ggf. alte gemerkte Werte entfernen
 $\_SESSION[SITZUNG]=session\_id();
 }
 echo "session\_id()=",session\_id(),", ";
 echo "\$\_SESSION="; print\_r($\_SESSION); echo LF;
 echo "\$\_GET="; print\_r($\_GET); echo LF;
?\>
Klick mal auf [datei.php](datei.php?typ=test)

Wenn ich das aufrufe, kommt immer nur folgendes raus

session\_id()=n64cuk06smfsnumh85rrcdhm24, $\_SESSION=Array ( ) 
session\_id()=n64cuk06smfsnumh85rrcdhm24, $\_SESSION=Array ( [SITZUNG] =\> n64cuk06smfsnumh85rrcdhm24 ) 
$\_GET=Array ( [typ] =\> test ) 
$GET=
Klick mal auf datei.php

egal, ob beim 1. Aufruf, bei Refresh und/oder beim Klick auf datei.php.
-> sollte nicht $_SESSION erhalten bleiben??
-> wer kann mir weiterhelfen?

DANKE cu kai

statt

if ($_SESSION[SITZUNG]!=session_id())
unset($_SESSION);
$_SESSION[SITZUNG]=session_id();
}

muss es heissen

if (isset($_SESSION[SITZUNG])) { // alte Sitzung pruefen
if ($_SESSION[SITZUNG]!=session_id()) unset($_SESSION);
}
if (!isset($_SESSION[SITZUNG])) { // neue Sitzung
$_SESSION[SITZUNG]=session_id();
}

dann klappts auch :smile: - cu Kai