phpで、アクセスしてきたIPアドレスをIDとして上記のような専用のページを作りたいのですがどうしたら良いのでしょうか?
携帯電話から使えるPHPのショッピングカートを作りたいと思っています。
今使っているフリーのカートPHPとデータを共有したいので自作しかないと思い質問しました。
商品の表示等はできるのですが、どうしてもカートに入ってくれないので困っています。
そこで、タイトルのようなページを作成してそこに商品の情報を書き込んでいけばよいのでは?と思いました。
全く見当違いでしょうか?
どなたかご教示いただけませんでしょうか?
宜しくお願い致します。
No.4ベストアンサー
- 回答日時:
私自身は
session_cache_limiter('private, private_no_expire');
と宣言した事はありませんので、その場合の動きについては検証した経験はありません。悪しからず。
携帯からの場合は、ある程度動きが制限され、またキャリアによっても動きが違うのでは無いでしょうか。
下記URLあたりを参考にしてみて下さい。
セッション関数では、デフォルトではセッションIDをCookieに格納します。質問者の環境ではsession_cookieあたりの設定がどうなっているか分かりませんが、例えばsession.use_only_cookies がONの場合は、Cookieを受け付けないブラウザだと動きがおかしくなると思います。
最近の携帯ではある程度Cookieが使えるようですが、サーバにCookieを格納するようなシステムだったりするので、動きを検証する必要はあると思います。
長いURLになってしまいますが、session.use_cookiesをoffにすれば、勝手に長いURLを発行してくれると思います。
SID付きの長いURLは多少ですがセキュリティ上心配がある事は否めませんが、1回限りのセッションであればあまり心配は要らないと思います。
長いSID付きの長いURLはサーバで自動的に発行されます。session.use_cookiesを変えられないような場合は、下記のように強制的にSIDを付加する事も可能ですが。
<a href="test.php?<?php echo session_name()."=".session_id(); ?>">リンク</a>
参考URL:http://crosslamina.com/contents/ke-tai/
出張のためお礼が遅くなりました。申し訳ありません。
session.use_cookiesをoffでできました。
ありがとうございました。
No.3
- 回答日時:
IPアドレスは一般に不動である保証は無い(というより基本的には動的)ので、危険だと思いますが。
別の人間が同じIPで接続した場合(同じプロバイダ経由の別人)、前の人間のデータが残っている事になります。
カートを作りたいという事でしたら、「セッション」と言う概念を理解する必要が有ります。
PHPではセッション管理は非常に簡単です(PHP > 4)。
セッション関数で
session_start();
と宣言するだけです。
セッションIDには想定が非常に難しいユニークキー(唯一無二)が自動的に割り当てられますので、別の人間が同じIDを使う心配もほとんどありません。
セッション内の数値は、セッション変数に格納する事が出来ます。
例えば一番目の画面で、単価380円のイチゴを3つカートに入れたとすると
$_SESSION[0][item_name] = "いちご" ;
$_SESSION[0][item_tanka] = 380 ;
$_SESSION[0][item_kazu] = 3;
と格納します。
次の画面では単価150円のバナナを1つカートにいれたとします。
$_SESSION[1][item_name] = "バナナ" ;
$_SESSION[1][item_tanka] = 150 ;
$_SESSION[1][item_kazu] = 1;
最後の画面で集計するときは、例えば
$total = ($_SESSION[0][item_tanka]*$_SESSION[0][item_kazu]) + ($_SESSION[1][item_tanka]*$_SESSION[1][item_kazu]);
として求める事が出来ます。
とても簡単ですよ。
PHPで老舗的なページや古いソースでは、PHP3を使っているものが有ります。当時セッション管理は非常に面倒で、いくつかのライブラリで管理したりしました。phpLibあたりを使っているソースは、基本的にPHP3の頃のものが多いので、今となってはあまり参考にしないほうが良いかもしれません(register_globalがonでないと
動かないスクリプトも多い)。
PHP4以降はセッション関数が出来ましたので、こちらでスマートに設計するのが良いと思います。
参考URL:http://php.s3.to/man/ref.session.html
ご教示ありがとうございます。sessionについて勉強を開始しました。
もしお手すきでしたらもう一つご教示いただきたいのですが、
session_cache_limiter('private, private_no_expire');
session_start();と書いてその後ソースを書いているのですが、PCからのアクセスでは/tmpのlog?にちゃんと読み書きできるのですが、携帯からだとどんどん新しいlog?(ID)を作って行ってしまいます。
よく通販サイトで見かける *.php?=0e1245r01244752 のような長いURLにしなければいけないのでしょうか?
だとするとどうすれば、長いURLを携帯に表示することができるのでしょうか?
宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP ページング データベース 1 2022/06/16 10:30
- PHP php my adminより取り出したデータ表示 2 2022/06/15 11:56
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- PHP PHP MySql ページング 2 2022/09/20 06:38
- その他(プログラミング・Web制作) パイソンでのプログラミングについて 3 2022/08/11 20:31
- WordPress(ワードプレス) wordpressでphpを読み込みたい 1 2022/10/30 23:40
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- PHP $_SESSIONに渡した後はそのまま使っても問題ありませんか? 3 2022/11/08 22:17
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
$_SESSIONと、POSTやGETの違い
-
PHPのセッション有効期限について
-
共用サーバでのセッション管理...
-
URLのパラメータをGETのままで...
-
セッション変数にパスワードを...
-
セッション変数について
-
セキュリティを強固にするには?
-
携帯電話対応のカートって??
-
二重ログイン管理について
-
セッションの仕組み
-
!issetの冒頭の!ビックリマー...
-
ブラウザを閉じた後もセッショ...
-
特定のページからのみのアクセス
-
SESSION情報は、ブラウザを起動...
-
セッション ID とセッション名...
-
学校の授業で困っていることが...
-
複数のサーバで運営する場合の...
-
phpのセッションについて質問です
-
【PHP】SESSION変数の競合を...
-
自動ログイン機能
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
URLのパラメータをGETのままで...
-
PHPのセッション有効期限について
-
ブラウザを閉じた後もセッショ...
-
Sessionの上限について
-
!issetの冒頭の!ビックリマー...
-
ログインしたら他からログイン...
-
セッション ID とセッション名...
-
session_start()で生成されるセ...
-
ログインした掲示板ですが、直...
-
【PHP】SESSION変数の競合を...
-
セッションを維持したまま、サ...
-
セッションのスコープ(有効範...
-
「ログイン機能を持たせる」説...
-
PHP cookieの値が更新されない...
-
別ブラウザ間でセッションの値...
-
リアルタイムカウンター
-
session_cache_limiterの使い方
-
SESSION情報は、ブラウザを起動...
-
セッション変数の命名規則
-
セッション変数にパスワードを...
おすすめ情報