Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не работает система Регистрации/Авторизации, от Mal Hack 
V
    Опции темы
zluka
Дата 27.10.2008, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 278
Регистрация: 27.7.2006

Репутация: нет
Всего: 2



Взял за пример авторизации статью от Mal Hack, вот она http://forum.vingrad.ru/faq/topic-158301.html
И что-то она у меня не работает. Т.е ошибок нет. Но постоянно редиректит на http://localhost/malhack.php?task=not_auth, естественно появляется надпись "Логин или пароль неверный.". А в базе запись не создает. В чем ошибка? Код:
Код

<?php
 // Функция получения IP пользователя
function get_ip()
{
    if ($ip = getenv("HTTP_CLIENT_IP"))
    {
     return $ip;
    }

    if ($ip = getenv("HTTP_X_FORWARDED_FOR"))
    {
        if ($ip == '' || $ip == "unknown")
        {
            $ip = getenv("REMOTE_ADDR");
        }

        return $ip;
    }

    if ( $ip = getenv("REMOTE_ADDR") )
    {
     return $ip;
    }
}

 // Вычисляе хэш безопасности
 function myhash($user , $user_agent , $user_ip , $tm)
  {  return md5($user).md5($user_agent).md5($user_ip).md5($tm);  }

 // Получаем текущее время с учетом дробных частей секунды
 function getmicrotime()
  {
   $mt = explode( " ", microtime() );
   return ( (float)$mt[0] + (float)$mt[1] );
  }

 // Редирект с параметром
 function redirect( $par )
  {
   header( "Location: malhack.php?task=" . $par );
   exit;
  }

 // Продление сессии (проверка, что пользователь - авторизован)
 function check()
  {
   // Ищем пользователя с именем, указанным в куках
   $result = mysql_query( "SELECT `*` FROM `auth_members` WHERE `name` = '" . mysql_escape_string( $_COOKIE['name'] ) . "' LIMIT 1" );

   // Еслии пользователя с таким именем нет, делаем редирект
   if( mysql_num_rows( $result ) == 0 )
    {
     setcookie( "time" , "" , time() - 900 , "/" );
     setcookie( "name" , "" , time() - 900 , "/" );

     redirect( "not_auth" );
    }

   // Парсим полученную запись.
   global $user;
   $user = mysql_fetch_object( $result );

   // Количсетво минут для жизни сессии
   $minutes = 15;
   // Ищем, есть ли активная сессия
   $result = mysql_query( "SELECT `*` FROM `auth_sessions` WHERE `member` = " . $user -> id . " AND `hash` = '" . myhash( $user -> name , $_SERVER['HTTP_USER_AGENT'] , get_ip() , $_COOKIE['time'] ) . "' AND `time` > " . ( time() - ( $minutes * 60 ) ) . " LIMIT 1 " );

   // Если нету активной сессии, перекидываем на фору авторизации
   if( mysql_num_rows( $result ) == 0 )
    {
     setcookie( "time" , "" , time() - 900 , "/" );
     setcookie( "name" , "" , time() - 900 , "/" );

     redirect( "not_auth" );
    }

   // Если авторизированный пользователь хочет выйти
   if( isset( $_GET['quit'] ) )
    {
     // Удаляем запись о сессии пользователя
     mysql_query( "DELETE FROM `auth_session` WHERE `id` = " . $user -> id . " AND `hash` = '" . myhash( $user -> name , $_SERVER['HTTP_USER_AGENT'] , get_ip() , $_COOKIE['time'] ) . "'" );

     // чищаем куки и усианавливаем время жизни в прошлом
     setcookie( "time" , "" , time() - 900 , "/" );
     setcookie( "name" , "" , time() - 900 , "/" );

     // Возвращаем значение "Ложь"
     return FALSE;
    }
   // Иначе, т.е. если пользователь не хочет выходить
   else
    {
     // Обновляем время последней активности пользователя на текущее.
     mysql_query( "UPDATE `auth_session` SET `time` = " . time() . " WHERE `member` = " . $user -> id . " AND `hash` = '" . myhash( $user -> name , $_SERVER['HTTP_USER_AGENT'] , get_ip() , $_COOKIE['time'] ) . "'" );

     // Продлеваем время жизни кук
     setcookie( "time" , $_COOKIE['time'] , time() + ( $minutes * 60 ) , "/" );
     setcookie( "name" , $_COOKIE['name'] , time() + ( $minutes * 60 ) , "/" );

     // Возвращаем значение "Истина"
     return TRUE;
    }
  }

 // Функция авторизации
 function auth()
  {
   // Ищем пользователя с именем, указанным в куках
   $result = mysql_query( "SELECT `*` FROM `auth_members` WHERE `name` = '" . mysql_escape_string( $_POST['name'] ) . "' AND `password` = '" . md5( $_POST['pass'] ) . "' LIMIT 1" );
   if (!$result)
    {
        mysql_error($db);
    }
   // Еслии пользователя с таким именем нет, делаем редирект
   if( mysql_num_rows( $result ) == 0 )
    {  redirect( "not_auth" );  }

   // Парсим полученную запись.
   $user = mysql_fetch_object( $result );

   // Получаем текущее время с учетом дробных частей секунды
   $tm = getmicrotime();
   // Вставляем запись в таблицу с сессиями.
   mysql_query( "INSERT INTO `auth_sessions` VALUES( " . $user -> id . " , " . time() . " , '" . myhash( $user -> name , $_SERVER['HTTP_USER_AGENT'] , get_ip() , $tm ) . "' )" );

   // Ставим пользователю куки с его логинов и уникальным временем авторизации. Время жизни кук - 15 минут
   setcookie( "time" , $tm , time() + 900 , "/" );
   setcookie( "name" , $user -> name , time() + 900 , "/" );

   // делам редирект без параметра, т.к. никаких ошибок не было
   redirect( "" );
  }

 // Функция регистрации
 function reg()
  {
   // Ищем пользователя с именем, указанным в форме регистрации
   $result = mysql_query( "SELECT `*` FROM `auth_members` WHERE `name` = '" . mysql_escape_string( $_POST['name'] ) . "' LIMIT 1" );
   if (!$result)
    {
        mysql_error($db);
    }
   // Если пользователь найден, делаем редиркт
   if( mysql_num_rows( $result ) == 1 )
    {  redirect( "exists" );  }

   // Иначе, регистрируем пользователя
   $query_insrt = mysql_query( "INSERT INTO `auth_members` VALUES ( '' , '" . mysql_escape_string( $_POST['name'] ) . "' , '" . md5( $_POST['pass1'] ) . "' )" );
   $_POST['pass'] = $_POST['pass1'];
   if (!$query_insrt)
    {
        mysql_error($db);
    }
   // Делаем как бы автоматическую авторизацию после регисрации.
   auth();
  }

 // ---------------
 // Соединение с MySQL не комментирую, т.к. не в тему статьи

$host = "127.0.0.1";
$port = "3306";
$user = "root";
$pass = "";
$dbnm = "example";


 $h = ( empty( $post ) ) ? $host : $host . ":" . $port;

 $db = mysql_connect( $h , $user , $pass );

 if( !$db )   // Если соединиться не удалось:
  {
   print ("Datebase connection failed.");
   exit();
  }

 if( ! mysql_select_db( $dbnm ) )
  {
   print ("Datebase select failed.");
   exit();
  }
 // ---------------

 // Если нажата кнопка с именем blogin (Авторизация)
 if( $_SERVER['REQUEST_METHOD'] == "POST" && isset( $_POST['blogin'] ) )
  {
   // Если поле логина или пароля пустое - делаем редирект
   if( empty( $_POST['name'] ) || empty( $_POST['pass'] ) )
    {  redirect( "fields" );  }

   // В протовном случае переходим к авторизации
   auth();
  }

 // Если нажата кнопка с именем breg (Регистрация)
 if( $_SERVER['REQUEST_METHOD'] == "POST" && isset( $_POST['breg'] ) )
  {
   // Если поле логина или пароля или его подтверждения - пусты делаем редирект
   if( empty( $_POST['name'] ) || empty( $_POST['pass1'] ) || empty( $_POST['pass2'] ) )
    {  redirect( "fields" );  }

   // Если введенные пароли не совпадают - делаем редирект
   if( md5( $_POST['pass1'] ) != md5( $_POST['pass2'] ) )
    {  redirect( "nepass" );  }

   // Иначе переходим к функции регистрации
   reg();
  }

 // Если у поьзователя стоят куки и функция check() скажет что пользователь залогинен
 if( isset( $_COOKIE['time'] ) && isset( $_COOKIE['name'] ) && check() == TRUE )
  {  print "Welcome.<br><a href='?quit'>Выйти</a>";  }
 // иначе
 else
  {
   // Если была ошибка, выводим соответствующее сообщение
   if( ! empty( $_GET['task'] ) )
    {
     switch( $_GET['task'] )
      {
       case "nepass":   print "Пароли не совпадают";
            break;
       case "not_auth": print "Логин или пароль неверный.";
            break;
       case "fields":   print "Не заполнены все поля";
            break;
       case "exists":   print "Пользователь с таким именем уже существует";
            break;
      }

     print "<br><br>";
    }
   // И показываем форму

?>
Вход: <form action='' method='POST'>
Логин: <input type='text' name='name' maxlength='127' value=''><br>
Пароль: <input type='text' name='pass' maxlength='127' value=''><br>
<input type='Submit' name='blogin' value='Вход'><br>
</form>
Регистрация: <form action='' method='POST'>
Логин: <input type='text' name='name' maxlength='127' value=''><br>
Пароль: <input type='text' name='pass1' maxlength='127' value=''><br>
Повторите пароль: <input type='text' name='pass2' maxlength='127' value=''><br>
<input type='Submit' name='breg' value='Вход'>
</form>
<?php
  }

