проверка формы php - PullRequest
       30

проверка формы php

0 голосов
/ 14 февраля 2012

Я пытался реализовать проверку формы isset в форме регистрации, которую я разрабатываю для своего сайта ......

в основном мне нужно, чтобы все поля были заполнены правильно или форма не $ _post .....

Поскольку я отправляю сообщения самому себе (form action = ""), мне понадобится моя форма для перезагрузки и отображения сообщений об ошибках над формой, если они не заполнены правильно ....

вот мой код формы ....

<?php
if(!isset($_POST['submit'])) {

echo '
<form action="" method="post" name="signup">
<table border="1" width="100%">



<tr><td>
<p style="text-align: right;">First Name:&nbsp;&nbsp;</p>
</td><td>
&nbsp;&nbsp;<input name="first_name" type="text" maxlength="25">
</td></tr>
<tr><td>
<p style="text-align: right;">Last Name:&nbsp;&nbsp;</p>
</td><td>
&nbsp;&nbsp;<input name="last_name" type="text" maxlength="25">
</td></tr>
<tr><td>
<p style="text-align: right;">Desired Username:&nbsp;&nbsp;</p>
</td><td>
&nbsp;&nbsp;<input name="username" type="text" maxlength="25">
</td></tr>
<tr><td>
<p style="text-align: right;">Password:&nbsp;&nbsp;</p>
</td><td>
&nbsp;&nbsp;<input name="password" type="password" maxlength="25"> 
</td></tr>
<tr><td>
<p style="text-align: right;">Confirm Password:&nbsp;&nbsp;</p>
</td><td>
&nbsp;&nbsp;<input name="confpassword" type="password" maxlength="25"> 
</td></tr>
<tr><td>
<p style="text-align: right;">Date Of Birth:&nbsp;&nbsp;</p>
</td><td>
&nbsp;&nbsp;<select name="dob_day">
<option value="000">Day</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>&nbsp;&nbsp;&nbsp;&nbsp;
<select name="dob_month">
<option value="000">Month</option>
<option value="january">January</option>
<option value="february">February</option>
<option value="march">March</option>
<option value="april">April</option>
<option value="may">May</option>
<option value="june">June</option>
<option value="july">July</option>
<option value="august">August</option>
<option value="september">September</option>
<option value="october">October</option>
<option value="november">November</option>
<option value="december">December</option>
</select>
&nbsp;&nbsp;Year:&nbsp;&nbsp;
<input name="dob_year" type="text" maxlength="4" size="10" value="eg: 1964">
</td></tr>
<tr><td>
<p style="text-align: right;">Email Address:&nbsp;&nbsp;</p>
</td><td>
&nbsp;&nbsp;<input name="email" type="text" maxlength="50">
</td></tr>
<tr><td>
<p style="text-align: right;">Gender:&nbsp;&nbsp;</p>
</td><td>
&nbsp;&nbsp;&nbsp;&nbsp;Male:&nbsp;&nbsp;<input type="radio" name="gender" value="male" />&nbsp;&nbsp;&nbsp;&nbsp;
Female:&nbsp;&nbsp;<input type="radio" name="gender" value="female" />
</td></tr>
</table><p>
<center><input type="submit" name="submit" value="      Sign-Up      "></center>
</font>
';}
else
{
echo "Form Submitted";
}
?>

я знаю, что этот код формы выглядит искаженным, и я ненавижу грязный код, но мне пришлось обрезать его, чтобы опубликовать здесь, или я бы набрал 4 пробела, прежде чем сотни строк кода lol

если кто-то может придумать решение для этого (предположил бы, что это довольно просто, но не может понять, как его кодировать), я снова буду очень благодарен: D

спасибо, ребята

: bow: СМЕНА СТЕКА ПО ВСЕМУ ПУТУ: bow:

Ответы [ 5 ]

1 голос
/ 14 февраля 2012

Проверка формы может быть выполнена с использованием JavaScript.

HTML

    <input type="submit" onclick="return validate();" />

JAVASCRIPT

<script type="text/javascript"> 
function validate()
{
if(document.getElementsByName('username') == "")
{
alert("Please Enter username");
return false;
}
...
}
</script>
1 голос
/ 14 февраля 2012

весь ваш код в настоящее время проверяет, что кто-то нажал кнопку отправки, фактически он не проверяет, что они ввели правильные значения. Поймите, что isset не проверяет, имеет ли переменная значение, просто существует переменная, которая будет существовать, поскольку все элементы формы будут существовать в массиве post независимо от того, что, если какое-либо значение будет опубликовано.

2 совета для вас:

1) использовать цикл foreach для оценки каждого элемента массива post. Вы можете создать отдельный массив ожидаемых значений условий для проверки в цикле. Существует множество готовых к использованию сценариев фильтра проверки, которые вы можете просто подключить, чтобы убедиться, что ожидаемое значение равно char, int, float и т. Д. ПОЖАЛУЙСТА, всегда проверяйте введенные пользователем данные перед их вставкой в ​​базу данных или запросом атаки SQL-инъекцией.

