Also es ist so:
Ich habe ein Toll, bei deim man online Inhalte verändern kann.
Es erscheint ein Textfeld, indem eine Datei eingecludet wird.
Diese wird includet, wenn file=datei.php oben im URL Feld steht.
wenn z.B. file=home.php steht, kommt der Inhalt der Datei ins Textfeld.
Wenn man auf Speichern klickt, wird dies zu einer Datei weitergeleitet, die alle Abstände, die mit der Entertaste gemacht werden mit
ersetzt. Der TExt wird natürlich auch geschrieben. Diese Datei wird dann eben geändert.
Der Haken:
Wenn ich die Datei erneut aufrufe, um den Inhalt zu bearbeiten, dann erscheinen alle
Codes. ZUsätzlich sind dann noch die Abstände von vorher.
Das heisst, dass wenn ich etwas zum 2. mal speichere, kommt ein
mehr hinzu. Bei jedem mal immer eins mehr.
Also müsste ich bevor ich es zum 2. mal geändert habe, alle
Codes entfernen, dass nur einer geschrieben wird. In der Datei, die die Inhalte schreibt, habe ich schon nl2br verwendet.
Diese macht aus allen \n ein
, wie du vielleicht schon weisst.
Anstatt alle
zu entfernen, bevor ich sie zum 2. oder x. mal speichere, dachte ich, man könnte es so machen, dass alle
Codes nicht eingeschrieben werden, wenn ich eine Datei bearbeite.
Momentan sieht mein Code, beim Aufrufen so aus:
[php]<?php
if(!isset($_GET['file']))
{
$_GET['file'] = print "Wähle eine Datei aus.";
}
switch($_GET['file'])
{
case $file : include($pfad.$file); break;
}
?>[/php]$file wurde hier bestimmt:
[php]
include"config.php";
if(!isset($file))
{
echo’ Wähle aus, welche Datei du bearbeiten möchtest.
';
if ($handle = opendir($pfad))
{
while (false !== ($file = readdir($handle))) {
if ($file != „.“ && $file != „…“) {
echo „-<a href=admin.php?site=content_bearbeiten&file=$file>$file
\n“;
}
}
closedir($handle);
}
}[/php]Dieser Code erstellt eine Liste, von Dateien die in einem bestimmten Ordner ist.
Wenn man auf eine Datei klickt, dann ruft man im URL Feld die Datei auf mit file=ausgewaehltedatei.php
Der Pfad wurde in config.php geschrieben, die eingecludet ist in der Datei.
in der Config siehts so aus:
[php]
$pfad = „…/pfad/der/inhalte/“;[/php]Und nun möchte ich wissen, wie ich meinen momentanen Code so ändern kann, dass alle
nicht angezeigt werden.
Dieser hier:
[php]
<?php
if(!isset($_GET['file']))
{
$_GET['file'] = print "Wähle eine Datei aus.";
}
switch($_GET['file'])
{
case $file : include($pfad.$file); break;
}
?>[/php]MfG, matibaski
Ich hoffe jetzt weisst du, wieso ich alle
ausblenden möchte.
MfG, matibaski
PS:
Hier ist der Code, der den Inhalt schreibt. Dort ist auch nl2br drin.
[php]
<?php
include"config.php";
$filename = $pfad.$_REQUEST['dataid']; // Dateiname wird bestimmt
$somecontent = nl2br($_REQUEST['text']); // Inhalt wird übernommen
//Prüfen ob sich in das Verzeichnis schreiben lässt
if(!is_writable($pfad))
{
die (" Kann nicht ins verzeichnis $pfad schreiben! Bitte prüfen, ob der CHMOD der Ordner (../deineinhalte/) den CHMOD von 777 hat.");
}
if(!$handle = fopen($filename,"w+"))
{
die (" Kann Datei {$filename} nicht bearbeiten! Bitte prüfen, ob der CHMOD der Dateien auf 777 gestellt ist.");
}
else
{
fwrite($handle, $somecontent);
fclose($handle);
echo "Datei $filename wurde erfolgreich bearbeitet
ZurückVorschau:$somecontent";
}
?> [/php]
Ich denke du kommst nun draus…
Habe gedacht, ich lasse mal den oberen Teil für flapo, damit er sieht wieso ich
ersetzten will.
Ich habs so gemacht:
[php]
$include = $pfad.$_GET[‚file‘];
if(!isset($_GET[‚file‘]))
{
print"Wähle eine Datei aus!";
}
$filename = $include;
$handle = fopen($filename, „r“); //r steht für read/lesen
$text = fread($handle, filesize($filename));
$text = str_replace(„
“, „“, $text);
$text = str_replace(„
“, „“, $text);
$text = str_replace(„
“, „“, $text); //oder was auch immer…
echo $text; [/php]