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]   

> Без описания
twelveee
Отправлено: 06 Июня, 2015 - 09:04:33
Post Id


Гость


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


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




Здравствуйте, вопрос такой:
Есть ajax отправляющий POST запрос с формы. Ничего необычного.
Вот файл, куда он отправляет:
PHP:
скопировать код в буфер обмена
  1. require_once(ENGINE_DIR."/whois/ajax/AjaxWhois.php");
  2. $whois = new AjaxWhois();
  3. $donect = array();
  4. parse_str($_POST["domain"], $donect);
  5. $domainName = (isset($donect["domain"])) ? $donect["domain"] : '';
  6. // Проверка не более 3-х символов в домене
  7. if (strlen($domainName)>2) {
  8.  
  9.         $whois->processAjaxWhois($donect);
  10. } else {
  11.         echo '<fieldset><legend>Внимание ошибка!</legend><h2 class="red">Вы указали слишком короткий домен. Домен должен составлять не менее 3-х символов</h2></fieldset>';
  12. }


Вот файл AjaxWhois, точнее функция, processAjaxWhois
PHP:
скопировать код в буфер обмена
  1. function processAjaxWhois($donect){
  2.                
  3.         $domainName = (isset($donect['domain'])) ? $donect['domain'] : '';
  4.  
  5.                        
  6. // Удаление url'лов http://www. or www. or http://
  7.                 if(strcmp("http://www.",substr($domainName,0,11))==0)
  8.                 {$domainName=substr($domainName,11,strlen($domainName)-11);}
  9.                 if (strcmp("https://www.",substr($domainName,0,12))==0)
  10.                 {$domainName=substr($domainName,12,strlen($domainName)-12);}
  11.                 if (strcmp("www.",substr($domainName,0,4))==0)
  12.                 {$domainName=substr($domainName,4,strlen($domainName)-4);}
  13.                 if (strcmp("http://",substr($domainName,0,7))==0)
  14.                 {$domainName=substr($domainName,7,strlen($domainName)-7);}
  15.                 if (strcmp("https://",substr($domainName,0,8))==0)
  16.                 {$domainName=substr($domainName,8,strlen($domainName)-8);}
  17.         function delete($str,$symbol='')
  18. {
  19.     return($strpos=mb_strpos($str,$symbol))!==false?mb_substr($str,0,$strpos,'utf8'):$str;
  20. }
  21. $domainName = delete($domainName, '.');
  22.                 // $domainName если есть, то удаляем
  23.                
  24.                 function pregtrim($url) {
  25.                  return preg_replace("/[^x20-xFF]/","",@strval($url));
  26.                 }
  27.  
  28.  
  29.         for ($i = 0; $i < sizeof($this->serverList); $i++) {
  30.                 $actTop = "tld_".$this->serverList[$i]['tld'];
  31.                         $check = str_replace(".", "_", $actTop);
  32.                 $this->serverList[$i]['check'] = isset($donect[$check]) ? true : false;
  33.         }
  34.         if (strlen($domainName)>2 AND !empty($this->serverList)) {
  35.                        
  36.             echo '<table class="tabel">';
  37.                         echo '<div class="namedom2" style="padding-left:5px;padding-right:5px;"><h3>Результаты проверки</h3><span style="display:none;" class="rid"><a href="#">Отметить</a> / <a href="#">Снять отмечаные</a></span></div>';
  38.             echo '<tr><th colspan="2"></th></tr>';
  39.                 $result=array();
  40.                 for ($i = 0; $i < sizeof($this->serverList); $i++) {
  41.                         if ($this->serverList[$i]['check']){
  42. $result[] =                             $this->showDomainResult($domainName.".".$this->serverList[$i]['tld'],
  43.                                                         $this->serverList[$i]['server'],
  44.                                                         $this->serverList[$i]['response']);
  45.                                                                                        
  46.                             }
  47.                     }
  48.                                                                                         if(count($result)==0){
  49.                                                                                                 echo "<b>Ошибка!</b> Вы не выбрали ни одну доменную зону для проверки.";
  50.                                                                                         }
  51.                     echo '</table>';
  52.         }
  53. }


Первый раз, когда я ввожу домен, все нормально. Выводит результат по нужному домену.
Второй раз, уже с выведенным результатом тоже все нормально.
Но 3й раз, какой бы домен я не вводил, показывается результат #2.
Проверил POST запрос
Там 2 раза передается $_POST["domain"];
Причем оба раза, разные.
Первый - тот который мне нужен, а второй домен из результата 2.
Можно как нибудь убрать этот второй домен?

Результаты после 2й проверки как бы стакаются, чего происходить не должно.
 
 Top
Tyoma5891
Отправлено: 06 Июня, 2015 - 09:32:48
Post Id


Частый посетитель


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


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




а где сама форма для отправки и код аякса для отправки?
 
 Top
twelveee
Отправлено: 06 Июня, 2015 - 09:48:27
Post Id


Гость


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


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




ajax:
function DoWhois() {
ShowLoading('');
var domain = $('form').serialize();
$.post(dle_root + "engine/whois/ajax/whois.php", {domain},
function(domain){
$('#dle-whois-results').html(domain);
HideLoading('');
}
);
}

Форма:
CODE (htmlphp):
скопировать код в буфер обмена
  1.         <div id="domain">
  2.             <fieldset>
  3.                 <legend>Зарегистрируй сейчас, пока свободно!</legend>
  4.                 <h2 style="margin-left:10px;"></h2>
  5.                 <div class="l1">   <center>
  6.                     <span style="font-size:12px;">www.</span>
  7.                     <input type="text" style="width:75%;height:30px;padding-left:7px;" name="domain" class="w_input" placeholder="Введите нужный домен" /> <input style="width: 115px; height: 100%;margin-top:-1px; " value="Проверить" onclick="DoWhois(); return false;" class="btn btn-default" type="submit">                    
  8.                     <!---->
  9.                    
  10.                     <p align="left" style="font-size:11px; margin-left:52%;">(например: <em>mycompany</em> или <em>моякомпания</em>)</p>
  11.                                         </center>
  12.                 </div>
  13.             </fieldset>
  14.                         <br>
  15.             <div id="log"><div id="log_res" align="center">{results}</div></div>
  16.         </div>
  17.  
  18. Тут дальше идут зоны (.ru, .kz, .su и т.д)
 
 Top
Tyoma5891
Отправлено: 06 Июня, 2015 - 10:18:44
Post Id


Частый посетитель


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


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




как-то странно у Вас аякс записан
Цитата:
{domain}
это должно быть вообще без скобок, и второй момент
CODE (javascript):
скопировать код в буфер обмена
  1. var domain = $('form').serialize();
я в форме html не увидел не одного упоминания со словом "form" что Вы сериализуете?
 
 Top
twelveee
Отправлено: 06 Июня, 2015 - 10:21:38
Post Id


Гость


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


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




Tyoma5891 пишет:
как-то странно у Вас аякс записан
Цитата:
{domain}
это должно быть вообще без скобок, и второй момент
CODE (javascript):
скопировать код в буфер обмена
  1. var domain = $('form').serialize();
я в форме html не увидел не одного упоминания со словом "form" что Вы сериализуете?

CODE (html):
скопировать код в буфер обмена
  1.         <form id="whoisfrom" action="" method="post" >
  2.         <div id="domain">
  3.             <fieldset>
  4.                 <legend>Зарегистрируй сейчас, пока свободно!</legend>
  5.                 <h2 style="margin-left:10px;"></h2>
  6.                 <div class="l1">   <center>
  7.                     <span style="font-size:12px;">www.</span>
  8.                     <input type="text" style="width:75%;height:30px;padding-left:7px;" name="domain" class="w_input" placeholder="Введите нужный домен" /> <input style="width: 115px; height: 100%;margin-top:-1px; " value="Проверить" onclick="DoWhois(); return false;" class="btn btn-default" type="submit">                    
  9.                     <!---->
  10.                    
  11.                     <p align="left" style="font-size:11px; margin-left:52%;">(например: <em>mycompany</em> или <em>моякомпания</em>)</p>
  12.                                         </center>
  13.                 </div>
  14.             </fieldset>
  15.                         <br>
  16.             <div id="log"><div id="log_res" align="center">{results}</div></div>
  17.         </div>


Мне нужна помощь. Уже очень долго не могу сделать этот скрипт. Возможен такой вариант:
Если пост уже есть, то он unset. Добавляется новый пост
 
 Top
Tyoma5891
Отправлено: 06 Июня, 2015 - 10:31:08
Post Id


Частый посетитель


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


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




покажите скрин консоли где вы увидели два поста?
 
 Top
twelveee
Отправлено: 06 Июня, 2015 - 10:45:35
Post Id


Гость


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


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




websniffer приложение для хрома.
Вот такой результат выдает:
CODE (htmlphp):
скопировать код в буфер обмена
  1. login_name=Twelvee&login_password=asdasdasd&login=submit&do=search&subaction=search&story=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA...&domain=new_domain&domain=322.kz&tld_kz=on&tld_com.kz=on&tld_ru=on&tld_su=on&tld_com=on&tld_net=on&tld_org=on&tld_info=on&tld_biz=on&tld_name=on&domain=322.com.kz&domain=322.su&vote_action=results&vote_id=1&vote_check=0&vote_action=vote&vote_id=1&skin_name=Default&action_skin_change=yes
  2.  
 
 Top
Ts.Saltan
Отправлено: 06 Июня, 2015 - 10:54:25
Post Id



Посетитель


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


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




twelveee пишет:
приложение для хрома.

Зачем? Есть же встроенный инспектор (вроде ctrl+shift+i), вкладка network, покажет передаваемые данные в читабельном виде
 
 Top
twelveee
Отправлено: 06 Июня, 2015 - 11:06:45
Post Id


Гость


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


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




Ts.Saltan пишет:
twelveee пишет:
приложение для хрома.

Зачем? Есть же встроенный инспектор (вроде ctrl+shift+i), вкладка network, покажет передаваемые данные в читабельном виде

Мало что изменилось)
CODE (htmlphp):
скопировать код в буфер обмена
  1. domain:login_name=Twelvee&login_password=123456&login=submit&do=search&subaction=search&story=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA...&domain=new_domain&domain=322.kz&tld_kz=on&tld_com.kz=on&tld_ru=on&tld_su=on&tld_com=on&tld_net=on&tld_org=on&tld_info=on&tld_biz=on&tld_name=on&domain=322.com.kz&domain=322.su&vote_action=results&vote_id=1&vote_check=0&vote_action=vote&vote_id=1&skin_name=Default&action_skin_change=yes
 
 Top
Tyoma5891
Отправлено: 06 Июня, 2015 - 12:15:01
Post Id


Частый посетитель


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


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




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

(Отредактировано автором: 06 Июня, 2015 - 12:16:21)

 
 Top
twelveee
Отправлено: 07 Июня, 2015 - 08:20:44
Post Id


Гость


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


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




Решил проблему при помощи моего лога..
Проблема была в serialize от js
Была просто еще 1 форма, про которую я забыл..
И она сериализовала и эту форму тоже.

Просто поставил селектор другой, по id формы и готово!)
Спасибо за советы
 
 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