PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 3
Andry Отправлено: 20 Июля, 2018 - 11:27:57 • Тема: Форма добавления комментариев • Форум: Вопросы новичков

Ответов: 5
Просмотров: 283
Немного переделал, получилось вот так.
PHP:
скопировать код в буфер обмена
  1. function check_length($value = "", $min, $max) {
  2.     $result = (mb_strlen($value) < $min || mb_strlen($value) > $max);
  3.     return !$result;
  4. }
  5.  
  6. if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  7.        
  8.         if ( isset( $_POST['id'] ) && !empty( $_POST['id'] ) ):
  9.        
  10.                 $nameErr=null;
  11.                 $name=trim($_POST["name"]);
  12.                 $name=strip_tags($name);
  13.                 $name=htmlspecialchars($name,ENT_QUOTES);      
  14.                 $name=stripslashes($name);
  15.                 if(strlen($name)=="0"):
  16.                         $nameErr.="Заполните поле 'Ваше имя'<br>";
  17.                 endif;
  18.                
  19.                 $textErr=null;
  20.                 $text=trim($_POST["text"]);
  21.                 $text=strip_tags($text);
  22.                 $text=htmlspecialchars($text,ENT_QUOTES);
  23.                 $text=stripslashes($text);
  24.                 if(strlen($text)=="0"):
  25.                         $textErr.="Заполните поле 'Текст Сообщения'<br>";
  26.                 endif;
  27.                
  28.                 $mail=null;
  29.                 $mail=trim($_POST["mail"]);
  30.                 $mail=strip_tags($mail);
  31.                 $mail=htmlspecialchars($mail,ENT_QUOTES);
  32.                 $mail=stripslashes($mail);
  33.                 if(!filter_var($mail, FILTER_VALIDATE_EMAIL)):
  34.                         $mailErr.="Неверное значение<br>";
  35.                 endif;
  36.                
  37.                 $id_page = $_GET['id'];
  38.  
  39.         if(!empty($name) == check_length($name, 2, 25) && !empty($text) == check_length($text, 2, 1000) && !empty($mail) != $mailErr) {        
  40.                 $query = $db->prepare("INSERT INTO comment_form SET name=:name, text=:text, mail=:mail, id_page=:id_page");
  41.                 $params = ['name'=>$name,'text'=>$text,'mail'=>$mail, 'id_page'=>$id_page] ;
  42.                 $query->execute($params);
  43.                
  44.                 header('Location: '.$_SESSION['PHP_SELF']);
  45.                 exit();
  46.                 } else {
  47.                 $allErr.="Введенные данные некорректные<br>";  
  48.                 }      
  49.         endif;
  50. }
  51.         $query = $db->prepare("SELECT * FROM comment_form");
  52.         $query->execute();
  53.         $comments = $query->fetchAll();
  54.  

Не получается выполнить
PHP:
скопировать код в буфер обмена
  1. header('Location: '.$_SESSION['PHP_SELF']); exit();

выдает ошибку, но даже с ошибкой записи идут в бд.
С концовкой вообще не знаю что
- работает
- не работает
думал ещё передавать значение через

но так тоже не присылало значений.
Подскажите как мне обойтись без $_GET['id'], чую всё из-за него)
Andry Отправлено: 18 Июля, 2018 - 08:53:52 • Тема: Форма добавления комментариев • Форум: Вопросы новичков

Ответов: 5
Просмотров: 283
Цитата:
1. Где не можете сделать привязку БД, скрипт?

CODE (html):
скопировать код в буфер обмена
  1. <input type='hidden' name='id' value="<?=$id_page;?>\">

передает id страницы (статьи), не могу понять как составить правильно запрос чтобы мне выводило комментарии только те которые относятся к данной статье. Мне же щас выводит все статьи.
Цитата:
И зачем вы тут используете exit(0)? и как в вашем понимании он должен работать?

если убрать exit(0) то каждый раз при обновлении страницы идёт запись в бд.
Andry Отправлено: 16 Июля, 2018 - 21:47:01 • Тема: Форма добавления комментариев • Форум: Вопросы новичков

Ответов: 5
Просмотров: 283
Не могу сообразить как реализовать привязку id статьи с id комментария, подскажите пожалуйста что я не так сделал и как мне исправить положение)

PHP:
скопировать код в буфер обмена
  1.  
  2. $db = new PDO('mysql:host=localhost;dbname=monorailsbase', 'root', '');
  3. $db->exec("SET NAMES UTF8");
  4.  
  5. if(count($_POST) > 0){
  6.  $name = trim($_POST['name']);
  7.  $text = trim($_POST['text']);
  8.  $mail = trim($_POST['mail']);
  9.  $id_page = $_GET['id'];
  10.  
  11.  $text = htmlspecialchars($text);
  12.  $name = htmlspecialchars($name);
  13.  $mail = htmlspecialchars($mail);
  14.  
  15.  if($name != '' && $text != '' && $mail != '') {
  16.   $query = $db->prepare("INSERT INTO comment_form SET name=:name, text=:text, mail=:mail, id_page=:id_page");
  17.  
  18.   $params = ['name'=>$name,'text'=>$text,'mail'=>$mail, 'id_page'=>$id_page] ;
  19.   $query->execute($params);
  20.   exit(0);
  21.  }
  22. }
  23.  $id_page=$_POST['id_page'];
  24.  $id_page = "%$id_page%";
  25.  $query = $db->prepare("SELECT * FROM comment_form WHERE id_page LIKE ?");
  26.  $query->execute(array($id_page));
  27.  $comments = $query->fetchAll();
  28.  


CODE (html):
скопировать код в буфер обмена
  1.  
  2. <form method="post" action="/articles/article.php?id=<?php echo $_GET['id'];?>" class="comment-form">
  3. <h3>Leave A Message</h3>
  4. <div class="row">
  5. <div class="form-group col-md-6">
  6. <input type="text" name="name" placeholder="Your Name*" class="form-control" value="<?php echo $name;?>">
  7. </div>
  8. <div class="form-group col-md-6">
  9. <input type="text" name="mail" placeholder="Email Addr" class="form-control" value="<?php echo $mail;?>">
  10. </div>
  11. <div class="form-group col-md-12">
  12. <textarea name="text" placeholder="Your Comment*" rows="8" class="form-control" value="<?php echo $text;?>"></textarea>
  13. </div>
  14. <input type='hidden' name='id' value="<?=$id_page;?>\">
  15. <input type="submit" value="Submit Comment" name="Submit Comment" title="Submit Comment"/>
  16. </div>
  17. </form>
  18.  

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB