Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Unknown: Your script possibly relies on a session side-effect which existed until
 
 автор: Spyder   (17.03.2006 в 23:47)   письмо автору
 
 

Помогите.
Код для авторизации пользователя.
А пароль не проверяет и выдает ошибку
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
вот код

<?php
session_start 
();
?>
<html>
<head>
<title></title>
</head>
<body>
<?php
include ("config.php");

// Формируем и выполняем SQL-запрос для посетителя с
    // именем $_POST['name']
    
$query "SELECT password FROM users WHERE name='".$_POST['name']."'";
    
$nme mysql_query($query);
    if(!
$nme)
    {
      echo 
mysql_error();
      echo 
"Ошибка выполнения запроса";
      exit();
    }
 
// Если запрос вернул результат - производим дальнейшую обработку
    
if(mysql_num_rows($nme) > 0)
    {
       
md5($_POST['passw']);
       
// Получаем пароль
       
$password mysql_result($nme0);

       
// Сравниваем пароль из базы данных и введённый посетителем
       
if ($_POST['password'] == $passw)
       {
         
// Идентификация прошла успешно - осуществляем
         // "вход" посетителя. Для того, чтобы в течении текущей
         // сесси посетитель не вводил своё имя пароль повторно -
         // передаём их через сессию
         
if(session_start())
         {
           
$_SESSION['user'] = $_POST['name'];
           
$_SESSION['password'] = $_POST['password'];
           
// Осуществляем автоматический переход на
           // страницу index.php чтобы убедится, что
           // посетитель "вошёл"
           
echo "<HTML><HEAD>
                 <META HTTP-EQUIV='Refresh' CONTENT='10; URL=edit.php'>
                 </HEAD><body>"
;
         }
       }
       else
       {
         echo 
"Ошибка идентификации: неправильный пароль";
         exit();
       }
    }
    
// Если в результате запроса не получено ни одной
    // строки - посетитель с таким именем не зарегистрирован
    
else
    {
      echo 
"Ошибка идентификации: посетитель не зарегистрирован";
      exit();
    }
?>
</body>
</html>

код формы

<html>
<head>
<title></title>
</head>
<body>
<table align=center border="1">
<tr><td>
<form action="enter.php" method=post>
<align=left>Логин:<input type="text" name="name">
<align=right>Пароль:<input type="password" name="passw">
<input type="submit" value="Войти"><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font size="1"><a href="register_form.php">Регистрация</a> </font>
</tr></td>
<table>
</form>
</body>
</html>

помогите плиз!!!

   
 
 автор: JIEXA   (18.03.2006 в 10:18)   письмо автору
 
   для: Spyder   (17.03.2006 в 23:47)
 

Зачем вы 2 раза стартуете сессию?
Замените код:

<?
       
if ($_POST['password'] == $passw
       { 
         
// Идентификация прошла успешно - осуществляем 
         // "вход" посетителя. Для того, чтобы в течении текущей 
         // сесси посетитель не вводил своё имя пароль повторно - 
         // передаём их через сессию 
         
if(session_start()) 
         { 
           
$_SESSION['user'] = $_POST['name']; 
           
$_SESSION['password'] = $_POST['password']; 
           
// Осуществляем автоматический переход на 
           // страницу index.php чтобы убедится, что 
           // посетитель "вошёл" 
           
echo "<HTML><HEAD> 
                 <META HTTP-EQUIV='Refresh' CONTENT='10; URL=edit.php'> 
                 </HEAD><body>"

         } 
       }
?>


на код:

<?
       
if ($_POST['password'] == $passw
       { 
         
// Идентификация прошла успешно - осуществляем 
         // "вход" посетителя. Для того, чтобы в течении текущей 
         // сесси посетитель не вводил своё имя пароль повторно - 
         // передаём их через сессию 
         
$_SESSION['user'] = $_POST['name']; 
         
$_SESSION['password'] = $_POST['password']; 
         
// Осуществляем автоматический переход на 
         // страницу index.php чтобы убедится, что 
         // посетитель "вошёл" 
         
echo "<HTML><HEAD> 
                    <META HTTP-EQUIV='Refresh' CONTENT='10; URL=edit.php'> 
                    </HEAD><body>"
;  
       }
?>

   
 
 автор: Spyder   (18.03.2006 в 19:07)   письмо автору
 
   для: JIEXA   (18.03.2006 в 10:18)
 

я переделал.
Но у меня почему то пароль все равно не сравнивает с паролем из базы

   
 
 автор: kasmanaft   (18.03.2006 в 19:11)   письмо автору
 
   для: Spyder   (18.03.2006 в 19:07)
 

нужно хэш пароля присвоить какой-нибудь переменной.... а потом уже сравнивать :)

// Если запрос вернул результат - производим дальнейшую обработку 
    if(mysql_num_rows($nme) > 0) 
    { 
       $perem = md5($_POST['passw']); 
       // Получаем пароль
       $password = mysql_result($nme, 0); 

       // Сравниваем пароль из базы данных и введённый посетителем 
       if ($perem == $passw) 
       {

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования