Не работает скрипт php через .html файл OpenServer
Пример с ресурса. Форма с данными. При нажатии на кнопку должны выводиться введенные данные.
Когда нажимаю на кнопку, редиректит на пустую страницу http://*название домена*/check.php
В конфиг файле apache добавила .html .htm к AddType application/x-httpd-php .php .php5 .phtml
Подскажите, в чем проблема?
index.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<form action="check.php" method="POST">
<p> Name: <input type="text" name="name"></p>
<p> Surname: <input type="text" name="surname"></p>
<p> E-mail: <input type="text" name=""email></p>
<p> Message: <br><textarea name="message" cols="10" rows="5"></textarea></p>
<p> <input type="submit" value="Send"></p>
</form>
</body>
</html>
check.php:
<?php
if($_SERVER['request_method'] === 'POST'){
$name = $_POST['name'];
$surname = $_POST['surname'];
$email = $_POST['email'];
$message = $_POST['message'];
echo $name."<br />".$surname."<br />".$email."<br />".$message."<br />";
}
?>
.htaccess:
AddHandler application/x-httpd-php .php .html .shtml .htm
Ответы (1 шт):
Автор решения: raspberry
→ Ссылка
Из кода вижу минимум две ошибки:
- $_SERVER['request_method'] - названия глобальных переменных пишутся в upper case, т.е. REQUEST_METHOD
- Ошибка при заполнении emails:
<p> E-mail: <input type="text" name="email"></p>
Вот в таком виде у меня сработало, но не проверял настройки вашего веб сервера. Я запускал на встроенном php -S localhost:9000 -t ./
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<form action="http://localhost:9000/check.php" method="POST">
<p> Name: <input type="text" name="name"></p>
<p> Surname: <input type="text" name="surname"></p>
<p> E-mail: <input type="text" name="email"></p>
<p> Message: <br><textarea name="message" cols="10" rows="5"></textarea></p>
<p> <input type="submit" value="Send"></p>
</form>
</body>
</html>
<?php
if($_SERVER['REQUEST_METHOD'] === 'POST'){
$name = $_POST['name'];
$surname = $_POST['surname'];
$email = $_POST['email'];
$message = $_POST['message'];
echo $name."<br />".$surname."<br />".$email."<br />".$message."<br />";
}
echo 'OK';
?>