?>

Единственное я дописал проверки через ф-ю mysql_error(). Но ошибок не выводит.
Может как раз Mal Hack и поможет разобраться в проблеме?smile 

Это сообщение отредактировал(а) zluka - 27.10.2008, 16:10


--------------------
user posted image
PM MAIL   Вверх
unicross
Дата 27.10.2008, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 422
Регистрация: 15.6.2008

Репутация: 21
Всего: 53



Замените все вхождения
Код

SELECT `*` FROM

на
Код

SELECT * FROM

А строку
Код

 $h = ( empty( $post ) ) ? $host : $host . ":" . $port;

на
Код

$h = ( empty( $port ) ) ? $host : $host . ":" . $port;

Функцию hash() вы уже правильно поменяли на myhash().
Если файл называется malhack.php и вы создали таблицы в базе данных, то все должно работать.
PM MAIL WWW   Вверх
zluka
Дата 27.10.2008, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 278
Регистрация: 27.7.2006

Репутация: нет
Всего: 2



unicross все сделал, как Вы говорили - но, как не странно.. не помогло(( Блин уже запарился з кодом. Тут видно какой-то мелкий косяк.. не могу найти.


--------------------
user posted image
PM MAIL   Вверх
unicross
Дата 27.10.2008, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 422
Регистрация: 15.6.2008

Репутация: 21
Всего: 53



zluka, чтобы получить сообщения об ошибках замените
Код

mysql_error($db);

на
Код

    echo mysql_errno() . ": " . mysql_error() . "<BR>";

И в начало скрипта добавьте
Код

error_reporting(E_ALL);

P.S. Ваш код с моими изменениями на моем компе работает...
PM MAIL WWW   Вверх
zluka
Дата 27.10.2008, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 278
Регистрация: 27.7.2006

Репутация: нет
Всего: 2



Хмм.. я заменил конечно.. пока опять ничего. Но заметил, что когда я постарался словить POST данные через такую ф-ю:
Код

echo "<pre>";
   print_r($_POST);
echo "</pre>";

Ввел в форме регистрации данные, нажал на кнопку. И удивился, массив был пуст!
Выводит:
Код

Array
(
)



--------------------
user posted image
PM MAIL   Вверх
unicross
Дата 27.10.2008, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 422
Регистрация: 15.6.2008

Репутация: 21
Всего: 53



Цитата(zluka @  27.10.2008,  21:53 Найти цитируемый пост)
постарался словить POST данные

Куда вставляли фрагмент кода? Точное место...

Вообще, а этот код надеюсь у вас работает? Сохраните в отдельном файле и запустите.
Код

<?php
if (isset($_POST["name"])) {
   echo "Hello, " . $_POST["name"];
}
else {
   echo "Введите ваше имя<BR>\n";
   echo "<FORM method=POST>\n";
   echo "<INPUT type='text' name='name'>\n";
   echo "<INPUT type='submit' value='OK'>\n";
   echo "</FORM>\n";
}
?>


PM MAIL WWW   Вверх
zluka
Дата 27.10.2008, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 278
Регистрация: 27.7.2006

Репутация: нет
Всего: 2



Цитата(unicross @  27.10.2008,  22:16 Найти цитируемый пост)
Вообще, а этот код надеюсь у вас работает? Сохраните в отдельном файле и запустите.

Да, работает.

Цитата(unicross @  27.10.2008,  22:16 Найти цитируемый пост)
Куда вставляли фрагмент кода? Точное место...

Сразу после <?php
Код

<?php
echo "<pre>";
   print_r($_POST);
echo "</pre>";

Кстати, можете прикрепить этот php файл к теме, раз у Вас работает?


--------------------
user posted image
PM MAIL   Вверх
unicross
Дата 27.10.2008, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 422
Регистрация: 15.6.2008

Репутация: 21
Всего: 53



Вот мой код:
Код

<?php
error_reporting(E_ALL);
 // Функция получения IP пользователя
function get_ip()
{
    if ($ip = getenv("HTTP_CLIENT_IP"))
    {
     return $ip;
    }

    if ($ip = getenv("HTTP_X_FORWARDED_FOR"))
    {
        if ($ip == '' || $ip == "unknown")
        {
            $ip = getenv("REMOTE_ADDR");
        }

        return $ip;
    }

    if ( $ip = getenv("REMOTE_ADDR") )
    {
     return $ip;
    }
}

 // Вычисляе хэш безопасности
 function myhash($user , $user_agent , $user_ip , $tm)
  {  return md5($user).md5($user_agent).md5($user_ip).md5($tm);  }

 // Получаем текущее время с учетом дробных частей секунды
 function getmicrotime()
  {
   $mt = explode( " ", microtime() );
   return ( (float)$mt[0] + (float)$mt[1] );
  }

 // Редирект с параметром
 function redirect( $par )
  {
   header( "Location: malhack.php?task=" . $par );
   exit;
  }

 // Продление сессии (проверка, что пользователь - авторизован)
 function check()
  {
   // Ищем пользователя с именем, указанным в куках
   $result = mysql_query( "SELECT * FROM `auth_members` WHERE `name` = '" . mysql_escape_string( $_COOKIE['name'] ) . "' LIMIT 1" );

   // Еслии пользователя с таким именем нет, делаем редирект
   if( mysql_num_rows( $result ) == 0 )
    {
     setcookie( "time" , "" , time() - 900 , "/" );
     setcookie( "name" , "" , time() - 900 , "/" );

     redirect( "not_auth" );
    }

   // Парсим полученную запись.
   global $user;
   $user = mysql_fetch_object( $result );

   // Количсетво минут для жизни сессии
   $minutes = 15;
   // Ищем, есть ли активная сессия
   $result = mysql_query( "SELECT * FROM `auth_sessions` WHERE `member` = " . $user -> id . " AND `hash` = '" . myhash( $user -> name , $_SERVER['HTTP_USER_AGENT'] , get_ip() , $_COOKIE['time'] ) . "' AND `time` > " . ( time() - ( $minutes * 60 ) ) . " LIMIT 1 " );

   // Если нету активной сессии, перекидываем на фору авторизации
   if( mysql_num_rows( $result ) == 0 )
    {
     setcookie( "time" , "" , time() - 900 , "/" );
     setcookie( "name" , "" , time() - 900 , "/" );

     redirect( "not_auth" );
    }

   // Если авторизированный пользователь хочет выйти
   if( isset( $_GET['quit'] ) )
    {
     // Удаляем запись о сессии пользователя
     mysql_query( "DELETE FROM `auth_session` WHERE `id` = " . $user -> id . " AND `hash` = '" . myhash( $user -> name , $_SERVER['HTTP_USER_AGENT'] , get_ip() , $_COOKIE['time'] ) . "'" );

     // чищаем куки и усианавливаем время жизни в прошлом
     setcookie( "time" , "" , time() - 900 , "/" );
     setcookie( "name" , "" , time() - 900 , "/" );

     // Возвращаем значение "Ложь"
     return FALSE;
    }
   // Иначе, т.е. если пользователь не хочет выходить
   else
    {
     // Обновляем время последней активности пользователя на текущее.
     mysql_query( "UPDATE `auth_session` SET `time` = " . time() . " WHERE `member` = " . $user -> id . " AND `hash` = '" . myhash( $user -> name , $_SERVER['HTTP_USER_AGENT'] , get_ip() , $_COOKIE['time'] ) . "'" );

     // Продлеваем время жизни кук
     setcookie( "time" , $_COOKIE['time'] , time() + ( $minutes * 60 ) , "/" );
     setcookie( "name" , $_COOKIE['name'] , time() + ( $minutes * 60 ) , "/" );

     // Возвращаем значение "Истина"
     return TRUE;
    }
  }

 // Функция авторизации
 function auth()
  {
   // Ищем пользователя с именем, указанным в куках
   $result = mysql_query( "SELECT * FROM `auth_members` WHERE `name` = '" . mysql_escape_string( $_POST['name'] ) . "' AND `password` = '" . md5( $_POST['pass'] ) . "' LIMIT 1" );
   if (!$result)
    {
    echo mysql_errno() . ": " . mysql_error() . "<BR>";
    }
   // Еслии пользователя с таким именем нет, делаем редирект
   if( mysql_num_rows( $result ) == 0 )
    {  redirect( "not_auth" );  }

   // Парсим полученную запись.
   $user = mysql_fetch_object( $result );

   // Получаем текущее время с учетом дробных частей секунды
   $tm = getmicrotime();
   // Вставляем запись в таблицу с сессиями.
   mysql_query( "INSERT INTO `auth_sessions` VALUES( " . $user -> id . " , " . time() . " , '" . myhash( $user -> name , $_SERVER['HTTP_USER_AGENT'] , get_ip() , $tm ) . "' )" );

   // Ставим пользователю куки с его логинов и уникальным временем авторизации. Время жизни кук - 15 минут
   setcookie( "time" , $tm , time() + 900 , "/" );
   setcookie( "name" , $user -> name , time() + 900 , "/" );

   // делам редирект без параметра, т.к. никаких ошибок не было
   redirect( "" );
  }

 // Функция регистрации
 function reg()
  {
   // Ищем пользователя с именем, указанным в форме регистрации
   $result = mysql_query( "SELECT * FROM `auth_members` WHERE `name` = '" . mysql_escape_string( $_POST['name'] ) . "' LIMIT 1" );
   if (!$result)
    {
    echo mysql_errno() . ": " . mysql_error() . "<BR>";
    }
   // Если пользователь найден, делаем редиркт
   if( mysql_num_rows( $result ) == 1 )
    {  redirect( "exists" );  }

   // Иначе, регистрируем пользователя
   $query_insrt = mysql_query( "INSERT INTO `auth_members` VALUES ( '' , '" . mysql_escape_string( $_POST['name'] ) . "' , '" . md5( $_POST['pass1'] ) . "' )" );
   $_POST['pass'] = $_POST['pass1'];
   if (!$query_insrt)
    {
    echo mysql_errno() . ": " . mysql_error() . "<BR>";
    }
   // Делаем как бы автоматическую авторизацию после регисрации.
   auth();
  }

 // ---------------
 // Соединение с MySQL не комментирую, т.к. не в тему статьи

$host = "localhost";
$port = "3306";
$user = "root";
$pass = "";
$dbnm = "tests";


 $h = ( empty( $port ) ) ? $host : $host . ":" . $port;

 $db = mysql_connect( $h , $user , $pass );

 if( !$db )   // Если соединиться не удалось:
  {
   print ("Datebase connection failed.");
   exit();
  }

 if( ! mysql_select_db( $dbnm ) )
  {
   print ("Datebase select failed.");
   exit();
  }
 // ---------------

 // Если нажата кнопка с именем blogin (Авторизация)
 if( $_SERVER['REQUEST_METHOD'] == "POST" && isset( $_POST['blogin'] ) )
  {
   // Если поле логина или пароля пустое - делаем редирект
   if( empty( $_POST['name'] ) || empty( $_POST['pass'] ) )
    {  redirect( "fields" );  }

   // В протовном случае переходим к авторизации
   auth();
  }

 // Если нажата кнопка с именем breg (Регистрация)
 if( $_SERVER['REQUEST_METHOD'] == "POST" && isset( $_POST['breg'] ) )
  {
   // Если поле логина или пароля или его подтверждения - пусты делаем редирект
   if( empty( $_POST['name'] ) || empty( $_POST['pass1'] ) || empty( $_POST['pass2'] ) )
    {  redirect( "fields" );  }

   // Если введенные пароли не совпадают - делаем редирект
   if( md5( $_POST['pass1'] ) != md5( $_POST['pass2'] ) )
    {  redirect( "nepass" );  }

   // Иначе переходим к функции регистрации
   reg();
  }

 // Если у поьзователя стоят куки и функция check() скажет что пользователь залогинен
 if( isset( $_COOKIE['time'] ) && isset( $_COOKIE['name'] ) && check() == TRUE )
  {  print "Welcome.<br><a href='?quit'>Выйти</a>";  }
 // иначе
 else
  {
   // Если была ошибка, выводим соответствующее сообщение
   if( ! empty( $_GET['task'] ) )
    {
     switch( $_GET['task'] )
      {
       case "nepass":   print "Пароли не совпадают";
            break;
       case "not_auth": print "Логин или пароль неверный.";
            break;
       case "fields":   print "Не заполнены все поля";
            break;
       case "exists":   print "Пользователь с таким именем уже существует";
            break;
      }

     print "<br><br>";
    }
   // И показываем форму

?>
Вход: <form action='' method='POST'>
Логин: <input type='text' name='name' maxlength='127' value=''><br>
Пароль: <input type='text' name='pass' maxlength='127' value=''><br>
<input type='Submit' name='blogin' value='Вход'><br>
</form>
Регистрация: <form action='' method='POST'>
Логин: <input type='text' name='name' maxlength='127' value=''><br>
Пароль: <input type='text' name='pass1' maxlength='127' value=''><br>
Повторите пароль: <input type='text' name='pass2' maxlength='127' value=''><br>
<input type='Submit' name='breg' value='Вход'>
</form>
<?php
  }

?>


База данных tests

Код

CREATE TABLE `auth_members` (
  `id` smallint(6) NOT NULL auto_increment,
  `name` tinytext NOT NULL,
  `password` tinytext NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
CREATE TABLE `auth_sessions` (
  `member` smallint(6) NOT NULL,
  `time` int(14) NOT NULL,
  `hash` tinytext NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;


Это сообщение отредактировал(а) unicross - 27.10.2008, 22:49
PM MAIL WWW   Вверх
zluka
Дата 27.10.2008, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 278
Регистрация: 27.7.2006

Репутация: нет
Всего: 2



ТА-ДА! smile 
Наконец-то.
А проблема заключалась в ошибке: Incorrect integer value: '' for column 'id' at row 1
Поменял в ф-и reg():
Код

$query_insrt = mysql_query( "INSERT INTO `auth_members` VALUES ( '' , '" . mysql_escape_string( $_POST['name'] ) . "' , '" . md5( $_POST['pass1'] ) . "' )" );

На:
Код

$query_insrt = mysql_query( "INSERT INTO `auth_members`(name, password) VALUES ( '" . mysql_escape_string( $_POST['name'] ) . "' , '" . md5( $_POST['pass1'] ) . "' )" );

Это как-то связано з различными версиями MySQL.


--------------------
user posted image
PM MAIL   Вверх
unicross
Дата 27.10.2008, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 422
Регистрация: 15.6.2008

Репутация: 21
Всего: 53



zluka, и что теперь содержит поле id в базе данных после добавления? Число или NULL?
PM MAIL WWW   Вверх
zluka
Дата 27.10.2008, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 278
Регистрация: 27.7.2006

Репутация: нет
Всего: 2



Число - 1


--------------------
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0599 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.