【问题标题】:Regex, Php And Referrer?正则表达式、PHP 和推荐人?
【发布时间】:2012-04-29 10:29:53
【问题描述】:

我正在尝试编写脚本,以在用户来自类似网站时重定向用户

http://www.something.com/url?sa=xxx



**http://www.something.com/url?sa=**t&rct=j&q=&esrc=s&source=web&cd=10&ved=0CHoQFjAJ&url=http%3A%2F%2Fblackorwhiteipad.blogspot.com%2F2012%2F03%2Fblack-or-white-ipad.html&ei=etyET5LlFoyk8QTZ0cXMCA&usg=AFQjCNEXBM1y-KlBQOORpuxqLAzVqzlGTQ&sig2=JIweuoccpZFkNKj_Xy04JA

但是如果用户来自这个

http://www.something.com/url?**ga**=aldslakslaskl

他不应该被重定向。

xxx = 后面的更多字符串。 (未知)

但是如果用户来自其他推荐人,脚本不应该做任何事情

这是我的 php 代码,但它不工作。IDK 为什么?

<?php

  session_start();

 if ($_SERVER['HTTP_REFERER']=="http://www.something.com/url?**sa**=aldslakslaskl*string*") { 
redirect();
}
else
{donothing();
}
?>

为什么这个脚本不起作用,这个脚本需要什么修改?

另外,我需要调用这个函数“Onclick”按钮。 但是如果单击按钮,则父页面的引用将更改为父页面本身。 那么我怎样才能在页面上调用这个函数 onclick 一个按钮呢? 问候

【问题讨论】:

  • 您没有使用正则表达式。您正在将字符串与 HTTP_REFERER 进行比较。您不想重定向来自带有ga 查询参数的网址的用户吗?
  • 是的,我希望用户仅在来自 something.com/url?sa=xxx ,xxx- 之后的任何内容时才被重定向
  • 但是它想使用正则表达式,你能告诉我如何实现正则表达式吗?
  • 刚刚发布了一个答案。试一试。

标签: php regex refer


【解决方案1】:
<?php
    if(preg_match("/google\.com(.+?)sa=(.+?)/", $_SERVER['HTTP_REFERER'])) {
        redirect();
    }
?>

【讨论】:

  • 但如果用户来自 another.com/url?sa=xxx
  • 您的意思是您希望它是特定于域的,例如,仅来自 google.com?
  • 您是否希望将除 google 以外的所有用户重定向到同一个地址?
  • @ValNolav 检查我的问题,我对其进行了编辑以避免任何混淆。
  • 完美,只要在“我的页面”上的按钮上实现它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-05
  • 2014-05-28
  • 2021-09-20
  • 2014-06-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多