|
|
|
|
|
для: xenux
(12.07.2006 в 23:07)
| | Куки, сессии, отправка заголовков должны происходить до отправки любой информации в окно браузера, т.е. до любого вывода echo, print или непосредственного вывода вне тэгов <?php и ?>. Это связано с тем, что HTTP-заголовки передаются перед всеми данными и когда происходит вывод в окно браузера PHP вынужден их пред этим отослать клиенту. Поэтому повторно, после вывода информации в браузер он не может работать с куками, сессиями и отправлять заголовки.
Если вывод текста до отправки заголовков необходим следует воспользоваться функциями управления вывода, позволяющих задерживать вывод информации в браузер.
http://www.softtime.ru/group/id_group=12 | |
|
|
|
|
|
|
|
для: CrazyAngel
(12.07.2006 в 23:10)
| | Не знаю особо в код не вглядывался(лень:) ) но у меня есть такое предположение... в саааамом начале странички
session_start(); //не помню пральна написал или нет:)
|
воще стоит ли старт сесси в начале кода? | |
|
|
|
|
|
|
|
для: xenux
(12.07.2006 в 23:07)
| | Надо работать с сесиями/куками до вывода чего-либо на экран, так как они используют заголовки
еще можно включить буферизацию функцией
либо в php.ini | |
|
|
|
|
|
|
| Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/Lsdxxx/domains/sdxxx.lithit-host.net/public_html/los/openDB.php:1) in /home/Lsdxxx/domains/sdxxx.lithit-host.net/public_html/los/login_script.php on line 39
opendb.php
<?php
/* $server="localhost";
$user="Lsdxxx";
$pass="tusaz666";
$dbname="Lsdxxx_new";
$sesDB = mysql_connect($server,$user,$pass);
mysql_select_db($dbname);
*/
?>
<?
// Это файл handler.php
// Имя сервера базы данных, например $dblocation = "mysql28.noweb.ru"
// сейчас выставлен сервер локальной машины
$dblocation = "localhost";
// Имя базы данных
$dbname = "Lsdxxx_new";
// Имя пользователя... Скорее всего будет совпадать с вашим доменным именем
// у нас, например $dbuser = "softtime";
$dbuser = "Lsdxxx";
// Пароль - в комментариях не нуждается ;-)
$dbpasswd = "tusaz666";
// Соединяемся с сервером базы данных
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx) {
echo( "<P>В настоящий момент сервер базы данных не
доступен, поэтому корректное отображение
страницы невозможно.</P>" );
exit();
}
// Выбираем базу данных
if (! @mysql_select_db($dbname,$dbcnx) ) {
echo( "<P>В настоящий момент база данных не доступна,
поэтому корректное отображение страницы
невозможно.</P>" );
exit();
}
?>
|
login_script.php
<?
ini_set('display_errors',1);
error_reporting(E_ALL);
require("openDB.php");
$login=$_POST['login'];
$password=$_POST['password'];
$query ="SELECT * FROM psa_char where login like '%".$login."%'";
$result= mysql_query($query);
if(!$result)
{
echo mysql_error();
echo "Ошибка выполнения запроса";
exit();
}
$row = mysql_fetch_array($result);
//PROVERKA PAROLIA!!!!!!!!!!!!!
// Если запрос вернул результат - производим дальнейшую обработку
if(mysql_num_rows($result) > 0)
{
//md5($password)==$row["password"]
//strcmp(md5($password),$row["password"])=1
echo $row["password"];
echo " ".md5($password);
$pos=strpos(md5($password),$row["password"]);
if ($pos===false)
{
echo "Ошибка идентификации: неправильный пароль";
exit();
}
else
{
// Идентификация прошла успешно - осуществляем
// "вход" посетителя. Для того, чтобы в течении текущей
// сесси посетитель не вводил своё имя пароль повторно -
// передаём их через сессию
if(session_start())
{
$_SESSION['login'] = $_POST['login'];
$_SESSION['password'] = $_POST['password'];
// Осуществляем автоматический переход на
// страницу index.php чтобы убедится, что
// посетитель "вошёл"
// echo "<HTML><HEAD>
// <META HTTP-EQUIV='Refresh' CONTENT='0; URL=login.php'>
// </HEAD><body>";
echo "fghjkl";
}
}
}
// Если в результате запроса не получено ни одной
// строки - посетитель с таким именем не зарегистрирован
else
{
echo "Ошибка идентификации: посетитель не зарегистрирован";
exit();
}
/*
if (md5($password)==$row["password"])
{
echo $login." zdrasti";
echo "<head>
<title>proverka</title>
</head>
<body>
<a href=\"main.php\">voiti v igru </a>
</body>";
}
else echo"Blogai <br>";
echo $row["password"]."<br>";
echo md5($password); */
?>
|
| |
|
|
|
|