Php контактные формы - PullRequest
       1

Php контактные формы

0 голосов
/ 22 июня 2011

Я работаю над контактной формой.Теперь у меня возникла проблема, когда пользователь должен повторно ввести пароль, он не работает.Я знаю, что это, вероятно, что-то маленькое, но я не смог понять это.Вот мой код:

<?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 ]

3 голосов
/ 22 июня 2011

Если для сравнения вы запрашиваете 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 голос
/ 22 июня 2011

Вы можете присвоить поле 're-type password' другому имени, например

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

затем в части проверки вставьте еще один код, чтобы проверить, соответствует ли он паролю или нет

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

Не проверял код, просто грубая идея, надеюсь, он вам поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...