dポイントプレゼントキャンペーン実施中!

携帯電話のwebページでphpによるパスワード認証を下記ページを参考にして行っています。

参考URL
http://www.kimd.jp/program/php/lesson04/sample04 …

ここではパスワードが1つしか設定する方法が書かれていないのですが。このスクリプトを改造してパスワードを複数種類設定することが出来ませんでしょうか?

たとえば、「1234」というワードでも「5473」と言うワードでもログインできるようにしたいと思っています。

私は初心者であまりPHPやプログラムには詳しくなく、このような配布されたプログラムを何とか利用できるレベルです。よろしくお願い致します。

A 回答 (4件)

$pass1 = 1234;


$pass2 = 5473;

$form_pass = $_REQUEST["pass"];

if ($form_pass == $pass1 || $form_pass == $pass2) {
 正解
}else {
 間違い
}
    • good
    • 0
この回答へのお礼

バッチリ来ました!
これなら3つでも4つでもできますね!

ありがとうございます!!!

お礼日時:2010/07/20 11:13

そもそも最初にPOSTされたデータをそのまま整数値と比較している時点で危険性は同じだと思いますが……



#ま、PHPの比較には注意しましょう。
    • good
    • 0

>$pass1 = "1234";


>$pass2 = "5473";
として文字列として扱っているので
#2の参考URLベースに改変しているソース危険だから利用しないこと。
PHPで文字列比較に「==」は利用するな。
「===」もしくは「strcmp()」を利用すること。
危険な理由は
http://www.php.net/manual/ja/language.operators. …
公式マニュアルのサンプルを見ればどれだけ危険な比較方法かわかる。
特にログイン処理だとセキュリティーホールになる。
    • good
    • 0
この回答へのお礼

ありがとうございます!!!

.htaccessで携帯以外のアクセスはIPで弾くのと、それほど厳重ななコンテンツでもないので(?)これで大丈夫です。

ありがとうございました~!

お礼日時:2010/07/20 11:19

リンク先のソースと同様の処理で行うと



$pass1 = "1234";
$pass2 = "5473";
$form_pass = $_REQUEST["pass"];

if (($form_pass == $pass1) || ($form_passs == $pass2)) {
// ログイン成功の処理
}else{
// ログイン失敗の処理
}
    • good
    • 0
この回答へのお礼

ありがとうございます!

#1の方と同じ感じでバッチリ解決しました!!!

お礼日時:2010/07/20 11:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!