blah blah - 3 months ago 8
HTML Question

$_POST undefined index PHP error

My html code which receives the string:

<!DOCTYPE html>
<head>
<title>title</title>
</head>
<body>
<font face="Segoe UI" siz ="3">
<form action="process.php" action="post">
Suggestion: <input type="text" name="sgst" autocomplete="off">
<input type="submit">
</form>
</font>
</body>
</html>


My PHP which processes it: (process.php)

<?php
if ($_POST["sgst"]=="john") {
echo "john";
} else {
echo "someone";
}
?>


I am getting the error


Notice: Undefined index: sgst in C:\xampp\htdocs\test\process.php on line 2


Can anyone tell me what is causing the error?

Answer

You're re-using the action attribute on the form element:

<form action="process.php" action="post">

I'm surprised the form is even posting at all given that. Though given the symptoms it seems to at least be enough to confuse the POST. I think you meant to use the method attribute:

<form action="process.php" method="post">

A couple other notes:

  • You'll want to make use of isset() in your server-side code. The code shouldn't assume that all values will be posted, since the server can't control what a client sends it. Best to explicitly validate the data coming in before using it.
  • font elements are pretty dated, and if they're not officially deprecated they should be :) CSS styling would be the way to go for client-side UI styles.
Comments