Datei online editieren

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
Morgooth
Mitglied
Beiträge: 98
Registriert: 26.05.2004 22:28

Datei online editieren

Beitrag von Morgooth »

Hi,
Erstmal Sorry, passt leider net wirklich rein, aber ich such das schon eine geraume Zeit.

ich bräuchte ein Script mit dem man online eine Datei editieren kann. Finde leider nichts und eigene Sachen gingen bisher ein bisschen schief, daher wollte ich fragen ob zufällig wer schon sowas gecodet hat oder selber eines hat?
Wirklich ganz einfach nur zum editieren, nicht sehr aufwändig, also kein Adminbereich, besondere Bildverziehrung etc. Thx bin euch sehr sehr Dankbar!
-= Keine Signatur wegen allgemeiner Sparmaßnahmen =-
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

hmmm du müsstest doch nur eine File auslesen und dies in ein Textarea legen ???
Benutzeravatar
Morgooth
Mitglied
Beiträge: 98
Registriert: 26.05.2004 22:28

Beitrag von Morgooth »

gibt aber Probleme mit den " und ' und \ :)

Naja aber hab was mit einem Freund zusammen gecodet und es scheint zu fuzen:
Lediglich $path_to_file = "way/to/path.php"; ausfüllen und es geht :)

edit: die Datei muss logedit.php heißen oder ihr ändert
<form action=\"logedit.php\" method=\"post\">\n";

Code: Alles auswählen

<?php
    error_reporting(E_ALL);
	
	$path_to_file = "way/to/path.php";
	
	function array_stripslashes(&$var) {
		if(is_string($var)) {
		    $var = stripslashes($var);       
 		} else {            
		    if(is_array($var)) {
				foreach($var AS $key => $value) {
                    array_stripslashes($var[$key]);
		 		} 
			}        
		}    
	}
	function array_addslashes(&$var) {
		if(is_string($var)) {
			$var = addslashes($var);       
 		} else {            
		    if(is_array($var)) {
				foreach($var AS $key => $value) {
					array_addslashes($var[$key]);
		 		} 
			}        
		}    
	}

	function array_htmlspecialchars(&$var) {
		if(is_string($var)) {
			$var = htmlspecialchars($var);       
 		} else {            
		    if(is_array($var)) {
				foreach($var AS $key => $value) {
					array_htmlspecialchars($var[$key]);
		 		} 
			}        
		}    
	}

	

	if(get_magic_quotes_gpc()) {        
		array_stripslashes($_POST);        
	}
	array_addslashes($_POST);
	
	if(isset($_POST['newinhalt']) AND $_POST['newinhalt']!="" AND strlen($_POST['newinhalt'])>10) {
	    $file = fopen($path_to_file, 'w+');
        fwrite($file, stripslashes($_POST['newinhalt']));
		fclose($file);
	}
	
	$file = fopen($path_to_file, 'r');
	$inhalt = "";
	while(!feof($file)) {
	    $inhalt .= fread($file, 500);	
	}
	fclose($file);
	echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//DE\"\n";
	echo "         \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
	echo "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"de\" lang=\"de\">\n";
	echo "    <head>\n";
	echo "        <title>Änderungen protokollieren</title>\n";
	echo "        <meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\" />\n";
	echo "    </head>\n";
	echo "    <body>\n"; 
	echo "        <form action=\"logedit.php\" method=\"post\">\n";
	echo "            <textarea name=\"newinhalt\" rows=\"40\" cols=\"150\">".htmlspecialchars($inhalt)."</textarea><br />\n";
	echo "            <input type=\"submit\" name=\"submit\" value=\"ändern\" />";
	echo "        </form>\n";
	echo "    </body>\n";
	echo "</html>\n";	
?>
-= Keine Signatur wegen allgemeiner Sparmaßnahmen =-
Benutzeravatar
rox²³
Mitglied
Beiträge: 347
Registriert: 24.07.2003 15:18
Wohnort: Schmölln
Kontaktdaten:

Beitrag von rox²³ »

Die Probleme mit dem " ' \ kann man doch mit string_replace() lösen.
Alternativ kann man auch mit HTML Sonderzeichen arbeiten:

& # 34;
& # 39;
& # 92; (ohne Leerzeichen)
etc.
Benutzeravatar
Morgooth
Mitglied
Beiträge: 98
Registriert: 26.05.2004 22:28

Beitrag von Morgooth »

Achja, kleiner Umbau damit man alle Datein online editieren kann:

www.mein-seite.at/logedit.php?file=datei.php

(kann natürlich auch heißen: logedit.php=file=../datei.php )

Code: Alles auswählen

<?php
if (!isset($_GET['file'])) {
	exit();
}
    error_reporting(E_ALL);
	
	$path_to_file = $_GET['file'];
	
	function array_stripslashes(&$var) {
		if(is_string($var)) {
		    $var = stripslashes($var);       
 		} else {            
		    if(is_array($var)) {
				foreach($var AS $key => $value) {
                    array_stripslashes($var[$key]);
		 		} 
			}        
		}    
	}
	function array_addslashes(&$var) {
		if(is_string($var)) {
			$var = addslashes($var);       
 		} else {            
		    if(is_array($var)) {
				foreach($var AS $key => $value) {
					array_addslashes($var[$key]);
		 		} 
			}        
		}    
	}

	function array_htmlspecialchars(&$var) {
		if(is_string($var)) {
			$var = htmlspecialchars($var);       
 		} else {            
		    if(is_array($var)) {
				foreach($var AS $key => $value) {
					array_htmlspecialchars($var[$key]);
		 		} 
			}        
		}    
	}

	

	if(get_magic_quotes_gpc()) {        
		array_stripslashes($_POST);        
	}
	array_addslashes($_POST);
	
	if(isset($_POST['newinhalt']) AND $_POST['newinhalt']!="" AND strlen($_POST['newinhalt'])>10) {
	    $file = fopen($path_to_file, 'w+');
        fwrite($file, stripslashes($_POST['newinhalt']));
		fclose($file);
	}
	
	$file = fopen($path_to_file, 'r');
	$inhalt = "";
	while(!feof($file)) {
	    $inhalt .= fread($file, 500);	
	}
	fclose($file);
	echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//DE\"\n";
	echo "         \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
	echo "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"de\" lang=\"de\">\n";
	echo "    <head>\n";
	echo "        <title>Änderungen protokollieren</title>\n";
	echo "        <meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\" />\n";
	echo "    </head>\n";
	echo "    <body>\n"; 
	echo "        <form action=\"logedit.php?file=" . $path_to_file ."\" method=\"post\">\n";
	echo "            <textarea name=\"newinhalt\" rows=\"40\" cols=\"150\">".htmlspecialchars($inhalt)."</textarea><br />\n";
	echo "            <input type=\"submit\" name=\"submit\" value=\"ändern\" />";
	echo "        </form>\n";
	echo "    </body>\n";
	echo "</html>\n";	
?>
-= Keine Signatur wegen allgemeiner Sparmaßnahmen =-
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

Deine Page ist offensichtlich offline :wink:
Antworten

Zurück zu „Coding & Technik“