2016-04-10 24 views
0

Ich habe ein Registrierungsformular, das Benutzer übermittelt. Daten werden gesendet unter Verwendung von isset($_POST), um zu sehen, ob es etwas gibt, das in Formularboxen eingegeben wurde. Wenn nicht, wird es an einen else gesendet, der es dann an eine Funktion sendet, die den Benutzer zurück zum Registrierungsformular bringt, um einige fehlende Formulare zu vervollständigen. Aus irgendeinem Grund funktioniert es nicht richtig.PHP isset() Funktion funktioniert nicht richtig

Hier mein Prüfcodes ist:

<?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'. Sie müssen entweder 'submit1' oder' submit' ändern. – Sean

+0

aber VALUE = 'submit' dann was ist das Problem – hk3r

+1

Es ist das 'name' Attribut, das Sie in' $ _POST' verwenden, nicht den 'Wert'. Wenn Sie den 'Wert' überprüfen möchten, würden Sie' if ($ _ POST ['submit1'] == 'submit') ' – Sean

Antwort

1

Zunächst einmal das Attribut „name“ des Codes HTML-Schaltfläche ist „name1“ aber du bist die Überprüfung für $ _POST [ ‚name‘] statt.

Ihre einreichen Ändern Button:

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

Ihr, wenn die Bedingung jetzt funktionieren.

1

ich aufräumte Ihre php:

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

Ich reparierte auch Ihre 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

Willkommen bei SO. Wenn Sie Antworten geben, wird es als bewährte Methode angesehen, eine Textdarstellung Ihrer Antwort sowie den Code selbst zu liefern - dh, was geändert werden musste und warum. –

+0

Danke dafür :) –