PHP 5.6.16 不读取 $_post 数据

标签 php post

我在两台服务器上使用这个版本 - 一个完美运行(较旧的 PHP)而这个不读取 checkbox 元素的 $_POST 数据.

表格:

<form method=post action=fish.php?livewell=1&processrelease=1 enctype="multipart/form-data">Array ( )
    <table border=1 width=800>
        <tr>
            <td></td>
            <td>
                <CENTER>Fish</td>
            <td>
                <CENTER>Value</td>
            <tD>
                <CENTER>Release</td>
            <td>
                <CENTER>League</td>
        </tr>
        <tr>
            <td>
                <CENTER>
                    <IMG SRC=pics/fish/brook_trout.jpg width=45 title="Brook Trout">
            </td>
            <td>
                <FONT COLOR=green>Brook Trout</font> (
                <A HREF=fish.php?guide=1><FONT COLOR=#666666>Regular</font></A>)(
                <B>Fish level 9</B>)
                <BR>
                <FONT COLOR=blue><B>10 inches</B></font>-
                <FONT COLOR=purple><B>1 cm</B></font>-
                <FONT COLOR=green><B>3.24 mm</B></font>[
                <FONT COLOR=brown><B>1.065 lbs</B></font>]
                <BR>
            </td>
            <td>
                <CENTER>
                    <FONT COLOR=green>$0.90</font>
                    <BR>
            </td>
            <td>
                <CENTER>
                    <input type="checkbox" value="55" name="lwid[]">
            </td>
            <td>
                <CENTER>
                    <IMG SRC=bigbertha.gif height=22> This defeats your previous league record for
                    <FONT COLOR=green>Brook Trout</font> of lbs.
                    <BR>
            </td>
        </tr>
    </table>
    <BR>Running total right now is
    <FONT COLOR=green>$0.9</font>
    <BR>
    <BR>
    <input type=submit value="Release Checked Fish">
</form>

但是当我收到一个帖子时 - $lw[] 中的所有数据都是空白的。

接收后代码如下:

$box = $_POST['lwid'];
while (list($key, $val) = @each($lwid)) {
    $livewellsel = mysql_query("select * from tblFishCapture where id='$val' and playerId=$stat[id] limit 1");
    $lwnum = mysql_num_rows($livewellsel);
    if ($lwnum > 0) {
        $lw = mysql_fetch_array($livewellsel);
        $tfishsel = mysql_query("select name from tblFishTemplates where id='$lw[fishId]' limit 1");
        $tfish = mysql_fetch_array($tfishsel);
        $label = check_fish_bonus($lw[fishId], $lw[fishSize], 1);
        $fbonus = check_fish_bonus($lw[fishId], $lw[fishSize], 0);
        $level = get_fish_level($fbonus);
        $myval = check_fish_bonus($lw[fishId], $lw[fishSize], 3);
        $pn = get_place_name($body[id]);
        $ttText = translate_text_googleapi("You release", $languageCode[languageCode]);
        $tfish[name] = translate_text_googleapi("$tfish[name]", $languageCode[languageCode]);
        $label = translate_text_googleapi("$label", $languageCode[languageCode]);
        $ttFishlevel = translate_text_googleapi("Fish level", $languageCode[languageCode]);
        $ttBIW = translate_text_googleapi("back into <FONT COLOR=blue>the water</font>", $languageCode[languageCode]);
        print "$ttText <FONT COLOR=green>$tfish[name]</font> ($label)(<B>$ttFishlevel $level</B>) $ttBIW.<BR>";
        mysql_query("delete from tblFishCapture where playerId=$stat[id] and id='$val' limit 1");
    }
}

当我执行 print_r($_post) 时,它显示 数组 ( [lwid] => )

我正在使用这个解决方法,它使我的编程也与新的 PHP 兼容:

if (!isset($PXM_REG_GLOB)) {

    $PXM_REG_GLOB = 1;

    if (!ini_get('register_globals')) {
        foreach(array_merge($_GET, $_POST) as $key => $val) {
            global $$key;
            $$key = (get_magic_quotes_gpc()) ? $val : addslashes($val);
        }
    }
    if (!get_magic_quotes_gpc()) {
        foreach($_POST as $key => $val) $_POST[$key] = addslashes($val);
        foreach($_GET as $key => $val) $_GET[$key] = addslashes($val);
    }
}

感谢任何帮助。

配置中是否缺少某些内容或与新 PHP 不兼容的内容?

编辑:

使用

Using "$_POST['lwid'];
     foreach($_POST['lwid'] as $val) {
// do something
}

仍然返回空结果。

最佳答案

请参阅 official php website 上有关 register_globals 的注释

This feature has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 5.4.0.

只需使用 $_POST['lwid'] 而不是 $lwid

关于PHP 5.6.16 不读取 $_post 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34843535/

相关文章:

php - 更新/覆盖 amazon s3 中文件(对象)的 acl

php - http.post 在 Flutter 中不工作/发送空值

post - 优步API |为 Ride 请求请求访问 token 返回 'invalid_grant' 错误

php - 更新 'pass and confirm' 表单的字段

python - html 不发送帖子查看

django - POST 方法总是返回 403 Forbidden

php - 内存缓存无法启动

php - 从音译器转换中排除特定字符

php - Eloquent:复合 WhereIn 条件

jquery - 如何使用getJSON,用post方式发送数据?