• 締切済み

携帯のCookie…

今、携帯サイトをつくっているのですが… エラーで大変困っております。携帯のCookieが問題ではないかと思っているのですが、何卒アドバイスをお願い致します。 ■症状 ローカル環境では問題なく動いていたのに、実際の携帯(PHPのバージョン5.25、動作確認はauとソフトバンクの最近の機種、おそらくCookieが使える)でテストすると… 年齢入力→送信ボタンを押す→(少しサーバが動いた後)→入力が消えてもう一度同じページに→めげずにもう一度入力送信→今度はうまく行って次のページへ。 ■コードの大まかな流れ 年齢をテキストで入力してもらい、フォームでPOST送信、action=PHPSELFで一旦戻り、送信ボタン(Submit値)を押していれば、入力にエラーがないか確認、エラーがあれば表示、なければSessionで値を受け渡し、次ページへ。 ■実コード <?php //エラー処理 if (isset($_POST["submit"])) { if(isset($_POST["age"])) { $age = mb_convert_kana($_POST["age"], "a", "shift_jis"); $error = array(); if (is_numeric($age) == false) { $error[] = "年齢は数字で入力してください!"; } elseif ($age < 1 || $age > 120) { $error[] = "年齢は1~120才の範囲で入力してください!"; } if(!count($error)){ session_start(); $_SESSION['age'] = $age; header("Location: http://~.php"); exit; }} ?> <html> <head> 以下本文、フォーム

みんなの回答

  • SHlVA
  • ベストアンサー率48% (20/41)
回答No.1

なんとも微妙ですが、とりあえず、各ページアクセス時に var_dump($_POST) var_dump($_SESSION) でどうなってるか確認してみてはどうでしょう。 あと、エラーがないときにだけ session_start するんじゃなく、最初に必ず宣言してみてはどうでしょう。

Bruckner
質問者

お礼

お礼が遅れてしまって、ごめんなさい。アドバイスありがとうございます。 はじめにsession_startする方法から試してみましたが、いまひとつうまく行きません…。そこでvar_dumpで毎回書き出させてみて気づいたのですが、ルートで進むようなのです… (ページ読み込み(1))入力・送信 →PostはOK、Cookieにも値がわたる →(ページ読み込み(2))入力が空になり、もう一度入力・送信 →次のページではかせると、値は(1)のCookie という結果で、一回遅れてCookieの情報を送っているようでした。 再度自ら見直すとともに、アドバイスを頂けますよう何卒宜しくお願いします。

関連するQ&A