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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> php+mysql Регистрация пользователей, Скрипт авторизации и регистрации пользов 
:(
    Опции темы
Well
Дата 23.11.2005, 01:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я начинаю только учиться php smile
немного чего уже понял, есть желание написать скрипт авторизации и регистрации пользователей!
Только что то сам смысл написания скрипта немного не понятен!
Если у кого есть что то в исходниках
И в готовом коде буду только благодарен! smile

PM MAIL   Вверх
Mal Hack
Дата 23.11.2005, 01:35 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

Репутация: 122
Всего: 261



PM ICQ   Вверх
Well
Дата 23.11.2005, 01:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



пасибо почитаю!!! smile а что то по проше есть? не вкурсе?

Это сообщение отредактировал(а) Well - 23.11.2005, 01:42
PM MAIL   Вверх
R.M.
Дата 23.11.2005, 02:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Анархист
****


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

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



Well

Принцип такой:

Регистрация
Делаеш файл с формой и файл обработчик
Форма - соответствующие поля
Обработчик делаеш INSERT в базу полей

пример
Код
$ins = mysql_query("INSERT INTO users VALUES ('id','".$_POST['login']."','".$_POST['password']."')");


Авторизация
Через escape или просто сравнивай вводимое поле и поле из базы

Да и вобще если ты тока начал попробуй с чегонить полегче


--------------------
Помнишь как бодрили дискотеки прошлого века? Теперь стул, компьютер и нету человека.

Nokia LifeStyle - Всё для смартфонов Nokia 
PM MAIL WWW ICQ   Вверх
sugee
Дата 23.11.2005, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 1
Всего: 4



После того как юзер авторизировался он должен ходить по сайту под своим логином беспрепятственно. Чтобы при переходе на другие страницы передавать туда логин-пароль их надо сохранить в сессии.
для этого в самом начале скрипта пиши
Код

session_start();

Дальше проверяешь ввел ли он логин-пароль и есть ли они в базе данных
Код

if(isset($_POST['login'])&&isset($_POST['password'])||isset($_SESSION['login'])) {

  if(isset($_POST['login'])&&isset($_POST['password']))
   { $login=$_POST['login'];
     $password=$_POST['password'];
     $_SESSION['login']=$_POST['login']; 


mysql_connect('', '', '');
mysql_select_db('');
$q1=mysql_query("select `log` from `passwords` where `log`='$login'");
$q2=mysql_query("select `passwd` from `passwords` where `passwd`='$password'");
 if(mysql_num_rows($q1)==1&&mysql_num_rows($q2)==1) {
$_SESSION['login']=$_POST['login'];
//...
//собственно страница
//...

   }
 } 

Это я описал авторизацию, с самой регистрацией то есть с занесением новой пары логин-пароль в базу данных все более понятно, но если есть проблемы - пиши.



PM MAIL   Вверх
Well
Дата 23.11.2005, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вот что выдает мне страница!!!

При использование во этого скрипта!!!qwe.php что то не могу догнать

Warning: Cannot add header information - headers already sent by (output started at C:\Server_web\www\inc\top.php:20) in C:\Server_web\www\mod\mod4.php on line 34


а вот сама и 34 строка! header( "Location: index.php?mod=mod1" . $par );

Это сообщение отредактировал(а) Well - 23.11.2005, 21:14
PM MAIL   Вверх
Well
  Дата 23.11.2005, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Well @ 23.11.2005, 22:10)
Вот что выдает мне страница!!!

При использование во этого скрипта!!!qwe.php  что то не могу догнать

Warning: Cannot add header information - headers already sent by (output started at C:\Server_web\www\inc\top.php:20) in C:\Server_web\www\mod\mod4.php on line 34





а вот сама и 34 строка!  header( "Location: index.php?mod=mod1" . $par );


ВСе разобрался сам! smile
PM MAIL   Вверх
R.M.
Дата 24.11.2005, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Анархист
****


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

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



Well

Обрати внимание, перед функцией session_start(); не должно быть никаких выводов на экран, желательно вообще сразу после <? ставить


--------------------
Помнишь как бодрили дискотеки прошлого века? Теперь стул, компьютер и нету человека.

Nokia LifeStyle - Всё для смартфонов Nokia 
PM MAIL WWW ICQ   Вверх
Well
Дата 24.11.2005, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



спасибо учту! smile
PM MAIL   Вверх
AntonioBanderaz
Дата 24.11.2005, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


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

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



А если пользователей много - получишь перехлёст сессии...
Сначала надо ставить session_name(mirotime());


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
Guest
Дата 24.11.2005, 17:24 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(AntonioBanderaz @ 24.11.2005, 13:36)
А если пользователей много - получишь перехлёст сессии...

Можно про это поподробнее..... smile
  Вверх
AntonioBanderaz
Дата 24.11.2005, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


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

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



Здесь был уже такой топик, поиск...


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
patt
Дата 24.11.2005, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 9.11.2004
Где: Николаев

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



Что то не находит.....
PM MAIL ICQ Skype GTalk   Вверх
Well
Дата 24.11.2005, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



У меня вопрос возник!!!!
Когда я залогинелся я делаю Редирект на страницу http://++++++++/index.php?mod=mod90
На которой пользователь заполняет форму и посылает их в mysql
а мне он выдает такой http://++++++++/index.php?mod=mod90fields и соответственно загружаеться другая страница что енто может быть и как от этого избавиться! smile
PM MAIL   Вверх
Простодушный user
Дата 25.11.2005, 01:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мужчина-ураган
*


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

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



2Well
код в студию!!! smile

Это сообщение отредактировал(а) простогдушный user - 25.11.2005, 01:53
PM MAIL   Вверх
Well
Дата 25.11.2005, 02:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

<?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 hash( $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: index.php?mod=mod90" . $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` = '" . hash( $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` = '" . hash( $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` = '" . hash( $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( mysql_num_rows( $result ) == 0 )
    {  redirect( "mod94" );  }

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

   // Получаем текущее время с учетом дробных частей секунды
   $tm = getmicrotime();
   // Вставляем запись в таблицу с сессиями.
   mysql_query( "INSERT INTO `auth_sessions` VALUES( " . $user -> id . " , " . time() . " , '" . hash( $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( mysql_num_rows( $result ) == 1 )
    {  redirect( "mod93" );  }

   // Иначе, регистрируем пользователя
   mysql_query( "INSERT INTO `auth_members` VALUES ( '' , '" . mysql_escape_string( $_POST['name'] ) . "' , '" . md5( $_POST['pass1'] ) . "' )" );
   $_POST['pass'] = $_POST['pass1'];

   // Делаем как бы автоматическую авторизацию после регисрации.
   auth();
  }

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

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

 $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( "mod91" );  }

   // В протовном случае переходим к авторизации
   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( "mod92" );  }

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

 // Если у поьзователя стоят куки и функция check() скажет что пользователь залогинен
 if( isset( $_COOKIE['time'] ) && isset( $_COOKIE['name'] ) && check() == TRUE )
  {  print "Welcome $name.<br><a href='?quit'>Выйти</a>";  }
 // иначе
 else
  {
   // Если была ошибка, выводим соответствующее сообщение
   if( ! empty( $_GET['mod'] ) )
    {
     switch( $_GET['mod'] )
      {
       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='password' 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='password' name='pass1' maxlength='127' value=''><br>
Повторите пароль: <input type='password' name='pass2' maxlength='127' value=''><br>
<input type='Submit' name='breg' value='Регнуться'>
</form>
<?php
  }

?>

PM MAIL   Вверх
Mal Hack
Дата 25.11.2005, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

Репутация: 122
Всего: 261



Цитата(Well @ 24.11.2005, 23:49)
а мне он выдает такой http://++++++++/index.php?mod=mod90fields и соответственно загружаеться другая страница что енто может быть и как от этого избавиться

Вот этого быть не может точно. Где-то что-то ты поменял, причем очень сильно.
ЗЫ: А зачем было переделывать коды ошибок?

А, ну дык правильно. У тебя идет редирект вот тут:
Код

redirect( "fields" );

Что делает редирект?
Код

header( "Location: index.php?mod=mod90" . $par );

ВОт и получается, что он тебя редиректит на mod90fields
PM ICQ   Вверх
Well
Дата 25.11.2005, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



для ЧЕГО Я ПЕРЕДЕЛАЛ КОД ОШИБКИ ДЛЯ того что бы когда кто то из "левых" пытаеться полазить !!! записывались его все "фичи"!!
Добавлено @ 23:42
Mal Hack у меня к те вопрос! скорее всего глупый вопрос!
Ну вот скрипт работает! а как теперь сделать что бы модули не выводились пока не зарегистрируешься!!!!
под модулями я имею ввиду "mod90","mod1","mod2" ну и так далее!
какоцйй код нужно написать чтобы он проверял авторизован ли пользователь или нет!!! Мне бы хотя бы принцып !!
Всего ентого! smile
PM MAIL   Вверх
Mal Hack
Дата 25.11.2005, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

Репутация: 122
Всего: 261



Цитата(Well @ 25.11.2005, 23:34)
для ЧЕГО Я ПЕРЕДЕЛАЛ КОД ОШИБКИ ДЛЯ того что бы когда кто то из "левых" пытаеться полазить !!! записывались его все "фичи"!!

смысла нет.
PM ICQ   Вверх
Well
Дата 25.11.2005, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



я туда другие страницы повесил!!!!
PM MAIL   Вверх
korisarimi
Дата 16.10.2006, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Прочитал весь топ и так не нашел ответа на то как исправить все таки ошибки:

Цитата

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in z:\home\test1.ru\www\qwe.php on line 133

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in z:\home\test1.ru\www\qwe.php on line 107

Warning: Cannot modify header information - headers already sent by (output started at z:\home\test1.ru\www\qwe.php:2) in z:\home\test1.ru\www\qwe.php on line 35


И я не пойму, как сделать работоспособной функцию header(), если уже определены параметры заголовков?

Mal Hack, убедительная просьба переделай свой скрипт в факе, дабы новичкам вроде меня было не та трудно.

Это сообщение отредактировал(а) korisarimi - 16.10.2006, 12:34
PM MAIL   Вверх
SFY
Дата 3.8.2007, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



korisarimi
+1

Точно те же ошибки.
Скрипт нерабочий.
PM MAIL   Вверх
Severyanin
Дата 7.8.2007, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
**


Профиль
Группа: Участник
Сообщений: 554
Регистрация: 31.7.2007
Где: Россия, Омск

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



А каким образом можно определить время жизни сессии?


--------------------
"Звонким вереском скроются наши следы, и не вспомнят о них. Кто поверит нам, рыцарям павшей звезды из отвергнутых книг? Пусть в узоре времен ни стихов. ни имен, но напомнит забывшим их полуночный крик." Тэм Гринхилл
"Ужели суслик твоего коварства нагадит в плов доверья моего?". Л.Филатов 
PM MAIL WWW ICQ   Вверх
MoLeX
Дата 7.8.2007, 13:38 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



session.gc_maxlifetime=1440 -  Промежуток времени (в секундах), по истечении которого данные сеанса считаются недействительными и уничтожаются. Отсчет начинается с момента последнего обращения пользователя в текущем сеансе (ц)
 


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Severyanin
Дата 8.8.2007, 06:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
**


Профиль
Группа: Участник
Сообщений: 554
Регистрация: 31.7.2007
Где: Россия, Омск

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



Mal Hack, ссылку кидали не мне, но меня очень выручили smile . Спасибо


--------------------
"Звонким вереском скроются наши следы, и не вспомнят о них. Кто поверит нам, рыцарям павшей звезды из отвергнутых книг? Пусть в узоре времен ни стихов. ни имен, но напомнит забывшим их полуночный крик." Тэм Гринхилл
"Ужели суслик твоего коварства нагадит в плов доверья моего?". Л.Филатов 
PM MAIL WWW ICQ   Вверх
Mal Hack
Дата 8.8.2007, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

Репутация: 122
Всего: 261



SFY
korisarimi, а слабо самим вывести mysql_error() и исправить  ошибку?
PM ICQ   Вверх
Fally
Дата 9.8.2007, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 3
Всего: 4



SFY
korisarimi, найдите такую строку:

Код

$result = mysql_query( "SELECT `*` FROM `auth_members` WHERE `name` = '" . mysql_escape_string( $_POST['name'] ) . "' AND `password` = '" . md5( $_POST['pass'] ."'" );

и удалите вокруг символа * обратные кавычки (те, что располагаются на клавише "Ё"), возможно не только в этом примере.. это первое что я увидел... т.е. результат исправления у вас будет такой:
Код

$result = mysql_query( "SELECT * FROM `auth_members` WHERE `name` = '" . mysql_escape_string( $_POST['name'] ) . "' AND `password` = '" . md5( $_POST['pass']."'" );

Не вздумайте убрать обратные кавычки у имени таблицы и имён полей... в принципе плохо не будет, но если вдруг у вас какое-либо поле или таблица имеют имя идентичное одному из ключевых слов языка SQL то будет плохо ;)
Вот это:
Код

Warning: Cannot modify header information - headers already sent by (output started at z:\home\test1.ru\www\qwe.php:2) in z:\home\test1.ru\www\qwe.php on line 35

Выводиться если вы пытаетесь стартовать сессию, поставить куки, послать хедер уже после того, как что-то вывели, в принципе это может быть какой-нибудь E_NOTICE из-за неопределённой переменной, т.ч. ищите.
а вообще очень рекомендую вам ребят сходить сюда и всё прочесть во всём разобраться, т.к. там написано много очень главного для новичков.


И ещё.. самое гнлавное.. если пишет supplied argument for mysql_num_rows (а также mysql_fetch_* или mysql_num_*), то берите, и выводите запрос на экран, т.е. как в предыдущем случае вот так:
Код

print("SELECT `*` FROM `auth_members` WHERE `name` = '" . mysql_escape_string( $_POST['name'] ) . "' AND `password` = '" . md5( $_POST['pass'] ."'" );

Ищите возможную ошибку, если не нашли, то открываете phpMyAdmin (к примеру) и выполняете через него данный запрос.. смотрите, что он вам пишет. Или же как сказал Mal Hack есть функция mysql_error()

Это сообщение отредактировал(а) Fally - 9.8.2007, 16:07


--------------------
Прежде чем задать вопрос на форуме воспользуйтесь поиском.
user posted image
user posted image
PM MAIL   Вверх
reich
Дата 9.8.2007, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

Репутация: -1
Всего: -6



PM MAIL ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

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

Важно:

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

Внимание:

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

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

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


 




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


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

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