- 締切済み
CGIを使ってのHP作成
はじめまして。私が求めているCGIについて教えてください。 私は趣味でHPやブログを楽しんでいるのですが、この度CGIを使ってHPを作りたいと考えております。 具体的には、全国のある特定の店を集めた検索サイトを作りたいのです。 まず、各お店の方に専用のページを渡します。 そして、そのページに【管理者用】というテキストリンクを貼り、そこをクリックするとユーザー名とパスワードの確認画面が現れ、正しく入力できれば管理者ページに入ります。 管理者ページではお店の営業時間やらコメント等々を入力することができるようにします。 入力が完成すると送信ボタンを押します。 するとサーバーに転送され、HPにあるそのお店の紹介欄が変更されるっというわけです。 この一連のながれを行いたいのですが、どうしたらいいのでしょうか? 素人ではそんなのできないよ!みたいな意見でも結構ですので、ぜひとも宜しくお願い致します。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- toro777777
- ベストアンサー率16% (43/257)
わざわざ自分で作るまでもなくて Xoopsと汎用データベースモジュールあたりを 使えば構築できそうな物だと思うけど
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
いわゆるCGIだけでいいのなら、これから勉強されるのであればPHPをおすすめします。 CGIなどのために作られた言語ですから、CGIが目的なら、Perlよりも簡単に扱えます。 PHPでは、通信に関する部分を基本的に書く必要がありません。 Perlのモジュール(HTML::Templateなど)と同様の機能を、PHP自体が持っていますので、モジュールやライブラリを意識する必要がありません。 ただし、それらの機能を使うために、PHPの設定ファイル(php.ini)を書く必要があるかもしれません。 > 負荷について Perl、PHPともに、CGI版とモジュール版の2種類あり、 負荷の種類は、CPU、メモリ、ネットワーク帯域の3種類あります。 CGI版はCPUに負荷がかかり、モジュール版はメモリに負荷がかかります。ネットワーク帯域の負荷は、動画アップロード/ダウンロード時などが最も大きくなります。(CGIは関係ありません) PHPが出た頃に言われていたのは、CGI版Perlとモジュール版PHPで、CPU負荷を比較している内容でしたが、比べる物が違うので本来は比べられません。 CGI版どうしではPHPの方が負荷が高いような感じがしますが、 言語の違いの差よりも、個々のスクリプトの作り方の影響の方が大きいです。 CGI版とモジュール版の違いは厳密には負荷以外にもありますが割愛します。 Perlのサンプルが多いのは古くからある言語だからです。 また長くなった、、、○| ̄|_ m(_ _)m
- kumaow
- ベストアンサー率100% (2/2)
まず、管理者のユーザー名とパスワードの入力ですが、これはあらかじめそれらの入力用のHTMLファイルを作り、それにリンクを貼っておけばいいのではないでしょうか。 その内容は …ここから <FORM action="cgi-bin/auth.cgi"> ユーザー名: <INPUT type="text" name="ID"><BR> パスワード: <INPUT type="text" name="Password"><BR> <INPUT type=submit value="送信"> …ここまで を含んでいれば良いと思います。(actionで指定するCGIは設定により違うと思いますので、プロバイダに確認してください。) ユーザー名とパスワードの認証はauth.cgiの中で行います。 認証がOKならば、そのユーザー名(これは一意になるようにしておきます。)に対応する情報を入力するためのフォームをauth.cgiの中で表示します。そのフォームからsubmitされた段階でサーバにデータが転送されてきてるので、それをCGIの中でデコードして保存すれば、いつでもお店の情報を表示できます。 もしもCGIをperlで作るのでしたら、 HTML::Template(http://perldoc.jp/docs/modules/HTML-Template-2.6/HTML/Template.pod) と SQL Engine(http://www.edit.ne.jp/~deagle/software/) を使うと便利です。 あらかじめ、お店情報を表示するための雛形をHTML::Templateのタグを埋め込んで作成しておき(そのタグ以外は普通のHTMLと同じです)、CGIの中でタグの中身を指定してprintすればOKです。 また、お店情報もSQL Engineを使うと読み書きがSQLで出来ますので、素でファイルを扱うよりもかなり楽が出来るかと思います。 細かい点を書き出すときりがありませんので、これくらいでご勘弁下さい。
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
> この一連のながれを行いたいのですが、どうしたらいいのでしょうか? つまりこの一連の流れを、日本語からコンピューターがわかるような言語(PerlでもPHPでもCでも)で書き直せば(翻訳すれば)いいわけで、、、 ぶっちゃけていえば、プログラムとはそう言う物です。 ただ、コンピューターって言うのは計算速度は速いけど、バカなので、 「次の行を調べる」と言われただけでは「次の行は何行目ですか?」と文句を言ってくる(エラーになる)ので 現在の行は何行目で、それに1を足して、、、、 というように、事細かに指示しなければなりません。 > 素人ではそんなのできないよ!みたいな意見でも結構ですので、ぜひとも宜しくお願い致します。 プログラムを初めて1週間の人でも作れる人は作れると思いますし、 (セキュリティー面までを考えれば、1週間では無理と思いますが) 作れない人は10年掛けても作れません。 もし作る気があるなら、BBSを参考にしてみて下さい。 URLやメールアドレスを入力するとURLやメールアドレスが表示されます。 それを「営業時間」という呼び方に変えるだけです。 ユーザー名やパスワードは、投稿内容の編集画面をアレンジすれば出来ると思います。
お礼
ご回答有難う御座います。 非常に参考になりました。 外注でプログラムを作ってもらうことも考えていて、見積もりを取ったのですが結構高額でしたので、一度自分でチャレンジしようと考えております。 まずはフリーで配布されているBBSなどのプログラムを開いて解読して行きたいと思っています。 ただ、少しだけ教えて欲しいことがありまして、 CGIのPerlで作るのか、PHPで作ったらいいのかがよく分かりません。 調べたところ、PHPの方がHTMLの中にプログラムを入力していくみたいな感じで、Perlに比べて技術的に優しいと書かれています。 また、PHPの方がwebサーバーに負荷が少ないとの書かれていました。 これだけを見ると、PerlよりもPHPのほうがメリットがあると思うのですが、 フリーで配布されているBBSなどは、Perlで書かれていることが多いと思います。 PerlでもPHPでも、同じようなものはできるということでよろしかったですよね。 私のような状況では、どちらのプログラムで作るのがいいのでしょうか? 申し訳ありませんが、教えていただければ幸いです。