Advertisement
Guest User

Untitled

a guest
May 21st, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.69 KB | None | 0 0
  1. <?php
  2.  
  3. //Функции + Подключение
  4. include_once 'functions.php';
  5.  
  6. //************************************************************************************ SIGNUP & SIGNIN
  7.  
  8. //** "РЕГИСТРАЦИЯ" **
  9. if(isset($_POST['reg-btn']))
  10. {
  11. //Пресваивание с формы в масив $POST
  12. $email = StringCleaner($_POST['email']);
  13. $nickname = StringCleaner($_POST['nickname']);
  14. $password = StringCleaner($_POST['password']);
  15. $repassword = StringCleaner($_POST['re-password']);
  16. $ip = $_SERVER["REMOTE_ADDR"];
  17.  
  18.  
  19. try{
  20.  
  21. // Проверка заполнены ли поля
  22. if( (!filled_out($_POST['email'])) or (!filled_out($_POST['nickname'])) or (!filled_out($_POST['password'])) or (!filled_out($_POST['re-password'])))
  23. { throw new Exception('Вы не заполнили все поля. Пожалуйста повторите попытку.'); }
  24.  
  25. // Проверка на допустимость почты
  26. if(!valid_email($email)){ throw new Exception('Недопустимый адрес электронной почты. Пожалуйста повторите попытку.'); }
  27.  
  28. // Если больше символов
  29. if((strlen($email)) > 50) { throw new Exception('Слишком длинный Email. Повторите попытку пожалуйста. (Max = 50)'); }
  30. if((strlen($nickname)) > 50){ throw new Exception('Слишком длинное имя. Повторите попытку пожалуйста. (Max = 50)'); }
  31. if((strlen($password)) > 16){ throw new Exception('Слишком длинный пароль. Повторите попытку пожалуйста. (Max = 16)'); }
  32.  
  33. // Проверка при регистрации есть ли уже юзер с таким логином
  34. $query = $db->query("SELECT * FROM users WHERE email = '$email'" );
  35. $user_data = $query->fetch();
  36.  
  37. if($user_data['email'] == $email || $user_data['nickname'] == $nickname ) // -> DA
  38. {
  39. throw new Exception( 'Такое имя или почта уже есть !');
  40. }
  41.  
  42. else // -> NET
  43. {
  44. // Проверка на совпадение паролей
  45. if($password == $repassword )
  46. {
  47. // шифровка для сравнения паролем из БД
  48. $password = md5($password);
  49.  
  50. // SQL-request for inserting in users(table)
  51. $query = $db->prepare("INSERT INTO users(email,nickname,pass) VALUES('$email','$nickname','$password')"); // Clear that staff
  52. $query->execute();
  53.  
  54. // Поиск ID поставленной юзеру в БД для того что бы установить как куку ID
  55. $query2 = $db->query("SELECT id FROM users WHERE email = '$email'");
  56. $user_data2 = $query2->fetch();
  57. $id = $user_data2['id'];
  58.  
  59. // Устнановка куков для определения юзера, куки на 30 дней
  60. setcookie("email",$email,time()+8600*30,"/");
  61. setcookie("nickname",$nickname,time()+8600*30,"/");
  62. setcookie("id",$id,time()+8600*30,"/");
  63.  
  64. // SQL-request for inserting in Images(table)
  65. $query = $db->prepare("INSERT INTO images(id_user) VALUES('$id')");
  66. $query->execute();
  67.  
  68. // Log it
  69. $db->query("INSERT INTO log(log_user, log_ip, log_action) VALUES('$email', '$ip','REGISTRATION')");
  70.  
  71. // Confirm add in database
  72. echo "Вы успешно зарегестрировались! Перейти на <a href=\"index.php\">главную</a>";
  73. }
  74.  
  75. else { throw new Exception( "Пароли не совпадают") ; }
  76. }
  77.  
  78. }
  79.  
  80. catch(Exception $e)
  81. {
  82. echo $e->getMessage();
  83. }
  84. }
  85.  
  86.  
  87.  
  88.  
  89.  
  90. /** КНОПКА "ВОЙТИ" на форме входа **/
  91. ///Если была нажата кнопка "Войти" с index.php
  92. if(isset($_POST['en-btn']))
  93. {
  94. //Ловим переменные с формы
  95. $email = StringCleaner($_POST['email']);
  96. $password = md5(StringCleaner($_POST['pass']));
  97. $ip = $_SERVER["REMOTE_ADDR"];
  98.  
  99. try{
  100. // Проверка заполнены ли поля
  101. if( (!filled_out($_POST['email'])) or (!filled_out($_POST['pass'])) ) { throw new Exception('Вы не заполнили все поля. Пожалуйста повторите попытку.'); }
  102.  
  103. // Проверка на допустимость почты
  104. if(!valid_email($email)) { throw new Exception('Недопустимый адрес электронной почты. Пожалуйста повторите попытку.'); }
  105.  
  106. // Получаем и сверяем данные логин с БД
  107. $query = $db->query("SELECT * FROM users WHERE email = '$email'" );
  108. $user_data = $query->fetch();
  109.  
  110. // Check for password and login
  111. if($user_data['email'] == $email && $user_data['pass'] == $password)
  112. {
  113. // Лезем в БД и получаем оттуда ID по login
  114. $query2 = $db->query("SELECT id,nickname FROM users WHERE email = '$email'");
  115. $user_data2 = $query2->fetch();
  116. $id = $user_data2['id'];
  117. $nickname = $user_data2['nickname'];
  118.  
  119. // Устнановка куков для определения юзера, куки на 30 дней
  120. setcookie("email",$email,time()+8600*30,"/");
  121. setcookie("nickname",$nickname,time()+8600*30,"/");
  122. setcookie("id",$id,time()+8600*30,"/");
  123.  
  124. $query = $db->prepare("INSERT INTO log(log_user, log_ip, log_action) VALUES('$email', '$ip','ENTERED')");
  125. $query->execute();
  126.  
  127. // Подтверждения для входа
  128. echo "Вход";
  129. }
  130.  
  131. else { throw new Exception("Неправильный пароль или логин, либо вы еще не зарегестрировались.") ; }
  132. }
  133.  
  134. catch(Exception $e){ echo $e->getMessage(); }
  135.  
  136. }
  137.  
  138. //*********************************************************************************************** SIGNUP & SIGNIN
  139.  
  140.  
  141. //*********************************************************************************************** RECALL FORM
  142. if(isset($_POST['recall-btn']))
  143. {
  144. $name = StringCleaner($_POST["name"]);
  145. $email = StringCleaner($_POST["email"]);
  146. $txt = StringCleaner($_POST["text"]);
  147. $rate = StringCleaner($_POST["rate"]);
  148. $ip = $_SERVER['REMOTE_ADDR'];
  149.  
  150.  
  151. try{
  152. // Проверка заполнены ли поля
  153. if((!filled_out($_POST['name'])) or (!filled_out($_POST['text'])) )
  154. { throw new Exception("<script> Alertik('Вы не заполнили все поля. Пожалуйста повторите попытку.', 'D'); </script>"); }
  155.  
  156. //Если больше символов
  157. if((strlen($email)) >= 100){ throw new Exception("<script> Alertik('Слишком длинный Email. Повторите попытку пожалуйста. (Max = 100)', 'D'); </script>"); }
  158. if((strlen($name)) >= 100){ throw new Exception(" <script> Alertik('Слишком длинное имя. Повторите попытку пожалуйста. (Max = 100)', 'D'); </script>"); }
  159. if((strlen($txt)) >= 2000){ throw new Exception("<script> Alertik('Слишком длинный отзыв. Повторите попытку пожалуйста. (Max = 2000)', 'D'); </script>"); }
  160.  
  161.  
  162.  
  163. $query_recalls = $db->query("SELECT ip FROM recalls WHERE ip = '$ip'");
  164. $kol_vo = $query_recalls->rowCount();
  165.  
  166. // Проверка на то что человек 1 раз отправил свой отзыв
  167. if( $kol_vo <= 0 )
  168. {
  169. // Если все хорошо заносим в БД
  170. $query = $db->prepare("INSERT INTO recalls( rate , ip, user, email, text) VALUES($rate,'$ip','$name', '$email','$txt')");
  171. $query->execute();
  172. echo "<script> Alertik('Ваш отзыв успешно отправлен. Абрек Чебурекович доволен вами.', 'S'); </script>";
  173. }
  174.  
  175. else{ echo "<script> Alertik('Вы уже отправляли свой отзыв. На сегодня хватит.','W'); </script>"; }
  176.  
  177. }
  178.  
  179. catch(Exception $e){ echo $e->getMessage(); }
  180.  
  181. }
  182. //*********************************************************************************************** RECALL FORM
  183.  
  184.  
  185. //************************************************************************************ IMAGE ( UPLOAD and DEL )
  186.  
  187. /** КНОПКА "ЗАГРУЗИТЬ" на форме профиля **/
  188. ///Если была нажата кнопка "Загрузить" с index.php когда вошел
  189. if(isset($_POST['upload']))
  190. {
  191. if($_FILES["uploadfile"]["size"] > 1024*3*1024)
  192. {
  193. echo ("Размер файла превышает три мегабайта");
  194. exit;
  195. }
  196.  
  197. else
  198. {
  199. // Каталог, в который мы будем принимать файл:
  200. $upload_dir = '../avatar/';
  201.  
  202. // Получаем расширение загруженного файла
  203. $extension = strtolower(substr(strrchr($_FILES['uploadfile']['name'], '.'), 1));
  204.  
  205. // Генерируем уникальное имя файла с этим расширением
  206. $filename = DFileHelper::getRandomFileName($upload_dir, $extension);
  207.  
  208. // Собираем адрес файла назначения
  209. $target = $upload_dir . $filename . '.' . $extension;
  210.  
  211. // Копируем файл из каталога для временного хранения файлов:
  212. if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $target))
  213. {
  214. $id = $_COOKIE['id'];
  215. $name = $filename . "." . $extension;
  216. $type = $_FILES['uploadfile']['type'];
  217. $size = $_FILES['uploadfile']['size'];
  218.  
  219.  
  220.  
  221. //Запись обновлена
  222. $db->query("UPDATE images SET img_name = '$name', type = '$type', size = '$size' WHERE id_user = '$id'");
  223. header('Location:../profile.php');
  224. }
  225.  
  226.  
  227.  
  228. else { echo "<h3>Ошибка! Не удалось загрузить файл на сервер!(Фотка должна быть не больше 3 мб)</h3>"; exit; }
  229.  
  230. // Выводим информацию о загруженном файле:
  231. //echo "<h3>Информация о загруженном на сервер файле: </h3>";
  232. //echo "<p><b>Оригинальное имя загруженного файла: ".$_FILES['uploadfile']['name']."</b></p>";
  233. //echo "<p><b>Mime-тип загруженного файла: ".$_FILES['uploadfile']['type']."</b></p>";
  234. //echo "<p><b>Размер загруженного файла в байтах: ".$_FILES['uploadfile']['size']."</b></p>";
  235. //echo "<p><b>Временное имя файла: ".$_FILES['uploadfile']['tmp_name']."</b></p>";
  236. }
  237. }
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246. //** КНОПКА "УДАЛИТЬ АВАТАР" на форме профиля **/
  247. ////Если была нажата кнопка "Удалить аватарку" с index.php когда вошел
  248. if(isset($_POST['delavatar']))
  249. {
  250. $id = StringCleaner($_COOKIE['id']);
  251. $path = StringCleaner($_POST['path']); //передаеться через input->hidden
  252.  
  253. //Удаление файла из папки с аватарками
  254. $file = "../avatar/" . $path . "";
  255. unlink($file);
  256.  
  257. //Обновляем запись , если удалим не будет выводить картинку в комментариях вообще
  258. $db->query("UPDATE images SET img_name = '', type = '', size='' WHERE id_user = '$id'");
  259. header('Location:../profile.php');
  260.  
  261. }
  262. //************************************************************************************ IMAGE ( UPLOAD and DEL )
  263.  
  264.  
  265.  
  266. //************************************************************************************ SEND COMMENT
  267.  
  268. /** КНОПКА "Оставить комментарий" на ARTICLE.PHP **/
  269. if(isset($_POST['sendcoment']))
  270. {
  271.  
  272. // Ловим данные и очищаем
  273. $id = StringCleaner($_COOKIE['id']);
  274. $coment = StringCleaner($_POST['coment']);
  275. $page = StringCleaner($_POST['page']);
  276.  
  277. try{
  278. if(!filled_out($coment)){ throw new Exception("<script> Alertik('Вы не заполнили поле комментария. Пожалуйста повторите попытку.', 'D'); </script>"); }
  279.  
  280. // Вставляем в таблицу коментов
  281. $query = $db->prepare("INSERT INTO coments(id_u, id_page, text) VALUES('$id', '$page', '$coment')");
  282. $query->execute();
  283. echo "<script> Alertik('Комментарий успешно оставлен.', 'S'); </script>";
  284. }
  285.  
  286. catch(Exception $e){ echo $e->getMessage(); }
  287. }
  288. //************************************************************************************ SEND COMMENT
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295. //************************************************************************************ LIKE IT
  296.  
  297. //I like it
  298. if(isset($_POST['btn']) and $_POST['btn'] == "like_it")
  299. {
  300.  
  301. $ip = $_SERVER["REMOTE_ADDR"]; // Ловим IP- человека который смотрел статью
  302. $page = StringCleaner($_POST['page_id']);
  303.  
  304. $queryLikes = $db->query( "SELECT * FROM likes WHERE likes_page = $page AND likes_user = '$ip'");
  305. $kolvo_Likes = $queryLikes->fetch();
  306. //echo $kolvo_Likes;
  307.  
  308. if($kolvo_Likes <= 0)
  309. {
  310. $query = $db->prepare("INSERT INTO likes(likes_user, likes_page) VALUES( '$ip', $page )");
  311. $query->execute();
  312. }
  313.  
  314. }
  315.  
  316.  
  317. //GEt Back ma LIke
  318. if(isset($_POST['btn']) and $_POST['btn'] == "getback_like")
  319. {
  320. $page = StringCleaner($_POST['page_id']);
  321. $ip = $_SERVER["REMOTE_ADDR"]; // Ловим IP- человека который смотрел статью
  322.  
  323. $queryLikes = $db->query( "DELETE FROM likes WHERE likes_page = $page AND likes_user = '$ip' ");
  324.  
  325. }
  326.  
  327. //************************************************************************************ LIKE IT
  328. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement