PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Newbie Frage



snify
16.06.2009, 00:20
Hallo ich habe folgendes Script:

<?php
if (isset($_GET["data"])&&isset($_GET["filename"]))
{
$fp = @fopen($_GET["filename"], "a+");
if($fp)
@fwrite($_GET["data"], $fp);
@fclose($fp);
}
?>

ich wollte es aufrufen mit:
upload.php?filename=testtext.txt&data=halloWelt

Allerdings wird die Data nicht geschrieben (Datei wird erstellt)
hab schon alle Rechte auf das Script erteilt.
Wäre nett, wenn jemand den Fehler finden würde :)

Lidloses_Auge
16.06.2009, 00:31
Die Lösung ist simpel.
fwrite erwartet zuerst das Handle und dann den Content.
Also -> @fwrite($fp, $_GET["data"]);

snify
16.06.2009, 00:40
aaah..
das wars.
vielen dank :)

EDIT:
weiß jemand, wie ich dort zeilenumbrüche schaffen kann?
habs mit \n \n\r und \r\n probiert... jedoch erfolglos...

cl9wn
16.06.2009, 01:20
Wo genau willst du Zeilenumbrüche machen?

snify
16.06.2009, 01:22
Wo genau willst du Zeilenumbrüche machen?

beim aufruf der php

upload.php?filename=test.txt&data=Zeile1\r\nZeile usw...

allerdings klappt das net :(

VeN0m
16.06.2009, 14:56
Ich habe gerade nicht viel Zeit, für Erklärungen... Mach Dir irgendein Zeichen, was kein Sonderzeichen wie der Backslash ist und mache es damit.
Z.B. upload.php?filename=test.txt&data=Zeile1ZUZeile2.
ZU = ZeilenUmbruch.
Dann ersetzt Du ZU mit \r\n:



$data = str_replace("ZU","\r\n\,$_GET['data']);


Der Code ist jedoch weder besonders sicher noch perfekt. Aber er wird funktionieren ;).

snify
16.06.2009, 15:29
jap funktioniert ohne Probleme,
vielen dank :)