Php联系表格

时间:2011-06-22 00:37:48

标签: php forms

我正在撰写联系表格。现在我遇到问题,当用户想要重新输入它不起作用的密码时。我知道这可能是一些小事,但我还没弄清楚。这是我的代码:

<?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=\"pword\" value=\"".$_POST['pword']."\" /></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 />";
        echo "<h1>".$strMessage."</h1>";
        echo $strMessageBody;
    }
       }
     else{
    $strMessage= "Please fill out the form below to send your information:";
    showForm($strMessage);
    }
       ?>
     </div>
      </body>
      </html>

2 个答案:

答案 0 :(得分:3)

如果您为了比较而请求2个密码,则应该给它们不同的名称;否则第二个输入将覆盖第一个输入而你只获得1个值。

以下是验证密码的方法:

if (trim($_POST['name'])==""){
    $strMessage="Please enter your name!";
    showForm($strMessage);
}
/* START ADD */
elseif ($_POST['pword1'] != $_POST['pword2']) {
    $_POST['pword1'] = NULL;  // Reset the values of pword1 so it is not in the form
    $_POST['pword2'] = NULL;  // Reset the values of pword2 so it is not in the form
    $strMessage="Passwords do not match!";
    showForm($strMessage);
}
/* END ADD */
elseif (strlen(trim($_POST['pword']))<=3){
    $strMessage="Your password must be at least 4 characters long!";
    showForm($strMessage);
}
else ...

答案 1 :(得分:1)

您可以将“重新输入密码”字段设为其他名称,例如

echo "      <td><span id=\"rfvpword\">* Re-enter Password:</span></td>\n";
echo "      <td><input type=\"text\" name=\"repword\" value=\"".$_POST['repword']."\" /></td>\n";

然后在验证部分再添加一个elseif来检查它是否与密码匹配

elseif ($_POST['repword'] != $_POST['pword']){
    $strMessage="Re-type password must be same as password!";
    showForm($strMessage);
}

没有测试过代码,只是一个粗略的想法,希望它可以帮助你