Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- //Функции + Подключение
- include_once 'functions.php';
- //************************************************************************************ SIGNUP & SIGNIN
- //** "РЕГИСТРАЦИЯ" **
- if(isset($_POST['reg-btn']))
- {
- //Пресваивание с формы в масив $POST
- $email = StringCleaner($_POST['email']);
- $nickname = StringCleaner($_POST['nickname']);
- $password = StringCleaner($_POST['password']);
- $repassword = StringCleaner($_POST['re-password']);
- $ip = $_SERVER["REMOTE_ADDR"];
- try{
- // Проверка заполнены ли поля
- if( (!filled_out($_POST['email'])) or (!filled_out($_POST['nickname'])) or (!filled_out($_POST['password'])) or (!filled_out($_POST['re-password'])))
- { throw new Exception('Вы не заполнили все поля. Пожалуйста повторите попытку.'); }
- // Проверка на допустимость почты
- if(!valid_email($email)){ throw new Exception('Недопустимый адрес электронной почты. Пожалуйста повторите попытку.'); }
- // Если больше символов
- if((strlen($email)) > 50) { throw new Exception('Слишком длинный Email. Повторите попытку пожалуйста. (Max = 50)'); }
- if((strlen($nickname)) > 50){ throw new Exception('Слишком длинное имя. Повторите попытку пожалуйста. (Max = 50)'); }
- if((strlen($password)) > 16){ throw new Exception('Слишком длинный пароль. Повторите попытку пожалуйста. (Max = 16)'); }
- // Проверка при регистрации есть ли уже юзер с таким логином
- $query = $db->query("SELECT * FROM users WHERE email = '$email'" );
- $user_data = $query->fetch();
- if($user_data['email'] == $email || $user_data['nickname'] == $nickname ) // -> DA
- {
- throw new Exception( 'Такое имя или почта уже есть !');
- }
- else // -> NET
- {
- // Проверка на совпадение паролей
- if($password == $repassword )
- {
- // шифровка для сравнения паролем из БД
- $password = md5($password);
- // SQL-request for inserting in users(table)
- $query = $db->prepare("INSERT INTO users(email,nickname,pass) VALUES('$email','$nickname','$password')"); // Clear that staff
- $query->execute();
- // Поиск ID поставленной юзеру в БД для того что бы установить как куку ID
- $query2 = $db->query("SELECT id FROM users WHERE email = '$email'");
- $user_data2 = $query2->fetch();
- $id = $user_data2['id'];
- // Устнановка куков для определения юзера, куки на 30 дней
- setcookie("email",$email,time()+8600*30,"/");
- setcookie("nickname",$nickname,time()+8600*30,"/");
- setcookie("id",$id,time()+8600*30,"/");
- // SQL-request for inserting in Images(table)
- $query = $db->prepare("INSERT INTO images(id_user) VALUES('$id')");
- $query->execute();
- // Log it
- $db->query("INSERT INTO log(log_user, log_ip, log_action) VALUES('$email', '$ip','REGISTRATION')");
- // Confirm add in database
- echo "Вы успешно зарегестрировались! Перейти на <a href=\"index.php\">главную</a>";
- }
- else { throw new Exception( "Пароли не совпадают") ; }
- }
- }
- catch(Exception $e)
- {
- echo $e->getMessage();
- }
- }
- /** КНОПКА "ВОЙТИ" на форме входа **/
- ///Если была нажата кнопка "Войти" с index.php
- if(isset($_POST['en-btn']))
- {
- //Ловим переменные с формы
- $email = StringCleaner($_POST['email']);
- $password = md5(StringCleaner($_POST['pass']));
- $ip = $_SERVER["REMOTE_ADDR"];
- try{
- // Проверка заполнены ли поля
- if( (!filled_out($_POST['email'])) or (!filled_out($_POST['pass'])) ) { throw new Exception('Вы не заполнили все поля. Пожалуйста повторите попытку.'); }
- // Проверка на допустимость почты
- if(!valid_email($email)) { throw new Exception('Недопустимый адрес электронной почты. Пожалуйста повторите попытку.'); }
- // Получаем и сверяем данные логин с БД
- $query = $db->query("SELECT * FROM users WHERE email = '$email'" );
- $user_data = $query->fetch();
- // Check for password and login
- if($user_data['email'] == $email && $user_data['pass'] == $password)
- {
- // Лезем в БД и получаем оттуда ID по login
- $query2 = $db->query("SELECT id,nickname FROM users WHERE email = '$email'");
- $user_data2 = $query2->fetch();
- $id = $user_data2['id'];
- $nickname = $user_data2['nickname'];
- // Устнановка куков для определения юзера, куки на 30 дней
- setcookie("email",$email,time()+8600*30,"/");
- setcookie("nickname",$nickname,time()+8600*30,"/");
- setcookie("id",$id,time()+8600*30,"/");
- $query = $db->prepare("INSERT INTO log(log_user, log_ip, log_action) VALUES('$email', '$ip','ENTERED')");
- $query->execute();
- // Подтверждения для входа
- echo "Вход";
- }
- else { throw new Exception("Неправильный пароль или логин, либо вы еще не зарегестрировались.") ; }
- }
- catch(Exception $e){ echo $e->getMessage(); }
- }
- //*********************************************************************************************** SIGNUP & SIGNIN
- //*********************************************************************************************** RECALL FORM
- if(isset($_POST['recall-btn']))
- {
- $name = StringCleaner($_POST["name"]);
- $email = StringCleaner($_POST["email"]);
- $txt = StringCleaner($_POST["text"]);
- $rate = StringCleaner($_POST["rate"]);
- $ip = $_SERVER['REMOTE_ADDR'];
- try{
- // Проверка заполнены ли поля
- if((!filled_out($_POST['name'])) or (!filled_out($_POST['text'])) )
- { throw new Exception("<script> Alertik('Вы не заполнили все поля. Пожалуйста повторите попытку.', 'D'); </script>"); }
- //Если больше символов
- if((strlen($email)) >= 100){ throw new Exception("<script> Alertik('Слишком длинный Email. Повторите попытку пожалуйста. (Max = 100)', 'D'); </script>"); }
- if((strlen($name)) >= 100){ throw new Exception(" <script> Alertik('Слишком длинное имя. Повторите попытку пожалуйста. (Max = 100)', 'D'); </script>"); }
- if((strlen($txt)) >= 2000){ throw new Exception("<script> Alertik('Слишком длинный отзыв. Повторите попытку пожалуйста. (Max = 2000)', 'D'); </script>"); }
- $query_recalls = $db->query("SELECT ip FROM recalls WHERE ip = '$ip'");
- $kol_vo = $query_recalls->rowCount();
- // Проверка на то что человек 1 раз отправил свой отзыв
- if( $kol_vo <= 0 )
- {
- // Если все хорошо заносим в БД
- $query = $db->prepare("INSERT INTO recalls( rate , ip, user, email, text) VALUES($rate,'$ip','$name', '$email','$txt')");
- $query->execute();
- echo "<script> Alertik('Ваш отзыв успешно отправлен. Абрек Чебурекович доволен вами.', 'S'); </script>";
- }
- else{ echo "<script> Alertik('Вы уже отправляли свой отзыв. На сегодня хватит.','W'); </script>"; }
- }
- catch(Exception $e){ echo $e->getMessage(); }
- }
- //*********************************************************************************************** RECALL FORM
- //************************************************************************************ IMAGE ( UPLOAD and DEL )
- /** КНОПКА "ЗАГРУЗИТЬ" на форме профиля **/
- ///Если была нажата кнопка "Загрузить" с index.php когда вошел
- if(isset($_POST['upload']))
- {
- if($_FILES["uploadfile"]["size"] > 1024*3*1024)
- {
- echo ("Размер файла превышает три мегабайта");
- exit;
- }
- else
- {
- // Каталог, в который мы будем принимать файл:
- $upload_dir = '../avatar/';
- // Получаем расширение загруженного файла
- $extension = strtolower(substr(strrchr($_FILES['uploadfile']['name'], '.'), 1));
- // Генерируем уникальное имя файла с этим расширением
- $filename = DFileHelper::getRandomFileName($upload_dir, $extension);
- // Собираем адрес файла назначения
- $target = $upload_dir . $filename . '.' . $extension;
- // Копируем файл из каталога для временного хранения файлов:
- if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $target))
- {
- $id = $_COOKIE['id'];
- $name = $filename . "." . $extension;
- $type = $_FILES['uploadfile']['type'];
- $size = $_FILES['uploadfile']['size'];
- //Запись обновлена
- $db->query("UPDATE images SET img_name = '$name', type = '$type', size = '$size' WHERE id_user = '$id'");
- header('Location:../profile.php');
- }
- else { echo "<h3>Ошибка! Не удалось загрузить файл на сервер!(Фотка должна быть не больше 3 мб)</h3>"; exit; }
- // Выводим информацию о загруженном файле:
- //echo "<h3>Информация о загруженном на сервер файле: </h3>";
- //echo "<p><b>Оригинальное имя загруженного файла: ".$_FILES['uploadfile']['name']."</b></p>";
- //echo "<p><b>Mime-тип загруженного файла: ".$_FILES['uploadfile']['type']."</b></p>";
- //echo "<p><b>Размер загруженного файла в байтах: ".$_FILES['uploadfile']['size']."</b></p>";
- //echo "<p><b>Временное имя файла: ".$_FILES['uploadfile']['tmp_name']."</b></p>";
- }
- }
- //** КНОПКА "УДАЛИТЬ АВАТАР" на форме профиля **/
- ////Если была нажата кнопка "Удалить аватарку" с index.php когда вошел
- if(isset($_POST['delavatar']))
- {
- $id = StringCleaner($_COOKIE['id']);
- $path = StringCleaner($_POST['path']); //передаеться через input->hidden
- //Удаление файла из папки с аватарками
- $file = "../avatar/" . $path . "";
- unlink($file);
- //Обновляем запись , если удалим не будет выводить картинку в комментариях вообще
- $db->query("UPDATE images SET img_name = '', type = '', size='' WHERE id_user = '$id'");
- header('Location:../profile.php');
- }
- //************************************************************************************ IMAGE ( UPLOAD and DEL )
- //************************************************************************************ SEND COMMENT
- /** КНОПКА "Оставить комментарий" на ARTICLE.PHP **/
- if(isset($_POST['sendcoment']))
- {
- // Ловим данные и очищаем
- $id = StringCleaner($_COOKIE['id']);
- $coment = StringCleaner($_POST['coment']);
- $page = StringCleaner($_POST['page']);
- try{
- if(!filled_out($coment)){ throw new Exception("<script> Alertik('Вы не заполнили поле комментария. Пожалуйста повторите попытку.', 'D'); </script>"); }
- // Вставляем в таблицу коментов
- $query = $db->prepare("INSERT INTO coments(id_u, id_page, text) VALUES('$id', '$page', '$coment')");
- $query->execute();
- echo "<script> Alertik('Комментарий успешно оставлен.', 'S'); </script>";
- }
- catch(Exception $e){ echo $e->getMessage(); }
- }
- //************************************************************************************ SEND COMMENT
- //************************************************************************************ LIKE IT
- //I like it
- if(isset($_POST['btn']) and $_POST['btn'] == "like_it")
- {
- $ip = $_SERVER["REMOTE_ADDR"]; // Ловим IP- человека который смотрел статью
- $page = StringCleaner($_POST['page_id']);
- $queryLikes = $db->query( "SELECT * FROM likes WHERE likes_page = $page AND likes_user = '$ip'");
- $kolvo_Likes = $queryLikes->fetch();
- //echo $kolvo_Likes;
- if($kolvo_Likes <= 0)
- {
- $query = $db->prepare("INSERT INTO likes(likes_user, likes_page) VALUES( '$ip', $page )");
- $query->execute();
- }
- }
- //GEt Back ma LIke
- if(isset($_POST['btn']) and $_POST['btn'] == "getback_like")
- {
- $page = StringCleaner($_POST['page_id']);
- $ip = $_SERVER["REMOTE_ADDR"]; // Ловим IP- человека который смотрел статью
- $queryLikes = $db->query( "DELETE FROM likes WHERE likes_page = $page AND likes_user = '$ip' ");
- }
- //************************************************************************************ LIKE IT
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement