2011-06-22 15 views
0

私はこのフォームを取得しようとしています。私は初心者であり、誰かが情報を入力しなければそのエラーを出す方法を理解していません。これは私がお問い合わせフォーム

<?php 
function showForm($strMessage){ 
echo "<h1>".$strMessage."</h1>"; 
echo " <p>Note: fields marked with '*' are required</p>\n"; 
echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"post\">\n"; 
echo "<table width=\"45%\" class=\"formtable\" cellpadding=\"3\" cellspacing=\"0\">\n"; 
echo " <tr>\n"; 
echo "  <td><span id=\"rfvname\">* Name:</span></td>\n"; 
echo "  <td><input type=\"text\" name=\"name\" value=\"".$_POST['name']."\" /></td>\n"; 
echo " </tr>\n"; 
echo " <tr>\n"; 
echo "  <td><span id=\"rfvemail\">* E-mail:</span></td>\n"; 
echo "  <td><input type=\"text\" name=\"email\" value=\"".$_POST['emial']."\" /></td>\n"; 
echo " </tr>\n"; 
echo "  <tr>\n"; 
echo "  <td><span id=\"rfvusername\">* Username:</span></td>\n"; 
echo "  <td><input type=\"text\" name=\"username\" value=\"".$_POST['username']."\" /></td>\n"; 
echo " </tr>\n"; 
echo " <tr>\n"; 
echo "  <td><span id=\"rfvpword\">* Password:</span></td>\n"; 
echo "  <td><input type=\"password\" name=\"pword\" value=\"".$_POST['pword']."\" /><br /><span style=\"font-size:9px;\"><em>(at least 4 chars) </em></span></td>\n"; 
echo " </tr>\n"; 
echo " <tr>\n"; 
echo "  <td><span id=\"rfvpword\">* Re-enter Password:</span></td>\n"; 
echo "  <td><input type=\"text\" name=\"repword\" value=\"".$_POST['repword']."\" /></td>\n"; 
echo " </tr>\n"; 
echo " <tr>\n"; 
echo "   <td>&nbsp;</td>\n"; 
echo "   <td><input type=\"submit\" value=\"Submit\" class=\"btnSubmit\" id=\"btnSubmit\" name=\"submit\" /></td>\n"; 
echo " </tr>\n"; 
echo "</table>\n"; 
echo "</form>\n"; 
} 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1 /DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
<title>Contact Form</title> 
    <style type="text/css"> 
    body{ 
     background-color:#FFBD40; 
     color:#000000; 
     font-size:100%; 
     font-family:Georgia,Verdana,"Times New Roman",sans-serif; 
    } 


    #container{ 
     background:#FFF573; 
     width:800px; 
     margin:auto; 
     padding:5px 10px 5px 10px; 
     border:6px double #000000; 
     } 
     </style> 
    </head> 
    <body> 
    <div id="container"> 
    <?php 
    if (isset($_POST['submit'])){ 
    if (trim($_POST['name'])==""){ 
    $strMessage="Please enter your name!"; 
    showForm($strMessage); 
    } 
    elseif (strlen(trim($_POST['pword']))<=3){ 
    $strMessage="Your password must be at least 4 characters long!"; 
    showForm($strMessage); 
    } 
    else{ 
    $strMessage="Thank you, your information has been submitted. Below is the information you sent:"; 
    $strMessageBody.="Name: ".trim(stripslashes($_POST['name']))."<br />"; 
    $strMessageBody.="E-mail: ".trim(stripslashes($_POST['email']))."<br />"; 
    $strMessageBody.="UserName: ".trim(stripslashes($_POST['username']))."<br />"; 
    $strMessageBody.="Password: ".trim(stripslashes($_POST['pword']))."<br />"; 
    $strMessageBody.="Re-enter Password: ".trim(stripslashes($_POST['repword']))."<br />"; 
    echo "<h1>".$strMessage."</h1>"; 
    echo $strMessageBody; 
} 
    } 
else{ 
$strMessage= "Please fill out the form below to send your information:"; 
showForm($strMessage); 
} 
    ?>php 
    $$errors = array(); 
    if (isset($_REQUEST["seen_already"])){ 
    validate_data(); 
    if(count($errors) ! = 0){ 
    display_errors(); 
    display_welcome(); 
    } else { 
    display_welsome(); 
    } 
    function validate_data() 
    { 
    global $errors; 
    if($_REQUEST["Name"]==""){ 
    $errors[] = "<FONT COLOR='RED'>Please enter your first name</FONT>"; 
    } 
    if($_REQUEST["E-mail"]==""){ 
    $error[] = "<FONT COLOR='RED'>Please enter your E-Mail>/FONT>"; 
    } 
    if($_REQUEST["UserName"]==""){ 
      $errors[] = "<FONT COLOR='RED'>Please enter your Username</FONT>"; 
    } 
    if($_REQUEST["Password"]==""){ 
      $errors[] = "<FONT COLOR='RED'>Please enter your Password</FONT>"; 
    } 
    if($_REQUEST["RE-enter Password"]==""){ 
      $errors[] = "<FONT COLOR='RED'>Please re-enter your Password</FONT>"; 
    } 
    } 
    function display_errors() 
    { 
     global $errors; 

     foreach($errors as $err){ 
     echo $err, "<BR>"; 
     } 
     } 
     function process_data() 


</div> 
    </body> 
    </html> 

まあエコーのと」と\私はこのすべてを設定する必要がどのようである。そのように見えるために仮定されるように持っているものである。そして、誰かが私を助けることができる場合、私は求めていますすべてがありますエラーコードのやり方を理解してください。私のためにはできませんが、理解してもらえますか?コードはすでに始まっているのでしょうか、それとも私はそれをすべてうまくやっていますか?単純な質問を

+0

何が問題なのか説明できますか? – Blender

+0

私は本当にエラーコードを行う方法を知らないし、私は確かにそれを正しくやっていないと確信しています。そして何らかの理由で私はこのエラーコードが本当に長いと思います。 – andy

+0

Andy、良いIDE(NetBeans)があなたのコーディングのために大きな助けになるでしょう。 –

答えて

4

あなたの問題はこれです:あなたはTEXを使用

$_REQUEST["RE-enter Password"] 

フォームフィールドのラベル。しかし、あなたの実際の入力フィールドは、

$_REQUEST["repword"] 

と同様に呼ばれます。 $_REQUEST配列には、HTMLフォームのname=属性に従ってキーが保持されます。


その他:フォーム出力を簡略化することもできます。代わりに、多くのecho秒のあなたは多くの" dquotesを避けるためにheredoc stringを使用する必要があると\バックスラッシュはエスケープ:

echo <<<HTML 
<h1>$strMessage</h1> 
<p>Note: fields marked with '*' are required</p> 
<form action="$_SERVER[PHP_SELF]" method="post"> 
<table ... 
     <td><span id="rfvname">* Name:</span></td> 
    <td><input type="text" name="name" value="$_POST[name]"></td> 
... 
HTML; 

また(簡単/安全保障のために)その前に$_POST = array_map("htmlentities", $_POST);を追加します。

+0

また、最後に複数の構文エラーがあります –

+0

はい、私はエラーコードを行う方法について混乱しているので、私はそれをやめました。 "二重引用符と\はそれが私の考え方であるためです。 – andy

+0

最後に'} 'が欠けているのは、おそらくコードが短縮されたためでしょうか?また、HTMLエラーも無視してしまいました(faux xhtmlとfont – mario

関連する問題