検索フォームから値を受け取り、該当するデータを表示するプログラムを作っているんですが、
session_regenerate_idを使ったセッション管理で行き詰っています。
session_regenerate_idを使うと1ページずつ進んでいく場合は、何も問題ありませんが、
現在のページからタブに複数ページを開こうとすると2つめ以降のタブ(ページ)が表示されなくなります。
おそらくsession_regenerate_idにより1つめのタブが開かれたときに、セッションが書き換えられて、
2つめのタブに正常にセッション変数が受け渡しできていないのが問題と思いますが、どのように解決したらよいのかわかりません。
セキュリティ対策をした上でページ間共有をスムーズに行うにはどのようにすればよろしいのでしょうか。
ちなみにセッションはフリーワード検索のみに使用します。
No.1ベストアンサー
- 回答日時:
基本的に、セッションで1つのページから2つのページに枝分かれさせるという実装は行いません。
一般論としては、ページは1枚ずつ進めていくものです。セッションをCookieに持たせれば(session_set_cookie_params)できますが、セキュリティ面で弱くなりますので、ご注意ください。
No.2
- 回答日時:
タブってのは、タブブラウザでのタブって意味で良いのでしょうか?
そもそも、
>セッション変数が受け渡しできていない
事をどうやって確認したのか、推測しているのみで確認はできていないのか、よくわからないのですが。
なんとなく、設計とマッチしないこと、あるいはよく判らずに対策している事が原因で、セキュリティ対策のつもりで入れているコードが暴走してるのでは?って気がします。
どこから来たかって、refererを参照したセキュリティ対策のつもりのコードを入れているけど、新しいタブを開いた場合はrefererに何も入っていないとか?
ブラウザ不明なので適当な推測を述べてますが。
たとえば、ひとつのタブでは「あ」と検索して、別のタブでは「い」と検索して、それぞれのタブで検索結果のリストが10件以上あったらページ送り(次の10件など)のリンクがあるって事をやりたいって意味ですかね?
※10件でなくてもいいけど
もしそれで合ってるとして、検索ワードをセッション変数に保存している?
もしそうだとすると、どうやってそれぞれのタブで表示されている検索ワードを一つのセッションに、タブ毎に関連付けして保存して、取り出しているか?
ひとつの変数を取り合っているのか、何らかのIDを持たせて自前で管理しているのか?
ひとつの変数を取り合っているならそれが原因の可能性高いし、自前の管理機能の暴走かも知れませんね。
そもそもやりたい事が見えない、何が起こっているのかもわからない、暗中模索で補足情報要求です。
回答ありがとうございます。
私の至らない文のせいで、うまく状況をお伝えできず申し訳ございません。
今回はなんとか自分の思い通りに動作させる事ができましたので、
回答を締め切らせていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) セルの値をグーグルで検索するエクセルVBAについて! 2 2022/08/01 21:41
- PHP PHPで入力フォームでデータを確認表示画面まで送る流れを日本語で理解したいのです。 1 2023/05/29 19:12
- PHP php 入力画面から確認表示画面へ情報の受け渡しについて。 1 2023/06/07 18:00
- Wi-Fi・無線LAN PCWi-Fiの設定方法がわからなくて困っています。 4 2022/12/28 18:30
- PHP PHP ページング データベース 1 2022/06/16 10:30
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP PHPのセッション有効期限について 5 2023/06/14 12:40
- Chrome(クローム) Chromeで複数タブを開いた状態で閉じ、再度開いた場合のタブの回復は? 2 2022/04/02 01:44
- PHP php my adminより取り出したデータ表示 2 2022/06/15 11:56
- ネットワーク OSI参照モデルの各層の役割がわかりません。 3 2023/04/21 21:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
URLのパラメータをGETのままで...
-
SESSION情報は、ブラウザを起動...
-
別ブラウザ間でセッションの値...
-
セッションのワンタイムチケッ...
-
複数のサーバで運営する場合の...
-
ログイン画面をはさんだ後、自...
-
【PHP + MySQL】ログインの
-
クッキーを使わないセッション...
-
php+mysqlでデータを表示更新削...
-
セッションを維持したまま、サ...
-
他言語プログラムにて生成され...
-
Dosブロンプトでtabを出力したい
-
DTOとEntityの差は何ですか。
-
wordの差し込み印刷で文字...
-
【C#】DataGridViewの最大列数...
-
Yahoo! JAPAN IDを新規取得でき...
-
バッチファイルでpingの結果を...
-
phpでcookieがうまく保存されない
-
excel access連携 このテーブル...
-
syntax error, unexpected 'ech...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
URLのパラメータをGETのままで...
-
PHPのセッション有効期限について
-
セッション変数にパスワードを...
-
複数のサーバで運営する場合の...
-
ログインしたら他からログイン...
-
ブラウザを閉じた後もセッショ...
-
セッションを維持したまま、サ...
-
PHP SESSION変数を複数使用でき...
-
session_start()で生成されるセ...
-
HTTPヘッダー内での順番などに...
-
「ログイン機能を持たせる」説...
-
session_regenerate_id
-
Sessionの上限について
-
初歩的な質問 セッション管理に...
-
$_SESSIONと、POSTやGETの違い
-
ログイン画面をはさんだ後、自...
-
セッション変数の命名規則
-
複数ページでセッションを使わ...
-
セッション ID とセッション名...
-
セッションのスコープ(有効範...
おすすめ情報