• 締切済み

PHPのメールフォームが動かない!

プログラム言語はまったく初めてのPHP初心者です。 いきなり会社関係のサイトを管理する事になり サーバを移転したらメールフォームが動かなくなってとても困っています。 (前々任者が作ったPHPスクリプトなので、前任者もよくわかっていません) 状態は、フォームを送信すると、真っ白な画面になって何も表示されず、メールも送信されません。 移転前のサーバではちゃんと稼働していたらしいのですが… 書き替えたのはPHP本体のmailの送信先アドレスと、HTMLのaction=の後の本体スクリプトのアドレスだけです。 <form name="form1" method="post" action="./form.php"> mail関数は下のようになっています mail($mail,$subject,$message,$from,"-finfo@****.com"); include(THANKS); } 同じサーバにある、PHPの掲示板はちゃんと普通に稼働しています。 それから、いろんな初心者サイトを巡ってみたのですが、 スクリプト本体に、まだよく解らない構文もあります。 構文の一番最初が <?php $date = date ("Y-m-d"); になっているのですが、これは何をする構文でしょう? 前任者は「前のサーバで稼働していたから、サーバの問題じゃないか」 と、言っているのですが、もしそうならサーバの何が問題なのでしょう? なにしろスクリプトなどいじったこともない初心者なので、 わからない事だらけでとても困っています! 質問ばかりになってしまいましたが、どなたかよろしくお願いします!!

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

みんなの回答

  • arisa5
  • ベストアンサー率54% (6/11)
回答No.2

mail関数を使うには、やはりphp.iniの設定が必要なようです。 参考URL:http://de3.php.net/manual/ja/ref.mail.php それから、送信後に画面が真っ白になるそうですが、 <form ~ action="./form.php">の「form.php」が、この呼出元の プログラムと同じディレクトリ内にあるのでしたら <form ~ action="form.php">で呼び出せると思います。 mail関数を使っているのが「form.php」内でしたら、これが原因とも 考えられます。真っ白な画面の時のURLがどうなっているかもチェック してみて下さい。

参考URL:
http://de3.php.net/manual/ja/ref.mail.php
mikeko
質問者

お礼

><form ~ action="form.php">で呼び出せると思います。 …何度もすみません、"form.php"もhttp://~の絶対アドレスも両方試しているのですが、やはり結果は変わりません。 白画面の時のアドレスは、http://~/form.phpで、ちゃんとform.phpのアドレスになっているんです。 …というか、タイトルバーにそのアドレスが出てるんですよ…何故なんでしょう(T-T) やはり、サーバ側の問題なんでしょうか・・・。

  • arisa5
  • ベストアンサー率54% (6/11)
回答No.1

まずはmail関数ですが、$mailが宛先,$subjectが件名,$messageがメッセージの内容, その後にヘッダー情報がくるはずですが、ここの 「$from,"-finfo@****.com"」を「$from」だけにするか、このmail関数の前で $from .= "-finfo@****.com" //$fromの変数名の中に"-finf~"を足しています としてやはり「$from」だけにしてみてください。 参考URL:http://www.mdbl.sfc.keio.ac.jp/docs/php3/function.mail.html それから、mail関数を使うには、サーバのOS:apacheで設定が必要な場合もあります。 (その件については、残念ながら私は詳しくありません) >$date = date ("Y-m-d"); これは、$dateという変数名に、この命令を実行した日付を2003-06-03という形式で セットしています。 参考URL:http://www.mdbl.sfc.keio.ac.jp/docs/php3/function.date.html

参考URL:
http://www.mdbl.sfc.keio.ac.jp/docs/php3/function.mail.html,http://www.mdbl.sfc.keio.ac.jp/docs/php3/function.date.html
mikeko
質問者

お礼

アドバイスありがとうございます。 >$dateという変数名に、この命令を実行した日付を ああ! そういう変数だったのですね、わかりました! ありがとうございますm(_ _)m それから、構文の中に $mail = "info@****.com"; $from = " $mail"; という変数があるので、以下のように試してみましたが… 1. mail関数の"-finfo@****.com"を削除する 2. $from .= "-finfo@****.com" に変更する 3. $from = " $mail";とmail関数内の    "-finfo@****.com"の両方を削除する と、3パターンともやってみましたが、どれも結果は 同じで、白画面で止まってしまいます。 サーバからのエラーメッセージが返ってこないのは、 やはり、構文のエラーではなくて、サーバ側の設定の 問題だからでしょうか?

関連するQ&A

  • PHPでメールフォームを作るのはどれほど難しいのでしょうか?

    はじめまして。 このたび、PHP初心者として安くでサーバをレンタルしたものです。 肝心なメールフォームを作らないとと思い、参考書を探しているのですが、 PHPのスクリプトとして処理するプログラムが載っていません。 インターネットでいろいろと探したところ、ソースは公開されておらず、 どうやらかなり難しそうだという結論に至りました。 基礎から勉強して作り上げるには何行程度のプログラムになりますか? PHPを専門とされている方、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPのメールフォーム文字化けについて

    PHP超初心者です。 前任者が退職し、急きょWEBを引き継ぐことになりました。 現在稼動中のサイトのメールフォームは、PHPで処理を行っているのですが、 フォーム入力後に表示する入力確認画面及び送信メールで、 日本語が文字化けを起こしてしまいます。 PHP内に記述されているのは、 if(phpversion() < "4.1.0"){ $_GET = $HTTP_GET_VARS; $_POST = $HTTP_POST_VARS; $_SESSION = $HTTP_SESSION_VARS; } なのですが、レンタルサーバーのPHPバージョンは5.2.8です。 言語及び内部エンコーディングは、 mb_language('Japanese'); mb_internal_encoding(UTF-8); と設定してありますので、文字化けはバージョンの違いによるものではないかと考えているのですが、なにぶん初心者でどのように修正をかければよいのか分かりません。 尚、動作には問題はありません。 初歩的な質問で大変恐縮ですが、どなたかご回答よろしくお願いいたします。 (初心者向けの分かりやすい回答でお願いします)

    • 締切済み
    • PHP
  • PHPでフォームからの送信

    PHPでフォームからデータを送信する方法について教えてください。例えばPHPファイルの中に下の様にフォームを作成して、送信ボタンを2つ作ります。一つのボタンをクリックすると全てのフォームの情報が送信されてしまいますが、独立して送信できるようにはできないのでしょうか。簡単にでもできるかできないかを教えていただけましたら、あとは自分でなんとかがんばりますので、どなたか教えていただけれますと幸いです。宜しくお願いします。 <form action="abc.php" method="post"> AAA:<input type="text" name="simei"> BBB:<input type="password" name="pass"> <input type="submit" value="送信"> </form> <form action="abc.php" method="post"> CCC:<input type="text" name="simei"> DDD:<input type="text" name="pass"> <input type="submit" value="送信"> </form>

    • ベストアンサー
    • PHP
  • フォームからメール送信

    いつも参考にさせて頂いています。 現在メールフォームを作っていまして、Javascriptで作成したフォームからphpで作った確認画面へ遷移(form action=...phpにて)し、確認画面の送信ボタンをクリックした時点で指定したメールアドレスへ内容を送信 という流れで考えています。post変数をphpで受け取って確認画面を表示するところまではいいのですが、確認画面の内容をメールアドレスに送信するにはどうしたらいいのでしょうか? まだまだ初心者ですので噛み砕いて説明頂けば幸いです。 どうか宜しくお願いします

    • ベストアンサー
    • PHP
  • Firefoxだとメールフォーム送信出来ない

    PHPで作成されたJavascriptのメール送信フォームにて、 IE等のブラウザではフォームの送信が出来るのですが、 Firefoxのみソースの読み込みに失敗します。 以下ブラウザのHTMLソースとFirebugで表示されたエラー内容です。 ≪ソース≫ <SCRIPT TYPE="text/javascript"> <!-- //メール送信 function sendmail(){ form1.sendflg.value = 1; form1.method = "POST"; form1.action = "エイチティティーピー://www.xxx.xx/xxx/form-xxx.php"; form1.submit(); } //戻って修正 function sendmail_back(){ form1.method="post"; form1.action="エイチティティーピー://www.xxx.xx/xxx/form-xxx2.php"; form1.submit(); } --> </SCRIPT> ≪Firebugエラーの内容≫ form1 is not defined [このエラーでブレーク] ソースの読み込みに失敗: エイチティティーピー://www.xxx.xx/xxx/form-xxx.php form-xxx.php (xx行目) 当方まだ知識がおぼつかない状態の為、 原因、調査のヒント等、何かお解りの方がいらっしゃいましたら、宜しくお願い致します。

  • PHPメールフォームの設定

    コアサーバーに、PHPのメールフォームのインストールをしようとしていますが、 うまくいきません。 どなたか、ご教授頂ければ幸いです。 インストールしようとした、PHPメールフォームは、下記の2つです。 1.ES-FORM 2.Mailform+ Version1.24 (携帯対応埋め込み型PHPメールフォームスクリプト) どちらもサーバーに設置して、アクセスなどをしますが、 フォームがキチンを表示されません。 どちらも、.htaccessを設置したりして、試行錯誤していますが、うまく動きません。 ES-FORMは、フォームがうまく表示できないので、 サーバーの説明によるエラー対策を http://www.coreserver.jp/help/index.php/phperror/ を試みましたが、うまくいきません。 Mailform+ Version1.24 は、パスの設定がうまくいかないようです。 Warning: include() [function.include]: Unable to access /virtual/ken/public_html/■■■■.■■■■/mail/mfp/config.inc.php in /virtual/■■■■/public_html/■■■■/mail/index.php on line 5 などのエラーがでます。 いま、完全にはまってしまい、暗中模索になってしまいました。 恐縮ですが、素人ゆえ、わかりやすく解説、設定方法など ご教授頂ければ幸いです。 以上、よろしくお願いいたします。

    • 締切済み
    • PHP
  • PHP-メールフォームのプルダウンメニュー

    お世話になります。 現在、メールフォームのプルダウンメニューで下記のコードにより選択項目によってリンク先のページを切り替えて表示しています。 <form method="POST" name="form_select" id="sample_1"> <script><!-- function change_action_to(){ var 変更する項目一覧=new Array("","201501_1.php","201502_1.php","201503_1.php","201504_1.php","201505_1.php","201506_1.php","201507_1.php","201508_1.php","201509_1.php","201510_1.php","2015011_1.php","2015012_1.php"); var 選んである項目の番号=document.getElementById("sample_1_1").selectedIndex; var actionを変更したいフォームのオブジェクト=document.getElementById("sample_1"); actionを変更したいフォームのオブジェクト.setAttribute("action",変更する項目一覧[選んである項目の番号]); } //--></script> さらに、もう一つのプルダウンメニューで選択肢が「A」と「B」があり、 例えば1つ目で「2015年1月」を選択し、2つ目で「A」を選んだ場合、「201501_1a.php」へ もしくは1つ目で「2015年1月」を選択し、2つ目で「B」を選んだ場合、「201501_1b.php」へ と別ページへリンクする方法が知りたいです。 どなたかご教授お願いいたします。

    • 締切済み
    • PHP
  • メールフォームが動いてくれない。

    初心者ながら以下のようなメールフォームを書いたのですがうまく動いてくれません。どうしてなのでしょうか? ----hoge.php---- <?php $mail = $_POST['mail']; $address = $_POST['add']; if(empty($mail)){ $1 = "入力してください。"; }elseif(empty($address)){ $2 = "入力してください。"; }else{ //メール送信 echo("送信しました。"); exit; } ?> <form action="hoge.php" method="post"> E-mail <inputtype="text" name="add"><?=$1?> Message <input type="text" name="mail"><?=$2?> <input type="submit" value="send!!"> </form> ----- 一応、メールアドレスや本文が未入力の場合、エラーメッセージを出すようにしています。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPフォームでのセキュリティ

    PHP初心者です。 メールフォームを作成して出来たものをサーバにアップし、 テストメールを送ろうとしたところ、 「yahooツールバー個人情報送信時の確認」 「送信する情報は暗号化によって保護されていません。送信しますか?」 と警告がでます。 警告が出ないようにするには、サーバー側で何かすれば良いのでしょうか?それともphpファイルの何か記述するのでしょうか? ちなみに、そのサーバーでCGIのメールフォームでは、そのような警告は出ません。 もう一つお聞きしたいのですが、サーバー側の文字コードの確認はどのようにしたら分るのでしょうか? メールフォームで入力した受信メールがサーバーによって文字化けするので。 駄文で申し訳ございませんが、困っておりますので宜しくお願い致します。

    • 締切済み
    • PHP
  • お問合せフォームのセキュリティについて

    PHP初心者です。 ようやく簡単なお問合せフォームを作る事ができました。 ですがセキュリティの面で不安がありませすので、ご質問させていただきます。 1. contact.html(入力フォームを表示) <form action="kakunin.php" method="post"> method="POST"で kakunin.php に値を渡してます。 2. kakunin.php(入力内容の確認やエラーを表示) $_SERVER["REQUEST_METHOD"] == "POST"でフォームの値を取得して、 input type="hidden"を使用して値を受け渡してます。 入力内容表示のフォームは <form method="POST" action="mail.php"> この時フォームでの表示は <td><?php echo $name ?></td> としているのですが、 これを、 <td><?php echo htmlspecialchars($name) ?></td> にした方がいいのでしょうか? 3 mail.php(入力内容をメールで送信) $_SERVER["REQUEST_METHOD"] == "POST"でフォームの値を取得して、 mb_send_mailで送信しています。 このようにして、フォームを作りましたが、 セキュリティの観点から見て注意しなければならない事は何でしょうか? 作り方に問題ありでしょうか? 駄文で失礼します。宜しくお願い致します。

    • 締切済み
    • PHP

専門家に質問してみよう