Есть проблема. PHP: <?php include ("../include/mysql.php"); $err = ""; $login = $_POST['login']; $login = htmlspecialchars ($login, ENT_QUOTES); $login = mysql_real_escape_string($login); $login = trim ($login); $login = substr ($login, 0, 30); $password = $_POST['password']; $password = htmlspecialchars ($password, ENT_QUOTES); $password = mysql_real_escape_string($password); $password = trim ($password); $password = substr ($password, 0, 30); if (empty ($login)) $err.= "Вы не ввели логин!<br>"; if (empty ($password)) $err.= "Вы не ввели пароль!<br>"; if (!empty ($login) and ($password)) { $query = mysql_query ("SELECT COUNT(*) FROM admins WHERE login = '$login' and password = '$password'"); list ($rows) = mysql_fetch_array ($query); if ($rows == 0) $err.= "Такого пользователя не существует!"; } if ($err == "") { session_start (); $_SESSION['id'] = session_id (); header ("Location: ../index.php"); } else echo "<table align='center' class='error'"; echo "<tr><td>"; echo $err; echo "</td></tr>"; echo "</table>"; echo "<META HTTP-EQUIV='Refresh' CONTENT='2; URL=index.php'>"; ?> При использовании кода на странице выводит ошибки: Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Z:\home\localhost\www\ps\admin\auth.php:8) in Z:\home\localhost\www\ps\admin\scripts\auth.php on line 24 Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\ps\admin\auth.php:8) in Z:\home\localhost\www\ps\admin\scripts\auth.php on line 26 Если же использовать скрипт, не включая его на страницу, а на прямую. То ошибок нет. FAQ читал. Ничего не помогает. Помогите!
Andrey5555, headers already sent. А сессию стартуют до отсылки любых заголовков. Ставьте session_start() в начало скрипта и учите мат часть.. а можно было и поиск юзануть
Странно но здесь сессия начинается до отсылки вообще в браузер чего либо. Может это # echo "<META HTTP-EQUIV='Refresh' CONTENT='2; URL=index.php'>"; надо до этого # echo $err;
Поминаете session_start нельзя вызвать до начала всего, потому что $err проходя по скрипту записывает туда ошибки. Если ошибок нет, то должна начаться сесия и перебросить на нужную страницу. Если же ошибки есть, то должны они вывестись и произойти редирект. Как быть?
Если файл в юникоде, проверьте, что текстовый редактор не записал туда сигнатуру (начальные три байта, которые очень мешают).
Файл индклудиться посреди html кода. Может в этом ошибка? Если да, то как быть? Необходимо что бы выводило среди html кода.