Нужна помощь по коду PHP
Делаю лабораторную, сижу уже около нескольких часов и не могу выйти на трапу исправления. Код запускается, но не работает форма проверки "невед. полей". Извиняюсь, если неграмотно объяснил что-то. При вопросе, постараюсь более четко и грамотно ответить.
Код
<html>
<head>
<title>Контактна інформація</title>
</head>
<body>
<?php
if (!$submit): /* Початок основної програми*/
?>
<h3>Будь-ласка, введіть інформацію про себе</h3>
Поля з <b>*</b> обов'язкові для заповнення
<p>
<?php
print_form("","","","","","");
else:
check_form($_POST['f_name'], $_POST['l_name'], $_POST['email'], $_POST['zip'], $_POST['object']);
endif;
/* Об'являємо деякі функції*/
function print_form ($f_name, $l_name, $email, $zip, $object){
?>
<form action="index2.php" method="post">
<table cellspasing="2" cellpedding="2" border="1">
<tr>
<td>Ім'я</td>
<td><input name="f_name" type="text" value="<?php echo $f_name ?>"></td>
</tr>
<tr>
<td>Прізвище<b>*</b></td>
<td><input name="l_name" type="text" value="<?php print $l_name ?>"></td>
</tr>
<tr>
<td>Email адреса<b>*</b></td>
<td><input name="email" type="text" value="<?php print $email ?>">
</td>
</tr>
<tr>
<td>Поштовий індекс<b>*</b></td>
<td><input name="zip" type="text" value="<?php print $zip ?>">
</td>
</tr>
<tr>
<td>Улюблений предмет</td>
<td><input name="object" type="text" value="<?php print $object ?>">
</td>
</tr>
</table>
<input name="submit" type="submit" value="Надіслати">
<input type="reset" value="Відмінити">
</form>
<?
}
function check_form ($f_name, $l_name, $email, $zip, $object) {
if (!$l_name||!$email||!$zip):echo "<h3>Помилка у заповненні форми!</h3>";
if (!isset($_POST['l_name'])) {
echo "<h3>Ви не заповнили поле <b>Прізвище</b></h3>";
}
if (!isset($_POST['email'])){
echo "<h3>Ви не заповнили поле <b>Email адреса</b></h3>";
}
if (!isset($_POST['zip'])){
echo "<h3>Ви не заповнили поле <b>Поштовий індекс</b></h3>";
}
print_form($f_name, $l_name, $email, $zip, $object);
else:
confirm_form($f_name, $l_name, $email, $zip, $object);
endif;
}
function confirm_form ($f_name, $l_name, $email, $zip, $object){
?>
<h2>Дякуємо! Слідуюча інформація була успішно надіслана
</h2>
<b>Контактна інформація</b>
<? echo "<br>$f_name $l_name<br>$email<br>Поштовий індекс:$zip<br>Улюблений предмет:$object\n";
}
?>
</body>
</html>
Ответы (1 шт):
Автор решения: Sergey Motorny
→ Ссылка
К
if (!$submit): /* Початок основної програми*/
?>
Требовалось добавить
array_key_exist
if (!array_key_exists('submit', $_POST)):
Спустя долгое время получилось все таки решить.