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 :: дважды записывает в базу...

 PHP.SU

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


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

> Описание: аномалия или что это?)
MBmusic
Отправлено: 20 Марта, 2012 - 16:57:09
Post Id


Посетитель


Покинул форум
Сообщений всего: 481
Дата рег-ции: Окт. 2011  


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




при нажатии сабмит записывает содержимое два раза......(((

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

ну типо так

PHP:
скопировать код в буфер обмена
  1. if ($_GET['id'])
  2. {
  3. // здесь мы переходим на шаблон комментов что бы прокоментировать эту запись по соответствующему id (собственно где и возникает эта проблема)
  4. include './modules/forum/router_comments.php';
  5. }
  6. else
  7. {
  8. // тут вывод этих самых записей из базы
  9. ...
  10. }


вот както так, когда выбрана запись, пользователя перебрасывает гет параметр на комментарии, и там моя проблема с двойной записью......

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

тупо не выкупаю как такое может быть!!!

(Отредактировано автором: 20 Марта, 2012 - 17:00:15)

 
 Top
DelphinPRO
Отправлено: 20 Марта, 2012 - 17:09:46
Post Id



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


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


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




MBmusic пишет:
что бы сразу не задавали разных вопросов

для этого нужно проблемный участок кода показывать. то что вы показали к записи в БД ну никак не относится.

PS Причиной "аонамальности" чаще всего бывает невнимательность программиста.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
MBmusic
Отправлено: 20 Марта, 2012 - 17:33:04
Post Id


Посетитель


Покинул форум
Сообщений всего: 481
Дата рег-ции: Окт. 2011  


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




ок, тогда вот участок обработки и самой формы, хотя повторюсь что все работает нормально!

вот обработка данных:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. $com_name = $_POST['com_name'];
  4. $com_post = nl2br($_POST['com_post']);
  5.                
  6.                
  7. $post_id = $_GET['id'];
  8.                                 $immage_location = "./skins/images/avatar/default_avatar_128.gif";
  9.                                
  10. $date_com = date("d.m.y");
  11. $date_time_com = date("G:i");
  12.  
  13. if (isset($_POST['com_submit']))
  14.    {
  15.        if ($com_name&&$com_post)
  16.           {                                                        
  17.                 $queryreg_add = mysql_query("INSERT INTO op (name) VALUES ('$com_name')") or die(mysql_error());
  18.                 header ('Location: ?id='.$_GET['id'].'&page=forum#form');                                
  19.            }   
  20.        else
  21.            {
  22.                  echo "<div style='color:red; padding-left:10px;'>Не всі поля заповнені, або заповнені не вірно!</div>";
  23.             }    
  24.    }
  25. ?>



а вот сама форма:
CODE (html):
скопировать код в буфер обмена
  1. <a name="form"></a>
  2. <form action="" name="post" method="post">
  3. <table style="padding-left:10px; padding-top:10px; font:normal 14px/18px 'Trebuchet MS', Arial, Helvetica, sans-serif;">
  4. <tr>
  5. <td>Ваше Ім'я:</td>
  6. </tr>
  7.  <tr>
  8. <td class="name_com_inp"><input type="text" name="com_name"></td>
  9. </tr>
  10. <tr>
  11. <td>Коментар:</td>
  12. </tr>
  13. <tr>
  14. <td class="text_com_inp"><textarea size="35" type="text" rows="5" cols="32" name="com_post"></textarea></td>
  15. </tr>
  16. <tr height="60">
  17. <td><input class="button_com" type="submit" value="Опубліковати" name="com_submit"></td>
  18. </tr>
  19. </table>
  20. </form>

(Добавление)
кстате вот нашел тему в инете с похожей проблемой:
http://www.php[dot]ru/forum/viewtopic.php?t=34545

но чето толком и ничего не понял прочитав ее...
 
 Top
Dezmont
Отправлено: 20 Марта, 2012 - 18:50:40
Post Id



Частый гость


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


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




Может дело в триггерах? Если с обработчиком всё окей...
Либо вы просто форму 2 раза отправляете. Делаете headerom редирект с обработчика.

(Отредактировано автором: 20 Марта, 2012 - 18:51:59)

 
 Top
MBmusic
Отправлено: 20 Марта, 2012 - 18:53:18
Post Id


Посетитель


Покинул форум
Сообщений всего: 481
Дата рег-ции: Окт. 2011  


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




че за триггер?)) если вы о переключателе свитч, то там тоже все норм......вот код индексового файла:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. ///////////////////////////////////////////////////////////////////////////////
  4. ///   Главная страница сайта к которому подключены все основные модули сайта   ///
  5. ///////////////////////////////////////////////////////////////////////////////
  6.  
  7. //подключаем конфигурационный файл
  8.    include './config.php';
  9.  
  10. //подключаем конфигурационный файл
  11.    include './variables.php';    
  12.  
  13.    ob_start();
  14.  
  15. //подключаем навигационную панель
  16.    include './skins/tpl/page/navigation/navigation.tpl';
  17.  
  18.    $content = ob_get_contents();  
  19.    ob_end_clean();    
  20.    
  21.    // переключатель между страницами
  22.    switch($GET['page'])
  23.       {
  24.           // главная страница (страница приветствия)
  25.       case 'home':
  26.          include './modules/home/router.php';
  27.           break;
  28.          
  29.           // страница форума
  30.           case 'forum':
  31.          include './modules/forum/router.php';  
  32.           break;
  33.          
  34.           // страница скачек
  35.           case 'down':
  36.          include './modules/download/router.php';  
  37.           break;
  38.          
  39.           // обратно страница с приветствием
  40.           default:
  41.          include './modules/home/router.php';
  42.           break;
  43.           }      
  44.          
  45.  
  46.    ob_start();
  47.          
  48. // подключаем контроллер
  49.    include './modules/forum/router_controller.php';
  50.  
  51.    $forum = ob_get_contents();  
  52.    ob_end_clean();  
  53.  
  54.    
  55.  
  56.  
  57.    
  58. ?>

(Отредактировано автором: 20 Марта, 2012 - 18:54:13)

 
 Top
Dezmont
Отправлено: 20 Марта, 2012 - 19:50:42
Post Id



Частый гость


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


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




MBmusic, ну значит не триггеры.
Что вот это делает?
CODE (htmlphp):
скопировать код в буфер обмена
  1. if ($com_name&&$com_post)


Следующее никак не фильтруется, воспользовались хотя бы mysql_real_escape_string().

Потому что если написать в форме $_POST['com_name'] - Test'),('Test2, то в базу запишет 2 раза. Можно написать так, что 10 раз запишет.

Включайте вывод всех ошибок, стирайте @ если есть....
 
 Top
MBmusic
Отправлено: 20 Марта, 2012 - 20:44:15
Post Id


Посетитель


Покинул форум
Сообщений всего: 481
Дата рег-ции: Окт. 2011  


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




ну это ничего не меняет......все равно безрезультатно...
ппц, вроде бы все ок, тупо не понимаю как оно может не работать...??!!!

(Отредактировано автором: 20 Марта, 2012 - 20:44:34)

 
 Top
Panoptik
Отправлено: 20 Марта, 2012 - 20:50:37
Post Id



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


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


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




возможно у вас 2 раза инклудится файл с обработчиком который добавляет данные в БД

читайте про дебаг - и вперед. ибо по вашим обрывкам кода ничего нельзя сказать. нужно просматривать всю структуру и последовательность кода


-----
Just do it
 
 Top
MBmusic
Отправлено: 20 Марта, 2012 - 21:15:29
Post Id


Посетитель


Покинул форум
Сообщений всего: 481
Дата рег-ции: Окт. 2011  


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




вот весь код файла в последствии чего инклудится тот проблемный файл с комментариями:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3.     // подключаем файл настроек
  4.     include 'config.php';
  5.    
  6.         if ($_GET['id'])
  7.            {
  8.               include './modules/forum/router_comments.php';             
  9.            }
  10.         else
  11.            {
  12.        
  13.     $res = mysql_query("SELECT * FROM forum ORDER BY id DESC");
  14.        
  15.         if(mysql_num_rows($res) == 0)
  16.            {
  17.            }
  18.         else
  19.            {
  20.               while($row = mysql_fetch_array($res))
  21.                      {
  22.                          ?>  
  23.                          <form action="" name="post" method="post">
  24.                             <a href="<?PHP echo '?id='.$row['id'].'&page=forum'; ?>"><div class="post">
  25.                                       <div class="zagolovok_osn" align="justify"><?PHP echo $row['post_name']; ?></div>
  26.                                    <div class="div_niz_posts">
  27.                                       <div class="bottom_time_com">
  28.                                              <div class="bottom_com_com_time"><?PHP echo $row['date'].' в '.$row['date_time']; ?></div>
  29.                                                  <div class="bottom_com_com" align="right">Комментарів: 0</div>
  30.                                           </div>
  31.                    </div>                                  
  32.                                 </div>
  33.                                 </a>
  34.              </form>                     
  35.                          <?PHP
  36.                          }
  37.            }
  38.            }
  39.          
  40.  
  41.  
  42. ?>
 
 Top
MBmusic
Отправлено: 21 Марта, 2012 - 15:10:18
Post Id


Посетитель


Покинул форум
Сообщений всего: 481
Дата рег-ции: Окт. 2011  


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




хотя с инклудом на обработчик все норм......я для проверки обработчик записывал прямо в инддексный файл все равно два раза в базу записывает((
 
 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