私は PHP を初めて使用し、いくつかの _GET 変数を使用して、ページ レイアウト/Web サービス データ、およびページ上のその他のロジックを決定しています。データを保存したり、あらゆる種類のDBに書き込んだりしていません。これにはどのようなサニタイズを使用すればよいですか?
たとえば、私が使用している 1 つの変数は次のようなものです。
$querystring = $_SERVER['QUERY_STRING'];
if(isset($_GET['semester']) && $_GET['semester'] != ''){
$listxml = simplexml_load_file("http://path/to/webservice/?".str_replace('semester','term',$querystring));
クエリ文字列に ?semester= が設定されていて空白ではない場合、それを「term」に置き換え、クエリ文字列をそのまま Web サービス URL に渡します (Web サービスは term 変数を使用しますが、term 変数は干渉します)。 wordpress を使用して、その「用語」(WP のタグ/カテゴリ) の投稿ページにリダイレクトするので、学期として WP を介して渡し、Web サービス呼び出しの用語に変更します。
したがって、この場合、Webサービスがクエリ文字列で行うことをそのままWebサービスに渡すことを除いて、_GETで何もしていませんが、何らかの方法でそれを「準備」する必要がありますか?
--
また、次のようなケースもあります。
$display = '';
if (isset($_GET['display'])) {
$display = $_GET['display']; //set sort via querystring
} else {
$display = 'interest'; //set to default by interest
}
後で:
<div id='byalphabet' class='<?php global $display; if($display != 'alphabet'){echo 'hide';} ?>'>
と
<div id="byinterest" class="<?php global $display; if($display != 'interest'){echo 'hide';} ?>">
--
いくつかの動的な JavaScript にも使用します。
$view = '';
if (isset($_GET['view'])) {
$view = $_GET['view']; //set view via querystring
}
後で:
<script>
<?php if ($view != ''){ $view = str_replace('/','',$view); ?>
jQuery('#<?php echo $view; ?>').trigger('click'); //activate view option accordion pane
jQuery('html,body').animate({'scrollTop':jQuery('#<?php echo $view; ?>').offset().top - 50},500); //scrollTo view
</script>
--
その他のケースには、配列で _GET 値を検索し、次array_search($_GET['major'], $slugs);
を使用してページをリダイレクトすることが含まれます。
$parts = explode('/',$_SERVER['REQUEST_URI']);
Header( "HTTP/1.1 301 Moved Permanently" ); //SEO friendly redirect
Header( "Location: http://www.site.ca/programs/outline/".$parts[3]."/" );
編集: ポップアップで提案された同様の質問の多くを読みましたが、それらは主に、DB への挿入など、他の方法でデータを使用することを指しています。