独学でmacでパールを勉強しています。
始めてからまだ1週間すこしくらい。
教科書読みながら、
CGIへフォームを渡す所の段階まで進んできました。
現段階で、htmlからperlへフォームを渡そうとしているのですが、
上手く行きません。
状況としては、htmlのフォームを入力して、登録を押す。
成功であれば→実行結果が表示されるはずなのですが、
現段階ではFinderがその実行htmlの場所を開くだけという形になっています。
下記は実験用に使っているソースです。
ーーーーーーーーーーー
htmlは
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>test</title>
<style type="text/css">
</style>
</head>
<body>
<h1>メンバーズリスト</h1>
<form method="post" action="form.cgi">
<p>
名前:<br/>
<input type="text" name="name"/>
</p>
<p>
性別:
<input type="radio" name="sex" value="male" checked>男
<input type="radio" name="sex" value="female">女
</p>
<input type="checkbox" name="megane">メガネを付けてる
</p>
<p>
<select name="kankei">
<option value="yuujin">友人
<option value="kaisya">会社関係
<option value="sonota">その他
</select>
</p>
<p>
住所: <textarea name="jyusyo" rows="5" cols="40" ></textarea>
</p>
<p>
<input type="submit" value="登録"/><input type="reset" value="クリア"/>
</p>
</form>
</body>
</html>
ーーーーーーーーーーーーーーーーー
perlは
#!/usr/bin/perl
require 'cgi-lib.pl';
&ReadParse(*form);
$name = $form{'name'};
$sex = $form{'sex'};
$megane = $form{'megane'};
$kankei= $form{'kankei'};
$jyusyo = $form{'jyusyo'};
print "Content-type: text/html\n\n";
print "<HTML>\n";
print "<HEAD><TITLE>情報受け取り</TITLE></HEAD>\n";
print " <BODY>\n";
print "<H1>情報受け取り</H1><HR>\n";
print "名前:${name}<BR>\n";
print "性別:${sex}<BR>\n";
print "めがね:${megane}<BR>\n";
print "関係:${kankei}<BR>\n";
print "住所${jyusyo}<BR>\n";
print "</BODY>\n";
print "</HTML>\n";
__END__
です。
ちなみに localhost上で同一ファイルに入れて、
動かしてます。
ご確認の上、ご助言ください、
perlの教科書に書いてあった構文は、
htmlの学習をするために使ってきたものと全く違ったため、
要点だけ残す形で、再度書いたものです。
htmlの文章がおかしいのか、perlがおかしいのか、
頭が変になりそうです。お助けください。
No.2ベストアンサー
- 回答日時:
アドバイスになりますが。
CGIとHTMLとPerlは分けて勉強してください。
まずは、Perlそのものの使い方を一通り勉強してください。
ついでに、Unix 系OSの基本事項(ディレクトリ構成とか、権限とか)を勉強してください。
Perlで動作するものができれば、それまで単にprintしていたものを、一定の書式になるようにすればCGIとして動作するようになります。httpサーバーで違うディレクトリになっても、変更するべき箇所がすぐにわかるはずです。
> require 'cgi-lib.pl';
いまどき、cgi-lib.plは使わないでしょ。
少くともOSX 10.6にはperl 5.10が付いています。CGI.pmが使えます。
> 教科書通り、
> sudo cp ./Desktop/httpd.conf /private/etc/httpd/
> と打って、パスワードを打つと
> デスクトップに/private/etc/httpd.conf ファイルがデスクトップにコピーされるとの記載があるのですが
本当ですか?
もしそうなら、その教科書は間違いです。
・sudo 管理者権限でコマンドを実行するためのコマンド
なのでいったん置いておくと、
cp ./Desktop/httpd.conf /private/etc/httpd/
ってどんなコマンドになるか、理解していますか?
この「./Desktop」の「.」 ってなんだかわかってますか?
勉強してきました。ここまで丸1月掛かりましたが、やっとUNIXとアルパカ本クラスの知識は身に付きました。けど、上の文章見ても意味がわかりませんね。進化したのか、後退したのか・・・、ただ、使ってる参考書が悪かったんだろうな~とも思います。ご返答ありがとう御座いました!
No.1
- 回答日時:
確認ですが、もちろん何らかのhttpd(apacheなど)を介して動かしているのですよね?
この回答への補足
教科書通り、見よう見まねでやっているのですが、
設定の書き換えが必要と指示があるのですが、
教科書通り、
sudo cp ./Desktop/httpd.conf /private/etc/httpd/
と打って、パスワードを打つと
デスクトップに/private/etc/httpd.conf ファイルがデスクトップにコピーされるとの記載があるのですが、実際には、
cp: ./Desktop/httpd.conf: No such file or directory
と表示されてしまい、次に進むことができません。
どのような対応をとればいいのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
print HTML~をヒアドキュメントで
-
Mechanizeにおけるボタンクリッ...
-
perlにおけるセッションIDについて
-
「value」に2つの値をセットす...
-
ラジオボタンが両方とも選択で...
-
リストボックス(multipleなsel...
-
チェックボックスとセレクトボ...
-
ラジオボタンを選択済みにする...
-
cgiからsendmailを送信で文字化け
-
INPUT TYPE
-
wordの数式について 定積分を書...
-
文字の表示色を変えたい
-
VB初心者。小数点以下の表示で...
-
PHPで検索ボタンを押さずに検索...
-
チェックボックスの返す値
-
Perl言語のオンライン文法チェ...
-
ブックマークからのアクセスを...
-
チェックボックスでのor検索
-
ファイル名でなく、ファイルの...
-
select値をhiddenのvalueに渡し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
『数字の3桁毎にカンマを付け...
-
フォームメール確認用ページ
-
HTMLからCGIへデータを引き継ぎ
-
CGIの中で異なるContent-typeの...
-
サーバー(UNIX)上のフォルダ...
-
Mechanizeにおけるボタンクリッ...
-
サーバーのテキストファイルを...
-
CGIで取得したデータをjavaに送...
-
環境変数HTTP_REFERERを使うには?
-
httpsクライアントについて
-
LWPによるページ取得の問題
-
ダイレクトアクセス
-
他のWWWサーバーからHTMLを得る
-
表示を一覧表形式にしたいので...
-
IIS上でフリーCGIが動かない
-
ソケットの使い方が分からない
-
Perl CGI 初心者
-
IIS の@INC ERRORについて教えて
-
標準入力からデータが読込めない
-
perlのcgiが文字化けします。
おすすめ情報