$ _POST不起作用,$ _GET可以

时间:2012-05-31 15:54:50

标签: php html forms

我有一个恼人的问题。当我使用method =“post”提交以下代码并查找$ _POST变量时,代码无法识别它。当我切换到method =“get”并查找$ _GET变量时,它工作正常。我宁愿不使用Get。有什么建议?我的最终代码也包含其他输入,但是,我希望文件输入是可选的。所以我只需要在实际发送文件输入时处理代码。谢谢你的帮助!

 //form.html.php
<form action="index.php" method="post" enctype="multipart/form-data">
<label id="upload">Select file to upload:
<input type="file" id="upload" name="foobar" /></label>
<input type="submit" value="Submit" />
</form>

//index.php
if(isset($_POST['foobar']))
{
//some code
}

然而,这很好用

//form.html.php
<form action="index.php" method="get" enctype="multipart/form-data">
<label id="upload">Select file to upload:
<input type="file" id="upload" name="foobar" /></label>
<input type="submit" value="Submit" />
</form>

//index.php
if(isset($_GET['foobar']))
{
//some code
}

2 个答案:

答案 0 :(得分:6)

要获取文件,请使用$_FILES,您必须使用post方法。

答案 1 :(得分:1)

您正在上传文件,除了“文件”类型输入之外没有任何输入。因此不会有任何$ _POST值发送放入$ _FILES数组。并且您的表单需要设置method =“post”。

检查此代码

echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["file"]["tmp_name"];