php表单isset验证

php表单isset验证,php,forms,validation,isset,Php,Forms,Validation,Isset,我一直在尝试在我为我的网站开发的注册表单上实现isset表单验证 基本上,我需要正确填写所有字段,否则表单将无法发布 当im发布到self(form action=“”)时,如果填写不正确,我需要重新加载我的表单并在表单上方显示错误消息 这是我的表格代码 <?php if(!isset($_POST['submit'])) { echo ' <form action="" method="post" name="signup"> <table border="1" wi

我一直在尝试在我为我的网站开发的注册表单上实现isset表单验证

基本上,我需要正确填写所有字段,否则表单将无法发布

当im发布到self(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个空格,哈哈

如果有人能想出解决这个问题的办法(假设很简单,但不知道如何编码),我会再次非常感激:D

谢谢各位

:船头:一路交换堆叠:船头:

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";
}
?>

完整示例:

<?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";
}
?>

表单验证可以使用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>

函数验证()
{
if(document.getElementsByName('username')==“”)
{
警报(“请输入用户名”);
返回false;
}
...
}

表单验证可以使用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>

函数验证()
{
if(document.getElementsByName('username')==“”)
{
警报(“请输入用户名”);
返回false;
}
...
}

您的所有代码当前都验证了有人单击了提交按钮,但实际上并没有验证他们输入的有效值。请理解,isset不会检查变量是否有值,只检查变量是否存在,因为如果发布了任何值,则所有表单元素都将存在于post数组中,无论是什么

给你的两个小贴士:

1) 使用foreach循环来评估post数组的每个元素。您可以创建一个单独的期望值条件数组,以在循环中进行检查。有很多现成的验证筛选脚本,您可以插入以检查您的期望值是否为char、int、float等。请始终验证您的用户输入b在插入数据库或请求SQL注入攻击之前

2) 如果您不了解提交的内容,请使用print\r($\u POST)调试表单提交

此外,我发现将PHP放在文件顶部并保留下面的html更容易。如果您不使用PHP值来预先填充表单值,则无需回显html。这使编辑html更容易…请注意else语句开头和结尾的PHP标记:

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

名字:

姓氏:

所需用户名:

密码:

确认密码:

出生日期:

白天 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 月 一月 二月 前进 四月 也许 六月 七月 八月 九月 十月 十一月 十二月 年份:

电子邮件地址:

性别:

男: 女性:
您的所有代码当前都验证了有人单击了提交按钮,但实际上并没有验证他们输入的有效值。请理解,isset不会检查变量是否有值,只检查变量是否存在,因为如果发布了任何值,则所有表单元素都将存在于post数组中,无论是什么

给你的两个小贴士:

1) 使用foreach循环来评估post数组的每个元素。您可以创建一个单独的期望值条件数组,以在循环中进行检查。有很多现成的验证筛选脚本,您可以插入以检查您的期望值是否为char、int、float等。请始终验证您的用户输入b在插入数据库或请求SQL注入攻击之前

2) 如果您不了解提交的内容,请使用print\r($\u POST)调试表单提交

此外,我发现将PHP放在文件顶部并保留下面的html更容易。如果您不使用PHP值来预先填充表单值,则无需回显html。这使编辑html更容易…请注意else语句开头和结尾的PHP标记:

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

名字:

姓氏:

所需用户名:

密码:

确认密码:

出生日期:

白天 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 月 一月 二月 前进 四月 也许 六月 七月 八月 九月 十月 十一月 十二月 年份:

电子邮件地址:

性别:

男: 女性:



如果
(isset($\u GET['actie'])和&$\u GET['actie']==“registereren”){
//登记员
回声“
沃纳姆
Familienaam
瓦赫特伍德
Wachtwoord控件
";

如果
(isset($\u GET['actie'])和&$\u GET['actie']==“registereren”){
//登记员
回声“
沃纳姆
Familienaam
瓦赫特伍德
Wachtwoord控件
";
您可以高亮显示文本部分,然后单击花括号图标以自动生成4-空格大代码部分。天哪,我不知道,下次我发布问题时,您会很挑剔的。lol,谢谢。您可以高亮显示文本部分,然后单击花括号图标以自动生成4-空格大代码部分。天哪,我不知道,您会有一个nosey下一次我发布一个问题lol谢谢,这仍然可以让你们提交表格