在wordpress页面中,我有一个表单,在提交botton的压力之后,重新加载相同的页面,它会发送一封包含表单中信息的电子邮件。问题是,一旦我尝试保存页面,如果在PHP代码中有$ _GET [],$ _ POST []或$ _REQUEST []数组,wordpress不允许我保存更改,并且我写的最后一个代码(带有$ _variables的代码)消失了。如果我创建一个外部PHP脚本并在wordpress页面中调用它,当我连接到页面时会出现“内部服务器错误”。
我尝试了两个不同的php wp插件,我在两者中都有同样的问题。
有谁知道为什么?
编辑: 这是我尝试的代码示例,它是我发现的最简单的示例,它仍然无效:
<?php
function test() {
echo $_POST["user"];
}
if (isset($_POST[])){ //If it is the first time, it does nothing
test();
}
?>
以下是表格:
<form action="" method="post">
<input type="text" name="user" placeholder="enter a text" />
<input type="submit" value="submit" onclick="test()" />
</form>
无论如何,就好像wordpress解析器识别变量并拒绝保存,如果我写的,例如,只有以下代码`
<?php
$_GET[];
?>
它给了我同样的问题,但是写了
<?php
$_HELLO[];
?>
虽然我在浏览器中调用页面时返回错误(显然考虑到$ _HELL不存在),但它让我保存。
编辑2:非常奇怪,如果我用
打印所有的帖子数组`<?php
var_dump($_POST);
?>`
它有效,它打印“array(1){[”user“] =&gt; string(3)”123“}”, 如果我尝试使用关键字“用户”访问元素[]它给我带来错误!
答案 0 :(得分:0)
$ _ POST和$ _GET也适用于wordpress ..
删除$ _POST上的方括号[],它将起作用。
<form action="" method="post">
<input type="text" name="user" placeholder="enter a text" />
<input type="submit" value="submit" onclick="test()" />
</form>
<?php
function test() {
echo $_POST["user"];
}
if (isset($_POST)){ //If it is the first time, it does nothing
test();
}
?>
希望这会对你有所帮助!!