ОБСУЖДЕНИЕ

Моделька)

11 сообщений1 просмотровОткрыта
#1
Всем привет, юные программисты) Оптимизируем мой код и даем советы)

PHP
<?php

class model_user extends model
{
    
    /**
     * 
     */
    public function login()
    {
        
        // 
        if (!$_COOKIE['user_data'])
        {
            
            $q = $this->DB
                      ->query("SELECT * FROM `user` WHERE (`name`=?) AND (`pass`=?)", array ($_POST['name'], $_POST['pass']));
                     
            if ($q->rowCount()!=0)
            {
                
                // 
                $user = $q->fetch();
                
                // make hash
                $hash = misc::hash(6);
                // update
                $this->DB
                     ->query("UPDATE `user` SET `hash`=? WHERE (`id`=?)", array ($hash, $user['id']));
                
                // set cookies
                setcookie('user_data', serialize(array ('id' => $user['id'], 'pass' => $user['pass'], 'hash' => $hash)), (time()+(86400*365)), '/');
                
                // 
                return  true;
                
            }
            else
                return false;
        
            }
            else
                return false;
        
    }
    
    /**
     * 
     */
    public function logout()
    {
        
        if ($_COOKIE['user_data'])
        {
            
            setcookie('user_data', '', 0, '/');
            return  true;
            
        }
        else
            return false;
        
    }
    
}


З.Ы для тех кто в танке. Это модель выполняющая вход и выход пользователя на сайте. (ВМС по сути).
#2
Ну, где же вы программисты?)))
#3
нету не кого дома.
А слабо просто тупо проверить на есть нету без function и тд ?
#4
гк будет)
#5
А слабо просто тупо проверить на есть нету без function и тд ?
#6
вот мне еще интересно каким способом мы входим? )) явно же через пост/гет и это так понял в function login() ?
#7
PHP
<?php

class controller_user extends controller
{

    private
    
    /** @var object
     */
        $user;
        
    /**
     * instance
     */
    function __construct()
    {
        
        // get model instance
        parent::__construct('user');
        // 
        $this->user = new user();
    
    }
    
    /**
     * Вход
     */
    public function action_login()
    {
        
        //
        if ($this->user->logged)
        {
        
            header('location: /');
            exit;
        
        }
        
        
        
        
        // 
        if ($_POST['name'] && $_POST['pass'])
        {
            
            if ($this->model->login())
            {
            
                header('location: /');
                exit;
            
            }
            else
            {
                                
            }
        
        }
        
        
        
        
        // представление
        $this->view
             ->render('Вход', 'user/login', array (
             
        ));
        
    }


Ну и само преставление

<form action="/user/login" method="POST">

Имя пользователя:<br/><input name="name"/><br/>
Пароль:<br/><input name="pass"/><br/>

<input type="submit" value="войти"/> или <a href="/user/registration">зарегестрироваться</a>

</form>
#8
3KZO, Чет типа того на
<?php


head('Авторизация');

if ($_POST) {
$nick = html($_POST['nick']);
$password = md5($_POST['password']);

if (empty($nick) || empty($password)) {
echo'Ошибка при авторизации';
} else {
$sql = DB::$dbs->queryFetch("SELECT `user_id` FROM ".USERS." WHERE `nick` = ? && `password` = ?",array($nick, $password));

if ($sql) {
$_SESSION['user_id'] = $sql['user_id'];

if (!empty($_POST['remember'])) {
setcookie("nick", $nick, time()+9999999);
setcookie("password", $password, time()+9999999);
}

header("Location: "index/page");
} else {
echo 'Ошибка при авторизации';
}
}
}


?>
#9
не понял..
#10
ну я тоже тогда.
#11
3KZO, Чет типа того на

вот этого я не понял))

з.ы это мой код, я выложил, чтобы люди мнения высказали свои))