我试图在我的WordPress网站上插入一些php代码,但它可能会因为直接访问而发出安全警告$_POST
变量
而不是$name = $_POST[\'name\'];
, 我可以使用$name = filter_input(INPUT_POST, \'name\');
然而,我不知道应该使用哪一段代码来代替if(isset($_POST) && !empty($_POST)) { //some code }
?
提前感谢您的帮助。
我试图在我的WordPress网站上插入一些php代码,但它可能会因为直接访问而发出安全警告$_POST
变量
而不是$name = $_POST[\'name\'];
, 我可以使用$name = filter_input(INPUT_POST, \'name\');
然而,我不知道应该使用哪一段代码来代替if(isset($_POST) && !empty($_POST)) { //some code }
?
提前感谢您的帮助。
filter_input
是正确的方式。如果它没有返回任何有效的内容,它将返回null
:
$myvar = filter_input( INPUT_POST, \'something\', FILTER_SANITIZE_STRING );
if ( empty( $myvar ) ) {
// Do whatever you would have done for ! isset( $_POST[\'something\'] )
}
// Use $myvar
filter_input
如果找不到请求的索引,则不会抛出任何通知,因此这就像isset
内置于函数中。Edit: 只需确保使用FILTER_
要清理或验证,请注意,PHP文档中记录了一些关于这些的问题。对于大多数通用用例,它们应该可以正常工作,但一旦您有了用户输入,就要始终正确地验证它(与直接从$_POST
).
虽然该错误不是直接访问$\\u POST变量引起的,但我能够将替代方法写入if(isset($_POST))
.
首先,您需要在表单中为提交按钮命名。您的表单应该如下所示:,
<form action = "" method = "post">
Some fields.
<input type = "submit" name = "submit_button" />
</form>
然后在php方面,$submit = filter_input(INPUT_POST, \'submit_button\');
if (isset($submit)){
//some code.
}
希望这对别人有帮助。我尝试在存档中列出自定义帖子类型的页面。php,我得到以下错误消息:为foreach()提供的参数无效$post_type = get_post_type( get_the_ID() ); $pages = get_pages(array( \'post_type\' => $post_type ) ); foreach ($pages as $page ) { echo \'<div class = "prop-sidebar-sec