• ベストアンサー

ショッピングカートの「カートの中身」システムについて

商品購入ボタンを押すと、「カートの中身」画面に移動します、 カートの中身のデータ保存方法でお聞きしたいのですが。 クッキー設定が無効でURLの後のデータ渡し、hidden渡しをしない場合 の方法をご教授お願いしたいです。 下記のサイトではPHPで書かれてますがカートの中身データが「Temporary Internet Files」に保存されるようです。 出来ればperlで実現できるのであれば よろしくお願い致します。 ttp://www.4d-nail.com/

  • FALJP
  • お礼率100% (1/1)
  • Perl
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

セッションIDを渡してますね。 表には表れませんがfirefox + Live HTTP headersで確認すると GET /search?sourceid=navclient-ff&features=Rank&client=navclient-auto-ff&googleip=O;null;235&ch=8dc19095c&q=info:http%3A%2F%2Fwww.4d-nail.com%2Fnail_base.php HTTP/1.1 となってます。  ただし、この方法だとある程度個人情報をサーバー側に保存することになります。  ですので、簡単にしようと思ったら、適当に暗号化したPATH_INFOを使うというのもありかと。 下記サイトなどが参考になるかと 【参考サイト】 PHP:Cookieを使わずにセッションを使う   http://www.res-system.com/weblog/item/583 cookieを使わずにセッション管理する。|PHPプログラムメモ|プログラムメモ   http://logic.stepserver.jp/data/archives/481.html こちらは、Perlについて 【参考サイト】 Perlでセッションを使う その2:クッキーを使わず、POSTやGETでセッションIDを渡す - ウィリアムのいたずらの開発日記   http://blog.goo.ne.jp/xmldtp/e/f86b615441324a29fe418f719c10af54

FALJP
質問者

お礼

自己解決しました。 >クッキー無効、ブラウザを閉じてまたカート中身を開いても保存されているのです そんな機能付いていなかったです。 ただキャッシュが残ってて前の中身が見えただけでした。(実際には支払い出来ない) キャッシュ無効してエラーが出ずカートに商品いれれたので、勘違いしました。 新しいクッキーの作り方とか出てきたのかと思いました。 本当にご迷惑お掛けしてすいません。

FALJP
質問者

補足

ご回答、ありがとうございます。 Perlの参考サイトの方をテストしてみました。 保存され数字が増えて行くのが確認出来ました セッションIDの事勉強になりました。有難う御座います。 4dnailさんの所ではクッキー無効、ブラウザを閉じてまたカート中身を開いても保存されているのですが、どうやってクライアント側にセッションIDを覚えさせているか分かりますか? (1)ブラウザ設定からクッキーを削除しても商品は消えない (2)「Temporary Internet Files」を削除した場合に商品が消える ユーザーログインしなくて、クッキー無効でもカートの中身がクライアント側に保存される形です。 セッションIDにIPアドレスも付けてサーバに保存した方がいいですか? よろしくお願い致します