2) используйте print_r ($ _ POST) для отладки отправленных форм, если вы не понимаете, что именно отправляется ....

также я считаю, что легче поместить PHP в верхнюю часть файла и оставить HTML ниже. Если вы не используете значения PHP для предварительного заполнения значений формы, нет необходимости отображать ваш HTML. Это значительно облегчает редактирование вашего html ... обратите внимание на теги php в начале и конце оператора else:

<?php
if(isset($_POST['submit'])) {
    echo "Form Submitted";
}

else{ ?>


<form action="" method="post" name="signup">
<table border="1" width="100%">
<tr><td>
<p style="text-align: right;">First Name:&nbsp;&nbsp;</p>
</td><td>
&nbsp;&nbsp;<input name="first_name" type="text" maxlength="25">
</td></tr>
<tr><td>
<p style="text-align: right;">Last Name:&nbsp;&nbsp;</p>
</td><td>
&nbsp;&nbsp;<input name="last_name" type="text" maxlength="25">
</td></tr>
<tr><td>
<p style="text-align: right;">Desired Username:&nbsp;&nbsp;</p>
</td><td>
&nbsp;&nbsp;<input name="username" type="text" maxlength="25">
</td></tr>
<tr><td>
<p style="text-align: right;">Password:&nbsp;&nbsp;</p>
</td><td>
&nbsp;&nbsp;<input name="password" type="password" maxlength="25"> 
</td></tr>
<tr><td>
<p style="text-align: right;">Confirm Password:&nbsp;&nbsp;</p>
</td><td>
&nbsp;&nbsp;<input name="confpassword" type="password" maxlength="25"> 
</td></tr>
<tr><td>
<p style="text-align: right;">Date Of Birth:&nbsp;&nbsp;</p>
</td><td>
&nbsp;&nbsp;<select name="dob_day">
<option value="000">Day</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>&nbsp;&nbsp;&nbsp;&nbsp;
<select name="dob_month">
<option value="000">Month</option>
<option value="january">January</option>
<option value="february">February</option>
<option value="march">March</option>
<option value="april">April</option>
<option value="may">May</option>
<option value="june">June</option>
<option value="july">July</option>
<option value="august">August</option>
<option value="september">September</option>
<option value="october">October</option>
<option value="november">November</option>
<option value="december">December</option>
</select>
&nbsp;&nbsp;Year:&nbsp;&nbsp;
<input name="dob_year" type="text" maxlength="4" size="10" value="eg: 1964">
</td></tr>
<tr><td>
<p style="text-align: right;">Email Address:&nbsp;&nbsp;</p>
</td><td>
&nbsp;&nbsp;<input name="email" type="text" maxlength="50">
</td></tr>
<tr><td>
<p style="text-align: right;">Gender:&nbsp;&nbsp;</p>
</td><td>
&nbsp;&nbsp;&nbsp;&nbsp;Male:&nbsp;&nbsp;<input type="radio" name="gender" value="male" />&nbsp;&nbsp;&nbsp;&nbsp;
Female:&nbsp;&nbsp;<input type="radio" name="gender" value="female" />
</td></tr>
</table><p>
<center><input type="submit" name="submit" value="      Sign-Up      "></center>
</font>
<?php } ?>
1 голос
/ 14 февраля 2012
else
{
    $accept=true;
    if(!isset($_POST["value1"])){
        $accept=false;
        $_SESSION["error"] .= "Please fill in value1\n";
    }
    //.... Other values

    if(!$accept){
        header("Location: Current file name"); //Check if the session has the error value filled in and display it on the form.
        exit;
    }
    echo "Form Submitted";
}

Полный пример:

<?php
session_start();
if(!isset($_POST['submit'])) {

echo '
<form action="" method="post" name="signup">
<table border="1" width="100%">

<tr><td colspan="2">' . $_SESSION['error'] . ' </td></tr>

<tr><td>
<p style="text-align: right;">First Name:&nbsp;&nbsp;</p>
</td><td>
&nbsp;&nbsp;<input name="first_name" type="text" maxlength="25">
</td></tr>
<tr><td>
<p style="text-align: right;">Last Name:&nbsp;&nbsp;</p>
</td><td>
&nbsp;&nbsp;<input name="last_name" type="text" maxlength="25">
</td></tr>
<tr><td>
<p style="text-align: right;">Desired Username:&nbsp;&nbsp;</p>
</td><td>
&nbsp;&nbsp;<input name="username" type="text" maxlength="25">
</td></tr>
<tr><td>
<p style="text-align: right;">Password:&nbsp;&nbsp;</p>
</td><td>
&nbsp;&nbsp;<input name="password" type="password" maxlength="25"> 
</td></tr>
<tr><td>
<p style="text-align: right;">Confirm Password:&nbsp;&nbsp;</p>
</td><td>
&nbsp;&nbsp;<input name="confpassword" type="password" maxlength="25"> 
</td></tr>
<tr><td>
<p style="text-align: right;">Date Of Birth:&nbsp;&nbsp;</p>
</td><td>
&nbsp;&nbsp;<select name="dob_day">
<option value="000">Day</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>&nbsp;&nbsp;&nbsp;&nbsp;
<select name="dob_month">
<option value="000">Month</option>
<option value="january">January</option>
<option value="february">February</option>
<option value="march">March</option>
<option value="april">April</option>
<option value="may">May</option>
<option value="june">June</option>
<option value="july">July</option>
<option value="august">August</option>
<option value="september">September</option>
<option value="october">October</option>
<option value="november">November</option>
<option value="december">December</option>
</select>
&nbsp;&nbsp;Year:&nbsp;&nbsp;
<input name="dob_year" type="text" maxlength="4" size="10" value="eg: 1964">
</td></tr>
<tr><td>
<p style="text-align: right;">Email Address:&nbsp;&nbsp;</p>
</td><td>
&nbsp;&nbsp;<input name="email" type="text" maxlength="50">
</td></tr>
<tr><td>
<p style="text-align: right;">Gender:&nbsp;&nbsp;</p>
</td><td>
&nbsp;&nbsp;&nbsp;&nbsp;Male:&nbsp;&nbsp;<input type="radio" name="gender" value="male" />&nbsp;&nbsp;&nbsp;&nbsp;
Female:&nbsp;&nbsp;<input type="radio" name="gender" value="female" />
</td></tr>
</table><p>
<center><input type="submit" name="submit" value="      Sign-Up      "></center>
</font>
';}
else
{
$accept=true;
if(!isset($_POST["first_name"])){
    $accept=false;
    $_SESSION["error"] .= "Please fill in your first name.<br />";
}
//.... Other values

if(!$accept){
    header("Location: " . $_SERVER["PHP_SELF"]); //Check if the session has the error value filled in and display it on the form.
    exit;
}
echo "Form Submitted";
}
?>
0 голосов
/ 01 декабря 2013
<html>
<body>

if  

    (isset($_GET['actie']) && $_GET['actie']== "registreren") {
//registreerformulier
echo "<form method='post' action='".$_SERVER['PHP_SELF']."?actie=aanmaken'>
Voornaam <input name='voornaam' type='text' /> <br />
Familienaam <input name='familienaam' type='text' /> <br />
Wachtwoord <input name='wachtwoord' type='password' /> <br />
Wachtwoord-controle <input name='wachtwoordControle' type='password' /> <br />
<input name='submit' type='submit' value='Maak gebruiker aan' />

</form>";


</body>
</html>
0 голосов
/ 21 марта 2013
<html>
<body>
  <form action="<?php $_PHP_SELF ?>" method="GET">
  Name: <input type="text" name="name" />
  Age: <input type="text" name="age"  />
  <input type="submit" name="submit" value="submit"/>
  </form>
<?php
 if (isset($_GET['submit']))
    {
       $name = $_GET['name'];
       $age = $_GET['age'];
       echo "Welcome ".$name."<br />" ;
       echo "You are ".$age." years old<br/>";
    }
     else
       {
    echo "enter the appropriate details";
      exit();
       }
  ?>
</body>
</html>
...