Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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_Html_Forms_Email - Fatal编程技术网

PHP-函数邮件不';行不通

PHP-函数邮件不';行不通,php,html,forms,email,Php,Html,Forms,Email,我对php函数mail()有问题。它不发送任何电子邮件:(.我对php完全陌生,通过使用大量教程创建了代码,所以我认为它可能是错的 此外,按钮代码下面的验证也有问题。我想验证用户是否输入了有效的电子邮件,如果没有,则不回显,因为它将显示红色错误 现在,当电子邮件是无效的,它显示“电子邮件发送”的消息,但首先我想电子邮件实际发送 如果没有头文件“From::”,主机也会阻止SSL协议。它的位置正确吗 <h4>Contact form</h4> <?php $NameE

我对php函数mail()有问题。它不发送任何电子邮件:(.我对php完全陌生,通过使用大量教程创建了代码,所以我认为它可能是错的

此外,按钮代码下面的验证也有问题。我想验证用户是否输入了有效的电子邮件,如果没有,则不回显,因为它将显示红色错误

现在,当电子邮件是无效的,它显示“电子邮件发送”的消息,但首先我想电子邮件实际发送

如果没有头文件“From::”,主机也会阻止SSL协议。它的位置正确吗

<h4>Contact form</h4>
<?php
$NameErr = $EmailErr = $SubErr = $MessErr = "";
$Name = $Email = $Subject = $Message = "";
$To = "blackmagic@xxx.com";
$headers = "From: blackmagic@xxx.com Name: $Name\n $Message\n E-Mail: $Email\n";
$n = NULL;
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (empty($_POST["Name"])) {
        $NameErr = "Name is required";
    } else {
        $Name = test_input($_POST["Name"]);
    }
    if (!preg_match("/^[a-zA-Z ]*$/", $Name)) {
        $NameErr = "Only letters and white space allowed!";
    }
    if (empty($_POST["Email"])) {
        $EmailErr = "Email is required";
    } else {
        $Email = test_input($_POST["Email"]);
        if (!filter_var($Email, FILTER_VALIDATE_EMAIL)) {
            $EmailErr = "Invalid email format";
        }
    }
    if (empty($_POST["Subject"])) {
        $SubErr = "Subject is required";
    } else {
        $Message = test_input($_POST["Subject"]);
    }
    if (empty($_POST["Message"])) {
        $MessErr = "Message is required";
    } else {
        $Message = test_input($_POST["Message"]);
    }
}

$Name = test_input($_POST["Name"]);
$Email = test_input($_POST["Email"]);
$Subject = test_input($_POST["Subject"]);
$Message = test_input($_POST["Message"]);

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

<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>"  method="post">
    <p><input class="w3-input w3-padding-16" type="text" placeholder="Name" name="Name"></p>
    <span class="error"><?php echo $NameErr; ?></span>
    <p><input class="w3-input w3-padding-16" type="text" placeholder="Email" name="Email"></p>
    <span class="error"><?php echo $EmailErr; ?></span>
    <p><input class="w3-input w3-padding-16" type="text" placeholder="Subject" name="Subject"></p>
    <span class="error"><?php echo $SubErr; ?></span>
    <p><input class="w3-input w3-padding-16" type="text" placeholder="Message" name="Message"></p>
    <span class="error"><?php echo $MessErr; ?></span>
    <p>
        <button class="w3-btn w3-grey w3-padding-large w3-hover-green" type="submit" value="1" name="pressed">
            <i class="fa fa-paper-plane"></i> SEND MESSAGE
        </button>
    </p>
</form>
<?php
if (isset($_POST["pressed"])) {

    mail($To, $Subject, $Message, $headers);

    if (empty($_POST["Name" or "Email" or "Subject" or "Message"])) {
        echo $n;
    }
    if (isset($Name) and ( $Email) and ( $Subject) and ( $Message)) {
        echo "Email sent.";
    }
}
?> 
</div>
联系方式

据我所知,您在发送邮件时遇到问题,如果没有“From::”标头,则主机会阻止SSL协议。它的位置是否正确

<h4>Contact form</h4>
<?php
$NameErr = $EmailErr = $SubErr = $MessErr = "";
$Name = $Email = $Subject = $Message = "";
$To = "blackmagic@xxx.com";
$headers = "From: blackmagic@xxx.com Name: $Name\n $Message\n E-Mail: $Email\n";
$n = NULL;
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (empty($_POST["Name"])) {
        $NameErr = "Name is required";
    } else {
        $Name = test_input($_POST["Name"]);
    }
    if (!preg_match("/^[a-zA-Z ]*$/", $Name)) {
        $NameErr = "Only letters and white space allowed!";
    }
    if (empty($_POST["Email"])) {
        $EmailErr = "Email is required";
    } else {
        $Email = test_input($_POST["Email"]);
        if (!filter_var($Email, FILTER_VALIDATE_EMAIL)) {
            $EmailErr = "Invalid email format";
        }
    }
    if (empty($_POST["Subject"])) {
        $SubErr = "Subject is required";
    } else {
        $Message = test_input($_POST["Subject"]);
    }
    if (empty($_POST["Message"])) {
        $MessErr = "Message is required";
    } else {
        $Message = test_input($_POST["Message"]);
    }
}

$Name = test_input($_POST["Name"]);
$Email = test_input($_POST["Email"]);
$Subject = test_input($_POST["Subject"]);
$Message = test_input($_POST["Message"]);

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

<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>"  method="post">
    <p><input class="w3-input w3-padding-16" type="text" placeholder="Name" name="Name"></p>
    <span class="error"><?php echo $NameErr; ?></span>
    <p><input class="w3-input w3-padding-16" type="text" placeholder="Email" name="Email"></p>
    <span class="error"><?php echo $EmailErr; ?></span>
    <p><input class="w3-input w3-padding-16" type="text" placeholder="Subject" name="Subject"></p>
    <span class="error"><?php echo $SubErr; ?></span>
    <p><input class="w3-input w3-padding-16" type="text" placeholder="Message" name="Message"></p>
    <span class="error"><?php echo $MessErr; ?></span>
    <p>
        <button class="w3-btn w3-grey w3-padding-large w3-hover-green" type="submit" value="1" name="pressed">
            <i class="fa fa-paper-plane"></i> SEND MESSAGE
        </button>
    </p>
</form>
<?php
if (isset($_POST["pressed"])) {

    mail($To, $Subject, $Message, $headers);

    if (empty($_POST["Name" or "Email" or "Subject" or "Message"])) {
        echo $n;
    }
    if (isset($Name) and ( $Email) and ( $Subject) and ( $Message)) {
        echo "Email sent.";
    }
}
?> 
</div>
我有你的邮件不发送和用户邮件验证问题的解决方案。这是我经常用来发送邮件的代码,它工作得非常好

  <?php

    if(isset($_POST['send'])) {

        //EDIT THE 2 LINES BELOW AS REQUIRED

        $email_to = "info.winsoftsolution@gmail.com";

        $email_subject = "Contact Message Received";


        function died($error) {

             //your error code can go here

            echo "We are very sorry, but there were error(s) found with the form you submitted. ";

            echo "These errors appear below.<br /><br />";

            echo $error."<br /><br />";

            echo "Please go back and fix these errors.<br /><br />";

            die();

        }

        // validation expected data exists

        if(!isset($_POST['name']) ||
      !isset($_POST['email']) ||

            !isset($_POST['phone']) ||

            !isset($_POST['comments'])) {

            died('We are sorry, but there appears to be a problem with the form you submitted.');       

        }

         $name = $_POST['name']; // required

         $email_from = $_POST['email']; // required

         $telephone = $_POST['phone']; //  required

         $comments = $_POST['comments']; // required


 $error_message = "";

        $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';

      if(!preg_match($email_exp,$email_from)) {

        $error_message .= 'The Email Address you entered does not appear to be valid.<br />';

      }

        $string_exp = "/^[A-Za-z .'-]+$/";

      if(!preg_match($string_exp,$name)) {

        $error_message .= 'The First Name you entered does not appear to be valid.<br />';

      }



      if(strlen($comments) < 2) {

        $error_message .= 'The Comments you entered do not appear to be valid.<br />';

      }

      if(strlen($error_message) > 0) {

        died($error_message);

      }

        $email_message = "Form details below.\n\n";

       function clean_string($string) {

          $bad = array("content-type","bcc:","to:","cc:","href");

          return str_replace($bad,"",$string);

        }

        $email_message .= "Name: ".clean_string($name)."\n";

        $email_message .= "Email: ".clean_string($email_from)."\n";

        $email_message .= "Telephone: ".clean_string($telephone)."\n";

        $email_message .= "Comments: ".clean_string($comments)."\n";

    // create email headers

    $headers = 'From: '.$email_from."\r\n".

    'Reply-To: '.$email_to."\r\n" .

    'X-Mailer: PHP/' . phpversion();

    @mail($email_to, $email_subject, $email_message, $headers);  

        if(@mail){
    ?>
        <!-- include your own success html here -->
        <center class="container text-center"><br>
            <div class="alert alert-success">
                <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>
                <p><strong><?php echo "Thank you for contacting us. We will be in touch with you very soon.";?></strong></p>
            </div>
        </center>

        <center class="container text-center"><br>
            <div class="alert alert-info">
                <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>
                <p><a href="index.html"><strong>Click Here</strong></a> to Return.</p>
            </div>
        </center>    

    <?php
        }
        else
        {
    ?>
            <center class="container text-center"><br>
                <div class="alert alert-danger">
                    <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>
                    <p><strong><?php echo "Erorr Encountered While Sending mail Try again..";?></strong></p>
                </div>
            </center>
    <?php       
        }

    }

    ?>



返回



首先启用错误检查并修复任何提到的错误您能告诉我如何做吗?请在谷歌搜索php错误报告我的ftp上有php.ini,设置为:“error\u log=/plik\u logow.log error\u reporting=E\u ALL&~E\u NOTICE log\u errors=1 display\u errors=off”代码,它不会创建任何日志。你是说这个吗?好的,我知道问题出在哪里。我不能修改php.ini文件,如果我不能修改php.ini,我应该如何启用错误检查?谢谢,如果我找不到任何解决方案,我会尝试使用你的代码。尽管我想修复我创建的文件并从中学习一些东西:)