PHP は URL を安全にフィルタリングします
preg_match_all( '/([0-9])=([\%\+\-\.\/0-9\=A-Z\_]+)/i', $_SERVER['QUERY_STRING'], $_GET );
$_GET = ( $_GET[0] ? array_combine( $_GET[1], $_GET[2] ) : array() ) + array_fill( 0, 10, '' );
現在、$_GET は設定 0 ~ 9 のみを受け入れます。もちろん、これらの URL は非常に安全です。
?0=123&1=456 違法な URL&2=789" AND xxx=1&3= 0ABC&4=BASE64_CODE&5=URLENCODE
の許容可能な URL [%+-./0-9=A-Z_]+
を見てください。理解できます。エラーを防ぐために、存在しない設定を空に設定します
通常、isset( $_GET[0] ) は $_GET[0] に変更できます。警告メッセージはありません
$_GET は変更されました0-9 存在しないものが設定されています
直接変数には警告メッセージは出ないと誰かが言いましたか?
説明 警告メッセージがないことは、警告メッセージが生成されないことを意味しません。
エラー報告レベルを
error_reporting(8191);
より前の最高レベルに設定し、PHP エラーの堅牢性と速度のテストを実行しました。メッセージ
PHP を参照してください isset() が使用される理由を説明します