Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: POST запрос

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
EnerdzaiseR
Отправлено: 27 Ноября, 2011 - 16:49:52
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




Доброго времени суток. Столкнулся с проблемкой при создании комментариев.

Есть код:

CODE (htmlphp):
скопировать код в буфер обмена
  1. <?
  2. $comment=mysql_query("SELECT
  3. comments.comment,
  4. comments.user_name,
  5. comments.year,
  6. p.id
  7. FROM comments
  8. JOIN peoples p ON p.id = comments.id_people
  9. WHERE p.name_ru LIKE '".$_GET['act']."'
  10. ORDER BY p.id DESC", $db);
  11. while ($tables = mysql_fetch_assoc($comment)) {
  12.         echo $tables['user_name'].'<br/>';
  13.         echo $tables['comment'].'<br/>';
  14.         echo $tables['year'];
  15.         $people_id=$tables['id'];
  16. }
  17. ?>
  18. <form action="" method="POST">
  19. <input type="text" name="login" /><br/>
  20. <input type="text" name="email" id="" /><br/>
  21. <textarea name="comment"></textarea><br/>
  22. <input type="submit" value="Комментировать" />
  23. <?
  24. if(!empty($_POST['login']) && !empty($_POST['email']) && !empty($_POST['email'])){
  25.         mysql_query("INSERT INTO comments (comment, id_film, id_people, user_name, email, year) VALUES ('".$_POST['comment']."', 0, ".$people_id.", '".$_POST['login']."', '".$_POST['email']."', '".date("Y-m-d")."')",$db);
  26. }
  27. ?>
  28. </form>
  29. <br/>


Все работает нормально, но при нажатии на кнопку комментировать то, что только что я добавил не отображается. Добавляю следующую запись, выводится предыдущая. Подскажите пожалуйста как решить проблему.
 
 Top
Bio man
Отправлено: 27 Ноября, 2011 - 17:05:50
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




CODE (htmlphp):
скопировать код в буфер обмена
  1. <?
  2. if(!empty($_POST['login']) && !empty($_POST['email']) && !empty($_POST['email'])){
  3.         mysql_query("INSERT INTO comments (comment, id_film, id_people, user_name, email, year) VALUES ('".$_POST['comment']."', 0, ".$people_id.", '".$_POST['login']."', '".$_POST['email']."', '".date("Y-m-d")."')",$db);
  4. }
  5. $comment=mysql_query("SELECT
  6. comments.comment,
  7. comments.user_name,
  8. comments.year,
  9. p.id
  10. FROM comments
  11. JOIN peoples p ON p.id = comments.id_people
  12. WHERE p.name_ru LIKE '".$_GET['act']."'
  13. ORDER BY p.id DESC", $db);
  14. while ($tables = mysql_fetch_assoc($comment)) {
  15.         echo $tables['user_name'].'<br/>';
  16.         echo $tables['comment'].'<br/>';
  17.         echo $tables['year'];
  18.         $people_id=$tables['id'];
  19. }
  20. ?>
  21. <form action="" method="POST">
  22. <input type="text" name="login" /><br/>
  23. <input type="text" name="email" id="" /><br/>
  24. <textarea name="comment"></textarea><br/>
  25. <input type="submit" value="Комментировать" />
  26. </form>
  27. <br/>

(Отредактировано автором: 27 Ноября, 2011 - 17:06:58)

 
 Top
EnerdzaiseR
Отправлено: 27 Ноября, 2011 - 17:11:35
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




На 3 строке ошибка, так как $people_id задается ниже, на 18 строчке.
 
 Top
Bio man
Отправлено: 27 Ноября, 2011 - 17:20:49
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




а вы выберете его до ошибки. $people_id это последняя запись таблицы, судя по коду.
PHP:
скопировать код в буфер обмена
  1. $sql = "SELECT LAST(`id`) FROM peoples";
  2. $res = mysql_query($sql);
  3. $people_id = mysql_result($res, 0);
 
 Top
EnerdzaiseR
Отправлено: 27 Ноября, 2011 - 17:38:04
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




Сделал вот так:

CODE (htmlphp):
скопировать код в буфер обмена
  1. <?
  2. if(!empty($_POST['login']) && !empty($_POST['email']) && !empty($_POST['comment'])){
  3.        mysql_query("INSERT INTO comments (comment, id_film, id_people, user_name, email, year) VALUES ('".$_POST['comment']."', 0, ".$_POST['id'].", '".$_POST['login']."', '".$_POST['email']."', '".date("Y-m-d")."')",$db);
  4. }
  5. $comment=mysql_query("SELECT
  6. comments.comment,
  7. comments.user_name,
  8. comments.year,
  9. p.id
  10. FROM comments
  11. JOIN peoples p ON p.id = comments.id_people
  12. WHERE p.name_ru LIKE '".$_GET['act']."'
  13. ORDER BY p.id DESC", $db);
  14. while ($tables = mysql_fetch_assoc($comment)) {
  15.        echo $tables['user_name'].'<br/>';
  16.        echo $tables['comment'].'<br/>';
  17.        echo $tables['year'];
  18.        $_POST['id']=$tables['id'];
  19. }
  20. ?>
  21. <form action="" method="POST">
  22. <input type="text" name="login" /><br/>
  23. <input type="text" name="email" id="" /><br/>
  24. <textarea name="comment"></textarea><br/>
  25. <input type="submit" value="Комментировать" />
  26. </form>
  27. <br/>


Обратите внимание на 18 строку.

При добавлении пишет ошибку

Notice: Undefined index: id in O:\home\Dropbox\total\test\pages\actor_comment.php on line 3

Разве так нельзя?


P.S. people_id это id человека которому добавляем комментарий.
 
 Top
Bio man
Отправлено: 27 Ноября, 2011 - 17:45:56
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




ну, ошибка потому, что $_POST['id'] не определена. можно так:
Спойлер (Отобразить)
 
 Top
EnerdzaiseR
Отправлено: 27 Ноября, 2011 - 18:02:01
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




Выдает ошибку

Warning: Cannot modify header information - headers already sent by (output started at O:\home\Dropbox\total\test\options.php:1) in O:\home\Dropbox\total\test\pages\actor_comment.php on line 27

Пробовал еще так:

<script type="text/javascript">
document.location.href = "?url=<?=$_GET['url']?>&act=<?=$_GET['act']?>&page=comment#pag";
</script>

А в файле options.php ничего такого не находится

<?php
error_reporting(E_ALL);
ini_set('session.use_trans_sid', false); #Отключаем транс сид
ini_set('session.use_only_cookies', true); #Для сессий искользуются только куки
ini_set('allow_url_fopen', true); #Разрешить открывать файлы удаленно
ini_set('magic_quotes_gpc', false); #Отключить магические кавычки
ini_set('register_globals', false); #Отключить глобальные переменные
session_set_cookie_params(0, '/', '', false, true); #
?>
 
 Top
Bio man
Отправлено: 27 Ноября, 2011 - 18:08:20
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




код конечно ужасный. делай так:
PHP:
скопировать код в буфер обмена
  1.         <?
  2. if($_SERVER['REQUEST_METHOD'] == 'GET'){
  3.         $comment=mysql_query("SELECT
  4.       comments.comment,
  5.       comments.user_name,
  6.       comments.year,
  7.       p.id
  8.       FROM comments
  9.       JOIN peoples p ON p.id = comments.id_people
  10.       WHERE p.name_ru LIKE '".$_GET['act']."'
  11.       ORDER BY p.id DESC", $db);
  12.         while ($tables = mysql_fetch_assoc($comment)) {
  13.                 echo $tables['user_name'].'<br/>';
  14.                 echo $tables['comment'].'<br/>';
  15.                 echo $tables['year'];
  16.                 $people_id=$tables['id'];
  17.         }
  18.         ?>
  19.         <form action="" method="POST">
  20.         <input type="text" name="login" /><br/>
  21.         <input type="text" name="email" id="" /><br/>
  22.         <textarea name="comment"></textarea><br/>
  23.         <input type="submit" value="Комментировать" />
  24.         <?
  25. }
  26.         if(!empty($_POST['login']) && !empty($_POST['email']) && !empty($_POST['email'])){
  27.                 mysql_query("INSERT INTO comments (comment, id_film, id_people, user_name, email, year) VALUES ('".$_POST['comment']."', 0, ".$people_id.", '".$_POST['login']."', '".$_POST['email']."', '".date("Y-m-d")."')",$db);
  28.         }
  29.         header('Location: '.$_SERVER['PHP_SELF']);
  30.         ?>
  31.         </form>
  32.         <br/>

(Добавление)
не, не то написал. лень думать, но мой вариант с запросом по моему самый простой

(Отредактировано автором: 27 Ноября, 2011 - 18:11:45)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB