プロが教えるわが家の防犯対策術!

質問をするのはこのカテゴリであっているのかわからないんですが・・・
今HPを作っていまして、会員登録しないと見れないものにしたいと思っています。
ログインボタンを押す→IDとパスワードを入力→で、会員専用ページにいきたいと思います。でも「登録申込書」を何で作ったら良いのかがわかりません。入力してもらうのは個人情報も含まれるので、セキュリティー面も考えないといけないので、それはどうしたらいいのか・・・わかる方教えてください!
私はこの春から独学でGoliveとDreamweaverを使ってHPを作ってきた初心者なので、わからない事がいっぱいで申し訳ないですが助けてください!
説明不足な部分があれば補足で質問してください!よろしくお願いします。

A 回答 (6件)

共有SSLで見られないのは不思議ですね…。


TOPはHTMLページ(静的ページ)でしょうか。
もしかしたら、プログラムを置けるディレクトリが決まっている可能性があります。
もし良ければ、使用しているレンタルサーバの会社名とプラン名を教えていただけないでしょうか。
SSLページへは、通常のHTMLのリンク同様に、SSLではないページからSSLに飛ぶ際に、<a href="https://xxxxxx">と絶対パスで飛ばせば、その先は相対パスで大丈夫です。

手動で登録する際には、phpMyAdminを使用するのが一番安全で簡単です。
1. phpMyAdminのページを開き、「データベース」をクリックして次画面のユーザ名をクリックするか、左メニューのユーザ名をクリックします。(おそらくデータベース作成権限はないと思うので)
2. 「現在の DB に新しいテーブルを作成する」のフォームにDB名(英数字)、フィールド数(登録する項目数)を入力して「実行する」を押します。(フィールド数は後からでも直せます。)
3. フィールド名・フィールドタイプ・長さ等を入力して、「保存する」をクリックすると、テーブルが作成されます。
*フィールドの設定については、http://dev.mysql.com/doc/refman/4.1/ja/column-ty … の本家サイトに書いてあります。
基本的には、日付はdate,datetime, 文字列はvarchar, 数字はint, bigint辺りにしておけば無難です。
IDやパスワードなど重複しては困るものはunique(表右の方のUマーク), データが必ず入っていないといけないものはnot nullにします。
通し番号をつけてauto_incrementにしておくと(追加するのプルダウン)、何かと重宝します。
4. テーブルを作成したら、左メニューにテーブル名が現れるのでクリックし、上部タブの「追加」をクリックしてレコードを入力します。
(インポート機能があれば、その方が早いのですが、レンタルサーバなのでないのではないかと思います。)

本来は、ユーザを作成して閲覧できる範囲を限定する方がいいのですが、その機能はない可能性が高いです。
phpMyAdminで「特権」のタブが無い、または「権限なし」になっている場合は作成できません。
その場合は、公開情報と非公開情報の権限分けはできませんが、たとえば非公開情報と公開情報のテーブルを分けてリスクを多少でも減らす事は可能です。
(その場合は、どちらにもID・パスワードは登録します。)
公開情報のパスワードは暗号化をしておくと良いかもしれません。
http://phpspot.net/php/pg%82l%82c%82T%83n%83b%83 …

公開日が先に決まっているということなので、登録ページよりも先に、ログインページ、会員同士の閲覧ページを先に作成する事をお薦めします。
プログラム自体も、ログインの方が登録よりも簡単だと思います。
    • good
    • 0
この回答へのお礼

お礼が遅くなりまして申し訳ありません。
何回も詳しい説明をいただいて本当にありがとうございました。
phpを、父の知り合いに教えていただける事になり、今1から勉強中です。IE-9さんから教えていただいた事も参考にHP作り頑張っていきたいと思います。
phpがどういう仕組みなのか、実際にPCを操作しながら教えていただいたらすぐわかり、ここでご回答を寄せていただいた内容も、さらによくわかるようになりました。DBの事も、またphpが把握できてから教えていただける事になりました。
自習というか、自分1人で勉強する時に絶対必要になってくるので、いただいた参考URLなどはその時に参考にさせていただきます。
まだ少ししか勉強していませんが、少しわかると本当に分かりやすい説明だなぁと思い、すごく感謝しています。
本当に、本当に、ありがとうございました。