関連するQ&A

  • ショッピング・カート・ツール

     以下の条件を満たすショッピング・カート・ツールを探しています。 ・ HTMLページのフォームから商品を入れることができる。 ・ 地域ごとに送料を設定できる。 ・ 支払方法の選択ができる。 ・ ギフトなどの設定ができる。 ・ クッキーが有効になっていなくても使用できる。  これに加え以下の機能があれば、尚好ましいです。 ・ GUIで設定ができる。 ・ MySQLで在庫管理ができる。 ・ MySQLで顧客管理ができる。 ・ 配送日の指定ができる。  PHPが好ましいですが、Perl等でも構いません。  適当なツールを知っておられる方は、教えていただければ有難いです。

    • 締切済み
    • PHP
  • Temporary Internet Filesのウインドウ内にクッキーが見あたりません

    今、自分で書いたクッキーを書込み仕組みが正常に動くか検証しているところです。 この目的のため、クッキーを書き込むための簡単なJavascriptだけを配置したhtml書類を作ってデスクトップに置いてあるのですが、先週はこの書類をダブルクリックして開くと、ブラウザの「ツール」メニューから「インターネットオプション」に入って「インターネット一時ファイル」の項目の「設定」ボタンから「ファイルの表示」で開いたTemporary Internet Filesのウインドウ内に、今書き込まれたクッキーが最新ファイルとして現れていたのですが、今日また同じことをしてみたところ、今日はクッキーがどこにも見あたりませんでした。 よく見ると、他のサイトが発行したクッキーと思われるものも見あたりません。 しかし、例えばいつも使っているサイトの、クッキーを使っているショッピングカートに私の個人情報が自動記入されるので、少なくともこのサイトのクッキーは私のPCに保存されているはずです。 もしや、WindowsのOSかウイルスバスターの自動アップデートでクッキーがTemporary Internet Filesのウインドウ内に表示されないようになってしまったのでしょうか? 今自分のPCに保存されているクッキーをテキストエディタで開いてみるにはどうしたら良いでしょうか?

  • Temporary Internet Files の使い方教えてください。

    以前WINDOWS Meを利用してた時は『Temporary Internet Files』 で 動画や画像なの身田サイトなど履歴で残っていたので Temporary Internet Filesのなかから 拾って保存したりしてたんですが いまのXPに変えて Temporary Internet Files を見るとファイルがひとつもありません。。クッキー削除もしてないのに 毎回ありません。 これは何か設定あるんでしょうか?以前のように Temporary Internet Files 活用したいんです。 詳しい方教えて頂きたいです。お願いします。

  • phpでショッピングカート機能を作りたい。

    PHPで店舗のショッピングカートを作ろうとしています。 data 1 リンゴ 100円     2 ミカン  80円     3 バナナ 50円 PHPコード <form action="" method="post"> <?php $sql = "SELECT * FROM list"; $sth = $dbh->prepare($sql); $sth->execute(); while ($row = $sth->fetch()) { $id = $row["id"]; $name = $row["name"]; $price = $row["price"]; $image = $row["image"]; echo <<<EOT <table cellspacing="0" cellpadding="0" width="605" height="150"> <tr> <td rowspan="5" valign="top"><img src="../kanri/image/goods/$image" border="0" /></td> <form action="" method="post"> <input type="hidden" name="$id" value="$id" /> <input type="hidden" name="$name" value="$name" /> <input type="hidden" name="$price" value="$price" /> <td align="left" bgcolor="#eee8aa" width="400"><b> $id. $name</b></td> </tr> <tr> <td colspan="2" bgcolor="#ccccff"><p><font color="#000088"><b>税込 :$price </b></p></td> </tr> <td colspan="2" bgcolor="#e6e6e6"><p> 個数 : <select name="number"> <option>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> </select> <input type="submit" name="submit_cart" value="カートに入れる" /></p> </td> </tr> </table> </form> <br /> EOT; } ?> <hr></hr> <div align="center">カートの中身</div> <?php if (isset($_POST["submit_cart"])) { if(!isset($name)){ $name = $_POST['name']; } if(!isset($price)){ $price = $_POST['price']; } if(!isset($number)){ $number = $_POST['number']; } $total = $price * $number; echo "<div align='center'><p>$id 番の情報を取得しました。</p></div>"; echo "<div align='center'><p>商品名: $name </p></div><div align='center'><p>単価:$price 円 / 個数:$number 個</p></div>"; echo "<hr></hr>"; echo "<div align='center'><p>合計金額:<b>$total 円</b>です。</p></div>"; } ?> としているのですが、カートに入れるボタンを押しても最後のバナナしかカートに表示出来ません。 全ての商品の注文をカートに入れるにはどうすれば良いでしょうか? ご教授のほど宜しくお願いします。

    • ベストアンサー
    • PHP
  • Perl:hiddenタグを使って二次元配列を保持する方法

    Perlで、ショッピングカートのようなもの(厳密には違いますが)を 作成しております。複数画面に渡ってユーザが必要事項を入力する際の データの受け渡し方法で、どうにも詰まってしまいました。 フォームに <input type="hidden" name="hoge" value=(二次元配列)> のような形で二次元配列を埋め込み、配列の値を一連の処理のあいだ中 保持・利用したいのですが、hiddenタグに上手く配列を格納することが できません。 配列を一要素ずつ展開してhiddenに入れれば実現できましたが、要素数が 多くなる場合も考えると、できればその方法は避けたいと思います。 PerlはWebと参考書で独学で勉強しているため、(私が見つけられないだけで) オーソドックスな方法があるのではと思い質問させていただきました。 検索キーワードなどでも結構ですので、何かアドバイスいただければ幸いです。 よろしくお願い致します。

  • 表示されない巨大なファイルの削除

    temporary internet filesの容量が15GBもあり、中身を削除しようとしましたが表示されるファイルにはそのような大きいファイルはありません。全てのファイルを足しても100MBいくかいかないかです。 いったいどこにそのような巨大なファイルがあるのでしょうか? xp sp3  詳細 最近Cドライブが日に日に大きくなっており原因を探していたところ、どうやらtemporary internet filesじゃないかと思いました。フォルダでプロパティを見ると15GBもあるので開いてみると、クッキーやIEのファイルなど小さいものしかありませんでした。

  • HP閲覧中にダウンロードされたデータの保存場所は?

    HPを閲覧していて、画面の下に「画像http://……をダウンロードしています」と出て来る事がありますが、これらは何処かに保存されているのでしょうか? Temporary Internet Filesかと思って見てみましたが、たくさんのファイルがあって判りませんでした。 インターネットの接続を切ったあと、IEのプロパティでインターネット一時ファイルの「ファイルの削除」と履歴の「履歴のクリア」は必ずしているのですが、それでもどこかに残っているのでしょうか? リソース不足防止のために、不要なデータは削除するようにしているのですが、Temporary Internet Filesの中身は残しておいた方が良いのかも教えて頂ければ助かります。どうか宜しくお願いします。 Windows Me Internet Explorer 5.5 SP2

  • ショッピングカートで$_SESSIONへデータを格納する方法

    $syohin_code = $_POST['syohin_code']; $syohin_name = $_POST['syohin_name']; $sale_price = $_POST['sale_price']; $kazu = $_POST['kazu']; $_SESSION['cart']['$syohin_code'] = array ("syohin_code" => $syohin_code , "syohin_name" => $syohin_name, "sale_price" => $sale_price , "kazu" => $kazu ); foreach ($_SESSION['cart']['$syohin_code'] as $key => $value){ echo $key . $value;} データベースより一覧表示した商品を「カートに入れる」ボタンを使いPOSTした値を上記のcart.phpへ飛ばし、配列としてセッション変数に格納しました。ひとつの値は上記より取得できるのですが、複数の商品を格納する方法がどうしても分かりません。それともどこかに保存されているのでしょうか? この取得したデータを元に、購入商品全てを一覧表示させたいのですが、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • おしえてください

    XPをサービスパック2にしてからTemporary Internet Files に今まで見たHPのデーターが残っていないのですが、何処に保存されているのでしょうか? 教えてください。お願いします。

  • ネットで閲覧した履歴を完全に削除する方法

    ネットで閲覧した履歴を完全に削除する方法 インターネットオプション→閲覧履歴設定→ファイル表示で 『Temporary Internet Files』という一覧が出ます それを見ると画像ファイルから動画、起動アプリケーションまで丸分かりです。 【質問】 (1)『Temporary Internet Files』を完全に消すにはどうしたらよいですか? (2)『Temporary Internet Files』を以後、履歴が残らないようにする方法を教えてください (3)IE8のセーフティ→シークレットモードで閲覧すれば完全に足跡は残りませんか? (ハッシュ、閲覧暦、クッキーなど全て) その他、「こうすれば足は付かない」という方法や「それじゃ●●を見られたら足つくよ」などのアドバイスと適切な処置の方法を教えてください。 よろしくお願いします