PHP в деталях



         

Комментарии к статье ""


3.4.2001 13:18  Дмитрий  []

Вообще-то, ф-ция header добалвяет запись в заголовок ответа web сервера клиенту, а не в заголовок запроса...

Ответ Antonio:

Да, действительно так :-) Сорри за очепятку. Был не прав, вспылил.

30.5.2001 14:03  Elina Zverinskaia  []

Добрый день! Меня мучает вот какой вопрос. По адресу http://webde-ag.de/de/presseservice/bildarchiv/a+Das+WEB.DE+logo.htm сделано вот что: когда я хочу скачать tiff-файл в Netscape, то независимо от настройки Preferences для типа tiff "Ask me before opening downloaded files of this type" при нажатии на ссылку tif не возникает окно для выбора открыть или сохранить, а сразу выскакивает окно для сохранения. Как это сделано? С помощью HTTP? Нужно это вот для чего. Если у пользователя не установлен выше упомянутый флажок и нет программы для показа tiff-файлов, то если в HTML ставить просто href=file.tiff, то вылезает ошибка, будто файла нет на сервере.

Ответ DL:

По-моему, вы смешиваете разные вещи. С помощью HTTP установить, что делать броузеру - сохранить или открыть файл - нельзя. Всё дело в самом броузере. Если он имеет плагин для tiff то может предложить открыть. Если в системе есть программа, приписанная к расширению tiff, тоже будет предложено открыть файл. Например, когда вы нажимаете на ссылку к mp3-файлу, вам предлагается открыть его "оттуда" (на самом деле, файл будет так же скачан, но сохранён в кэше броузера). При чём тут http и "<a href=", не знаю.

3.7.2001 05:48  Abracadab.Rus  []

С помощью эмулирования запроса браузера я пытаюсь заставить сервер делать то, что он делает из окна браузера. Этого возможно добиться? Я не понял что значит "Cookie: income=1rn", как мне отправить на сервер свой кук? Что SetCookie() использовать?

Ответ DL:

Как написано, так и использовать: в запросе писать строку "Cookie: имя=значение"

24.7.2001 18:39  Alexander

Здесь жаловались на нехватку примеров. Вот один из примеров, взятый с www.phpbuilder.com

// Set this to "1" to run a demonstration of this library.

$show_example=0;

###################### ORIGINAL AUTHOR'S HEADER:

// simple post method

// version 1.0 by Andrus (andrus@vnet.ee)

// Disclaimer:

// everyone can change or use this code however and wherever they want ;)

###################### MY HEADER (Benjamin Smith)

/*

I like the "share and share alike" philosophy - so this modified library is

distributed under the LGPL. If you use this, and make any improvements, you

need to publish this in the shared code library on www.phpbuilder.com

- Benjamin Smith (bens_nospam@benjamindsmith.com

*/

// send out "browser" headers

function post_send_headers ($fp)

{

fputs ($fp, "Accept: */*n");

fputs ($fp, "Accept-Language: enn");

fputs ($fp, "Connection: Keep-Aliven");

fputs ($fp, "User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)n");

}

// post data and return reply

function post_data ($host, $url, $data, $port=80)

{

// INPUT VALIDATION:

if (strlen($host)

return false;

if (strlen($url)

return false;

if ((!is_array($data)) sizeof($data)

return false;

$fp = @fsockopen ($host, $port, $errno, $errstr, 120);

$ret = "";

//if (strncasecmp ($url, "http://", 7) == 0) $url = substr ($url, 7);

$req = substr ($url, $p);

if ($fp)

{

fputs ($fp, "POST $req HTTP/1.0n");

post_send_headers ($fp);

fputs ($fp, "Content-type: application/x-www-form-urlencodedn");

$out = "";

while (list ($k, $v) = each ($data))

{

if(strlen($out) != 0) $out .= "&";

$out .= rawurlencode($k). "=" .rawurlencode($v);

}

$out = trim ($out);

fputs ($fp, "Content-length: ".strlen($out)."nn");

fputs ($fp, "$out");

fputs ($fp, "n");

while(!feof($fp))

{

$ret .= fgets($fp,128);

}

fclose ($fp);

}

return $ret;

}

// example how to use:

if ($show_example!=1)

{

// do nothing.

}

elseif (is_array($HTTP_POST_VARS) && sizeof ($HTTP_POST_VARS)>0)

echo "IT WORKED! YOU ENTERED $var";

else {

$host='localhost';

$form='/sendform.php';

$pass=array(

'var' => 'some stuff'

);

echo $reply=post_data($host, $form, $pass);

}

?>

<


Содержание  Назад  Вперед