hallo community!
ich beschäftige mich seit kurzem mit php und bin nun auf ein problem gestoßen zu dem ich keine hilfe finden konnte. ich versuche eine php-basierte, kleine, simple webseite zu basteln auf der man mittels admin-oberfläche den inhalt bestimmter dateien im webbrowser ändern kann.
das script funktioniert für meine zwecke völlig ausreichend, jedoch führt die eingabe einer ganz bestimmten zeichenkette zu einer fehlermeldung - und ich weiß nicht warum.
zunächst - ein paar codeschnipsel. um es übersichtlich zu halten verwende ich getrennte php- und html-bereiche. ich war so frei unwichtige angaben zu kürzen
- die eingabemaske in html:
- die zugehörige 'editor.php':
... damit kann ich also nun die dateien 'file1.htm' und 'file2.htm' wunderbar bearbeiten, doch sobald in der textarea die zeichenfolge ".tmp" (ohne anführungsstriche) vorkommt erhalte ich beim versuch die eingabe zu speichern folgende rückmeldung:
im übrigen ist es egal welche zeichen direkt nach den genannten getippt werden - sobald die eingabe in dieser form irgendwo im textfeld auftaucht führt ein speichern zum fehler. und schon ein leerzeichen reicht völlig um dieses problem zu umgehen.
zwar ist in meinem fall äusserst unwarscheinlich dass der benutzer (ich bzw. bekannte denen man das ja problemlos mitteilen kann) ausgerechnet das eingeben möchte, aber mir geht es eher darum zu verstehen was da passiert - und vor allem warum.
noch besser wäre natürlich ein lösungsvorschlag, damit soetwas garnicht erst passieren kann.
im übrigen würde ich mich auch für (angebrachte) kritik, meinungen, gedanken dazu freuen - doch bitte nicht vergessen dass ich keine große webapplikation coden möchte, sondernd lediglich ein auf die bedürfnisse des anwenders zugeschnittenes feature
danke fürs lesen & für die hoffentlich folgenden, klärenden antworten,
grüße,
sph
ich beschäftige mich seit kurzem mit php und bin nun auf ein problem gestoßen zu dem ich keine hilfe finden konnte. ich versuche eine php-basierte, kleine, simple webseite zu basteln auf der man mittels admin-oberfläche den inhalt bestimmter dateien im webbrowser ändern kann.
das script funktioniert für meine zwecke völlig ausreichend, jedoch führt die eingabe einer ganz bestimmten zeichenkette zu einer fehlermeldung - und ich weiß nicht warum.
zunächst - ein paar codeschnipsel. um es übersichtlich zu halten verwende ich getrennte php- und html-bereiche. ich war so frei unwichtige angaben zu kürzen
- die eingabemaske in html:
Code:
<?php include('editor.php'); ?> <form action="<?php echo $PHP_SELF;?>" method="get"> <p><a href="admin.php?action=edit&file=file1">file 1</a></p> <p><a href="admin.php?action=edit&file=file2">file 2</a></p> </form> <form action="<?php echo $PHP_SELF;?>" method="post"> <p><textarea cols="50" rows="10" name="editor"><?php echo $source ;?></textarea></p> <p><?php echo $button ;?></p> </form>
- die zugehörige 'editor.php':
PHP-Code:
<?php
if (empty($_GET["file"])) {
$source = "please choose a file to edit...";
$button = "";}
else {
$file = $_GET["file"];
if ($file == "file1") {
$path = "file1.htm";
$source = file_get_contents($path);
$button = "<input type=\"submit\" class=\"submit\" name=\"save\" value=\"save\">";}
else if ($file == "file2") {
$path = "file2.htm";
$source = file_get_contents($path);
$button = "<input type=\"submit\" class=\"submit\" name=\"save\" value=\"save\">";}
else {
$path = "";
$source = "please choose a file to edit...";
$button = "";}
}
if (isset($_POST["save"])){
$content = $_POST["editor"];
$tmpfile = "edited_file.tmp";
$newfile = fopen($tmpfile,"wb");
chmod($tmpfile, 0777);
fwrite($newfile,$content);
fclose($newfile);
unlink($path);
rename($tmpfile,$path);
$source = "file saved!";
$button = "";}
?>
... damit kann ich also nun die dateien 'file1.htm' und 'file2.htm' wunderbar bearbeiten, doch sobald in der textarea die zeichenfolge ".tmp" (ohne anführungsstriche) vorkommt erhalte ich beim versuch die eingabe zu speichern folgende rückmeldung:
Zugriff verweigert!
Der Zugriff auf das angeforderte Objekt ist nicht möglich. Entweder kann es vom Server nicht gelesen werden oder es ist zugriffsgeschützt.
Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber.
Der Zugriff auf das angeforderte Objekt ist nicht möglich. Entweder kann es vom Server nicht gelesen werden oder es ist zugriffsgeschützt.
Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber.
zwar ist in meinem fall äusserst unwarscheinlich dass der benutzer (ich bzw. bekannte denen man das ja problemlos mitteilen kann) ausgerechnet das eingeben möchte, aber mir geht es eher darum zu verstehen was da passiert - und vor allem warum.
noch besser wäre natürlich ein lösungsvorschlag, damit soetwas garnicht erst passieren kann.
im übrigen würde ich mich auch für (angebrachte) kritik, meinungen, gedanken dazu freuen - doch bitte nicht vergessen dass ich keine große webapplikation coden möchte, sondernd lediglich ein auf die bedürfnisse des anwenders zugeschnittenes feature
danke fürs lesen & für die hoffentlich folgenden, klärenden antworten,
grüße,
sph
Kommentar