I have the following code sample upload3.php:
<html>
<head>
<title>PHP Form Upload</title>
</head>
<body>
<form method='post' action='upload3.php' enctype='multipart/form-data'>
Select a File:
<input type='file' name='filename' size='10' />
<input type='submit' value='Upload' />
</form>
<?php
if (isset($_POST['submit']))
{
echo "isset submit";
}
else
{
echo "NOT isset submit";
}
?>
</body>
</html>
The code always returns "NOT isset submit". Why does this happen? Because the same script upload3.php calls itself?
You do not have your submit button named:
Change
To:
Two things:
You'll want to try array_key_exists instead of isset when using arrays. PHP can have some hinky behavior when using isset on an array element.
http://www.php.net/manual/en/function.array-key-exists.php
if (array_key_exists('submit', $_POST)) { }
Second, you need a name attribute on your button ( "name='submit'" )
should be
and that subname should be in $_POST[' ']
it will look like
Because you don't have any form element whose
name
property issubmit
.Try to use
var_dump($_POST)
to see the keys that are defined.Notice that files are an exception; they're not included in
$_POST
; they're stored in the filesystem and they're metadata (location, name, etc) is in the$_FILES
superglobal.Try looking at the
REQUEST_METHOD
and see if it's POST. It's a little bit nicer.