За последние 24 часа нас посетили 15898 программистов и 1635 роботов. Сейчас ищут 1016 программистов ...

Интересный вопрос - скрипт гостевой книги

Тема в разделе "PHP для новичков", создана пользователем marta, 8 янв 2009.

  1. marta

    marta Активный пользователь

    С нами с:
    9 июл 2008
    Сообщения:
    10
    Симпатии:
    0
    Ребята! Вопрос, вам, как специалистам! Есть наипростейший скрипт гостевой книги - данные пишутся в файл text.dat , вопрос: а можно ли записывать непосредственно в сам index.php? Т.е. что бы форма ввода располагалась в index.php и чтобы текст сообщений записывался туда же (этакий скрипт гостевой книги из одного файла)? Заранее спасибо!
     
  2. heapKiller

    heapKiller Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    95
    Симпатии:
    0
    ИМХО можно. Но.... ЗАЧЕМ???!!!!
     
  3. marta

    marta Активный пользователь

    С нами с:
    9 июл 2008
    Сообщения:
    10
    Симпатии:
    0
    Препод задачку задал (извиняюсь за тавтологию)
     
  4. ShamahN

    ShamahN Активный пользователь

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    marta
    значит ответь ему, что можно :)
     
  5. marta

    marta Активный пользователь

    С нами с:
    9 июл 2008
    Сообщения:
    10
    Симпатии:
    0
    хе-хе-хе боюсь, что попросит обосновать, а мне хотя бы в общих чертах знать...
     
  6. ATI

    ATI Активный пользователь

    С нами с:
    3 янв 2008
    Сообщения:
    254
    Симпатии:
    0
    Адрес:
    Москва
    Препод извращенец)) этой как в одной позе секасом))
     
  7. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    marta
    А чего обосновывать? Говорите, что указатель в файле переносится в конец файла и данные дописываются в файл =) Но как уже сказали - это извращение. Данные должны храниться ОТДЕЛЬНО
     
  8. Успокойся, начальник IT департамента.

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

    http://ru.wikipedia.org/wiki/Самомодифицирующийся_код

    Обьяснять не буду, по этим словам в гугле - море информации

    А вам всем советую учится и учится.
     
  9. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Я во втором сайте на php применил этот метод. Конечно, он был там совсем не к месту (отключал модули), но избавлял от лишнего запроса к БД :)
     
  10. этот метод у меня все студенты сдают.
     
  11. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Ты препод?
     
  12. Я хуже. Я проверяю претендентов устраивающихся на работу.
    Ну, и немного учу балбесов программированию на дому. ;)
     
  13. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    проверь меня? может подойду?
    =)
     
  14. 440Hz, вас нельзя, карма не позволяет. :) блестит слишком ярко ;) отполированная
     
  15. marta

    marta Активный пользователь

    С нами с:
    9 июл 2008
    Сообщения:
    10
    Симпатии:
    0
    Ребята! а по теме подскажете? :oops:
     
  16. PHP:
    1. <html>
    2.     <body>
    3.         <form action="" method="post">
    4.             <label for="name">Имя:</label><br/>
    5.             <input type="text" name="name" id="name" style="width:400px"/><br/>
    6.             <label for="data">Сообщение:</label><br/>
    7.             <textarea name="data" id="data" style="width:400px"></textarea><br/>
    8.             <input type="submit" value="послать"/><br/>
    9.         </form>
    10. <?php
    11.     $data = file_get_contents(__FILE__);
    12.     list($code, $recs) = explode('<'.'!---->', $data);
    13.     $recs = explode("\n",$recs);
    14.    
    15.     if ($_SERVER['REQUEST_METHOD']=='POST') {
    16.         $name = htmlspecialchars($_POST['name']);
    17.         $data = htmlspecialchars(nl2br($_POST['data']));
    18.         $row = $name.'>'.$data;
    19.         $recs[] = $row;
    20.         file_put_contents(__FILE__, $code."\n<".'!---->'.implode("\n", $recs));
    21.     }
    22.    
    23.     echo 'Оставленные сообщения:<br/>';
    24.     foreach ($recs as $rec) {
    25.         $record = explode('>',$rec);
    26.         echo '<p>';
    27.         echo '<b>'.@$record[0].'</b> написал:<br/>';
    28.         echo @$record[1];
    29.         echo '</p><hr/>';
    30.     }
    31. ?>
    32.     </body>
    33. </html>
    34. <?php exit; ?>
    35. <!---->
    Дарю.

    Большинству тоже будет полезно поковырятся.
     
  17. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    - ты знаешь, что такое боль!
    - я был женат!
    - о-о-о-о-о-о!
    - дважды!
    - О-О-О-О-О-о!

    Горячие головы (с)
     
  18. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    дык мы ее наждачкой, наждачкой...
     
  19. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    я всех при приеме на работу прошу написать скрипт, выводящий исходный код самого себя, БЕЗ использования внешних данных.

    99% тупят.

    гыгыгы

    1 предложил вместо задачки попить пива. с тех пор до сих пор с ним работаю.
     
  20. 440Hz, я не претендую на идельность. Я знаю, что можно написать что бы скрипт fseek-ом ехал до нужного места, построчно читал и выводил, а новые мессаги писал в конец, но это же не мне надо.
     
  21. это про боцмана был анекдот: «—а мне не надо чтоб стоял... мне надо чтоб блестел!» © ;)
     
  22. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Где-то полгода назад кто-то писал про это. Решение в пару строчек, если не ошибаюсь.
     
  23. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    - доктор! у меня не стоит!
    - зато как ВИСИТ!!!

    =)
     
  24. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    дело не в паре строк, а в широте мышления и не стандартных подходах.
     
  25. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    ^) Не только в PHP такую задачу ставят :)