@xdemo

В чем может быть проблема пустая форма заносится в Mysql?

Всем привет! Не судите строго я новичок в этом деле. Проблема заключается в том, что при каждом обновлении страницы данные из формы комментарии хоть даже если она пустая заносятся в базу данных, чего происходить не должно так как форма пуста и не кто не нажимал на кнопку. Подскажите где я косячнул?
Собственно сам код:
<br>
<form name="comment" action="comment.php" method="post">
  <p>
    <label>Имя:</label>
    <input type="text" name="name" />
  </p>
  <p>
    <label>Комментарий:</label>
    <br />
    <textarea name="text_comment" cols="100" rows="6"></textarea>
  </p>
  <p>
    <input type="hidden" name="films_id" value="<?=$_GET['id']?>" />
    <input type="submit" name="submit" value="Отправить" />
  </p>
</form>
<?php
  /* Принимаем данные из формы */
  $name = $_POST["name"];
  $films_id = $_POST["films_id"];
  $text_comment = $_POST["text_comment"];
  $name = htmlspecialchars($name);// Преобразуем спецсимволы в HTML-сущности
  $text_comment = htmlspecialchars($text_comment);// Преобразуем спецсимволы в HTML-сущности
  mysql_query("INSERT INTO `comments` (`name`, `films_id`, `text_comment`) VALUES ('$name', '$films_id', '$text_comment')");// Добавляем комментарий в таблицу

?>
<?php
  $films_id = $_GET['id'];// Уникальный идентификатор страницы (статьи или поста)
  $result_set = mysql_query("SELECT * FROM `comments` WHERE `films_id`='$films_id'"); //Вытаскиваем все комментарии для данной страницы
  //Далее выводим комментарии

?>
<? while ($row=mysql_fetch_array($result_set)): ?>
<div class="comment" id="comment_2312423">
	<div class="user">
		<a href="#" target="_blank">
			<img class="img-rounded img-responsive center-block" src="/images/no_ava.png" width="90" alt="">
		</a>
	</div>
	<div class="body">
		<div class="pull-right"></div>
	<a href="#" target="_blank"><b><?= $row['name'] ?></b></a>
		| Дата добавления: <?= $row['date'] ?> |
		<br>
		<p><?= $row['text_comment'] ?></p>
		<br>
		<small><a href="#" class="btn-comment-new" data-parent-id="2312423">Ответить</a></small>
	</div>
</div>
<? endwhile ?>
  • Вопрос задан
  • 199 просмотров
Решения вопроса 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
Подскажите где я косячнул?
Не проверяете была ли реально отправлена форма. Сделать это можно так: isset($_POST['submit']). Внутри проверки уже пишите в базу.

P.S. В следующий раз вопрос с таким дурацким заголовком буду просто удалять без раздумий.
Ответ написан
Palehin
@Palehin
Frontend
<?php
if(isset($_POST['submit']))
{
  /* Принимаем данные из формы */
  $name = $_POST["name"];
  $films_id = $_POST["films_id"];
  $text_comment = $_POST["text_comment"];
  $name = htmlspecialchars($name);// Преобразуем спецсимволы в HTML-сущности
  $text_comment = htmlspecialchars($text_comment);// Преобразуем спецсимволы в HTML-сущности
  mysql_query("INSERT INTO `comments` (`name`, `films_id`, `text_comment`) VALUES ('$name', '$films_id', '$text_comment')");// Добавляем комментарий в таблицу
}
?>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы