こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

メール送信

現在独学でPHPの勉強をしており、行き詰まってしまいここで質問をさせて頂きました。
行き詰まった内容ですがphpでメール送信のスクリプトを書いたのですが
エラーが出てしまい送れません。
こちらが私が書いたスクリプトになります。

<html>
<head><title>mail.php</title></head>
<body>
<?php
$address = $_POST["address"];
$subject = $_POST["subject"];
$message = $_POST["message"];
$header = "Content-Type: text/plain;charset=iso-2022-jp";

mb_language("Japanese");

if(mb_send_mail($address, $subject, mb_convert_encoding($message, "JIS", "EUC-JP"), $header)){
print("送信完了しました。");
}else{
print("エラー:送信に失敗しました");
}
?>
</body>
</html>

エラーの内容ですが、
Fatal error: Call to undefined function mb_language() in C:~となっております。mb_languageが使えないとの表示が出てくるのですが、
色々な本などを調べてもこれを使ってる所もありなにが問題なのか分かりません。
php.iniでの設定(mbstring.internal_encoding = EUC-JP、extension=php_mbstring.dll)の ; などは外してみたりしてるのですが
どうにも分かりません。

どなたかお分かりになるかたがいましたら是非教えて頂けないでしょうか。宜しくお願い致します。

投稿日時 - 2007-04-13 15:30:34

QNo.2917824

すぐに回答ほしいです

質問者が選んだベストアンサー

> extension_dir = "c:/php/ext"
> こちらでただしいのでしょうか?

C:\php\extの下に、php_mbstring.dllなどの
DLLファイルがありますか?全部で40個以上あるはずです。

また、以下のスクリプトを実行したとき、
mbstringの項を表示しますか?

<?php
phpinfo();
?>

投稿日時 - 2007-04-13 21:26:53

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.3

> ;extension_dir directive aboveのような形になっております。
> ; Be sure to appropriately set the extension_dir directive.

コメント行ではなく、
extension_dir = なんとか
と設定してある行がありませんか?
もしもないとすると、外部ライブラリを使うことができません。

> あまり詳しくなく大変申し訳ないのですが、その部分はいじっておりません。

上に引用したコメント行にあるとおり、
extension_dirディレクティブを適切に設定しないと、使えません。

投稿日時 - 2007-04-13 16:57:37

補足

ご親切に対応をして頂きましてありがとうございます。
extension_dir=なんとかと設定してる所が見当たりません。

もう一度extension_dirについて今から調べてみます!

投稿日時 - 2007-04-13 17:08:37

お礼

先ほど調べてみたのですが
extension_dirの記載部分をみつけました。
下記の通りになっておりました。
extension_dir = "c:/php/ext"

こちらでただしいのでしょうか?
またmb_languageの部分をコメントにしたのですが、
Fatal error: Call to undefined function mb_send_mail()
 とのエラーが出てしまいました。
お礼の欄でこのようなことを書いてしまいまして
申し訳ございません。

投稿日時 - 2007-04-13 17:22:21

ANo.2

> apacheを再起動した際にunable to load dynamic library ~ext\php_mbstringと出てしまいます。

php.iniのextension_dirの設定内容はどうなっていますか?

投稿日時 - 2007-04-13 16:37:22

補足

;extension_dir directive aboveのような形になっております。
; Be sure to appropriately set the extension_dir directive.
あまり詳しくなく大変申し訳ないのですが、その部分はいじっておりません。

投稿日時 - 2007-04-13 16:48:47

ANo.1

さしあたり、mb_language()を呼び出している箇所を
コメントにしてみてはいかがでしょうか。
なくても、特に問題ないと思います。

また、Webサーバは何をお使いですか?
肝心なことですが、php.iniの設定を変更した後、
Webサーバをリスタートさせていますか?

投稿日時 - 2007-04-13 15:56:29

補足

さっそくの回答ありがとうございます。
mb_languageの所はコメントにしてみます。
またウェブサーバですがlocalhostで使用しており、
apacheを使用しております。
またここで記載しわすれてしまったのですが
apacheを再起動した際にunable to load dynamic library ~ext\php_mbstringと出てしまいます。

投稿日時 - 2007-04-13 16:08:46

あなたにオススメの質問