お礼日時:2006/10/26 14:07

>php.iniを確認するか、phpプログラムでphpinfo()で情報を確認した方がいい


上記ですが、php.iniはレンタルサーバで公開していない限りは、一般の権限では見ることができません。
phpinfo()は、phpプログラムで、
<?
phpinfo();
?>
とだけ表記して、適当な名前(test.phpなど)をつけて、サーバ(実際にプログラムを動かすサーバなので、この場合は共有SSLサーバ)にアップします。

ブラウザからこのファイルにアクセスすると、phpのバージョンや初期設定が見られます。

この回答への補足

お返事さしあげるのが遅くなってすいません。
>サーバ(実際にプログラムを動かすサーバなので、この場合は共有SSLサーバ)にアップします。
SSLというディレクトリがあって、そこにアップしたのですが、ブラウザでのアドレスが間違っているのか確認ができません。。。共有SSLアドレスが発行されているのでそのアドレスと、ファイルを保存したディレクトリをアドレスに入れたのですが、ページが存在しないといわれました。topは共有SSLアドレスで見れましたのに何がいけなかったのでしょう・・・。
SSLのアドレスはあるのですが、どう一般の人が見るサイトのページのアドレスに設定するのかわからないので教えていただけますか?
私が思っているのはリンク先のURLを入れる時にSSLディレクトリのページを指定するのかなと思ったんですが。。。
親の手伝いで作っているのですが、サイトの公開日をいきなり決められてしまい、急いで会員登録ができるようにしないといけなくなったので、とりあえずメールなどでいただいた情報を私が手動で登録して、IDとパスワードを発行してメールを送るようにする事になりました。それが出来てからまた教えていただいた順番の登録ページを作っていく事にします。何度も色々質問して申し訳ないのですが、手動で登録する場合はどうしたら良いのですか?
本当に何回も何回も申し訳ないですが、よろしくお願いします。

補足日時:2006/10/23 13:13
    • good
    • 0
この回答へのお礼

すいません。補足の追加なのですが登録する内容は、個人情報の非公開情報と、公開する情報(登録種別など)を登録して、会員同士が閲覧できるようにします。
何度もご回答いただいてありがとうございます。

お礼日時:2006/10/23 13:20

すみません。

訂正です。
参考書籍:
PHP4 徹底攻略改訂版

参考URL:http://www.amazon.co.jp/gp/product/4797320974/re …
    • good
    • 0

MySQLとphpmyAdminが入っているという事でしたら、DBはMySQL, プログラムはPHPが良いです。

相性もいいですし。
(おそらくLinuxサーバなので、ASP, ASP.NETは使えません。JAVAはとっつきにくいので、CGIかPHPがいいと思います。)
ただし、レンタルサーバによっては共有SSL内で使えるプログラム等に制約がある場合があるので、確認が必要です。
また、PHPのバージョンによって初期設定が全く異なりますので、php.iniを確認するか、phpプログラムでphpinfo()で情報を確認した方がいいと思います。
(私はCGIが苦手なので、あまりアドバイスができません)

順序的には、SSL(https)通信で
フォームに入力(必要ならJavaScriptで入力内容チェック)

入力内容のエラーチェックをしつつ、確認用に表示
(必須項目の有無、メールアドレスチェックなども含む)

セキュリティの為に再度入力内容のチェックをしつつ、DBに登録。
必要ならメールを送信。
画面に送信後のメッセージを表示。

ログイン時は、
フォームから送られたID・パスワードをDBに照会。
違っていたらエラーページ、合っていればセッションを持たせて
会員ページへ飛ばす。

会員ページを移動するたびに、セッションを確認する。

