php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 17.06.2009, 08:28  
Erfahrener Benutzer
 
Registriert seit: 30.03.2009
Beiträge: 113
PHP-Kenntnisse:
Anfänger
Lukas befindet sich auf einem aufstrebenden Ast
Lukas eine Nachricht über ICQ schicken
Standard [Erledigt] Diverse HTML-Seiten in textarea bearbeiten

Ich bekomme es einfach nicht hin.
Es gibt ein Formular in der admin_choosetoedit.php, Man kann per Radiobutton die Seite auswählen.
Im nächsten Schritt, admin_editpage.php, wird diese dann in einem textfeld bearbeitet. Ich habe es zuerst mit TinyMCE u.ä. versucht, ging aber nicht.

Mein Code:
admin_choosetoedit.php:
PHP-Code:
<?php include("./../config.php");?>
.
.
.
<form name="whichpage" method="post" action="admin_editpage.php" enctype="multipart/form-data">
<fieldset>
<legend>Bitte w&auml;hlen Sie die zu bearbeitende Seite:</legend>

    <div class="control">
        <?php
$verzeichnis 
"./../content"// Pfad zum Verzeichnis 
$handle openDir($verzeichnis); // Verzeichnis öffnen 
$j 0
while (
$datei readDir($handle)) { // Verzeichnis auslesen 
 
if ($datei != "." && $datei != ".." && !is_dir($datei)) { // Verzeichnisse filtern 
   
$verzeichnis_datei[$j] =  ucfirst(basename ($datei,".php")); // Pfad zur aktuellen Datei 
   
$j++; 
 } 
}    
asort($verzeichnis_datei); 
reset($verzeichnis_datei); 
foreach(
$verzeichnis_datei as $wert) {    
    
   
$dateiname basename($wert".php"); 
   echo 
"<br/>
        <input type=\"radio\" 
            name=\"filetoedit\" value=\"$wert\" title=\"$wert\" /><label for=\"rb_0\">&nbsp;&nbsp;<a href=\"./../content/"
.strtolower($dateiname).".php\">$wert</a></label>"


closeDir($handle); // Verzeichnis schließen
}
    
?>    
    </div>
    <input type="submit" value="Ausw&auml;hlen" />
</fieldset>
</form>
admin_editpage.php:
PHP-Code:
<?php include("./../config.php");?>
.
.
.
<td valign="top" id="inbox">
<?php
if (isset($_GET['save']))
 {

      
$datei_speichern=fopen($filetoedit"w");
      
fwrite ($datei_speichern$_POST['elm1']);
      
fclose($datei_speichern);
      echo 
"&Auml;nderung erfolgreich!<br />";
      echo 
"Vorschau:<br /><div style='border: 1px solid;'>";
      include(
$filetoedit);
      echo 
"</div>";      
     } 
?> 
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <h2>Seite bearbeiten: <?php echo $_POST['$wert']; ?></h2>
    <!-- Gets replaced with TinyMCE, remember HTML in a textarea should be encoded -->
    <textarea id="elm1" name="elm1" rows="20" cols="220" style="width: 80%">
<?php 
$dateizumoffnen 
$_POST['$wert'];
$userdatei fopen("../content/".$dateizumoffnen.".php","r+");
while(!
feof($userdatei))
   {
   
$zeile fgets($userdatei,1024);
   echo 
htmlentities($zeileENT_QUOTES);
   }
fclose($userdatei);
?>
    </textarea>

    <div>

    <br />
    <input type="submit" name="save" value="Submit" />
    <input type="reset" name="reset" value="Reset" />
</form><?php
 
