Отправляю через AJAX данные в файл "login.php" Вот сам файл: Код (Text): <? require '../config.php'; $login = $_POST['login']; $password = $_POST['password']; if(empty($login) || empty($password)) exit('Не все данные'); $re = '/^[\w\-\.]+$/i'; if(!preg_match($re, $login)|| !preg_match($re, $password)) exit('Некорректные данные'); connect(); $rows = mysql_fetch_assoc(mysql_query("SELECT `id` FROM `users` WHERE `login`='".$login."' AND `password`='".md5($password)."'")); if(!empty($rows['id'])) exit('Неверные данные'); $key = md5(md5(rand(0,9999999)).rand(0,9999999)); mysql_query("INSERT INTO `sessions` (`uid`, `key`) VALUES ('".$rows['id']."', '".$key."')"); setCookie('id', $rows['id']); setCookie('key', $key); ?> Выдает ошибку: Warning: Cannot modify header information - headers already sent by (output started at Z:\home\l\www\functions.php:1) in Z:\home\l\www\Ajax\login.php on line 17 Warning: Cannot modify header information - headers already sent by (output started at Z:\home\l\www\functions.php:1) in Z:\home\l\www\Ajax\login.php on line 18 Но я уверен, что ничего не выводил на страницу до отправки куков. Добавлено спустя 10 минут 40 секунд: Function.php вызывается require'ом файла config.php. Добавлено спустя 1 минуту 19 секунд: Может, проблема в том, что файл лежит в подкатегории?
там какой-то вывод проскакивает. может пробел, может энтер, может BOM а типо как если вывод ушел, то заголовки уже не впихнешь. а куки в заголовках ставятся.
Z:\home\l\www\functions.php на первой строке проскакивает вывод. как упомянул igordata возможен энтер (перенос строки), БОМ (заголовок ЮТФ-8 файлов) или просто пробел. по спецификации для отправки кук и заголовков страницы не должно быть никакого вывода в браузер.