PDA

Показать полную графическую версию : Общие вопросы по коду


Страниц : 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

benya
02-12-2007, 21:44
Prisoner,

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

vadimiron
03-12-2007, 01:29
hhh8486,
Надо уметь формулировать вопрос!!!

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


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

ldcount
31-03-2009, 14:42
Есть форма, которая отсылает данные с помощью post метода, когда нажимаешь кнопку submit.

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

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

ldcount
31-03-2009, 22:57
Coutty, спасибо вам за ответ и за советы.

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

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

http://i609.photobucket.com/albums/tt172/handmadeone/Capture.jpg

http://i609.photobucket.com/albums/tt172/handmadeone/Capture2.jpg


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

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

ldcount
01-04-2009, 07:36
Coutty, Спасибо.

ldcount
02-04-2009, 19:01
Добрый день.

Я пишу скрипт, который реализует 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;
?>

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

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

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

Coutty
03-04-2009, 14:10
Насчёт порядка заголовков - это надо RFC читать. Но user-agent вообще не обязателен. Попробуйте для начала отправить в точности то же самое, что отправляет браузер.
Ещё, кажется, когда я писал подобный скрипт, была трудность в том, что PHP не понимал gzip. Я убрал из строки:
Accept-Encoding: gzip,deflate\r\n
gzip и всё стало работать. Вдруг и вам поможет?но действия, которые должен выполнить скрипт не происходят »
Я задам глупый вопрос - а что должно происходить? По-моему сервер должен вернуть страничку в ответ на запрос. Не возвращает? Попробуйте в таком порядке сделать:
$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 с выводом сообщения об ошибке. Или пусть переменные трассирует в нужных местах.

ldcount
03-04-2009, 14:58
Спасибо за ответ. Я так и делал (я про echo), когда писал скрипт, выводил в нужных мне местах с помощью echo пакет, который я составляю для отправки на сервер.

Но в данном случае под дебагом я имел ввиду другое.
Когда я смотрю что отсылает форма - я искльзую http снифер, который показывает мне все отправляемые заголовки. Когда я отсылаю с помощью скрипта я не вижу, что происходит. Т.е. вопрос в том, как отследить какой пакет формирует интерпритатор php при выполнении скрипта.

Coutty
03-04-2009, 15:02
Что вам мешает использовать сниффер для наблюдения и за php-пакетами? Там ведь тот же самый TCP-трафик по тому же самому каналу идёт.

ldcount
03-04-2009, 15:09
Как?
Скрипт я запускаю на удаленном сервере, не моем.

Мне надо установить апач+интерпритатор? Плюс, настроить общий сниффер, который следит за ВСЕМИ отсылаемыми пакетами? Как выделить только php пакеты?

Главный вопрос: кто их разложит по заговловкам?:)

Coutty
03-04-2009, 16:44
Вы и отладкой на удалённом сервере занимаетесь? Что ж, тогда вам виднее :yes:

ldcount
03-04-2009, 16:46
Пока что я не занимаюсь отладкой :)

Igor_I
03-04-2009, 20:14
ldcount, гугль -> na_tanke.
Хотя следует задать несколько вопросов:
где форма
где интерпретатор php
где браузер на который приходит ответ.
А пока получается так
Посылаешь запрос на уд. сервер
Там выполняется скрипт, который посылает заголовки.
Тебе приходит ответ 200 что скрипт выполнен, что вполне правильно.

medveduk-88
22-04-2009, 20:14
может кто то подсказать как сделать так чтоб когда входиш на страницу она автоматом становилась СТАРТОВОЙ

вот нашел такой пример
<a href onmouseover="this.style.behavior='url(#default#homepage)';this.setHomePage('http://www.сайт.ru/');">Сделать стартовой</a>
но тут жать нужно

Coutty
22-04-2009, 20:22
Не надо здесь жать. Она срабатывает на событие mouseOver.
Напишите то же самое в < body onload="..." > - будет срабатывать на загрузку страницы (полностью). Но я не уверен, что можно сделать страницу стартовой без подтверждения.

EN130
16-05-2009, 16:04
Хочу на своем сайте испльзовать такой код для проигрывания роликов, но ролик не проигруется, пишет ролик не загружен. В чем ошибка?

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="640" height="480" id="player" align="middle">
<param name="allowScriptAccess" value="always" />
<param name="allowFullScreen" value="false" />
<param name="flashvars" value="src=play/video.flv" />
<param name="movie" value="play/flv_player.fla" />
<param name="quality" value="High" />
<param name="bgcolor" value="#666666" />
<param name="wmode" value="transparent">
<embed src="play/flv_player.fla" flashvars="src=play/video.flv" quality="High" bgcolor="#666666" width="640" height="480" name="player" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" wmode="transparent" />
</object>

STARSsoft
18-05-2009, 06:53
Искал но видимо плохо раз не нашел. Помогите со скриптом. На сайте есть страничка новостей, как сделать так чтоб любой посетитель сайта мог оставить новость на сайте. Конструкция приблизительно такая:
Новость 1
Новость 2
и т.д.

снизу <textarea> с кнопкой "отправить" и "очистить"
нужен скрипт чтоб после нажатия кнопки "отправить" текст с новостью добавлялся на эту же страницу выше <textarea>




© OSzone.net 2001-2012