Intereting Posts
Кэширование массива PHP Zend \ Mvc \ Router \ Http \ Метод и дочерние маршруты Получить срок действия доменного имени через PHP PHP: «использовать» внутри определения класса Извлечь листовые узлы многомерного массива в PHP Лучший подход к декодированию сигнатуры шифрования Youtube с использованием PHP или JS Интервалы перекрытия и количество перекрытий Отправить электронное письмо нескольким получателям на основе выбранной опции в php? Работа с eacute и другими специальными символами с использованием Oracle, PHP и Oci8 Сортировка результатов запроса по вложенной ассоциации в cakephp 3 Неверный вывод PHP date () на сервере Wamp Как суммировать новую и последнюю вставленную запись с тем же идентификатором и вставить результат в новую запись Отправить письмо с библиотекой электронной почты CodeIgnitor APC демонстрирует 100% фрагментацию Как вставить французские символы в таблицу mySQL DB?

Обновление или открытие страницы вставляет пустые данные в мою базу данных! PHP, From

У меня есть форма с несколькими вводами. Однако, когда я просто загружаю страницу, в базу данных добавляется пустой элемент. Даже когда я впервые вхожу на сайт, удаляет файлы cookie и все, он по-прежнему добавляет пустые данные в db. Почему?

<body> <hr></hr> <div style=" margin-left:auto; margin-right:auto; width:600px; " > <form method="post" action="admin.php" name="main" id="main"> Post to: <select name="wheretopost" onchange="testValue(this);" name="select" id="select"> <option value="blog">Blog</option> <option name='links' value="links">Links</option> <option value="apparel">Apparel</option> <option value="goods">Goods</option> </select> <div class="productKind" style="padding:10px;"> Mens<input type="radio" name="productKind" id="productKind" value="Mens"> Womens<input type="radio" name="productKind" id="productKind" value="Womens"> Kids<input type="radio" name="productKind" id="productKind" value="Kids"> </div> <div class="goodsKind" style="padding:10px;"> Stickers<input type="radio" name="goodsKind" id="goodsKind" value="Stickers"> Incense<input type="radio" name="goodsKind" id="goodsKind" value="Incense"> Patches<input type="radio" name="goodsKind" id="goodsKind" value="Patches"> </div> <br/> Subject:<br/> <input type="text" name="title" style="width:100%;" /> <br/> <br/> TextArea:<br/> <textarea name="txtarea" style="width:100%;" rows="30"> </textarea> <center> <input type="submit" style="width:300px;" /> </center> </form> </div> <?php $type = $_POST["wheretopost"]; $title = $_POST["title"]; $body = $_POST["txtarea"]; $date = date("F j, Y"); ?> <? $sql = "INSERT INTO `yoyo`.`posts` (`id`, `type`, `title`, `body`, `date`) VALUES (NULL, '$type', '$title', '$body', '$date');"; mysql_query($sql); ?> </body> </html> 

обратите внимание, что страница, на которую он указывает, является ее собственностью. (Может ли это быть проблема?)

Перед тем, как вставить что-то, убедитесь, что запрос отправлен:

 if ($_SERVER['REQUEST_METHOD'] == 'POST') { $type = $_POST["wheretopost"]; $title = $_POST["title"]; $body = $_POST["txtarea"]; $date = date("F j, Y"); $sql = "INSERT INTO `yoyo`.`posts` (`id`, `type`, `title`, `body`, `date`) VALUES (NULL, '$type', '$title', '$body', '$date');"; mysql_query($sql); } 

я надеюсь, что это решение вашей проблемы

 <?php if(isset($_POST['submit'])) { // write you php code for insert here }else{ ?> // all your html form contents <?php } ?> 

это оно…

Каждый раз, когда вы загружаете страницу, вы выполняете следующий скрипт:

 <?php $type = $_POST["wheretopost"]; $title = $_POST["title"]; $body = $_POST["txtarea"]; $date = date("F j, Y"); ?> <? $sql = "INSERT INTO `yoyo`.`posts` (`id`, `type`, `title`, `body`, `date`) VALUES (NULL, '$type', '$title', '$body', '$date');"; mysql_query($sql); ?> 

Даже если вы ничего не публикуете, вы получаете пустые результаты из массива $ _POST и поэтому добавляете в базу данных пустые записи.

возможно, потому, что ваш php-код просто вызван в конце вашего .php?

 <?php $type = $_POST["wheretopost"]; ... 

просто возьмите этот php-код и оберните его между условием IF , например:

 if (isset($_POST)) { .. code } 

более того, вы можете написать конкретное условие IF, проверяя только ввод перед продолжением, например ( поместите его внутри вашей формы ): <input type="hidden" name="postit" value="1" />

 if (isset($_POST) && isset($_POST["postit"]) && $_POST["postit"]==1) { .. code } 

Просто используйте if (isset (…

 <?php if(isset($_POST["wheretopost"]){ $type = $_POST["wheretopost"]; $title = $_POST["title"]; $body = $_POST["txtarea"]; $date = date("F j, Y"); $sql = "INSERT INTO `yoyo`.`posts` (`id`, `type`, `title`, `body`, `date`) VALUES (NULL, '$type', '$title', '$body', '$date');"; mysql_query($sql); } ?> 

Этот метод работает, поскольку я помещаю все в одно условие:

 if (!$conn) { die('Could not connect: ' . mysql_error()); $sql = "INSERT INTO emp_info (user_nam,f_fnam,l_nam,ref_id,web,comp,str,city,coun) VALUES ('$myvar','$myvar1','$myvar2','$myvar3','$myvar4','$myvar5','$myvar6','$myvar7','$myvar8')"; //echo $sql; //echo $html; mysqli_close($conn); } ?>