-2

私はphpスクリプトを使用したフォームを持っていますが、他のサーバーでは問題なく動作していますが、ライブサーバーで問題が発生しました。以下に詳細を記載します。

ajax 呼び出しと php を使用して送信するお問い合わせフォーム。私がチェックした2つのサーバーで動作しており、そのうちの1つは http://www.virtualmob.co.uk/products/test_landing_pages/UrbanSpot/contact.htmlの下にリンクされています

ただし、ライブサーバーにアップロードすると同じフォームが機能しない理由はわかりませんか?? :( 以下のライブリンク: http://www.urban-spot.co.uk/contact.html

PHPはサーバーにインストールされています。サーバーで必要なものがオフになっている場合はお知らせください。PHP情報リンクは次のとおりです。

ここにphpコードがあります

<?php


// Change this with your blog name and email address
$the_blogname   = 'MobilityApp';
$the_myemail    = 'info@urban-spot.co.uk';


if(isset($_POST['email'])){
    error_reporting(0); 
    $errorC = false;

    $the_email      = $_POST['email'];
    $the_name       = $_POST['yourname'];
    $the_message    = $_POST['message'];

    $the_phone      = $_POST['phone'];
    $the_fax        = $_POST['fax'];
    $the_company    = $_POST['company'];
    $the_website    = $_POST['website'];

    # want to add aditional fields? just add them to the form in template_contact.php,
    # you dont have to edit this file

    //added fields that are not set explicit like the once above are combined and added before the actual message
    $already_used = array('email','yourname','message','phone','fax','company','website','myblogname','tempcode','temp_url','ajax');
    $attach = '';

    foreach ($_POST as $key => $field)
    {
        if(!in_array($key,$already_used))
        {
            $attach.= $key.": ".$field."<br /> \n";
        }
    }
    $attach.= "<br /> \n";

    if(!checkmymail($the_email))
    {
        $errorC = true;
        $the_emailclass = "error";
    }else{
        $the_emailclass = "valid";
        }

    if($the_message == "")
    {
        $errorC = true;
        $the_messageclass = "error";
    }else{
        $the_messageclass = "valid";
        }

    if($errorC == false)
    {   
        $to      =  $the_myemail;
        $subject = "New Message from " . $the_blogname;
        $header  = 'MIME-Version: 1.0' . "\r\n";
        $header .= 'Content-type: text/html; charset=utf-8' . "\r\n";
        $header .= 'From:'. $the_email  . " \r\n";

        $message1 = nl2br($the_message);

        if(!empty($the_name))       $the_name       = "Name:    $the_name <br/>";
        if(!empty($the_company))    $the_company    = "Company: $the_company <br/>";
        if(!empty($the_phone))      $the_phone      = "Phone:   $the_phone <br/>";
        if(!empty($the_fax))        $the_fax        = "Fax:     $the_fax <br/>";
        if(!empty($the_website))    $the_website    = "Website: $the_website <br/>";

        $message = "
        You have a new message! <br/>
        $the_name
        $the_company
        $the_phone
        $the_website

        $attach <br />

        Message: $message1 <br />";



        if(@mail($to,$subject,$message,$header)) $send = true; else $send = false;

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

        if ($send)
        echo '<h3><img src="images/icon_check.png">&nbsp;&nbsp;Your message has been sent!</h3><div class="confirm">


              </div>';
        else
        echo '<h3>Oops!</h3><div class="confirm">
                <p class="texterror">Due to an unknown error, your form was not submitted, please resubmit it or try later.</p>
              </div>'; 

        }
    }

}


function checkmymail($mailadresse){
$email_flag=preg_match("!^\w[\w|\.|\-]+@\w[\w|\.|\-]+\.[a-zA-Z]   {2,4}$!",$mailadresse);
return $email_flag;
}

?> 

参考までに、私は以下のajax呼び出しを使用しています

 function tfuse_form1(){

var my_error;
var url = jQuery("input[name=temp_url]").attr('value');
jQuery(".ajax_form #send").bind("click", function(){

my_error = false;
jQuery(".ajax_form input, .ajax_form textarea, .ajax_form radio, .ajax_form select").each(function(i)
{
            var surrounding_element = jQuery(this);
            var value               = jQuery(this).attr("value"); 
            var check_for           = jQuery(this).attr("id");
            var required            = jQuery(this).hasClass("required"); 

            if(check_for == "email"){
                surrounding_element.removeClass("error valid");
                baseclases = surrounding_element.attr("class");
                if(!value.match(/^\w[\w|\.|\-]+@\w[\w|\.|\-]+\.[a-zA-Z]{2,4}$/)){
                    surrounding_element.attr("class",baseclases).addClass("error");
                    my_error = true;
                }else{
                    surrounding_element.attr("class",baseclases).addClass("valid"); 
                }
            }

            if(check_for == "name" || check_for == "message"){
                surrounding_element.removeClass("error valid");
                baseclases = surrounding_element.attr("class");

                if(value == "" || value == 'Name (required)' || value == 'Type your message' ){ 
                    surrounding_element.attr("class",baseclases).addClass("error");
                    my_error = true;
                }else{
                    surrounding_element.attr("class",baseclases).addClass("valid");
                }
            }

            if(required && check_for != "name" && check_for != "email" && check_for != "message"){
                surrounding_element.removeClass("error valid");
                baseclases = surrounding_element.attr("class");
                if(value == ""){                    
                    surrounding_element.attr("class",baseclases).addClass("error");
                    my_error = true;
                }else{
                    surrounding_element.attr("class",baseclases).addClass("valid"); 
                }
            }


            if(jQuery(".ajax_form input, .ajax_form textarea, .ajax_form radio, .ajax_form select").length  == i+1){
                    if(my_error == false){
                        jQuery(".ajax_form").slideUp(400);

                        var $datastring = "ajax=true";
                        jQuery(".ajax_form input, .ajax_form textarea, .ajax_form radio, .ajax_form select").each(function(i)
                        {
                            var $name = jQuery(this).attr('name');  
                            var $value = encodeURIComponent(jQuery(this).attr('value'));
                            $datastring = $datastring + "&" + $name + "=" + $value;
                        });


                        jQuery(".ajax_form #send").fadeOut(100);    

                        jQuery.ajax({
                           type: "POST",
                           url: "./sendmail.php",
                           data: $datastring,
                           success: function(response){
                               jQuery(".ajax_form").before("<div class='ajaxresponse'></div>");
                               jQuery(".ajaxresponse").html(response).slideDown(400); 
                               jQuery(".ajax_form #send").fadeIn(400);
                               jQuery(".ajax_form input, .ajax_form textarea, .ajax_form radio, .ajax_form select").val("");
                            }
                        });
                    } 
                }
        });
        return false;
});
}
4

1 に答える 1

0

一部のサーバーでは実行され、他のサーバーでは実行されないという事実から、問題があるのはコードではないと思います。問題のサーバーの phpinfo ページを参照していますが、稼働中のサーバーの phpinfo ページと比較しましたか? 異なるバージョンの PHP を実行している可能性があります。また、動作しているサーバーと動作していないサーバーの php.ini ファイルをチェックして、正しい拡張子がすべて読み込まれていることを確認します。

于 2012-12-15T20:30:19.960 に答える