PHP: Как я могу принять ввод от пользователя, сохранить его и отобразить обратно? - PullRequest
0 голосов
/ 16 января 2011

Я пытался создать некоторый PHP-код, который позволил бы мне принять ввод от пользователя с помощью текстового поля. Я хочу потом хранить этот вход (вероятно, как 7 символов в длину), а затем отобразить его на странице в формате списка (например, 1 2 3 )

Я занимаюсь этим часами, читая учебники и что нет, но все Я нахожу только показывает мне функцию fwrite, и когда я пытаюсь добавить, я все еще в конечном итоге удаление данных.

Я бы хотел, чтобы новейшие входные данные отображались вверху списка, если это возможно.

Может ли кто-нибудь мне помочь? Я действительно расстроен, и я почти не знаю php. с этим и не могу понять это = /

Я думал о сохранении ввода от пользователей в массиве, а затем отобразить массив .. Но это тоже не работает для меня.

Ответы [ 5 ]

2 голосов
/ 16 января 2011

Итак, вы хотите иметь форму, позволить пользователям вводить текст, а затем отображать весь текст, введенный всеми пользователями, вроде стены или гостевой книги.

Я предполагаю, что вам удалосьчтобы получить входные данные пользователя, посмотрев $_POST после отправки формы.Чтобы сохранить его в файле без перезаписи существующего содержимого файла, самый простой способ - file_put_contents со специальным флагом FILE_APPEND.

Допустим, в вашей HTML-форме есть текстовое поле с name="newData".Затем в целевом скрипте отправки формы:

//store all user input in a file called data.txt in the current directory
$filename = "./data.txt" ;
$newData = $_POST['newData'] . "\n" ;
file_put_contents($filename, $newData, FILE_APPEND);

//now fetch all data and display it
$lines = file($filename) ; 

echo '<ul>' ;

foreach ($lines as $line) {
    echo "<li>$line</li>" ;
}

echo '</ul>' ;

Начните так, чтобы увидеть основы в действии, а затем вы можете посмотреть:

  • фильтрация ввода пользователя, чтобы вы моглине храните и не отображайте никаких неприятных вещей
  • , хранящих файл данных вне корневого веб-каталога, чтобы он не был доступен через браузер
  • с предварительным добавлением списка вывода
1 голос
/ 07 февраля 2013

попробуйте это для получения ввода от пользователя в php

$ variablname = fgets (STDIN);echo $ variable;

1 голос
/ 16 января 2011

Если они отправляют данные через форму, они будут отправлены на сервер; Это означает, что вы можете использовать:

<form action="target.php" method="post">
     <input type="text" name="username" value="" />
     <input type="submit" name="submit value="Submit" />
</form>

для разметки, а затем для PHP (на target.php):

<?php 
    if (isset($_POST['submit']) { //to check if the form was submitted
        $username= $_POST['username'];
    } 
?>

На этом этапе вы можете использовать <?php echo $username ?> в любом месте, где хотите отобразить данные, введенные с предыдущей страницы.

Я тоже не эксперт по PHP (я рекомендую обучающие видео на Lynda.com, "PHP & MySQL Essential Training" и "PHP & MySQL Beyond the Basics" с Кевином Скоглундом), но, возможно, это поможет.

0 голосов
/ 16 января 2011

Как уже было сказано выше, вы можете использовать $_POST для получения данных, однако стоит отметить, что если вы действительно используете это в веб-приложении, вам нужно выполнить санитарную обработку для XSS .Вы можете сделать это довольно просто с PHP htmlspecialchars()

0 голосов
/ 16 января 2011
file_put_contents('/path/to/file','contents',FILE_APPEND);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...