広告からサイトのトップにお客様が来た際に、URLの後ろにアフィリエイトIDが付与されるのですが、そのIDを、お客様が購入完了ページへ行くまで、保持する必要があります。
最初にサイトに訪れた際にIDを取得する方法として、下記のコードをトップページに入れました。
$mae =$ENV{'QUERY_STRING'};
@a = split(/=/, $mae);
$ato = @a[1];
それにより、最初にサイトに訪れた際にIDを取得することはできるのですが、お客様が他のページに行き、再びトップページに戻った際に、再度IDを取得する作業を行ってしまいます(実際には、二回目以降はID以外の文字をIDとして取得します)。そのため、URLがトップページに行く度に変化していくことになってしまいました。
無事にIDを購入完了ページまで保持するようにするにはどうしたらいいのか最初から順を追って教えていただきたいです。
ほとんど知識がありませんので、初心者にもわかるように教えていただければうれしいです。
宜しくお願い致します。
サイトを構成している言語が何か分かりませんが、if文を使うことで簡素に済ませる事ができます。
まず、サイトに初めてアクセスした時にIDを取得してページを表示させます。
ライブラリにcgi-lib.plを使用した場合で説明します。ここでは、スクリプト名を$scriptに代入しています。
sub main {
#フォームデータを処理する(cgi-lib.plを使用)
my %form;
&ReadParse(\%form);
#変数$form{'id'}が空白の場合、IDを取得させる
if ($form{'id'} eq ""){
$mae =$ENV{'QUERY_STRING'};
@a = split(/=/, $mae);
$form{'id'} = @a[1];
}
#ページ出力
print "Content-type:text/html; charset=Shift_JIS\n\n";
print <<"EOF";
<html>
<head>
<title></title>
</head>
<body>
トップページ
<a href="script.cgi?mode=sub&id=$form{'id'}">サブページへ</a>
</body>
</html>
EOF
exit;
}
上記スクリプト内の「<a href=""></a>」内にidを組み込んでおけば、どのページへ行ってもIDを持って行く事が可能です。
Cookieを使った方法もあるかもしれませんが、知識不足な為ご案内できませんでした。
参考にならなかったら、すみません。
下記スクリプトをcgi-lib.plと同じディレクトリで実行させます。cgi-lib.plは、インターネットで入手することが可能です。
sample.cgi?mode=sub&id=$form{'id'}のようにリンクを貼ると、下記スクリプトでは$form{'id'}にIDを入れてフォームとしてデータをsample.cgiへ送ります。$form{'id'}にIDが格納されていない時は、新たにIDを挿入します※1。
sample.cgiの中身
#!/usr/local/bin/perl
require './cgi-lib.pl';
$script = 'sample.cgi';
#フォームデータを処理する(cgi-lib.plを使用)
%form;
&ReadParse(\%form);
#変数$form{'id'}が空白の場合、IDを取得させる※1
if ($form{'id'} eq ""){
$mae =$ENV{'QUERY_STRING'};
@a = split(/=/, $mae);
$form{'id'} = @a[1];
}
if ($form{'mode'} eq "sub"){sub_page();}
elsif ($form{'mode'} eq "top"){main();}
main();
exit;
#トップページ
sub main {
#ページ出力
print "Content-type:text/html; charset=Shift_JIS\n\n";
print <<"EOF";
<html>
<head>
<title>トップページ</title>
</head>
<body>
トップページ
<a href="sample.cgi?mode=sub&id=$form{'id'}">サブページへ</a>
</body>
</html>
EOF
exit;
}
#サブページ
sub sub_page {
#ページ出力
print "Content-type:text/html; charset=Shift_JIS\n\n";
print <<"EOF";
<html>
<head>
<title>サブページ</title>
</head>
<body>
サブページ
<a href="sample.cgi?mode=top&id=$form{'id'}">トップページへ</a>
</body>
</html>
EOF
exit;
}
実例では、このような感じになります。簡素なコードですみません。使用の際は自己責任でお願いします。
sample.cgiを実際にそのまま作ってみたのですが、このcgiを、実際にサイトのトップページ、トップページ以外の各ページへのID受け渡しにどう使えるのかわかりません。
本当に知識がないもので、よろしくお願いします。
ありがとうございます。言語は、cgiかと思います。
上記のスクリプトを試したいのですが、使用方法がわかりません。
具体的にどのようにすればいいのか、教えて頂けないでしょうか。
知識がほとんどないですので、お手数おかけ致しますが、宜しくお願い致します。