Вход Регистрация
Файл: tyde/www/application/controllers/Code.php
Строк: 41
<?php

class Code extends CI_controller
{
    public function 
confirm_password ($id 0)
    {
        
$query $this->db->query('SELECT * FROM `codes` WHERE `id` = ?', [(int) $id]);

        if (!
$query->num_rows())
        {
            
show_404();
        }
        
        if (
$this->input->post())
        {
           
            if (empty(
$_POST['password']))
            {
                
$_SESSION['error'] = ['Вы не ввели пароль'];
            }
            
            if (
$query->row_array()['password'] == md5($_POST['password']))
            {
                
setcookie('password'md5($_POST['password']), (time() + 60*60*365*24), '/');
                
header('location: '.site_url($id));
            }
            else
            {
                
$_SESSION['error'] = ['Не верный пароль'];
            }
            
            
header('location: '.site_url($id));
        }
        
        
$this->load->view('header', ['title' => 'Требуется пароль']);
        
$this->load->view('code/confirm_password');
        
$this->load->view('footer');
    }
    
    public function 
view ($id 0)
    {
        
$query $this->db->query('SELECT * FROM `codes` WHERE `id` = ?', [(int) $id]);

        if (!
$query->num_rows())
        {
            
show_404();
        }
        
        
$data $query->row_array();
        
        
        if (
$this->uauth->get('id') != $data['user'])
        {
            if (
                    !empty(
$data['password']) AND 
                    
$this->input->cookie('password') != $data['password']
               )
            {
               
header('location: '.site_url('code/confirm_password/'.$data['id'])); 
            }
        }
        
        
$this->load->view('header', ['title' => 'Просмотр кода']);
        
$this->load->view('code/view'$data);
        
$this->load->view('footer');
    }
    
    

    public function 
del ($id 0)
    {
        if (
$id == OR $this->uauth->get('id') != 1)
        {
            
show_404();
        }

        if (
$this->db->query('DELETE FROM `codes` WHERE `id` = ?', [(int) $id]))
        {
            
$_SESSION['messages'] = ['Удалено'];
        }
        else
        {
            
$_SESSION['messages'] = ['Не получилось удалить'];
        }

        
header('location: /');
    }

    public function 
add ()
    {
        if (
$this->input->post())
        {
            
$error = [];

            if (empty(
$_POST['code']))
                
$error[] = 'Вы не ввели код';

            if (empty(
$_POST['lang']))
                
$error[] = 'Некорректный тип кода';

            if (
mb_strlen($_POST['password']) > 16)
                
$error[] = 'Пароль не может быть длинее 16 символов';

            if (
mb_strlen($_POST['comment']) > 255)
                
$error[] = 'Комментарий не может быть длинее 255 символов';

            if (
mb_strlen($_POST['code']) > 2000000)
                
$error[] = 'Код не может быть длинее 2000000 символов';

            if (empty(
$error))
            {
                
$data = [
                    
'code'     => $_POST['code'],
                    
'time'     => time(),
                    
'user'     => $this->uauth->isAuth() ? $this->uauth->get('id') : 0,
                    
'lang'     => $_POST['lang'],
                    
'comment'  => empty($_POST['comment']) ? NULL xss_clean($_POST['comment']),
                    
'password' => empty($_POST['password']) ? NULL md5($_POST['password'])
                ];

                if (
$this->db->insert('codes'$data))
                {
                    
header('location: '.site_url('/'.$this->db->insert_id()));
                    die();
                }
                else
                {
                    
$_SESSION['messages'] = ['Ошибка базы данных'];
                }
            }
            else
            {
                
$_SESSION['messages'] = $error;
            }
        }

        
header('location: /');
    }
}
Онлайн: 2
Реклама