CGI-BBS > CGI > Perl > Perlについてアフィリエイト用タグを設置したい。


カレッヂ
カレッヂ


質問者 いきなりシステム部  投稿日 2006/6/22(木) 18:08:52
初めまして、只今「フォームメール v1.21 」を使用しているのですが、この度アフィリエイトを開始する事になったのですが、
アフィリエイト用のタグ下記の設置(設定)の仕方がわからず困っております。
どなたかご教授いただけませんでしょうか?

下記が設定したいタグです。
 
<img src="https://px.a8.net/cgi-bin/a8fly/sales?pid=s0000000*******
&so=申込番号&si=3100.1.3100.A8&ts=yyyymmddhhmmss" width="1" height="1">


A8のマニュアル通りに完了画面に下記タグを挿入したのですが、

<img src="https://px.a8.net/cgi-bin/a8fly/sales?pid=s0000000*******
&so=$date_now&si=3100.1.3100.A8&ts=yyyymmddhhmmss" width="1" height="1">

といった形で申込み番号部分が「&so=$date_now」と表示(挿入したコードのまま)
されておりました。パラメータ値のまま(CGIからdeteを取得しようとしてみました)
で表示されている部分を本来であれば申込み毎に番号が動作するよう、
ユーザーユニーク値(半角英数最大50文字)を表示しなければならないそうです。

タイムスタンプ+ユニーク値でもいいそうなのですが・・・敷居が高すぎます。

末尾のts(タイムスタンプ)は設定しなくても良いとの事なのですが、肝心の申込番号
部分がどうしてもうまくいきません。

お手数をお掛けいたしますが、よろしくお願いいたします。

【習熟度】初めて

回答者 しあわせのツボ  [削除]  投稿日 2006/6/22(木) 19:40:21
print '<img src="https://(略)&so=ユニーク値&(略)" width="1" height="1">';
のように記述していませんか?
'シングルクォート'で囲んだ場合、変数は展開されず書いたそのままがprintされます。
基本の解決法は"ダブルクォート"で囲むことですが、そうするとタグに使う"をエスケープしないといけないので
print "<img src=¥"https://(略)&so=$変数&(略)¥" width=¥"1¥" height=¥"1¥">";
のように面倒なことになります。(化けるので全角で書きましたが、¥は半角です)

回避方法はいくつかありますが、今回は
print  qw (<img src="https://(略)&so=$変数&(略)" width="1" height="1">);
でどうでしょうか。
質問者 いきなりシステム部  [削除]  投稿日 2006/6/23(金) 10:57:26
しあわせのツボ様
早速のお返事、ありがとうございます。頂ましたアドバイスを元に下記通り設定致しました。

print qw (<img src="https://px.a8.net/cgi-bin/a8fly/sales?pid=s0000000*******
&so=$date_now&si=3100.1.3100.A8" width="1" height="1">);


ですがソースを表示して確認してみましたが、下記の様な表示となっており変数は展開
できておりませんでした。

<imgsrc="https://px.a8.net/cgi-bin/a8fly/sales?pid=s0000000*******
&so=$date_now&si=3100.1.3100.A8"width="1"height="1"><form>


又、下記を試してみましたCGIがうまく動作しませんでした。

print "<img src=\"https://px.a8.net/cgi-bin/a8fly/sales?pid=s0000000*******
&so=$date_now&si=3100.1.3100.a8\" width=¥"1\" height=¥"1\">";

何度もお手数をお掛けして大変申し訳ございませんが、ご指導の程よろしくお願い致します。
回答者 しあわせのツボ  [削除]  投稿日 2006/6/23(金) 14:08:20
うーむ…。では3行にバラしましょう。
print '<img src="https://px.a8.net/cgi-bin/a8fly/sales?pid=s0000000*******&so=';
print $date_now;
print '&si=3100.1.3100.A8" width="1" height="1">';
これで変数展開されないとしたら、原因は別のところにあります。
質問者 いきなりシステム部  [削除]  投稿日 2006/6/23(金) 16:35:54
しあわせのツボ様

連日の迅速な回答、心より感謝いたします。
お陰様で無事に展開でき、完了画面にも下記の様に無事に表示されました。

<img src="https://px.a8.net/cgi-bin/a8fly/sales?pid=s0000000*******
&so=Fri, 23 Jun 2006 16:20:46 +0900 (JST)&si=3100.1.3100.A8" width="1" height="1">

この度は本当にありがとうございました、心よりお礼申し上げます。m(_ _)m

返信(回答)する

 


Web裏技