CGIについて教えてください。

かなり、とっても、すごく初心者です。でもなんとか丁寧に説明して頂いているフリーのCGIは設置できるようになったのですが
コチラ→http://www.ortecweb.com/cgi/koukai/user/

凄く良い機能なのに上手く設置できません。助けてください。

■登録すると送られてくるメールが恐ろしく文字化けする。
■メールアドレスが少し長いと登録できない
■ログイン後のページ表示のアドレスをどこに書くかわからない・・・
↑もう3時間格闘してお勉強する気力がないのが本音です。

上記を修正したいです。
もしくは下記のものがあれば。

○同じような機能があり、丁寧な説明ページがあり初心者すぎる私でもできそうなものがあればぜひぜひ教えてください。(KENTさんは隠しディレクトリを持てないサーバーの説明がなく断念してます)
○管理者と登録者に両方にメールを送る。法人で使用できる。
 情報管理が出来れば最高です。

どうかできるだけわかりやすく丁寧に
優しく教えてください・・・宜しくお願いします。
*ビンゴ回答の方にはポイントはずみますのでm(__)m

回答の条件
  • URL必須
  • 1人5回まで
  • 登録:
  • 終了:2006/12/09 10:27:41
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答8件)

id:tobeoscontinue No.1

回答回数220ベストアンサー獲得回数59

ポイント50pt

>■登録すると送られてくるメールが恐ろしく文字化けする。

charset="ISO-2022-JP"としていますが実際はShift_JISのままです。

そのためと思われます。

本文をコード変換すればいいのですが修正が多くなるので

とりあえず

print OUTMAIL "Content-Transfer-Encoding: 7bit¥n";

を8bitにして

print OUTMAIL "Content-Type: text/plain¥; charset=¥"ISO-2022-JP¥"¥n¥n";

のcharsetをShift_JISにしてみてはどうでしょう。

ローカルなら8bitでも流れると思います。

私の感じではSubjectも問題だと思います。



>■メールアドレスが少し長いと登録できない

regist.html

<INPUT size="30" type="text" maxlength="30" name="mail" style="ime-mode: inactive">
<INPUT size="30" type="text" maxlength="30" name="chkmail" style="ime-mode: inactive">

でmaxlength="30"となっているためと思われます。50か60程度にしてみてはいかかでしょう。

プログラム的には制限していないと思います(きちんと見ていない)


>■ログイン後のページ表示のアドレスをどこに書くかわからない・・・

regist.cgiの先頭の方にある

$loginurl =

がそれになります。が修正と削除だけですので、これ以降は別途、準備する必要があります。

$topurl

$sitename

も希望するものに変えます。


ただsub footerの部分を変えると著作権違反となるそうですので注意して下さい。

http://q.hatena.ne.jp/(ダミー)

id:poy

とても丁寧なご回答ありがとうございます!

今全て変えてみました。

アドレスは入力できるようになりましたが

メールの件名が文字化けします。

それと、ログイン画面にいって

ID(めるあど)とパスワード入力しても

入れてもらえず、3回ほどくりかえすとダメ!な英語のページ表記に・・・。

パーミッションとかもお聞きしていいですか?

(関係あるなら・・・ですが)

宜しくお願いします!

2006/12/05 02:24:22
id:herolight No.2

回答回数395ベストアンサー獲得回数19

ポイント17pt

http://www.tohoho-web.com/wwwxx012.htm

パーミッションの変更は上記を参照して変更できれば

よいのですが。

下記のフォルダとファイルは666でNG時777に設定します。

  └・login[フォルダ]┬・.htaccess・・・環境設定ファイルです。

               ├・.htpasswd・・・パスワード格納ファイルです。

               ├・index.html・・・TOPページ。サンプルです。

               ├・changedel.cgi・・・登録変更/削除処理プログラムです。

               └・user.cgi・・・ユーザー登録情報格納ファイルです。

id:poy

ぜんぶ666?ですか?

2006/12/05 15:23:22
id:herolight No.3

