Задать вопрос
@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()) без вынесения его как переменная за скобки, все работает, как надо.
  • Вопрос задан
  • 282 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 2
BuriK666
@BuriK666
Компьютерный псих
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// обработка формы
}


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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