$POST变量在接收php加载项函数时为空,但可通过jscript函数查看

时间:2016-03-11 作者:Dave H

我创建了以下代码来解释我的问题。

首先,我有一个shortcode函数,它接受用户输入并调用另一个表单:

<?php
add_shortcode(\'quote_system\', \'qt_system\');

function qt_system() {
    $postUrl = get_option(\'post-url\');
    echo str_replace( \'%7E\', \'~\', $postUrl);
    ?>
    <form action="<?php echo str_replace( \'%7E\', \'~\', $postUrl); ?>" method="post" style="text-align:center">
    <input type="text" name="username" class="form-control" autocomplete="off" placeholder="Username"/>     
    <input type="submit" name="register" class="btn btn-primary"/>
</form>
<?php
}  ?>
其次,如果我将变量$postUrl设置为静态页面检查。php一切正常,$用户名显示在屏幕上:

<html>
<body>
<?php
    $myuser = $_POST[\'username\'];
    echo "The following was passed (".$myuser.")";
?>
</body>
</html>
然而,当我在另一个wordpress表单中使用快捷代码版本时,我只得到消息“以下内容已传递()”。相同的代码可以在我的测试服务器上运行,但不能在我们刚刚开始使用的生产机器(1和1)上运行。似乎存在某种配置问题,但1&;1无法帮助。有人知道这可能是什么吗。

以下是接收短码函数:

<?php
add_shortcode(\'quote-system-processing\', \'qt_system_processing\');

function qt_system_processing() {
    $myuser = $_POST[\'username\'];
    echo "The following was passed (".$myuser.")";
}
?>

1 个回复
SO网友:Dave H

我现在已经找到了polylang插件。当插件处于活动状态且;如果将lang=en\'添加到URL,则$\\u POST变量将丢失。如果我禁用插件,一切正常。因为我需要翻译,所以可能需要使用不同的插件。有人能帮忙吗?

相关推荐

How to secure my php forms

请告诉我如何使用php创建和显示表单的安全建议,我想从安全角度了解我的以下代码是否不受交叉脚本攻击或sql注入或任何形式的攻击或黑客攻击。$form = \'<div class=demessage>\' . esc_html__($message, \"gold\") . \'</div>\' ; $form .= \'<form action=\"\" method=\"post\" name=\"base\">\'; $form .= e