参考サイト
http://www.php.net/manual/ja/(本家マニュアル)
http://www.sound-uz.jp/php/tips/gpc.html
(フォームの受け渡し)
http://www.phpbook.jp/database/mysql/index3.html
(PHPとMySQLの連携)

参考本
PHP4 徹底後略改訂版
(PHPのバージョンが4ならお薦め。同じ本のPHP5はちょっとわかりにくいかもしれません。)

私もプログラムデビューは会社の業務命令で、初心者からの独学だったので他人事とは思えません。
がんばってくださいね。

この回答への補足

詳しく順序を書いていただいてありがとうございます。
何から順番にやっていけば良いのか全くわからなかったので、本当に感謝しています!!!!
>php.iniを確認するか、phpプログラムでphpinfo()で情報を確認した方がいい
というのはどうやって確認をするのですか?コマンドプロンプトですか?
参考サイトを見ながら頑張ってやっていきます。またわからないとこがあったら質問させていただくので、その時はよろしくお願いします。本当にありがとうございます。

補足日時:2006/10/20 16:21
    • good
    • 0

今まで作られたのは、ただ見るだけの静的なWebページですね。


登録申込書のような機能は、YahooやGoogleなどで検索するのと同じように入力した情報に応じて返事を出力しなければいけません。

一般的には、フォーム入力ページを作ってサーバー上のプログラムに情報を送ります。情報をメールで転送するだけでしたら無料のプログラムがありますが、会員登録となると先回答にあるとおりデータベースうんぬんが必要となってきます。

まずは、Webページにフォームを作成して入力された情報を受け付ける仕組みあたりから調べていったらと思います。

検索ワード:フォームデコード、.htaccess

参考URL:http://www.tohoho-web.com/www.htm

この回答への補足

はい。今までは静的なページでした。
参考URLありがとうございます。フォームデコード、.htaccessで検索して調べてみます。

補足日時:2006/10/18 16:35
    • good
    • 0

ピントが外れてしまっているかもしれませんが。


「登録申込書」というのは、Web上から会員登録をさせるということでいいのでしょうか?何で作ったら…というのはプログラム上でしょうか、設計上でしょうか。

もし、Web上から登録をさせるのであれば、何かしらのプログラム言語を使用します。
(ASP, ASP.NET, PHP, CGI, JAVAなど)
ログイン等で使用するのにデータを溜めて置くなら、データベースもあった方がいいでしょう。
(Oracle, MySQL, SQL Server, PostgreSQLなど)
また、個人情報の漏洩を考えるなら、SSLの導入は必須です。

何を使用するにしても、入力されたデータを確認画面で表示して、DBに登録するので、クロスサイトスクリプティングやSQLインジェクションなどに気をつける必要があります。
DBでも余計な権限はWEBからのアクセスには与えないようにします。

参考サイトはセキュアなサイトを作る為の基本的な注意点が書いてあるので、参考になるのではないかと思います。
もし外していたら、補足してください。

参考URL:http://www.ipa.go.jp/security/awareness/vendor/p …

この回答への補足

早速のご回答ありがとうございます。1E-9さんの考えている通りです!!
>Web上から会員登録をさせるということでいいのでしょうか?
はい、そうです!
プログラム言語の事がわからないのですが、考えているのはPHPかCGIかと思っています。今から1からやるには時間がかかりますか?また、いくつかあげていただいた中のどれが初心者には取り組み易いでしょうか?
DBは、レンタルサーバーに、DB「MySQL」と「phpmyadmin」がありました。SSLは、共有SSLアドレスがありました。が、どう・何をしたら良いのかはわかりません。
クロスサイトスクリプティングやSQLインジェクションというのは初めて聞いたので、はっていただいた参考URLで勉強します。ありがとうございます。
この補足でおわかりいただけるでしょうか?何もわかっていない初心者ですいませんがよろしくお願いします。

補足日時:2006/10/18 16:01
    • good
    • 0

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