@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()) без вынесения его как переменная за скобки, все работает, как надо.
  • Вопрос задан
  • 245 просмотров
Решения вопроса 2
BuriK666
@BuriK666
Компьютерный псих
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// обработка формы
}


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

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

Войти через центр авторизации
Похожие вопросы