?></td>
<!-- ende inhalt-->
</tr>
</table>
</td>
config.php:
PHP-Code:
<?php 
$navi 
= array(           //wird ersetzt durch serialized-PHP!
    
"Home"  => array("id"=>"1","titel"=>"Home","url"=>"index.php?site=home","onclick"=>""),  //Navigation
    
"Link1" => array("id"=>"2","titel"=>"Link1","url"=>"index.php?site=link1","onclick"=>""),
    
"Link2" => array("id"=>"3","titel"=>"Link2","url"=>"index.php?site=link2","onclick"=>""),
    
"Link3" => array("id"=>"4","titel"=>"Link3","url"=>"index.php?site=link3","onclick"=>""),
    
"Link4" => array("id"=>"5","titel"=>"Link4","url"=>"index.php?site=link4","onclick"=>"")
);
$site $_GET['site']; 
switch(
$site)  // wähle variable $site aus
{
        case 
'home':                    //falls variable $site home ist, dann
    
$content "./content/home.php";  //ist variable $content gleich ...
    
break;                            //variable content fügt später den inhalt der seite ein
        
case 'link1':
    
$content "./content/link1.php";
    break;
        case 
'link2':
    
$content "./content/link2.php";
    break;
        case 
'link3':
    
$content "./content/link3.php";
    break;
        case 
'link4':
    
$content "./content/link4.php";
    break;
        case 
'mail':
    
$content "./content/mail.php";
    break;
        case 
'kontakt':
    
$content "./content/kontakt.php";
    break;
        case 
'impressum':
    
$content "./content/impressum.php";
    break;
        default:                      
//falls nichts oder etwas anderes angegeben ist, füge ... ein
    
$content "./content/home.php";
    break;
}
?>
Wo ist denn der Fehler?
Lukas ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 17.06.2009, 08:45  
Erfahrener Benutzer
 
Benutzerbild von TAZweb
 
Registriert seit: 14.07.2008
Beiträge: 147
PHP-Kenntnisse:
Fortgeschritten
TAZweb befindet sich auf einem aufstrebenden Ast
TAZweb eine Nachricht über AIM schicken TAZweb eine Nachricht über MSN schicken TAZweb eine Nachricht über Yahoo! schicken TAZweb eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von Lukas
Wo ist denn der Fehler?
...das ist hier die Frage! Was spuckt denn Dein Browser aus? Welche Fehlermeldungen gibt es? etc...

(nutze bitte auf der Seite, wo die o.a. eingebunden werden, ziemlich weit oben die function "error_reporting(E_ALL)")!!!!
__________________

TAZweb ist offline  
Alt 17.06.2009, 12:36  
Benutzer
 
Registriert seit: 16.06.2009
Beiträge: 91
PHP-Kenntnisse:
Fortgeschritten
Raymond befindet sich auf einem aufstrebenden Ast
Standard

Spontan fällt mir erstmal folgende Zeile auf:
PHP-Code:
$dateizumoffnen $_POST['$wert']; 
Da in der admin_editpage.php die Variable "$wert" unbekannt ist, ist deren Inhalt grundsätzlich schonmal NULL, egal was du an diese php überträgst
Du möchtest aber den Wert des Parameters haben, welcher mittels POST an die Datei übergeben wurde.
Nun sieh dir mal dein Formular in der admin_choosetoedit.php genauer an.
Unter welchem Namen übergibst du den Parameter an die admin_editpage.php?
Raymond ist offline  
Alt 17.06.2009, 15:39  
Erfahrener Benutzer
 
Registriert seit: 30.03.2009
Beiträge: 113
PHP-Kenntnisse:
Anfänger
Lukas befindet sich auf einem aufstrebenden Ast
Lukas eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von Raymond Beitrag anzeigen
Unter welchem Namen übergibst du den Parameter an die admin_editpage.php?
hmm ... die $filetoedit ... ich probiers mal aus

Zitat:
Zitat von TAZweb Beitrag anzeigen
...das ist hier die Frage! Was spuckt denn Dein Browser aus? Welche Fehlermeldungen gibt es? etc...
achtung fehlermeldungen:
Code:
Notice: Undefined index: site in /var/www/web142/html/beta/config.php on line 16 - gaaaaanz oben
Notice: Undefined index: $filetoedit in /var/www/web142/html/beta/admin/admin_editpage.php on line 123

und die in der textarea:

