• 締切済み

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"); になっているのですが、これは何をする構文でしょう? 前任者は「前のサーバで稼働していたから、サーバの問題じゃないか」 と、言っているのですが、もしそうならサーバの何が問題なのでしょう? なにしろスクリプトなどいじったこともない初心者なので、 わからない事だらけでとても困っています! 質問ばかりになってしまいましたが、どなたかよろしくお願いします!!

みんなの回答

  • 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パターンともやってみましたが、どれも結果は 同じで、白画面で止まってしまいます。 サーバからのエラーメッセージが返ってこないのは、 やはり、構文のエラーではなくて、サーバ側の設定の 問題だからでしょうか?