На каждой странице возле шапки имеется форма для авторизации. Форма отправляет введённые данные в скрипт "login.php" в котором введённые данные проверяются с помощью регулярных выражений. Login.php PHP: <?php require_once ("../config.php"); //Подключили настройки БД require_once ("../common/regexp.php"); //Регулярные выражения if ((isset($_GET['action'])) && ($_GET['action']=='quit')) // Выход unset($_SESSION['session_status'], $_SESSION['session_id_user'], $_SESSION['session_login']); if ((isset($_POST['action'])) && ($_POST['action']=='enter')) // Вход { if (isset($_POST['username']) && isset($_POST['pass']) && log_pas($_POST['pass']) && log_pas($_POST['username'])) //Проверка введённых данных { $login=$_POST['username']; $password=$_POST['pass']; $sql="SELECT * FROM userinfo WHERE user_name = '$login' AND password = '$password'"; $result=mysql_query($sql); if ($result) { if (mysql_num_rows($result)>0) { $_SESSION['session_status']=mysql_result($result, 0, 'status'); $_SESSION['session_id_user']=mysql_result($result, 0, 'id_user'); $_SESSION['session_login']=$login; $sql="UPDATE userinfo SET last_time = NOW() WHERE user_name='$login'"; mysql_query($sql); } else { header("Location: ../remember/index.php?code=10"); // Переходим на страниицу восстановления exit; } } } } header("Location: $_SERVER[HTTP_REFERER]"); // Переходим на страниицу с которой пришли exit; ?> config.php: PHP: <?php session_start(); $hname="localhost"; $uname="root"; $pname="root"; $connect_db=@mysql_pconnect($hname, $uname, $pname); if (!$connect_db) { echo "В настоящий момент сервер базы данных временно недоступен"; exit; } if (!@mysql_select_db("ng", $connect_db)) { echo "В настоящий момент база данных временно недоступен"; exit; } mysql_query("set names cp1251"); ?> regexp.php PHP: <?php function log_pas($str) { $re="|^[a-zA-Zа-яА-Я\d\s_]+$|i"; if (preg_match($re, $str)) $f=true; else $f=false; return $f; } function text($str) { $re="|^[a-zA-Zа-яА-Я\d\s_.,@!?:+-=\"]+$|i"; if (preg_match($re, $str)) $f=true; else $f=false; return $f; } function digit($str) { $re="|^\d+$|i"; if (preg_match($re, $str)) $f=true; else $f=false; return $f; } ?> Вообщем вылетает такая вот ошибка: Warning: Cannot modify header information - headers already sent by (output started at /site/common/regexp.php:31) in /site/registration/login.php on line 33 Я так понимаю что ошибка в том что скрипт не может отправить заголовок, т.к. он уже отправлен в regexp.php но там только функции... В чём дело?