簡體   English   中英

這不適用於所有其他瀏覽器的 IE bt

[英]This doesn't works in IE bt in all other browsers

這是我的表格代碼

<form method="post" style="margin-left:15px;margin-top:6px;" onsubmit="return map_Email_Validation();">

    <table>
        <tr>
         <td colspan="2" class="faceboxheading" style="white-space:nowrap;">Share your map information with your friends</td>
            <td colspan="2" align="left"><a href="javascript:void(0);" class="hrf_btn" onclick="hide_facebox();">[x]</a></td>
        </tr>
      <tr></tr>
      <?php if($error) {?>
      <tr>
        <td colspan="2" class="faceboxheading"><?php echo $error;?></td>
      </tr>
      <?php }?>
      <tr>
        <td width="100px">To Email</td>

        <td width="250px"><input type="text" name="ToID" id="ToID" style="width:274px;" onkeyup="dis();"/></td>
      </tr>
      <tr>
        <td>From Email</td>
        <td><input type="text" name="fromID" id="fromID" style="width:274px;" onkeyup="dis();" value="'.$g['email'].'" /></td>
      </tr>
      <tr>
        <td>Subject</td>
        <td><input type="text" name="subject" id="subject" style="width:274px;" onkeyup="dis();"/></td>
      </tr>
      <tr>
        <td>URL</td>
        <td><input type="text" readonly="readonly" name="URL" id="URL" size="42" style="width:274px;"/></td>
      </tr>
      <tr>
        <td>Message</td>
        <td valign="top"><textarea id="message" name="message" cols="25" rows="4" style="width:274px;" onkeyup="dis();"></textarea></td>
      </tr>
     <tr><td></td>  
   <td> <input type="image" style="margin-left:-2px;" src="http://jersey.cimaps.co.uk/jersey_dev/templates/default/images/send.png" name="submitbtn" id="submitbtn" value="Send"/></td>

</td></tr>

    </table>
  </form>

功能是

function map_Email_Validation()
{

        var ToID = document.getElementById('ToID').value;      
        //var fromID = document.getElementById('fromID').value;
        var subject = document.getElementById('subject').value;
        var message = document.getElementById('message').value;
        var char_at=ToID.indexOf("@");
        var char_dot=ToID.indexOf(".");
        var char_dolar=ToID.indexOf("$");
        var char_hash=ToID.indexOf("#");
        var at="@";

                var lat=ToID.indexOf(at);
if(ToID.length<1)
        {
            alert('Please enter To Email!');
            return false;
        }
        else if((char_at==-1)||(char_dot==-1)||(char_dolar!=-1)||(char_hash!=-1))
        {
            alert( 'Invalid To Email!');
            return false;
        }
        else if((char_at==0)||(char_dot==1)||(char_dot==char_at+1))
        {
            alert( 'Invalid To Email!');
            return false;
        }
if(subject.length<1)
        {
            alert( 'Please enter Subject!');
            return false;
        }
        if(message.length<1)
        {
            alert( 'Please enter Message!');
            return false;
        }
        else if(message.length>100)
        {
            alert( 'Message can have only 100 characters!');
            return false;
        }

return true;    
}
code in index page is
if(isset($_POST['submitbtn']))
{
    //echo "set";

    $flag=true;
    $error="";
    /*Getting Values**********************/
    $ToID=$_POST['ToID'];
    $fromID=$_POST['fromID'];
    $subject=$_POST['subject'];
    $URL=$_POST['URL'];
    $message=$_POST['message'];

    /*Validating the data*****************/
    if(strlen($ToID)==0)
    {
        $flag=false;
        $error.="Enter To email address field"; 
    }
    elseif(!preg_match_all("|^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$|U",$ToID,$arr))
    {
        $flag=false;
        $error.="Invalid To email address"; 
    }
if(strlen($subject)==0)
    {
        $flag=false;
        $error.="Enter subject field";  
    }
    if(strlen($message)==0)
    {
        $flag=false;
        $error.="Enter message field";  
    }
    elseif(strlen($message)>100)
    {
        $flag=false;
        $error.="Message can have only 100 charaters";  
    }

    if($flag=="true")
    {

        $urltoemail = "<html><head><title>Forgot Password</title></head><body>
<table><tr><td>".$message."</td></tr><tr><td><a href='{$URL}'>Click here for viewing map</a></td></tr></table></body></html>";
        $headers = "MIME-Version: 1.0" . "\r\n";
        $headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
        if(strlen($fromID)==0)
        $fromID = 'info@cimaps.co.uk';
        $headers .= "From: $fromID \r\n";
        mail($ToID,$subject,$urltoemail,$headers);
        //header("Location:".$_SERVER['SCRIPT_NAME']);
    }

}

郵件沒有在 IE 中發送,但在所有其他瀏覽器中成功發送。知道嗎?

閱讀您的代碼並確定您要問什么真的很困難。

然而,由於郵件不是客戶端活動,這幾乎肯定是發送到服務器的任何內容(即在 POST 中)的問題。 嘗試在第一次收到頁面的 POST 時在代碼中設置斷點,並比較 IE 和 Chrome/Firefox 的 POST 值。 我猜你會發現它們是不同的,並且可以快速修復它。

更新- 如果您嘗試這樣做而不是尋找命名提交怎么辦:

 if (!empty($_POST))

我不確定,也不完全理解您所做的修復。 但對我來說,檢查if(isset($_POST['submitbtn']))在 IE8 和 FF4 中都失敗了; 它在 Chrome12 中運行良好。 原因是當您使用<input type="image">類型的按鈕提交表單時,您需要像這樣檢查它:

if(isset($_POST['submitbtn_x'])) {
    ...
    ...
}

該檢查將適用於所有瀏覽器。 要檢查這一點,您可能希望在 if() 開始之前執行print_r($_POST)並查看它的外觀。

希望這有助於解決您的問題。

/阿拜

暫無
暫無

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

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