Zähler bei verlassen der Seite auf "0" setzen

ThomasCH

Grünschnabel
Hallo,

ich arbeite gerade an meinem allerersten PHP-Skript und habe dazu folgende Frage:

Wie kann ich es erreichen, dass der Zähler bei verlassen der Seite auf Null zurückgesetzt wird?
Momentan zählt er nämlich so lange bis ich den Internet Explorer schließe.

Code:
if (!isset($_SESSION['count'])) {
    $_SESSION['count'] = 0;
} else {
    $_SESSION['count']++;
}

Vielen Dank im Voraus
 
Wird die Session nachdem du den Browser schliesst nicht automatisch auf Null gesetzt?
Oder versuchs doch mal einfach bei der Verlassen der Seite mit

session_destroy();
Ich versteh die Frage wohl nicht richtig.

Gruß Mirko
 
Hallo Mirko,

sagen wir der Zähler läuft auf "index1.php" und hat den Wert "7".

Wenn ich nun z.B. auf index2.php wechsle und danach wieder auf index1.php zurückkehre, steht der Zähler auf "8".

Ich möchte aber, dass das Zählen bei einem Seitenwechsel von neuem beginnt.
 
Wie wärs wenn du dann jedes Mal wenn du die index1.php aufrufst die session zerstörst?

also bevor du eine neue session erstellst einfach die Session zerstören oder jedes mal wenn du die index1.php die Session auf "null" stellen.



if (!isset($_SESSION['count']) OR isset($HTTP_REFERER) {
$_SESSION['count'] = 0;
} else {
$_SESSION['count']++;
}

also so wird mit jedem aufruf von einer anderen Seite die Session auf 0 gesetzt. Denke ich mal. Versuchs einfach mal

Gruß Mirko
 
Darf ich Fragen wofür der Zähler gut ist ?
kann mir gerade keine Funktion vorstellen die von Nutzen ist so wie du das Schilderst,

Vieleicht liegt es auch an mir, aber was zählt der Zähler?
ansonsten würde ich dir vorschlagen das du Variable einfach löscht wenn jemand da rauf geht.

$deineVariable = "";

so schnell ist sie leer
bzw. auf Null

$deineVariable = "0";

Aber irgend wie beschleicht mich mein Gefühl das ich die Missverstanden habe.
 
@mirko: Wenn ich es so mache wie du meinst bleibt der Zähler auf Null stehen.

@liquidbeats: Das Skript das ich gerade schreibe soll Daten aus einem Formular in eine Datenbank schreiben. Füllt ein User nicht alle Felder aus, wird eine Fehlermeldung ausgegeben. Diese wird jedoch auch dann ausgegeben, wenn die Seite das erste mal geladen wird.
Daher habe ich den Zähler eingebaut und sage, es soll nur eine Fehlermeldung ausgegeben werden, wenn die Seite mehr als einmal geladen wurde.
 
Und warum machst Du die Fehlerprüfung nicht mit JavaScript? Dann kannst Du nämlich beim Klicken auf den Submitbutton "return checkfunktion" aufrufen. Wenn nicht alles ausgefüllt ist, dann muss die Funktion mit return false enden und dann wird das Formular gar nicht erst abgeschickt.

Das hat unter anderem auch den Vorteil, dass die Seite nicht ständig neu geladen werden muss, weil JavaScript auf dem Client arbeitet. Wenn dann letzten Endes alle Formularfelder ausgefüllt sind (und Deine JavaScript Funktion endet mit return true), dann wird alles an die verarbeitende php-Seite geschickt.

Oder gibt es einen bestimmten Grund dafür, dass Du die Fehlerüberprüfung in php realisieren willst?
 
Ansonsten kannst Du natürlich auch in dem Moment, in dem die Daten in die Datenbank geschrieben werden den Wert in der Session wieder auf Null setzen! Weil dann gibts ja keinen Fehler mehr!
 
Hab mal ein wenig zu dem Thema gegoogelt.
Anscheinend ist die einzige Lösung, wie jenno schon sagte, die Fehlerprüfung über Javascript laufen zu lassen.
 
wie Umstänlich =)
Warum eine Ausgabe erst dann wenn die seite mehr als 2 mal aufgerufen wurde ?!

nim die Action variante

PHP:
if($action=="senden") {
## Dann halt Prüfen ob diverse Felder unausgefüllt sind
if($name=="") {
echo "Bitte gib einen Namen ein"; }
## oder halt if(empty($name)) {echo "bLa bla"; }
}

und so halt jedes feld abfragen
anstelle von echo kannst du auch die Fehler zählen und am ende abfragen ob die fehler Variable leer ist oder nicht.
Ist sie leer so Trägt er alles in die Datenbank ein wenn nicht Gibt er halt nen Fehler aus.

Viele wege führen nach Rom :-)

Gruß andy
 
Zurück