#$_REQUEST
リクエストパラメータの取得
▪️$_REQUEST['リクエストパラメータ名']
ex)
リクエストパラメータ名が「user」
$_REQUEST['user']
・$_REQUEST
は$_GET $_POST $_COOKIE
などの内容をまとめた連想配列
・$_REQUEST
は連想配列
・$_REQUEST
はリクエスト変数
・_GET
の代わりに使うのはOK
・_POST
の代わりに使うのはNG
・つまりなるべく使わない方がいい、postなら$_POST
、getなら$_GET
にした方がいい
・$_REQUEST
の値は、デフォルトでは cookie > POST > GETの順で優先されます
リクエストパラメータ名
って何?
コントロールのname属性の値がリクエストパラメータ名
-
POINT、_________________________________
$_REQUEST
・$_REQUEST
にはリクエストパラメータの値が格納される。
■user-input.php
<?php require 'header.php';?>
<p>お名前を入力してください。</p>
<form action="user-output.php" method="post">
<input type="text" name="user"> <input type="submit" value="確定">
</form>
<?php require 'footer.php';?>
■user-output.php
<?php require 'header.php'; ?>
<?php
if (isset ( $_REQUEST ['user'] )) { //user-output.phpを直リンしたらエラーがでないように
echo 'ようこそ、', $_REQUEST ['user'], 'さん。';
echo '</br>';
echo 'ようこそ、', $_POST ['user'], 'さん。';
}
?>
<p>
<button onclick="history.back()">戻る</button>
</p>
<?php require 'footer.php';?>
#$_GET
##<a hrefでの$_GET
test57-input.php
<a href="test57-output.php?page=1&test=テスト&test2=あ">リンク</a>
test57-output.php
echo $_GET['page'];
echo "</br>";
echo $_GET['test'];
echo "</br>";
echo $_GET['test2'];
#htmlspecialchars関数
例えば、ユーザーがお名前を入力してください。というテキストボックスに<h1>テスト</h1>
と入れると、htmlが反映されて表示されてしまう。これを防ぐのがhtmlspecialchars関数。
user-output.php
<?php require 'header.php'; ?>
<?php
if (isset ( $_REQUEST ['user'] )) { //user-output.phpを直リンしたらエラーがでないように
echo 'ようこそ、', htmlspecialchars($_REQUEST['user']), 'さん。';
}
?>
<p>
<button onclick="history.back()">戻る</button>
</p>
<?php require 'footer.php';?>
echo 'ようこそ、', htmlspecialchars($_REQUEST['user'], ENT_QUOTES,'UTF-8'), 'さん。';
or
echo 'ようこそ、', nl2br(htmlspecialchars($_REQUEST['user'], ENT_QUOTES,'UTF-8'), false), 'さん。';
or
echo htmlspecialchars($_REQUEST['user'],ENT_QUOTES);
<?php
function h($str) {
return htmlspecialchars ( $str );
}
if (isset ( $_REQUEST ['user'] )) { // user-output.phpを直リンしたらエラーがでないように
echo 'ようこそ、', h ( $_REQUEST ['user'] ), 'さん。';
}
?>
or
<?php
function h($str) {
return nl2br(htmlspecialchars($str,ENT_QUOTES,'UTF-8'), false);
}
if (isset ( $_REQUEST ['user'] )) { // user-output.phpを直リンしたらエラーがでないように
echo 'ようこそ、', h ( $_REQUEST ['user'] ), 'さん。';
}
?>
でもいい