###$_SERVER連想配列
サーバはヘッダやパス・スクリプトの位置などいろいろな情報を持っていますが、そのサーバの情報にアクセスできる変数
$_SERVERについて
###$_SERVER['REQUEST_METHOD']
・ページがリクエストされたときのリクエストメソッド名を返す
・ブラウザからのリクエストが、POSTメソッドなのかGETメソッドなのか、スクリプト側で判別したい
$_SERVER ['REQUEST_METHOD'] === 'POST'
は何かが投稿された
という意味
##変数は最初から初期化しないとエラーになる
$err = '';
又は $err = false;
これがないと
Notice: Undefined variable
になる。
test23.php編集リクエスト後
<?php
$username = '';
// $err = '';
$err = false;
// ===→型と値が等しいときTRUE ==→値が等しいときTRUE
// REQUEST_METHOD→ページにアクセスする際に使用されたリクエストのメソッド名
// $_SERVER['REQUEST_METHOD']ページがリクエストされたときのリクエストメソッド名を返す
// $_SERVER['REQUEST_METHOD']現在のページにアクセスする際に使用されたメソッド
// 何かが投稿された
if ($_SERVER ['REQUEST_METHOD'] == 'POST') {
// if ($_SERVER ['REQUEST_METHOD'] === 'POST') {
$username = $_POST ['username'];
if (strlen ( $username ) > 8) {
$err = true;
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xm1ns="http://www.w3.org/1999/xhtml">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>PHP入門</title>
</head>
<body>
<!-- action=""自分自身に飛ばす -->
<form action="" method="post">
<?php function h($str){
return htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
}?>
<input type="text" name="username" placeholder="user name" value="<?php echo h($username);?>">
<input type="submit" value="Check!">
</form>
<?php
if(!empty($err)){ echo "Too long!";}
?>
</body>
</html>
test23.php編集リクエスト前
<?php
$username = '';
// $err = '';
$err = false;
// ===→型と値が等しいときTRUE ==→値が等しいときTRUE
// REQUEST_METHOD→ページにアクセスする際に使用されたリクエストのメソッド名
// $_SERVER['REQUEST_METHOD']ページがリクエストされたときのリクエストメソッド名を返す
// $_SERVER['REQUEST_METHOD']現在のページにアクセスする際に使用されたメソッド
// 何かが投稿された
if ($_SERVER ['REQUEST_METHOD'] == 'POST') {
// if ($_SERVER ['REQUEST_METHOD'] === 'POST') {
$username = $_POST ['username'];
$err = false;
if (strlen ( $username ) > 8) {
$err = true;
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xm1ns="http://www.w3.org/1999/xhtml">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>PHP入門</title>
</head>
<body>
<!-- action=""自分自身に飛ばす -->
<form action="" method="post">
<?php function h($str){
return htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
}?>
<input type="text" name="username" placeholder="user name" value="<?php echo h($username);?>">
<input type="submit" value="Check!">
</form>
<?php if(!empty($err)){ echo "Too long!";}
if($err) { echo "Too long!";}
?>
</body>
</html>