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 
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
- cu Kai