• 締切済み

DoCoMo FOMAでセッション管理が出来ない

PHP初心者です。 携帯用サイトを作成中です。 DoCoMoのFOMAでセッションを使いページ間で値を保持したいのですが、セッションに代入した値が次ページに遷移すると値が消えてしまいます。 DoCoMo以外の携帯は問題なく出来ます。 セッション名等に制限があるのでしょうか? 説明不足だと思いますが、原因が全く分かりません。 よろしくお願いします。

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

みんなの回答

  • tecinfo
  • ベストアンサー率52% (32/61)
回答No.1

ソースコードがないと何とも言えませんが、クッキーを使ってセッションの受け渡しを行っている場合はi-modeで上手く動作しない場合があるようです。 php.iniの値を session.use_cookies 0 session.use_trans_sid 1 に変更してWebサーバを再起動するか、 .htaccessで <IfModule mod_php4.c> php_flag session.use_cookies 0 php_flag session.use_trans_sid 1 ................. </IfModule> を試してみてはどうでしょうか? ちなみに上記の方法は下記を参考にしました。 http://ns1.php.gr.jp/pipermail/php-users/2004-January/020377.html PHP標準のセッションの設定はデフォルトではクッキーを食べさせる設定になっているようです。 http://manual.xwd.jp/ref.session.html 見当違いな回答をしていたらごめんなさい。

stupid_honey
質問者

お礼

お返事が遅くなり申し訳御座いません。 ご回答ありがとうございました。 セッションを使用する直前にパラメータにSIDを付加してheader("Location:")でページ遷移を行ったところちゃんとセッションを持つことが出来ました。

