人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

携帯用物販サイトを運営しておりますが、ポケットアフィリエイトというアフィリエイトシステムを導入しようとしております。
広告からサイトのトップにお客様が来た際に、URLの後ろにアフィリエイトIDが付与されるのですが、そのIDを、お客様が購入完了ページへ行くまで、保持する必要があります。
最初にサイトに訪れた際にIDを取得する方法として、下記のコードをトップページに入れました。
$mae =$ENV{'QUERY_STRING'};
@a = split(/=/, $mae);
$ato = @a[1];

それにより、最初にサイトに訪れた際にIDを取得することはできるのですが、お客様が他のページに行き、再びトップページに戻った際に、再度IDを取得する作業を行ってしまいます(実際には、二回目以降はID以外の文字をIDとして取得します)。そのため、URLがトップページに行く度に変化していくことになってしまいました。

無事にIDを購入完了ページまで保持するようにするにはどうしたらいいのか最初から順を追って教えていただきたいです。
ほとんど知識がありませんので、初心者にもわかるように教えていただければうれしいです。
宜しくお願い致します。

●質問者: masato-7
●カテゴリ:インターネット ウェブ制作
✍キーワード:ato mae QUERY_STRING URL お客様
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● cabeliau
●47ポイント

サイトを構成している言語が何か分かりませんが、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かと思います。

上記のスクリプトを試したいのですが、使用方法がわかりません。

具体的にどのようにすればいいのか、教えて頂けないでしょうか。

知識がほとんどないですので、お手数おかけ致しますが、宜しくお願い致します。


2 ● cabeliau
●23ポイント

下記スクリプトを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受け渡しにどう使えるのかわかりません。

本当に知識がないもので、よろしくお願いします。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