Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.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联系人表单GDPR验证_Php_Html_Contact Form - Fatal编程技术网

PHP联系人表单GDPR验证

PHP联系人表单GDPR验证,php,html,contact-form,Php,Html,Contact Form,我有一个联系表,我设法使工作 表单有一些字段、reCaptcha和同意复选框 PHP代码如下所示: if($_POST) { $to_Email = "contact@blabla.com"; //Replace with recipient email address $subject = 'Form contact'; //Subject line for emails //check if its

我有一个联系表,我设法使工作

表单有一些字段、reCaptcha和同意复选框

PHP代码如下所示:

    if($_POST)
    {

    $to_Email       = "contact@blabla.com"; //Replace with recipient email address
    $subject        = 'Form contact'; //Subject line for emails


    //check if its an ajax request, exit if not
    if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {

        //exit script outputting json data
        $output = json_encode(
            array(
                'type'=>'error',
                'text' => 'Request must come from Ajax'
            ));

        die($output);
    }

    //check $_POST vars are set, exit if any missing
    if(!isset($_POST["userName"]) || !isset($_POST["userEmail"]) || !isset($_POST["userMessage"]) || !isset($_POST["userprivacy"]))
    {
        $output = json_encode(array('type'=>'error', 'text' => 'It is necessary to fill in all the fields and validate the terms and conditions box.'));
        die($output);
    }

    //Sanitize input data using PHP filter_var().
    $user_Name        = filter_var($_POST["userName"], FILTER_SANITIZE_STRING);
    $user_Email       = filter_var($_POST["userEmail"], FILTER_SANITIZE_EMAIL);
    $user_Subject =  $_POST["userSubject"];
    $user_Message     = filter_var($_POST["userMessage"], FILTER_SANITIZE_STRING);
    $customer_privacy     = filter_var($_POST["userprivacy"], FILTER_SANITIZE_STRING);

    //additional php validation
    if(strlen($user_Name)<3) // If length is less than 3 it will throw an HTTP error.
    {
        $output = json_encode(array('type'=>'error', 'text' => 'Name is too short or empty!'));
        die($output);
    }
    if(!filter_var($user_Email, FILTER_VALIDATE_EMAIL)) //email validation
    {
        $output = json_encode(array('type'=>'error', 'text' => 'Please enter a valid email!'));
        die($output);
    }

    if(strlen($user_Message)<5) //check emtpy message
    {
        $output = json_encode(array('type'=>'error', 'text' => 'Too short message! Please enter something.'));
        die($output);
    }


    $message_Body = "<strong>Name: </strong>". $user_Name ."<br>";
    $message_Body .= "<strong>Email: </strong>". $user_Email ."<br>";
    $message_Body .= "<strong>Empresa: </strong>". $user_Subject ."<br>";
    $message_Body .= "<strong>Message: </strong>". $user_Message ."<br>";
    $message_Body .= "<strong>Message: </strong>". $customer_privacy ."<br>";



    $headers = "From: " . strip_tags($user_Email) . "\r\n";
    $headers .= "Reply-To: ". strip_tags($user_Email) . "\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";



    //proceed with PHP email.
    /*$headers = 'From: '.$user_Email.'' . "\r\n" .
    'Reply-To: '.$user_Email.'' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();
    */


    $sentMail = @mail($to_Email, $subject, $message_Body, $headers);

    if(!$sentMail)
    {
        $output = json_encode(array('type'=>'error', 'text' => 'Could not send mail! Please check your PHP mail configuration.'));
        die($output);
    }else{
        $output = json_encode(array('type'=>'message', 'text' => 'Hola '.$user_Name .' Gracias por contactanos, en breve nos pondremos en contacto contigo.'));
        die($output);
    }
}
<form class="getin_form wow fadeInUp">
            <div class="col-sm-12" id="result"></div>
           <div class="row">
              <div class="col-md-12 col-sm-12">
                 <div class="form-group bottom45">
                    <input class="form-control" type="text" placeholder="Nombre" name="user_name"  required>
                 </div>
              </div>
              <div class="col-md-12 col-sm-12">
                 <div class="form-group bottom45">
                    <input class="form-control" type="email" name="user_email" placeholder="Correo Eletronico" required>
                 </div>
              </div>
              <div class="col-md-12 col-sm-12">
                 <div class="form-group bottom45">
                    <input class="form-control" type="text" name="last_name" placeholder="Empresa">
                 </div>
              </div>
              <div class="col-md-12 col-sm-12">
                 <div class="form-group bottom45">
                    <textarea class="form-control" name="user_message" placeholder="Mensaje"></textarea>
                 </div>

                 <div class="col-md-12 col-sm-12">
                    <script src="https://www.google.com/recaptcha/api.js" async defer></script>   
                    <form action="?" method="POST">
                    <div class="g-recaptcha" data-sitekey="aaaaaaaaaaaaaaaaaaaaaaaaaaa"></div>   
              </div>

              <div>
                 <div class="col-md-1 checker" id="uniform-customer_privacy">
                    <input type="checkbox" value="0" required  name="customer_privacy" autocomplete="off">
                </div>
                 <div><span>He&nbsp;le&iacute;do&nbsp;y&nbsp;acepto&nbsp;los&nbsp;<span style="text-decoration: underline;"><strong><a href="http://blablabla.com" target="_blank" rel="noopener">T&eacute;rminos&nbsp;y&nbsp;condiciones</a></strong></span>&nbsp;de&nbsp;blablabla.</span></div>
              </div>
              
              <div class="col-sm-12">
                 <button type="button"  class="button defaulthole" id="submit_btn">Enviar</button>
              </div>
           </div>
        </form>
if($\u POST)
{
$to_电子邮件=”contact@blabla.com“;//替换为收件人电子邮件地址
$subject='formcontact';//电子邮件的主题行
//检查它是否是ajax请求,如果不是,则退出
如果(!isset($服务器['HTTP\u X\u请求的\u带有'])和strtolower($服务器['HTTP\u X\u请求的\u带有'])!='xmlhttprequest'){
//输出json数据的退出脚本
$output=json_encode(
排列(
'类型'=>'错误',
“text'=>“请求必须来自Ajax”
));
模具(产量);
}
//检查是否设置了$\u POST变量,如果缺少,请退出
如果(!isset($_POST[“userName”])| |!isset($_POST[“userEmail”])| |!isset($_POST[“userMessage”])| |!isset($_POST[“userprivacy”]))
{
$output=json_encode(数组('type'=>'error','text'=>'需要填写所有字段并验证条款和条件框');
模具(产量);
}
//使用PHP filter_var()清理输入数据。
$user\u Name=filter\u var($\u POST[“userName”],filter\u SANITIZE\u字符串);
$user\u Email=filter\u var($\u POST[“userEmail”],filter\u SANITIZE\u Email);
$user\u Subject=$\u POST[“userSubject”];
$user\u Message=filter\u var($\u POST[“userMessage”],filter\u SANITIZE\u字符串);
$customer\u privacy=filter\u var($\u POST[“userprivacy”],filter\u SANITIZE\u字符串);
//附加php验证
如果(strlen($user_Name)“error”,“text”=>“Name太短或为空!”);
模具(产量);
}
如果(!filter\u var($user\u Email,filter\u VALIDATE\u Email))//电子邮件验证
{
$output=json_encode(数组('type'=>'error','text'=>'请输入有效的电子邮件!'));
模具(产量);
}
如果(strlen($user_Message)'error','text'=>'消息太短!请输入一些内容');
模具(产量);
}
$message_Body=“名称:”$用户名“
”; $message_Body.=“电子邮件:”$用户_电子邮件。“
”; $message_Body.=“Empresa:”$用户/主题。“
”; $message_Body.=“消息:”$用户信息。“
”; $message_Body.=“消息:”$客户隐私权“
”; $headers=“From:”。剥去标签($user\u Email)。“\r\n”; $headers.=“回复:”。剥去标签($user\u Email)。“\r\n”; $headers.=“MIME版本:1.0\r\n”; $headers.=“内容类型:text/html;字符集=ISO-8859-1\r\n”; //继续使用PHP电子邮件。 /*$headers='From:'.$user\u Email'.'。“\r\n”。 '回复:'.$user_电子邮件''。“\r\n”。 “X-Mailer:PHP/”。phpversion(); */ $sentMail=@mail($to_Email,$subject,$message_Body,$headers); 如果(!$sentMail) { $output=json_encode(数组('type'=>'error','text'=>'无法发送邮件!请检查您的PHP邮件配置'); 模具(产量); }否则{ $output=json编码(数组('type'=>'message','text'=>'Hola'.$user\u Name.'Gracias por contactanos,en breve nos pondremos en contacto contigo'); 模具(产量); } }
HTML是这样的:

    if($_POST)
    {

    $to_Email       = "contact@blabla.com"; //Replace with recipient email address
    $subject        = 'Form contact'; //Subject line for emails


    //check if its an ajax request, exit if not
    if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {

        //exit script outputting json data
        $output = json_encode(
            array(
                'type'=>'error',
                'text' => 'Request must come from Ajax'
            ));

        die($output);
    }

    //check $_POST vars are set, exit if any missing
    if(!isset($_POST["userName"]) || !isset($_POST["userEmail"]) || !isset($_POST["userMessage"]) || !isset($_POST["userprivacy"]))
    {
        $output = json_encode(array('type'=>'error', 'text' => 'It is necessary to fill in all the fields and validate the terms and conditions box.'));
        die($output);
    }

    //Sanitize input data using PHP filter_var().
    $user_Name        = filter_var($_POST["userName"], FILTER_SANITIZE_STRING);
    $user_Email       = filter_var($_POST["userEmail"], FILTER_SANITIZE_EMAIL);
    $user_Subject =  $_POST["userSubject"];
    $user_Message     = filter_var($_POST["userMessage"], FILTER_SANITIZE_STRING);
    $customer_privacy     = filter_var($_POST["userprivacy"], FILTER_SANITIZE_STRING);

    //additional php validation
    if(strlen($user_Name)<3) // If length is less than 3 it will throw an HTTP error.
    {
        $output = json_encode(array('type'=>'error', 'text' => 'Name is too short or empty!'));
        die($output);
    }
    if(!filter_var($user_Email, FILTER_VALIDATE_EMAIL)) //email validation
    {
        $output = json_encode(array('type'=>'error', 'text' => 'Please enter a valid email!'));
        die($output);
    }

    if(strlen($user_Message)<5) //check emtpy message
    {
        $output = json_encode(array('type'=>'error', 'text' => 'Too short message! Please enter something.'));
        die($output);
    }


    $message_Body = "<strong>Name: </strong>". $user_Name ."<br>";
    $message_Body .= "<strong>Email: </strong>". $user_Email ."<br>";
    $message_Body .= "<strong>Empresa: </strong>". $user_Subject ."<br>";
    $message_Body .= "<strong>Message: </strong>". $user_Message ."<br>";
    $message_Body .= "<strong>Message: </strong>". $customer_privacy ."<br>";



    $headers = "From: " . strip_tags($user_Email) . "\r\n";
    $headers .= "Reply-To: ". strip_tags($user_Email) . "\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";



    //proceed with PHP email.
    /*$headers = 'From: '.$user_Email.'' . "\r\n" .
    'Reply-To: '.$user_Email.'' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();
    */


    $sentMail = @mail($to_Email, $subject, $message_Body, $headers);

    if(!$sentMail)
    {
        $output = json_encode(array('type'=>'error', 'text' => 'Could not send mail! Please check your PHP mail configuration.'));
        die($output);
    }else{
        $output = json_encode(array('type'=>'message', 'text' => 'Hola '.$user_Name .' Gracias por contactanos, en breve nos pondremos en contacto contigo.'));
        die($output);
    }
}
<form class="getin_form wow fadeInUp">
            <div class="col-sm-12" id="result"></div>
           <div class="row">
              <div class="col-md-12 col-sm-12">
                 <div class="form-group bottom45">
                    <input class="form-control" type="text" placeholder="Nombre" name="user_name"  required>
                 </div>
              </div>
              <div class="col-md-12 col-sm-12">
                 <div class="form-group bottom45">
                    <input class="form-control" type="email" name="user_email" placeholder="Correo Eletronico" required>
                 </div>
              </div>
              <div class="col-md-12 col-sm-12">
                 <div class="form-group bottom45">
                    <input class="form-control" type="text" name="last_name" placeholder="Empresa">
                 </div>
              </div>
              <div class="col-md-12 col-sm-12">
                 <div class="form-group bottom45">
                    <textarea class="form-control" name="user_message" placeholder="Mensaje"></textarea>
                 </div>

                 <div class="col-md-12 col-sm-12">
                    <script src="https://www.google.com/recaptcha/api.js" async defer></script>   
                    <form action="?" method="POST">
                    <div class="g-recaptcha" data-sitekey="aaaaaaaaaaaaaaaaaaaaaaaaaaa"></div>   
              </div>

              <div>
                 <div class="col-md-1 checker" id="uniform-customer_privacy">
                    <input type="checkbox" value="0" required  name="customer_privacy" autocomplete="off">
                </div>
                 <div><span>He&nbsp;le&iacute;do&nbsp;y&nbsp;acepto&nbsp;los&nbsp;<span style="text-decoration: underline;"><strong><a href="http://blablabla.com" target="_blank" rel="noopener">T&eacute;rminos&nbsp;y&nbsp;condiciones</a></strong></span>&nbsp;de&nbsp;blablabla.</span></div>
              </div>
              
              <div class="col-sm-12">
                 <button type="button"  class="button defaulthole" id="submit_btn">Enviar</button>
              </div>
           </div>
        </form>

何乐&艾库特;不要在布拉布拉布拉附近停车。
羡慕
当我填写表单并按send时,仍然会出现未完成的错误

我不知道我是否把变量放错了——我真的不明白为什么它不起作用


输入字段的名称和您在PHP中尝试获取的内容是不同的。示例:
name=“user\u email”
$\u POST['userEmail']
(这适用于所有输入)我建议您处理表单。将img添加为img(而不是链接),删除不必要的文本。