2

誰かが私のリストにサブスクライブすると、オートレスポンダー (getResponse) から GET 変数を受け取ります。これらを別の GET 要求で調査プロバイダーに渡す必要があります。PHP の「header()」関数を使用していますが、メールから「@」文字が削除されます。

これが私のPHPコードです:

// retrieve email from GET
$email = $_GET['email'];

// pass on email
header("Location: http://surveyprovider.com/surveyID/start?email=$email");  

getResponse が PHP スクリプトを呼び出したときに、 "? email=someguy@someserver.com "を受け取ったとします。スクリプトを実行すると、結果の HTTP 呼び出しは次のようになります。

http://surveyprovider.com/surveyID/start?email=someguysomeserver.com

電子メール アドレスに「@」が含まれていないことに注意してください。

この問題を解決するにはどうすればよいですか?

セッション変数を使用できません (この質問で提案されているように: How to pass variables received in GET string through a php header redirect? ) アンケート プロバイダーではセッション変数を取得できないため (カスタム PHP スクリプトは使用できません)。

私に何ができる?

4

1 に答える 1

2

その URL を適切にエンコードする必要があります。現在、有効な URL を送信していません。

header('Location: http://surveyprovider.com/surveyID/start?email=' . urlencode($email)); 

は次の@ようになり%40ます。

http://surveyprovider.com/surveyID/start?email=test%40example.com

http://php.net/manual/en/function.urlencode.php

于 2013-08-08T19:56:41.263 に答える