2012-03-08 7 views
3

私はIXウェブホスティングでホストされています。すべての$ _SESSION変数は、同じ名前の通常の変数に自動的に割り当てられます。それは通常のPHPの動作ですか?私はphp.netのマニュアルでそれを探して答えを見つけられませんでした。ここではサンプルスクリプトがあります:私はlocalhostでPHPセッション変数が自動的に通常の変数に割り当てられます

<?php 
$_SESSION['myvar'] = "hello"; 
echo $myvar; // after a page refresh, displays hello 

$myvar = "goodbye"; 
echo $_SESSION['myvar']; // displays goodbye 
?> 

が、私は未定義の変数の同類にエラーMSGを取得:$ MYVARしかしIXで、スクリプトは動作します!危険なPHPの動作ですか?前もって感謝します。

+4

'register_globals'を無効にする – zerkms

+4

@zerkmsは何を言ったのですか?これが誰もがPHPを楽しむ理由です。 –

+1

ママはPHPがクールだと言います。 –

答えて

3

この「機能」は、register_globalsというphp.iniディレクティブによって制御されます。 PHP 4.2以降はデフォルトで無効になっており、PHP 5.4では完全に削除されています。

レガシーコードがない場合は、の場合はにすることをお勧めします。言い換えれば、セキュリティの意味合いはかなり重要です。

+0

そして、あなたがそれをオフにすることができない場合は、Webホストを切り替えることを検討してください。 :Pええ...それは悪いです。 – cHao

+0

それは信じられないほど悪いです。彼らは.htaccessファイルから呼び出されたカスタムCGI php.iniでそれを無効にすることのみを提案しています...それは十分安全か効率的ですか? –

+0

@bobdope 1つの.htaccessファイルでサイト全体を無効にすることができれば、完全に正しい解決策になるはずです。もちろん、デフォルトをオフにするとより良い解決策になります。別のアカウントを設定すると、同じことをもう一度やり直す必要があります。 –

関連する問題