Не выводит результат, php7

200
10 сентября 2017, 02:12
<?php setlocale(LC_ALL, "Rus"); ?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Practice</title>
    <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<form action="" method="post">
    <label>Name: </label> <input type="text" name="fname"><?php echo "$fnameErr";?><br><br>
    <label>Surname: </label><input type="text" name="lname"><?php echo $lnameErr; ?><br><br>
    <label>Age:</label><input type="text" name="age" ><?php echo  $ageErr;?><br><br>
    <label>E-mail:</label><input type="text"><?php echo $emailErr;?><br><br>
    <label>Gander: </label><br><br>
    <label>Male</label><input type="radio" name="gander" value="Male">
    <label>Female</label><input type="radio" name="gander" value="Female"><?php echo $ganderErr;?>
    <input type="submit"><br>
</form>
<?php
$fnameErr = $lnameErr = $ageErr = $emailErr =  $genderErr = "";
$fname = $lname = $age = $email =  $gender = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (empty($_POST["fname"])) {
        $fnameErr = "Вы не ввели имя";
    } else {
        $fname = $_POST["fname"] ;
    }
    if (empty($_POST["$lname"])) {
        $lnameErr = "Вы не ввели фамилию";
    } else {
        echo $lname = $_POST["$lname"];
    }
    if (empty($_POST["$age"])) {
        $ageErr = "Вы не ввели возраст";
    } else {
        echo $age = $_POST["$age"];
    }
    if (empty($_POST["$email"])) {
        $emailErr = "Вы не ввели эмаил";
    } else {
        echo $email = $_POST["$email"];
    }
    if (empty($_POST["$gander"])) {
        $ganderErr = "Вы не ввели пол";
    } else {
        echo $gander = $_POST["$gander"];
    }
}
echo "<p>$fname</p> ";
echo "<p>$lname</p>";
echo "<p>$age</p>";
echo "<p>$email</p>";
echo "<p>$gander</p>";
?>
<script type="text/javascript" src="script.js"></script>
</body>
</html>

В чем проблема, уже сижу полчаса и не могу понять в чем я допустил ошибку.

Answer 1

У вас в коде много странного.

  1. Для начала уберите все символы $ из проверок типа if (empty($_POST["$age"])) {. Корректно у вас обрабатывается только if (empty($_POST["fname"])) {

  2. Вот в этих конструкциях вы чего добиться хотели? echo $gander = $_POST["$gander"]; (кстати тут тоже надо заменить на $_POST["gander"]). Ну и правильно все же писать gender, а не gander. gander переводится как глупец, а мне кажется, что вы все же спрашиваете про пол.

  3. Сообщения об ошибках у вас не появляются потому, что вы их пытаетесь выводить раньше, чем определили. У вас сначала идет, например <?php echo $lnameErr; ?>, но сама переменная $lnameErr задается гораздо ниже, в строке $lnameErr = "Вы не ввели фамилию";

по факту, у вас на момент распечатывания значения переменных они все, кроме $fname равны пустым строкам

READ ALSO
При попытке откомпелировать VS 2017 выдает: не удается открыть источник файл &ldquo;stdio.h&rdquo;

При попытке откомпелировать VS 2017 выдает: не удается открыть источник файл “stdio.h”

Серьезность Код Описание Проект Файл Строка Состояние подавления Ошибка (активно) E1696 не удается открыть источник файл "stdioh" ConsoleApplication1...

1753
Visual Studio 2017 Libcurl unresolved external symbol __imp_ префикс

Visual Studio 2017 Libcurl unresolved external symbol __imp_ префикс

Здравствуйте решил написать не большой код на libcurl, но вот в чем причина мне вожна работоспособность данной программы на любых компьютерах...

366