(現在 過去ログ3 を表示中)

HOME HELP 新着記事 トピック表示 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■7275 / inTopicNo.1)  if 文の分岐の不可解な動き
  
□投稿者/ Beethoven -(2003/05/23(Fri) 19:45:06)
    以前質問させていただいた者ですが、よろしくお願いします。
    パスワードの照合で、非常におかしなことになり、相談させていただきます。

    ユーザファイルに、(ID,パスワード)を、
    (1111,aaaa)
    (2222,bbbb)
    (3333,cccc)
    (4444,dddd)
    と、4つ登録し、

    http://cgi.niji.jp/home/ashizuka/subscription/subscription.cgi

    から入場しようとしましたが、私がやったところ、
    (4444,dddd)でしか入場できませんでした。
    この部分の分岐は、

    if(($in{'male_id'} eq $id) && ($in{'male_pswd'} eq $pswd))

    で行っていますが、これを

    if(($in{'male_id'} == $id) && ($in{'male_pswd'} == $pswd))

    でやっていたときは、一致しないID 、パスワードでも入場できました。
    if 文でこのような不可解な動きをする原因として、どのようなことが考えられるでしょうか。
    何かお気づきの点がありましたらお教え下さい。
    どうかよろしくお願いします。
引用返信 [メール受信/ON] 削除キー/
■7276 / inTopicNo.2)  Re[1]: if 文の分岐の不可解な動き
□投稿者/ りゅういち -(2003/05/23(Fri) 23:42:52)
http://www.cj-c.com/
    No7275に返信(Beethovenさんの記事)
    > から入場しようとしましたが、私がやったところ、
    > (4444,dddd)でしか入場できませんでした。
    > この部分の分岐は、
    > if(($in{'male_id'} eq $id) && ($in{'male_pswd'} eq $pswd))
    > if(($in{'male_id'} == $id) && ($in{'male_pswd'} == $pswd))
    > でやっていたときは、一致しないID 、パスワードでも入場できました。

    == は数字の一致を調べます。
    eq は文字列の一致を調べます。eq でないと正しい動きはしないと思います。
    あとは、中身を見ないとなんともいえません。
引用返信 [メール受信/OFF] 削除キー/
■7279 / inTopicNo.3)  Re[2]: if 文の分岐の不可解な動き
□投稿者/ Beethoven -(2003/05/24(Sat) 07:32:19)
    りゅういちさん、ありがとうございます。
    教えていただいてすぐ、eq にして、ID 、パスワードをすべて英字にしてうまくいくかどうか調べたんですが、

    aaaa,aaaa
    bbbb,bbbb
    cccc,cccc
    dddd,dddd

    の中で、dddd,dddd 以外は『偽』と判定されてしまいます。
    スクリプトは開発中で非常に汚くてすみませんが、問題になっているルーチンだけ、

    http://www.niji.or.jp/home/ashizuka/script/perl030524.htm

    にアップしました。
    申し訳ありませんが、出来れば見ていただけないでしょうか。どうかよろしくお願いします。
引用返信 [メール受信/ON] 削除キー/
■7282 / inTopicNo.4)  Re[3]: if 文の分岐の不可解な動き
□投稿者/ りゅういち -(2003/05/24(Sat) 22:13:08)
http://www.cj-c.com/
    No7279に返信(Beethovenさんの記事)
    > の中で、dddd,dddd 以外は『偽』と判定されてしまいます。
    > スクリプトは開発中で非常に汚くてすみませんが、問題になっているルーチンだけ、
    > にアップしました。

    別に問題ないように見えますが、とりあえずは、ID、パスワード
    どちらか一方の一致だけを試してみてはどうでしょうか?
引用返信 [メール受信/OFF] 削除キー/
■7283 / inTopicNo.5)  Re[4]: if 文の分岐の不可解な動き
□投稿者/ Beethoven -(2003/05/24(Sat) 23:16:49)
    2003/05/25(Sun) 22:15:09 編集(投稿者)

    りゅういちさん、ありがとうございます。
    試してみた結果、aaaa、bbbb、cccc のパスワードだけが正しく判定されていないことがわかりました。ファイルのレコードの末尾に改行が入っていることと関係があるんでしょうか?


引用返信 [メール受信/ON] 削除キー/
■7288 / inTopicNo.6)  Re[5]: if 文の分岐の不可解な動き
□投稿者/ りゅういち -(2003/05/25(Sun) 21:19:15)
http://www.cj-c.com/
    No7283に返信(Beethovenさんの記事)
    > りゅういちさんさん、ありがとうございます。
    > 試してみた結果、aaaa、bbbb、cccc のパスワードだけが正しく判定されていないことがわかりました。ファイルのレコードの末尾に改行が入っていることと関係があるんでしょうか?

    なるほど、たぶんそれですね。
    ID,パスワード, と最後にも区切り文字を入れるか、$xx=~/\n//; といった感じで
    改行を取って行なってみてください。あとchop(?)関数かなんかでもOKかも。
引用返信 [メール受信/OFF] 削除キー/
■7293 / inTopicNo.7)  Re[6]: if 文の分岐の不可解な動き
□投稿者/ Beethoven -(2003/05/25(Sun) 22:14:32)
    りゅういちさん、ありがとうございます。
    実は自分でもそういうことをやろうとしていたんですが、『置き換え演算子』の使い方もわからないほど、初心者なもので、だいぶ苦労しました。

    $pswd =~s/\n//g;

    と置換することで、望みどおりの結果が得られました。
    パスワード等の照合に使われるアイテムが、レコードの末尾にあることは少ないので、こういうことに気づきませんでした。
    初歩的な問題と思われたかも知れませんけど、ありがとうございました。できれば、これからもよろしくお願いします。
解決済み!
引用返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Pass/

HOME HELP 新着記事 トピック表示 検索 過去ログ

- Child Tree -