HTML в этой форме загружается в браузере, но когда я заполняю форму и отправляю php не загружается, отображается только пустая страница.
Я попытался разделить файлы на HTML и PHP-файл, но это не сработало.
<!DOCTYPE html>
<head><title>Calculator</title></head>
<body><form action="calculator.php" method="POST">
<p>
<label for="firstnumber">First Number</label>
<input type="text" name="firstnumber" id="firstnumber" />
</p>
<p>
<label for="second number">Second Number:</label>
<input type="text" name="secondnumber" id="secondnumber" />
</p>
<p>
<input type="radio" name="Operation" value="Add" id="addinput" /> <label for="addinput">Add</label>
<input type="radio" name="Operation" value="Sub" id="subinput" /> <label for="subinput">Sub</label>
<input type="radio" name="Operation" value="Mult" id="multinput" /> <label for="multinput">Mult</label>
<input type="radio" name="Operation" value="Div" id="divinput" /> <label for="divinput">Div</label>
</p>
<p>
<input type="submit" value="=" />
<input type="reset" />
</p>
</form><?php
$Operation = $_POST['Operation'];
$x = $_POST["firstnumber"];
$y = $_POST["secondnumber"];
if($Operation == "Add"){
echo ($x + $y);
}
if($Operation == "Sub"){
echo ($x - $y);
}
if($Operation == "Mult"){
echo ($x * $y);
}
if($Operation == "Div"){
if ($y==0){
echo "error-cannot divide by zero";
}
else echo = ($x / $y);
}
?>
</body>
</html>
else echo = ($x / $y);
Знак равенства не должно быть там. убери это.
else echo ($x / $y);
Эта синтаксическая ошибка не позволяла вашей странице отображаться.
Скорее всего, в вашей установке PHP отключены отчеты об ошибках.
Вот несколько ответов о том, как его включить: Как получить полезные сообщения об ошибках в PHP?
Если вы включите сообщения об ошибках вместо пустой страницы, вы увидите Ошибка синтаксиса сообщение из-за ненужного =
подпишите следующую строку:
else echo = ($x / $y);
Оберните все это в if($_POST)
Вот так:
if($_POST) {
$Operation = $_POST['Operation'];
$x = $_POST["firstnumber"];
$y = $_POST["secondnumber"];
if($Operation == "Add"){
echo ($x + $y);
}
if($Operation == "Sub"){
echo ($x - $y);
}
if($Operation == "Mult"){
echo ($x * $y);
}
if($Operation == "Div"){
if ($y==0){
echo "error-cannot divide by zero";
}
}
else echo ($x / $y);
}
}
Таким образом, код выполняется только после публикации формы. Это также должно помочь вам в дальнейшем. Также подумайте о том, чтобы избежать пользовательского ввода. Так что-то вроде: mysqli_real_escape_string($connection, $_POST['Operation']);
Кроме того, вы можете использовать trim()
а также strip_tags()
,
Некоторые ссылки: