Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Авторизация с последующем показом логина и т.д.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Авторизация и прочее
Fsingle
Отправлено: 27 Мая, 2012 - 23:53:18
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Май 2012  


Помог: 0 раз(а)




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

CODE (htmlphp):
скопировать код в буфер обмена
  1. [PHP]<?php
  2.    $login = $_POST['login'];
  3.    $password = $_POST['password'];
  4. if (isset($login) && isset($password))
  5. {
  6. include ("bd.php");
  7.    $query = "SELECT * FROM users WHERE login='$login',$db" or die(mysql_error());
  8.    $row=mysql_fetch_array($query);
  9.      if (empty($row['password']))
  10.    {
  11.    exit ("Извините, введённый вами login или пароль неверный.");
  12.    }
  13.    else {
  14.    //если существует, то сверяем пароли
  15.      if($row['password']==$password)
  16.      {$_SESSION['login']=$row['login'];
  17.       $_SESSION['id']=$row['id'];//эти данные очень часто используются, вот их и будет "носить с собой" вошедший пользователь
  18.    echo "Вы успешно вошли на сайт! <a href='index.html'>Главная страница</a>";
  19.    }
  20.    else {
  21.      echo ('Такой логин');
  22.    }
  23.    }
  24.    }
  25.    ?>[/PHP]
 
 Top
Muxa
Отправлено: 28 Мая, 2012 - 00:10:06
Post Id



Частый гость


Покинул форум
Сообщений всего: 247
Дата рег-ции: Март 2012  
Откуда: Россия, Тверь


Помог: 5 раз(а)




PHP:
скопировать код в буфер обмена
  1. $query = mysql_query("SELECT * FROM `users` WHERE `login`='$login'",$db) or die(mysql_error());
  2.  if($row['password']==$password && $row['login']==$login)
  3. {
  4. //ставим сессию
  5. echo "Приветсвую, ".$_SESSION['login'].", вас на нашем сайте";
  6. }

и вы проверяете на пустоту поле password, извлеченное из базы, а вам надо проверять введенные пользователем данные.
P.S. и не защищен ни от чего скрипт Улыбка

(Отредактировано автором: 28 Мая, 2012 - 00:11:22)

 
 Top
OrmaJever Модератор
Отправлено: 28 Мая, 2012 - 00:11:37
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Если не вдаватся в подробности того что авторизация написана не совсем правельно и с большой дырой, то на вид всё должно работать. http://phpfaq[dot]ru/debug


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
GEN_18
Отправлено: 28 Мая, 2012 - 10:54:37
Post Id



Частый гость


Покинул форум
Сообщений всего: 184
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




Fsingle
попробуй так
PHP:
скопировать код в буфер обмена
  1. <?
  2. include('db_include.php');
  3. $_POST['user']=FormatString($_POST['user']);
  4. $_POST['pass']=FormatString($_POST['pass']);
  5. if (isset($_POST['user']) && isset($_POST['pass']))
  6. {
  7.     $login = mysql_real_escape_string($_POST['user']);
  8.     $password = md5($_POST['pass']);
  9.  
  10.     // делаем запрос к БД
  11.     // и ищем юзера с таким логином и паролем
  12.  
  13.     $query = "SELECT *
  14.            FROM `users`
  15.            WHERE `login`='".$login."' AND `password`='".$password."'
  16.            LIMIT 1";
  17.     $sql = mysql_query($query) or die(mysql_error());
  18.  
  19.     // если такой пользователь нашелся
  20.     if (mysql_num_rows($sql) == 1) {
  21.         // то мы ставим об этом метку в сессии (допустим мы будем ставить ID пользователя)
  22.  
  23.         $row = mysql_fetch_array($sql);
  24.         echo "<font color=red><b>Вы вошли как ".$row['login']."</b></font>.";
  25.         $_SESSION['id'] = $row['id'];
  26.         $_SESSION['logged']=true;
  27.         ?>
  28.                 <meta http-equiv=refresh content=2;URL='index.php'>
  29.                 <?
  30.         // не забываем, что для работы с сессионными данными, у нас в каждом скрипте должно присутствовать session_start();
  31.     }
  32.     else {
  33.         echo 'Такой логин с паролем не найдены в базе данных.';
  34.         echo '<a href="index.php"> попробуйте ввести еще раз </a> ';
  35.     }
  36. }else{echo "Вы не ввели логин и/или пароль";echo "<meta http-equiv=refresh content=2;URL=index.php>";}
  37.  
  38. function FormatString($string){
  39.   return $string = addslashes(preg_replace(array('/\s+/','/\.+/','/,+/','/\-+/'), array(' ','.',',','-'),
  40. trim(stripcslashes($string))));
  41.    }
  42. ?>

забыл написать, что в БД, пароль у тебя уже должен быть записан в md5

(Отредактировано автором: 28 Мая, 2012 - 13:23:36)



-----
Еще вечера сегодня было завтра.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB