XLIX. Функции протокола HTTP

Введение

Эти функции позволяют вам работать с данными, которые отправляются броузеру удаленного пользователя, на уровне протокола HTTP.

Требования

Эти функции всегда доступны.

Установка

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

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Данное расширение не определяет никакие константы.

Содержание
header -- Send a raw HTTP header
headers_list -- Возвращает список отправленных HTTP-заголовков (или готовых к отправке)
headers_sent -- Проверяет отправлены ли HTTP-заголовки клиенту и, если отправлены, то где
setcookie -- Send a cookie
setrawcookie -- Устанавливает cookie без url-кодирования её значения


Функции протокола HTTP
dand at ddchosting.com
08-Apr-2006 02:28
When I was working on a project I ran into this problem with redirecting. My solution is as follows:
header("Refresh: 5; url=../main/main.php?".session_id()."");

This allowed me to pass the session_id() which is used throughout site to make sure user has loged in.
I hope this helps!
henke dot andersson at comhem dot se
14-Jan-2006 01:01
If you want to make outgoing http connections with php, concider the curl extension.
woei at xs4all dot nl
30-Nov-2005 07:57
Actually, if you want to redirect a user why let HTML or JavaScript do it? Simply do this:

header("Location: http://www.example.com/");
WeeJames
07-Jul-2004 11:39
Regarding what the guy before said.  We've experienced problems where certain firewalls have encrypted the HTTP_REFERER meaning that it doesnt always contain the place you've come from.

Better to track where the user has come from either in a form post or in the url.
27-Apr-2004 07:05
in reference to toashwinisidhu's and breaker's note, a more effective way would be to use meta-tag redirect, for example.

<?php
$url
= "http://somesite.com/index.php"; // target of the redirect
$delay = "3"; // 3 second delay

echo '<meta http-equiv="refresh" content="'.$delay.';url='.$url.'">';

?>

The meta goes in the head of the HTML.
This method does not require javascript and is supported by most browsers and is rarely, if ever, filterd out.
toashwinisidhu at yahoo dot com
21-Apr-2004 03:55
The method given below may not sometimes work.
The following method has always worked with me:
just put the following 3 lines in your PHP code

?>
<body onload=setTimeout("location.href='$url'",$sec)>
<?PHP
-------?>

$sec is the time in second after which the browser would automatically go to the url. Set it to 0 if you do not want to give any time.
You can use this function on the events of various html/form objects (eg.-onclick for button).eg.
<input type=button value="Go to Php.net" onclick=setTimeout("location.href='php.net'",0)>
Use this to one step back
<input type="button" value="Back" onclick=history.go(-1)>
breaker at coder dot hu
15-Mar-2003 08:15
[Editor's Note:] This method uses JavaScript which requires the visitor's browser to have javascript enabled [/Note]

Another way, to redirect to an url without any notification or message:
Print("window.location='$urlvar';");
nf at wh3rd dot net
05-Sep-2002 11:57
If you're wanting to perform an HTTP POST, I've written a small but useful function to do so:

http://nf.wh3rd.net/projects/http.inc/
krisj at blueridge dot net
23-Jan-2001 04:41
When using the $SERVER_NAME or other predefined variables within a function BE SURE to use $GLOBALS["SERVER_NAME"] in its place =)
jeffp-php at outofservice dot com
04-Jan-2001 08:37
$HTTP_RAW_POST_DATA --

You'll usually access variables from forms sent via POST method by just accessing the associated PHP global variable.

However, if your POST data is not URI encoded (i.e., custom application that's not form-based) PHP won't parse the data into nice variables for you.  You will need to use $HTTP_RAW_POST_DATA to access the raw data directly. (This should return a copy of the data given to the PHP process on STDIN; note that you wan't be able to open STDIN and read it yourself because PHP already did so itself.)
dhpainter at msn dot com
26-Apr-2000 10:35
To create a link to the previous page you can use the
 getenv("HTTP_REFERER")
command and  set it up as a hyperlink. You might also want to put a IF condition on it so it won't get displayed if the user has gone straight in to the page.

<gopher_parsedirheader>
 Last updated: Mon, 14 Nov 2005