回答回数395ベストアンサー獲得回数19

ポイント16pt

メールの件名は代替として

regist.cgiの中身を半角英数にします。

$Subject1 = "1kanryou 会員登録が完了しました";

#管理者向け件名

$Subject2 = "2tourokuari 会員登録がありました";

#パスワード再発行向け件名

$Subject3 = "3passsai パスワードの再発行";

#登録確認メール用の著名

URLは参考ですご存知でしたらごめんなさい。

http://www.tohoho-web.com/www.htm

id:poy

ありがとうございます。

666に変更するとNGで777に変えると

やはり同じくログインできない状態です。

パスワードを入力しても入れない・・・。

あとはここだけなのですが・・・。

2006/12/05 15:50:08
id:herolight No.4

回答回数395ベストアンサー獲得回数19

ポイント16pt

どうもすいませんでした。

私も実際に今自宅のパソコンにActivePerlとhttpdを

インストールして実行しましたが

ログイン画面が表示されないので確認できない状態です。

すでに御存知かもしれませんが

http://xxx.xxx.xxx/~xxx/cgi-bin/access/regist.cgi

にアクセスして確認します。

私の場合は3番目のメールサーバがないので

・メールサーバのパスが間違っています

最後の

・登録変更/削除プログラムのパーミッションが間違っています

でNGでした。

ほかは問題ありませんでした。

id:poy

ウチのつかってるサーバーも一般公開しているところしか使えないので正直よくわかりませんw

でもイロイロありがとうございます!

ほんとお勉強不足なのに・・・どうして担当なんだろう(TT)

2006/12/06 00:26:00
id:tobeoscontinue No.5

回答回数220ベストアンサー獲得回数59

ポイント16pt

>メールの件名が文字化けします。

これはちょっと厄介です。

単純には

jcode'convert(*Subject1,'jis');

を#を付けて注釈にすることで私の環境では文字化けはしませんでした。

ですがメールの規格からするとどうかなぁと思います。

本来はhttp://www.din.or.jp/~ohzaki/perl.htm#JP_Base64

のようにするのが正しいのですが。

use MIME::Base64;

jcode'convert(*Subject1,'jis');

$Subject1 = '=?ISO-2022-JP?B?' . encode_base64($Subject1, '') . '?=';

とすることでも文字化けしませんでした。

これで本来の姿に近いのですがまだ十分ではなく、Subjectが長くなると問題になると思います。

これをして7bitとcharsetをISO-2022-JPに戻して、本文をjisに変換するのが正しい姿に近いのですが、そこまで修正を入れるのもどうかなぁと思います。


>それと、ログイン画面にいって

>ID(めるあど)とパスワード入力しても

>入れてもらえず、3回ほどくりかえすとダメ!な英語のページ表記に・・・。

>パーミッションとかもお聞きしていいですか?

regist.htmlでなくregist.cgiへアクセスすると動作チェックでパーミッションに問題ないか確認できます。


login/.htaccessのAuthUserFileのパスをlogin/.htpasswdを示すように修正する必要があります。これをしていないか或はlogin/.htpasswdに書き込みができてないので認証ができずにはじかれているのだと思います。


私は下記のようにしました。

regist.cgi 705

login/.htaccss 605

login/.htpasswd 606

login/changedel.cgi 705

login/user.cgi 606


メールに問題があると思います。またuser.cgiには生パスワードが載ってます。.htpasswdも公開ディレクトリーにあるのも気になります(対策はされてますが)。これだけでは登録と修正、削除だけなのでやりたいことの一部だと思うのですが、条件に合致しているのでしょうか。

修正に対して問題の少ないものの方がいいように思うのですが。

id:poy

ほんといつもありがとうございますm(__)m


どうしてコレか・・・というと。

お客様が登録してくれた際に、管理者(私)にも

お客様にも登録内容が行くこと。

それと、登録する内容が多いことw

(統計を取りたいそうなので)

名前、年齢、アドレスなど。


