私は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"> 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;
});
}