Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo...

Ich habe ein PHPscript geschrieben mit dessen hilfe ich dateien editieren kann (z.B HTML Dateien die auf meinem Webspace liegen)

Das alles läuft über eine HTML Form.

Mein Problem: Er öffnet die Datei einwandfrei... ich kann Editieren ohne Problem und er speichert auch das veränderte.

Doch irgendwie werden die "Anführungszeichen" mit einem / Slasch ersetzt.

Wie kann ich das verhindern?

Ich könnte natürlich garkeine " Verwenden doch würde die dann nichtmehr dem Standart entsprechen und was ist wenn ich ein Wort oder Satz in " Schreiben möchte?

Wenn ihr etwas mit Austausch vorschlagen solltet bitte bedenkt das HTTP Adressen in der Datei die Beispielsweise so lauten könnten : http://www.test.de nicht dürch http:""www.test.de derstez werden.

Hoffe auf hilfe :rolleyes:

Original geschrieben von FisyX

Doch irgendwie werden die "Anführungszeichen" mit einem / Slasch ersetzt.

Wie kann ich das verhindern?

Hast du mal

echo chr(34);

probiert?

<?php

$fhandle=fopen("$file","w+");

fwrite($fhandle,"$text");

$var=stripslashes($var );

fclose($fhandle);

echo("Die Datei wurde geändert!");

exit();

?>

Das ist der Code....

Die hilfen die ich ausm Internet hab wie z.B:

$var=stripslashes($var );

haben nichts geholfen :(

Original geschrieben von FisyX

[...]Doch irgendwie werden die "Anführungszeichen" mit einem / Slasch ersetzt.[...]

Also wenn die ersetzt werden, wann werden die denn ersetzt? Schon bei der Übergabe an die PHP-Datei, oder erst, wenn die in die Datei geschrieben werden sollen?

Vielleicht hilft es ja, den ganzen übergebenen Text einfach mitelst ' zu umschliessen oder die Zeichen per \ zu maskieren... :rolleyes:

Original geschrieben von FisyX

<?php

$fhandle=fopen("$file","w+");

fwrite($fhandle,"$text");

$var=stripslashes($var );

fclose($fhandle);

echo("Die Datei wurde geändert!");

exit();

?>

Ich vermute, du suchst das:

<?php

$fhandle=fopen("$file","w+");

$var=stripslashes($var );

fwrite($fhandle,"$var");

fclose($fhandle);

?>

hth

Reinhold

die / kommen erst nach beschreiben der datei

Entschuldigung... er macht backslaches und keine slash !

Also

Ich öffne ne HTML Datei mit " drinne dann sieht die so aus wenn die per php geöffnet wurde:

<html>

<body>

"Dies ist ein test"

</body>

</html>

Dan klicke ich auf speichern und die datei sieht so aus:

<html>

<body>

\"Dies ist ein test\"

</body>

</html>

Die Datei wird mit dieser html Form angezeigt:

<body>

<form method="POST" action="edit.php?file=<? echo("$file"); ?>">

<textarea rows="15" name="text" cols="60">

<? include("$file"); ?>

</textarea><br>

<input type="submit" value="Speichern" name="saved">

</form>

</body>

Bisehr kam ich mit euren Vorschlägen nicht weiter

Hat nicht funktioniert.... mit deinem Script schreibt er garnix mehr in die datei :(

Wenn ein inhalt besteht wird dieser beim abspeichern glöscht !

Original geschrieben von FisyX

[...]Dan klicke ich auf speichern und die datei sieht so aus:

[...]\"Dies ist ein test\"[...]

Also wird das Anführungszeichen schonmal maskiert. Für nichts anderes ist das \ ja da da.

Kannst du das nicht einfach mittels ereg_replace() bei der Ausgabe wieder rausfiltern? :rolleyes:

Original geschrieben von Crash2001

Also wird das Anführungszeichen schonmal maskiert. Für nichts anderes ist das \ ja da da.

Kannst du das nicht einfach mittels ereg_replace() bei der Ausgabe wieder rausfiltern? :rolleyes:

natürlich wäre es viel schöner die ursache herauszufinden warum sich da die "/" einschleichen anstatt diese am schluß einfach mit ereg_replace) rauszuhauen

--------

versuch das ma:


<?php
$fhandle=fopen($file,"w+");
fwrite($fhandle, $text);
fclose($fhandle);
exit("Die Datei wurde geändert!");
?>
[/PHP]

Original geschrieben von FisyX

die / kommen erst nach beschreiben der datei

Hmmm...also sieht irgendwie so aus, als ob die nciht richtig üebrgeben werden... :rolleyes:

Weil wenn ich dabei die Variable $text manuell belege mittels


$text ='
<html>
<body>
"Dies ist ein test"
</body>
</html>';
[/PHP]

Dann schreibt der den Text auch so in die Datei wie er soll... ;)

Also wird das wohl bei der Übergabe an die Datei schon maskiert...

Bis jetzt haben eure vielen beispielversuche nichts gebracht :(

Bei manchen ( die ersten paar) da schreibt das script garnix mehr in die text datei und ansonsten immer wieder "\ !

Ich glaube am besten ich lasse die anführungszeichen komplett weg .....

Oder hat nicht jemand ein komplett funktionierendes script mit dem man den quelltext von html dateien anzeigen lassen und wenn gewollt auch bearbeitetn kann (sozusgen webasierend) über eine html form :confused:

Hallo!

Wenn dein Skript mit stripslashes gar nichts mehr schreibt, hast du einen Fehler beim einbauen gemacht.

stripslashes funktioniert auf alle Fälle!

Gruß Jaraz

PS: weil hier schon lange rumgeraten wird ein Beispiel:

<?php
if(isset($_GET['file'])){
$fhandle=fopen($_GET['file'],"w+");
fwrite($fhandle, stripslashes($_POST['text']));
fclose($fhandle);
echo "gespeichert<p>";
}
?>
<body>
<form method="POST" action="test.php?file=<?php echo("test.html"); ?>">
<textarea rows="15" name="text" cols="60"><?php include("test.html");?></textarea><br>
<input type="submit" value="Speichern" name="saved">
</form>
</body>[/PHP]

Original geschrieben von FisyX

<?php

$fhandle=fopen("$file","w+");

fwrite($fhandle,"$text");

$var=stripslashes($var );

fclose($fhandle);

echo("Die Datei wurde geändert!");

exit();

?>

Öhm, auch wenn's andere schon angedeutet haben, aber hier ist ein Logikfehler in der Abfolge:

1. Öffnen der Datei

2. Schreiben des Texts in die Datei

3. stripslashes auf $var das zum Einen nicht gefüllt ist und zum Anderen nach dem Schreiben erfolgt und somit gar nix bringen würde, auch wenn's die richtige Variable wäre

4. schliessen der Datei

Daher:

Try it like this:

<?php

$fhandle=fopen("$file","w+");

$text=stripslashes($text );

fwrite($fhandle,"$text");

fclose($fhandle);

echo("Die Datei wurde geändert!");

exit();

?>

ICQ

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.