2012-05-08 123 views
0

私のお問い合わせフォームは電話番号をメールしません。私はフォームとスクリプトでフィールドを持っています。フォームから「電話番号」の値を取得しないPHPスクリプト

<form id="contact" action=""> 
    <fieldset> 
     <label for="name" id="name_label">Name <br /></label> 
     <input type="text" name="name" id="name" value="" class="text-input" /> 
     <label for="email" id="email_label">E-mail<br /></label> 
     <input type="text" name="email" id="email" value="" class="text-input" /> 
     <label for="phone" id="phone_label">Phone number<br /></label> 
     <input type="text" name="phone" id="phone" value="" class="text-input" /> 
     <label for="msg" id="msg_label">Preferred contact time</label> 
     <textarea cols="60" rows="10" name="msg" id="msg" ></textarea> <br class="clear" /> 
     <input type="submit" name="submit" class="button" id="submit_btn" value="Send Message &rarr;"/> 
    </fieldset> 
    </form> 

と、次のPHPスクリプト:

<?php 
    $emailTo = '[email protected]'; 
    $subject = 'Advanced Contact Form'; 
    $name=$_REQUEST['name']; 
    $email=$_REQUEST['email']; 
    $phone=$_REQUEST['phone']; 
    $msg=$_REQUEST['msg']; 

    $body = "Name: $name \n\nEmail: $email \n\nphone: $phone \n\nMessage: $msg"; 
    $headers = 'From: '.$name.' <'.$email.'>' . "\r\n" . 'Reply-To: ' . $email; 

    mail($emailTo, $subject, $body, $headers); 
    echo 'Mail sent'; 
?> 

メールは罰金送信しますが、電話番号は、電子メールに表示さdoesntの。 何が問題なのですか?

EDIT:私のURLは次のようになります。ここでは

www.website.com/contact.html?name=test&email=test%40test.com&phone=0112+2255555&msg=2312312312312&submit=Send+Message+%26%238594%3B 
+0

初見ですべての可能性であれば、 '$ _REQUEST'を使用しないでくださいどんな間違いを見つけ – nu6A

+1

cannt、また、実際のコードでスペルチェックを。 'POST'や' GET'を指定するほど安全ではありません。 – JakeParis

+0

@Arun、なぜあなたは答えが気になりましたか? – JakeParis

答えて

1

あなたは電子メールのフォームを処理する方法の基本的な例で、最初のプロセス値と任意の場合は、エラー配列に基づいて構築。

次に、を送信してください。

<?php 
if($_SERVER['REQUEST_METHOD']=='POST'){ 

$emailTo = '[email protected]'; 
$subject = 'Advanced Contact Form'; 

$name=(isset($_POST['name'])?$_POST['name']:null); 
$email=(isset($_POST['email'])?$_POST['email']:null); 
$phone=(isset($_POST['phone'])?$_POST['phone']:null); 
$msg=(isset($_POST['msg'])?$_POST['msg']:null); 

$error=array(); 
$cont=true; 
//name 
if(isset($name)){ 
    if(strlen($name)<=1){ 
     $cont=false; 
     $error['error_name']='Enter your real name!'; 
    }else{ 
     $name=preg_replace('/[^a-zA-Z0-9\(\)\:\?.\&,_ -]/s', '', $name); 
    } 
}else{ 
    $error['error_name']='Enter your name!'; 
    $cont=false; 
} 

//email 
if(isset($email)){ 
    if(filter_var($email, FILTER_VALIDATE_EMAIL)){ 

    }else{ 
     $cont=false; 
     $error['error_email']='Email Invalid'; 
    } 
}else{ 
    $cont=false; 
    $error['error_email']='Please enter your email!'; 
} 

//phone 
if(isset($phone)){ 
    if(strlen($phone)<=1){ 
     $cont=false; 
     $error['error_phone']='Enter your real number!'; 
    }else{ 
     $phone=preg_replace('/[^0-9]/s', '', $phone); 
    } 
}else{ 
    $error['error_phone']='Enter your number!'; 
    $cont=false; 
} 

//message 
if(isset($msg)){ 
    if(strlen($msg)<=1){ 
     $cont=false; 
     $error['error_message']='Enter your real message!'; 
    }else{ 
     $msg=preg_replace('/[^a-zA-Z0-9\(\)\:\?.\&,_ -]/s', '', $msg); 
    } 
}else{ 
    $error['error_message']='Enter your message!'; 
    $cont=false; 
} 

if(empty($error) && $cont ==true){ 
    //send mail 
    $body = "Name: $name \n\n 
     Email: $email \n\n 
     phone: $phone \n\n 
     Message: $msg"; 

    // Additional headers 
    $headers ='MIME-Version: 1.0'."\r\n"; 
    $headers.='Content-type: text/html; charset=iso-8859-1'."\r\n"; 
    $headers.='Reply-To: '.$email."\r\n"; 
    $headers.='From: '.$name.' <'.$email.'>'."\r\n"; 
    $headers.="X-Mailer: Remote Mail\r\n"; 
    // Mail it 
    $status = (mail($emailTo, $subject, $body, $headers))?'Mail Was Sent':'Error Sending email'; 
}else{ 

    //error with form values 
    $status=''; 
    foreach($error as $type=>$reason){ 
    $status .= $reason.'<br />'; 
    } 
} 

//Echo your form or status page 
echo $status; 
}else{ 
    //Echo your form 
} 

?> 
+0

+1を編集しました。 – jerrymouse

+0

このPHPはメールを送りません..私はこれをテストしました:( –

+0

これはうまくいきませんでした。私の旅の中で私を助けるもの。ありがとう –

関連する問題