[PHP] - File ändern im Browser... Klappt ABER....!!!



  • Hi Leute!

    Ich habe in einer PHP Datei folgender Code:

    <?php
    $open_file = "functions.inc.php";
    $fpa = fopen ($open_file, "r");
    $data = fread ($fpa, filesize ($open_file));
    echo "<bR><br>";
    echo "<form method=\"post\" action=\"write_file.php?open_file=$open_file\">";
    echo "<textarea name=\"file\" rows=\"40\" cols=\"120\">".$data."</textarea>";
    echo "<input type=submit value=\"Ändern\"></form>";
    
    fclose($fpa);
    ?>
    

    Dieser Code liest mir die functions.inc.php aus und wiedergibt deren inhalt in ein Textfeld! Gut und recht!
    Die write_file.php ändert die Datei mit dem, was auch im Textfeld geändert wurde:

    <?php
    $fp = fopen($open_file, "r+");
    fwrite($fp, $file);
    fclose($fp);
    
    echo "Die Datei ".$open_file." wurde erfolgreich geändert!";
    ?>
    

    In der functions.inc.php, wo auch wirklich alles angezeigt wird, steht beispielsweise am anfang das da:

    <table border="0" cellspacing="0" cellpadding="0" width="100%" height=100%>
    <tr>
    <td width=170>
    <table border="0" cellspacing="5" cellpadding="2" width="170" height=100%>
    <tr valign="top">
    <td>
    <table width=170 height=100% border="0" cellpadding="3" cellspacing="0" bgcolor="#FFFFFF">
    <tr>
    <td bgcolor="#8D0310"><font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF"><b>Hauptteil</b></font></td>
    </tr>
    <tr>
    <td width="170" bgcolor="#F7F4C1">
    <font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#000000">

    • <a href="index.php">Home</a><br>
    • <a href="info.php">Information</a><br>
    • <a href="tipps_tricks.php">Tipps und Tricks</a><br>
    • <a href="http://212.84.254.161/0814/html/cgi-bin/cms/gb/gb.cgi?id=2087" target="_new">Gästebuch</a><br>

    Und nun mein PRoblem:

    1. Das ändern geht! wenn ich hier jetzt zum beispiel Tipps und Tricks zu Tipps AND Tricks ändere, geht das! Dann steht auch das geänderte nachher da!

    2. DOCH SOBALD ES GEändert wurde, fiel mir auf, dass JEDES " Zeichen, vodran /// hat! also anstatt "irgendweas" macht write_file.php einfach ///"irgendwas///" draus!!!

    Das sollte aber NICHT so sein! es müssen die " bleiben und NICHT durch ///" ersetzt werde! Wie mache ich das, das dies nicht geschiet?

    Vielen Dank zum voraus, mfg Programmer!



  • Also ich habe jetzt folgendes:

    <?php
    $fp = fopen($open_file, "r+");
    stripsplashes("\"");
    fwrite($fp, $file);
    fclose($fp);
    
    echo "Die Datei ".$open_file." wurde erfolgreich geändert!";
    ?>
    

    Aber das geht nicht! Wahrscheinlich wegen dem stripsplashes("\""); keine ahnung, wie ich das jetzt da schreiben muss, dass es geht..

    mfg
    Programmer



  • fwrite( $fp, stripslashes( $HTTP_POST_VARS['file'] ) );

    Übrigens solltest du für die Ausgabe htmlspecialchars($data) verwenden.


Anmelden zum Antworten