使用URL中的查询字符串在页面上显示内容


9

我想根据此人从那里到达的页面在页面上说些什么。我可以将指向该页面的链接设置为:

www.example.com/page?parameter=myparameter

有没有一种方法可以访问该参数,以便使其在页面上的内容中显示?


抱歉,我知道答案只是示例,但我发现必须注意不要按原样使用它们,这一点很重要。用户输入(如查询字符串参数)切勿未经处理就回显,以防止XSS攻击到目前为止,所有答案都容易受到XSS的攻击,并且至少应包含警告。
kubi

Answers:


4

您可以使用PHP会话,在查询对象中查找请求,或将$ _GET与您的URL一起使用,但这不是敏感信息...

像这样的东西;

从网址中获取旅程名称

$tripname = $_GET['tripname'];

在标题中使用它;

if(isset($tripname)) echo '<h1>Plan Your Trip To ' .$tripname. '</h1>';


谢谢!这不是敏感信息。我将如何去做?
user3515 2013年

这可能会帮助您:w3schools.com/php/php_get.asp

谢谢!我可以直接将其放在页面上,还是需要将其放入模板文件中?
user3515 2013年

取决于您需要的位置-如果仅将其显示在运行在一个模板上的页面上,则可以将其放在此处。信息从何而来,最终将在何处?
2013年

故事是这样的:我有很多“旅行页面”,每个页面都有关于我们进行的某个旅行的信息。然后,他们单击“注册”,然后将其带到带有注册表格(重力表格)的页面。我希望页面(或表单顶部的说明)说“填写此表单以注册xxxx旅行”。
user3515 2013年

4

根据OP在其问题内的回答:

在您的帮助和Googling的帮助下,我编写了一个返回任何url参数值的简码。这里是:

//THIS IS A CUSTOM SHORTCODE TO DISPLAY A PARAMETER FROM THE URL
function URLParam( $atts ) {  
    extract( shortcode_atts( array(
        'param' => 'param',
    ), $atts ) );
    return $_GET[$param];  
}
add_shortcode('URLParam', 'URLParam'); 

我使用这样的简码trip_type从我的网址获取:

[URLParam param='trip_type']

这对我有所帮助,谢谢!如何从表单发布数据而不是查询字符串中获取值?
阿姆贾德

1

这是完成此操作的另一种好方法。这不需要简码,并且会自动更新您创建的每个包含参数“ trip”的页面!

1)导航到您的主题文件夹,然后打开functions.php(如果缺少它,则创建它)

2)添加以下代码并保存:

<?php 
    add_filter( 'the_content', 'my_trip_filter' );

    function my_trip_filter( $content ) {
        if ( isset($_REQUEST['trip']) && is_single() ) {
            $content = "<h1>Fill out this form to register for the " . $_REQUEST['trip'] . " trip</h1>" . $content;
        }

        return $content;

    }
?>

每次您使用函数the_content()函数打印博客信息时,此代码都会使用the_content过滤器覆盖。它检测请求的页面是否是单个页面/帖子,而不是存档。可以向其添加其他逻辑或替代。只要确保您返回$ content,您想要的任何消息都会返回到屏幕。 请享用!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.