【问题标题】:Get string (part of text) of the website address获取网站地址的字符串(部分文本)
【发布时间】:2015-01-20 17:38:52
【问题描述】:

我正在尝试获取并编写一个作为搜索查询结果出现的自定义词。

本例中的单词例如是“test”(已搜索单词 test): http://www.mialias.net/?s=test&lang=es

我正在尝试将它放在 WordPress 页面上的文本上,如下所示:

<h2>Search results for:</h2><h3>test</h3>

知道如何获取它并用 PHP 编写它吗?

【问题讨论】:

  • &lt;?php echo htmlspecialchars($_GET['s']); ?&gt; ???

标签: php wordpress


【解决方案1】:

这两个答案在技术上都是正确的。在这两者中,$_GET 是最好的方法。

请不要这样做。

在您的输出中使用未经过滤的 $_GET['s'] 会在您的页面中创建一个几乎任何开发人员都可以利用的漏洞。他们需要做的就是在 URL 上传递一个正确设计的有效负载,然后您的页面就可以执行任意代码。使用filter_var() 函数在显示字符串之前对其进行清理。

filter_var()

http://php.net/manual/en/function.filter-var.php

过滤器类型

http://php.net/manual/en/filter.filters.php

清理过滤器

http://php.net/manual/en/filter.filters.sanitize.php

代码如下:

<?php
$filterd_s = filter_var($_GET['s'],FILTER_SANITIZE_STRING);
?>
. . . Skipping stuff here . . . 
<h2>Search results for:</h2><h3>test <?php echo $filtered_s; ?></h3>

这将安全地显示变量。如果你的用户传入了一些不好的东西,你可能会看到一些奇怪的东西,但这不会造成伤害。

HTH,

=C=

【讨论】:

  • 我喜欢使用filter_input,因为它会在诸如魔术引号之类的指令更改值之前获取值:filter_input(INPUT_GET, 's', FILTER_SANITIZE_STRING)
  • 桑尼。没有线索。我认为这是有效的建议。 :S
【解决方案2】:

你可以使用request

<h2>Search results for:</h2><h3>test <?php echo $_REQUEST['s']; ?></h3>

【讨论】:

    猜你喜欢
    • 2021-12-22
    • 1970-01-01
    • 2012-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多