最新記事
(06/29)
(06/04)
(06/03)
(05/30)
(05/28)
|
ニュース
この欄には、このブログの内容に関連するニュースを掲載する予定です。
|
PHP シークレットページ
パスワードを入力しないと、その内容が見えないWEBページを、この忍者風呂では「シークレットページ」と名づけました。これを実現するために、PHPをどのように記述すればいいでしょう。
フローとロジックは、次のようになります。
1.パスワード入力画面を表示する。
↓
2.パスワードを送信する。
↓
3.送信されたパスワードが正しいか判断する。
↓
4.正しいか間違っているかで処理を分岐する。
↓
5-1 間違っていれば、間違ったなりの処理を実行する。
5-2 正しければ、正しい処理を実行する。
(5-1と5-2の順序は逆でもかまいません。)
ここでは、間違っていれば「正しいパスワードを入力しなければ、このページは見れません。」と表示し、正しければ「正しいパスワードが入力されました。」と表示してみましょう。
このソースを示します。
これにsecretpage.phpというようなファイル名をつけて、PHPが稼動しているサーバーにアップロードして、ブラウザで表示します。
XAMPPを導入している場合、\xampp\htdocs\以下にファイルを作成し、「http://localhost/test/secretpage.php」というようにアドレスを入力します(\xampp\htdocs\test\にファイルを置いた場合の例)。
まず、一般のHTML文書と同じように記述します。そして、判断部分・分岐部分・実行部分にPHPの記述を挿入します。
1)フォーム
パスワードを送信するのでその入力エリアを作成し、その名前を「pwd」とします。
パスワード:<input type='text' name="pwd">
送信ボタンを表示し、このボタンが押されたらsubmitすることとします。
<input type='submit' value="送信">
submitがあったら、POSTメソッドで'secretpage.php' にデータを送ります。
'secretpage.php' は、このファイルのことですから、もう一度このファイルを実行することになります。
<form action='secretpage.php' method='post'>
2)PHP
<判断部分>
if($_POST[pwd]!="secret")
判断をしています。if()は、()内が正しいかどうかを判断します。
$_POST[]は、POSTされた内容を格納する変数です。「pwd」という名前でPOSTされた値は、$_POST[pwd]に格納されます。
「!=」は右と左が一致していないということです。一致する場合は「==」です。
この場合は、送信されたパスワードが「secret」かどうかを判断します。
<分岐部分・実行部分>
if()のあと、それが正であれば直後の{}の中をを実行し、誤であればelse{}の中を実行します。
サンプルの場合、送信されたパスワードが間違っていれば、「正しいパスワードを入力しなければ、このページは見れません。」と表示し、正しければ「正しいパスワードが入力されました。」と表示されます。
if($_POST[pwd=="secret")として、実行部分の順序を逆にしても、同じです。実行部分の記述が長くなるほうを後ろにもっていったほうが、ソースを読みやすいと思います。
このシークレットページは、簡単な仕組みですね。
なお、のPHP部分は、ブラウザのソース表示には出てきません。
'secret'の部分を好みのパスワードに変えましょう。
フローとロジックは、次のようになります。
1.パスワード入力画面を表示する。
↓
2.パスワードを送信する。
↓
3.送信されたパスワードが正しいか判断する。
↓
4.正しいか間違っているかで処理を分岐する。
↓
5-1 間違っていれば、間違ったなりの処理を実行する。
5-2 正しければ、正しい処理を実行する。
(5-1と5-2の順序は逆でもかまいません。)
ここでは、間違っていれば「正しいパスワードを入力しなければ、このページは見れません。」と表示し、正しければ「正しいパスワードが入力されました。」と表示してみましょう。
このソースを示します。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Pragma" content="no-cache">
<title>シークレットページ</title>
</head>
<body>
<form action='secretpage.php' method='post'>
パスワード:<input type='text' name="pwd">
<input type='submit' value="送信">
</form>
<?php
if($_POST[pwd]!="secret"){
echo "<p>正しいパスワードを入力しなければ、このページは見れません。</p>";
}else{
echo "<p>正しいパスワードが入力されました。</p>";
}
?>
<hr>
</body>
</html>
これにsecretpage.phpというようなファイル名をつけて、PHPが稼動しているサーバーにアップロードして、ブラウザで表示します。
XAMPPを導入している場合、\xampp\htdocs\以下にファイルを作成し、「http://localhost/test/secretpage.php」というようにアドレスを入力します(\xampp\htdocs\test\にファイルを置いた場合の例)。
まず、一般のHTML文書と同じように記述します。そして、判断部分・分岐部分・実行部分にPHPの記述を挿入します。
1)フォーム
パスワードを送信するのでその入力エリアを作成し、その名前を「pwd」とします。
パスワード:<input type='text' name="pwd">
送信ボタンを表示し、このボタンが押されたらsubmitすることとします。
<input type='submit' value="送信">
submitがあったら、POSTメソッドで'secretpage.php' にデータを送ります。
'secretpage.php' は、このファイルのことですから、もう一度このファイルを実行することになります。
<form action='secretpage.php' method='post'>
2)PHP
<判断部分>
if($_POST[pwd]!="secret")
判断をしています。if()は、()内が正しいかどうかを判断します。
$_POST[]は、POSTされた内容を格納する変数です。「pwd」という名前でPOSTされた値は、$_POST[pwd]に格納されます。
「!=」は右と左が一致していないということです。一致する場合は「==」です。
この場合は、送信されたパスワードが「secret」かどうかを判断します。
<分岐部分・実行部分>
if()のあと、それが正であれば直後の{}の中をを実行し、誤であればelse{}の中を実行します。
サンプルの場合、送信されたパスワードが間違っていれば、「正しいパスワードを入力しなければ、このページは見れません。」と表示し、正しければ「正しいパスワードが入力されました。」と表示されます。
if($_POST[pwd=="secret")として、実行部分の順序を逆にしても、同じです。実行部分の記述が長くなるほうを後ろにもっていったほうが、ソースを読みやすいと思います。
このシークレットページは、簡単な仕組みですね。
なお、のPHP部分は、ブラウザのソース表示には出てきません。
'secret'の部分を好みのパスワードに変えましょう。
PR
この記事にコメントする