自宅サーバー(apache2+php5+mysql5)のlocalhost環境で、
header(Lcation:~)の記述をすると、
セッションが保持されない現象が起きています。
本番環境のレンタルサーバーは、同じ記述で、
しっかりとセッションが保持されます。
この原因は、何でしょうか?
php.iniの設定など、何か考えられることがあれば、
是非教えて下さい。
【やりたいこと】
■a.php
****************************************
<?php
echo<<<EOD
<form method="POST" action="./b.php">
<INPUT type="text" name="test">
<INPUT type="submit" name="Submit" value="確認画面へ">
</form>
EOD;
?>
■b.php
****************************************
<?php
$_SESSION["test"]=$_POST["test"];
header("Location:./c.php");
?>
■c.php
****************************************
<?php
echo $_SESSION["test"];
?>
自宅サーバーだと、
a.phpで入れたデータが、c.phpで表示されません。
レンタルサーバーだと、
セッションが保持され、表示されます。
No.3ベストアンサー
- 回答日時:
php.iniのsession.cookie_path設定が異なっていたとかはないですか?
ページによって再設定していたりすると、'/' と '' では異なるcookie として保存されるので、session id も異なって発行されます。
ブラウザに保存されたcookie情報も確認してみるとよいでしょう。
私も先日、このpath設定をいじってて、「sessionが保存されてない?」「消したのに残ってる?」という状況に遭遇しました。
hrm_mmm様
できました!!!!
ありがとうございます!!
おっしゃる通り、
session.cookie_pathが異なっていました。
しっかりphpのtmpがある場所に設定した所、
見事に動きました。
localhost環境でテストを行なうのに、
絶対的に必要になるものだったので、
本当に助かりました。
ご多忙の中、貴重なアドバイスをありがとうございます!!
No.4
- 回答日時:
c.phpを
<?php
session_start();
print_r( $_SESSION);
print_r($_COOKIE);
?>
としてみて、クッキーがほんとうに参照されているか、
セッション変数が別のものが指定されていないかなど
デバッグしてみては?
なるほど、
そういったテストも必要ですね。
既に問題は解決しましたが、
次回から行なってみます。
お忙しい中、時間を割いて頂いて、
本当にありがとうございます。
No.1
- 回答日時:
以下のように処理を開始する前に session_start(); を入れてみてください。
■b.php
****************************************
<?php
session_start();
$_SESSION["test"]=$_POST["test"];
header("Location:./c.php");
?>
■c.php
****************************************
<?php
session_start();
echo $_SESSION["test"];
?>
これでうまくいくようでしたらおそらく php.ini の session.auto_start の値が 0 に
なっていますので 1 に変更してください。
これで session_start(); を入れなくても毎回実行されるようになります。
saintandre様
ご回答ありがとうございます。
やってみましたが、できませんでした。
session_start();は、
上記例文には入れてませんでしたが、
通常のファイルには、
session_start();
session_regenerate_id(true);
という形で入れています。
(記述が足りずに、申し訳ありません)
session.auto_startは、
セキュリティ上、0にしておりますが、
1に変えても、変化はありませんでした。
尚、b.phpまでは、セッションが保持されていますので、
locationに問題があると思っていますが、
原因がわかりません。
お手数おかけしますが、
もしおわかりでしたら、宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP PHPで入力フォームでデータを確認表示画面まで送る流れを日本語で理解したいのです。 1 2023/05/29 19:12
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
.htaccessにphp_valueが使用できな
-
HYのAM11:00のラップの部分の歌...
-
require_once()でファイルが読...
-
PHP PDOライブラリが読み込まれ...
-
フォームで戻った際に入力済み...
-
テキストエリアの内容がメール...
-
リンクのクリック数をカウンタ...
-
phpのextension_dirを複数指定...
-
Apacheの設定ファイルにPHPの設...
-
これの対応OSを教えて下さい。p...
-
PHPからMSSQLへの接続結果の文...
-
libphp5.so がないと?
-
*.php、*.php3、*.phtmlの違い
-
さくらインターネットでメール...
-
<A href ~ と一緒に値を渡すには
-
phpのinclude_pathのエラーにつ...
-
apache・phpが起動しない・・・
-
Apache 2.4.0でphp5.3を使うには?
-
空メールシステムを作りたい
-
header(Location:~)で$_SESS...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
これの対応OSを教えて下さい。p...
-
フォームで戻った際に入力済み...
-
.htaccessにphp_valueが使用できな
-
*.php、*.php3、*.phtmlの違い
-
<A href ~ と一緒に値を渡すには
-
HYのAM11:00のラップの部分の歌...
-
PEAR(Image_QRCode)のエラー
-
さくらインターネットでメール...
-
PHPINFOが見えない
-
PEAR installでエラー
-
PHPからMSSQLへの接続結果の文...
-
phpからoutlook起動
-
リンクのクリック数をカウンタ...
-
libphp5.so がないと?
-
phpの中でphpを書けないか
-
【PHP】tmp_nameの命名規約につ...
-
phpエラーメッセージ
-
PHPでの画面遷移について
-
Apache 2.4.0でphp5.3を使うには?
-
PHPでメールを受信するには?
おすすめ情報