Подтвердить что ты не робот

Простой PHP-редактор текстовых файлов

Я разработал сайт для клиента, и он хочет иметь возможность редактировать небольшую часть главной страницы в виде базового типа. Поэтому, как решение, я хочу добавить очень простой редактор (domain.com/backend/editor.php), который, когда вы его посещаете, будет иметь текстовое поле с кодом и кнопкой сохранения. Код, который он будет редактировать, будет установлен в TXT файл.

Я бы предположил, что такая вещь будет легко закодировать на PHP, но google не помог мне на этот раз, поэтому я надеюсь, что может быть кто-то здесь, который укажет на меня в правильном направлении. Обратите внимание, что у меня нет опыта программирования PHP, только HTML и базового javascript, поэтому, пожалуйста, будьте внимательны в любом ответе, который вы предоставляете.

4b9b3361

Ответ 1

Вы создаете HTML-форму для редактирования содержимого текстового файла. В случае его отправки вы обновляете текстовый файл (и снова перенаправляете на форму, чтобы предотвратить предупреждения F5/Обновить):

<?php

// configuration
$url = 'http://example.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>

Ответ 2

Чтобы прочитать файл:

<?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

Что вы тогда сделали Google? php write file дает мне несколько миллионов хитов.

Как в manual для 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!
?>

Но, честно говоря, сначала вы должны забрать книгу PHP и начать пытаться. Вы не указали ни одного требования, кроме того, что вы хотите разместить текстовое поле (textarea, я имею в виду?), В TXT файл. Это будет делать:

<?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
}

Обратите внимание, что это точно соответствует вашему описанию. Он не читает файл при печати формы (поэтому каждый раз, когда вы хотите отредактировать текст, вам нужно начинать с нуля), он не проверяет вход для чего-либо (вы хотите, чтобы пользователь мог отправлять HTML-сообщения?), он не имеет проверки безопасности (каждый может получить к нему доступ и изменить файл), и никоим образом не читает файл для отображения на требуемой странице.

Ответ 4

В основном вы ищете аналогичную концепцию как для контактной формы, так и для нее.

Примените те же принципы из учебника, как этот и вместо отправки по электронной почте с помощью mail проверьте функции файла из PHP.net.

Ответ 5

Первое, что нужно сделать, это захватить информацию, самым простым способом сделать это будет использование HTML-формы с TEXTAREA:

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

В "save.php" (или где угодно) вы можете легко увидеть информацию, отправленную из формы:

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

Чтобы создать файл, взгляните на команды fopen/fwrite в PHP, еще один упрощенный пример:

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

ПРЕДУПРЕЖДЕНИЕ: Это очень простой ответ! Вы, возможно, захотите защитить свою форму и свой файл или сделать что-то другое... Все вышеизложенное будет делать ТОЧНО, что было отправлено в форме в файл. Если вы хотите указать разные имена файлов, переписать, добавить, проверить плохой контент/спам и т.д., Тогда вам нужно будет сделать больше работы.

Если у вас есть общедоступный редактор и публикует контент на веб-странице, тогда защита от спама - это требование DEFINITE или вы будете сожалеть об этом!

Если вам не интересно изучать PHP, вам следует подумать о том, чтобы профессиональный разработчик заботился о любой работе по кодированию для вас!

Ответ 6

У меня была аналогичная потребность, поэтому мы создали клиентское решение, называемое stringmanager.com, которое мы используем во всех наших проектах и ​​местах, где CMS не эффективна.

С вашей стороны вам просто нужно пометить строку в коде, то есть от:

echo "Текст, который он хочет редактировать"; в:

echo _t ( "S_Texthewantstoedit" );

stringmanager.com заботится обо всем остальном. Ваш клиент может управлять этой конкретной текстовой областью в нашем онлайн-приложении и синхронизировать, где бы он ни пожелал. Почти забыл упомянуть, он совершенно свободен.

Ответ 7

<?php
$file = "127.0.0.1/test.html";
$test = file_get_contents('1.jpg', 'a');
if (isset($_POST['test'])) {
file_put_contents($file, $_POST["test"]);
};
?>
<form action="" method="post">
<textarea id="test" name="test" style="width:100%; height:50%;"><? echo "$test"; ?></textarea>
<input type="submit" value="submit">
</form>

Не успел закончить, простейший, добавит больше, если захочет.