2012-04-29 7 views
0

は、私は彼がRegex、PHPおよびReferrer?

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コードがあるが、その理由はworking.IDKありませんか?

<?php 

    session_start(); 

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

なぜこのスクリプトが機能しないのですか。このスクリプトではどのような変更が必要ですか?

また、この関数を "Onclick"ボタンと呼ぶ必要があります。 ボタンをクリックすると、親ページの参照が親ページ自体に変更されます。 ボタン上でこの関数をonclickと呼ぶにはどうすればいいですか? よろしくお願いします。

+1

あなたは正規表現を使用していません。文字列をそのまま 'HTTP_REFERER'と比較しています。あなたは 'ga'クエリパラメータでURLから来るユーザをリダイレクトしたくないですか? – Nadh

+0

ええ、私は彼がhttp://www.something.com/url?sa=xxxから来たときにのみリダイレクトされるようにしたい、その後は何でも –

+0

しかし、それは正規表現を使用したい、あなたは私に方法を示すことができる方法これに対して正規表現を実装できますか? –

答えて

0
<?php 
    if(preg_match("/google\.com(.+?)sa=(.+?)/", $_SERVER['HTTP_REFERER'])) { 
     redirect(); 
    } 
?> 
+0

しかし、ユーザーがanother.com/url?sa=xxx –

+0

から来た場合このスクリプトは機能しません –

+0

あなたはドメイン固有であることを意味します(例:google.comのみ)。 – Nadh

関連する問題