• 締切済み

フォームからの送信で・

perlでフォームから送信する際にまず、htmlから記入してCGIを呼び出し確認画面を出します。 その次に送信となるのですが記入フィールドに空白があると空白から先が削除されて送信されてしまいます。 例えば 山田 太郎と送信しようとすると空白の後が削除され山田で送信されます。 これはどう対処すればいいでしょうか? $hoge =~ s/ /hoge/g;な形でエンコードすればいいのでしょうか? お教えください。

  • CGI
  • 回答数3
  • ありがとう数2

みんなの回答

  • natural
  • ベストアンサー率37% (419/1115)
回答No.3

パソコンのホームページからやってみてもi-modeのホームページからやってみてもCGIでの取り出しには問題でませんね~。(^_^;(共に自作) 後はReadParseの辺りでしょうか。 お手数ですが今度はReadParse以降、取り出した値の変数への格納のあたりを記載して頂けますか? 尚、先程のソースの中で実際に「山田(実際には山田 太郎)」が入る部分はどこでしょう。 併せて補足お願いします。

  • natural
  • ベストアンサー率37% (419/1115)
回答No.2

すみません、ちょっと時間が押しているので詳しくは後ほど・・・。(^_^; とりあえず下記は大丈夫でしょうか? print <<EOF  → print <<EOF; 御確認下さい。

k_barrel
質問者

補足

ごめんなさい下記は記述ミスでした。^^ EOFの部分は問題ありません。

  • natural
  • ベストアンサー率37% (419/1115)
回答No.1

CGI側の入力値取り出し処理周りを見ないと何とも言えません。 通常なら空白で途切れたりしないと思いますが・・・。 まずは一部で結構ですので該当するソースを補足欄に載せて下さい。 それと使用しているのはPOSTですか、GETですか? 宜しくお願いします。

k_barrel
質問者

補足

まず、methodはpostです。 処理としましては、 <input type=hidden name=hoge value=abc>で次の処理に渡します。 ここで $message = print <<EOF 名前 $hoge 内容 $etc・・ EOF と、送信内容を$meaageに入れ、下記処理にと続きます。 &jcode'convert(*message,'jis'); open(MAIL, "|$sendmail -t") || &error("失敗"); print MAIL "To: $a\n"; print MAIL "From: $b\n"; print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n"; print MAIL "Content-Transfer-Encoding: 7bit\n"; print MAIL "Subject: abc\n"; print MAIL "$message\n"; close(MAIL) いかがでしょう?

関連するQ&A

  • フォームの送信ボタンを押すと

    どなたか、お助けいただければ幸いです。 メールフォームを設置し、いざ送信テストをしようと 思ったのですが、送信をする際に下記のようなエラーがでます。 対処方法を教えてください(@´_`@)フエーン □エラーメッセージ□ Software error: Can't locate Jcode.pm in @INC (@INC contains: /usr/lib/perl5/5.6.1/i386-linux /usr/lib/perl5/5.6.1 /usr/lib/perl5/site_perl/5.6.1/i386-linux /usr/lib/perl5/site_perl/5.6.1 /usr/lib/perl5/site_perl/5.6.0/i386-linux /usr/lib/perl5/site_perl/5.6.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.6.1/i386-linux /usr/lib/perl5/vendor_perl/5.6.1 /usr/lib/perl5/vendor_perl .) at mailform.cgi line 8. BEGIN failed--compilation aborted at mailform.cgi line 8. というような、エラーです。このエラーは当方は初めて見るエラーでして、どのように対処すればわかりません。。。 □8行目記載内容□ use Jcode; のみです。 □フォーム設置ツリー□ ../inquiry/index.html ../cgi/toiawase/mailform.cgi ../cgi/jcode.pl   ↓ここから下は同ディレクトリーです。 ../cgi/cgi-lib.pl という中身で設定しております。 □環境□ IBM Xserver(Xeon 2.4GHz) Redhat Linux DirectAdmin Apache1.3.29 もし、この件でこの内容がなければ対処ができないとのことであれば、 何なりとおっしゃってください。 よろしくお願いします。。。

    • ベストアンサー
    • CGI
  • 2つ目の送信フォーム

    皆様にお聞きし無事、送信フォームを自分のHPに付けることができました。 のですが、2つ目3つ目と作ろうと思ったら思うようにうまくいきません。 僕のサーバーはcgi-binというフォルダを置かなくてそのままpublic_htmlに 設置O.Kだったのでpublic_htmlに 1.form1.html 2.form1.cgi 3.thanks.html(送信後に表示されるページ) 4.tempディレクトリ を置いていました。 そこに新しくform2.htmlとform2.cgiを置いたのですが tempディレクトリは名前が同じなのでアップしても上書きになってしまうと思い なにもふれなかったせいか、form2.htmlを開き フォームに記入し送信したらエラー警告ページが表示されます。 (送信後表示されるページはthanks.htmlでform1と同じです。) 2つ目を設置するにはどうすればよいのでしょうか? 教えてください、お願いします。。 ちなみに、1つ目のフォームは順調に作動しています。 WIN98,OE

    • ベストアンサー
    • CGI
  • フォームデータ-の送信時の確認画面の表示方法

    初めて質問させていただきます。 perl初心者です。 メールフォームの確認画面の出ないものを作成し(mail.cgi)問題なく稼動していますが何かと不便なので 確認画面のを表示させたいのですがどうすれいいのか 教えていただきたいです。 現在はフォームより送信されてきたデータ-をそのままメール送信しています。 perlでフォームデータ-を読める形に整形し表示するまではできています。 ここから先が分かりません。 いろいろ調べましたが分からず書かせて頂きました。 どなたか よろしく御願いいたします。

    • ベストアンサー
    • Perl
  • メール送信フォームのCGI

    CGI初心者なので メール送信フォームCGIを無料配布のところからお借りしました。 メール送信は上手くいっているのですが送信結果がブラウザ上に表示されます。 ↓ (確認メールを送信します以下の分) これを表示させないようにCGIのブラウザ表示の部分だけを削除したのですが、CGIが動かなくなります。 単純に削除するだけではダメなのでしょうか? 初歩的?なことかもしれませんが・・・よろしくお願いします。

  • フォーム送信について

    今、HPを作成中なのですが、来てくれた方からのゲストブックを フォームを使って私のアドレスへ送ってもらうという形を作成しました。 試しに自分で記入して送信してみたのですが、送信クリックを押したら 注意書きがでました。 「フォームは電子メールを使用して送信されます。  送信するとメールアドレスが受信者に公開され・・・」 という内容です。 以前、ネットサーフィンをしていた際にも同じようなゲストブックがあった のですが、このようなことはありませんでしたし、 メアドを持っていない人でも送信できると書いてありました。 私としてはメアドは教えたい人だけフォームの回答で教えてくれればいいと 思っています。そのようなことは可能ですか? ちなみにHTMLで作成しているのですが、かなりの初心者です。 あと、試しで送ったものを見てみたら、何も記入されておらず、 中身のない添付ファイル付きでした。 実際に回答はどのような形で受信されるのでしょうか? わかりにくい説明ですがわかるでしょうか? 基本的な質問ばかりですみません。 補足質問等があれば言ってください。お願いします。

    • ベストアンサー
    • HTML
  • フォームメールつくりましたけど、、。>_<

    下記のページで、フォームメールダウンロード つくったのですが、 [public_html] └[cgi-bin] ├[tmp] ├formmail.cgi ├jcode.pl └perl-lib.pl あげてフォームを入れて送ったのですが、 エラーになります。Internal Server Errorじゃなくて 「E-Mailを記入してください」下にもどるボタンが でます。ってことはパーミッションはあってるとおもうのですが 空白全部記入していて、メールもちゃんとしたアドレス 入れたのにエラーがでる原因は何が考えられますか? ダウンロードしたのは下記です。 http://www.tryhp.net/formmail.htm

    • ベストアンサー
    • CGI
  • フォーム送信とURLエンコードについて

    CGI&PHP初心者です。 フォームのデータ送信とURLエンコードについて、お尋ねします。 method="GET" のフォームで、検索フォームをつくりたいとおもっています。 日本語も含めた検索語をフォーム送信したいと考えていますが、 送信の結果、エンコードされずにそのままブラウザのURL欄に入力した日本語が表示されてしまいます。 (ただ、メモ帳などにURLをコピーペーストするとURLエンコードがされているようです。) googleでは検索結果のアドレス欄にURLエンコードされた文字列がでているが、 同じように検索結果のアドレス欄にはURLエンコードされた文字列をだしたい。 URLに日本語をださずにURLエンコードさせた文字列を表示させるには、 どうすればいいのでしょうか? 補足:できるかぎり検索処理が重くならないにしたいと思います。     開発環境PHP&MySQL     動作環境Chrome のバージョン 38.0

    • ベストアンサー
    • CGI
  • フォームで送信ボタンを押すと、postmail.cgiのプログラムリストが表示してしまう。

    CGI初心者です! http://www.kent-web.com/data/postmail.htmlを参考にして cgiで送信フォームを作成しています。 perlへのパスも確認し、sendmailのアドレスも $mailprog = /usr/lib/sendmail; で確認して、動作させました。 また、cgiのプログラムはcgi-bin配下に格納し、 $script = ../../cgi-bin/postmail.cgi; という形で修正しました。 ところが、フォームで送信ボタンを押すと、postmail.cgiのプログラムリストがブラウザで表示してしまい、メール送信が出来ない情況です。 うまく動作させたいのですが、どのようにすればよろしいでしょうか。

    • 締切済み
    • CGI
  • メール送信フォームについて

    HTMLのフォームに名前や住所などのいくつかの項目を入力し、送信ボタンを押すと管理者へメールが送信されるCGI(KENTWEBのメールフォームというやつ)をサーバに設置して使っていました。 今回、別のサーバに同じCGIを設置したのですが、そのサーバではCGIがまともに動いてくれません。本来送信ボタンを押すと全ての項目がプレビュー・送信されるはずなのですが、このサーバでは最後に入力した項目だけがプレビュー・送信されます。いくつかのサーバで試してみたのですが、問題のサーバ以外ではちゃんと動きます。 どなたかご存知の方いらっしゃったら対処方法などお教えいただければ幸いです。

    • 締切済み
    • CGI
  • メール送信フォームで。

    CGI初心者です。 下記メールフォームで「内容確認画面を出さないで送信する」の文を削除して、 チェックボックスも削除したいのです。 ただ、フォーム上では削除されているように見えても、送信ボタンをクリックすると、すぐ確認画面が自動的に出てくるようにするにはどうたしら良いのでしょうか。 cgiファイルの設定で行うのでしょうか? 質問に不備がありましたら、補足致しますので、よろしくお願いします。 <input type="submit" VALUE="確認"> <input TYPE="reset" VALUE="リセット"> <input type="checkbox" name="no_check" value="on">内容確認画面を出さないで送信する</font>

    • ベストアンサー
    • CGI