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

Форум PHP

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

 

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

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

тема: Проверьте правильность авторизации
 
 автор: kail_braslovski   (02.02.2007 в 15:11)   письмо автору
 
 

Проверьте мою авторизацию, пожалуйста

<? if ($HTTP_POST_VARS['act']=="login"){
    
# Входим на сайт
    
$l=$HTTP_POST_VARS['login'];
    
$p=$HTTP_POST_VARS['psw'];
    if ((empty(
$l)) or empty($p)) {
        
$error=1;  #ошибка если пустой логин или пароль
    
} else {
        include_once(
"../dbgayirk.php"); # файл подключения к БД
        
$z_a=mysql_query("select id,login,psw from users where ((login=$l) and (psw=$p));");
        if (
mysql_num_rows($z_a)==1){
            
#Вошли на сайт
            
$m_a=mysql_fetch_array($z_a);
            
session_register('uid');
            
$_SESSION['uid']=$m_a['id'];
        } else {
            
$error=2;
        }
    }
    
}

?>

   
 
 автор: bronenos   (02.02.2007 в 15:48)   письмо автору
 
   для: kail_braslovski   (02.02.2007 в 15:11)
 

Я бы предложил так...
Не экранирую в запросе слэши, так как по-моему они передаются их формы экранированными... если нет - поправьте

<? session_start();
   if (
$_POST['act']=="login"){ 
    
## Входим на сайт 
    
$l=$_POST['login']; 
    
$p=$_POST['psw']; 
    if (empty(
$l) or empty($p)) { 
        
$error=1;  ##ошибка если пустой логин или пароль 
    
} else { 
        include_once(
"../dbgayirk.php"); ## файл подключения к БД 
        
$z_a=mysql_query("select id,login,psw from users where login='$l' and psw='$p'"); 
        if (
mysql_num_rows($z_a)>0){ 
            
##Вошли на сайт 
            
$m_a=mysql_fetch_array($z_a); 
            
$_SESSION['uid']=$m_a['id']; 
        } else { 
            
$error=2
        } 
    } 
     


?>

   
 
 автор: kail_braslovski   (02.02.2007 в 15:57)   письмо автору
 
   для: bronenos   (02.02.2007 в 15:48)
 

А в чем разница между Http_post_vars и _post и как экранировать слэши?

   
 
 автор: kail_braslovski   (02.02.2007 в 15:59)   письмо автору
 
   для: bronenos   (02.02.2007 в 15:48)
 

А возможно ли такое что на мой сайт зайдет пользователь у которого у ссесии уже есть переменая uid с каким то значение, тогда сайт поймет что пользователь вашел и ему будет доступна информация не о нем, как от этого обезопасится?

   
 
 автор: bronenos   (02.02.2007 в 16:03)   письмо автору
 
   для: kail_braslovski   (02.02.2007 в 15:59)
 

1. $HTTP_POST_VARS и $_POST эт вещи одни и те же, но $_POST он удобнее.... в т.ч. он глобальный.
Экранировать $with = addslashes ($without);
2. не понял.... ну и что, что юзер зашел?
if (isset($_SESSION['uid'])) и че там дельше

   
 
 автор: kail_braslovski   (02.02.2007 в 16:10)   письмо автору
 
   для: bronenos   (02.02.2007 в 16:03)
 

2. Если у пользователя зашедшего на сайт уже в сессии есть такая переменная...
А цель экранирования слэшей?

   
 
 автор: bronenos   (02.02.2007 в 16:14)   письмо автору
 
   для: kail_braslovski   (02.02.2007 в 16:10)
 

я передам:
я 'пользователь'
и запрос превратится в
....where login='я'пользователь''..........
или
я "пользователь"
mysql_query ("....login='я "пользователь"'");

я не понял... ну и что, если есть? значит он уже авторизован

   
 
 автор: malish   (02.02.2007 в 16:27)   письмо автору
 
   для: bronenos   (02.02.2007 в 16:14)
 

я бы еще предложил при проверке не проверять что кол-во столбцов = 1 а просто вытаскивать из базы запись например where login = your_login и проверять соответствует ли введенный пароль данному логину

   
Rambler's Top100
вверх

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