2012-02-14 20 views
0

私は私が私のサイトのために開発していますサインアップフォーム上のISSETフォームバリデーションを実装しようとしている......PHPフォームISSET検証

は基本的に私はすべてのフィールドが正しく入力や習慣$ _POSTを形成する必要があります。 ....自己(フォームアクション=「」)へイムポスティングなど

私が正しく充填されていない場合は、フォーム上のエラーメッセージを再ロードし、表示するために私のフォームが必要になります....

ここに私のフォームのコードがあります....

<?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つのスペースを入力することになりますこれに対する解決策(「非常に単純推測だろうが、それをコーディングする方法を見つけ出すことはできません)私は再び非常にGREATFULになります:D

おかげでみんな

:弓:STACK EXCHANGEをALL WAY:弓:

+1

テキストのセクションを強調表示し、コードの自動4 - 宇宙大のセクションを中括弧のアイコンをクリックすることができます。 –

+1

omg私はそれを知っていませんでした。次回は質問を投稿します。ありがとうございました –

答えて

1
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

これはまだ名前のないフォームを送信できます=>( "first_name")はテストしたフィールドです...エラーが出るか、フォームのエコーが送信されませんでしたが、まだPHPのタイトルが表示されているので、メジャーコードのエラーはありません:)申し訳ありません –

+0

私は、 –

+0

私はそれを一例として投稿しました。 (一般的な値として "value1"に注意してください)。 –

1

フォームの検証は、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> 
+0

これは私が元々考えたものですが、couldnt私はjavascriptを知りません.....このdoesntは何もしませんが、病気は、私がsomewher、感謝の仲間を得るまでしようとしています –

1

すべてのコードは現在、それは誰かが送信ボタンをクリックした検証ん、それは実際に彼らは有効な値を入力し確認してくださいdoesntの。変数が値を持っているかどうかをチェックすることはできません。なぜなら、値が投稿されていれば何の要素にもかかわらず、すべてのフォーム要素がポスト配列に存在するからです。あなたのための

2ヒント:

1)ポスト配列の各要素を評価するために、foreachループを使用します。ループ内でチェックするために、期待値条件の別々の配列を作成することができます。あなたが期待する値がchar、int、floatなどであることを確認するためにプラグインすることができる検証フィルタスクリプトをたくさん用意しています。データベースに挿入する前にユーザー入力を検証してください。

2)あなたは....

を提出している正確に理解いけない場合、フォームの提出をデバッグしますprint_r($ _ 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 } ?> 
+0

おかげで、面白いPHPタグに関するアドバイスをいただき、私はフラットファイルデータベースを使用しています。私は自分自身をデザインしています。私はもっと複雑で、必要なものを実行するためにスクリプトを書くのにかなり時間がかかりますが、もっと安全です....私のサーバは誰にでもtxtファイルを読むことを許していませんSQLインジェクションの心配はありません:D –

0
<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> 
+0

単純なissetフォームの検証...チェックアウトしてください。 – raja

0
<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>