関連するQ&A

  • docomoのセッションが切れてしまうのは?

    携帯サイト用のセッションでdocomoの時だけ思うように フォームによるページ遷移ができません。 色々試してみたのですが、サッパリです。 どなたかお知恵をお貸し下さい。 例) -- page01.php -- session_name( "test" ); session_start(); session_regenerate_id(true); $test = session_name()."=".session_id(); if ( ( $smp01 = auth() ) == FALSE ) { header( "Location: ./test.php?redirect=index_test.php?" ); exit; }←ログイン時の処理(ユーザー定義関数にて) ・        ・        ・        ・ <form action="page02.php?<?= $test ?>" method="get" /> 入力:<input name="test01" type="text" value="" /> <input name="smp02" type="submit" value="next" > </form> ↑入力させてpage02.phpにて処理 上記のようにしているのですが、 submitするとログイン時の処理に掛かってセッションが切れてしまい ログインページに戻ってしまいます。 ログイン時の処理を削除するとpage02.phpへと遷移します。 ログイン時の処理を残したままセッションが切れずにフォームによる ページ遷移ができるようにするにはどのようにすれば良いのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • セッションついて

    現在PHPで開発を行っています。初心者なのでまだぜんぜんわかってないので、ご教授いただければと思っております。 PHP4.0.5、サーバはレンタルサーバでFreeBSDとなっています。 問題は、まず認証ページでユーザ認証を行った後、次のページに遷移したときに、セッション情報が引き継がれません。 sesson_start();をしているのですが、次のページで、$HTTP_SESSION_VARS変数の値が初期化されてしまっているみたいです。 いろいろサイトで調べたりしているのですが、うまくいきません。 セッションが引き継がれない理由として考えられることがありましたら教えていただけないでしょうか。 また補足が必要でありましたら、補足いたしますのでよろしくお願いします。

    • 締切済み
    • PHP
  • セッションについて

    PHP初心者です。 セッションはCookieと違って利用者がデータを削除できないというのがとても魅力的でしばらく喜んでたんですけど、ブラウザを閉じると値が消えてしまいました;;。 関数などを使って、できれば永久に値を保持することってできませんかね? よろしくお願いします。

    • ベストアンサー
    • PHP
  • ログイン管理について

    こんばんは。  phpを始めたばかりで分からないことがあり、細かく教えて くださる方がいましたらお願いします。  いまphpで会員制のサイトを作成しようと思っています。 分かりやすく言いますと「Yahoo!」さんのようなサイトを です。  そこで登録や修正・削除のページを作成しました。 次にユーザーIDとパスワードを入力してもらい、それによる 認証を実行し結果を出すページも作成しました。 ログイン情報の保持はセッションを利用しています。 そこまで作成し行き詰まりました。 参考にしたページは:http://php.dori-mu.net/session.htmlで このページに記されている「definition.php」ファイルに ログイン情報を格納しようと思いました。 問題となっているのは下記のとおりです。 ●まずユーザの想定するフローは  1.ログインページ(001.php)  2.認証および結果ページ(002.php)  3.会員制ページ(003.php~009.php)  4.ログアウトページ(010.php) でしたが ●想定外のフローは  1.ログインページ(001.php)  2.認証および結果ページ(002.php)  3.会員制ページ(003.php~009.php)   ※この会員制のサイトのログイン中に他のページ    (google等)に遷移する。  4.googleにて色々な操作し「戻る」の操作を行わないで   再度3.の会員制のサイトに遷移  5.会員制ページ(003.php~009.php) ●上記の想定外のフローを行うと、セッション情報が  空となってしまいます。  「戻る」による操作で会員制に戻ると、セッション情報は  保たれています。  「Yahoo!」さんのサイトでは「Yahoo!」にログイン中に 他のサイトに遷移し「戻る」の操作を行わないで「Yahoo!」に 戻ってもログイン情報を保たれています。  ネットで検索を行ったところ、「Yahoo!」さんでは セッションの他にCookieを利用していると拝見しました。 この二つを両立させるには、どのようにしたら 良いのでしょうか? また、もし「Yahoo!」さんが、この方法で無い場合は どうような方法なのでしょうか?  サンプルや参考になるページがありましたら よろしくお願いします。

    • ベストアンサー
    • PHP
  • 検索フォームのセッション管理について

    PHPを利用して検索フォームから入力された値を取得し、 条件にあった画面を表示しているのですがページを戻る際に警告が出て うまく戻れません。 流れ 1,フォームから値の取得 ⇒  2,送られた値を【$a】で受け取り、セッション変数に代入、条件にあったデータの表示(select * from sample where aaa like【$a】) ⇒  3,もしフォームの値が空でセッション変数に値があれば、セッション変数を【$a】に代入し条件にあったデータの表示 ⇒  4,フォームの値、セッション変数共に空ならセッション変数を削除し、他のページに飛ばす 5,新たにフォームから値が送られた場合は値を上書きする 以下が書いたコードです。 session_start(); if(isset($_POST["test"])){ $a = $_POST["test"]; $_SESSION["test"] = $a; }elseif($_POST["test"] == "" and isset($_SESSION["test"])){ $a = $_SESSION["test"]; }else{  unset( $_SESSION["test"] );  if (isset($_COOKIE["PHPSESSID"])) {   setcookie("PHPSESSID", '', time() - 1800, '/');  }  session_destroy();  header( "Location: /top.html" );  exit(); } 以下で【$a】を使いsql文を組み立て、データを表示しています。 このコードだと前のページに戻る際firefoxでは 【このページを表示するにはフォームデータを再度送信する必要があります。フォームデータを再送信すると以前実行した検索、投稿や注文などの処理が繰り返されます。】 と表示され、IEでも 【警告 : ページの有効期限切れ 要求したページは、フォームで送信された情報を使用して作成されました。このページは、もう利用できません。セキュリティ保護のため、情報は自動的には再送信されません。 情報を再送信し、この Web ページを表示するには、ツール バーの [更新] ボタンをクリックしてください。】 と表示されてしまいます 上記のコードをどのように変更すれば警告をださず行いたいことに記述したようにできるのでしょうか? ご教授ください。よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 携帯:docomoのセッションIDについて

    PHPで本を参考に携帯用サイトを構築している PHP初心者です。すみません、突然ですが教えてください。 相対パスでのリンクだとdocomo端末でもセッションIDが うまく引き継げるのですが 絶対パスだとセッションIDが途切れてしまいます。 どなたか絶対パスでのセッションIDの引継ぎ方法に 関してご存知の方がいらっしゃったら是非教えてください。 できれば.htaccessの設定で行いたいのですが。 どうかよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • ASPで画面間のパラメタ受け渡し

    こんばんは。ASP初心者です。 ASPでWEBページの作成を行っています。画面遷移をResponse.Redirect()で行っているのですが、遷移前のページと遷移後のページでパラメタを受け渡したい場合はSession("hoge") = "hogehoge"のようにセッションに入れる以外、何か方法はないでしょうか。リクエスト間でパラメタ渡せればがいいので、セッションを通じて保持しておく必要がないのです。クエリを使用するとアドレス欄に変数の値が見えてしまうのでできれば使いたくありません。

  • セッション変数への値の代入方法について

    レガシーASPでチェックボックスやラジオボタンをクリックしたら サブミット等のページ遷移ではなく同じページ内で即座にその値を セッション変数へ代入させる方法はあるのでしょうか?

  • セッションについて

    PHPのセッションについてご教授ください。 session_start()の前でセッション名の変更を行うと、セッションidが受け渡されず、次ページが新規セッションとなってしまいます。クッキーを使った解決法を探してます。 セッション名を変更した場合、どのように解決すればよいでしょうか。初心者なのですが、一生懸命勉強中なので、宜しくお願いします。 開発環境: apache2.2 php 5.2 ページ1ソース <?php function main(){ session_name('member'); <= この行をコメントアウトすると、受け渡しできます session_start(); $_SESSION['test'] = 'test'; } main(); ?> <a href="sesstest2.php">test</a> ページ2ソース <?php session_start(); echo $_SESSION['test']; ?>

    • ベストアンサー
    • PHP
  • セッション管理を携帯用とPC用

    セッション管理を携帯用とPC用で分けて作成しております。 携帯用では、ログイン後も、GETにセッションIDを付加しているので、自分のサイト内の他のURLにアクセスしても、セッションが引き継がれるのですが(2回目のsession_start()後OK) PC版の方がログインした後、セッションが他のURLに引き継がれません。(PHP PEARのAUTHを使用) 2回目のsession_start()後初期化されてしまうのですが、この問題は携帯と同じようにGETにセッションIDを付加するしか方法はないのでしょうか? セッション変数をグローバル変数に保持するなどは出来ないのでしょうか?

    • 締切済み
    • PHP