Помогите новичку с PHP

Discussion in 'PHP' started by insulin, 1 Dec 2010.

  1. insulin

    insulin New Member

    Joined:
    27 Nov 2010
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Недавно начал изучать PHP.
    Возникла проблема при создании формы ввода текста.

    Задача простая:

    Страница сайта
    Заголовок
    Потом идёт два окна

    1) Имя пользователя
    2) Текст который он напишет

    Две кнопки: Сохранить и Очистить

    Пользователь заходит на страницу, вводит текст, нажимает сохранить и текст отображается НЕ на новой странице, а на той же самой только ниже. Как это реализовать?

    У меня получилось только сделать, чтобы текст сохранялся в отдельном текстовом файле на сервере. А вот, чтобы он просто отображался ниже формы не получается.
     
  2. LStr1ke

    LStr1ke Elder - Старейшина

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    Вариант №1:
    Пользователь заходит на страницу, где эта форма.
    На странице ниже формы скрипт извлекает текст из файла (правильней конечно будет использовть базу данных).
    Пользователь вводит информацию, форма идет на исполняемый скрипт (например add.php) который добавляет текст в файл (бд) и возвращает пользователя обратно.
    (Можно использовать редирект через header(), JS, meta).
    Возвратившись обратно страница опять загрузит форму и соответственно текст из файла (бд)

    Вариант №2:
    Использовать AJAX
    Пользователь заполняет форму нажимает, отправить, в это время JS отправляет форму на исполняем скрипт, тот сохраняет в файл (бд) и возвращает введенный текст (ну или что там нужно) и добавляет в страницу ниже формы.
     
  3. h00lyshit!

    h00lyshit! [From Nobody To Root]

    Joined:
    10 Sep 2009
    Messages:
    289
    Likes Received:
    290
    Reputations:
    195
    PHP:
    <h2>Заголовок сайта</h2>
    <form action = '<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>' method = 'post'>
    <font color = 'blue' size = '4px'>Имя пользователя</font><br><input type = 'text' name = 'username'><br>
    <font color = 'blue' size = '4px'>Текст</font><br><textarea cols = '50' rows = '30' name = 'text'></textarea><br>
    <input type = 'submit' value = 'Сохранить'>
    <input type = 'reset' value = 'Очистить'><br>
    </form>
    <?php
    if(isset($_POST['username']) && isset($_POST['text']))
    {
    $username htmlspecialchars($_POST['username']);
    $text htmlspecialchars($_POST['text']);
    echo 
    '<pre>'.$text.'</pre>'
    }
    ?>
     
    #3 h00lyshit!, 1 Dec 2010
    Last edited: 6 Feb 2011
  4. insulin

    insulin New Member

    Joined:
    27 Nov 2010
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Redwood Спасибо работает) Вот только надо, чтобы текст ещё в файл на сервере сохронялся и после ввода на сайте оставался
     
  5. insulin

    insulin New Member

    Joined:
    27 Nov 2010
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    <?php
    $message=$_POST['messagebody'];
    $filename = 'message';
    $handle = fopen($filename, 'a+');
    fwrite($handle, $message);
    fwrite($handle, "<br>-------------<br>");

    fseek($handle, 0);
    while (!feof ($handle)) {
    $content = fgets($handle, 4096);
    print $content;
    }
    fclose($handle);
    ?>
    <?
    include("anekd1.php");
    include("message.txt");
    ?>


    Работает. Только при обновлении страницы копирует текст много раз. Как это исправить?

    И как поместить выводимый текст вниз формы?
     
  6. SHiNiGaMi

    SHiNiGaMi Banned

    Joined:
    3 Jan 2010
    Messages:
    382
    Likes Received:
    55
    Reputations:
    15
    сделать редирект:
    echo '<div style="color:green">uploaded successfully</div><script type=text/javascript>document.location.href="basename(__FILE__)"</script>';
    просто echo $message; после формы
     
  7. mrxh8

    mrxh8 New Member

    Joined:
    16 Apr 2009
    Messages:
    69
    Likes Received:
    4
    Reputations:
    0
    ТС, да ну ты что?! тебе же дали код - изменить/добавить пару строк осталось... вообще думать впадлу что ли?

    после формы проверяешь, нажата ли кнопка сабмит, если да - пишешь в файл, сразу же читаешь и выводишь...
    вот тебе хороший линк:
    http://phpclub.ru/