Script übernimmt die Angaben nicht und - Endlosschleife??
Phil
- php
Hi Leute! Ich habe ziemlich großes Problem!
Mein Ziel ist es, Daten per Formular abzuschicken, dann werden alle " ", also Leerzeichen durch &nsbp; und alle Zeilenumbrüche durch <br> ersetzt. Dann wird alles in die Datei var.php reingeschrieben. (Die ich dann später includen werde).
Was passiert? Endlosschleife. Er schreibt die var.php bis zu 250MB groß voll bis ich den Browser beende.
Dabei gibt es auf dem Formular 4 Felder news(1-4).
Er soll die Felder per for-Schleife durchnehmen, auswerten und reinschreiben. Anschließend dann auf die index.php weiterleiten.
<?
if (file_exists("var.php")) {
$fp = fopen( "var.php", 'w' );
fwrite($fp, "<?\n");
fwrite($fp, "$newsT1 = "<div class='k1'>";\n");
$i = 1;
$T = fwrite($fp, "$newsT2 = "</div><hr class='hr1'><div class='k1'>";\n");
for ( $i=1; $i<=5; $i++) {
$news.$i = $_POST['news.$i'];
$umbruch.$i = nl2br($news.$i);
$newsz.$i = str_replace(" ", " ", $umbruch.$i);
$news.$i = str_replace("\n", "<br>", $newsz.$i);
fwrite($fp, "$news$i = "$news$i";\n");
$T;
}
fwrite($fp, "$newsT3 = "</div>";\n");
fwrite($fp, "$newsticker = "$newsticker";\n");
fwrite($fp, "$l = "$l";\n");
fwrite($fp, "?>");
fclose($fp);
header("Location: http://localhost/BIGPRO/ME/index.php");
exit;
}
?>
Ich hoffe ihr könnt mir helfen!
Hallo Phil,
Was passiert? Endlosschleife. Er schreibt die var.php bis zu 250MB groß voll bis ich den Browser beende.
<?
for ( $i=1; $i<=5; $i++) {
$news.$i = $_POST['news.$i'];
Du möchtest wahrscheinlich eher ein Array verwenden, schlimmstenfalls variable Variablen.
Nachdem Du $news und $i verkettet hast und das Ergebnis im Nirwana verschwunden ist, weist Du der Variablen $i den Wert von $_POST['news.$i'] zu. Bitte beachte, das ist etwas anderes als der Wert von $_POST['news1'], was Du erwartest, siehe PHP-Handbuch, Einfache Anführungszeichen (Single quoted) . In diesem Stil geht es Zeile für Zeile weiter.
Du solltest daher zuerst mit error_reporting(E_ALL) dafür sorgen, dass Du über Deine Fehler informiert wirst.
Freundliche Grüße
Vinzenz
Hi
$news.$i = $_POST['news.$i'];
"." wird in Javascript bei Objekten als auch bei Arrays benutzt verwendet
var var_mit_indexname = "document";
window.document
window["document"]
window[variable_mit_objektename]
Bei PHP wird für Arrays nur "[...]", für Objekte "->" benutzt.
$var_mit_indexname = "eigenschaft";
$array["eigenschaft"]
$array[$var_mit_indexname]
$objekt->eigenschaft
$objekt->$var_mit_indexname
Der Punkt ist für Zeichenkettenverknüpfungen:
echo $begruessung." ".$name;
mfg
Genie
Hi,
dann werden alle " ", also Leerzeichen durch &nsbp; und alle Zeilenumbrüche durch <br> ersetzt.
warum wilst Du die Daten verfälscht abspeichern?
Dann wird alles in die Datei var.php reingeschrieben. (Die ich dann später includen werde).
Warum so umständlich? Speichere die Daten doch einfach in eine Textdatei und werte sie dann bei Bedarf aus - wobei Du *dann* je nach gewünschter Ausgabe entsprechende Umwandlungen vornehmen kannst.
<?
da fehlt was; denk' auch an später - irgendwann könnte auch Dein Server short_open_tags deaktiviert haben.
if (file_exists("var.php")) {
Warum muß die Datei exstieren, wenn Du sie doch ohnehin überschreiben willst?
fwrite($fp, "<?\n");
da fehlt schon wieder was...
Abgesehen davon, dass das wie gesagt besser eine Textdatei sein sollte.
Brauchbare Dateiformate wären hier z.B. csv oder ini.
freundliche Grüße
Ingo