ресурс для начинающих веб-разработчиков
комплексные веб-услуги по созданию сайтов

Справочный материал по основным языкам программирования и верстки сайтов.

Готовая методика создания простых и сложных динамичных сайтов, с использованием PHP и MySQL.

Использование веб-редактора Adobe Dreamweaver в разработке сайтов.

Использование графических редакторов Adobe Flash, Adobe Photoshop, Adobe Fireworks в подготовке веб-графики.

Разработка веб сайтов под "ключ".

Разработка отдельных фрагментов сайтов, консультации по вопросам верстки веб-страниц и веб-программирования.

���������������� �����. ������ � ��� ���������. ���������� �����������. ������� ��������������

������� ��������������

���������������� �����

� �������� ������� ����� ������ ����������������� ��� ��������� ��������, � ���� ��� ������ ����������� ���������� � ���� �������� �������������� ����� ����������� ������� 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

    ������ ������ ������� 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
    //устанавливаем соединение с базой данных
    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
    ($lst);
    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)

    Для добавления комментариев надо войти в систему и авторизоваться
    Комментирование статей доступно только для зарегистрированных пользователей:Зарегистрироваться