Seite 1 von 1

Counter zeahlt nicht ueber 1

Verfasst: 16.05.2008 07:25
von Nichts
Hey Leute,

ich wuesste gerne mal warum an diesem Stuck code, der Counter nicht funktioniert. Von 0 auf 1 gehts, aber weiter gehts nicht.
Ich komme leider nicht drauf.

Code: Alles auswählen

<?php

$file="counter.txt";
$number=readfile($file);

$text="Problem No. ".$number."\n Name: ".$_POST[name]."\n Date: ".$_POST[date]."\n Problem: ".$_POST[problem]."\n Contact: ".$_POST[contact]."\n Advise: ".$_POST[advise]."\n Actions taken: ".$_POST[done]."\n Witnesses: ".$_POST[who]."\n Confirmation: ".$_POST[confirm];


$datei_speichern=fopen($file, "w");   
 fwrite($datei_speichern,$number+1);   
 fclose($datei_speichern);



mail("jemand@server.de","Computer Problem Report from $_POST[name] ",$text);
echo "Your message has been sent. Thank you!";


?>
Mein Server unterstuezt PHP
Die Datei hat 777 Rechte

Ausserdem erscheint eine "2" vor dem Satz "Your message has been sent" was ich nun auch nicht verstehe.

danke

Verfasst: 16.05.2008 11:36
von k-5
weil readfile nicht das tut was du erwartest, (da kommt deine 2 auch her)

http://de3.php.net/manual/de/function.readfile.php

les doch am besten die zahl so aus wie du sie schreibst, (also mit nem fopen( , "r") und nem fread() )

http://de3.php.net/manual/de/function.fread.php

Verfasst: 17.05.2008 12:40
von gn#36
fopen reicht auch ein mal wenn du den Parameter auf "lesen und schreiben" stellst, die Mailfunktion solltest du niemals direkt mit $_POST oder $_GET oder $_COOKIE oder etwas ähnlichem füttern ohne die Zeichen vorher geprüft zu haben, sonst entwickelt sich das - wenn das wer entdeckt - zur Spamschleuder.
Da der Betreff zum Header der Mail zählt und die Position von $_POST[name] noch dazu exzellent für einen Angriff liegt (nämlich ganz am Ende des Betreffs) kann man die Mail mit diesem Formular an beliebige Personen verschicken lassen wenn man nur $_POST[name] passend füllt.