[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ошибки при авторизации
Wladim
Здравствуйте.
В результате авторизации (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 
X:\home\service\www\login.php:18) in X:\home\service\www\login.php on line 64
Файл login.php
<?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) Заголовки должны отправляться перед выводом в браузер. Ответ так же в сообщении.

Спустя 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
<?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, за переводчик гугл. Буду разбираться...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.