後は、パスワードを忘れても自分でやり直せること。


ちなみに現在設置に成功しているのは

http://www.net-easy.com/psw/ezpsw.html です。

これに同じような機能があればいけそうです。


セキュリティに関しては、ロリポップを使ってるのですが

公開されているところしか使えなくて

KENTさんのところとかのしっかり?してそうなのを

設置できなかったんです・・・。

(パターン2の説明が少なくて・・・挫折)

出来ればなにか良いものありませんでしょうか(^^;

今日はとりあえず教えて頂いたことをやってみます!

またご回答お待ちしていますっ。

2006/12/06 00:32:27
id:sudayosiaki No.6

回答回数204ベストアンサー獲得回数6

ポイント16pt

http://www.kent-web.com/pwd/gate.html

KENTさんのCGIはパーミッションが700か705ですね。

loginフォルダは755中身はcgiが700か705それ以外が666か644ではないでしょうか?私のレンタルサーバーで試してみました。

http://popup.tok2.com/home2/yosiaki/regist.cgi

折角ここまでできたのになんですが、KENTWebさんのものですが

「公開ディレクトリ以外に隠しディレクトリを置けない場合」に

書いて有りますよ。(secret.html → secret.cgi にリネームする)

id:poy

あら。ほんとだw

で、KENTさんのにずっとてこずっている機能がつけば

正直最高なんです。

で、regist.cgiのテストでは私もOKなんです。

でもログインできない・・・。

2006/12/06 09:28:00
id:herolight No.7

回答回数395ベストアンサー獲得回数19

ポイント16pt

○下記のファイルのノートパッド等で確認してみましょう。

登録したメールアドレスやパスワード等が入っていれば

CGIの動作は問題ありません。


  └・login[フォルダ]┬・

               ├・.htpasswd・・・パスワード格納ファイルです。

               └・user.cgi・・・ユーザー登録情報格納ファイルです。

○ 下記のパスがあっているか確認します。

例:/home/public_html/~user/access/.htpasswd

・.htaccess・・・

    1.1行目の.htpasswdへのパスを変更。

└・login[フォルダ]┬・.htaccess・・・環境設定ファイルです。

http://www.shtml.jp/htaccess/basic.html

id:poy

ぜんぜんダメでした・・・。

チェックにも問題ないってでるのに

どうしてもパスワード入力しても

ログインさせてくれません。

いくつかフリーのアドレスとかとってやりましたが

今回は諦めます。

2006/12/06 16:17:49
id:tobeoscontinue No.8

回答回数220ベストアンサー獲得回数59

ポイント16pt

ロリポップはsuEXECを導入しているようです。

そのためパーミッションがシビアなのかもしれません。

http://lolipop.jp/?mode=manual&state=hp&state2=cgi

設定するパーミッションの値

login 705

login/.htpasswd 704

login/user.cgi 700

のように設定してみてはどうでしょう。

id:poy

そのURLも確認してやってみてましたが

結局ダメでした。

どうも私の変更のしかたが悪いのか

イロイロ試しましたがやっぱりログインできません。

なので今回は諦めたいと思います。

ありがとうございました。

2006/12/06 20:16:30
  • id:herolight
    設置方法の大文字や小文字などの間違いアドレスの指定が一番怪しいでしょう。

    下記内容を変更の上、perlが実行可能な場所に設置を行ってください。
      ・regist.cgi・・・
        1.1行目のperlへのパスを変更。
        2.25行目から53行目迄の各項目を変更。
      ・changedel.cgi・・・
        1.1行目のperlへのパスを変更。
        2.25行目から32行目迄の各項目を変更。
      ・.htaccess・・・
        1.1行目の.htpasswdへのパスを変更。
      ・各プログラムの呼び出し方法・・・
        1.登録/パスワード再発行画面・・・regist.htmlを開く。
        2.Login・・・login[フォルダ]内のファイルを開く。
        3.簡易チェック機能・・・regist.cgiをブラウザで開く。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません