���������������� �����
� �������� ������� ����� ������ ����������������� ��� ��������� ��������, � ���� ��� ������ ����������� ���������� � ���� �������� �������������� ����� ����������� ������� header()
, ��� �������� � ������ ��������������: Warning: Cannot modify header information - headers already sent by
. ����� �������� ����� ���������� ��������, ��� ������� ���������� ������� ��� �����-���� ������, ������� �� ���� �� ��������� � �������� ������������. �� ����� � ��������, ��� ����� ��������� �������������� �������� ������ ����� � �������� �����������������. ������� ����� �������� ����� ��������������, ��������� ������� header(
) �������� @
��� ��������� ����� ��������� � ���� �������� ��� ������ ������� error_reporting(0)
, ������ ��� ���� ������ �������������� � �� �������� ��������� ������� header()
.
������� �� �������� �������� ����������� ������, ��� ������� ���� ����� ������, ��������� � ���� ��������, ���������� � ����� � ������������ ������� �����, ����� ������ �������� ������. ��� ��������� ������������� ��������� ��� ������� header()
� ���� �������, ��� �� ��� �� ����������.
����� ������� ������ ���������� ����������� ������ � ��������������� ���������� output_buffering ����������������� ����� php.ini, ��������� �� �������� ������ on
.
��������� ����������� ��� ������ ��������� output_buffering
. . .
output_buffering = On
. . .
������ ��������� ����������������� ����� php.ini
����� ���������� �� ������ ��������, ������� ��� �������� ���������� �� ����� ����������� �� ��, ��� ��������� output_buffering
�������� ���������� (��� �����, ��� �� ��������� ��� ��������� �������� Off
� ���������).
� ������� ��� ������������� �������������� ������ ���������� ������������ ������. ��� ����� ������������� ������� ������ ���������� �������, ������ ������� ����������� � �������.
������� ���������� �������������� | �������� |
---|---|
ob_clean() | ������� ����� ������ |
ob_end_clean() | ������� ����� ������ � ��������� ����������� ������ |
ob_end_flush() | ���������� ����� ������ ������� � ��������� ����������� ������ |
ob_flush() | ���������� ����� ������ ������� |
ob_get_clean() | ���������� ������� ���������� ������ � ������� ������� ����� |
ob_get_contents() | ���������� ���������� ������ ������ |
ob_get_flush() | ������� �����, ��������� ��� ���������� � ���� ������, � ��������� ����������� |
ob_get_length() | ���������� ������ ������ ������ |
ob_get_level() | ���������� ������� �������� ������ |
ob_get_status([$full_status]) | ���������� ������ ������ ������ � ���� �������; ���� �������������� �������� $full_status ��������� �������� true, ������������ ����� ��������� ����������. |
ob_gzhandler($buffer, $mode) | ������� ��������� ������, ������� ������������ �������� ob_start() ��� ������� ����������� ������ ������ |
ob_implicit_flush([$flag]) | �������� (���� �������� ��������� $flag ��������������� � 1) ��� ��������� (���� �������� $flag ��������������� � 0) ������� ������� ������ |
ob_list_handlers() | ���������� ������ ���� ������������ ������������ ����������� |
ob_start([$output_callback [, $chunk_size [, $erase]]]) |
�������� ����������� ������; � �������� ��������� $output_callback ����� ��������� �������� ������� ��������� ������, ������� ������ ����������. �������������� �������� $chunk_size ������ ���������� ���� ������, ����� ������� ����� �������������� ��������� ����� ������� $output_callback. ���� �������������� �������� $erase ��������� �������� false, �� ����� �� ����� ��������� ����� ���������� ������ ������� |
output_add_rewrite_var ($name, $value) |
��������� � URL, ������������ � ������ ������, �������������� GET-�������� � ������ $name � ��������� $value |
output_reset_rewrite_vars() | ���������� �������������� GET-���������, ����������� �������� output_add_rewrite_var() |
���������� ������ ����������� ������ ��� ������ ������� �� �������.
����������� ������
<?php
//���� ����� ���������� � �����
ob_start();
//������� ���������� ��������
echo "Hello world!";
//���������� HTTP-���������
header("X-my-header: Hello world!");
//���������� ���������� ������ ������ �������
ob_end_flush();
?>
������ � ��� ���������
��� �������� ��������� ����� ������ ������ ���������� ������ ��������� � ������ ��� ������ HTTP-��������� Content-length. ��� ��������� ������� ����� ������������ ��������� (�����), � ����� �����, ����������� ��� ��� ��������. ������� �������, ��� ���-������ �������� ��������� ������ ������ ������������ �����, ��������, ����������� HTML-�������� ��� zip-������. ��� ������������ ������, ����� ��� ���-������, �������� ������� ��������� ��� ������ HTTP-��������� Content-length ������� �� ����� ������������. ������ ����� ���������� ������ ��������� ����� ������ ����� ����, ��� ������ �������� ���� ������ � ������� ���������� ������������ ����� HTTP-���������. � ����� �������� ������ ��������������� ��������� ���������� �������.
���������� ������, ��� ������, ����������� �������� ��������� ����, ������ �������� ����������� ��� ������ ������� ob_get_length()
� ������������ ������� ��� ������ HTTP-��������� Content-length.
������������ HTTP-��������� Content-length
<?php
//���� ����� ���������� � �����
ob_start();
//������ ���������� ��������
for($i=0; $i<300000; $i++) echo "<pre>01\r\n";
//���������� ������� ������ ��������
//� HTTP-��������� Content-length
header("Content-length: ".ob_get_length());
//���������� ���������� ������ �������
ob_end_flush();
?>
��� �������� ������� ���-������ � ������� �������������� ��� ���������� ��� HTML-��������, ������� ��������� � ���� ��������. ��������� HTTP-��������� Content-type, ��������������� ��� ��������� �����������, ������ ��������� ��� �������� text/html, � ������� �������������� ����� �������� �� ��������� ��� HTML-��������. ������ ����� ������������� �� ������ ������: ��� �������� ������ ���� �� �������� ���������� ������������ ��������� ��� �� ������� ����, � ��� ����� ���������� �������� ����.
��������� ���� �����
<?php
//���� ����� ���������� � �����
ob_start();
//������ ���������� ��������
for($i=0; $i<300000; $i++) echo "01\r\n";
//������ ���, ������� ����� ���������� �������
//��� ���������� �����
header("Content-Disposition: attachment; filename=text.txt");
//� �������� ���� ����� ������ �������� �����
header("Contenr-type: application/octet-stream");
//�� �������� ������� ������ ��������
//� HTTP-��������� Content-length
header("Content-length: ".ob_get_length());
//���������� ���������� ������ �������
ob_end_flush();
?>
� �������� ���� ��������� � HTTP-��������� Contenr-type
����������� �������� application/octet-stream
, ��������������� ��������� ������. ��������� Content-Disposition
��������� ������ ��� �����, � ������ ������ text.txt
. � ���������� �������� �������� �� �������� �� ����� ���������� ��������� ����.
��� ���� ���� ����� �������� ��� ��������� �������� HTTP-���������, �� ������ ������������ ����� �� ���������.
���������� �����������
�������� ����������� ����������� � ����� ����������� ��������� ������ ����� �������� � ��������. ����������� ������������� �� HTTP-��������� �������� ����� ���� �������� � ���� �������������� ������� ��� ��������, � ��� ��������� ������� ����� ���������� ��� ��������� � ���������.
���� ������� ������������ �� ��� ����: ��������� � ����������. ��������� ��� ��������� ��������� �������, ����� ��� ���������� ������������� �� ������-������� ���������� (��� �����������, � ������� ������� ���� ���������� ������-������).
����������. ������-��������, � ������� �� �������� �������, ���������������� ������ ������-���� �������, �������� ������-���������, ������������� ����� �������� � ������� ��������. � ������� �� ����-�������, ��������������� ������� �������������� �������� ������� � ������� �������, � ������ �����-������� ������ �������������� �������������� �����, ����� ��� �������������� ���������, ��������� ����������, ������ ���������, ����������� � ��.
� ����������� ������� ����������� ��������� �������� ������ � ���������� � ����������� ������� ������, �� ������ ����������� ����� ������ ������ ���-����������. ���� ���������� ����� ��������� �������� ���-����� � ����� ������������ �����������, ����� ��� ����������� ������������ ����������, ����������� �������, ��������� �������� ������ � ��������� ����� ���������� �������. ���� �� ���������� ��������� ������������ ��������, ��������, ��������� ������, �����������, ��� ��������, ������, ��������� ���������� ����� ������� �������� ������� �����, � ���������� �������� ����� ��������� � ������ ��������� ���������� ��������.
��� ���������� ����������� ����� ������������ HTTP-���������.
����������. � ���������, � ��������� ����� ���������� ������-������� ������������� ������ ����������. ���� � ���, ��� ������������ ��������, ��������� ��������, ��� ������ ���, ������ �� ������ ������������ ����������. ������ ������ ������ ����������� ��������. ����� ����, ��� ���������� �������� ���������� HTTP-���������, ����������� �����������. � ���� ������ ������������ ������ �� �������� ������, ��� ��������� � URL GET-�������� �� �������� ������������� ���������.
���������� �����������
<?php
//����� ���� � �������
header ("Expires: Mon, 23 May 2008 02:00:00 GMT");
header ("Last-Modified: " .gmdate(D, d M Y H:i:s"). "GMT";
header ("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");
. . .
?>
HTTP-��������� Expires ������ ����, �� ���������� ������� �������� ��������� ����������, ������� ������� ��� ����� ��������� ��� ��������� ���� ������������� ����������� ������ ��������.
HTTP-��������� Last-Modified ���������� ���� ���������� ��������� ���-��������. ���� � ������� ���������� ��������� � ��� ������-������� �������� ��������� ����� ��������� ����������, ���������� ��������� �������� ��������, ������� ���������� ���� ��������� �������� ������� ��� ������ ��������� ������������� �����������.
HTTP-��������� Cache-Control ������������ ��� ���������� ������������, � �������� ��� �������� ������ no-cache ����� �������� � ������� �����������. � ���������� ��������� HTTP 1.0 ��� ������� ����������� ����� ��������� �������� no-cache HTTP-��������� Pragma.
��� ����, ����� �������� �������������� ������-������� � ���, ��� ������ �������� ����� ����������, HTTP-��������� Cache-Control ������� �������� �������� public. ���� ���������� �� ������������� ��� ��������� ���-�������� � ����� ���� ��������� ������ � ��������� ���� ��������, HTTP-��������� Cache-Control ������� �������� �������� private.
����������� ����������
<?php
header ("Cache-Control: public");
header ("Cache-Control: private");
. . .
?>
���� ���������� �������� ����������� � ������������ �������������, ������ ������ ���������� ����� ����� �������� HTTP-��������� Cache-Control ��������� max-age
. ������ �������� ���������� ���������� ������, ������������ ����� ����� ����� �������� � ����. � �������� ������ ��������, ��� �������� ����� ��������� �� ������������� ������-������� 1 ���.
���������� �������� ����������� ���������
<?php
header ("Cache-Control: public");
header ("Cache-Control: max-age=3600");
. . .
?>
��� ���������� ����� � ��� ������������� ��� ����������� �������: session_cache_limiter()
� session_cache_expire()
.
����������. � ��� ���������� ����� �������, ������� ����� �� ���� ������������ � �������� HTTP-���������� (session_cache_limiter()
, session_cache_expire(), setcookie(), session_start()
� �.�.). ��� ���������� ����������� ������������� ����� ������� ����� ������ �����-���� ���������� � ���� �������� �������� � ��������� ��������������: Warning: Cannot modify header information - headers already sent by
������� session_cache_limiter()
���������� �/��� ������������ ����������� ����������� � ����� ��������� ���������:
string session_cache_limiter([$cache_limiter])
������ ������� ���������� ���� �� ��������� �����, ������������ ����������� �����������:
none
� ���������� ����� ���� �����������, HTTP-��������� Cache-Control �� ������������;nocache
� ���������� �����������;private
� HTTP-��������� Cache-Control �������� �������� "private", ��������������� ����������� �� ������ �������� ����������;private_no_exoire
� ����� �����������private
, �� ���������� ����, ��� ������� �� ���������� HTTP-���������Expires
, ������� ����� �������� ��������������� � ���������, ����������� �� ������Mozilla
;public
� HTTP-���������Cache-Control
�������� �������� "public
", ��������������� ����������� �� ������ ������-��������.
- ���� ��������� �������������� ��������
$cache_limiter
, �� ������� �������� ������������ ���������� �� �����. -
������������� ������� session_cache_limiter()
<?php
//�������� ������� �������� �����������
$cache_limiter_fst=session_cache_limiter();
//������������� ����������� ���� � "public"
session_cache_limiter("public");
//�������� ������� �������� ������������
$cache_limiter_snd=session_cache_limiter();
//������� �����
echo "����������� �� ��� �������� ". " � $cache_limiter_fst �� $cache_limiter_snd";
?>�������
session_cache_expire()
���������� �/��� ������������� ������� ����� ����� HTTP-��������� � ���� � ����� ��������� ���:int session_cache_expire([$new_cache_expire])
�������������� ��������
$new_cache_expire
���������� ����� ����� ��������� � ���� � ������� (�� ��������� ���� �������� ����� 180). ���� ����� �������session_cache_expire()
�������������� � ����������$new_cache_expire
, �� ������� ����� ����� (180 �����) ���������� �� ��������, ���������� � ���� ���������.������������� ������� session_cache_expire()
<?php
//������������� ����� ����� ����, ������ 30 �������
$cache_expire=session_cache_expire(30*60);
echo $cache_expire;
?>������� ��������������
���-������ ��������� �������� �������� ��� ������ ������� �������������� � ���� ������������ �� ������ ���������� ����� � ������, �� �� ����� ������� � ��������� �����.
������ ����� ��� �������������� �������� ��� ������ ���������������� ������
.htaccess
�.htpasswd
, ������ ��� �� ������ ������, �.�. ���������� ������ ������������ ������� �������������� ����� �������.htpasswd
.�������� ������� ������� ��������������, ����� � ������ ��� �������, ����� ��������� � �������
userslist
.������� userslist
������ ������ ������� userslist ������� �� ���� �����:
id_user
� ��������� ���� �������, ���������� ���������AUTO_INCREMENT
;name
� ��� ������������;pass
� ������ ������������.
��� ���������� ������� �������������� �������� ������� ���������� ������� ��������� HTTP-���������:
WWW-Authenticate: Basic realm = "Admin Page"
������ ��� �������� � ������ ����� ��� ������ ������ � ������.
HTTP/1.0 401 Unauthorized��� ������������ ����� �������� �������� � ������� ���������������� �������
$_SERVER['PHP_AUTH_USER']
, � ������ �$SERVER['PHP_AUTH_PW']
.����������. �������� ���������������� �������
$_SERVER['PHP_AUTH_USER']
�$_SERVER['PHP_AUTH_PW']
�������� ������ � ��� ������, ���� ��� ���������� � �������� ������, � �� CGI-����������.��� �������� ��� �������������� ������ �������� � ��������� ����
security_mod.php
, ��������� �������� ��� ������ ���������require_once()
����� ��������� � ������ �������� �������.���� security_mod.php
<?php
($lst);
//устанавливаем соединение с базой данных
require_once("config.php");
//если пользователь не авторизовался - авторизуемся
if(!isset($_SERVER['PHP_AUTH_USER']))
{
header("WWW-Authenticate: Basic realm = \"Admin Page\"");
header("HTTP/1.0 401 Unauthorized");
exit();
}
else
{
//проверяем переменные $_SERVER['PHP_AUTH_USER']
//и $SERVER['PHP_AUTH_PW'], чтобы предотвратить
//SQL-инъекцию
if(!get_magic_quotes_gpc())
{
$_SERVER['PHP_AUTH_USER']= mysql_escape_string($_SERVER['PHP_AUTH_USER']);
$_SERVER['PHP_AUTH_PW']= mysql_escape_string($_SERVER['PHP_AUTH_PW']);
}
$query="SELECT pass FROM userslist WHERE name='{$_SERVER[PHP_AUTH_USER]}'";
$lst=@mysql_query($query);
//если найдена ошибка в SQL-запросе-
//открываем диалоговое окно ввода пароля
if (!$lst)
{
header("WWW-Authenticate: Basic realm = \"Admin Page\"");
header("HTTP/1.0 401 Unauthorized");
exit();
}
//если такого пользователя нет-
//открываем диалоговое окно ввода пароля
if(mysql_num_rows($lst)==0)
{
header("WWW-Authenticate: Basic realm = \"Admin Page\"");
header("HTTP/1.0 401 Unauthorized");
exit();
}
//если все проверки пройдены, сравниваем кэши паролей
$pass=@mysql_fetch_array
if(md5($_SERVER['PHP_AUTH_PW'])!=$pass['pass'])
{
header("WWW-Authenticate: Basic realm = \"Admin Page\"");
header("HTTP/1.0 401 Unauthorized");
exit();
}
}
?>��� ����� �� ��������, ��� ��������� ����������� ������� ������������ ��������� ����������� ��� ����� ������:
WWW-Authenticate: Basic realm = "Admin Page"
HTTP/1.0 401 Unauthorized����� ������ ������� ��������������� ��� ������ �������
exit()
. ������������� ����� ����������� ����������� ���������� ������� ����� ������. ��� ����� ���������� ������ ����������� ���� HTTP-���������� ������� ��������� "�������� �� �������":HTTP/1.0 404 Not Found
����� ����, ��� ������ ������
security_mod.php
������, ��� ����� �������� ����� ��������� ���������� ������� ��� ������ ���������require_once()
.<?php
//������ ������������
require_once("security_mod.php");
?>
//����� ���� ������ ��������, � ������� ����� �������� ������
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Untitled Document</title>
</head><body>
<h2>������ ����!</h2>
</body>
</html>
Комментарии(0)
Для добавления комментариев надо войти в систему и авторизоватьсяКомментирование статей доступно только для зарегистрированных пользователей:Зарегистрироваться