Dateien öffnen und bearbeiten können

real_benedikt

Mitglied
Hallöchen,

ich hoffe ihr könnt mir helfen. Ich suche etwas ganz simples, weiss aber nicht wie man es nennt. Und zwarversuche ich ein PHP Tutorial zu finden, mit dem man z.b. ein HTML Datei oder eine PHP Datei, die auf dem server (oder in einem Unterverzeichniss) liegt, öffnen und sie bearbeiten können. Ich habe eines in Flash gefunden was aber viel zu groß und zu ausführlich war, und es war in Flash. :confused: Dann hatte ich etwas gefunden, dieses jedoch hat mir in eine HTML Datei tausende dieser Zeichen : "/////" hineingeschrieben.

( Das war dieses Ding hier:

PHP:
<?php
if ($anpassen)
{
    $file = "../template.html";
	$datei = fopen($file,"w");
    fwrite($datei, $template_neu);
    fclose($datei);
    $meldung = "Daten erfolgreich geändert!";
}
else $meldung = "Bitte die Eintragungen vornehmen und das Formular absenden!";
?>

</head>

<body>
<center>
<?php
echo "
<form action=\"template.php\" method=\"post\">
<p align=\"center\">
<font size=\"2\">
<strong>
Template anpassen
</strong>
</font>
</p>
<table width=\"400\" align=\"center\">
<tr>
<td>
<textarea rows=\"10\" cols=\"40\" name=\"template_neu\">";
$file = "./../template.html";
$datei = fopen($file,"r");
$template = fpassthru($datei);
echo "</textarea>
</td>
</tr>
<tr>
<td>
<input name=\"anpassen\" type=\"submit\" value=\"&Auml;nderung vornehmen\">
</td>
</tr>
</table>
</form>
";
echo $meldung;
?>
</center>
</body>
</html>
)

:confused::confused:

Hilfe !!
 
Zuletzt bearbeitet:
Hi vill hilft dir das weiter !!

PHP:
<?php 

//überprüfen ob du zum ersten mal das seite aufrufst, nur dann die source file 
//definieren. 
//außerdem bindest du an die definition 
//noch einen befehl der den Programablauf unnötig verändern kann wenn er beieits 
// einmal ausgeführt wurde 
if(!isset($file)){ 
        $file = "Datei.txt"; 
        //Name der datei in die Geschrieben wurde
       // gucken ob die datei da ist, sonst machts kein sinn den inhalt zu holen, 
        if(file_exists($file)){ 
                $file_read=file_get_contents($file) or die ('Datei: '.$file.' nicht gefunden.<br />\n'); 
        } 
} 

if($_POST['send']) { 
                //selbes spiel, vor dem schreiben gucken ob die datei da ist 
                //davor noch den file cache löschen, damit der server auch wirklich prüft 
                //ob die datei da ist, und dir keinen wert aus dem cahe gibt 
                clearstatcache(); 
                if(file_exists($file)){ 
                $file_save = fopen("$file","w"); 
            fwrite($file_save, $_POST['post_save']); 
         fclose($file_save); 
                //die geänderten Daten holen um sie richtig anzeigen zu können. 
                $file_read = file_get_contents($file); 
        } 
                else{ 
                        //damit kein datenverlust da ist 
                        $file_read=$_POST['post_save']; 
                   echo "Konnte nicht in Datei: ".$file." schreiben.<br />\n"; 
                } 
} 
?> 

<form action="name.php" method="post"> 
<input type="hidden" name="send" value="send" /> 
<textarea style="width: 400px; height: 300px;" name="post_save" /><?php echo $file_read;?></textarea> 
<input type="submit" value="editieren" /> 
</form>
 
Danke für die Antwort,

nein es funktioniert leider nicht auch hier kommt irgendwie immer nur "///" raus in der datei, diese wird dann nicht mehr interpretierbar für browser. Weisst du noch ne andere Möglichkeit?
 
Zuletzt bearbeitet:
Kann es sein das du irgendwo im Script deine POSTs per stripslashes() machst?

Wenn ja lass dies mal weg es wird aber ein Problem gegen das er es sofort ausführt um das zu verhindern solltest du bei textarea das noch rein machen:

Code:
<textarea name="inhalt" wrap="off"></textarea>

PHP:
	if(isset($_POST['send'])) {
		if($_POST['templatename'] != '') {
			$db->query("INSERT INTO template SET templatename='".addslashes(htmlspecialchars($_POST['templatename']))."', inhalt='".$_POST['inhalt']."'");
			$datei_name = $g_ordner.$_POST['templatename'].$endung;
			if (!file_exists($datei_name)) {
				$filename = $datei_name;
				$somecontent = $_POST['inhalt'];
				$handle = @fopen($filename, "w+");
				@fwrite($handle, $somecontent);
				@fclose($handle);
				@chmod($filename, 0777);
			} else {
				$filename = $datei_name;
				$somecontent = $_POST['inhalt'];
				@chmod($filename, 0777);
				$file_rechte = @fileperms($filename);
				$handle = @fopen($filename, "w+");
				@fwrite($handle, $somecontent);
				@fclose($handle);
			}
		} else {
			$error = "Sie haben nicht alle ben&ouml;tigten Felder ausgef&uuml;llt.";
		}
	
	}
 
Hi,

sry nein ich hab keine stripslashes drin aber ich komm jetzt grad ned ganz mit deinem php ausschnitt mit, wie ich den welche datei reintun soll?:confused::confused:
 
Zurück