В основном я хочу, чтобы пользователи заходили на сайт, вводили свое сообщение и имя, и результаты должны отображаться на одной странице, а когда другой пользователь приходит снова, результаты от предыдущего пользователя должны быть там и все, что приходит следует просто добавить в список.
в настоящее время у меня есть:
<form id="form1" name="form1" method="post" action=""> <label>Please type in a message <input type="text" name="msg" id="msg" /> </label> <label>and your name <input type="text" name="pin" id="name" /> </label> <p> <label>Submit <input type="submit" name="submit" id="submit" value="Submit" /> </label> </p> </form> <?php $msg = $_POST[msg]; $name = $_POST[name]; ?> <br /> <?php echo "$msg"?> <?php echo "$name"?>
но когда другая запись вводится, предыдущая потеряна …
заранее спасибо
Это должно делать то, что вы хотите. Он загружает предыдущие сообщения из posts.txt
, добавляет текущий, отображает сообщения и сохраняет их. Вам нужно убедиться, что posts.txt
существует и имеет правильные разрешения.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <body> <form id="form1" name="form1" method="post" action=""> <label>Please type in a message <input type="text" name="msg" id="msg" /> </label> <label>and your name <input type="text" name="name" id="name" /> </label> <p> <label>Submit <input type="submit" name="submit" id="submit" value="Submit" /> </label> </p> </form> <?php $msg = $_POST["msg"]; $name = $_POST["name"]; $posts = file_get_contents("posts.txt"); $posts = "$msg - $name\n" . $posts; file_put_contents("posts.txt", $posts); echo $posts; ?> </body> </html>
Вот где нужна база данных. Просто создайте простую базу данных sql или создайте файл, который добавляется каждый раз, когда пользователь отправляет свое сообщение. Поэтому всякий раз, когда ваша страница загружается, она должна сначала загрузить предыдущие сохраненные данные, а затем продолжить.
Вам необходимо сохранить или сохранить данные предыдущих сеансов. Один из вариантов – использовать плоский файл, в котором вы сохраняете записи в текстовом файле. Это может быть хорошо для очень небольшого веб-сайта, получающего очень мало трафика. По сути, когда кто-то отправляет что-то, вы добавляете его только в содержимое локального файла.
Другой вариант – посмотреть в базу данных, такую как MySQL. С помощью этого метода вы вставляете каждую комбинацию сообщений / имен в локальную базу данных, а затем вытаскиваете все записи (или nth самые последние) и отображаете их ниже вашей формы комментария.
Вы показываете только последнее сообщение, которое вы сделали. Который фактически никогда не позволит другим пользователям видеть то, что вы опубликовали. Чтобы сохранить это в течение определенного периода времени, вам необходимо использовать файлы или базы данных.
Вам нужно будет посмотреть на сохранение этих сообщений в системе базы данных. MySQL – хороший вариант, но это намного больше, чем несколько простых линий для настройки. Вы можете начать с чтения руководства . Это должно предоставить вам все, что вам нужно.
Я не уверен, что буду следовать за тобой. Вы хотите, чтобы текстовое поле имело предыдущее значение типа?
<input type="text" value="<?php (isset($_POST[msg])) ? $_POST[msg] : "" ?>" name="msg" id="msg" />
Пара вещей:
$first = $_POST['msg']; $second = $_POST['pin'];
Вам нужны эти одинарные кавычки вокруг аргумента post, чтобы сохранить его в переменной.
Во-вторых, чтобы хранить данные, вы должны хранить их где-нибудь, будь то текстовый файл или база данных MySQL. Почтовые данные существуют только при отправке формы. После этого он разрушен.
Вероятно, самое простое для вас – добавить в текстовый файл (если это простое приложение).
Это должно заставить вас начать.