Re: [問題] exists的用法
※ 引述《yingwan (yingwan)》之銘言:
: 又卡住了....只要上來求助前輩了
: 我想要用perl CGI 寫一個使用戶登入的網頁
: 程式會先檢查檔案裡裡有沒有這個帳號存在,
: 有的話就會出現該用戶的email,沒有的話程式就會說"該用戶不存在"
: 寫了半天網頁都一直出現email,也不管有沒有哪個ID存在
: 希望前輩們幫我看看我是哪裡寫錯,謝謝大家
: #!/usr/bin/perl
: #--------------------------------------------------------
: #Login page for userID and password
: #if userID already exist or missing input, show error msg
: #otherwise, show user's email address
: #--------------------------------------------------------
: use CGI qw(:standard -debug);
: use CGI::Carp qw(fatalsToBrowser);
: #get input
: $userid= param ("userid");
: $password= param ("password");
: $file="hw6-22.out";
: open(IN,$file) || die "can't read $file";
: @all = <IN> ;
: close(IN);
: chomp @all;
: #checking for existing userID
: %all=();
: foreach (@all) {
: ($userid, $password, $email) = split(/,/,$_);
: $all{$userid} =$password;
: }
: if (exists $all{$userid}) {
: print header();
: print start_html(-title=>"Existing ID");
: print h2("Your email address:");
: print p("$email");
: exit;
: }
: # check for missing input
: if ($userid eq "") { push(@missing,"User ID"); }
: if ($password eq "") {push (@missing, "Password");}
: $missing= join(", ",@missing);
: if ($missing) {
: print header();
: print start_html(-title=>"missing input");
: print h2("Incomplete Input");
: print p("You did not enter <b>$missing</b>");
: print end_html();
: exit;
: }
: else
: {
: print header();
: print start_html(-title=>"Not exist");
: print p("<b>The UserId does not exist </b>");
: print end_html();
: exit;
: }
只列出有修改的部分...
#checking for existing userID
%all=();
foreach (@all) {
next if(/^$/); # 跳過空行
#($userid, $password, $email) = split(/,/,$_);
my ($userid, $password, $email) = split(/,/,$_);
next if($userid == '' or $password == '' or $email == ''); # 跳過資料有缺的
#$all{$userid} =$password;
$all{$userid}{'password'} =$password;
$all{$userid}{'email'} =$email;
}
#if (exists $all{$userid}) {
if (exists $all{$userid}{'password'}) {
print header();
print start_html(-title=>"Existing ID");
print h2("Your email address:");
# print p("$email");
print p("$all{$userid}{'email'}");
exit;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.232.236.185
※ 編輯: giacch 來自: 118.232.236.185 (10/20 12:53)
→
10/20 12:56, , 1F
10/20 12:56, 1F
→
10/20 12:59, , 2F
10/20 12:59, 2F
推
10/21 09:28, , 3F
10/21 09:28, 3F
→
10/21 11:13, , 4F
10/21 11:13, 4F
→
10/21 11:14, , 5F
10/21 11:14, 5F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Perl 近期熱門文章
PTT數位生活區 即時熱門文章