最近、Perlを勉強し始めました。
そこで、ホームページにメールフォーム等を設置しようと考えていて
(まだそこまでのレベルには達していません・・)
まず、簡単なコードをホームページにいれてみようと思うのですが
例えば「print "hello!!!\n";」とperlで書きます。(untitled1.pl)
で、コマンドプロンプトでは、「hello!!!」と出ることを確認しました。
そこで、ホームページ(HTML)にそのperlで作ったコードを載せたいのですが、
<script type="text/javascript" src="untitled1.pl"></script>
これでは、実行されませんでした。
まだ、理解できていません・・・
どのようにすればいいのでしょうか??
No.2ベストアンサー
- 回答日時:
No.1です。
えっと。。。(^^;
PerlでCGIプログラムを作成する際の事を基礎から学んでいますか?
初心者向けの書籍などに従ってです。
えっと。。。
HTMLはWebブラウザがその内容を解釈し、そこに指定されたように画面描画を行います。
サーバ上に置かれたHTMLファイルはそこにあるだけではただのHTMLという言語仕様で掛かれたテキストファイルに過ぎません。
そのファイルの内容をWebサーバーがWebブラウザ側からの「このHTMLファイルの内容を送れ」という要求に従って送り出すだけです。
で。
CGIプログラムというのはWebブラウザ側から送られて来たデータ(多くの場合は画面で入力された内容)を受け取ってその処理を行い、処理結果の画面のHTMLをプログラム内で生成して送出するものです。
って、ここまで書いた内容の意味は分かりますか?
「分かる」として。
そのCGIプログラムを書くには幾つも言語がありますが、その一つがPerlです。
PerlのプログラムはC言語などのようにコンパイル&リンクを必要としません。書いたソースプログラムを拡張子.plというファイル名とし、実行ディレクトリに置いておいて呼び出せばよいだけです。お手軽ですね。
で。CGIプログラムですから最終出力はHTMLです。
正確にはhttpの通信仕様に則ったHTMLです。「httpの通信仕様に則った」の意味は「これに続いて送出されるのはHTMLですよ」という宣言が頭に無いといけません。
なので最低限、、、
print "Content-type: text/html\n\n";
print "hello!!!\n";
でないとダメです。
更に。
CGIプログラムはWebブラウザ側から呼び出されます。
HTMLファイルの中に、、、
<script type="text/javascript" src="untitled1.pl"></script>
と書き、そのHTMLをWebブラウザ側から呼び出してみたのだと思いますが、それはHTMLファイルの読み込みを指定しただけです。
加えて「script type="text/javascript" src="untitled1.pl"」では「Javascriptの入ったファイルuntitled1.plの内容を実行しなさい」という意味になります。
ということはuntitled1.plの内容をロードして実行するのはブラウザに含まれるJavascriptの実行エンジンです。JavascriptエンジンはPerlのprint文を理解できません。。。
ということで何をしようとした結果、実際はどういうことになっていまったか理解できたでしょうか?
ではPerlを使ったCGIの作り方を一からしっかり勉強しましょう。
「Perl CGI 初級」とか「Perl CGI 入門」とかいった適当なキーワードで検索すると解説ページがたくさんみつかるはずです。
例えば以下のような。
http://www.aimix.jp/cgi/
参考まで。
ありがとうございました。
<a href="http://◯◯◯◯◯◯.jp/cgi/hello.pl">テスト</a>
とし、サーバーに転送し、実行が確認できました。
No.1
- 回答日時:
まず、Perlで作成したプログラム(拡張子が.plのファイル)をWEbサーバ上のCGIプログラムを配置する場所に置かねばなりません。
ご自身のホームページはご自身で運用するサーバ上にあるのでしょうか?
それとも何らかの業者のサーバ上にあるのでしょうか?
後者の場合、その業者のホームページサービスとして「CGIを置けます」となっていないと無理です。
CGIプログラムを配置するディレクトリ(フォルダ)には実行権が無いとだめでかつ、Webサーバの設定で「CGIプログラムはこのディレクトリにある」とされていなければなりません。この場合は使用できる機能に制限があることも多いですからその点の確認もお忘れなく。
ご自身でサーバ運用されている場合はこの設定をご自身で行うことになります。
その上で。
Webページ上にメールのSubject、本文を入力するフィールドアあって、そのページ上の「送信」ボタンを押すとプログラム内や設定ファイルなどに指定されたメールアドレスへ入力された内容のメールが送信される、、、というのを簡単に実現するのはmailコマンドです。
ということでCGIプログラムの実装言語がPerlであろうが何であろうが、プログラムの中でmailコマンドを叩けばOKです。
以下の解説が参考になるでしょう。
http://qiita.com/shuntaro_tamura/items/40a7d9b44 …
サーバのOSがWindowsの場合は以下も。
http://qiita.com/nightyknite/items/8132a41a4fa5c …
参考まで。
コメントありがとうございます。
先ほど、業者に問い合わせたところ、CGIをおけることを確認し
パーミッション、Perlpath等を聞いて変更したのですが、
上手く表示できません・・・
HTMLでのPerlの呼び出し方法が理解できていないのだと思うのですが、
これは<iframe>や<script>と様々な方法があるようですが、
この質問の
「print "hello!!!\n";」の場合は、どのようにするのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript JAVASCRIPT 2 2022/04/15 15:10
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- CGI サイト訪問者の情報を取得したい 1 2023/02/21 11:03
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「.movpkg」「.m3u8」ファイル...
-
YahooのIDがロックされてしまい...
-
ホームページビルダーのバージ...
-
ゆうちょ認証アプリが使えません
-
グーグルクロムにダウンロード...
-
拡張子が異なりファイル名が同...
-
Kritaについて
-
STEAM版BF4が起動しない
-
MP3Studio You tube Downloader...
-
中古のパソコン購入 オフィスの...
-
Windows Media PlayerでCDが焼...
-
写真の印刷レイアウトについて
-
Macのミュージックデータの格納...
-
Winrarの移行
-
先日からDigiBestTVで「デバイ...
-
CMYKのペイントソフトを探して...
-
jtrim 1.53cが正常な動きをし...
-
プレイやに入れたいのですが、...
-
プータブルUSB起動について
-
サポートの終了したソフトから...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
YahooのIDがロックされてしまい...
-
「.movpkg」「.m3u8」ファイル...
-
ゆうちょ認証アプリが使えません
-
サポートの終了したソフトから...
-
Windows Media PlayerでCDが焼...
-
STEAM版BF4が起動しない
-
クリスタルディスクインフォは...
-
ATOKをお使いの方、今後もVer U...
-
CMYKのペイントソフトを探して...
-
アドビの値上げについて
-
Bluerayディスクのオーサリング...
-
jtrim 1.53cが正常な動きをし...
-
住所もしくは緯度経度で道のり...
-
自分で描いた下手な絵を綺麗に...
-
googleスプレッドシートのキャ...
-
新バージョンPDFでのスナップシ...
-
i Tune でCDからハードディスク...
-
先日からDigiBestTVで「デバイ...
-
Winrarの移行
-
gimpで文字の細工をしたい
おすすめ情報