• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Cookie-Counter problem

sin777

Neues Mitglied
Hallo, ich wollte einfach mal einen Counter über ein Cookie realisieren, der bei jedem Seitenaufruf erhöht wird. Dazu habe ich ganz an den Anfang der php Datei folgenden Code geschrieben:

PHP:
<?php
    if(isset($_COOKIE["count"])) {
        $_COOKIE["count"]++;
    }
    else {
        setcookie("count", "0", time()+3600);
    }
?>

wenn ich den wert von dem cookie dann aber im body Anzeige lasse:

PHP:
        <?php
            if(isset($_COOKIE["count"])) {
                echo "Visits: " . $_COOKIE["count"];
            }
        ?>

dann erhalte ich immer nur den Wert 1. Warum zählt der count nicht weiter hoch, wenn ich aktualisiere?
 
hallo

du musst den wert nach dem erhöhen auch im cookie speichern, sonst beginnt der counter immer bei 0.

z.B.: setcookie("count",$_COOKIE["count"]+1);
 
Danke :)

Ich habe noch ein weiteres Problem :(

PHP:
            $file = "entries.txt";

            function saveGuest($name, $message) {
                $zeile = $name . "," . $message . "," . date("Y"). " um " .date("G") . ":" . date("i") . "Uhr" . "\n";
                $fp = fopen($file, "a");
                fwrite($fp, $zeile);
            }

Warum wird mir angezeigt dass in der Zeile $fp = fopen($file, "a"); file nicht definiert wurde? Ich habe doch darüber file definiert ... Wie ist denn das mit den Gültigkeitsbereichen in php bzw. wo liegen die Unterschiede zu Java und Co.?
 
damit php die datei auch findet/erstellt, musst du in der variable $file auch den Pfad mit angeben.
z.B. $file = "../tmp/entries.txt";
entweder relativ oder absolut.


nachtrag: war wohl heute etwas zu heiß :-) und jetzt erst gesehen das du eine function aufrufst.
entweder du definierst die variable innerhalb der function oder du übergibst sie als parameter

z.B.: function saveGuest($name, $message,$file ) {.....}
 
Zuletzt bearbeitet:
Wieso den Pfad? Ich dachte $file wäre einfach ein String. wenn ich fopen anwende und entries.txt nicht existieren würde, dann wird diese datei einfach erstellt. es liegt nicht daran, dass die datei nicht gefunden wird, sondern daran, dass die variable in der function nicht existiert ...

Dann eine andere Frage, was für Variablen haben in functions gültigkeit bzw. kann ich überhaupt variablen außerhalb einer function definieren, die dann auch in der function selbst sichtbar sind?

Danke :)
 
Vielen Dank! Ich habe nur noch eine letzte Frage. Ich möchte selbst ein Gästebuch programmieren und beim "Messagebereich" habe ich nun Folgendes Problem. Ich will, dass wenn ich den Kommentar eines Users auslese dieser z.b. alle 50 Zeichen automatisch
einen Zeilenumbruch macht. Also wenn der user jetzt einen Kommentar über 1000 Zeichen schreiben würde, dann wäre das alles in einer Zeile. Ich möchte aber alle 50 Zeichen einen automatischen Zeilenumbruch. Wie mache ich das am besten?
 
wordwrap wäre dazu ganz gut geeignet.

PHP:
$body = 'Eine Seefahrt, die ist lustig, eine Seefahrt die ist schön.';

echo wordwrap($body, 15, '<br />');

Wenn du es wirklich auf das Zeichen genau haben willst, vielleich auch chunk_split.

- PHP: wordwrap - Manual
- PHP: chunk_split - Manual

Du könntest andererseits aber auch einfach die Größe des Ausgabefelds auf eine gewisse Breite beschränken. Browsern brechen Text ja auch automatisch um.
 
Wenn man den letzen Parameter von wordwrap() auf true setzt, dann sollte es auch damit aufs Zeichen genau gehen ;)
 
Stimmt, ist aber noch ein etwas anderer Effekt. chunk_split zerschnippelt eher Wörter. So gesehen wäre wordwrap vermutlich die bessere Lösung.
 
Zurück
Oben