- 締切済み
入力フォームをCGIでエラーチェック→PHPにデータを送る
CGIでフォームの入力をチェックした後、データをphp に送ろうと思います。 今まで使用してた、エラーチェックした後、データを、管理者にメールでデータを送信させるCGIをカスタマイズして、エラーチェックの後に、PHPへデータを送ることは可能なのでしょうか? どなたか御教授お願いいたします。 以下はエラーチェック後の部分です。 $errNum = chkFormInput(); fixTags(); open HTML, $template or err("$templateが開けません"); @html = <HTML>; close HTML; if ($errNum > 0){ # エラーメッセージの先頭のカンマをはずす $errMsg =~ s/^,//; $errMsg = "<font color=\"red\">$errMsg (計$errNumヶ所)"; $errMsg .= "に未入力、又は不適当な入力があります。<br></font>\n"; }elsif (sendmail() && stockData()){ $errMsg = "ありがとうございました。以下の内容で$adminName($adminMail)に送信しました。"; } replaceTags(); showHTML(); exit();
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- rara_sun
- ベストアンサー率50% (271/539)
> (2)CGI側でコマンドラインPHPを利用する。 すいません。これの補足。 PerlのCGIからは、 open(PHPPRG, "php sample.php val1 val2"); close(PHPPRG) っていう感じに呼び出しをします。
- rara_sun
- ベストアンサー率50% (271/539)
確認環境がないので、できるかどうかわからないのですが、こういうやり方があるのかな~という程度で・・。 もし、ここで有効な情報が得られなかったら、参考に検討してみてください。それまでは無視してくださって決行です。 (1) 呼び出しCGI(Perl)で HTTP通信のモジュールを 利用する。 前提: ホームページ提供サイトのPerlがそういうモジュールを提供していること。 サンプル: http://ash.jp/perl/socket_http.htm これは、CGIをブラウザとして利用するという考え方です。 (2)CGI側でコマンドラインPHPを利用する。 前提: ホームページ提供サイトでこの実行をサポートしていること。 参考資料&サンプル: http://php.planetmirror.com/manual/ja/printwn/features.commandline.php CGIからPHPコマンドを利用してPHPプログラムを実行しようという考え方です。 ほかにうまい方法があればよいのですが・・・ いったんブラウザにHTMLのMETAのRefreshを送りつけるなんて方法も思いついたのですが、エラー処理が大変・・。 ちなみに、そのPHPプログラムの中でメール送信もするんでしょうかね!?データ送信とメール送信どちらが先かわかりませんが、どちらかが失敗したら、もう一方はどうしょりするかも考えないと、不整合がおきますね・・・。 たとえば、メール送信失敗してるのに、データ送信はやっちゃうの?とか・・。
補足
rara_sunさん ご説明有難うございます。 初心者なので、詳しい用語とかは、調べながら格闘してます。 質問の補足の説明をいたします。 入力フォーム(HTML)からCGIにデータを受け渡す ↓ CGIで入力のエラー判別、 ↓ 項目にエラーがある場合再度入力フォームを表示 項目にエラーの無い場合、 データの内容をメールで管理者に送信+データをcsv形式で保存。 以上の一連の作業をするcgiを利用して、 これに追加の機能でデータをphpに送りデータベースに書き込みするという機能も付け加えたいのです。 どういう方法がありますかね? ちなみにデータベースはmysqlです。 よろしくお願いいたします。
補足
rara_sunさん 返事がおそくなってしまい申し訳ございませんでした。 結局エラー処理が通った後にLocationでデータを渡すことに致しました。 }elsif (sendmail() && stockData()){ print "Location: ../hoge.php?hoge=$hoge&hoge=$hoge&hoge=$hoge&hoge=$hoge"; この場合フォームのメソッドがGETでしか、処理ができなさそうなのですが、 POSTでも可能なのでしょうか?