Не работает простая форма отправки

Юрий73

Постоялец
Регистрация
6 Янв 2015
Сообщения
134
Реакции
172
Подскажите пожалуйста, в чем может быть ошибка. Обычный пример из учебника и не работает. Форма отправки данных с контроллером:

Файл index.php:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Твое Имя</title>
</head>
<?php
if (!isset($_REQUEST['firstname']))
{
include 'form.html.php';
}
else
{
$firstName = $_REQUEST['firstname'];
$lastName = $_REQUEST['lastname'];
if ($firstName == 'Kevin' and $lastName == 'Yank')
{
$output = 'Добро пожаловать, о блистательный правитель!';
}
else
{
$output = 'Добро пожаловать на наш веб-сайт, ' .
htmlspecialchars($firstName, ENT_QUOTES, 'UTF-8') . ' ' .
htmlspecialchars($lastName, ENT_QUOTES, 'UTF-8') . '!';

include 'welcome.html.php';
}
?>
выдает ошибку Parse error: syntax error, unexpected $end in C:\OpenServer\domains\kevin.log\welcome\index.php on line 28

Файл form.html.php:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Пример Формы </title>
</head>
<body>
<br><br><br>
<br>
<form action="" method="POST">
<div><label for="firstname">Имя:&nbsp;&nbsp;&nbsp;&nbsp;
<input type="text" name="firstname" id="firstname"></label>
</div>
<div><label for="lastname">Фамилия:
<input type="text" name="lastname" id="lastname"></label>
</div>
<div><input type="submit" value= "Поехали"</div>
</form>
</body>
</html>

Файл welcome.html.php:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Твое Имя</title>
</head>
<body><p><?php echo $output; ?></p></body>
</html>
 

Вложения

  • welcome.rar
    1,1 KB · Просмотры: 2
не хватает одной } после else
 
Большое спасибо, действительно. А Вы не можете подсказать : по чему данное условие не выполняется
if ($firstName == 'Kevin' and $lastName == 'Yank')
{
$output = 'Добро пожаловать, о блистательный правитель!';
}
Когда набираешь имя Kevin фамилию Yank
 
этот код выглядит нормально, где проблема с твоими firstname и lastName, ищи там. Ну и вообще, сам учись свой код проверять :) быстрее начнешь рубить
 
Может так?
if (isset($firstName == 'Kevin' and $lastName == 'Yank'))
{
 
Большое спасибо, действительно. А Вы не можете подсказать : по чему данное условие не выполняется
if ($firstName == 'Kevin' and $lastName == 'Yank')
{
$output = 'Добро пожаловать, о блистательный правитель!';
}
Когда набираешь имя Kevin фамилию Yank
По коду вроде все верно, выведи что у тебя там в $_REQUEST передается, через print_r например. Кстати а почему не используется $_POST ?
 
Большое спасибо, действительно. А Вы не можете подсказать : по чему данное условие не выполняется
if ($firstName == 'Kevin' and $lastName == 'Yank')
{
$output = 'Добро пожаловать, о блистательный правитель!';
}
Когда набираешь имя Kevin фамилию Yank

1) смотри, что пришло в массиве $_REQUEST (как подсказали выше)
2) если в $_REQUEST всё норм, попробуй отделить каждое условие отдельными скобками:
if (($firstName == 'Kevin') and ($lastName == 'Yank'))
{
$output = 'Добро пожаловать, о блистательный правитель!';
}
 
Правильно подсказывают. Вместо $_REQUEST используй $_POST. И на обработке можешь проверить echo $_POST ['имя переменной формы']
 
Для безопасности посоветовал бы также проверять вводимые данные.
Хотя бы обработать через htmlspecialchars и stripslashes
 
Последнее редактирование:
Назад
Сверху