使用multipart / form-data时无法访问$ _POST变量

时间:2012-01-22 14:30:30

标签: php

有什么问题?

当我使用我的表单添加文件时,$ _POST变量是未定义的。当我不添加文件时,定义了$ _POST变量。

您收到了哪些错误?

Notice: Undefined index: bbmpin in C:\...\addpin.php on line 6
Notice: Undefined index: usermsg in C:\...\addpin.php on line 7

源代码

的index.html

<form method="POST" action="addpin.php"  enctype="multipart/form-data">
        <div>
            <label for="bbmpin">Your BBM Pin</label>
            <input type="text" name="bbmpin" placeholder="Enter Your BBM Pin">
        </div>

        <div>
            <label for="usermsg">Message</label>
            <input type="text" name="usermsg" placeholder="(optional) Add a short message" maxlength="255">
        </div>

        <div>
            <label for="image">Upload Image <small>(optional)</small></label>
            <input type="file" name="image"> 
        </div>

        <button type="submit">Submit</button>
</form>

addpin.php

<?php
session_start();

require_once('config/config.php');

$pin = $_POST['bbmpin'];
$msg = $_POST['usermsg'];
$ip  = $_SERVER['REMOTE_ADDR'];

print_r($_POST);
print_r($_FILES);
    exit;

    ...
?>

1 个答案:

答案 0 :(得分:1)

如果帖子大小超过允许的最大值,$ _POST超全局数组将为空。

所以你必须检查文件上传是否超过检查$ _FILES数组或检查$ _POST数组。

http://www.php.net/manual/en/features.file-upload.errors.php

如果你需要增加帖子大小限制,你应该检查这个php.ini指令

http://www.php.net/manual/en/ini.core.php#ini.post-max-size

也许您需要在Web服务器配置中更改它(我不知道您使用的是哪一个)