Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Общие вопросы по коду

Ответить
Настройки темы

Аватара для benya

Старожил


Сообщения: 302
Благодарности: 5

Профиль | Сайт | Отправить PM | Цитировать


Prisoner,

Врядли это до него дойдет

Отправлено: 21:44, 02-12-2007 | #61


Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


hhh8486,
Надо уметь формулировать вопрос!!!

Хотя я и догадываюсь, что Вам нужно, но я - один из последних телепатов


Читайте построчно файл и где будет ваша 10, та строка вам нужна - не обязательно весь файл в массив загонять (если я правильно вопрос понял)

-------
Fortes fortuna adiuvat


Отправлено: 01:29, 03-12-2007 | #62



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


Сообщения: 30
Благодарности: 2

Профиль | Отправить PM | Цитировать


Есть форма, которая отсылает данные с помощью post метода, когда нажимаешь кнопку submit.

Где нужно читать о том, как реализовать этот же запрос (который возникает после нажатия кнопки submit) на php?

Отправлено: 14:42, 31-03-2009 | #63


Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


http://ru2.php.net/fsockopen
В двух словах: открывается сокет (соединение с сервером) и передаётся соответствующий HTTP-запрос (как строить HTTP-запросы - смотрите, например, в анализаторах трафика типа Wireshark).
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:48, 31-03-2009 | #64


Новый участник


Сообщения: 30
Благодарности: 2

Профиль | Отправить PM | Цитировать


Coutty, спасибо вам за ответ и за советы.

А насчет анализатора - http watch подойдет?

Например, вот что он показывает:






Смотреть надо на обе картинки при составлении запроса?

Отправлено: 22:57, 31-03-2009 | #65


Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


Пойдёт. Во второй картинке что-то не то показывают. Пользуйтесь первой (только, кажется, там могу возникнуть трудности с переносами строк. Где-то \n, где-то \r\n. Уже и не припомню).

Отправлено: 06:30, 01-04-2009 | #66


Новый участник


Сообщения: 30
Благодарности: 2

Профиль | Отправить PM | Цитировать


Coutty, Спасибо.

Отправлено: 07:36, 01-04-2009 | #67


Новый участник


Сообщения: 30
Благодарности: 2

Профиль | Отправить PM | Цитировать


Добрый день.

Я пишу скрипт, который реализует post запрос. Скрипт выполняется и сервер дает положительный ответ (200), но действия, которые должен выполнить скрипт не происходят. Быть может в коде, что ниже просто есть какая-нибудь глупая синтаксическая ошибка?

Вопрос 2: при формировании пакета для отправки имеет значение в каком порядке его формировать? Я имеею ввиду, критично ли добавить вначале "host" a потом "user agent" а не наоборот?

PHP код: Выделить весь код

<?


$host
="server.com";
$path="";
$port=80;
$proxy="";
$hip gethostbyname($host);

function 
sendpacketii($packet)
{    
    
   global 
$host$port$hdata$hip;
   
    
$ock=fsockopen($hip,$port);
   if (!
$ock) {
       die(
"No response from ".$hip.":".$port);
   }
   
fputs($ock,$packet,strlen($packet));
   
$hdata="";
   
//while (!feof($ock)) {
 //  $hdata.=fgets($ock);
//$hdata .= fread($ock, 128);
 //  }
   
$hdata = @fread($ock4096);
   
fclose($ock);
}


   
$data="lj_form_auth=c0%3A1238652000%3A600%3A86400%3Amy4s2rZ1Ys-19193164-10%3Ab223341014f66c41fe5cb17aa7e4fd0e&msg_to=someuser&msg_subject=ddd&msg_body=ddd&mode=send\r\n";

   
$packet ="POST /action.php HTTP/1.1\r\n";
   
$packet.="Host: ".$host."\r\n";
   
$packet.="User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8 FirePHP/0.2.4\r\n";
   
$packet.="Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n";
   
$packet.="Accept-Language: ru,en-us;q=0.7,en;q=0.3\r\n";
   
$packet.="Accept-Encoding: gzip,deflate\r\n";
   
$packet.="Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n";
   
$packet.="Keep-Alive: 300\r\n";
   
$packet.="Connection: keep-alive\r\n";
   
$packet.="Referer: http://somereferer.ru\r\n";
   
$packet.="Cookie: ljuniq=h2OErum5dKGXsCR:1238623007:pgstats0:m1; rsi_segs=B09805_10002; langpref=ru/1238390609; ljmastersession=v1:u19192164:s10:a4BkKd4pyhR//Thanks+for+signing+in+/+LiveJournal+loves+you+a+lot+/+Here+have+a+cookie; ljloggedin=u19193164:s10; BMLschemepref=vertigo; ljsession=v1:u19123164:s10:t1568389200:g74336836cf8efbdb1143402d594d2af9fc745579\r\n";
   
$packet.="Content-Type: application/x-www-form-urlencoded\r\n";
   
$packet.="Content-Length: ".strlen($data)."\r\n";
   
$packet.="\r\n";
   
$packet.=$data;
   
   
   
//$packet.="UA-CPU: x86\r\n";
   //$packet.="Chache-Control: no-chache\r\n";
   
   
   

   
echo $packet;
   echo 
"<br><br>";
   
sendpacketii($packet);
    echo 
$hdata;
   
?>


Отправлено: 19:01, 02-04-2009 | #68


Новый участник


Сообщения: 30
Благодарности: 2

Профиль | Отправить PM | Цитировать


Написал на C#. Его гигантское преимущество в том, что я знаю, как дебажить
код. Т.е. в момент отправки я вижу, что отправляется и, если надо, могу это
править.

В данном случае дебаггером был локальный прокси сервер.

Как дебажить php код в данном случае?

Отправлено: 10:43, 03-04-2009 | #69


Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


Насчёт порядка заголовков - это надо RFC читать. Но user-agent вообще не обязателен. Попробуйте для начала отправить в точности то же самое, что отправляет браузер.
Ещё, кажется, когда я писал подобный скрипт, была трудность в том, что PHP не понимал gzip. Я убрал из строки:
Цитата:
Accept-Encoding: gzip,deflate\r\n
gzip и всё стало работать. Вдруг и вам поможет?
Цитата ldcount:
но действия, которые должен выполнить скрипт не происходят »
Я задам глупый вопрос - а что должно происходить? По-моему сервер должен вернуть страничку в ответ на запрос. Не возвращает? Попробуйте в таком порядке сделать:
PHP код: Выделить весь код

$fp fsockopen ("site.ru",80,$errno,$errstr,30);

if (!
$fp)
{  
  echo 
"$errstr($errno) <br />\n";
} else {
  
fputs($fp$head);
  while(!
feof($fp)){
      
$tempans fgets($fp,1280000);
 }
fclose($fp); 

$head - это все заголовки. Число в fgets взято с потолка.

Как дебажить php? Вставляете в нужные места echo с выводом сообщения об ошибке. Или пусть переменные трассирует в нужных местах.

Отправлено: 14:10, 03-04-2009 | #70



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Общие вопросы по коду

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интернет - ICQ .:[ все вопросы ]:. Evil Программное обеспечение Windows 712 06-09-2012 17:32
Прочее - Сервер общие вопросы амброзий Сетевые технологии 7 15-07-2008 11:33




 
Переход