Файл: 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 == 0 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: /');
}
}