Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php don';提交多部分/表单数据后无法获取POST变量_Php_Html_Forms_Post_Input - Fatal编程技术网

Php don';提交多部分/表单数据后无法获取POST变量

Php don';提交多部分/表单数据后无法获取POST变量,php,html,forms,post,input,Php,Html,Forms,Post,Input,我页面上的一个部分负责多次上传图片,它工作了一段时间,但不再工作了。 我正在使用WampServer版本3.1.7 64位,并在本地主机上进行测试 我尝试过通过ajax而不是html submit接收和发送数据,但我也没有在php端获得数据,但在客户端,我在发送数据之前拥有所有数据(FormData()) HTML部分: <div class="div_shadow_here"> <form id="gallery_data" method="post" enctype

我页面上的一个部分负责多次上传图片,它工作了一段时间,但不再工作了。 我正在使用WampServer版本3.1.7 64位,并在本地主机上进行测试

我尝试过通过ajax而不是html submit接收和发送数据,但我也没有在php端获得数据,但在客户端,我在发送数据之前拥有所有数据(
FormData()

HTML部分:

<div class="div_shadow_here">
    <form id="gallery_data" method="post" enctype="multipart/form-data">
        <input type="hidden" name="formid" value="<?php echo $_SESSION[" formid "]; ?>" />
        <table class="news_table">
            <tr>
                <td>
                    <p class="name_col">Gallery name:</p>
                </td>
                <td>
                    <input class="input_news" id="gallery_title" type="text" name="gallery_title" />
                </td>
            </tr>
            <tr>
                <td>
                    <p class="name_col">Picture(s):</p>
                </td>
                <td>
                    <input class="input_news" id="news_picture_path" type="file" name="picture_path[]" multiple />
                    <label id="label_for_input" for="picture_path">Select picture(s)</label><span id="uploadState"></span>
                </td>
            </tr>
            <tr>
                <td></td>
                <td>
                    <div id="img_container"></div>
                </td>
            </tr>
        </table>
        <button class="print_button hidden_a" type="submit" name="login" id="save_news" form="gallery_data">Save</button>
    </form>
</div>
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    echo '<script>console.log("Not empty")</script>';
    if (isset($_POST['formid'])) {
        echo '<script>console.log("'.$_POST['formid'].
        '")</script>';
    }
    if (isset($_POST['gallery_title'])) {
        echo '<script>console.log("'.$_POST['gallery_title'].
        '")</script>';
    }
    if (isset($_FILES['picture_path']['name'])) {
        echo '<script>console.log("'.count($_FILES['picture_path']['name']).
        '")</script>';
    }
} else {
    echo '<script>console.log("Empty")</script>';
}
$('body').on('click', '#save_news', function(e) {
    e.preventDefault();
    var formData = new FormData($(this).parents('form')[0]);

    for (var key of formData.keys()) {
        console.log(key);
    }

    for (var value of formData.values()) {
        console.log(value);
    }

    $.ajax({
        url: 'galleryupload.php',
        type: 'POST',
        success: function(data) {
            alert("Data Uploaded: " + data);
        },
        data: formData,
        cache: false,
        contentType: false,
        processData: false
    });
    return false;
});

显示AJAX代码。在$\u会话[“formid”]中有一个空格,这是可行的,但这是一个非常糟糕的做法。如果在表单中放入“操作”,则代码可以工作。但是把你的AJAX代码放进去,也许我们可以帮助你,所以错误表明没有用这个名字发布任何东西,请执行
var\u dump($\u POST)在php中查看实际接收到的内容在我的笔记本电脑中您的代码运行良好…抱歉,错误应该在代码的其他部分。(顺便说一句,您在警报中有一个标签脚本……我猜您被设置为测试XD)我的真实代码中没有空格,但HTML格式化程序将这些空格放在了那里,所以这不应该是问题所在。代码在没有ajax的情况下工作了一年多。只需按按钮提交表单。但它已经不起作用了,我不知道为什么。这就是为什么我尝试使用ajax而不是HTML提交,但同样的问题也发生了(PHP端没有获得数据,说未定义索引:…)。