Данные из формы считываются слишком рано
Здраствуйте! Есть простенькая форма с двумя полями для ввода и кнопкой.
<form action="ex1.php" method="$_GET">
<input type="text" name="x" value="">
<input type="text" name="y" value="">
<input type="submit" name="submit" value="Submit">
</form>
И скрипт, который должен работать с этой формой:
<?php
$x = $_GET['x'];
$y = $_GET['y'];
echo $x, '-', $y, '=', $x - $y, '</br>';
echo $x, '*', $y, '=', $x * $y, '</br>';
echo $x, '%', $y, '=', $x % $y, '</br>';
?>
Проблема в том, что данные из формы скрипт пытается считать сразу после загрузки страницы, т.е пользователь ещё не успел ввести данные, а скрипт уже отработал.
Понимаю почему так происходит, но не понимаю, как исправить. Буду благодарен за объяснение.
Ответы (1 шт):
Автор решения: Домрачев Даниил
→ Ссылка
Стоит проверять переменные на существование методом isset().
if(isset($_GET['x']) && isset($_GET['y'])){
$x = $_GET['x'];
$y = $_GET['y'];
echo $x, '-', $y, '=', $x - $y, '</br>';
echo $x, '*', $y, '=', $x * $y, '</br>';
echo $x, '%', $y, '=', $x % $y, '</br>';
}
И еще, в теге form метод передачи запроса указан не верно. Сейчас так <form action="ex1.php" method="$_GET"> а надо так <form action="ex1.php" method="GET">. GET вместо $_GET.
