最新記事
(06/29)
(06/04)
(06/03)
(05/30)
(05/28)
|
ニュース
この欄には、このブログの内容に関連するニュースを掲載する予定です。
|
PHP シークレットページ5(論理演算子)
前回「PHP シークレットページ4(門前払い) 」までは、1つのパスワードを用意して、そのパスワードを入力すれば、ページが開くという方式でした。今回からは、ページを開くパスワードを複数設定することにします。
複数のパスワードがあるメリットは、ユーザー別にパスワードを提供できるということです。あるユーザーにアクセスしてもらいたくなったら、そのパスワードを削除したり、無効にしても、他のユーザーに迷惑をかけることはありません。
複数のパスワードの設定方法も何通りか考えられます。今回は、そのうち、一番理解しやすいと思われる論理演算子による方法を考えたいと思います。
前回はパスワードが1つだったので、「送信されたデータがパスワードにあっていなければ、元に戻り、一致していれば内容を見せる」というロジックでした。
今回は、パスワードが複数なので、「送信されたデータがaでもなくbでもなくcでもないなら、元に戻り、それ以外なら内容をみせるという記述にします。
他の部分は、前回とほとんど同じです。
[ソース]secretpage5.html
[ソース]secretpage5.php
複数のパスワードがあるメリットは、ユーザー別にパスワードを提供できるということです。あるユーザーにアクセスしてもらいたくなったら、そのパスワードを削除したり、無効にしても、他のユーザーに迷惑をかけることはありません。
複数のパスワードの設定方法も何通りか考えられます。今回は、そのうち、一番理解しやすいと思われる論理演算子による方法を考えたいと思います。
前回はパスワードが1つだったので、「送信されたデータがパスワードにあっていなければ、元に戻り、一致していれば内容を見せる」というロジックでした。
if($_POST["pwd"]!="secret"){
header("Location:secretpage4.html");
}
今回は、パスワードが複数なので、「送信されたデータがaでもなくbでもなくcでもないなら、元に戻り、それ以外なら内容をみせるという記述にします。
if($_POST["pwd"]!="a"&&$_POST["pwd"]!="b"&&$_POST["pwd"]!="c"){
header("Location:secretpage5.html");
}
他の部分は、前回とほとんど同じです。
[ソース]secretpage5.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Pragma" content="no-cache">
<title>シークレットページ5「aでもなくbでもなくcでもない」なら</title>
</head>
<body>
<form action='secretpage5.php' method='post'>
パスワード:<input type='text' name="pwd">
<input type='submit' value="送信">
</form>
<p>「aかbかc」を送信すれば、目的のページが見れます。</p>
<p>「aかbかc」以外を送信すると、目的のページは見れず、このパスワード送信ページに戻ってきます。</p>
<p>送信先のページでは、「aでもなくbでもなくcでもないなら」、このこのパスワード送信ページにもどってくるという記述をしています。</p>
<hr>
</body>
</html>
[ソース]secretpage5.php
<?php
header("Pragma: no-cache");
header("Cache-Control: no-store, no-cache, must-revalidate");
if($_POST["pwd"]!="a"&&$_POST["pwd"]!="b"&&$_POST["pwd"]!="c"){
header("Location:secretpage5.html");
}
?>
<html>
<head>
<title>シークレットページ5「aでもなくbでもなくcでもない」なら</title>
</head>
<body>
$_POST["pwd"]=<?= $_POST["pwd"]; ?><br>
</body>
</html>
PR