PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Datei editieren (https://www.php-resource.de/forum/php-developer-forum/52083-datei-editieren.html)

web-freak 18-03-2005 18:57

Datei editieren
 
hi leute! ich hab mir von codeschnippsel.net einen kleinen fetzen gehohlt, präzise: ein editierscript für dateien.
leider kommen beim ausführen immer die fiesen backslashes in die datei geschrieben vor " und '

hier erstmal der originalcode:

PHP-Code:

<?php

   $file 
"update.txt";

   echo 
"<form action=\"$PHP_SELF\" method=\"POST\">";
   echo 
"<textarea name=\"text\" cols=\"50\" rows=\"5\">";
   
readfile($file);
   echo 
"</textarea><BR>";
   echo 
"<input type=\"submit\" name=\"gesendet\" value=\"speichern\">";
   echo 
"</form><BR>";

   if (
$gesendet) {
      
$datei_speichern=fopen($file"w");
      
fwrite ($datei_speichern$_POST['text']);
      
fclose($datei_speichern);
      echo 
"Änderung erfolgreich";
   }

?>

ich weiß ja so ungefähr wie man das beheben kann, z.b. mit

PHP-Code:

$Name=stripslashes($Name);
$Name=strtr($Name,"'","'"); 

und hier mein versuch der leider nicht funktioniert :(

PHP-Code:

<?php

   $file 
"update.txt";

   echo 
"<form action=\"$PHP_SELF\" method=\"POST\">";
   echo 
"<textarea name=\"text\" cols=\"50\" rows=\"5\">";
   
readfile($file);
   echo 
"</textarea><BR>";
   echo 
"<input type=\"submit\" name=\"gesendet\" value=\"speichern\">";
   echo 
"</form><BR>";

   if (
$gesendet) {
      
$datei_speichern=stripslashes($datei_speichern);
      
$datei_speichern=strtr($datei_speichern,"'","'");
      
$datei_speichern=fopen($file"w");
      
fwrite ($datei_speichern$_POST['text']);
      
fclose($datei_speichern);
      echo 
"Änderung erfolgreich";
   }

?>

ich bitte um eure mithilfe, bin schon total deprimiert :dontknow:

penizillin 18-03-2005 19:02

du strippst die slashes in einer variable, speicherst in die datei jedoch eine andere.

web-freak 18-03-2005 19:06

ich habs ja auch scho mit $file probiert, funktioniert leider nicht :(

penizillin 18-03-2005 19:09

codeschnippsel bringen dich nicht weiter. gib dir mühe und finde heraus, was die funktion fwrite tut und was ihr übergeben wird. dann schaust du, was du ihr übergibst. und dann überlegst du, was du 'stripslash'en sollst.

web-freak 18-03-2005 19:17

ich habs schon mal hinbekommen dass er das anführungszeichen wegslasht!!

PHP-Code:

<?php

   $file 
"update.txt";

   echo 
"<form action=\"$PHP_SELF\" method=\"POST\">";
   echo 
"<textarea name=\"text\" cols=\"50\" rows=\"5\">";
   
readfile($file);
   echo 
"</textarea><BR>";
   echo 
"<input type=\"submit\" name=\"gesendet\" value=\"speichern\">";
   echo 
"</form><BR>";

   if (
$gesendet) {
      
$_POST=stripslashes($text);
      
$datei_speichern=fopen($file"w");
      
fwrite ($datei_speichern$_POST['text']);
      
fclose($datei_speichern);
      echo 
"Änderung erfolgreich";
   }

?>

und geht das mit dem ' ?

penizillin 18-03-2005 19:18

fast richtig. nur - was strippst du nun?

web-freak 18-03-2005 19:20

na alles was mit post übergeben wurde!

penizillin 18-03-2005 19:23

nein.
wenn du nicht anfängst nachzuschlagen, können wir noch lange rätseln, denn:

$_POST ist ein array, dem nichts zugewiesen werden soll.
während stripslashes ein string zurückgibt.

web-freak 18-03-2005 19:25

sorry, ich kann noch nicht so gut php! hab keine ahung wovon du redest :dontknow:

penizillin 18-03-2005 19:28

du schreibst in die datei den inhalt von $_POST['text']. nicht wahr?
es ist doch keine meisterleistung zu sehen, WAS nun gestrippt werden soll. nicht $x und nicht $y, sondern...?

web-freak 18-03-2005 19:30

$text ! aber das hatte ich ja auch schon probiert!

penizillin 18-03-2005 19:36

dir fehlt's an kombinatorischen ansätzen?

wenn A nen text enthält, der gestrippt werden soll, bevor er in die datei geschrieben wird, wozu B strippen?

xManUx 18-03-2005 19:38

Kleiner Tipp:

Bei Formularen bzw. bei HTML wäre es sinnvoller Hochkommas zu benutzen!

PHP-Code:

 echo '<form action="dsf" method="post">'

dann brauchst die Anfürhungszeichen nicht escapen mit \

web-freak 18-03-2005 19:41

ok, das geht :) jetzt hab ich nur noch 1 problem: die \
hast du da auch noch einen tipp?

penizillin 18-03-2005 19:52

magst du es nicht verstehen?


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:45 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG