Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: передача переменных при get параметре
 
 автор: *m*   (06.11.2011 в 21:54)   письмо автору
 
 

Всем привет.

Подскажите разумно ли отправлять данные методом POST через сокеты, при появлении get параметра?

Как еще можно это сделать?

  Ответить  
 
 автор: cheops   (06.11.2011 в 21:57)   письмо автору
 
   для: *m*   (06.11.2011 в 21:54)
 

Довольно часто данные передаются одновременно и GET и POST методами... а что смущает?

  Ответить  
 
 автор: *m*   (06.11.2011 в 22:11)   письмо автору
 
   для: cheops   (06.11.2011 в 21:57)
 

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


<?
if(isset($_GET[page])){
    
$hostname"www.domen.ru";
$path"/test.php?page=$_GET[page]";
$line="";
$fp=fsockopen($hostname80$errno$errstr30);
if(!
$fp) echo "$errstr($errno)<br>/>\n";
else
{
//данные HTTP-запроса
$data "a=$_POST[a]&b=$_POST[b]";

$headers="POST $path HTTP/1.1\r\n";
$headers.= "Host: $hostname\r\n";
$headers.= "Content-type: application/x-www-form-urlencoded\r\n";
$headers.="Content-Length: ".strlen($data)."\r\n\r\n";

fwrite($fp$headers.$data);
while(!
feof($fp))
{
$line.=fgets($fp1024);
}
fclose($fp);
}
echo 
"<pre>";
echo 
$line ;
echo 
"</pre>";
    
}

?>

  Ответить  
 
 автор: *m*   (07.11.2011 в 00:24)   письмо автору
 
   для: *m*   (06.11.2011 в 22:11)
 

подскажите, если так правильно, то почему у меня все виснет, если я передаю GET[page]??

  Ответить  
 
 автор: cheops   (07.11.2011 в 00:40)   письмо автору
 
   для: *m*   (07.11.2011 в 00:24)
 

Данные отправляете с сервера или с локальной машины (Windows или Linux)?

  Ответить  
 
 автор: *m*   (07.11.2011 в 01:06)   письмо автору
 
   для: cheops   (07.11.2011 в 00:40)
 

с локальной, windows

  Ответить  
 
 автор: *m*   (07.11.2011 в 01:29)   письмо автору
 
   для: *m*   (07.11.2011 в 01:06)
 

попробовал на сервере, вот что вернуло:

php_network_getaddresses: getaddrinfo failed: hostname nor servname provided, or not known(0)
/>

  Ответить  
 
 автор: *m*   (07.11.2011 в 12:41)   письмо автору
 
   для: *m*   (07.11.2011 в 01:29)
 

подскажите что не так то, в поисковиках что-то нет информации по этому..

  Ответить  
 
 автор: cheops   (07.11.2011 в 12:49)   письмо автору
 
   для: *m*   (07.11.2011 в 01:29)
 

Хм... странно, попробуйте без www обратиться, если не поможет - трясите службу тех.поддержки, вообще должно работать.

  Ответить  
 
 автор: cheops   (07.11.2011 в 12:50)   письмо автору
 
   для: *m*   (07.11.2011 в 01:06)
 

>с локальной, windows
А если HTTP 1.1 на HTTP 1.0 заменить ситуация не меняется?

  Ответить  
 
 автор: *m*   (07.11.2011 в 13:25)   письмо автору
 
   для: cheops   (07.11.2011 в 12:50)
 

на локальной попробовал HTTP 1.0, тоже самое, превышен интервал времени 30 сек.
у меня денвер стоит, может он глючит?

на сервере без www, как бы в цикле вывело:

HTTP/1.1 200 OK
Server: nginx
Date: Mon, 07 Nov 2011 09:16:45 GMT
Content-Type: text/html; charset=windows-1251
Transfer-Encoding: chunked
Connection: keep-alive
Keep-Alive: timeout=5

1860

HTTP/1.1 200 OK
Server: nginx
Date: Mon, 07 Nov 2011 09:16:46 GMT
Content-Type: text/html; charset=windows-1251
Transfer-Encoding: chunked
Connection: keep-alive
Keep-Alive: timeout=5

1418


итд, и в конце 302 found и в location указан cgi error

  Ответить  
 
 автор: cheops   (07.11.2011 в 13:48)   письмо автору
 
   для: *m*   (07.11.2011 в 13:25)
 

Т.е. перебрасывают вас на страницу ошибок? А что это вообще за страница, к чему обращаетесь? В браузере она работает стабильно?

  Ответить  
 
 автор: *m*   (07.11.2011 в 16:23)   письмо автору
 
   для: cheops   (07.11.2011 в 13:48)
 

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

не знаю как, но на локальном заработало, то есть виснуть перестало, теперь отдает 404 ошибку, но опять не понятно почему..
у меня в папке home, есть папка gettest, в ней www, в ней файл index.php

файл index.php


print "<a href='index.php?page=1'>GET[page] = 1</a>";

if(isset($_GET[page])){

print $POST['name'];

  $hostname = "localhost";
  $path = "/gettest/index.php?page=1";
  $line = "";
  // Устанавливаем соединение, имя которого
  // передано в параметре $hostname
  $fp = fsockopen($hostname, 80, $errno, $errstr, 30); 
  // Проверяем успешность установки соединения
  if (!$fp) echo "$errstr ($errno)<br />\n"; 
  else
  { 
    // Данные HTTP-запроса
    $data = 
      "name=".urlencode("Игорь")."&pass=".urlencode("пароль")."\r\n\r\n";
    // Заголовок HTTP-запроса
    $headers = "POST $path HTTP/1.1\r\n"; 
    $headers .= "Host: $hostname\r\n"; 
    $headers .= "Content-type: application/x-www-form-urlencoded\r\n";
    $headers .= "Content-Length: ".strlen($data)."\r\n\r\n";
    // Отправляем HTTP-запрос серверу
    fwrite($fp, $headers.$data); 
    // Получаем ответ
    while (!feof($fp))
    { 
      $line .= fgets($fp, 1024); 
    } 
    fclose($fp); 
  } 
  echo "<pre>";
  echo $line;
  echo "</pre>";
}


результат работы скрипта:

HTTP/1.1 404 Not Found
Date: Mon, 07 Nov 2011 12:40:34 GMT
Server: Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8d PHP/5.2.4
X-Powered-By: PHP/5.2.4
Content-Length: 1986
Content-Type: text/html; charset=windows-1251


host и path вроде верно указаны, нет?

  Ответить  
 
 автор: *m*   (07.11.2011 в 19:08)   письмо автору
 
   для: *m*   (07.11.2011 в 16:23)
 

народ все дело в путях, нужно правильно указать, хост и путь, подскажите кто сталкивался с этим..

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования