Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP form using Post. Error: Undefined array key. However it works when I use get. (w3schools example)

I am trying to make a form on my website where users can submit their name and their score will get saved to a list of highscores. (its a quiz game.)

I tried learning to use forms using w3schools. I used this example: https://www.w3schools.com/php/php_forms.asp

<html>
<body>

<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>

</body>
</html>

with welcome.php looking like this:

<html>
<body>

Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>
</body>
</html> 

I literally copy and pasted this example and tried running it and i get this error message:

WelcomeWarning: Undefined array key "name" in [filelocation] on line 4

Your email address is:Warning: Undefined array key "email" in [filelocation] on line 5

However when I replaced all the "post" with "get" it worked. Why? What do I need to do to get it to work with post?

EDIT: Also I left the "post" in the html but i replaced the POST in the welcome.php with REQUEST. It now works, however I think its somehow using GET instead of POSTs because i can see the input in the URL. I definitely need to avoid this. Maybe this helps

Thank you!

like image 337
cactus Avatar asked Dec 06 '25 11:12

cactus


1 Answers

you might running directly welcome.php page.

Replace your welcome.php with

<html>
<body>
    <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { ?>
    Welcome <?php echo $_POST["name"]; ?><br>
    Your email address is: <?php echo $_POST["email"]; ?>
    <?php }
          else{ ?>
     <script> location.replace("yourHtmlFileName.html") </script>
     <?php     } ?>
</body>
</html> 
like image 128
Dnyaneshwar Taur Avatar answered Dec 09 '25 00:12

Dnyaneshwar Taur



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!