スレッド表示 | フラット表示〕 全トピック 920 件中 820 番目 次≫ ≪前

セッションの値が読めない>_<

created: 2003-08-28 18:13 | modified: 2003-08-30 01:27 | reply: 7

[554] セッションの値が読めない>_<

user: ごん | created: 2003-08-28 18:13
お世話になっています。下記のような2つのPHPを作成。B.PHPの方で[hello]という出力を期待したのですが、結果は[]と表示されてしまいます。

ちなみに、セッションファイルは、/tmpに作成されるようになっており、テスト前にすべてファイルを削除し、a.phpからsubmitすると、次のようなファイルが出来上がり内容は、abc|s:5:"hello";になっていました。

sess_c216505f7979ecc6dff607ac98493952

PHPは4.2.1で、--enable-trans-sidもつけてメイクしてあります。

<a.php>
@session_start();
@session_register( "abc" );
$abc= "hello";
<form method="post" action="./b.php">
・・・
<input type="submit value="ok">
</form>

<b.php>
@session_start();
print "[" . $abc . "]";

ほかにチェックすべき点などありますでしょうか?
reply: 555 返信 編集 削除

[555] 以前にも同じような記事ありましたね^^;

user: ごん | created: 2003-08-28 18:36
私の場合はapacheです。その記事をもとに、もうすこし補足します。

ブラウザのクッキーはON

php.iniの内容は次の通りです

[Session]
session.save_handler = files
session.save_path = /tmp
session.use_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.serialize_handler = php
session.gc_probability = 1
session.gc_maxlifetime = 1440
session.referer_check =
session.entropy_length = 0
session.entropy_file =
;session.entropy_length = 16
;session.entropy_file = /dev/urandom
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 1

すべてデフォルトです。
Parent: 554  reply: 556 返信 編集 削除

[556] あっれれ???

user: ごん | created: 2003-08-28 18:53
何度もすいません>_<

ちょっと、register_globalsをONにしてやってみようと思い、php.iniを編集。
apachectl stop → start して
phpinfo()を実行

すると、register_globalsがOffのままなんです。ちなみに他の項目もすこしいじってみて確認したのですが、やはり変化なし。

これはいったいどういうことなのでしょう。

php.ini は念のため findかけましたが、/etcにしか存在しませんでしたので、そこをいじりました。

ところで、phpinfo()の、Configuration File (php.ini) Pathが、/usr/local/libになっています!!でも、そこにはありません>_<
Parent: 555  reply: 557 返信 編集 削除

[557] うおおお

user: ごん | created: 2003-08-28 19:08
ないならコピーしてしまえ!

ということで、php.iniを/usr/local/libにコピーして、apache再起動。

すると、セッションから値拾えるようになりました・・・でも、これでいいのかなぁ。なんかあやしぃ
Parent: 556  reply: 561 569 返信 編集 削除

[561] $_SESSION[ ]推薦

user: ゆうじ | created: 2003-08-29 00:35
Linux のテスト環境が無かったもので
眺めてるばかりでした。ほったらかしですみません。

Windows でも インストール時に、
php.ini をパスの通ったところにコピーしますし、
Linux ならば --with-config-file-path で
php.ini のパスを設定するようですから、
あとから php.ini をコピーした件は問題無いだろうと思いますが。
推測の域をでませんので、Linux環境をお持ちの方で
どなたかフォロー頂ければ幸いです。


自宅PCの Windowsで php.ini の無い状態を作ってみましたが、
同じくセッションに登録した変数は得られませんでした。
phpinfo()で register_globals を確認したところ
やはり、Off でした。

register_globals を On にするよりも、
設定を変更できない環境のことも考慮して
$_SESSION["abc"] で獲得した方がいいかと思います。
Parent: 557  reply: 564 返信 編集 削除

[564] たしかに

user: ごん | created: 2003-08-29 11:55
いままで、ずっと外部変数使っていましたが、今回から使わないようにしれみました。
セキュリティ以外のメリットも多い気がしますね^^
Parent: 561  返信 編集 削除

[569] RE;ないならコピーしてしまえ!

user: うなどん ホームページ | created: 2003-08-29 17:40
それで正解

> PHPは4.2.1で、--enable-trans-sidもつけてメイクしてあります
ソースからインストールした場合,php.ini-distを/usr/local/libへcpします.

meke install完了後にメッセージが出たと思います.
php.ini-dist ほにゃらら

./etc にあったと言うことはrpmのPHPが残っているからです.
/usr/share/lib かな?

rpm -e php
Parent: 557  reply: 572 返信 編集 削除

[572] ありがとうございました^o^

user: ごん | created: 2003-08-30 01:27
なんか気持ち悪かったんですけど、正解だと知って安心しました。
Parent: 569  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 820 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