Online editieren von Textdateien (help!)

Cosinus14

Grünschnabel
Hallöchen,

Ich habe so,n kleines Script geschrieben, um Textdateien online editieren zu können...

Die beiden Teile sehen so aus:

Text laden anschauen:

PHP:
<HTML>
<HEAD>
<TITLE>Text anschauen</TITLE>

</HEAD>
<BODY>
<?
$handler = fopen("demotext.php", "r");
while (!feof($handler)) 
{
echo fgets($handler, 1000) . "<BR>";
}
fclose($handler);
?>
<p><a href="edittext.php">Text &auml;ndern</a></p>
</BODY>
</HTML>

Danach den Text ändern:

PHP:
<?
if ($edit)
{
$handler = fopen("demotext.php","w");
if(fputs($handler, $textfile))
 {
$gespeichert = 1;}
fclose($handler);
}
?>
<HTML>
<HEAD>
<TITLE>Text ändern</TITLE>
</HEAD>
<BODY>
<? if($gespeichert)
{
echo "Text wurde gespeichert";
}
?>
<FORM ACTION="edittext.php" METHOD="post">
<input type="hidden" name="edit" value="1">
<TEXTAREA NAME="textfile" COLS="90" ROWS="25"><?readfile("demotext.php");?></TEXTAREA>
<BR>
<INPUT TYPE="Submit" VALUE="Text speichern">&nbsp;&nbsp;&nbsp;
<INPUT TYPE="reset" value="zurücksetzen">
</FORM>
<a href="textfile.php">Textdatei anschauen...</a>
</BODY>
</HTML>

Das Problem ist nun, dass der zu ändernden Text z.B. eine HTML-Seite oder eine Include-Datei sein soll in der viele Anführungszeichen vorkommen.

Speichere ich nun den Text ab, wir aus einem " ein \"..

Ich vermute, dass sich das wohl mit stripslashes() verhindern lässt.
Alledings weiss ich beim Teufel nicht, wie ich den Code entsprechend ändern muss....

Kann mir da Jemand behilflich sein?

Danke im Voraus ;-)
Cosinus14
 
PHP:
<?php
if(isset($_POST['textfile']))
{
    $handler = fopen('demotext.php','w');
    $text         = get_magic_quotes_gpc() > 0 ? stripslashes($_POST['textfile']) : $_POST['textfile'];
    $done         = false;
    if(fputs($handler, $text))
    {
        $done = true;
    }
    fclose($handler);
}
?>
<html>
<head>
<title>Text ändern</title>
</head>
<body>
<?php if($done === true)
{
    echo 'Text wurde gespeichert';
}
?>
<form action="edittext.php" method="post">
<textarea name="textfile" cols="90" rows="25"><?php echo readfile('demotext.php'); ?></textarea>
<br>
<input type="Submit" value="Text speichern">&nbsp;&nbsp;&nbsp;
<input type="reset" value="zurücksetzen">
</form>
<a href="textfile.php">Textdatei anschauen...</a>
</body>
</html>

PHP:
<html>
<head>
<title>Text anschauen</title>

</head>
<body>
<?
$text = file_get_contents('demotext.php');
echo nl2br($text);
?>
<p><a href="edittext.php">Text &auml;ndern</a></p>
</body>
</html>
 
Zuletzt bearbeitet:
Die Zeile war falsch:

PHP:
 $text = get_magic_quotes_gpc() > 0 ? stripslashes($_POST['textfile']) ? $_POST['textfile'];

So geht es:

PHP:
 $text = get_magic_quotes_gpc() > 0 ? stripslashes($_POST['textfile']) : $_POST['textfile'];

Danke für die Hilfe :-)

Kleiner Fehler meinerseits, ist behoben.... Code oben wurde aktualisiert.

Jau :-)

Nochmals danke ;)
 
Hmmmm....
Es gibt da wohl noch ein kleines Problem...

Beispieltext vor dem editieren:

PHP:
  //Rubriken
$_GET[rub] == "" ? $rub = $_POST[rub] : $rub = $_GET[rub];
$_GET[auser] == "" ? $auser=$_POST[auser] : $auser=$_GET[auser];
$_GET[apass] == "" ? $apass=$_POST[apass] : $apass=$_GET[apass];
//_____________________________________________
?>

NACH dem editieren:

PHP:
 //Neue Rubriken
$_GET[rub] == "" ? $rub = $_POST[rub] : $rub = $_GET[rub];
$_GET[auser] == "" ? $auser=$_POST[auser] : $auser=$_GET[auser];
$_GET[apass] == "" ? $apass=$_POST[apass] : $apass=$_GET[apass];
//_____________________________________________
?>58075806

Die achtstellige Zahl am Ende, wo kommt die her?
Tritt bei jeder editierten Datei auf, die geänderten Dateien sind so nicht zu gebrauchen... :confused:

Sieht fast aus wie eine art counter ...

Nach mehrmaligem Abspeichern der Datei sieht das so aus:
5807 5806 5809 5810 5813 u.s.w.

Cosinus14
 
Zuletzt bearbeitet:
Liegt an dem [phpf]readfile[/phpf]...
de.php.net/readfile hat gesagt.:
Gibt die Anzahl der gelesenen Bytes einer Datei zurück. Wenn ein Fehler auftritt wird FALSE zurückgegeben und eine Fehlermeldung wird auf der Standardausgabe ausgegeben. Die Ausgabe einer Fehlermeldung kann durch Voranstellen eines '@' verhindert werden (@readfile).
Nimm stattdessen [phpf]file_get_contents[/phpf]...
 
Zurück