2011-12-06 10 views
-2

私が間違っていることがわかりません。私は、JavaScriptの検証を使用して、簡単なPHPのメールフォームを設定します。あまり長くこれをやっていない、いくつかの助けを感謝します。PHP/javascriptメールフォームの未定義インデックスエラー

<?php 
if (isset($_REQUEST['e'])) 
if ($_REQUEST['e']=="inquiry_sent"){ 
echo "<p class=\"error\">Thanks! We will contact you shortly!</p>"; 
}else{ 

echo "<p class=\"error2\">Your inquiry failed, please try again</p>"; 
} 
?> 
<form name="cr" action="thankyou.php" method="post" onSubmit="return form_check();"> 
    <input type="hidden" name="creditoptin" value="yes" /> 
    <div id="cform"> 
     <div class="crp"> 
      <label for="first_name">First Name</label> 
      <input id="first_name" type="text" name="cr[first_name]" 
value="" style="width:160px;" /> 
     </div> 
     <div class="crp"> 
      <label for="last_name">Last Name</label> 
      <input id="last_name" type="text" name="cr[last_name]" 
value="" style="width:160px;" /> 
     </div> 
     <div class="crp"> 
      <label for="phonecr">Phone</label> 
      <input name="cr[phonecr]" style="width:34px;" id="phonecr"  
    maxlength="3" onkeyup="force_numeric(this);autotab(this,'phonecr2');" value="" /> - 
      <input name="cr[phonecr2]" style="width:34px;" 
id="phonecr2" maxlength="3" onkeyup="force_numeric(this);autotab(this,'phonecr3');" 
value="" /> - 
      <input name="cr[phonecr3]" style="width:44px;" 
id="phonecr3" maxlength="4" onkeyup="force_numeric(this);" value="" /> 
     </div> 
     <div class="crp"> 
      <label for="email">Email Address</label> 
      <input id="email" type="text" name="cr[email]" maxlength="60" value="" style="width:160px;" /> 
     </div> 
     <div class="crp"> 
      <label for="zip">Zip Code</label> 
      <input id="zip" name="cr[zip]" maxlength="5" 
onkeyup="force_numeric(this)" value="" /> 
     </div> 
     <div id="submt"> 
      <input type="image" src="images/submit.png" value="Submit" 
onclick="if(typeof sub_pop == 'function')sub_pop();" /> 
</form> 

みんなありがとう:

This is the form processing script: 
$to = "[email protected]"; 
$subject = "You have a new lead!"; 
$first_name = $_POST['cr[first_name]']; 
$last_name = $_POST['cr[last_name]']; 
$phone = $_POST['cr[phonecr]']; 
$phoneprefix = $_POST['cr[phonecr2]']; 
$phonesuffix = $_POST['cr[phonecr3]']; 
$email = $_POST['cr[email]']; 
$zip = $_POST['cr[zip]']; 
$message = ''; 
$headers = "From: $first_name \n\n $last_name \n\n $phone \n\n $phoneprefix \n\n  
$phonesuffix \n\n $email \n\n $zip"; 
$sent = mail($to,$subject,$headers); 
if($sent) 
{ 
$_SESSION['success'] = '<p class="error">Your inquiry has been sent!</p>'; 
header('Location: index.php?e=inquiry_sent'); 
exit(); 
} 
?> 

これはフォームである私は、このような本 ":未定義のインデックス/ 8543117分の17 /ホーム/コンテンツ/で[FIRST_NAME] CRお知らせ" などのエラーを取得しています!

答えて

1

好きではありませんfirst_nameのようなものに、あなたの入力名を変更し、POSTを取得します。入力要素の名前のみがフォームの名前なしで$_POST変数に変換されます。

また、あなたのコードで入力墨塗りを行うのではなく、ユーザーがフォームに入力したものを郵送するだけです。これはセキュリティリスクの可能性があります。 XSSやSQLインジェクションのようなトピックについてはWebをチェックアウトし、さらに処理する前にユーザ入力をサニタイズする必要があります。

+0

詳細な説明をありがとうございます!とても有難い。 –

1

私はそれを得ることはできません、エラーはあなたに何が間違っているかを正確に教えてくれます。あなたが$first_name = $_POST['first_name'];を使用する必要があり、それは明らかに代わり$first_name = $_POST['cr[first_name]'];cr[first_name]

関連する問題