【问题标题】:How to properly set $_GET variables from URL with added GET variables如何使用添加的 GET 变量从 URL 正确设置 $_GET 变量
【发布时间】:2012-12-29 21:54:30
【问题描述】:

如果我要设置一个

if(isset($_GET['var']))
{
 //stuff with only 1 variable
}

如果我的网址是这样的,我该如何正确设置它

http://www.url.com/test.php?var=something&var2=somethingelse

所以当这个 url 有 2 个 get 变量时,它不应该显示 isset($_GET['var']) 中的代码块。相反,它应该显示此块中的代码

if(isset($_GET['var']) && isset($_GET['var2']))
{
 // block of codes with 2 variables
}

但是,第一块代码也会显示出来,因为没有什么可以告诉它不应该显示是否还有其他变量。

【问题讨论】:

  • 我不明白这部分,(它不会在 1 变量中显示任何内容,因为如果我只有 isset($_GET['var']),那么它将显示所有内容即使在 URL 中添加了更多变量)
  • @softgenic 抱歉,我提醒了,它会显示该 isset($_GET['var']) 中的所有内容
  • 好的,你想要的是当两个变量通过 url 传递时,它应该运行 $var1 && $var2 并且应该忽略 $var1。在这种情况下,您可以使用if (isset($var1) && !isset($var2)) { then code will run for if 2nd varaiable is not there }
  • @softgenic 问题是如果用户决定弄乱 URL 并添加其他变量怎么办?不仅是 var2,还有其他一些变量。如果用户在 URL 中有一些其他变量(例如 ?var=something&var4=something),您显示的代码不会阻止用户查看博客,现在他们有 var4 而不仅仅是 var2

标签: php url variables get


【解决方案1】:
if(isset($_GET['var']) && count($_GET) == 1) {
    //stuff with only 1 variable
}

但是,这样做是一个非常糟糕的主意。如果存在其他一些未知的 GET 变量,它会破坏您的站点。虽然这不是,但我可能不希望任何网站从中脱颖而出。

例如,广告服务器可能会自动添加一个以允许目标网站根据需要创建统计信息。

如果您知道预期哪些其他变量(应该是这种情况)更好地明确检查它们是否不存在:

if(isset($_GET['var']) && !isset($_GET['var2'])) {
    // do stuff
}

【讨论】:

  • 这是唯一的方法吗?因为我计划将来添加广告,如果是这样,您将如何解决此问题?
  • 查看我的更新。或者考虑更新您的问题以显示您实际尝试做的事情。可能有更好的解决方案...
  • 谢谢,我更新了我的问题。我想你给了我一些思考的机会。但是,既然您提到广告服务器会在其末端添加变量,我是否能够知道它们将添加哪些变量?也许最好的方法是创建另一个页面来处理第二个变量?
  • 如果用户在 url 中添加了一些其他的 GET 变量怎么办? ?var=something&var4 而不是 var2,他们添加了 var4?有没有其他方法可以解决这个问题?
  • 你为什么要这个?如果您不使用该变量,则不必在意。
猜你喜欢
  • 2011-07-21
  • 1970-01-01
  • 1970-01-01
  • 2019-07-25
  • 1970-01-01
  • 1970-01-01
  • 2021-03-29
  • 1970-01-01
  • 2011-04-07
相关资源
最近更新 更多