ホームページ > バックエンド開発 > PHPチュートリアル > 收藏 PHP页面action值传递问题

收藏 PHP页面action值传递问题

WBOY
リリース: 2016-06-06 20:51:21
オリジナル
1353 人が閲覧しました

(1)

我们一般在页面以这样的index.php?action=segmentfault
判断值参数是否为:

if($_POST['action']=='segmentfault'){
   //这里就是想要操作的........
     }
ログイン後にコピー
ログイン後にコピー

(2)

为什么看到有这样判断的,这:

if($action=='segmentfault'){
   //想要操作的.........
}
ログイン後にコピー
ログイン後にコピー

1,第二种方法没有,不能这样写吧?

2,php.ini中register_global=On就可以第二种方法。大家怎么看

回复内容:

(1)

我们一般在页面以这样的index.php?action=segmentfault
判断值参数是否为:

if($_POST['action']=='segmentfault'){
   //这里就是想要操作的........
     }
ログイン後にコピー
ログイン後にコピー

(2)

为什么看到有这样判断的,这:

if($action=='segmentfault'){
   //想要操作的.........
}
ログイン後にコピー
ログイン後にコピー

1,第二种方法没有,不能这样写吧?

2,php.ini中register_global=On就可以第二种方法。大家怎么看

第一种写法是错的。query_string里的应该用$_GET;或者用$_REQUEST (包括GET/POST/COOKIE)

第二种是安全问题,很容易造成注入。你非要这么写的话,在不开启register_globals的时候,可以用extract函数。

register_global=On
ログイン後にコピー

这种写法非常古老,从接触 php 的第一天就被告知,不要开启这个。开启之后安全隐患非常严重。

request_order影响$_REQUEST,我之前一直用$_POST $_GET

1楼正解,而且在将来的版本中register_global将被取消掉

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート