Hallo,
ich habe versucht einen Besucherzähler zu programmieren, der nach jedem Monat eine Mail, mit dem Besucherzählerstand in diesem Monat, sendet.
Bei der if-Bedingung gibt es aus irgentwelchen Gründen ein Problem:
Obwohl der Monat noch nicht herum ist wird trotzdem eine Mail gesendet....
Guckt's euch einfach mal selber an:
<?php
/*Der eingespeicherte Monat, in der Datei monat.txt, wird in der Variable $monatvar gespeichert.*/
$monatdatei=fopen("monat.txt","r+");
$monatvar=fgets($monatdatei,2);
/*Der eingespeicherte Besucherzählerstand, in der Datei stand.txt, wird in der Variable $besuchervar gespeichert.*/
$besucherdatei=fopen("stand.txt","r+");
$besuchervar=fgets($besucherdatei,100);
$echtmonat=date("m");
if ($besuchervar=="")
{
$besuchervar=0;
}
$besuchervar++;
if ($monatvar=="")
{
$monatvar=$echtmonat;
}
//Das Problem liegt irgetwo hier...
if ($monatvar!=$echtmonat)
{
mail ("meineMail@host.endung","Webseitenzählerstand im Monat ".$monatvar."!","Ihr Zählerstand betrug in diesem Monat: ".$besuchervar."!!!" );
$monatvar=$echtmonat;
$besuchervar=0;
}
rewind ($monatdatei);
fwrite ($monatdatei,$monatvar);
fclose ($monatdatei);
rewind ($besucherdatei);
fwrite ($besucherdatei,$besuchervar);
fclose ($besucherdatei);
?>
Hoffe es kann mir einer helfen ich hab schon alles mögliche versucht...
MfG
fritzil
Edit:
Die Textdateien für den Zählerstand und den Monat habe ich natürlich erstellt.
Ankündigung
Einklappen
Keine Ankündigung bisher.
[Erledigt] PHP Besucherzähler
Einklappen
Neue Werbung 2019
Einklappen
X
-
[Erledigt] PHP Besucherzähler
-
Das Problem ist vermutlich trivial und meiner Meinung nach solltest du es selber lösen. Du wirst immer wieder auf solche kleinen Problchem treffen und sicher nicht immer einen neuen Thread starten wollen, wenn es mal wieder so weit ist.
Du wirst einfach Debuggen müssen. "Einfach" ist hier übrigens im eigentlichen Wortsinn gebraucht und nicht als Füllwort, denn es ist einfach. Was du mindestens mal machen kannst ist dir mitPHP-Code:die(var_dump($monatvar))
) ausgeben lassen.
Ich mache das jetzt selber mal eben.
E: So fertig. Wie vermutet, der Fehler ist trivial. Und wenn du tust was ich vorgeschlagen habe siehst du praktisch sofort wo der Fehler liegt. Wenn du dann weißt wo er auftritt, kann man über das Warum nachdenken. Mich hatte der Fehler erst auch gewundert. Was habe ich als nächstes getan? Mir das Beispiel aus der PHP-Dokumentation kopiert und ausgeführt und dann klappte es. Was mich sofort den Verdacht hat hegen lassen, dass ich wohl doch nicht genau verstanden hatte, was der Befehl eigentlich tut. Nochmal genau in die Doku geschaut und siehe da, tatäschlich funktioniert er anders als ich das angenommen hatte. Nach einer winzigen Anpassung ist das Problem dann behoben.
Einen Kommentar schreiben: