Задать вопрос
@PorsheCaren

Почему запрос формы срабатывает без нажатия Submit?

Подскажите, как правильно прописать команду отправки формы, чтобы действие выполнялось только при нажатии кнопки без автоматической проверки сразу?
В таком виде я так понимаю он сразу видит, что в полях пусто и выдает ошибки, как исправить?
Notice: Undefined index: name2 in C:\Apache24\htdocs\index.php on line 26
Notice: Undefined index: mess2 in C:\Apache24\htdocs\index.php on line 27

<?php
	include("connection.php");
?>

<div class="main">

	<form action="index.php" method="post">
	Write your name<br>
	<input type="text" name="name2"><br>
	Message<br>
	<input type="text" name="mess2"><br>
	<input type="submit" value="send it">
	</form>
</div>

<?php

$name2 = $_POST["name2"];
$mess2 = $_POST["mess2"];

$check = $connSQL->query("INSERT INTO messages (user, text) VALUES ('$name2', '$mess2')");
?>


И почему, если в переменную запихнуть функцию, и только ее положить в цикл, то она бесконечно выполняется и выдает первый результат бесконечно?
<?php
		
			$sqlSel = "SELECT id, user, text FROM messages";
			$result = $connSQL->query($sqlSel);

			if ($result->num_rows > 0) {
                                     $res = $result->fetch_assoc()
				while($res) {
					echo $res["user"] . "<br>" . $res["text"] . "<br><br>";
				}
			}
			else {
				echo "no results";
			};
			
			$connSQL->close();
		?>


Но при while($res = $result->fetch_assoc()) без вынесения его как переменная за скобки, все работает, как надо.
  • Вопрос задан
  • 266 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 2
BuriK666
@BuriK666
Компьютерный псих
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// обработка формы
}


$res = $result->fetch_assoc()
Вы запихиваете не функцию в переменную, а возвращаемое значение функции.
Делайте while($res = $result->fetch_assoc())
Ответ написан
@McBernar
Потому что вы пытаетесь присвоить переменной $name2 значение, которого еще не существует — $_POST['name2'] еще не получен. Проверяйте через isset или через тернарник, тогда не будут появляется предупреждения.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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