2016-04-10 24 views
0

ユーザーが送信する登録フォームがあります。データはisset($_POST)を使用して送信され、フォーム入力ボックスに入力されたものがあるかどうかを確認します。そうでなければ、それはelseに送られ、それをユーザーに返す関数にそれを送り、登録フォームにいくつかの欠落したフォームを完成させます。なんらかの理由で正しく動作していません。php isset()関数が正常に動作していません

はここに私のチェックコードです:すべての

<?php 
    if(isset($_POST['submit'])) 
    { 
    $f_name=$_POST['fname']; 
$l_name=$_POST['lname']; 
$email=$_POST['email']; 
$output_form= false; 

    if(empty($f_name) && empty($email)) 
    { 
     echo 'please enter all the fields.<br />'; 
     $output_form = true; 
    } 
    if(empty($f_name) && (! empty($email))) 
    { 
     echo 'please enter first name.<br />'; 
      $output_form = true; 
    } 
      if((!empty($f_name)) && empty($email)) 
      { 
       echo 'please enter E-Mail.<br />'; 
       $output_form = true ; 
      } 

       if((!empty($f_name)) && (!e  mpty($email))) 
       { 
       echo 'success.<br />'; 
       $output_form= true; 
      } 
      } 
     else $output_form = true; 

    if ($output_form) 
    { 
    ?> 

    <table border="0" align=center   bgcolor=pink> 
    <tr> 
     <FORM NAME="form1" METHOD="POST" ACTION="<?php echo $_SERVER['PHP_SELF'];?>"> 
    <td wedth='75' >first name:<INPUT TYPE="TEXT" VALUE="" NAME="fname"><br></td><br> 
     <td wedth='75' >last name:<INPUT TYPE="TEXT" VALUE="" NAME="lname"><br></td><br> 
     <td>e-mail:<INPUT TYPE="TEXT" VALUE="" NAME="email"><br></ td><br> 
     <td><INPUT TYPE='submit' NAME='submit1' VALUE='submit'> 
    </tr> 
    </table> 
    <?php 
    } 
    ?> 
+0

'' ! = '$ _POST ['submit']' => 'submit1'!=' submit'です。 'submit1'または' submit'のどちらかを変更する必要がありますが、 – Sean

+0

を変更する必要がありますが、VALUE = 'submit'した後に問題が発生します。 – hk3r

+1

'value'ではなく' $ _POST'で使用する 'name'属性です。あなたが 'value'をチェックしたいならば、' if($ _ POST ['submit1'] == 'submit') ' – Sean

答えて

1

まず、あなたのHTMLボタンコードの「名前」属性が「NAME1」ですが、代わりに$ _POST [「名前」]をチェックしています。

にあなたの送信ボタンを変更し

:あなたの条件は今動作する場合

<input type='submit' name='submit' value='submit'> 

。私はあなたのphp片付け

1

<?php 
    if(isset($_POST['Submit'])){ 
     $f_name=$_POST['fname']; 
     $l_name=$_POST['lname']; 
     $email=$_POST['email']; 
     $output_form= false; 
     if(empty($f_name) && empty($email)){ 
      echo 'Please enter the fields<br/>'; 
      $output_form = true; 
     } else { 
      if(empty($f_name) && (!empty($email))){ 
       echo("Please enter first name <br/>"); 
       $output_form = true; 
      } else { 
       if(!empty($f_name) && (empty($email))){ 
       echo("Please enter your email"); 
       $output_form = true;  
       } else { 
        // You wouldnt really need an if statement here considering it went through all the possibilitys but just incase for security reasons Ill go ahead and make it 
        if(!empty($f_name) && (!empty($email))){ 
         echo("Success<br/>"); 
        }; 
       }; 
      }; 
     }; 
?> 

を私はまた、あなたのhtmlを固定:

<html> 
    <head> 
     <!-- Meta Data and title and other stuff goes here --> 
    </head> 
    <body> 
     <table border="0" align="center" bgcolor="pink"> 
      <tr> 
       <form name="form1" method="POST" action="<?php echo $_SERVER['PHP_SELF'];?>"> <!-- Im not sure what you were aiming for here wihh your action statement with your echoing but I left it alone --> 
        <td width="75">First name: <input type="text" name="fname"><br/></td> 
        <td width="75">last name: <input type="text" name="lname"><br/></td> 
        <td width="75">Email: <input type="text" name="email"><br/></td> 
        <td><input type="submit" name="Submit"></input></td> 
       </form> 
      </tr> 
     </table> 
    </body> 
</html> 
+1

ようこそ。答えを与えるときは、回答のテキスト説明とコード自体を提供することがベストプラクティスと考えられます。 –

+0

ありがとうございました:) –

関連する問題