重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

すいません。初心者です。以下のようにデータを読み込んだとき、ifの条件部分
$form{'user'} eq $userid と、
$form{'kojimail'} eq $mail は、
ちゃんと判定してくれるのですが、
「$hantei eq $hanteiari」 は、判定しません.
たぶん何かが違うんだと思いますが・・・・(>_<)
読み込んだデータ $hanteiari は、データベース内で、hanteiari
と入力されています。何卒よろしく御願いします。

★データベース情報
登録ID:名前:メールアドレス:性別:年齢:hanteiari:認証ID

★CGI
#!/usr/local/bin/perl

require 'cgi-lib.pl';
&ReadParse(*form);
require 'jcode.pl';
&jcode'convert(*form, 'sjis');

open(ENQ, "<enquete.dat") || die "File 'enquete.dat' Open Error.";
@dad= <ENQ>;
$hanteiari= "hanteiari"
foreach(@dad){
($userid, $name, $mail, $sex, $age, $hantei, $kuuhaku )=split(/:/, $_);

#ここです↓
if( $form{'user'} eq $userid && $form{'kojimail'} eq $mail && $hantei eq $hanteiari)

{$ari =+10;}
}
if($ari< 5 ){ $atari =20;}
close(ENQ);

A 回答 (2件)

変数名が紛らわしいのでよくわかりませんが…



データからの入力
$hantei ← hanteiari

ソースコード内
$hanteiari = "hanteiari";

それを後で、「$hantei eq $hanteiari」で比較したら
真となるのは当たり前のように思います。

>&& $hantei eq $hanteiari)

&& $kuuhaku eq "hanteiari")

とでも変えればいいのではないでしょうか。
(さらにchomp $kuuhakuも必要になると思います)
    • good
    • 0
この回答へのお礼

どうも有難う御座いました。
確かに
$hanteiari = "hanteiari";と、していて、
「$hantei eq $hanteiari」で真と成るのは当たり前なのに、と頭を抱えていました・・・・が、
$hantei eq"hanteiari"でうまくいきました。
有難う御座います!m(。-_-。)m

お礼日時:2006/02/27 11:12

>$hanteiari= "hanteiari"


行末の;がありませんが、単なる転記ミスでしょうね。
あと、特に、問題となるような部分はありませんが、
:認証IDが省略されていて
登録ID:名前:メールアドレス:性別:年齢:hanteiari
で終わっているようなデータではないでしょうね?
    • good
    • 0
この回答へのお礼

どうも有難う御座いました。確かに;が抜けていましたね。失礼しました。

お礼日時:2006/02/27 11:04

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