中田さんありがとうございます。
まだまだ勉強不足でした。
.plはどれでも動くものだと思ってました。
その後順調に作動するようになりました。
ありがとうございました。
こにゃんこさん、
ReadParse は普通 cgi-lib.pl で定義されているサブルーチンだと思います。
たびたびすみません。
下の投稿のエラーは何とか原因がわかったのですが、
今度は↓原因がわかりません。
どなたか教えてください。
Error 500
CGI エラー - Content-Type ヘッダが正しくありません。
CGI 出力メッセージ:
Undefined subroutine &main::ReadParse called at C:\Windows\デスクトップ\www\k&m\public_html\cgi-bin\useradd.cgi line 5.
ちなみにcgiは↓になってます。
#!/usr/local/bin/perl
require './jcode.pl';
&ReadParse(*in);
$filename = "./password";
$user = $in{'name'};
$passwd = $in{'passwd'};
$flag = 0;
if($user eq ""){
&firstvisit;
}else{
open(FILE, $filename);
@allbody = <FILE>;
foreach $line (@allbody){
($name, $pass) = split(/:/,$line);
if($name eq $user){
$flag = 1;
}
}
close(FILE);
if($flag eq 1){
&userexist;
} else {
&createuser;
}
}
sub firstvisit{
print "Content-type: text/html\n\n";
print "<HTML><TITLE>ユーザ登録</TITLE><BODY>";
print "パスワードを入力してください";
print "<FORM method=\"post\" action=\"useradd.cgi\">";
print "Name<INPUT type=\"text\" name=\"name\" size=30>
";
print "Passwd<INPUT type=\"password\" name=\"passwd\" size=30>
";
print "INPUT type=\"submit\" value=\"登録\">";
print "INPUT type=\"reset\" value=\"クリア\">";
print "</FORM></BODY>";
print "</HTML>";
}
sub userexist{
print "Content-type: text/html\n\n";
print "<HTML>";
print "入力したIDはすでに登録されてます。
別なIDを登録してください。";
print "<FORM method=\"post\" action=\"./useradd.cgi\">";
print "Name<INPUT type=\"text\" name=\"name\" size=30>
";
print "Passwd<INPUT type=\"password\" name=\"passwd\"size=30>
";
print "INPUT type=\"submit\" value=\"登録\">";
print "INPUT type=\"reset\" value=\"クリア\">";
print "</FORM>";
print "</HTML>";
}
sub createuser{
$crypted = crypt($passwd, $user);
open(FILE, ">>$filename");
print FILE "$user:$crypted\n";
close(FILE);
print "Content-type: text/html\n\n";
print "<HTML>";
print "登録しました。";
print "</HTML>";
}
exit;
中田さんお久しぶりです。
前回自宅サーバ設立を断念したこにゃんこです。
今回はCGIの使えるスペースを借りたくてまた挑戦中なのですが、
Unrecognized character \x81 at C:\Windows\デスクトップ\www\k&m\public_html\cgi-bin\useradd.cgi line 17をいれています。
というエラーが出てしまいます。
で、line 17前後には
if($user eq ""){
&firstvisit;
}else{
open(FILE, $filename);
@allbody = <FILE>;
#!ここが↓17行目です。
foreach $line (@allbody){
($name, $pass) = split(/:/,$line);
if($name eq $user){
$flag = 1;
}
}