• ベストアンサー

SIDはどうやって与えればいいのですか?

ショッピングカートを自作しようとしています。 クッキーに頼らない、特にクッキーが使えない携帯などではSIDを付与してそれで管理するというのを聞くのですが、一般的にSIDは何を根拠?ベース?に与えるのでしょうか。 何でもいいから適当な重複しない数字でも与えればいいのでしょうか。 それとも携帯やPCなどのMACアドレスなど、確実に重複しないクライアントマシン固有の何らかのものを引っ張り出したり、IPアドレスなどから生成するのでしょうか。 通常一般的に利用されているSIDの元になるものを教えてください。

  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
noname#243182
noname#243182
回答No.1

PHPではセッション処理に必要な関数が十分揃っています。 参考URLから必要な情報が見つかるはずです。

参考URL:
http://www.php.net/manual/ja/book.session.php
kinjotenno
質問者

お礼

ありがとうございました。 PHPにはズバリのものが用意されていたんですね。

関連するQ&A

  • WEBショッピングサイトのカートの識別について

    現在、WEBでショッピングできるサイトをPHPで作成しています。 購入者が「カートに入れる」ボタンを押した時に、カートの番号を生成して同一人である判断をしようと思っています。 今回のサイトは会員制ではないのでログインはしません。そこで、カートの番号をどう採番したらよいか迷っています。 1.採番テーブルを持ち採番(連番)する。 2.グローバルIPアドレスをシリアス値に変換して使用する。 今は2.の案で行こうと考えていますが実際の運用時での問題点が有るのでしょうか。 もしグローバルIPアドレスが操作途中で変更となればセッション切れのエラーとし、 また、カートの番号は生成して2時間でタイムアウトにします。 なお、1.2.以外で一般的にはこのようにしているものが有れば合わせて教えて頂ければ幸いです。 よろしくお願いします。

  • perlの環境変数 ENV{'REMOTE_ADDR'}  について

    ショッピングカートのCGIにおいて ENV{'REMOTE_ADDR'} IPアドレスを取得すると思うのですが・・・。 何が原因なのかわかりませんが、違うIPアドレスのユーザー同士が、同じIPアドレスを取得したことになり、ショッピングカートの中が重複してしまいます 具体的に、お買物途中で注文したものを削除しないで注文をやめたお客様と同じIPアドレスのもつ他のお客様が買い物かごボタンを押すことにより、 後者のお客様が、ボタンを押していない商品もショッピングカートに入ってしまい・・・。 クレームが入ってしまいます 私ですが、perlに関して素人です。ですが、フリーのCGIを少し加工して使っております。 そこで、質問なのですが、ウイルスバスター等のセキュリティーソフトをインストールしていると、アクセス時に偽装のIPアドレスをログに残す可能性などあるのでしょうか? 勝手な解釈なのですが・・・。 それ以外に、IPアドレスが重複してしまう可能性が自分の知識の範囲内では、思いつきません。 素人的な考えかもしれませんが、ご教授お願い致します

    • ベストアンサー
    • Perl
  • sysprep、WSUSのID重複可能性について

    Sysprep、WSUSのID重複可能性についてお聞きしたいことがあります。 1.Sysprepでのid重複回避。 ・共通の設定項目を設定をし、ドメインに参加させる前の準備まで行い、  sysprep実行により、id重複がなくなる? 2.WSUS id重複回避 ・WSUSのIDは、レジストリ:SusClientId 等を使用しており、  WindowsUpdateサービスをとめて、sysprepでは削除できないためレジストリ情報を削除する。  再起動後、WindowsUpdateサービスが、削除したレジストリの再作成を行う。 <疑問> sysprepで作成したイメージを別の端末で展開したとき。 WSUSのレジストリを再作成するために再起動したとき。 「両方に考えられるのですが、SIDやWSUSIDが被ることはないのか?」 ということなのです。 sysprepをするにも、WSUSIDの削除を行う際にも 基本ローカル環境で実行し、マスターイメージを作成する。 と調べてわかりました。 ただ、SIDにしろWSUSIDにしろ、「ランダム生成」だと思うのです。 つまり、ローカルで別端末に展開をしていくと、いずれか端末でIDが被るのでは ないかと考えております。 (ただ、ADに参加させても同じSIDで、クライアントイメージを展開してしまうため ローカルイメージで作成するとどこかで見た覚えがあるのですが。) <極端な考えですが> a端末で、イメージ展開後SID:1001 WUSUID:2000 b端末で、イメージ展開後SID:1004 WUSUID:2000 c端末で、イメージ展開後SID:1001 WUSUID:3000 SIDが、a端末とc端末のSIDが重なり、 WSUSIDが、aとbで重複する といったことがあるのではないかと 考えております。 もしかして、ハードから生成し、IDが被ることはないとか そのようなシステムになっているのでしょうか。 どなたか、良い情報を知っている方がいられましたら 宜しくお願いします。

  • 携帯のネットショッピングで入力した個人情報を携帯から消したい!

    携帯でネットショッピングをした際、携帯に入力された情報(パスワードやアドレス)が保存されるクッキーなどの機能はあるのでしょうか? 洩れると怖いので出来るだけ携帯に情報を残したくないのですが…。 サインアウトのみでよいのでしょうか? 完全に消去できる方法があれば教えてください。 機種は905を使っています。

  • http://hogehoge.com/page.php?ID=***について

    phpで、アクセスしてきたIPアドレスをIDとして上記のような専用のページを作りたいのですがどうしたら良いのでしょうか? 携帯電話から使えるPHPのショッピングカートを作りたいと思っています。 今使っているフリーのカートPHPとデータを共有したいので自作しかないと思い質問しました。 商品の表示等はできるのですが、どうしてもカートに入ってくれないので困っています。 そこで、タイトルのようなページを作成してそこに商品の情報を書き込んでいけばよいのでは?と思いました。 全く見当違いでしょうか? どなたかご教示いただけませんでしょうか? 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 商用サイト(ネットショップ)の作り方でアドバイスを求めています。

     実家の父は独自開発した工業系の商材を売る自営業をしているのですが、商用サイトを作って欲しいと頼まれました。売る相手は一般人ではなく企業相手で、商材注文が簡単に出来るショッピングカートのようなCGIを設置して、注文メールが入ったことが携帯でも簡単にチェックできるような機能を付けて欲しいとか。独自ドメインも併せて取得したいそうです。  私は普通の無料HPやアフィリエイトはやってますが、ショッピングカート付きの商用HPを作るのは初めてなので、情報を集めているところです。ショッピングカートのCGIは独自にプロバイダーに設置するより、初めからロリポップのようなところで借りる方がお手軽なのでしょうか?また現状私はカートを借りられる場所はロリポップしか知らないのですが、他にお勧めがあればぜひ教えて下さい。  あと注文が入ったときに携帯に連絡メールが飛ぶ機能・・・なんてあるのでしょうか?普通のメール転送機能はありますが、注文メールを携帯に転送した場合、文字数の問題が出てくるのでやりたくありません。携帯で受けるのは「注文メールがメールボックスに入ったよ」という一言だけの短信メールで良いのですが、そういう連絡機能の方法って実際あるのでしょうか?

  • JavaのBase64デコードで正しく復元できない

    以下の処理を行っています。 1.クライアント(Flex/ActionScript)でビットマップ画像をバイト配列化して、Base64エンコードして、文字列生成 2.1で生成した文字列をサーバーに送付 3.サーバー(Tomcat/Java)側で文字列取得 4.文字列をBase64デコードしてバイト配列化 5.バイト配列をファイルに書き込む(保存) 保存した画像が正しく表示されない(PNGファイルとしては認識されている)ので、色々と調べたところ、以下の事象が発生しています。 (事象1)Apache CommonsのBase64デコーダーを使ってバイト配列化するとサイズが減る 例えば、クライアント側のバイト配列が 162104 の時、159768 に減ります。 (事象2)Sun.miscのBase64デコーダーを使ってバイト配列化するとサイズは同じだが微妙に内容が異なる) 例えば、不規則なのですが、だいたい10バイトに1ビットくらいの相違があります。以下は相違例です。 Client ⇒ Server ============== 7E→7F F9→FD E7→F7 9F→DF BF→FF E5→F5 ============== ※添付ファイルにバイナリエディタで比較した画面を添付しました。 どこを調べたら良いでしょうか? また提示が不足している情報があればご指摘ください。 [環境] OS:WindowXP SP3、Eclipse、jdk1.6.0_24、Flash10.1 クライアント側:Flex SDK3.5 / PNGEncoderでバイト配列生成 / Base64EncoderでBase64文字列化(改行付与フラグはTrue/Falseとも試すも結果同じ) サーバー側:Tomcat 1.6、Struts、Java

    • ベストアンサー
    • Java
  • Cookieを無効にしている企業にEC購買してもらうには

    私は大企業向けにWebベースのECサイトの外販している営業マンですが、顧客の中にはブラウザのクッキーを無効にしている企業があります。ショッピングカート方式なので購買時にクッキーは有効にしてもらわないとダメなのですが、クッキーファイルを定期的もしくはパソコンの終了時に毎度削除したいらしいのです。その他、私たちのECサイトを使っているとき意外はクッキーを強制的に無効にできれば。。。ともおっしゃってます。会社のパソコンで勝手に他のサイトでEC購買をさせなくすること、エッチなバナーを見た履歴をサイト管理者に取得できなくすることなどを狙っているのだと思います。  クッキー自動削除に関してはブラウザの設定でできませんか?もしくはそういうソフトがありますかURLフィルタリングソフトにはどのようなものがありますか?相手は大企業なのでフリーソフトのような動作保証がないもの、サポートセンターがないものは薦められません。よろしくお願いします。

  • phpのsessionとcookieについて

    質問は以下に2つです。 プログラムの説明は、pass,idから認証を行い、sessionidを発行します。二度目の以降はsessioidから認証します。 sidpost.phpからpostでIDとパスワードを入力させます。 データベースはid, pass, sidの3つのカラムがあります。 <?PHP require_once'DB.php'; session_name("sid"); session_start(); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <?php $id = $_POST['id']; $pass =$_POST['pass']; $cookie = $_COOKIE['sid']; $sid = session_id(); //データベース参照 //プレースホルダーを使用 //id からpassを参照する //cookie から sidを参照する $data=$sth->fetchRow(DB_FETCHMODE_ASSOC);//参照したデータを$dataの連想配列に格納 //sid保存のプレースホルダー $sth2 = $dbh->prepare('UPDATE accountid SET sid=? WHERE id=? AND pass=?'); //cookieが保存されていない場合 if(!isset($cookie) && isset($pass) && isset($id)){ //idとpassから認証 if($pass === $data['pass']){ $sth2 = $dbh->execute($sth2, array($sid, $id, $pass)); echo "初めてのログインsid登録"; } //sidがある場合cookieとデータベースのsidを比較 }else if(isset($cookie)){ if($cookie == $data['sid']) echo "sidあり成功"; //クッキーがあり、データベースと一致しない場合,sidを破棄する }else{ echo"あるはずのクッキー" .$COOKIE['sid']."<br>"; $_SESSION=array(); setcookie('sid', '', time()-3600); session_destroy(); echo "ないはずのクックキー".$_COOKIE['sid']; } //それ以外は入力フォームにリダイレクト }else{ header("location: ./sidpost.php?error=error"); } $dbh->disconnect(); ?> </body> </html> 上のようなセッション管理のプログラムを書きました。 質問は2つありまして、 ・1つめは、通常セッション管理を行う際の、条件はどのようにするのが一般的ですか? IDとパスワードがデータベースと一致する場合としない場合の2通り、cookieがある場合、ない場合の2通り、もしcookieがある場合は、データベースの値と一致する場合としない場合の2通りが考えられます。一番最適な条件文はどのようにすればよいでしょうか? またその処理はどのようにすればよいのでしょうか。 例えばcookieがあり、データベースと一致しない場合、$_SESSIONの初期化、setcookieでクッキーの削除、session_destroy()するなど。。。なにかよくわからなくなってしまいました。 ・二つ目は、 上のプログラムではじめsession_name('sid')およびsession_start()を宣言し、クライアントとサーバに$sid=session_idを発行しています。なので、$_COOKIE['sid'];の値には session_id()($sid)になっているはずです。 下のほうで、セッションの管理を行う際、 //クッキーがある場合 else if(isset($cookie)){ if($cookie == $data['sid']) echo "sidあり成功"; //クッキーがあり、データベースと一致しない場合,sidを破棄する }else{ echo"あるはずのクッキー" .$COOKIE['sid']."<br>"; $_SESSION=array(); setcookie('sid', '', time()-3600); session_destroy(); echo "ないはずのクックキー".$_COOKIE['sid']; } クッキーがあり、データベースと一致しない場合に、sessionおよび、cookieの破棄をしています。この前後でechoをもちいて$_COOKIE['sid']の値を出力すると、 破棄するの前のechoでクッキーが表示されず、 破棄したあとのechoでクッキーが表示されました。 なぜこのような結果になるのですか、逆では?と思いました。

    • 締切済み
    • PHP
  • オンラインショップ開設について

    全てオーダーメイドの犬用革首輪&アクセサリーのオンラインショップを開業予定です。 そこで悩んでいるのが、レンタルサーバーとドメインです。 できればお金をかけずに開業したいと考えているのですが、無料HP;例えばFC2はどうでしょうか? ドメイン取得しなくても、アドレスの一番前に固有名がくるのが気に入っているのですが。100mbの容量だし。 オーダーメイドの為、前払いとなりショッピングカート等も設置する意味をもたないので、どうでしょうか?

専門家に質問してみよう