PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |
|

18-03-2005, 17:57
|
web-freak
Newbie
|
|
Registriert seit: Jan 2005
Beiträge: 10
|
|
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
__________________
you web-freak
web-freaks.tk
|

18-03-2005, 18:02
|
penizillin
PHP Guru
|
|
Registriert seit: Feb 2004
Beiträge: 10.166
|
|
du strippst die slashes in einer variable, speicherst in die datei jedoch eine andere.
|

18-03-2005, 18:06
|
web-freak
Newbie
|
|
Registriert seit: Jan 2005
Beiträge: 10
|
|
ich habs ja auch scho mit $file probiert, funktioniert leider nicht
__________________
you web-freak
web-freaks.tk
|

18-03-2005, 18:09
|
penizillin
PHP Guru
|
|
Registriert seit: Feb 2004
Beiträge: 10.166
|
|
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.
|

18-03-2005, 18:17
|
web-freak
Newbie
|
|
Registriert seit: Jan 2005
Beiträge: 10
|
|
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 ' ?
__________________
you web-freak
web-freaks.tk
|

18-03-2005, 18:18
|
penizillin
PHP Guru
|
|
Registriert seit: Feb 2004
Beiträge: 10.166
|
|
fast richtig. nur - was strippst du nun?
|

18-03-2005, 18:20
|
web-freak
Newbie
|
|
Registriert seit: Jan 2005
Beiträge: 10
|
|
na alles was mit post übergeben wurde!
__________________
you web-freak
web-freaks.tk
|

18-03-2005, 18:23
|
penizillin
PHP Guru
|
|
Registriert seit: Feb 2004
Beiträge: 10.166
|
|
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.
|

18-03-2005, 18:25
|
web-freak
Newbie
|
|
Registriert seit: Jan 2005
Beiträge: 10
|
|
sorry, ich kann noch nicht so gut php! hab keine ahung wovon du redest
__________________
you web-freak
web-freaks.tk
|

18-03-2005, 18:28
|
penizillin
PHP Guru
|
|
Registriert seit: Feb 2004
Beiträge: 10.166
|
|
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...?
|

18-03-2005, 18:30
|
web-freak
Newbie
|
|
Registriert seit: Jan 2005
Beiträge: 10
|
|
$text ! aber das hatte ich ja auch schon probiert!
__________________
you web-freak
web-freaks.tk
|

18-03-2005, 18:36
|
penizillin
PHP Guru
|
|
Registriert seit: Feb 2004
Beiträge: 10.166
|
|
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?
|

18-03-2005, 18:38
|
xManUx
Registrierter Benutzer
|
|
Registriert seit: Feb 2004
Beiträge: 833
|
|
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 \
__________________
Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
sondern mit den Augen das Manual zu lesen.
|

18-03-2005, 18:41
|
web-freak
Newbie
|
|
Registriert seit: Jan 2005
Beiträge: 10
|
|
ok, das geht  jetzt hab ich nur noch 1 problem: die \
hast du da auch noch einen tipp?
__________________
you web-freak
web-freaks.tk
|

18-03-2005, 18:52
|
penizillin
PHP Guru
|
|
Registriert seit: Feb 2004
Beiträge: 10.166
|
|
magst du es nicht verstehen?
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|