it-swarm.com.de

Einfach PHP Editor von Textdateien

Ich habe eine Website für einen Kunden entwickelt, und er möchte einen kleinen Teil der Hauptseite in einer Back-End-Lösung bearbeiten können. Als Lösung möchte ich einen sehr einfachen Editor (domain.com/backend/editor.php) hinzufügen, der bei einem Besuch ein Textfeld mit dem Code und eine Schaltfläche zum Speichern enthält. Der zu bearbeitende Code wird auf eine TXT -Datei gesetzt.

Ich würde davon ausgehen, dass so etwas in PHP leicht zu codieren wäre, aber Google hat mir diesmal nicht geholfen. Ich hoffe, dass hier jemand ist, der mich in die richtige Richtung weist. Bitte beachten Sie, dass ich keine Erfahrung in der PHP - Programmierung habe, nur HTML und einfaches Javascript. Bitte geben Sie Ihre Antworten daher sorgfältig an.

18
Alehandro Darie

Sie erstellen ein HTML-Formular, um den Inhalt der Textdatei zu bearbeiten. Falls es übermittelt wird, aktualisieren Sie die Textdatei (und leiten Sie erneut zum Formular um, um F5/Refresh-Warnungen zu verhindern)

<?php

// configuration
$url = 'http://domain.com/backend/editor.php';
$file = '/path/to/txt/file';

// check if form has been submitted
if (isset($_POST['text']))
{
    // save the text contents
    file_put_contents($file, $_POST['text']);

    // redirect to form again
    header(sprintf('Location: %s', $url));
    printf('<a href="%s">Moved</a>.', htmlspecialchars($url));
    exit();
}

// read the textfile
$text = file_get_contents($file);

?>
<!-- HTML form -->
<form action="" method="post">
<textarea name="text"><?php echo htmlspecialchars($text) ?></textarea>
<input type="submit" />
<input type="reset" />
</form>
37
hakre

So lesen Sie die Datei:

<?php
    $file = "pages/file.txt";
    if(isset($_POST))
    {
        $postedHTML = $_POST['html']; // You want to make this more secure!
        file_put_contents($file, $postedHTML);
    }
?>
<form action="" method="post">
    <?php
    $content = file_get_contents($file);
    echo "<textarea name='html'>" . htmlspecialchars($content) . "</textarea>";
    ?>
    <input type="submit" value="Edit page" />
</form>
3
Niels

Als Erstes müssen Sie die Informationen erfassen. Die einfachste Möglichkeit wäre die Verwendung eines HTML-Formulars mit einer TEXTAREA: 

<form method='post' action='save.php'>
  <textarea name='myTextArea'></textarea>
  <button type='submit'>Go</button>
</form>

Auf 'save.php' (oder wo auch immer) können Sie leicht die Informationen sehen, die vom Formular gesendet werden:

<?php
  echo $_POST['myTextArea']
?>

Um eine Datei tatsächlich zu erstellen, werfen Sie einen Blick auf die fopen/fwrite-Befehle in PHP. Ein anderes einfaches Beispiel:

<?php 
  $handle = fopen("myFile.txt","w");
  fwrite($handle,$_POST['myTextArea'];
  fclose($handle);
?>

WARNUNG: Dies ist eine extrem einfache Antwort! Möglicherweise möchten Sie Ihr Formular und Ihre Datei schützen oder einige andere Dinge tun. Alles, was Sie tun müssen, ist, das, was in dem Formular in eine Datei geschrieben wurde, GENAU zu schreiben. Wenn Sie andere Dateinamen angeben, überschreiben, anhängen, auf fehlerhaften Inhalt/Spam usw. überprüfen möchten, müssen Sie mehr Arbeit erledigen. 

Wenn Sie über einen Editor verfügen, der öffentlich zugänglich ist und Inhalte auf einer Webseite veröffentlicht, ist der Spam-Schutz eine DEFINITE-Anforderung oder Sie werden es bedauern!

Wenn Sie kein Interesse an PHP haben, sollten Sie überlegen, ob ein professioneller Entwickler sich um die Codierarbeit kümmert.

0
Codecraft

Was hast du damals bei Google gemacht? PHP-Datei schreiben gibt mir ein paar Millionen Treffer. 

Wie im manual für fwrite():

<?php
$fp = fopen('data.txt', 'w');
fwrite($fp, '1');
fwrite($fp, '23');
fclose($fp);

// the content of 'data.txt' is now 123 and not 23!
?>

Aber um ehrlich zu sein, sollten Sie zuerst ein PHP - Buch kaufen und es versuchen. Sie haben keine Einzelanforderung gepostet, es sei denn, Sie möchten ein Textfeld (Textbereich, das ich meine?) In eine TXT -Datei schreiben. Das wird es tun:

<?php
if ($_SERVER['REQUEST_METHOD'] == "POST")
{
    $handle = fopen("home.txt", 'w') or die("Can't open file for writing.");
    fwrite($fh, $_POST['textfield']);
    fclose($fh);
    echo "Content saved.";
}
else
{
    // Print the form
    ?>
    <form method="post">
        <textarea name="textfield"></textarea>
        <input type="submit" />
    </form>
    <?php
}

Beachten Sie, dass dies genau Ihrer Beschreibung entspricht. Die Datei wird beim Drucken des Formulars nicht gelesen (also müssen Sie jedes Mal, wenn Sie den Text bearbeiten möchten, von vorne beginnen), die Eingabe wird nicht auf irgendetwas geprüft (soll der Benutzer HTML-Code erstellen können) ?), es gibt keine Sicherheitsprüfung (jeder kann darauf zugreifen und die Datei ändern) und liest die Datei auf keinen Fall zur Anzeige auf der gewünschten Seite.

0
CodeCaster

Ich hatte ein ähnliches Bedürfnis, also haben wir eine kundenfreundliche Lösung namens stringmanager.com entwickelt, die wir für alle unsere Projekte und Bereiche verwenden, an denen CMS nicht effektiv ist.

Von Ihrer Seite müssen Sie nur den String im Code kennzeichnen, d. H. Von: 

echo "Text, den er bearbeiten möchte"; an:

echo _t ("S_Texthewantstoedit"); 

stringmanager.com kümmert sich um den Rest. Ihr Kunde kann diesen bestimmten Textbereich in unserer Online-Anwendung verwalten und synchronisieren, wo immer er möchte. Fast vergessen zu erwähnen, es ist völlig kostenlos. 

0
Brano

Sie suchen grundsätzlich nach einem ähnlichen Konzept wie ein Kontaktformular oder ähnliches.

Wenden Sie dieselben Prinzipien aus einem Tutorial wie this an, und verwenden Sie statt mail keine E-Mails, und überprüfen Sie die Dateifunktionen aus PHP.net.

0
James