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 :: помощь в header

 PHP.SU

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


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

> Описание: вывод комментария на страницу сразу после добавления
broshurkaplus
Отправлено: 11 Февраля, 2011 - 21:07:27
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


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




Подскажите:
есть страница для просмотра картинок с алгоритмом:
1 главное меню, при выборе перходим на страницу 1
2 слева пхп формирует подменю из базы
3 при выборе из подменю ГЕТом пхп формирует подменю для данного пунта меню с ссылками картинок
4 прив ыборе - Гетом загружается картинка (одна на страницу) с параметрами дата ввода рейтинг юзер и тд. выбираем другую ссылку подгружаетсся другая картинка и тд
5 при загруженной картинке есть "комментарии (всего) 3" при нажатии ссылки Гетом на страницу подгружаются комментарии и ссылка "добавить"
6 нажимаем добавить, подгружается внизу всего форма добавления комента, вводим, отправляем, он добавляется в базу.
7 если всё хокей, а оно так и есть пишем
header("location:index.php");

ВОПРОС
1 нормальный ли алгоритм (получается ГЕТ с 3мя параметрами и ПОСТ) или возможно по другому и этогозамного?
2 делаем header те панимаю так: возвращаемся на страницу, но уже без данных формы, А ОНО возвращает мне страницу , но без добавленного комента! а мне нада чтобы он сразу отобразился!
как это сделать?
 
 Top
LEONeso
Отправлено: 11 Февраля, 2011 - 21:23:22
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


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




На самом деле, POST тот же GET.. при передаче запроса, его просто не видно, а так ,можно использовать для вывода или присвоения значений к переменной и т.п. ...вообще любой скрипт можно написать в одном файле с использованием условий if-else, при этом страница всегда будет обновляться ... все пишется в потоке действий скрипта... нажал на кнопку, запрос (обновление страницы), в начале обновление данных, далее вывод данных пользователю... таким образом, не будет такого, что пользователь видит то, что и ранее было, но на самом деле изменения произошли. Нужно, просто, хорошо подумать и посмотреть код ,что он делает... все зависит от действий кода, его по очередности.


-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
broshurkaplus
Отправлено: 11 Февраля, 2011 - 21:28:49
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


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




ход я описал в алгоритме, те отправляем комментарий, и стоит иф элсе - если вставило в бд то header.
те я понимаю что нужно обновить данные коментов из базы после вставки но перед хедер, но как реализовать не очень панимаю
 
 Top
LEONeso
Отправлено: 11 Февраля, 2011 - 21:32:47
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


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




Ну допустим... есть форма ввода "имя", "ник", "дата" и далее вывод контента из этой же базы.

Поочередность написания скрипта:
1. Код записи в бд
2. Код обновление записи (если нужно)
3. Код удаления записи (если нужно)
---- Форма ввода данных в бд
4. Код вывода контента

Каждый код хранится в if-else, условие типа
PHP:
скопировать код в буфер обмена
  1. if(isset($_POST['add']) && $_POST['add']==ok) {} /*else использовать обдуманно*/

(Добавление)
broshurkaplus, обычно header не использую. В формах есть все что надо.
CODE (html):
скопировать код в буфер обмена
  1. <form name="form" method="POST" action="index.php#form">
  2. <button  type="submit" title="Выверка">Чудо кнопка</button>
  3. <input type="submit" title="Выверка" value="Чудо кнопка 2" />
  4. </form>


После нажатия, обновляет страницу и скроллирует на форму.


-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
broshurkaplus
Отправлено: 11 Февраля, 2011 - 21:42:28
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


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




