「一気に最後まで読んだ」本、教えて下さい!

以下のようなプログラムにおいて、
1)最初にフォームが表示
2)submitボタンを押すと、sub addUserによって、ユーザーファイルに書き込み
3)その後に、自動的に別のページ(cgi)が開く方法が分かりません。sub addUserでclose(FILE); の後に何かプログラムが必要と思うのですが分かりません。 教えてください。

#! c:/perl/bin/perl


#============================ ユーザー設定 ====
$CHARSET = 'Shift_JIS';# 文字コード
$USERFILE = './users.dat';# ユーザーファイル


#======================== メインプログラム ====
loadFormdata();
loadUserfile();



if($FORM{"mode"} eq "adduser") {
addUser();
}

printAdminPage();

exit;


#============================ ユーザー追加 ====
sub addUser
{
my ($name, $pass) = ($FORM{'user'}, $FORM{'pass'});
my ($salt, $saltset, $n1, $n2);

if($USERS{$name} eq $pass) {
printErrorPage("そのユーザー名はすでに存在しています。");
}
$USERS{$name} = $pass;


# ユーザーファイル書き込み
open(FILE, ">>$USERFILE")
or printErrorPage("ユーザーファイルが開けません。");
print FILE "$name:$pass\n";
close(FILE);

}

#================ ユーザーファイル読み込み ====
sub loadUserfile
{
中略
$USERS{$name} = $pass;
}
close(FILE);
}

#================== ユーザー管理ページ出力 ====
sub printAdminPage
{
my $name;

print <<END;
Content-type: text/html; charset=$CHARSET

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head><title>ゆーざーかんり</title></head>
<body>
<h1>ユーザー管理</h1>
<h2>新規ユーザー登録</h2>
<form action="$ENV{'SCRIPT_NAME'}" method="POST">
ユーザー名:<input type="text" name="user"><br>
パスワード:<input type="password" name="pass"><br>
<input type="hidden" name="mode" value="adduser">
<input type="submit" value="登録する">
</form>
</body>
<html>
END
}

#======================== エラーページ出力 ====
sub printErrorPage
{
中略
}

#================== フォームデータ取り込み ====
sub loadFormdata

中略

A 回答 (1件)

location ヘッダを使う。


ただし、すでに他のヘッダを出している場合は javascript でリダイレクトする。
    • good
    • 0

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