|
|
|
| Что это значит?
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/technot8/public_html/prom/conf.php:14) in /home/technot8/public_html/prom/aut.php on line 2 | |
|
|
|
|
|
|
|
для: CRazych
(26.12.2006 в 04:42)
| | До отправки заголовков (что и делает session_start()) не должно быть вывода в браузер. Этого можно избежать, например, буферизацией вывода с помощью ob_start() | |
|
|
|
|
|
|
|
для: CRazych
(26.12.2006 в 04:42)
| | Куки, сессии, отправка заголовков должны происходить до отправки любой информации в окно браузера, т.е. до любого вывода echo, print или непосредственного вывода вне тэгов <?php и ?>. Это связано с тем, что HTTP-заголовки передаются перед всеми данными и когда происходит вывод в окно браузера PHP вынужден их пред этим отослать клиенту. Поэтому повторно, после вывода информации в браузер он не может работать с куками, сессиями и отправлять заголовки.
Если вывод текста до отправки заголовков необходим следует воспользоваться функциями управления вывода, позволяющих задерживать вывод информации в браузер.
http://www.softtime.ru/group/id_group=12
http://www.softtime.ru/forum/ead.php?id_forum=1&id_theme=147
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=148
Вы можете также включить буфферизацию, если имеете доступ к конфигурационному файлу php.ini
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=8484 | |
|
|
|
|
|
|
|
для: cheops
(26.12.2006 в 13:16)
| | Помойму ничего тут не предается до старта сесии.
Вот собсно сам код. (моя вторая попытка написать авторизацию )
<?php
@session_start();
//конфиг к базе
require_once("conf.php");
// если сесии нету
if(empty($_SESSION['login']))
{
//принимаем данные от формы
if ($_POST['login'] & $_POST['pwd'])
{
$_SESSION['login'] = strtolower(mysql_escape_string($_POST['login']));
$_SESSION['pwd'] = strtolower(mysql_escape_string($_POST['pwd']));
}
else // если нет ни сесии ни передачи даных от формы
{
die(require_once("login.php"));
}
}
//если сессия есть
$login=$_SESSION['login'];
$password=MD5($_SESSION['pwd']);
//проверяем на правельность логин и пароль
$link=mysql_connect($mysql_host,$mysql_user,$mysql_pwd) or die("Не магу приконектиться к базе данных". mysql_error());
mysql_select_db($mysql_bd, $link);
$sql = "SELECT * FROM users WHERE Login = '$login' AND Passwd = '$password'";
$result=mysql_query($sql) or die("Неправельный запрос " . mysql_error());
if (mysql_num_rows($result)== false)
//если он не правельный
{
session_destroy();
echo "Пароль не правельный";
die(require_once( "login.php"));
}
?>
|
| |
|
|
|
|
|
|
|
для: CRazych
(26.12.2006 в 23:05)
| | 1) Нет ли пробела или перевода строки до <?php
2) Не включается ли этот скрипт при помощи include() в другой скрипт? | |
|
|
|
|
|
|
|
для: cheops
(27.12.2006 в 00:47)
| | Включатся то включается. Только эта ошибка возникает, также и при прямом обращении к этому файлу. Пробелов которые передавались бы браузеру до старта сессии нету. | |
|
|
|
|
|
|
|
для: CRazych
(27.12.2006 в 00:50)
| | Как выглядит сообщение об ошибке при обращении непосредственно к этому файлу? | |
|
|
|
|
|
|
|
для: cheops
(27.12.2006 в 00:56)
| | Уже никак, всё заработало само сабой. | |
|
|
|