2015-11-20 162 views
0

我有一个网站。我想从我的客户处获得表格详细信息... 我在准备一些代码。该代码适用于某些主机面板,但不适用于我的主机面板。 我认为一些功能不支持我的托管。 我报告的托管服务提供商,但没有很好的解决方案。 任何一个可以解决这个... 在此先感谢当用户填写我的表单时,我没有收到确认邮件

我advertisement.html形式看起来像这样

<form action="advertisement-form.php" method="post" class="comment-form row-fluid" data-validate="parsley"> 

          <p> 
           <label for="name" class="span2">Your Name</label> 
      <input type="text" class="span10" placeholder="Your Name" id="name" name="name" required > 
          </p> 

          <p> 
           <label for="email" class="span2">E-mail</label> 
      <input type="email" class="span10" placeholder="Your E-mail" id="email" name="email" required > 
          </p> 

           <p> 
           <label for="name" class="span2">Your Ad Title</label> 
      <input type="text" class="span10" placeholder="Ad Title" id="ad_title" name="ad_title" required > 
          </p> 

          <p> 
           <label for="site" class="span2">Target URL</label> 
           <input type="text" name="target_url" id="target_url" class="span10" data-type="url" required> 
          </p> 

          <p> 
           <label for="site" class="span2">Banner URL</label> 
           <input type="text" name="banner_url" id="banner_url" class="span10" data-type="url" required> 
          </p> 

          <p> 
           <label for="site" class="span2">Payment Email</label> 
           <input type="text" name="payment_email" id="payment_email" class="span10" data-type="url" required> 
          </p> 

          <p> 
           <label for="mess" class="span2">Message</label> 
           <textarea name="message" class="span10" data-trigger="keyup" data-rangelength="[20,1000]"></textarea> 
          </p> 
          <p> 
           <input type="submit" value="Continue" class="button button-load large-button offset2 span4"> 
          </p> 
         </form> 

和我的表单处理这样看,与广告-form.php的

命名
<?php 

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



// EDIT THE 2 LINES BELOW AS REQUIRED 

$email_to = "[email protected]"; 

$email_subject = "New Advertisement for Website"; 


// validation expected data exists 

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

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

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

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

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

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

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

    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 

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

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

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

$payment_email = $_POST['payment_email']; // not required 

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



$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 .= "Ad Title: ".clean_string($ad_title)."\n"; 

$email_message .= "Target URL: ".clean_string($target_url)."\n"; 

$email_message .= "Banner URL: ".clean_string($banner_url)."\n"; 

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

$email_message .= "Message: ".clean_string($message)."\n"; 



// create email headers 

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

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

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

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

?> 

当用户填写表单时,他得到了成功消息。但我没有收到确认邮件。这个脚本工作一些托管面板,不在我的托管panel.can任何人解决这个...

再次谢谢你。

回答

0

我会建议这是一个尝试,结束每一行\r\n并且还将添加到标头(看起来多余)。另外,在头文件中声明charset=utf-8应该足够了。

$headers = "MIME-Version: 1.0\r\n"; 
    $headers .= "Content-type: text/html; charset=utf-8\r\n"; 
    // Additional headers 
    // This might look redundant but some services REALLY favor it being there. 
    $headers .= "To: $to_fullname <$to_email>\r\n"; 
    $headers .= "From: $from_fullname <$from_email>\r\n"; 

另外的功能是不diedied

+0

为我解释一次.. – divis

+0

看到链接。这包含有关PHP邮件功能的完整解释:http://php.net/manual/en/function.mail.php – Suyog

+0

相同的代码在另一个主机上工作...我不知道是什么问题? – divis

0

1 - 变化

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

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

2-删除@邮件功能之前。在任何语句之前使用@会在出现任何错误时抑制错误。所以,如果你删除这个..这将是很容易排除故障。 按照上述2个步骤重试。如果你看到任何错误,请将它们粘贴在这里

相关问题