【问题标题】:send email is not working with bootstrap [duplicate]发送电子邮件不适用于引导程序[重复]
【发布时间】:2015-07-22 14:25:14
【问题描述】:

当您使用boothstrap 填写联系我们表格时,我正在尝试发送电子邮件。我收到一封电子邮件,但它的空电子邮件已填写,没有任何信息。请帮助我在哪里出错。

这是我的 PHP。

<?
if(isset($_POST['sendemail'])) {     

// EDIT THE 2 LINES BELOW AS REQUIRED

$email_to = "contact.hanif@gmail.com";

$email_subject = "General Inquery";
$name = $_POST['name']; 
$email = $_POST['email']; 
$subject =$_POST['subject']; 
$message = $_POST['message'];      

function clean_string($string) {

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

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

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

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

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

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

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

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

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

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

?>

HTML:

<section id="contact-page">
    <div class="container">
        <div class="center">        
            <h2>Drop Your Message</h2>
            <p class="lead">Please feel free to contact us if you have any query.</p>
        </div> 
        <div class="row contact-wrap"> 
            <div class="status alert alert-success" style="display: none"></div>
            <form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php">
                <div class="col-sm-5 col-sm-offset-1">
                    <div class="form-group">
                        <label>Name *</label>
                        <input type="text" name="name" class="form-control" required="required">
                    </div>
                    <div class="form-group">
                        <label>Email *</label>
                        <input type="email" name="email" class="form-control" required="required">
                    </div>
                    <div class="form-group">
                        <label>Phone</label>
                        <input type="number" class="form-control">
                    </div>
                    <div class="form-group">
                        <label>Company Name</label>
                        <input type="text" class="form-control">
                    </div>                        
                </div>
                <div class="col-sm-5">
                    <div class="form-group">
                        <label>Subject *</label>
                        <input type="text" name="subject" class="form-control" required="required">
                    </div>
                    <div class="form-group">
                        <label>Message *</label>
                        <textarea name="message" id="message" required="required" class="form-control" rows="8"></textarea>
                    </div>                        
                    <div class="form-group">
                        <button type="submit" name="submit" class="btn btn-primary btn-lg" required="required">Submit Message</button>
                    </div>
                </div>
            </form> 
        </div><!--/.row-->
    </div><!--/.container-->
</section><!--/#contact-page-->

【问题讨论】:

  • $first_name 设置在哪里?
  • 看起来不像。您有 $name = $_POST['name'] 但在 clean_string() 函数中使用 $first_name 作为参数。您的所有 clean_string() 参数都没有在任何地方设置。
  • 您需要包含&lt;form&gt;的代码
  • $email_from 设置在哪里?
  • 除了你的代码被设置了错误的变量,应该没问题。你只需要看看你的代码。

标签: php html forms twitter-bootstrap email


【解决方案1】:

我不认为,这是你的完整代码,但我可以看到你从未设置过 $_POST['sendemail'] 所以if(isset($_POST['sendemail'])) { 永远不会是真的。

编辑

看下面的代码,我做了3个cmets。

<?php
// 1. -------------↓ Change sendemail to submit
if(isset($_POST['submit'])) {         

// EDIT THE 2 LINES BELOW AS REQUIRED

$email_to = "contact.hanif@gmail.com";

$email_subject = "General Inquery";
$name = $_POST['name']; 
$email = $_POST['email']; 
$subject =$_POST['subject']; 
$message = $_POST['message'];      

function clean_string($string) {

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

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

}

// 2. --↓  Add $email_message = '';
$email_message = '';    
$email_message .= "First Name: ".clean_string($name)."\n";

// 3. -------------------------------------↓   Change $email_from to $email     
$email_message .= "Email: ".clean_string($email)."\n";    
$email_message .= "subject: ".clean_string($subject)."\n";    
$email_message .= "message: ".clean_string($message)."\n";    
echo "message: " . $email_message . "<br>";
}

?>

【讨论】:

  • @jismtu 没有真正描述任何更改,只是指出了您的代码失败的地方之一。编辑了我的答案。
  • @jismtu 只是告诉我们“未定义”并没有真正的帮助。至少告诉我们哪个变量是未定义的。
  • @jismtu 编辑了我的答案,我指出了您应该更改/添加的 3 件事。查看您的网站不会有任何帮助。我在那里看不到你的 php 代码。
  • 现在一直显示电子邮件正在发送。
  • @jismtu 帮不了你,我只能看你提供的代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-20
  • 2012-02-17
  • 2011-03-03
  • 2018-05-10
  • 1970-01-01
  • 2016-04-18
  • 1970-01-01
相关资源
最近更新 更多