在短码打印空数组中使用$_GET

时间:2020-04-09 作者:user1422434

我正在使用代码片段插件,允许从Wordpress管理面板创建短代码。我用一个简单的快捷码来打印一些信息,效果很好。无论如何,如果参数“error”在url中,我想让它添加一些信息。

为了做到这一点,我正在这样做:

add_shortcode( \'my_shortcode\', function () {

    $out = \'\';

    print_r($_GET); //--> prints Array ( )
    if(isset($_GET[\'error\'])){
        $out .=\'<div id="login_error">El usuario o contraseña no es correcto.</div>\';   
    } 

    $out .=\'HTML info\';

    return $out;
} );
无论如何,我的URL是http://localhost/login/?error=true 我认为这应该奏效。对这个问题有什么想法?

2 个回复
最合适的回答,由SO网友:user1422434 整理而成

阅读有关此类问题的信息(因为我的模板不是问题所在),这是一个全新的安装。我读到wordpress建议使用$_REQUEST 相反$_GET (无论如何,我看到其他人可以使用$_GET 没有问题)并尝试$_REQUEST, 现在它开始工作了。

SO网友:Stoian Delev

$\\u GET是一个glob变量。它是在发送html表单数据或访问链接时触发/创建的。当从表单发送时,您可以在“操作”atr中添加需求信息。但从你的例子中,我只看到你从函数中返回了一些字符串。。。没有看到将其添加到$\\u GET的部分。。。

根据建议,您可以使用$\\u REQUEST[“GET”]或$\\u SERVER[\'REQUEST\\u METHOD\']allso

让我们后退一秒。-如果有一些特定的条件(\'错误)和什么???,则需要向get请求添加一些额外的数据???例如:

这将直接将数据添加到url并重定向到da位置,执行正确的转义。。这是一个例子

函数get\\u server\\u info(){

$server = array();
if(isset($_SERVER[\'REMOTE_ADDR\'])){
 $server["ip"] = $_SERVER[\'REMOTE_ADDR\'];
}else{ $server["ip"] = false; }

if(isset($_SERVER[\'HTTP_HOST\'])){
 $server["host"] = $_SERVER[\'HTTP_HOST\'];
}else{ $server["host"] = false; }

if(isset($_SERVER[\'QUERY_STRING\'])){
 $server["query"] = $_SERVER[\'QUERY_STRING\'];
}else{ $server["query"] = false; }

if(isset($_SERVER[\'HTTP_REFERER\'])){
 $server["from"] = $_SERVER[\'HTTP_REFERER\']; 
}else{ $server["from"] = false; }

if(isset($_SERVER["REQUEST_URI"])){
  $server["requested"] = $_SERVER["REQUEST_URI"];
}else{ $server["requested"] = false; }

return $server;
}

函数redirect\\u to($location,$content=“text/html”){

header("Location: ".$location);
header("Content-Type: ".$content);
exit;
}

这会将您重定向到包含额外url数据的原始intendet位置,例如

函数add\\u to\\u url(){

$server=get\\u server\\u info();

如果(你的情况){

    $to_add =\'<div id="login_error">El usuario o contraseña no es correcto. 
    </div>\';

    $redirect_to =  $server["requested"]."&".$to_add;

    redirect_to( $redirect_to);
}

}

相关推荐

What does this shortcode do?

function my_shortcode($atts, $content = null){ extract(shortcode_atts(array(\"type\" => \"warrning\"), $atts)); return \".$content.\"; } add_shortcode(\"warrning_dialog\", \"my_shortcode\"); 我知道它会创建短代码[warning\\u dialo