Нужна помощь с DPO запросом

Тема в разделе "Как сделать...", создана пользователем m1ko, 23 дек 2014.

Статус темы:
Закрыта.
  1. m1ko

    m1ko Создатель

    Регистр.:
    15 авг 2010
    Сообщения:
    42
    Симпатии:
    3
    При переходе на PDO у меня так же возникли вопросы

    Это скрипт авторизации, как его реализовать в PDO, что бы от $uname и $password которые берутся из POST не прокинули никакую инъекцию.
    Так же интересует обработка при добавлении данных из форм.
    Большая просьба, пишите только по делу. Заранее спасибо!

    Код:
    function login($uname,$password){
        $q=mysql_query("SELECT uid,login,password FROM users WHERE login='$uname' AND password='$password';");
        $user=mysql_fetch_row($q);
    
        if(!empty($user)) {
            session_unset();
            $_SESSION['uid']=$user[0];
            $_SESSION['login']=$user[1];
            $_SESSION['password']=$user[2];
            $_SESSION['can']=1;
            return true;
        }
        else {
            return false;
        }
    }
     
  2. Q_BASIC

    Q_BASIC

    Регистр.:
    30 ноя 2013
    Сообщения:
    381
    Симпатии:
    236
    PHP:
    function login($uname,$password){
        global 
    $db;
       
        
    $q $db->prepare('SELECT uid,login,password FROM users WHERE login=:login AND password=:pass');
        
    $data = array(
            
    'login' => $uname,
            
    'pass' => $password
        
    );
        
    $q->execute($data);
       
        
    $q->setFetchMode(PDO::FETCH_ASSOC);
        
    $user $q->fetch();
       
        if(
    $user) {
            
    session_unset();
            
    $_SESSION['uid']=$user['uid'];
            
    $_SESSION['login']=$user['login'];
            
    $_SESSION['password']=$user['password'];
            
    $_SESSION['can']=1;
            return 
    true;
        }
        else {
            return 
    false;
        }
    }
     
    AlgoriVismut и m1ko нравится это.
  3. m1ko

    m1ko Создатель

    Регистр.:
    15 авг 2010
    Сообщения:
    42
    Симпатии:
    3
    Тему можно закрывать, ответ отличный, большое спасибо! Буду учиться по нему)
     
Статус темы:
Закрыта.