<br />
<b>Notice</b>:  Undefined index:  $filetoedit in <b>/var/www/web142/html/beta/admin/admin_editpage.php</b> on line <b>127</b><br />
<br />
<b>Warning</b>:  fopen(../content/.php) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: No such file or directory in <b>/var/www/web142/html/beta/admin/admin_editpage.php</b> on line <b>128</b><br />
<br />
<b>Warning</b>:  feof(): supplied argument is not a valid stream resource in <b>/var/www/web142/html/beta/admin/admin_editpage.php</b> on line <b>129</b><br />
<br />
<b>Warning</b>:  fgets(): supplied argument is not a valid stream resource in <b>/var/www/web142/html/beta/admin/admin_editpage.php</b> on line <b>131</b><br />
<br />
<b>Warning</b>:  feof(): supplied argument is not a valid stream resource in <b>/var/www/web142/html/beta/admin/admin_editpage.php</b> on line <b>129</b><br />
 ... 
... 
... und so weiter, hänt in einer endlosschleife
Zitat:
Zitat von TAZweb Beitrag anzeigen
(nutze bitte auf der Seite, wo die o.a. eingebunden werden, ziemlich weit oben die function "error_reporting(E_ALL)")!!!!
ja ist gemacht
Lukas ist offline  
Alt 17.06.2009, 15:54  
Benutzer
 
Registriert seit: 16.06.2009
Beiträge: 91
PHP-Kenntnisse:
Fortgeschritten
Raymond befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
<b>Notice</b>: Undefined index: $filetoedit
Offenbar hast du den Wink mit dem Zaunpfahl oben nicht mitbekommen, darum hier nochmal ein Sägewerk:

Finde den Unterschied:
PHP-Code:
if (isset($_GET['save'])) 
PHP-Code:
$dateizumoffnen $_POST['$filetoedit']; 
Des Weiteren:
Woher $_GETtet die config.php den Wert für 'site' ?
Der Ausgabe auf dem Bildschirm nach zu urteilen: nirgendwo...
Raymond ist offline  
Alt 18.06.2009, 15:34  
Erfahrener Benutzer
 
Registriert seit: 30.03.2009
Beiträge: 113
PHP-Kenntnisse:
Anfänger
Lukas befindet sich auf einem aufstrebenden Ast
Lukas eine Nachricht über ICQ schicken
Standard

hmm eigentlich sollte nach bearbeitung, bei einem klick auf "Speichern" die Seite sozusagen "neugeladen" werden, nur mit einem "?save" hintendran
Die übertragenen Sachen in POST, also die neue Version der Seite, wird nun gespeichert.
So
Lukas ist offline  
Alt 18.06.2009, 16:12  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

$dateizumoffnen = $_POST['$filetoedit'];
Wolla ist offline  
Alt 18.06.2009, 16:13  
Benutzer
 
Registriert seit: 04.04.2009
Beiträge: 58
PHP-Kenntnisse:
Fortgeschritten
Creeping befindet sich auf einem aufstrebenden Ast
Standard

Mir fällt das hier auf:
PHP-Code:
<?php include("./../config.php");?>
muss das nicht heißen:
PHP-Code:
 <?php include("../../config.php");?>
obs so ist weiß ich leider nicht^^
Creeping ist offline  
Alt 18.06.2009, 16:23  
Benutzer
 
Registriert seit: 16.06.2009
Beiträge: 91
PHP-Kenntnisse:
Fortgeschritten
Raymond befindet sich auf einem aufstrebenden Ast
Standard

Okay.. manchmal sieht man den Wald vor lauter Bäumen nicht...

Ich habe dir die beiden Codeschnipsel zum Vergleich hingestellt, damit du selbst drauf kommst, was schonmal eindeutig falsch ist:
Bei $_POST und $_GET fragst du ein ARRAY ab und im speziellen nach einem Element des Arrays.
In diesem Fall möchtest du das Element 'filetoedit' abfragen.
Dieses 'filetoedit' ist als Variable hier noch nicht vorhanden, sondern nur als Element der globalen Array-Variablen $_POST!
Das ist wichtig, daß du das verstehst, darum nochmal!
Die einzelnen Elemente in $_POST und $_GET sind keine Variablen!

