Файл: app/shop/edit.php
Строк: 31
<?php
if (!$user->isAuth()) {
redirect('/');
exit;
}
$id = abs(intval($_GET['id']));
$shop = $db->prepare('SELECT * FROM `shop` WHERE `id` = ? and `user` = ?');
$shop -> execute([$id,$user->get()->user_id]);
$shop = $shop -> fetch(PDO :: FETCH_ASSOC);
if(!isset($shop['id'])){
header('Location: /');
exit;
}
if(isset($_POST['name'])){
$name = Clean::str(trim($_POST['name']));
$result = Clean::str(trim($_POST['url_result']));
$success = Clean::str(trim($_POST['url_success']));
$error = Clean::str(trim($_POST['url_error']));
$page = Clean::str(trim($_POST['url_tpl']));
$test = Clean::str(trim($_POST['test']));
$hash = Clean::str(trim($_POST['hash']));
$hash2 = Clean::str(trim($_POST['hash2']));
$method = Clean::int($_POST['method']);
$autoout = Clean::str(trim($_POST['autoout']));
$resultMethod = Clean::str($_POST['resultMethod']);
$successMethod = Clean::str($_POST['successMethod']);
$errorMethod = Clean::str($_POST['errorMethod']);
if($method != 1 and $method != 2){
redirect('/shop/edit?id='.$shop['id']);
exit;
}
if(empty($name)){
Notif :: error('Введите название кассы','/shop/edit?id='.$shop['id']);
exit;
}
if(mb_strlen($name) > 25 or mb_strlen($name) < 4){
Notif :: error('Название не может быть короче 4 символов и длинее 25 символов','/shop/edit?id='.$shop['id']);
exit;
}
if($method != 1 and $method != 2){
Notif :: error('Выберите тип комиссии','/shop/edit?id='.$shop['id']);
exit;
}
if(empty($result)){
Notif :: error('Введите URL оповещения','/shop/edit?id='.$shop['id']);
exit;
}
if($resultMethod != 'EMAIL'){
if(!get_headers($result, 1)){
Notif :: error('URL оповещения кассы не доступен проверьте правильность введеной ссылки','/shop/edit?id='.$shop['id']);
exit;
}
} else
{
if(!preg_match('/[0-9a-z_-]+@[0-9a-z_-^.]+.[a-z]{2,6}/i' , $result)){
Notif :: error('Введите валидный E-Mail в поле "URL оповещения"','/shop/edit?id='.$shop['id']);
exit;
}
}
if(empty($success)){
Notif :: error('Введите URL возврата в случае успеха ','/shop/edit?id='.$shop['id']);
exit;
}
if(!get_headers($success, 1)){
Notif :: error('URL возврата в случае успеха кассы не доступен проверьте правильность введеной ссылки','/shop/edit?id='.$shop['id']);
exit;
}
if(empty($error)){
Notif :: error('Введите URL возврата в случае ошибки площадки','/shop/edit?id='.$shop['id']);
exit;
}
if(!get_headers($error, 1)){
Notif :: error('URL возврата в случае ошибки кассы не доступен проверьте правильность введеной ссылки','/shop/edit?id='.$shop['id']);
exit;
}
if(empty($hash)){
Notif :: error('Введите публичный ключ кассы','/shop/edit?id='.$shop['id']);
exit;
}
if(empty($hash2)){
Notif :: error('Введите секретный ключ кассы','/shop/edit?id='.$shop['id']);
exit;
}
$edit = $db->prepare('UPDATE `shop` SET `name` = ?,
`success` = ?,
`test` = ?,
`result` = ?,
`resultMethod` = ?,
`successMethod` = ?,
`errorMethod` = ?,
`error` = ?,
`hash` = ?,
`hash2` = ?,
`method` = ?
WHERE `id` = ?
');
$edit -> execute([$name,
$success,
$test,
$result,
$resultMethod,
$successMethod,
$errorMethod,
$error,
$hash,
$hash2,
$method,
$shop['id']]);
Notif :: message('Касса успешно отредактирована','/shop');
exit;
}
echo $template->render('shop.edit', ['shop' => $shop]);