PHPのセッションについて質問です。

A.phpからPOSTで受け取ったデータをB.phpでセッション変数に格納しているのですが、
B.phpで、
$_POST[’name’]に”123”と入っていて、
$name=”はてな”;
$_SESSION[’name’]=$_POST[’name’];
echo $name;
とすると”123”と出力されてしまうのですが、何故でしょうか。セッション変数には”123”を入れて、出力は”はてな”としたいのです。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:esseesse No.1

回答回数192ベストアンサー獲得回数0

ポイント15pt

http://www.php.net/extract

PHP: extract - Manual

何もしていなければそんなことは無いはずなのですが、もしかして、

$name=”はてな”;

echo $name;

の間でextractしてませんか?

その付近の実際のソースがわかると助かるのですが。。。

id:wintarsnow

回答ありがとうございます。

いえ、特に何もやっていないと思うのですが…。

でも、

$name=”はてな”;

$_SESSION[’name’]=$_POST[’name’];

はHTML表示の前にあるブロックでやっていて、

echo $name;

はHTML中の表示したい部分にとしているのです。これは原因になりますでしょうか。

2004/10/09 22:44:05
id:golbeza No.2

回答回数34ベストアンサー獲得回数0

ポイント15pt

http://jp2.php.net/import_request_variables

PHP: import_request_variables - Manual

見当違いでしたらごめんなさい。

import_request_variables()

をしていないでしょうか。

id:wintarsnow

回答ありがとうございます。

いえ、していません。

B.phpで使用している関数は、

header

session_cache_limiter

session_start

function

trim

str_replace

mb_convert_kana

stripslashes

htmlspecialchars

ereg

exit

echo

mysql_connect

die

mysql_select_db

mysql_query

mysql_fetch_assoc

以上なのですが、この中に何か問題になりそうなものはありますでしょうか。

--追加--

$_SESSION[’name’]=$_POST[’name’];

の位置が原因かと考えて変えてみたのですが、

$name=”はてな”;

より前で実行すれば大丈夫でした。でもこれでは不便ですしなんとかしたいです。

2004/10/10 00:20:28
id:html1983 No.3

回答回数72ベストアンサー獲得回数0

ポイント40pt

php.iniの「register_globals」と「variables_order 」の設定はどうなっていますか?

register_globalsがOnですと、こういうおかしなことが起こるかません。

id:wintarsnow

回答ありがとうございます。

register_globalsがOnでした…!

早速.htaccessでOffに上書きしてやったら、きちんと動作しました。

ありがとうございました!!

2004/10/10 01:13:55

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません