Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.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,回声';1';或不回显指定的值_Php_Forms - Fatal编程技术网

PHP,回声';1';或不回显指定的值

PHP,回声';1';或不回显指定的值,php,forms,Php,Forms,我已经创建了一个简单的表单验证,PHP代码在值属性中使用时自动键入表单,名称和注释显示正确,除了电子邮件(input type=“text”)。我是否正确编写了代码,或者我的代码是否有任何代码气味 编辑:我的问题不是,我没有收到一个主要的,它是 我得到一个值1或该值被清除。 PHP代码:- <?php if($_SERVER['REQUEST_METHOD']=='POST') { $error=""; if(strlen ( $_POST['name'] ) <

我已经创建了一个简单的表单验证,PHP代码在
属性中使用时自动键入表单,名称和注释显示正确,除了
电子邮件
(input type=“text”)。我是否正确编写了代码,或者我的代码是否有任何代码气味

编辑:我的问题不是,我没有收到一个主要的,它是 我得到一个值1或该值被清除。


PHP代码:-

<?php 

if($_SERVER['REQUEST_METHOD']=='POST') {
    $error="";
    if(strlen ( $_POST['name'] ) < 5 ) {
        $error = "Please type more than 4 characters<br/>";
    }

    if ( $_POST['email']="" || !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL) ){
                $error.= "Please type a valid Email<br/>";
    }

    if(strlen($_POST['comment']) < 4){
        $error.= "Please type more than 4 characters";
    }   

    if( !empty($error) ){
        $result = "<div class='alert alert-danger'>$error</div>";
    }   

    else {

        if( mail('jokersspirit@gmail.com','test message',"Name:".$_POST['name'].
            "Email:".$_POST['email'].
            "Comment:".$_POST['comment']) ){

            $result = "<div class='alert alert-success'>Your form has been submitted</div>";
        }

        else{
            $result = "<div class='alert alert-success'>Error occurred 
            while submitting your form please try again later</div>";
        }


}

}


 ?>
您的错误在这里

if ( $_POST['email']="" || !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL) ){
替换为:

if ( $_POST['email']=="" || !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL) ){
=
替换为
=


如果没有它,您的
$\u POST['email']
将是一个空字符串。

在检查电子邮件时,您似乎在使用赋值运算符(=)而不是相等运算符(=)。这将导致$_POST['email']变量被分配给一个空字符串。只需将写着“
$\u POST['email']=”
的部分改为“
$\u POST['email']=”
侧注:您的邮件很可能会变成垃圾邮件和/或被标记为垃圾邮件。没有正确使用附加标题。@Fred ii-没有,我使用xampp,这是编写代码的有效方法,还是可以改进我的代码?请参阅手册和示例#2。另外,在
mail()
中放置POST数组的方式容易出现XSS注入;不太好。非常抱歉,我在家学习,没有人指出。谢谢你,我保证下次我会非常谨慎,永远不会破坏这个社区。
if ( $_POST['email']=="" || !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL) ){