PHP upload - Why isset($_POST['submit']) i

2020-03-02 03:21发布

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?

标签: php
5条回答
劫难
2楼-- · 2020-03-02 03:40

You do not have your submit button named:
Change

<input type='submit' value='Upload' />

To:

<input type='submit' value='Upload' name="submit"/>
查看更多
劫难
3楼-- · 2020-03-02 03:43

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'" )

查看更多
萌系小妹纸
4楼-- · 2020-03-02 03:49
<input type='submit' value='Upload' />

should be

<input type='submit' value='Upload' name='subname'/>

and that subname should be in $_POST[' ']

it will look like

if (isset($_POST['subname']))
{
    echo "isset submit";
}
else 
{
    echo "NOT isset submit";
}
查看更多
家丑人穷心不美
5楼-- · 2020-03-02 03:55

Because you don't have any form element whose name property is submit.

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.

查看更多
Emotional °昔
6楼-- · 2020-03-02 04:06

Try looking at the REQUEST_METHOD and see if it's POST. It's a little bit nicer.

查看更多
登录 后发表回答