Простая HTML / PHP форма для вывода на той же странице - PullRequest
5 голосов
/ 28 июня 2011

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

В настоящее время у меня есть:

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

но при вводе другой записи предыдущая теряется ...

спасибо заранее

Ответы [ 7 ]

7 голосов
/ 28 июня 2011

Это должно делать то, что вы хотите. Загружает предыдущие сообщения из 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>
3 голосов
/ 28 июня 2011

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

0 голосов
/ 28 июня 2011

Пара вещей:

$first = $_POST['msg'];
$second = $_POST['pin'];

Вам нужны эти одинарные кавычки вокруг аргумента post, чтобы сохранить его в переменной.

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

Вероятно, вам проще всего добавить текстовый файл (если это простое приложение).

Это должно помочь вам начать работу.

0 голосов
/ 28 июня 2011

Я не уверен, что слежу за тобой.Хотите, чтобы текстовое поле имело предыдущее значение типа?

<input type="text" value="<?php (isset($_POST[msg])) ? $_POST[msg] : "" ?>" name="msg" id="msg" />
0 голосов
/ 28 июня 2011

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

0 голосов
/ 28 июня 2011

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

0 голосов
/ 28 июня 2011

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

Другой вариант - изучить параметр базы данных, например MySQL.С помощью этого метода вы будете вставлять каждую комбинацию сообщения / имени в локальную базу данных, а затем извлекать все записи (или n-е самые последние) и отображать их под формой комментария.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...