Поиск скиптов для ЖЖ
Куда лезть и где спрашивать по поводу наличия скриптов для Живого Журнала?
Знаю отличное место:
Остроты.
Каков вопрос - таков ответ. Здесь форум программистов, а не скриптовая барахолка.
Где нужно читать о том, как реализовать этот же запрос (который возникает после нажатия кнопки submit) на php?
Это еще относится у вас к ЖЖ или это следующий вопрос?
Это относится к программированию.
В таком случае уточните что вы тут имеете ввиду?
Цитата: RussianSpy
В таком случае уточните что вы тут имеете ввиду?
Я спрашиваю про написание скрипта. Что конкретно вам не понятно?
php.net.
Лично мне тоже ничего не понятно %) А где читать - на
Цитата:
Где нужно читать о том, как реализовать этот же запрос (который возникает после нажатия кнопки submit) на php?
Или вам надо отослать те же данные скрипту, что и форма? Ну тогда надо почитать про то, как вообще данные передаются к скриптам, про то, как устроен GET и POST запросы. В целом, ничего сложного (особенно с GET, где все передается тупо в строку).
Вы все правильно поняли. Нужно с помощью скрипта передать теже данные, что и форма.
Ну с GET итак все ясно. А для POST лучше всего вот это:
Спасибо вам.
Я пишу скрипт, который реализует post запрос. Скрипт выполняется и сервер дает положительный ответ (200), но действия, которые должен выполнить скрипт не происходят. Быть может в коде, что ниже просто есть какая-нибудь глупая синтаксическая ошибка?
Вопрос 2: при формировании пакета для отправки имеет значение в каком порядке его формировать? Я имеею ввиду, критично ли добавить вначале "host" a потом "user agent" а не наоборот?
Код:
<?
$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($ock, 4096);
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;
?>
$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($ock, 4096);
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;
?>
код. Т.е. в момент отправки я вижу, что отправляется и, если надо, могу это
править.
В данном случае дебаггером был локальный прокси сервер.
Как дебажить php код в данном случае?
Удалите эту строчку:
Код:
$packet.="Host: ".$host."\r\n";
Зачем ее удалять?
Цитата:
Это строчка отвечает за формирование хоста.
Что? Серьезно? Тогда не удаляйте...
Цитата:
Скрипт выполняется и сервер дает положительный ответ (200), но действия, которые должен выполнить скрипт не происходят
Если сервер дает положительный ответ, и Вас он устраивает, то действия, которые должен был выполнить скрипт произошли. Либо Вы не весь код показали.
P.S. gethostbyname тут не нужен.