ну типа этого
всё из одной базы , но разных таблиц
1 выводим картинку
2 выводим комментарии
3 добавляем комент и вставляем в бд
4 если вставило то хедер на эту же страницу , те данные в базе коментов изменились, а мы хедер и паказываем теже а надо обновить запрос
приведу кусок када:
PHP:
скопировать код в буфер обмена
  1. if($_GET['coment']=='ok'){
  2.    $q_img_coment = mysql_query("SELECT * FROM fotoprikol_coment WHERE coment_img_id='".$_GET['img']."'");
  3.    //пока есть данные выводим коменты по ид картинки
  4.    while($r_img_coment=mysql_fetch_array($q_img_coment)){
  5.    //присваиваем переменным значения и отдаем их таблице
  6.    $coment_user=$r_img_coment["coment_user"];
  7.    $coment_date=$r_img_coment["coment_date"];
  8.    $coment=$r_img_coment["coment"];
  9.       echo '<table width="582" align=center background="http://www.Broshurkaplus.ru/MoiSait/Image/image_menu_lev.jpg">
  10.              <tr height="20">
  11.              <td width=25% align=center>Пользователь :</td>
  12.              <td width=25% align=center>'.$coment_user.'</td>
  13.              <td width=25% align=center>добавлено :</td>
  14.              <td width=25% align=center>'.$coment_date.'</td>
  15.              </tr>
  16.              </table>
  17.  
  18.              <table width="582" cellpadding="10" cellspacing="1" border="0" bgcolor="#86BD00">
  19.              <tr valign="top" bgcolor="#FFFFFF">
  20.              <td width=30% align=center>пишет :</td>
  21.              <td width=70% align=left>'.$coment.'</td>
  22.              </tr>  
  23.              </table>
  24.              <table width="582" height="5"><tr><td></td></tr></table>';}
  25. echo '<a class="c" href="?up_coment=ok&coment=ok&img='.$_GET['img'].'&tema='.$_GET['tema'].'" alt="добавить комментарий" align="center">добавить комментарий</a><br/>';
  26. if($_GET['up_coment']=='ok')
  27. {    if(!$_POST['up']) {
  28. echo'<form action="" method="POST">
  29. <table width="582" align="center" cellpadding=4 cellspacing=0 border=1>
  30. <tr><td align="center">введите текст</td></tr>
  31. <tr><td align="center"><textarea name="coment" cols="50" rows="10"  type="text" value=""></textarea></td></tr>
  32. <tr align="center"><td colspan=2><img src="img/capcha_coment.php?capcha='.$capcha_str.'" id="capcha"><br/>
  33. <input name="capcha" type="text" value=""><br/>
  34. <button style="border-color:#000; border-style:solid; border-width:1px; background-color:#fff; color:#000; font-size:11px;
  35.         width:90px;" >Обновить</button>
  36. <input name="up" type="submit" value="отправить"></td></tr>
  37. </table>';
  38. }
  39. else{
  40. //проверяем капчу
  41.             if($_POST['capcha'] == $_SESSION["secret_code"])
  42.               {;echo  $_SESSION["secret_code"];
  43.               //здесь вставка в бд
  44.             $q_insert_coment ="INSERT INTO fotoprikol_coment VALUES ('".coment_id."','".$_GET['img']."','".date("d-m-Y H:i:s")."','".$_SESSION['user']."','".$_POST[coment]."')";  
  45.           if(@mysql_query($q_insert_coment )){header("location:index.php");}
  46.               }
  47.               else
  48.               {echo "Извините, но поле проверки заполнено неправильно, попробуйте ещё раз";}
  49.         }
  50.  
  51. }
  52.  


во это пробный код немнога накаментил...
 
 Top
LEONeso
Отправлено: 11 Февраля, 2011 - 21:56:38
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


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




обычно пишу так
PHP:
скопировать код в буфер обмена
  1. while(($r_img_coment=mysql_fetch_array($q_img_coment))!==FALSE){


а так, сложно понять, что он не выводит... header должен быть в самом верху, до вывода любого тега html и собственно условия тоже там можно прописать, без else


-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
broshurkaplus
Отправлено: 11 Февраля, 2011 - 22:10:52
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


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




у меня уже есть коментв на странице внизу добавляем новый вставляем в базу выводим страницу после добавления и тут надо чтобы комент сразу отобразился.
у меня вывод обработка на адной странице
ваобще глянь на сайте (тока не смейся на нём я учуся) адр.стр.9
=фотоприкол/ddd/76 посмотреть комментарии добавить комментарии
ник555 пас 555
(Добавление)
а if или while в принципе нет разницы, мне так проще, хочу наставить праверок
 
 Top
LEONeso
Отправлено: 11 Февраля, 2011 - 22:52:30
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


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




broshurkaplus, в начале попроюуй с
CODE (html):
скопировать код в буфер обмена
  1.       while(($r_img_coment=mysql_fetch_array($q_img_coment))!==FALSE){

в место твоего вайла


-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
broshurkaplus
Отправлено: 11 Февраля, 2011 - 23:15:56
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


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




попробовал - не поменялось
дело в том что до ПОСТА у меня уже картинка,
если if($_GET['coment']=='ok'){
есть запрос за данными в эту же таблицу и мы их в цикле выводим пользователю а внизу картинки, далее внизу
href="?up_coment=ok&coment=ok&img='.$_GET['img'].'&tema='.$_GET['tema'].' чтобы выведенные данные оставались
и если
if($_GET['up_coment']=='ok')
то выводим форму комментария заполняем отправляем и хедер и мы на той же странице комент в базе она обновилась, а моя страница таже , с теми же коментави выведенными в цикле и тк if(!$_POST['up'] а он не ап то формы для комента нету , тока ссылка, а надо чтобы теперь добавился введённый комент на страницу верчу уже поразному нифига не получается , пожоду нужно ятоб запрос и цикл вывода повторился ...выдел на какомто сате тока не могу уже найти его
 
 Top
LEONeso
Отправлено: 11 Февраля, 2011 - 23:54:59
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


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





на


Данные вообще добавляются в БД?
(Добавление)
возможно неверно составлен запрос на добавление записи
это
PHP:
скопировать код в буфер обмена
  1. $q_insert_coment ="INSERT INTO fotoprikol_coment VALUES ('".coment_id."','".$_GET['img']."','".date("d-m-Y H:i:s")."','".$_SESSION['user']."','".$_POST[coment]."')";
  2. if(@mysql_query($q_insert_coment )){header("location:index.php");}

замени на это, при этом укажи имена ячеек таблицы... table1-5
PHP:
скопировать код в буфер обмена
  1. $q_insert_coment = mysql_query ("INSERT INTO fotoprikol_coment (table1,table2,table3,table4,table5) VALUES ('".coment_id."','".$_GET['img']."','".date("d-m-Y H:i:s")."','".$_SESSION['user']."','".$_POST['coment']."')");
  2. if($q_insert_coment==true){header("location:index.php");}


и что такое coment_id?
(Добавление)
в форме еще можно указывать скрытые поля с значениями
CODE (html):
скопировать код в буфер обмена
  1. <input type="hidden" name="act" value="stat">

(Отредактировано автором: 12 Февраля, 2011 - 00:04:05)



-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
broshurkaplus
Отправлено: 12 Февраля, 2011 - 01:41:04
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


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




да не заметил $_POST['coment'] заменил, хотя и так вставляло
coment_id это поле с автоинкремом комента - в таблице пять полей, если из запроса убираю то не вставляет

LEONeso пишет:
возможно неверно составлен запрос на добавление записи

запрос работает данные в бд вставляются я ж их проверяю if(@mysql_query($q_insert_coment ))
и физически проверяю в базе

просто добавленый комент при хедере сразу не виден, а если пройти поссыле и передать
if($_GET['coment']=='ok') то выполнится запрос и в цикле перевыведутся все коменты с новым, а я хочу чтоб он сразу был виден.

повторюсь , коменты до добавления уже выводятся запросом при ГЕТ. а добавляем после...

те надо типа как тут видим предидущие коменты и добавляем отсылаем и видим тока без промежут страницы
(Добавление)
хатя может и промежуточную сделать типа спасиба за камент ?
 
 Top
JustUserR
Отправлено: 12 Февраля, 2011 - 13:32:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




broshurkaplus пишет:
А ОНО возвращает мне страницу , но без добавленного комента! а мне нада чтобы он сразу отобразился!
Предполагаемый вариант решения задачи включает осуществление отправки пользователем комментариев в интерактивном режиме основанном на использовании вложенног траснпортного элемента - таким образом для обеспечения отображения нового элемента комментария на текущей исполняемой HTML-странице возможно использование аналогичных средств получения информационного поля


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB