- ベストアンサー
regsiter_globalsがoffの場合の処理
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
offの時は $testで参照していたものを onの時は $HTTP_GET_VARS['test'] で参照すれば大丈夫だと思います。 参考URLをご覧ください。
関連するQ&A
- register_globalsがOFFの状態で処理をさせる方法
今現在、register_globalsがデフォルトでOFFだ というのは知っていますが、 実際にONを前提に書いている人、私も含めて多いと思いますが、 どうやって代替させるのかを 具体的に書いているサイトを知っていましたら、 教えて下さい。 色々なサイトを見ても、問題点は書いているけど、 代替方法があまり書いていないので、 どうすればいいのかよく分からず、 OFFに切り替えたいけど、 出来ない状態でいます ($_POST["***"]等を使うのは見ますが)。 hiddenを使うのは推奨されないということでしょうか? 値の引き渡しをしないで、 どうやって処理させるのか、 リンクで直接パラメーターを書くのも推奨されないと いうことでしょうか? 例: http://www.***.jp/index.php?***=**&***=1 是非ともご回答をお待ちしています。
- 締切済み
- PHP
- register_globalや$$という変数について・・・
PHPの勉強を始めて2週間足らずの初学者です。 質問させていただきます。 環境はwindowsXP+xampp+PHP5.2です。 現在、やや古めのPHP書籍のサンプルを試しています。 register_globals=Onの状態では、問題なく動作しました。 しかし、Offにすると反応しない部分があります。 test.phpにてsupport.phpをincludeしているのですが、 以下の箇所をそれぞれregister_globals=Off用に書き換える知恵が ありません。ほんの一部のみの抜粋にて恐縮ですがご査収願います。 ---「test.phpの一部」----------------------------------------- echo '<INPUT TYPE="radio" NAME="',$name,'"VALUE="',$kaitoubango,'">',"$val\n<br />";} ---「support.phpの一部」-------------------------------------- $kaitoubango++; $name = $kaitoubango; $val = $$name; -------------------------------------------------------------- 繰り返しになりますが、register_globals=Onの状態では、問題なく動作しましたが、Offでこの状態でフォームアクションしても$val = $$name;に値がありません。 「support.php」の$$nameを$_POST['name']に変更すれば、可能かと思いましたが、ダメでした。 なお、部分的な質問になりますが、 (1)「test.php」のNAME="',$name,'"VALUE="',$kaitoubango,'"ですが、 何故、NAME="$name" VALUE="$kaitoubango"でないのでしょうか? 「',」は何を意味しているのでしょうか? (2)「support.php」の$$nameという変数ですが、$が2つ連続した変数は今のところ、初めて見ました。これはどういう意味なのでしょうか? お詳しい方がおられましたら、何卒アドバイスのを頂戴できればと思います。よろしくお願いいたします。
- ベストアンサー
- PHP
- htaccessで指定したURLが含まれる場合
htaccessの設定でリダイレクト処理をしたいと思っています。 したい内容は 「指定したURLが含まれる場合、リダイレクト」 です。 現在、phpで下記の通り引数を使用してサイトを表示しています。 http://www.sample.jp/test.php?id=1&page=1 http://www.sample.jp/test.php?id=1&page=2 http://www.sample.jp/test.php?id=1&page=3 http://www.sample.jp/test.php?id=2&page=1 http://www.sample.jp/test.php?id=2&page=2 http://www.sample.jp/test.php?id=2&page=3 上記、URLで 引数id=1のページにアクセスがあった場合、新ドメインの http://www.ex.jp/test_page/ へリダイレクトし、 引数id=2のページにアクセスがあった場合、新ドメインの http://www.ex.jp/sample_page/ にリダイレクトしたいと思っています。 現状は1つずつ RedirectPermanent /test.php?id=1&page=1 http://www.ex.jp/test_page/ RedirectPermanent /test.php?id=1&page=2 http://www.ex.jp/test_page/ RedirectPermanent /test.php?id=1&page=3 http://www.ex.jp/test_page/ としていますが、これをid=1のページを全て一括で http://www.ex.jp/test_page/ へリダイレクトする書き方はないのでしょうか。
- ベストアンサー
- その他(プログラミング・開発)
- 何を言いたいのでしょうか!?
以下の意味ですが、わたし的(素人)には何を言いたいのか、物に例えると、輪郭程度でしたらわかります。 具体的に何を言いたいのでしょうか!?(PHP教本にありました。) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ $GLOBALS グローバルスコープに定義された変数名をキーとして連想配列を持ちます。 <?php $globals_test = 1; echo $globals_test,PHP_EOL; (1) echo $GLOBALS[‘globals_test’],PHP_EOL; (2) (1)と(2)は同じ変数を参照にしており、このスクリプトでは1が出力されます。 PHPでは関数の中などのローカルスコープでも、$GLOBALS変数を用いてあらゆるグローバル 変数への読み書きができます。globalキーワードと同様、スコープを区切らずにあらゆる変数にア クセスできてしまうと、思わぬ個所で値が変更され、それが他の個所で思わぬ影響を及ぼす場合があ ります。$GLOBALSを利用するのはやむを得ない場合や、利用用途がそのプログラムの開発に携 わるすべての人に明確である場合に限るべきです。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 以上よろしくお願いいたします。
- ベストアンサー
- PHP
- POSTの値をSQL内で使う場合
某サンプルで次のようなサンプルがありました。 where (isbn like '%$isbn%') たぶん、resister_globals = on の時代に動いていた サンプルだと思います。 Offの場合、これを $_POST[isbn]とやっても動くのですが ''もしくは""でisbnを囲うとしたら、どのようにすると いいのでしょうか? よろしくお願いします。
- ベストアンサー
- PHP
- 他ホストからのPOSTを防ぐ方法
php.iniのregister_globalsをOffにすることで不要な GETパラメータを受け付けないようにすることができますが、他ホストから、<form metho=POST acrion=http://***.com/xx.php> などとした場合、他ホストからPOSTできるわけで、 結局、他ホストからPOSTできないようにしないとrgister_globalsをOnにした時と、セキュリティーはあまり変わらないようか気がするのですが、 他ホストからPOSTできなくする方法はありますでしょうか? 現在、思いつくのはPHPに限らず以下の方法ですが、 いずれも完璧ではないような気がします。 1.refererチェック(100%で有効ではないらしい) 2.Sessionによる認証チェック(認証済みユーザなら結局、同一ブラウザを使い他ホストのページからPOSTできる)
- 締切済み
- PHP
- argv( 引数 )について
こんにちは、質問させてください。 今test.phpに引数をひとつ渡します。 test.php内では、 $name = $_GET["name"]; として受けています。 test.phpは、引数がNULLの時とそうでないときで 別処理を行うようにしています。 PHP.iniファイルのエラーメッセージを表示させるように設定していて、 引数が存在しないときに以下のようなメッセージがエラーログファイルに追加されます。 Undefined index: name in c:\htdocs\test\test.php on line 12 このメッセージが表示されること自体、たいしたエラー(?!)ではありませんが、 引数がない場合、実行する度に上記のメッセージがでるのはあまり 面白くないので、表示させたくないようにしたいのですが, どのようにすればいいでしょうか? 宜しくお願い致します m(_ _)m
- ベストアンサー
- PHP
- globalと$GLOBALSの違いは?
globalと$GLOBALSの違いは、連想配列かそうでないかしかないのでしょうか。 大量に使う場合、どちらを使っても動作には差はでないでしょうか。 <?php $s = "グローバルスコープ"; //グローバルスコープ function scope_test0(){ echo $s; // 何も表示されない(ローカルスコープ) } scope_test0(); /* globalを使う */ $a = "スコープの違い"; function scope_test1(){ global $a; //ここでglobalを宣言、スコープが違う変数を参照可能に echo $a; //スコープの違い }; scope_test1(); /* $GLOBALSを使う */ $b = 3; $c = 4; function scope_test2(){ $GLOBALS["c"] = $GLOBALS["b"] + $GLOBALS["c"]; } scope_test2(); echo $c; //7 ?>
- ベストアンサー
- PHP
- JavaScriptをoffにしたい
現在、JavaScriptを使ってサイトを作ろうとしているのですが、JavaScriptをon/offする方法を知らないんです。 で、JavaScriptがonになっているかどうか判別するページを作ってみたのはいいけれど、offの時にどういうことになるのか確かめられなくて困っています。 私のパソコンははじめからonになっていて、やり方がわかりません。 どなたか教えていただけないでしょうか? 私が使用しているのはOSがWin xpで、使っているのは主にIE6.0です。
- ベストアンサー
- JavaScript
- php設定ファイルについて
セキュリティ上よろしくないとは知りながら、register_globalsの設定をonに変えたいと思っています。 で、いろいろ調べたのですが、ユーザーレベルでこの設定を変えるにはphpファイルのあるディレクトリでphp.iniというファイルを置き、中身を「register_globals=on」にする方法と、.htaccessを置いて中身を「php_flag register_globals on」とする方法と2つあるようですが、この方法はどちらもどのサーバーでも有効な方法なのでしょうか。 .htaccessについては許可していないサーバーもあるようですので万能ではないようですが、許可されているかされていないかは別として、これらのファイルを置けば有効になるものなのか、それともサーバー管理者が「このファイルにこう書けばOK」と設定次第で有効になるものなのかが知りたいのです。 よろしくお願いいたします。
- ベストアンサー
- PHP
お礼
できました。 ありがというございます。