php hilfe
anton
- php
hi,
ja ich weiß das ich dieses posting schon einmal geschrieben habe nur das steht soweit unten das keiner mehr drauf antwortet also nehmt es mir bitte nicht böse das ich es nochmal schreibe.
-----------------
ich habe mir jetzt einiges durchgelesen was mir aber auch nicht weiterhilft. mein derzeitiger code schaut so aus:
<?PHP
echo "
<html>
<head>
</head>
<body>
";
if(strlen($email) > 0)
echo "
Ende
";
else
$fp = fopen ("speicher","r");
$zahl = fgets($fp,5);
fclose($fp);
$zahl++;
echo $zahl;
echo "
<form action='$PHP_SELF' method='post'>
<input type='text' name='email' value='$email'>
<input type='submit' value='Senden'>
</form>
";
$fp = fopen ("speicher","w");
fwrite($fp,$zahl,10);
fclose($fp);
$fp = fopen ("emailspeicher","w");
fwrite($fp,$email,30);
fclose($fp);
echo "
</body>
</html>
";
?>
aber es kommen immer noch fehler, wenn ich auf senden klicke wird zwar die email gespeichert aber $zahl ist aufeinmal wieder 0 und es kommt die fehlermeldung:
fgets(): supplied argument is not a valid stream resource
fclose(): supplied argument is not a valid stream resource
was bedeuten die?
was habe ich falsch gemacht?
moin!
aber es kommen immer noch fehler, wenn ich auf senden klicke wird zwar die email gespeichert aber $zahl ist aufeinmal wieder 0
ich würde erstmal grundsätzlich eine richtige schreibweise anwenden. die klammern in deiner if-else anweisung fehlen vollkommen.
http://de.php.net/else
fgets(): supplied argument is not a valid stream resource
hm, ich denke mal, dass entweder die datei nicht vorliegt, oder der parse dein "speicher" nicht als datei erkennt. besser ist hier mit absoluten pfadangaben zu arbeiten.
http://de.php.net/fgets
fclose(): supplied argument is not a valid stream resource
wenn du den ersten fehler beseitigt hast, kann das handle auch geschlossen werden, da es geöffnet wurde. sonst gibt es wie hier ne fehlermeldung.
gruß.
roger.
Hi!
Also da sehe ich gleich einige Dinge, die Probleme bereiten können.
Ich hab jetzt keine Lust, mir alles genau anzuschauen, darum nur kurz die Sachen, die mir ins Auge springen...
else
$fp = fopen ("speicher","r");
$zahl = fgets($fp,5);
fclose($fp);
Dir ist klar, daß hier nur fopen() beim else ausgeführt wird? Das fgets() und fclose(9 wird in jedem Fall ausgeführt.
Nach einem if oder else wird nur die direkt dahinter stehende Anweisung ausgeführt. Wenn Du also mehr als eine Anweisung ausführen lassen möchtest, dann mußt Du diese Anweisungen in einen Block fassen.
Also:
else {
$fp = fopen ("speicher","r");
$zahl = fgets($fp,5);
fclose($fp);
}
Dann weiter:
<form action='$PHP_SELF' ...
Ja, mit etwas Glück funktioniert das, aber nur wenn register_globals in der php.ini auf off steht.
Wenn Du hier $_SERVER[PHP_SELF] statt $PHP_SELF schreiben würdest, dann wärst Du auf der sicheren Seite.
Dann würde ich dem Dokument eine DTD verpassen, title-Tags, usw., usw..
Hello Anton,
ich habe Dich nicht vergessen.
Ich habe für Dich und natürlich auch für alle Anderen, die wissen wollen, wir man Daten in Flatfiles Speichern kann, wie versprochen ein Script fertig gemacht. Du findest es unter http://bitworks.de/~selfHTML/speichern.php
Viel Spaß damit.
Vielleicht hat ja jemand Lust dazu, die Kommentare noch zu vermehren, sodass auch Einsteiger etwas mit dem Script anfangen können.
Liebe Grüße aus http://www.braunschweig.de
Tom