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

[PR]

×

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

PHP シークレットページ7(配列・for)

前々回の「PHP シークレットページ5(論理演算子)」と前回の「PHP シークレットページ6(論理演算子2) 」では、複数のパスワードを論理演算子で判断させていました。この方式だと、パスワードが増えると、式も長くなって大変です。

今回は、パスワードを配列に格納する方式を試してみます。この配列を用いた方式は、後日紹介しますが、ファイルからのパスワード等の読み込みやデータベースとの接続によるパスワード管理の考え方の基礎となるものです。

[ソース]secretpage7.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);
for($i=0;$i<$count;$i++){
if($password[$i]==$_POST["pwd"]){
$condition=1;
break;
}
}
if($condition!=1){
header("Location:secretpage7.html");
}
?>
<html>
<head>
<title>シークレットページ7:送信されたデータと同じものがあったので</title>
</head>
<body>
$condition=<?= $condition; ?><br>
$_POST["pwd"]=<?= $_POST["pwd"]; ?><br>
</body>
</html>


パスワード入力ページの構造は、今までと同じです。


[ソース]secretpage7.html

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Pragma" content="no-cache">
<title>シークレットページ7:送信されたデータと同じものがあったら</title>
</head>
<body>
<form action='secretpage7.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
この記事にコメントする
お名前
タイトル
メールアドレス
URL
コメント
パスワード
QRコード
忍者ブログ [PR]
Copyright (C) 2006 banayan ALL RIGHTS RESERVED.