我创建了以下代码来解释我的问题。
首先,我有一个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.")";
}
?>