フォーム⇒ (1)確認 ⇒ (2)送信 と3つに分けて、phpファイルに書きました。
ためしに、送信してみると、成功はするものの、文字が化けてメールの内容が分かりません。
分からないので教えてください。
フォーム ↓
<form method="POST" action="kakunin.php">
<table border="0">
<tr>
<td >お名前</td>
<td><input type="text" name="name" size="20"></td>
</tr>
<tr>
<td>メールアドレス</td>
<td><input type="text" name="from" size="20"></td>
</tr>
<tr>
<td>メールタイトル</td>
<td><input type="text" name="title" size="20"></td>
</tr>
<tr>
<td>メッセージ</td>
<td><textarea rows="5" name="naiyou" cols="40"></textarea></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value=" お問い合わせ内容を確認 "></td>
</tr>
</table>
</form>
(1) kakunin.php ↓ 入力フォームから情報を受け取り確認
<?php
// フォームの値を取得します。
if ($_SERVER["REQUEST_METHOD"] == "POST") {
foreach($_POST as $k => $v){
// 「magic_quotes_gpc = On」のときはエスケープ解除
if (get_magic_quotes_gpc()) {
$v = stripslashes($v);
}
$v = htmlspecialchars($v);
$$k = $v;
}
}
else {
exit();
}
// 値をチェックします。
$ErrFlg = 0;
if ($name == "") {
echo "<p>お名前を入力してください。";
$ErrFlg = 1;
}
if ($from == "") {
echo "<p>メールアドレスを入力してください。";
$ErrFlg = 1;
}
if ($title == "") {
echo "<p>メールタイトルを入力してください。";
$ErrFlg = 1;
}
if ($naiyou == "" ) {
echo "<p>メッセージを入力してください。";
$ErrFlg = 1;
}
if ($ErrFlg) {
exit();
}
?>
内容を確認して送信ボタンをクリックしてください
<form method="POST" action="mail.php">
<table border="0">
<tr>
<td width="100">お名前</td>
<td width="300"><?php echo $name?></td>
</tr>
<tr>
<td width="100">メールアドレス</td>
<td width="300"><?php echo $from?></td>
</tr>
<tr>
<td width="100">メールタイトル</td>
<td width="300"><?php echo $title?></td>
</tr>
<tr>
<td width="100">メッセージ</td>
<td width="300"><?php echo nl2br($naiyou) ?></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="送信"></td>
</tr>
</table>
<input type="hidden" name="name" value="<?php echo $name ?>">
<input type="hidden" name="from" value="<?php echo $from ?>">
<input type="hidden" name="title" value="<?php echo $title ?>">
<input type="hidden" name="naiyou" value="<?php echo $naiyou ?>">
</form>
(2) mail.php ↓のコード 送信
<?php
// メール送信先を指定します。
$to = "xxxxxxxxxx■ gmail.com";
// フォームの値を取得します。
if ($_SERVER["REQUEST_METHOD"] == "POST") {
foreach($_POST as $k => $v){
// 「magic_quotes_gpc = On」のときはエスケープ解除
if (get_magic_quotes_gpc()) {
$v = stripslashes($v);
}
$v = htmlspecialchars($v);
$$k = $v;
}
}
else {
exit();
}
// メール本文を組み立てます。
$naiyou = "お名前:$name\n
メールアドレス:$from\n
タイトル:$title\n
内容:$naiyou\n";
if ($name != "" and $from != "" and $title != ""
and $naiyou != "" ) {
if (mb_send_mail($to, $title, $naiyou, "From:$from")) {
echo "メールを送信しました";
}
else {
echo "メール送信失敗です";
}
}
?>
No.1ベストアンサー
- 回答日時:
全てのファイル及びHTMLのcharsetの文字コードは統一していますか?
できればUTF-8で統一したほうが良いかと思います。
ご提示されている構文自体には、特に問題が無いように見えますが、
これはレンタルサーバ等のLinuxで走らせていますか?
もしそうなら、php.iniファイルの設定は、きちんと行っていますか?
設定をしていないければ、
mbstring.internal_encoding = UTF-8
date.timezone = Asia/Tokyo
これをテキストエディタにコピペして、php.iniとしてphpファイルと同じ
ディレクトリに設置してください。
date.timezone = Asia/Tokyo
は、直接関係ありませんが後々date関数等を扱う時に必要になりそうなので、
一応設定しておいたほうが良いと思います。
これでも解決しないようなら、すみません分かりません。
ありがとうございました。 とても参考になりました。
サーバーによって異なるようで、私が使っているサーバーでは、.htaccess による設定で対処できました。
php_value mbstring.language Japanese
php_value mbstring.internal_encoding UTF-8
php_flag short_open_tag 1
この3行で解決ました。 ヒントがなければたどり着きませんでした。感謝します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
チェックボックスがチェックさ...
-
画面が更新されてもチェックボ...
-
XMLデータをPOSTで送信・受信す...
-
PHPで画像の渡しが上手く行きま...
-
DBの値をチェックボックスに反...
-
PHP DBの登録情報をラジオボタ...
-
ラジオボタンをsessionで使いたい
-
チェックボックスを用い、MySQL...
-
Javascript→PHPに...
-
パラメーターを隠す
-
フォームへの前回入力値をクリ...
-
php mysql でチェックボックス...
-
phpでの複数選択チェックボック...
-
<input type="hidden" >で配列...
-
検索時の選択内容を保持する方法
-
smartyでチェックボックスをチ...
-
フォームでのリセットを使う方法
-
PHPで問い合わせフォーム 受信...
-
PHPでクリックするたびに変数を...
-
syntax error, unexpected '}' ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HTMLで前の画面に戻る時、入力...
-
<input type="hidden" >で配列...
-
PHP ボタンが押されたら処理を...
-
検索時の選択内容を保持する方法
-
DBの値をチェックボックスに反...
-
ラジオボタンをsessionで使いたい
-
パラメーターを隠す
-
PHPで画像の渡しが上手く行きま...
-
フォームへの前回入力値をクリ...
-
フォームボタンを押すたびに数...
-
フォームでのリセットを使う方法
-
syntax error, unexpected '}' ...
-
PHPの関数実行
-
入力した部分を表示させたまま...
-
テキストボックスに初期値を入れる
-
phpで分からないエラーが出てし...
-
入力フォーム→確認画面→送信画...
-
画面が更新されてもチェックボ...
-
Javascript→PHPに...
-
配列をhiddenで
おすすめ情報