最新記事
(06/29)
(06/04)
(06/03)
(05/30)
(05/28)
|
ニュース
この欄には、このブログの内容に関連するニュースを掲載する予定です。
|
PHP シークレットページ8(配列・while)
前回の「PHP シークレットページ7(配列・for)」は、制御部分をforで処理しました。ほとんど変わりはありませんが、forではなくwhileで処理した例も参考に載せておきます。
[ソース]secretpage8.php
[ソース]secretpage8.html
[ソース]secretpage8.php
<?php
header("Pragma: no-cache");
header("Cache-Control: no-store, no-cache, must-revalidate");
$password=array("a","b","c","d","e");
$count=count($password);
$i=0;
while($i<$count){
if($password[$i]==$_POST["pwd"]){
$condition=1;
break;
}
++$i;
}
if($condition!=1){
header("Location:secretpage8.html");
}
?>
<html>
<head>
<title>while:送信されたデータと同じものがあったので</title>
</head>
<body>
$condition=<?= $condition; ?><br>
$_POST["pwd"]=<?= $_POST["pwd"]; ?><br>
</body>
</html>
パスワード入力ページの構造は、これまでと変わりありません。
[ソース]secretpage8.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Pragma" content="no-cache">
<title>while:送信されたデータと同じものがあったら</title>
</head>
<body>
<form action='secretpage8.php' method='post'>
パスワード:<input type='text' name="pwd">
<input type='submit' value="送信">
</form>
<p>「aかbかcかdかe」を送信すれば、目的のページが見れます。</p>
<p>「aかbかcかdかe」以外を送信すると、目的のページは見れず、
このパスワード送信ページに戻ってきます。</p>
<p>送信先のページでは、パスワードが配列に格納されています。
この配列のそれぞれを送信された値と比較します。
その配列の値が送信されたデータと一致したときは「条件」を「真」とします。
一致しなければ、次の配列と比較します。
最後の配列までいっても値が一致しないときは「条件」に値がなく、
「偽」ということになります。
「偽」の場合には、このパスワード送信ページに戻します。</p>
<hr>
</body>
</html>
PR