使用PHP进行表单验证不起作用
我对PHP非常陌生,我正在尝试验证一个包含三个输入字段的简单表单。由于某些原因,当字段为空时单击submit按钮时,没有返回任何内容。我已经为这个问题绞尽脑汁好几个小时了 我试图实现的是在字段为空/无效时在字段旁边获取错误文本 这是我的HTML和PHP代码 HTML:使用PHP进行表单验证不起作用,php,html,forms,validation,Php,Html,Forms,Validation,我对PHP非常陌生,我正在尝试验证一个包含三个输入字段的简单表单。由于某些原因,当字段为空时单击submit按钮时,没有返回任何内容。我已经为这个问题绞尽脑汁好几个小时了 我试图实现的是在字段为空/无效时在字段旁边获取错误文本 这是我的HTML和PHP代码 HTML: 尼米 香港邮政 帕劳特 PHP 我不知道下一步该怎么办 提前谢谢你的帮助 对不起,我不明白。如果我假设框中的字段是空的,那么当你提交表单时,你不会看到其中的任何内容。你先粘贴php,然后粘贴html表,此外,您还忘记了表单
尼米
香港邮政
帕劳特
PHP
我不知道下一步该怎么办
提前谢谢你的帮助 对不起,我不明白。如果我假设框中的字段是空的,那么当你提交表单时,你不会看到其中的任何内容。你先粘贴php,然后粘贴html表,此外,您还忘记了表单中的操作。我的意思是,如果字段为空,我试图在字段旁边显示一条错误消息。由于您的“操作”属性为空,这意味着表单将发布到自身。你的PHP代码在页面的顶部吗?我已经测试过了,可以用了,把PHP代码放在顶部
<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
$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;
}
?>