12
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PHP $_SERVER $_SERVER ['REQUEST_METHOD'] === 'POST'

Last updated at Posted at 2017-02-01

201702021.png

###$_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>

20170201.png

12
13
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?