Zur Verdeutlichung:
Im Moment passiert bei dir folgendes:
Das Skript stößt an dieser Stelle auf eine Variable, statt der Angabe eines Elementnamens.
An die Stelle der Variablen wird also nun der dem Skript vorliegende Wert für diese Variable eingesetzt.
Da die Variable aber gerade hier erst initialisiert wurde, kann sie auch noch keinen Inhalt haben - also setzt php an die Stelle einen Leerstring (da an der Stelle ein String erwartet wird) und führt das Skript weiter aus.
Die Abfrage lautet also übersetzt:
PHP-Code:
//   $filetoedit ist hier unbekannt und entspricht demnach ''.
$dateizumoeffnen $_POST[''];
//   $dateizumoeffnen = ''; 
Da es kein Element ohne Namen gibt, ist die Rückgabe logischerweise auch leer.
Raymond ist offline  
Alt 18.06.2009, 23:48  
Erfahrener Benutzer
 
Benutzerbild von TAZweb
 
Registriert seit: 14.07.2008
Beiträge: 147
PHP-Kenntnisse:
Fortgeschritten
TAZweb befindet sich auf einem aufstrebenden Ast
TAZweb eine Nachricht über AIM schicken TAZweb eine Nachricht über MSN schicken TAZweb eine Nachricht über Yahoo! schicken TAZweb eine Nachricht über Skype™ schicken
Standard

lol
__________________

TAZweb ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
gibt es überhaupt seiten mit validem HTML? imported_Ben Beitragsarchiv 104 22.06.2009 18:28
Html Tags in textarea nofear87 JavaScript, Ajax und mehr 6 02.11.2008 00:21
Dateiinhalte in Textarea ausgeben und bearbeiten eintrachtrobin PHP Tipps 2008 6 10.10.2008 19:55
php Seiten als html anzeigen Soese PHP Tipps 2007 3 02.04.2007 18:59
richtiger code in textarea, als html gehts nicht notyyy HTML, Usability und Barrierefreiheit 2 09.12.2006 13:21
Ordner durchsuchen und HTML Seiten als Links ausgeben niffi PHP Tipps 2006 4 23.01.2006 11:20
Suche in existierenden Html Seiten mit php? PHP Tipps 2005-2 2 05.07.2005 20:34
HTML Seiten generieren obi PHP Tipps 2005-2 5 05.06.2005 03:21
[Erledigt] Den Text von Html Seiten einlesen PHP Tipps 2005 5 29.03.2005 15:25
Quellcode von anderen Seiten bearbeiten NetLook PHP Tipps 2005 4 16.03.2005 22:25
[Erledigt] html - Generierung über mehrere Seiten PHP Tipps 2005 1 08.02.2005 17:53
Aus PHP Datei HTML Seiten schliessen? PHP Tipps 2004 1 27.08.2004 12:51
Validitor (HTML 4.01) = Schwachsinn? Filewalker Off-Topic Diskussionen 19 03.08.2004 15:27
html code in eine textarea durch buttondruck PHP Tipps 2004 8 23.06.2004 14:46
[Erledigt] html code in eine textarea durch link HTML, Usability und Barrierefreiheit 1 22.06.2004 20:06

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php datei in textarea öffnen, textarea bearbeiten, datei in textarea öffnen, http://www.php.de/php-einsteiger/56152-erledigt-diverse-html-seiten-textarea-bearbeiten.html, html seite in textarea laden, html textarea bearbeiten, textarea editieren, php fopen textarea, php textarea bearbeiten, textbereich einer html seite online editieren, wie kann man eine html-seite online editieren, textarea textdatei anzeigen, textarea html bearbeiten, html in textarea, html seite in textarea, html code in textarea bearbeiten, textarea nicht bearbeiten, html seite in textarea laden php, html in textarea bearbeiten, html seiten bearbeiten

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:14 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum