PHP Files bearbeiten und überschreiben.

Dieses Thema PHP Files bearbeiten und überschreiben. im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von Ciryx, 18. Juli 2006.

Thema: PHP Files bearbeiten und überschreiben. Morgen... ;D Auf meiner Seite, habe ich ein Login eingerichtet. Wenn ich mich nun einlogge, sollte ich die...

  1. Morgen... ;D

    Auf meiner Seite, habe ich ein Login eingerichtet. Wenn ich mich nun einlogge, sollte ich die Möglichkeit haben, meine Seiten (alle .php) zu bearbeiten und anschliessend per Button wieder zu speichern. Momentan funktioniert lediglich das Anzeigen in eine <textarea>. Leider gibt es auch da Probleme. In der <textarea> werden viel zu viele <br> & <span> angezeigt. Ich möchte jedoch, dass nur der Inhalt der PHP Datei angezeigt wird. (inkl. PHP Code)

    Mein aktuelles Script (nur Anzeige in <textarea>)

    show_file.php
    Code:
    <?php
    	echo <form action=\?id=master.php\ method=\post\>;
    	echo File: ;
    	echo <input type=\text\ name=\file\>;
    	echo <input type=\submit\ name=\show_file\ value=\show file\>;
    	echo </form>;
    		
    		
    	if (isset($_POST['show_file']))
    	{
    		echo <br><br>;	
    		echo $_POST[file];
    		echo <textarea cols=\150\ rows=\15\>;
    		show_source($_POST[file]);
    		echo </textarea>;
    	}
    ?>
    
    Kann mir jemand weiterhelfen, so dass das PHP File in der <textarea> 1:1 angezeigt wird?

    Danke...
     
  2. Probiers ma so:

    Code:
    <?php
    $html = implode ('', file ($_POST[file]));
    echo <textarea style='width:800px; height:500px'>;
    echo htmlspecialchars($html);
    echo </textarea>;
    ?>
     
  3. was heisst da probieren? ;)

    es funktioniert perfekt! Hast du mir auch noch einen Lösungsvorschlag, wie ich nun einen eventuelle Änderung abspeichern soll?

    Danke...
     
  4. Code:
    <?php
    $_POST[file] =->untitled1.php';
    
    if($_POST[save_update]) {
    	if(!file_exists($_POST[file])) die(Quelldatei existiert nicht!);
    	copy($_POST[file],->backup_'.time().'_'.$_POST[file]);
    	$fh = fopen($_POST[file], w);
    	fwrite($fh, stripslashes($_POST[file_content]));
    	fclose($fh);
    }
    ?>
    <form action=<?php echo $PHP_SELF; ?> method=post>
    <?php
    $html = implode ('', file ($_POST[file]));
    echo <textarea name='file_content' style='width:800px; height:500px'>;
    echo htmlspecialchars($html);
    echo </textarea>;
    ?>
    <br />
    <input type=submit name=save_update value=Speichern />
    </form>
    
    Hab mal den Dateinamen fest reingeschrieben, is einfacher beim testen ::)
     
  5. Ok Danke!

    Es sieht nun so aus... Jedoch meldet er, dass die Quelldatei nicht existiert

    Code:
    <?php
    if($_POST[save_update]) 
    		{
    			if(!file_exists($_POST[file])) die(Quelldatei existiert nicht!);
    			copy($_POST[file],->backup_'.time().'_'.$_POST[file]);
    			$fh = fopen($_POST[file], w);
    			fwrite($fh, stripslashes($_POST[file_content]));
    			fclose($fh);
    		}		
    		
    		else
    		{	
    			echo <form action=\?id=master.php\ method=\post\>;
    			echo File: ;
    			echo <input type=\text\ name=\file\>;
    			echo <input type=\submit\ name=\show_file\ value=\show file\>;
    			echo </form>;		
    			
    			if (isset($_POST['show_file']))
    			{
    				echo <form action=\?id=master.php\ method=\post\>;
    				echo <br><br>;	
    				echo $_POST[file];
    				echo <br>;
    				$html = implode ('', file ($_POST[file]));
    				echo <textarea style='width:780px; height:220px' name='file_content'>;
    				echo htmlspecialchars($html);
    				echo </textarea>;
    				echo <br />;
    				echo <input type=\submit\ name=\save_update\ value=\Speichern\ />;
    				echo </form>;
    			}
    		}
    ?>
    
     
  6. Funktioniert bei mir einwandfrei ;)

    Code:
    <?php
    if($_POST[save_update]) {
    	if(!file_exists($_POST[file])) die(Quelldatei existiert nicht!);
    	$dir = dirname($_POST[file]) ? dirname($_POST[file])./ : ;
    	$file = basename($_POST[file]);
    	copy($_POST[file], $dir.'backup_'.time().'_'.$file);
    	$fh = fopen($_POST[file], w);
    	if(fwrite($fh, stripslashes($_POST[file_content]))) {
    		echo Änderung wurde gespeichert!;
    	}
    	else {
    		echo Beim speichern der Änderung ist ein Fehler aufgetreten!;
    	}
    	fclose($fh);
    }
    else {
    	echo <form action=\?id=master.php\ method=\post\>;
    	echo File: ;
    	echo <input type=\text\ name=\file\>;
    	echo <input type=\submit\ name=\show_file\ value=\show file\>;
    	echo </form>;
    
    	if (isset($_POST['show_file'])) {
    		echo <form action=\?id=master.php\ method=\post\>;
    		echo <br><br>;
    		echo $_POST[file];
    		echo <br>;
    		$html = implode ('', file ($_POST[file]));
    		echo <textarea style='width:780px; height:220px' name='file_content'>;
    		echo htmlspecialchars($html);
    		echo </textarea>;
    		echo <br />;
    		echo <input type=\hidden\ name=\file\ value=\.$_POST[file].\ />;
    		echo <input type=\submit\ name=\save_update\ value=\Speichern\ />;
    		echo </form>;
    	}
    }
    ?>
    
    - naja, du musst den Dateinamen schon mit einem hidden-Feld weitergeben, sonst -verliert- er ja den Namen in deinem Formular ;)
    => echo <input type=\hidden\ name=\file\ value=\.$_POST[file].\ />;

    Ich hab noch etwas reingebaut damit die Backup-Datei im richtigen Verzeichnis landet ;)
     
  7. Hammer! Funktioniert alles einwandfrei! Besten Dank für deine Mühe!
     
Die Seite wird geladen...

PHP Files bearbeiten und überschreiben. - Ähnliche Themen

Forum Datum
durch FreeFileSync Daten weg Software: Empfehlungen, Gesuche & Problemlösungen 26. Sep. 2015
kann weder mit adobe 9.5 noch mit evince .pdf files lesen Software: Empfehlungen, Gesuche & Problemlösungen 25. Jan. 2012
Umwandlung von c:\program files (x86) zu c:\programme Software: Empfehlungen, Gesuche & Problemlösungen 26. Okt. 2011
Wie wird aus Programme plötzlich Program Files??? Windows 7 Forum 12. Juni 2011
Programme und Program Files?? Windows 7 Forum 11. Mai 2010