簡體   English   中英

PHP聯系表格的配置問題

[英]Configuration issue with PHP contact form

我已經看到在StackOverflow上有許多與我的問題類似的問題,但是我認為我仍然無法找到正確的解決方案。

我遇到的問題與接收電子郵件功能有關-基本上是網站的“ 與我們聯系”部分,用戶可以在其中填寫基於html的表格並按send message然后此消息將發送到我的電子郵件中。

我使用XAMPP進行開發,並在localhost上運行Apache服務器和Mercury。 即使驗證顯示成功-電子郵件也無法通過。

  1. 我試圖將method="post"添加到HTML部分,但是發現該type: "POST"已經包含在內。
  2. 仔細檢查了Mercury使用的端口,並將其與php.ini提到的端口進行了比較,兩者均設置為25
  3. 我也曾嘗試部署到Bitbucket頁面和Azure,以從本地主機遷移到實時托管。

我已經仔細閱讀了這篇非常詳細的文章 將網站上傳到實時托管的想法來自此帖子。

<?php
$name = trim($_POST['name']);
$email = trim($_POST['email']);
$message = trim($_POST['message']);


if( isset($name) && isset($email) ) {

    // Avoid Email Injection and Mail Form Script Hijacking
    $pattern = "/(content-type|bcc:|cc:|to:)/i";
    if( preg_match($pattern, $name) || preg_match($pattern, $email) || preg_match($pattern, $message) ) {
        exit;
    }

    $to = "myemail@gmail.com";
    $sub = "$name from Cv";
    // HTML Elements for Email Body
    $body = <<<EOD
    <strong>Name:</strong> $name <br>
    <strong>Email:</strong> <a href="mailto:$email?subject=feedback" "email me">$email</a> <br> <br>
    <strong>Message:</strong> $message <br>
EOD;

    $headers = "From: $name <$email>\r\n";
    $headers .= 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

    mail($to, $sub, $body, $headers);
}

?>

 $("#contact-form-1").submit(function(e) { e.preventDefault(); var success = $(this).find('.email-success'), failed = $(this).find('.email-failed'), loader = $(this).find('.email-loading'), postUrl = $(this).attr('action'); success.fadeOut(100); failed.fadeOut(100); loader.fadeOut(100); var data = { name: $(this).find('.contact-name').val(), email: $(this).find('.contact-email').val(), message: $(this).find('.contact-message').val() }; if ( isValidEmail(data['email']) && (data['message'].length > 1) && (data['name'].length > 1) ) { $.ajax({ type: "POST", url: postUrl, data: data, beforeSend: function() { loader.fadeIn(500); }, success: function(data) { loader.fadeOut(500); failed.fadeOut(500); success.delay(500).fadeIn(500); }, error: function(xhr) { // if error occured loader.fadeOut(500); success.fadeOut(500); failed.delay(500).fadeIn(500); }, complete: function() { loader.fadeOut(500); } }); } else { loader.fadeOut(500); failed.delay(500).fadeIn(500); success.fadeOut(500); } return false; }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <form id="contact-form-1" action="sendmail.php" method="POST"> <input class="contact-name form-control" type="text" name="name" placeholder="FULL NAME"> <input class="contact-email form-control" type="text" name="email" placeholder="EMAIL"> <textarea class="contact-message form-control" name="message" placeholder="MESSAGE" rows="5"></textarea> <button class="btn">SEND MESSAGE</button> </form> 

注意:我不是由模板創建者自己提供的,而是由我自己編寫的。 我已與模板創建者聯系,並獲得了絕對可怕的支持。 這是我在這里發表文章的主要原因。

在進行更多研究並四處詢問時,我發現這個極其有用的答案是什么最終使我的本地XAMPP配置得以修復。 因此,代碼本身沒有錯,但是我的配置是問題所在。

重要提示:請嘗試按照盡可能接近,簡單的步驟進行操作; 缺少可以對最終結果產生很大的影響。 因此,請仔細檢查每一步,看是否有損壞的地方。

也發現對方非常有見地和有趣的閱讀文章

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM