忍者ブログ
バナヤンの忍者風呂
忍者ブログのカスタマイズ、各種WEBツールのテストなど試行錯誤の日々。 VMLによる地図の作成を研究していましたが、一時中断して、今はPHPを勉強しているところです。
ニュース
この欄には、このブログの内容に関連するニュースを掲載する予定です。
お知らせ
この欄には管理人からのお知らせなどを掲載します。
[28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38]

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

PHP シークレットページ

パスワードを入力しないと、その内容が見えないWEBページを、この忍者風呂では「シークレットページ」と名づけました。これを実現するために、PHPをどのように記述すればいいでしょう。

フローとロジックは、次のようになります。

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
この記事にコメントする
お名前
タイトル
メールアドレス
URL
コメント
パスワード
QRコード
忍者ブログ [PR]
Copyright (C) 2006 banayan ALL RIGHTS RESERVED.