アプリ版:「スタンプのみでお礼する」機能のリリースについて

携帯電話のwebページでphpによるパスワード認証を下記ページを参考にして行っています。
先日も質問させていただいたんですが。。。

参考URL
http://www.kimd.jp/program/php/lesson04/sample04 …
前回質問
http://oshiete.goo.ne.jp/qa/6049891.html

複数のパスワードを使うのに、
if (($form_pass == $pass1) || ($form_passs == $pass2)) {
とすることを教えていただいたのですが、

こんどは、パスワードを
$pass1 = あいうえお;
$pass2 = 下記絎け子;
などのように日本語にしたいのですが、そのまましたらパスが通らなくなってしまいました。。。

上記プログラムを使用した場合の、パスワードに日本語も使用できるようにするにはどうしたらよいでしょうか???

配布PHPを使うのがやっとの初心者ですが、よろしくお願い致します。

A 回答 (2件)

いえ、どちらもそれで正しいのです。


「え?」と思うでしょうね。

これは、携帯の文字コードと、判別に使った文字コードが違うことに
由来します。

PHPのプログラムを試しにSJISで保存したりすると直りますよ。
ですが、これは、あまりいいことではないので、
漢字コードの変換を使うのをお勧めします。
まず、携帯電話がSJISで表示されていると仮定
PHPのプログラムはUTF-8で書かれていると仮定
$pass1_check = mb_convert_encoding($pass1, "UTF-8", "SJIS");
これで比較をすると通ると思いますよ。

この回答への補足

お答えありがとうございます!


うーむむむ!
pass2やpass3についても下記のようにしなければですよね?
$pass1_check = mb_convert_encoding($pass1, "UTF-8", "SJIS");
$pass2_check = mb_convert_encoding($pass2, "UTF-8", "SJIS");
$pass3_check = mb_convert_encoding($pass3, "UTF-8", "SJIS");

これを
$pass1_check = mb_convert_encoding($pass1, "UTF-8", "SJIS");
$pass2_check = mb_convert_encoding($pass2, "UTF-8", "SJIS");
$pass3_check = mb_convert_encoding($pass3, "UTF-8", "SJIS");
if (($form_pass === $pass1) || ($form_passs === $pass2 || ($form_passs === $pass3)) {

のように記述してみたんですが、パス通りませんでした。。><;
入れる場所や記述が間違ってますでしょうか???もうちょっとご教授お願いします(汗)

ド素人ですみません。。。

$pass1 = "あいうえお";のように"も入れました。

よろしくお願いしますm(_ _)m

補足日時:2010/07/21 23:42
    • good
    • 0

#1さんの文字コードの事もそうだけど、



今度は
$pass1 = "あいうえお";
と、"を付けて下さいね。

あと前回#3の言うように、比較は=3つで。
    • good
    • 0

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