■サンプルプログラム
テキストエディタに以下のように書き込んで、「lesson4」フォルダの中に「sample03.php」として保存しましょう。
<?php
$pass1 = 1234;
$pass2 = 1233;
?>
<html>
<head>
<title>Sample03</title>
</head>
<body>
<?php
if($pass1 == 1233){
print "認証成功!!<br>\nパスワードは$pass1";
}else if($pass2 == 1233){
print "\$pass1は合っていませんが、\$pass2は合っています。";
}else{
print "\$pass1も\$pass2も間違っています。";
}
?>
</body>
</html>
できましたら、ブラウザのアドレスに
「http://localhost/lesson4/sample03.php」にアクセス!
ロリポップ!
さくらのレンタルサーバ
などのレンタルサーバー使ってる方はlocalhostのところはドメイン名になります。
さて、如何でしょうか?ちゃんと表示されましたでしょうか?
■解説
さて、今回はちょっと複雑になってきましたが。if文も上から順々に追いかけて見ていけば問題ありません。まずは、今回のプログラムがどのような実行結果になるかを考えてみてください。
$pass1 = 1234;
$pass2 = 1233;
まずは、変数を2つ用意します。
if($pass1 == 1233){
print "認証成功!!<br>\nパスワードは$pass1";
}else if($pass2 == 1233){
print "\$pass1は合っていませんが、\$pass2は合っています。";
}else{
print "\$pass1も\$pass2も間違っています。";
}
さて、この部分。1回目のif文がfalseだとelse if(){}に移動するわけですが、elseにifをつけることによってさらに条件を付け足せます。1回目は、「もし$passが1233だったら{}を実行。合っていなければelse if(){}を実行しなさい。」else ifのところは「もし$pass2が1233だったら{}を実行。あっていなければelse{}を実行しなさい」ということになります。ちょっとややこしいですが、落ち着いて考えましょう。$pass1は1234なので、1回目はfalse。else ifでは、$pass2は1233なのでtrueになります。したがって、「$pass1は合っていませんが、\$pass2は合っています。」という結果になります。もし、$pass1と$pass2がどれにも合わなければ最後のelse{}の処理が実行されます。
前回はただfalseだったらelse{}の処理をする。というプログラムでしたが、今回はfalseでもさらにそれを評価するようにしています。このelse if(){}は後ろにどんどんつなげていくことができます。
●予備知識(エスケープシーケンス)
print "\$pass1は合っていませんが、\$pass2は合っています。";
この$pass1と$pass2の前ついた「\」こいつらを「エスケープシーケンス」と言います。print文の中で$pass1として、そのまま書いてしまうと変数に格納した値が表示されています。「$pass1」をそのまま表示させたいのであれば変数名の前に「\」を置くことで表示させることができます。
実は「\n」もエスケープシーケンスです。他には「\t」(水平タブ)や「\"」(2重引用符)があります。
さて、それでは次はフォームと絡めて簡単なパスワード認証プログラムでも作ってみましょう!!これができた時、私は感動しました^^