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

こんにちは。クッキーを使った名前表示についてお聞きしたいことがあり、質問いたします。
クッキーを使って、ホームページ上にメールを受け取った方の名前、ニックネームを表示させることができると聞きました。

メール配信システム(独自配信)を使って、メールマガジン、ステップメール登録時に、メールアドレスと名前を入力させます。
メール内URLをクリックすると、ジャンプ先のページで、メルマガ登録者それぞれの名前を表示させたいと思っています。

こういった方法はクッキーで可能なのでしょうか。
アマゾンのように、ログインすると表示ではなく、登録者それぞれのユニークURLをクリックするだけで、ジャンプ先のページに、任意の場所に名前を表示させたいのです。
もし可能なら、その方法を教えて頂けますでしょうか。

専門的すぎて、まったく検討がつきません。

ご存じの方がいらっしゃいましたが、ぜひご回答頂ければ幸いです。
もし、私の質問がわかりにくいようでしたら、質問を頂ければと思います。

よろしくお願いいたします。








●質問者: jonasundwibi
●カテゴリ:インターネット ウェブ制作
✍キーワード:こんにちは アマゾン クッキー クリック システム
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● studioes
●27ポイント

色々な方法で実現可能です。

例えば、単純なのは名前をURLに埋め込んでしまう方法。

メルマガ送信時に、ニックネームをURLエンコードした値を埋め込んだアドレスを設定します。

http://hoge.com/melma/にアクセスさせる場合に

http://hoge.com/melma/?nick=ニックネームのようにして、GETパラメタとして与えて、表示先のページでそれを使う。 最初のページで、このニックネームをセッションクッキーに設定する。

一般的な方法としては、ユーザIDを埋め込んで

http://hoge.com/melma/?uid=UserIDの様に配信しておいて、DBからユーザ名を拾う方法です。

クッキーのみと言うのであれば、長期有効なクッキーでニックネームを保持しておいて、メルマに限らず、常時、そのクッキーのニックネームを使うという方法ですが、あまりスマートではありませんね。

◎質問者からの返答

ご回答ありがとうございました。参考にさせて頂きます。


2 ● じゃっくそにっく
●100ポイント ベストアンサー

登録者それぞれのユニークURLをクリックするだけで、

ジャンプ先のページに、任意の場所に名前を表示させたい」

という場合で、クッキーを使わずにやるなら、

HTTPの「GET送信」のしくみを使うと有効です。

そのCGIにジャンプするためのURLの末尾に、

 URL?変数名=値&変数名=値 ...

のように、データを追加することで、

リンク先のCGIで指定された値を送信し、CGI側で受け取ることができます。

考え方で言うと、

http://CGIのアドレス?name=名前&addr=メールアドレス

のような感じで、入れるのですが、

たとえば、

反映さえたい名前が

田中」でメールアドレスが「test@yahoo.co.jp」ならば、

http://CGIのアドレス?name=田中&addr=test@yahoo.co.jp

という風に指定するのですが、

このままでは、日本語や記号類が混ざってしまっていて正しく処理できないので、

「田中」および「test@yahoo.co.jp」という文字列に対し、

URLエンコードという、URLで受け取れるようにする処理を通して、

田中=> %C5%C4%C3%E6
test@yahoo.co.jp => test%40yahoo.co.jp

と変換し、最終的にこのようなリンクを生成します。(CGIはサンプルとしてうちのを使ってます)

生成リンク例:↓

クリックすると、リンク先のページで名前とメールアドレスのデータを受け取っているのを確認できます。

http://f29.aaa.livedoor.jp/~morg/wiki/sample/disp_send.php?name=...

アドレスの詳細

http://f29.aaa.livedoor.jp/~morg/wiki/sample/disp_send.php?name=%C5%C4%C3%E6&addr=test%40yahoo.co.jp

URLエンコード - Wikipedia


リンク先のPHPのスクリプト側では、アドレスで指定したnameとaddrの値を、

$_GET["name"]

$_GET["addr"]

という変数として内容を受け取ることができ、

その内容をページを記述するプログラム内で使うことができます。

例で使っているPHPのスクリプトのソースはこんな感じです。

<html>
<head>
<meta http-equiv="content-type" content="text/html; chaset=EUC-JP">

</head>
<body>
[データ]<br>
<?php 
 // phpスクリプトを記述
 // $_GET[変数名]の中に入っているすべてのデータを列挙する
echo "GETデータ:<br>";
foreach( $_GET as $key => $e)
{
// 変数名と内容を表示
echo " " . $key . "=" . $e . "<br>\n";

}
?>

</body>
</html>

これらの技術を使えば可能です。

◎質問者からの返答

ご回答ありがとうございます。極めて具体的に教えて頂き、感謝します。楽メールというシステムを使っていますが、登録時に姓名をURLエンコードすることができれば、手間が減りそうですね。いろいろ実験してみます、ありがとうございます。


3 ● じゃっくそにっく
●26ポイント

#2でちょっと補足します。すみません。

2のCGIのPHPのスクリプトは、

文字コードがEUC-JPで保存されています。

メモ帳ではなく、EUCが使えるエディタで保存します。

扱えるエディタは、

TeraPad

http://www.vector.co.jp/soft/win95/writing/se104390.html

秀丸

http://hide.maruo.co.jp/software/hidemaru.html

などがあります。

また、PHPスクリプトの3行目のchasetが正しくはcharsetです。

すみません訂正します。

また、クッキーも、PHPやJavaScriptなどで

比較的簡単に使えますが、

クッキーだけを使った方法の場合は、

全く初回訪問のときに適用できないのと、

セキュリティの設定でブロックされていると適用できない

という注意点があります。

PHPでにおけるクッキーの読み書き

http://www.sakura-pc.jp/php/cookie.shtml

◎質問者からの返答

了解しました。ありがとうございます。

関連質問


●質問をもっと探す●



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