У меня вылетает сайт при введении слова в форму на PHP
Я новичок в программировании, только начал изучать PHP и столкнулся с проблемой вылетающего сайта. Мол, должен сделать взятие данных из формы html методом get, но при введении данных и нажатии кнопки "отправить", меня перекидывает со страницы сайта на вот эту:
Вот программный код:
<?php
print_r($_GET);
echo $_GET ['name'];
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form action="/" method="get">
<input type="text" name="name" placeholder="Ваше имя">
<input type="submit" value="Отправить">
</form>
</body>
</html>
Я уже пытался поменять местами части html, но результат остался прежним. Убирал / из action и все заработало, но мне кажется это не решение проблемы, пока я не понимаю саму суть происходящего.
Ответы (1 шт):
Атрибут action указывает обработчик, к которому следует обращаться при обработке формы. Подробнее
В вашем случае, у вас форма расположена прямо в файле-обработчике (ваш php-сценарий). Так как у вас в action стоит /, то форма посылает get запрос к корню сайта, что видно в адресной строке на первом скриншоте.
Чтобы такого не происходило, можно
- убрать
/или вообще атрибутaction(т.к. обработчик находится внутри файла с формой, смысла принудительно его указывать нет, потому что при пустом/отсутствующемactionданные отправляются на текущую страницу. Однако если обработчик будет в другом файле - способ не подойдёт) - указать путь к файлу-обработчику (в вашем случае - указать путь к php-файлу относительно корня сайта)