В результате авторизации (loga и passw) ДЕНВЕР выдает ошибки (хотя авторизация происходит):
Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3.И еще:
Please be advised that the session extension does not consider global variables as a source of data,
unless register_globals is enabled. You can disable this functionality and
this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively in Unknown on line 0
Warning: Cannot modify header information - headers already sent by (output started atФайл login.php
X:\home\service\www\login.php:18) in X:\home\service\www\login.php on line 64
<?php
session_start();
$_SESSION['loga'] = $loga;
$_SESSION['passw'] = $passw;
// Подсоединяем файл соединения с БД
include ("blocks/bd.php");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Обработчик регистрации</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<table width="98%" border="0" align="center" class="main_border">
<!--Подключаем шапку сайта-->
<tr><td align="center">
<?php include ("blocks/header.php"); ?>
</td></tr>
<tr><td>
<table width="100%" border="0">
<tr>
<!--Подключаем левый блок сайта-->
<?php include ("blocks/lefttd.php"); ?>
<td width="709" valign="top" bgcolor="#ffffff">
<p>
<h3 align="center">Результат авторизации</h3>
</p>
<?
if (isset($_POST['loga'])) {
$mdpassw = md5($_POST['passw']);
$loga = $_POST['loga'];
// Проверка логина на плохие смиволы
if (!preg_match("/^\w{3,}$/", $loga)) {
die('Неправильный логин!');
}
$link = mysql_connect("localhost","wladifom","123456789");
if (!$link) {
die('Не удалось соединиться с БД');
}else{
mysql_select_db('service', $link);
$res = mysql_query("SELECT status FROM date WHERE loga='$loga'", $link);
// Есть ли пользователь с таким логином? а с паролем? - AND passw='$passw' - 'Такого пользователя нет!'
if (mysql_num_rows($res) < 1) {
mysql_close($link);
die('Такого пользователя нет!');
}
// Какой статус у пользователя?
if (mysql_result($res, 0) != 1) {
mysql_close($link);
die('Логин не активирован!');
}
// Стартуем сессию и записываем логин в суперглобальный массив $_SESSION
session_start();
$_SESSION['loga'] = $loga;
mysql_close($link);
// Если определена страница с которой мы пришли,
// на нее и переадресуем, либо на главную
if (isset($_SERVER['HTTP_REFERER'])) {
header ("location: ".$_SERVER['HTTP_REFERER']);
}else {
header ("location: index.php");
}
}
}
?>
</td>
</tr>
<!--Подключаем нижний блок сайта-->
<table bgcolor="#CBB392" width="100%" border="0" cellpadding="0" cellspacing="0">
<td align="center">
<?php
include ("blocks/footer.php");
?>
</td></table>
</table>
</td></tr>
</body>
</html>
В моем случае login.php on line 64 - это
header ("location: index.php");То же самое происходит и при выходе с авторизации... т.е выход получается, но ошибки выдает и не переходит по
header ("location: index.php");
Помогите разобраться...
Спустя 2 минуты, 10 секунд (2.03.2012 - 13:18) TranceIT написал(а):
1) Ответ находится в сообщении об ошибке
2) Заголовки должны отправляться перед выводом в браузер. Ответ так же в сообщении.
2) Заголовки должны отправляться перед выводом в браузер. Ответ так же в сообщении.
Спустя 3 минуты, 55 секунд (2.03.2012 - 13:22) Visman написал(а):
$_SESSION['loga'] = $loga;
$_SESSION['passw'] = $passw;
И переменные не понятно откуда взялись ;)
Спустя 18 минут, 8 секунд (2.03.2012 - 13:40) Wladim написал(а):
TranceIT, если бы я знал английский как Вы, то, наверное разобрался бы. А перевёл "Рragma" и вообще ничего не понял, извините.
Visman, переменные взялись из файла nav.php
Visman, переменные взялись из файла nav.php
<?php
session_start();
// Подсоединяем файл соединения с БД
include ("blocks/bd.php");
?>
<style type="text/css">
<!--
.стиль5 {font-family: "Times New Roman", Times, serif; font-weight: bold; }
-->
</style>
<table width="100%" border="0" align="center">
<tr>
<td width='24%' class='nav_t'><div align='center' class='стиль5'><font color="#3300ff">Авторизация:</font></div></td>
<td width='76%' class='nav_t'><div align='center' class='стиль'">
<!--
<form action='login.php' method='post'>
</form>
-->
<?
if (isset($_SESSION['loga'])) {
$auth = "<b>Здравствуйте, ".$_SESSION['loga']." </b> \n";
$auth .= "<a href='logout.php'><b>Выйти</b></a>";
$docum = "";
}else {
$auth = <<< AUTH
<form method="post" action="login.php">
<center><table width='100%' border='0' cellpadding='0' cellspacing='0'>
<tr>
<td align=center width='40%'><font class='form6' color='#000000'>Логин:</font>
<input type='text' name='loga'>
</td>
<td align=center width='40%'><font class='form6' color='#000000'>Пароль:</font>
<input type='text' name='passw'>
</td>
<td colspan=2 align=center width='20%'><input type='submit' name='submit' value='Зайти'>
</td>
</tr></table></center>
</form>
AUTH;
$docum = "";
}
?>
<html>
<head>
</head>
<body>
<? echo $auth; ?>
<? echo $docum; ?>
</body>
</html>
Спустя 5 минут, 42 секунды (2.03.2012 - 13:46) TranceIT написал(а):
Wladim
Перевел в гугле, общий смысл прослеживается четко и самое главное там сказано, как убрать первый варнинг.
Перевел в гугле, общий смысл прослеживается четко и самое главное там сказано, как убрать первый варнинг.
Спустя 15 минут, 6 секунд (2.03.2012 - 14:01) Wladim написал(а):
Спасибо, TranceIT, за переводчик гугл. Буду разбираться...