Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 单击“提交”按钮之前显示的错误消息_Php_Validation_Html Email - Fatal编程技术网

Php 单击“提交”按钮之前显示的错误消息

Php 单击“提交”按钮之前显示的错误消息,php,validation,html-email,Php,Validation,Html Email,也许有人能帮我解决这个问题。创建了一个表单,我正在使用PHP验证电子邮件输入。页面加载时显示错误变量,而不是单击提交按钮时显示。我如何解决这个问题 <?php if($_SERVER['REQUEST_METHOD']==="POST"){ $emailErr = ""; $email = ""; if (empty($_POST["email"])) { $emailErr = "Email is required"; } else { $email = test_i

也许有人能帮我解决这个问题。创建了一个表单,我正在使用PHP验证电子邮件输入。页面加载时显示错误变量,而不是单击提交按钮时显示。我如何解决这个问题

<?php
if($_SERVER['REQUEST_METHOD']==="POST"){





$emailErr = "";
$email = "";

 if (empty($_POST["email"])) {
 $emailErr = "Email is required";
 } else {
 $email = test_input($_POST["email"]);
 // check if e-mail address syntax is valid
 if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) {
   $emailErr = "Invalid email format"; 
 }
  }
 }

?>                           <!---[1]-->
<form id="myform" action="formval2.php" method="post" onsubmit="return checkinfo()">

 <label for="name">First Name</label>
 <input type="text" name="FirstName" id="fname"><span id="errorname"></span>
 <br/>

<label for="FirstName">Lastt Name</label> 
 <input type="text" name="LastName" id="lname"><span id="errorlname"></span>
<br/>

 <label for="password">Password</label>
 <input type="password" name="Password" id="pw"><span id="errorpw"></span>
 <br/>

 <label for="email">Email</label>
 <input type="email" name="Email" id="email"><span id="erroremail"><?php print "$emailErr";?  ></span>
 <br/>
<input type="submit" value="submit" onclick="val()"/>

</form>

名字

姓氏
密码
电子邮件
您的比较似乎使用了单个=。在PHP中,比较是double==。因此,改变你的对比:

 if($_SERVER['REQUEST_METHOD']=="POST"){
这应该可以解决问题。

这样会更好

if(isset($_POST["email"])) {

    $emailErr = "";
    $email = "";



    if (filter_var($_POST["email"], FILTER_VALIDATE_EMAIL) === false) {
        $emailErr = "Email is not valid";
    } else {
        $email = test_input($_POST["email"]);
    }
}else {
    $emailErr = "Email is required";
}
更改为仅在设置了
$\u POST[“email”]
时才显示,因为如果设置了,我们知道用户已经发布了表单,并且不需要检查两次。另外,您的正则表达式是无效的,PHP已经有了一个可以验证电子邮件地址的函数

编辑
应为
,以便名称在HTML和PHP中匹配。

如果($\u服务器['REQUEST\u方法]]==“POST”)
=
中相同,而不是单一的
=
电子邮件显示在POST数组中,但缺少错误消息,有什么建议吗。。。我插入了你的代码,我收到了相同的非错误时,左清空我的问题,它仍然在大便时,页面加载。。。。。我甚至删除了服务器请求,并注意到。。。。我想知道我是否必须使用PHP_self,,,除非你有其他建议,
应该是
,名称中没有大写字母。这是我从服务器请求得到的结果,当我尝试提交时,它不会显示变量错误,但当我删除请求时,它会在有效加载时显示错误,所以我假设我需要修改请求。我更新了输入上的名字,谢谢你的提示,我完全错过了