簡體   English   中英

信息提交后,表格就不會出現,信息也不會發送

[英]once the info is submited, the table not appearing and info not sent

如果我單擊“通知”按鈕,則會發送郵件,但不會將其作為電子郵件發送,並且返回頁面也沒有表格,我已經回顯了該郵件,並且它在那里,但無法弄清楚

     <?php require_once("include/session.php");?>
    <?php require_once("include/dataconnect.php");?>
    <?php require_once("include/functions.php");?>
    <?php include("include/mheader.php");?>
   >
    <p>

        You can contact us so as to give you relevant numbers to speak to.Thank you.
    </p>
    <?php
    $submit = $_POST['Notify'];
    $message = mysql_real_escape_string(htmlentities(strip_tags($_POST['message'])));
    //echo "$message";
    //die();
    if('POST' === $_SERVER['REQUEST_METHOD']) 
    {
    if ($message)
    {
    //Get Email Address
        $emails = mysql_query("SELECT reusers.email FROM reusers INNER JOIN repplac ON reusers.username = repplac.Uname AND reusers.username = '{$_SESSION['username']}'")or die(mysql_error());
        //$emails = mysql_query("SELECT reusers.email FROM reusers INNER JOIN repplac ON reusers.username = repplac.Uname AND reusers.username = '".$_SESSION['username']."'")or die(mysql_error());
        $results = (mysql_fetch_assoc($emails)) or die(mysql_error());
        $email= $results['email'];
        //echo "$email";
        //die();
       if(mysql_num_rows($emails) == 0){
             exit("No email addresses found for user '{$_SESSION['username']}'");
        }
        $email = mysql_result($emails, 0);
        }
        $body = $message;
        $to = $email;
       $subject = "copy of your notification"; 
    $headers = "From: donotreply@rapsody.co.uk\r\n";  
    $headers  .= 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    $headers .= 'Bcc:los@yahoo.ca' . "\r\n";
    mail($to,$subject,$body,$headers);
        }
    ?>
    <p>
    <form action='notification.php' method='Post' class='rl'>
        <div>
        <label for='message' class='fixedwidth'>Message</label>
        <textarea name="message" rows ="7" cols="40" id="message"></textarea>
        </div>

        <div class='buttonarea'>
                <p>
                <input type='submit' name='notify' value='Notify'>
                </p>
                </div>
                </p>
    </form>
    <?php include("include/footer.php");?>

使用if ($message) {}有點棘手,如果您想知道$message包含一些文本,可以嘗試使用is_nullis_set

您也可以嘗試在表單中action之前action method

<form method='POST' action='notification.php' class='rl'>

我可以看到的一個問題在這里:

if ($message)
{
  ...
  $email = mysql_result($emails, 0);
}
$body = $message;
...

現在,即使$message計算為false並且沒有地址可發送,您仍在嘗試發送消息。

您需要將消息發送部分移至if ($message)部分。

編輯:您還將覆蓋$email變量:

$email= $results['email'];
//echo "$email";
//die();
if(mysql_num_rows($emails) == 0){
  exit("No email addresses found for user '{$_SESSION['username']}'");
}
$email = mysql_result($emails, 0); // get rid of this line

如果注釋的echo語句已經給出正確的結果,則可以擺脫其他重復的賦值。

除此之外,這可能是服務器問題,郵件正被發送到垃圾郵件等,但這與您的代碼無關。

暫無
暫無

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

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