Sticky forms with PHP

I have a form whose action is set on myself. I want this so that to return the previously entered values ​​if you have already submitted the form once (with an error), so you do not need to completely redo the form. I have:

<?php if (isset($_POST['submit'])) { $firstname= $_POST['firstname']; $lastname= $_POST['lastname']; $output_form= false; if ($firstname== "empty($firstname) && empty($lastname)) { echo "you forgot you first and last names!!"; $output_form= true; } if (!empty($firstname) && empty($lastname)) { echo "you forgot your last name."; $output_form= true; } if (empty($firstname) && !empty($lastname)) { echo "you forgot your firstname."; $output_form= true; } if (!empty($firstname) && !empty($lastname)) { echo "good job!!"; } } else { $output_form= true; } if ($output_form) { ?> <form method="post" action=" <?php echo $_SERVER['PHP_SELF']; ?>"> First Name: <input type="text" name="firstname" value="<?php echo $firstname ?>"/> Last Name: <input type="text" name="lastname" value="<?php echo $lastname ?>"/> <input type="submit" name="submit" value="submit"/> </form> <?php } ?> 

If the form has not yet been submitted, the $output_form variable will return true in my if statement. But I get an error because the variables $firstname and $lastname are not yet defined (since isset($_POST['submit'] returns false , the form has not been submitted yet) What can I do to keep my form sticky ?

+4
source share
3 answers

set default values ​​for your variables

 $firstname = ''; $lastname = ''; if(isset($_POST['submit'])) { $firstname = $_POST['firstname']; // ... } 
+3
source

You have an unnecessary quote on line 8 of your code. Here's the fix.

 <?php if (isset($_POST['submit'])) { $firstname = $_POST['firstname']; $lastname = $_POST['lastname']; $output_form = false; if ($firstname == empty($firstname) && empty($lastname)) { echo "{you } forgot you first and last names!!"; $output_form = true; } if (!empty($firstname) && empty($lastname)) { echo "you forgot your last name . "; $output_form = true; } if (empty($firstname) && !empty($lastname)) { echo "you forgot your firstname . "; $output_form = true; } if (!empty($firstname) && !empty($lastname)) { echo "good job!!"; } } else { $output_form = true; } if ($output_form) { ?> <form method="post" action=" <?php echo $_SERVER['PHP_SELF']; ?>"> First Name: <input type="text" name="firstname" value="<?php echo $firstname ?>"/> Last Name: <input type="text" name="lastname" value="<?php echo $lastname ?>"/> <input type="submit" name="submit" value="submit"/> </form> <?php } ?> 
+1
source

Put $output_form = false; above if (isset($_POST['submit'])) { to check before

0
source

Source: https://habr.com/ru/post/1402114/


All Articles