2016-07-28 4 views
0

パラメータを使用して表示する画像を決定するメールでPHP画像を送信しています。この画像は、Gmail以外のすべてのメールクライアントに表示されます。この理由は、リンクの周りにラップし、それに接続されているパラメータを無視してPHPファイルを示して、Googleのユーザーコンテンツプロキシによるものです。Gmailのプロキシメールでパラメータが無視される

私はこの質問、 Problems with tracking pixels and Gmail proxyと同じ問題を抱えているように見えます。私はそれが私が$ _GETが、 $ _SERVER [「REQUEST_URI」]を使用していませんでしたtracking.phpに代わり、その後https://www.example.com/tracking.php/order_id=1 を使用して解決し、/ ORDER_ID =文字列を解析され

:彼らのソリューションは、以下の通りでした。

問題はどのようにこれを行うのか分かりません。私はtest.php?par=1のファイルのURLをご覧ください。

とき、私は$ _GETを使用してパー引くことができています。ファイルのURLをtest.php/par=1に変更すると、404エラーが表示されます。

$ _SERVER ['REQUEST_URI']を使用してURL全体を取得できるので、最初にtest.phpにアクセスしながら/par=1をパラメータとして使用するにはどうすればよいですか?

答えて

3

test.php?par=1は、クエリ文字列キーがparで値が1test.phpというスクリプトです。

あなたはpathinfoが有効になっていない場合は、test.php/par=1は、ディレクトリ名test.php、およびpar=1という名前のそのディレクトリに存在しないファイルです。 PHPは$ _GETにパス情報データを解析しないこと

は注意してください。実際の?key=val型のクエリ値のみが処理されます。 $_SERVER['PATH_INFO']を見つけて自分で解析する必要があります。

+0

ありがとうございました!! Pathinfoは私が有効にしなければならなかったものでした。 – cul8r

0

私はこの作業を取得することができたとGmailのテスト。私のPHPイメージが正常に表示されます!

私はこれからの私test.phpファイルに編集:?

test.phpを/ヴァル= 1

test.phpをする。これにヴァル= 1

$value = $_GET['val']; 

$uri = $_SERVER['REQUEST_URI']; 
$path = substr($uri, strpos($uri, "val=")); 
$delim = 'alv='; 
$tok = strtok($path, $delim); 

$tokens = array(); 
while ($tok !== false) { 
    array_push($tokens, $tok); 
    $tok = strtok($delim); 
} 
$value = $tokens[0]; 
関連する問題