Проверка формы с PHP не работает - PullRequest
0 голосов
/ 28 апреля 2018

Я довольно новичок в PHP и пытаюсь проверить простую форму с тремя полями ввода. По какой-то причине я ничего не получаю, когда нажимаю кнопку «Отправить», пока поля пусты. Я боролся с этим вопросом уже несколько часов.

Я пытаюсь получить текст ошибки рядом с полями, когда они пусты / недействительны.

Вот мой код HTML и PHP.

HTML:

<form method="post" action="">
    <table width="450px">
        <tr>
        <td valign="top">
            <label for="nimi">Nimi</label>
        </td>
        <td valign="top"> 

            <td><input type="text" name="nimi"><span class="error"><?php echo $nimiVirhe;?></span></td>
        </td>
        </tr>

        <tr>
        <td valign="top">
            <label for="sposti">Sähköposti</label>

        </td>
        <td valign="top">
            <td><input type="text" name="sposti"><span class="error"><?php echo $spostiVirhe;?></span></td>
        </td>
        </tr>

        <tr>
        <td valign="top">
            <label for="palaute">Palaute</label>
        </td>
        <td valign="top">
            <textarea  name="palaute" maxlength="1000" cols="30" rows="6"></textarea><span class="error"><?php echo $palauteVirhe;?> </span>
        </td>
        </tr>

        <tr>
        <td colspan="2" style="text-align:center">
        <input type="submit" value="Lähetä" name="submit">
        </td>
        </tr>


    </table>

</form>

PHP

<?php

$nimiVirhe = $spostiVirhe = $palauteVirhe = "";
$nimi = $sposti = $palaute = "";


if ($_SERVER["REQUEST_METHOD"] == "POST") {

    if (empty($_POST["nimi"])) {
        $nimiVirhe = "Name is required";
    } else {
        $nimi = test_input($_POST["nimi"]);
        if (!preg_match("/^[a-zA-Z ]*$/",$nimi)) {
            $nimiVirhe = "Only letters and white space allowed";
        }
    }

    if (empty($_POST["sposti"])) {
        $spostiVirhe = "Contact is required";
    } else {
        $sposti = test_input($_POST["sposti"]);
        if (!filter_var($sposti, FILTER_VALIDATE_EMAIL)) {
            $spostiVirhe = "Invalid email format";
        }
    }

    if (trim($_POST["palaute"]) == "") {
        $palauteVirhe = "City is required";
    } else {
        $palaute = test_input($_POST["palaute"]);
    }
}


function test_input($data) {
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;
}

?>

Я не знаю, что попробовать дальше.

Заранее спасибо за помощь!

...