お問い合わせフォームの作り方⑦「教えてマリオ」

マリオデザイン

マリオデザインスタッフブログ「教えてマリオ」

ホーム>>教えてマリオトップ>>お問い合わせフォームの作り方⑦

このブログはマリオデザインアルバイトスタッフがこれからWEbを勉強してみたいと思われている方や会社でホームページの更新業務を担当されているがよく意味が分からないという方のために、ホームページ作成の基礎を綴っていくものです。 難しい言葉を使わず(使えない)噛み砕いた言葉で書いていくので、参考になればと思います。
*勉強中の為、間違った解釈を説明すると思いますので、ご指摘コメントもお待ちしておいります。

お問い合わせフォームの作り方⑦

  • 2012年4月22日
  • php

お問い合わせフォームの作り方も今回で最後の投稿になります。いままで紹介してきたものを使ってお問い合わせフォームを作成していきたいと思います。

目次
  1. お問い合わせフォームの構成
  2. 入力ページ作成
  3. エラーチェック・確認ページ作成
  4. 完了・メール送信ページ作成
1.お問い合わせフォームの構成

まずお問い合わせフォームの構成を説明したいと思います。お問い合わせフォームは一般的に3つのページでできています。

①見ている人に入力してもらうページ(入力ページ)。

②必須項目にちゃんと記入されているかどうかなどの確認ページ(エラーチェック・確認ページ)。

③入力してもらったデータを自分のパソコンに送るページ(完了・メール送信ページ)。

この3つのページをこれから作成していきたいと思います。

こちらは完成見本です。




2.入力ページ作成

まずは入力ページを作成していきます。今回は練習ですのでデザインはあまり気にせず・作成していきます。お名前とメールアドレスとお問い合わせ内容を必須にします。

作成する項目は
お名前→→1行テキストで作成

性別→→ラジオボックスで作成

生年月日→→選択リストで作成

どこでこのサイトを知りましたか→→チェックボックスで作成

メールアドレス→→1行テキストで作成

メールアドレス確認用→→1行テキストで作成

お問い合わせ内容→→テキストエリアで作成

以上の7つの項目と送信ボタン・リセットボタンを作成します。

通常入力ページは.htmlファイルで作成しますが、今回は生年月日のところを前回紹介したfor文で作成しますので、.phpファイルで作成していきます。

ファイル名はinq01.phpとします。 .phpファイルの内容はこんな感じです。

<div id="wrap">
    <h3>お問い合わせフォーム・入力ページ</h3>
    <form action="inq02.php" method="post">
        <table>
            <tr>
                <th><label for="namae">お名前<span>*必須</span></label></th>
                <td><input id="namae" type="text" name="namae" /></td>
            </tr>
            <tr>
                <th>性別</th>
                <td><input id="men" type="radio" name="sex" value="男性" /><label for="men">男性</label><input id="women" type="radio" name="sex" value="女性" /><label for="women">女性</label></td>
            </tr>

            <tr>
                <th>生年月日</th>
                <td>
                    
                    <!--年作成-->
                    <select name="yyyy">
                        <option>年</option>
                        <?php  
                        
                        for($i=2012;$i>=1900;$i--){
                        echo "<option>$i</option>";
                        }
                        
                        ?>
                        
                    </select>年
                    
                    <!--月作成-->
                    <select name="mm">
                        <option>月</option>
                        <?php
                        
                        for($i=1;$i<=12;$i++){
                        echo "<option>$i</option>";
                        }
						
                        ?>
                    </select>月
                    
                    <!--日作成-->
                    <select name="dd">
                        <option>日</option>
                        <?php
						
                        for($i=1;$i<=31;$i++){
                        echo "<option>$i</option>";
                        }
						
                        ?>
                    </select>日
                    
                </td>
            </tr>
            <tr>
                <th>どこでこのサイトを知りましたか?</th>
                <td>
                	<input id="book" name="book" type="checkbox" value="雑誌" /><label for="book">雑誌</label>
                    <input id="frend" name="frend" type="checkbox" value="知人の紹介" /><label for="frend">知人の紹介</label>
                	<input id="yahoo" name="yahoo" type="checkbox" value="ヤフー広告" /><label for="yahoo">ヤフー広告</label>
                </td>
            </tr>
            <tr>
                <th><label for="mail1">メールアドレス<span>*必須</span></label></th>
                <td><input id="mail1" name="mail1" type="text" /></td>
            </tr>
            <tr>
                <th><label for="mail2">メールアドレス確認用<span>*必須</span></label></th>
                <td><input id="mail2" name="mail2" type="text" /></td>
            </tr>
            <tr>
                <th><label for="naiyou">お問い合わせ内容<span>*必須</span></label></th>
                <td><textarea id="naiyou" name="naiyou" cols="*" rows="*"></textarea></td>
            </tr>
        </table>
        <div class="button">
        	<input type="submit" value="内容を確認する" /><input type="reset" value="内容をリセットする" />
        </div>
        <!--button_end -->
    </form>
</div>
<!--wrap_end-->

このブログで初めて使ったタグがありますので紹介します。

まずはthです。意味は見出しセルです。項目などに使用します。

次はlabelです。labelは項目とinputを関連づけるために使います。laberのforとinputのidを同じ名前にします。これで関連づけられるので、チェックボックスをチェックしなくても文字をチェックしてもチェックが入るようになります。

.cssはこんな感じで作りました。今回は邪魔なくらいコメントアウトを入れてみました。
body{
	
	margin:0;/*外側への余白*/
	padding:0;/*内側への余白*/
	font-size:12px;/*文字の大きさ*/
	
}

#wrap{
	
	width:600px;/*横幅*/
	margin:0 auto;/*全体を中央配置*/
	
}

span{/*spanは特に意味を持たないタグです。装飾用などに使用します*/
	
	font-size:10px;/*文字の大きさ*/
	color:#F00;/*文字の色*/
	
}

table{
	
	border-collapse:collapse;/*テーブルのうち枠線を重ねて表示*/
	width:598px;/*横幅*/
	
}

th{/*thは見出しセルです。*/
	
	border:solid 1px #999;/*ボーダーを上下左右に実線で,1px,で#999で*/
	background:#EEE;
	width:190px;/*横幅*/
	padding:5px;/*内側への余白上下左右5px*/
	text-align:left;/*文字を左寄せ*/
	
	
}

td{
	
	border:solid 1px #999;/*ボーダーを上下左右に実線で,1px,で#999で*/
	width:388px;/*横幅*/
	padding:5px;/*内側への余白上下左右5px*/
	
}

textarea{
	
	width:300px;/*横幅*/
	height:150px;/*高さ*/
	
}

.button{
	
	text-align:center;/*文字を中央寄せ*/
	padding:10px 0;/*内側への余白上下10px*/
	
}
入力ページはこんな感じです。カッコ悪いですが今回はデザインは気にしないでください。

入力ページのポイントは

①formのaction(データを送るページ)を指定する(今回確認ページはinq02.phpでつくるのでinq02.phpを指定している)

②formの中の部品にはnameを入れる(データを受信するときに必要なため)

です。


3.エラーチェック・確認ページ作成

次はエラーチェック・確認ページを作成します。

このページは必須項目が全て入力されているかをチェックし、必須項目が1つでも入力されていなければ、エラーを出して、入力ページに戻ってもらい、必須項目が全て入力されていれば、入力内容を確認してもらって送信ボタンを押してもらうページです。

このページは先ほどのinq01.phpをコピーして使います。ファイル名をinq02.phpにして内容を少し追加変更していきます。

ではコピーしたものに追加していきます。
まずは送られてきたデータを受信します。それと必須項目にデータが入力されていない場合に使用する変数を用意しておきます。

<div id="wrap">
    <h3>お問い合わせフォーム・エラーチェック・確認ページ</h3>
    <?PHP 

	//すべて受信
	extract($_POST);

	//エラー用FLAG未記入の場合1にする
	$flag=0;
	?>
    
    <form action="inq02.php" method="post">
        <table>
            <tr>
                <th><label for="namae">お名前<span>*必須</span></label></th>
                <td><input id="namae" type="text" name="namae" /></td>
            </tr>
            <tr>
                <th><label for="sex">性別</label></th>
                <td><input id="sex" type="radio" name="sex" value="男性" />男性<input type="radio" name="sex" value="女性" />女性</td>
            </tr>
            <tr>
                <th>生年月日</th>
                <td>
                    
                    <!--年作成-->
                    <select name="yyyy">
                        <option>年</option>
                        <?php  
                        
                        for($i=2012;$i>=1900;$i--){
                        echo "<option>$i</option>";
                        }
                        
                        ?>
                        
                    </select>年
                    
                    <!--月作成-->
                    <select name="mm">
                        <option>月</option>
                        <?php
                        
                        for($i=1;$i<=12;$i++){
                        echo "<option>$i</option>";
                        }
						
                        ?>
                    </select>月
                    
                    <!--日作成-->
                    <select name="dd">
                        <option>日</option>
                        <?php
						
                        for($i=1;$i<=31;$i++){
                        echo "<option>$i</option>";
                        }
						
                        ?>
                    </select>日
                    
                </td>
            </tr>
            <tr>
                <th>どこでこのサイトを知りましたか?</th>
                <td>
                	<input id="book" name="book" type="checkbox" value="雑誌" /><label for="book">雑誌</label>
                    <input id="frend" name="frend" type="checkbox" value="知人の紹介" /><label for="frend">知人の紹介</label>
                	<input id="yahoo" name="yahoo" type="checkbox" value="ヤフー広告" /><label for="yahoo">ヤフー広告</label>
                </td>
            </tr>
            <tr>
                <th><label for="mail1">メールアドレス<span>*必須</span></label></th>
                <td><input id="mail1" name="mail1" type="text" /></td>
            </tr>
            <tr>
                <th><label for="mail2">メールアドレス確認用<span>*必須</span></label></th>
                <td><input id="mail2" name="mail2" type="text" /></td>
            </tr>
            <tr>
                <th><label for="naiyou">お問い合わせ内容<span>*必須</span></label></th>
                <td><textarea id="naiyou" name="naiyou" cols="*" rows="*"></textarea></td>
            </tr>
        </table>
        <div class="button">
        	<input type="submit" value="内容を確認する" /><input type="reset" value="内容をリセットする" />
        </div>
        <!--button_end -->
    </form>
</div>
<!--wrap_end-->
5行目はわかりやすくするためのコメントアウトです。6行目でextractを使ってすべてのデータを受信し送られてきたnameと同じ名前の変数にデータをセットしました。

9行目がエラー用変数です。未記入の場合は$flagを1にしてエラー用画面を表示させます。

次に必須項目が入力されているか、if文とemptyを使ってチェックしていきます。未記入の場合は入力してくださいとメッセージを出し$flagを1にしてエラー用画面を表示させます。
<div id="wrap">
    <h3>お問い合わせフォーム・エラーチェック・確認ページ</h3>
    <?PHP 

	//すべて受信
	extract($_POST);
	
	//エラー用FLAG未記入の場合1にする
	$flag=0;
	
	//名前チェック
	if(empty($namae)){
				
		echo '<p><span>必須</span>お名前を入力してください。</p><br />';
		$flag=1;
				
	}
	
	//メールアドレスチェック
	if(empty($mail1)){
				
		echo '<p><span>必須</span>メールアドレスを入力してください。</p><br />';
		$flag=1;
				
	}
	
	//メールアドレス確認用チェック
	if(empty($mail2)){
				
		echo '<p><span>必須</span>メールアドレス確認用を入力してください。</p><br />';
		$flag=1;
				
	}
	//メールアドレスとメールアドレス確認用が同じかチェック
	elseif($mail1!=$mail2){
				
		echo '<p><span>必須</span>メールアドレスが一致していません。</p><br />';
		$flag=1;
				
	}
	
	//お問い合わせ内容チェック
	if(empty($naiyou)){
				
		echo '<p><span>必須</span>お問い合わせ内容を入力してください。</p><br />';
		$flag=1;
				
	}
	
	//エラーの場合(上記で未記入の場合flagを1にしているので)すなわちflagが1の場合戻るボタンを作成
	if($flag==1){
				
		echo '<div class="button"><input type="button" onclick="self.history.back()" value="入力画面に戻る"/></div>';
				
				
	}
	
	
	
	
	
	?>
    
    <form action="inq02.php" method="post">
        <table>
            <tr>
                <th><label for="namae">お名前<span>*必須</span></label></th>
                <td><input id="namae" type="text" name="namae" /></td>
            </tr>
            <tr>
                <th><label for="sex">性別</label></th>
                <td><input id="sex" type="radio" name="sex" value="男性" />男性<input type="radio" name="sex" value="女性" />女性</td>
            </tr>
            <tr>
                <th>生年月日</th>
                <td>
                    
                    <!--年作成-->
                    <select name="yyyy">
                        <option>年</option>
                        <?php  
                        
                        for($i=2012;$i>=1900;$i--){
                        echo "<option>$i</option>\n";/*\nはソース上で改行してくれます*/
                        }
                        
                        ?>
                        
                    </select>年
                    
                    <!--月作成-->
                    <select name="mm">
                        <option>月</option>
                        <?php
                        
                        for($i=1;$i<=12;$i++){
                        echo "<option>$i</option>\n";
                        }
						
                        ?>
                    </select>月
                    
                    <!--日作成-->
                    <select name="dd">
                        <option>日</option>
                        <?php
						
                        for($i=1;$i<=31;$i++){
                        echo "<option>$i</option>\n";
                        }
						
                        ?>
                    </select>日
                    
                </td>
            </tr>
            <tr>
                <th>どこでこのサイトを知りましたか?</th>
                <td>
                	<input id="book" name="book" type="checkbox" value="雑誌" /><label for="book">雑誌</label>
                    <input id="frend" name="frend" type="checkbox" value="知人の紹介" /><label for="frend">知人の紹介</label>
                	<input id="yahoo" name="yahoo" type="checkbox" value="ヤフー広告" /><label for="yahoo">ヤフー広告</label>
                </td>
            </tr>
            <tr>
                <th><label for="mail1">メールアドレス<span>*必須</span></label></th>
                <td><input id="mail1" name="mail1" type="text" /></td>
            </tr>
            <tr>
                <th><label for="mail2">メールアドレス確認用<span>*必須</span></label></th>
                <td><input id="mail2" name="mail2" type="text" /></td>
            </tr>
            <tr>
                <th><label for="naiyou">お問い合わせ内容<span>*必須</span></label></th>
                <td><textarea id="naiyou" name="naiyou" cols="*" rows="*"></textarea></td>
            </tr>
        </table>
        <div class="button">
        	<input type="submit" value="内容を確認する" /><input type="reset" value="内容をリセットする" />
        </div>
        <!--button_end -->
    </form>
    
</div>
<!--wrap_end-->

11~56行目まで追加しました。

言葉で書くと「もし()内の変数が未記入(0か空)ならpタグで入力してくださいと表示しエラー用の$flagを1にする」です。

そして50から56行目に書かれているのがエラー(未記入でflagが1の場合)の記述がされています。

言葉で書くと「もし$flagが1だったら入力画面に戻るボタンを表示する」です。

ここで53行目に注目してもらいたいのですが1つ目はtypeです。今回のtypeはbuttonです。これは何の意味も持たないただのボタンです。submitは送信してくれ、resetはリセットしてくれましたが、buttonは特に何もしてくれません。ですのでJAVASCRIPTを使って1つ前の動作に戻るというコードを書いています。それが

onclick=”self.history.back()”

です。

リンクで戻してもいいのですがリンクで戻すと未記入の状態で戻り上記スクリプトで戻すと入力された状態に戻るので、再度記入者が入力する手間がなくなります。

もう一つの注目も53行目です。echoで出力していますが、今回出力する内容にdivがありclassが適用されています。classは”(ダブルクオーテーション)を使用しています。以前PHPで文字列は”(ダブルクォーテーション)か'(シングルクォーテーション)で囲まないといけないといいましたが、この場合”(ダブルクォーテーション)を使用してしまうとどこが始まりの”(ダブルクォーテーション)でどこが終わりの”(ダブルクォーテーション)なのかわからなくなりエラーが出てしまいます。ですのでこのような場合は'(シングルクォーテーション)で一番外を囲んでください。





次はエラーが出た場合はtableが表示される必要はありませんので、エラーが出ている場合はtableが表示されず、すべて必須項目が入力されていればtableを表示し入力内容を確認してもらえるようにします。

一番最後のif文にelseを追加して表示させます。

言葉で説明すると「もし必須項目が未記入なら戻るボタンを出力し、そうでなければ(必須項目が全て入力されていれば)tableを出力するです。

なおtableは確認用で表示しますので、labelやinputなどの部品は必要でなくなったので、消去し代わりにtdに変数を置き入力してもらった内容を表示させます。

ボタンも送信ボタンと入力画面に戻るボタンに変更しformのactionをinq03.php(完了・メール送信ページはinq03.phpで作ります)に変更します。

ここでのポイントはformの部分からechoで出力しますが先ほど'(シングルクォーテーション)で一番外を囲んでください。と書きましたが変数を'(シングルクォーテーション)で囲むと変数名がそのまま出力されますので、何も囲まないか、”(ダブルクォーテーション)で囲む必要があります。

こんな感じです。
<div id="wrap">
    <h3>お問い合わせフォーム・エラーチェック・確認ページ</h3>
    <?PHP 

	//すべて受信
	extract($_POST);
	
	//エラー用FLAG未記入の場合1にする
	$flag=0;
	
	//名前チェック
	if(empty($namae)){
				
		echo '<p><span>必須</span>お名前を入力してください。</p><br />';
		$flag=1;
				
	}
	
	//メールアドレスチェック
	if(empty($mail1)){
				
		echo '<p><span>必須</span>メールアドレスを入力してください。</p><br />';
		$flag=1;
				
	}
	
	//メールアドレス確認用チェック
	if(empty($mail2)){
				
		echo '<p><span>必須</span>メールアドレス確認用を入力してください。</p><br />';
		$flag=1;
				
	}
	//メールアドレスとメールアドレス確認用が同じかチェック
	elseif($mail1!=$mail2){
				
		echo '<p><span>必須</span>メールアドレスが一致していません。</p><br />';
		$flag=1;
				
	}
	
	//お問い合わせ内容チェック
	if(empty($naiyou)){
				
		echo '<p><span>必須</span>お問い合わせ内容を入力してください。</p><br />';
		$flag=1;
				
	}
	
	//エラーの場合(上記で未記入の場合flagを1にしているので)すなわちflagが1の場合戻るボタンを作成
	if($flag==1){
				
		echo '<div class="button"><input type="button" onclick="self.history.back()" value="入力画面に戻る"/></div>';
				
				
	}
	//必須が全て入力されていれば
	else{
		
		echo '
	
    <form action="inq03.php" method="post">
        <table>
            <tr>
                <th>お名前</label></th>
                <td>'.$namae.'</td>
            </tr>
            <tr>
                <th>性別</th>
                <td>'.$sex.'</td>
            </tr>
            <tr>
                <th>生年月日</th>
                <td>'.$yyyy.'年'.$mm.'月'.$dd.'日</td>
            </tr>
            <tr>
                <th>どこでこのサイトを知りましたか?</th>
                <td>'."$book"."$frend"."$yahoo".'</td>
            </tr>
            <tr>
                <th>メールアドレス</th>
                <td>'.$mail1.'</td>
            </tr>
            <tr>
                <th>お問い合わせ内容</th>
                <td>'.$naiyou.'</td>
            </tr>
        </table>
        <div class="button">
        	<input type="submit" value="送信する" /><input type="button" onclick="self.history.back()" value="入力画面に戻る" />
        </div>
        <!--button_end -->
     </form>';
	}
		?>
   
    
</div>
これで確認ページは完成です。

といいたいところですがまだ完成していません。formのactionでinq03.php(次の完了送信ページ)を指定していますが、送るデータがありません。このページは受信はしていますが、送信用のデータがありませんので、送信用のデータを作らなければなりません。作り方はinputに受信したデータを変数で入れていきます。その時のinputのtypeは

hidden

です。

hiddenはvalueの値がデータとして運ばれるのでvalueに受信した変数をいれ送ります。見た目上表示されません。これを使って次のinq03.phpにデータを送ります。
<div id="wrap">
    <h3>お問い合わせフォーム・エラーチェック・確認ページ</h3>
    <?PHP 

	//すべて受信
	extract($_POST);
	
	//エラー用FLAG未記入の場合1にする
	$flag=0;
	
	//名前チェック
	if(empty($namae)){
				
		echo '<p><span>必須</span>お名前を入力してください。</p><br />';
		$flag=1;
				
	}
	
	//メールアドレスチェック
	if(empty($mail1)){
				
		echo '<p><span>必須</span>メールアドレスを入力してください。</p><br />';
		$flag=1;
				
	}
	
	//メールアドレス確認用チェック
	if(empty($mail2)){
				
		echo '<p><span>必須</span>メールアドレス確認用を入力してください。</p><br />';
		$flag=1;
				
	}
	//メールアドレスとメールアドレス確認用が同じかチェック
	elseif($mail1!=$mail2){
				
		echo '<p><span>必須</span>メールアドレスが一致していません。</p><br />';
		$flag=1;
				
	}
	
	//お問い合わせ内容チェック
	if(empty($naiyou)){
				
		echo '<p><span>必須</span>お問い合わせ内容を入力してください。</p><br />';
		$flag=1;
				
	}
	
	//エラーの場合(上記で未記入の場合flagを1にしているので)すなわちflagが1の場合戻るボタンを作成
	if($flag==1){
				
		echo '<div class="button"><input type="button" onclick="self.history.back()" value="入力画面に戻る"/></div>';
				
				
	}
	//必須が全て入力されていれば
	else{
		
		echo '
	
    <form action="inq03.php" method="post">
        <table>
            <tr>
                <th>お名前</label></th>
                <td>'.$namae.'</td>
            </tr>
            <tr>
                <th>性別</th>
                <td>'.$sex.'</td>
            </tr>
            <tr>
                <th>生年月日</th>
                <td>'.$yyyy.'年'.$mm.'月'.$dd.'日</td>
            </tr>
            <tr>
                <th>どこでこのサイトを知りましたか?</th>
                <td>'."$book"."$frend"."$yahoo".'</td>
            </tr>
            <tr>
                <th>メールアドレス</th>
                <td>'.$mail1.'</td>
            </tr>
            <tr>
                <th>お問い合わせ内容</th>
                <td>'.$naiyou.'</td>
            </tr>
        </table>
        <div class="button">
        	<input type="submit" value="送信する" /><input type="button" onclick="self.history.back()" value="入力画面に戻る" />
        </div>
        <!--button_end -->
		<input type="hidden" value="'.$namae.'" name="namae"/>
		<input type="hidden" value="'.$sex.'" name="sex"/>
		<input type="hidden" value="'.$yyyy.'" name="yyyy"/>
		<input type="hidden" value="'.$mm.'" name="mm"/>
		<input type="hidden" value="'.$dd.'" name="dd"/>
		<input type="hidden" value="'.$book.'" name="book"/>
		<input type="hidden" value="'.$frend.'" name="frend"/>
		<input type="hidden" value="'.$yahoo.'" name="yahoo"/>
		<input type="hidden" value="'.$mail1.'" name="mail1"/>
		<input type="hidden" value="'.$naiyou.'" name="naiyou"/>
    </form>';
		}
		?>
    </div>
<!--wrap_end-->

93~102行目まで追加しました。ここも変数を何も囲まないか、”(ダブルクォーテーション)で囲む必要があります。きおつけてください。

これでエラーチェック・確認ページの完成です。


4.完了・メール送信ページ作成

最後は完了・メール送信ページです。

自分のパソコンに入力してもらったデータを送り画面上にメールが無事送信されたらありがとうございましたのメッセージを出し、記入者に自動返信でメールを送ります。

まずは新しくinq003.phpを作成します。inq02.phpから送られてきたデータを受信し変数にセットします。

<div id="wrap">
    <h3>お問い合わせフォーム・完了・送信ページ</h3>
    <?PHP 
	
	//すべて受信
	extract($_POST);
	
	?>
</div><!--wrap_end -->

次に自分のメールアドレスと自分に送るメールのタイトルと本文を作成します。(アドレスは皆さんのものを入れてください)
<div id="wrap">
    <h3>お問い合わせフォーム・完了・送信ページ</h3>
    <?PHP 
	
	//すべて受信
	extract($_POST);
	
	//宛先作成自分のメールアドレスを$toに入れる
	$to="aaaa@aaaa";
	
	//タイトル作成
	$title="お問い合わせです。";
	
	//本文を作成
	$all="
お名前:$namae

性別:$sex

生年月日:$yyyy 年 $mm月  $dd 日

どこでこのサイトを知りましたか:$book $frend $yahoo

メールアドレス:$mail1


お問い合わせ内容:$naiyou";

/*	文字化けした方は下記のmb_convert_encodingの2行をコメントアウトしてください
	それでも文字化けする方は[mb_convert_encoding]で検索して調べてください
	
*/	$title=mb_convert_encoding($title,"EUC-JP","UTF-8");
	$all=mb_convert_encoding($all,"EUC-JP","UTF-8");

	?>
</div><!--wrap_end -->

これで準備はできました、後程メールを自分のパソコンに送って文字化けする方はmb_convert_encodingのところをコメントアウトしてください。文字コードの説明は割愛させていただきます。

あとは送信するだけです。メールの送信は

mb_send_mail()関数で送ります。

mb_send_mail()関数の式は

mb_send_mail(送信先,件名,内容,”From: 送信者”);

です。オプションがたくさんありますので興味のある方はmb_send_mailで検索してみてください。

ではif文と組み合わせてもしメール無事送れたらありがとうございましたのメッセージを表示し、送れなかった場合は送れませんでしたの文章を表示させます。

<div id="wrap">
    <h3>お問い合わせフォーム・完了・送信ページ</h3>
    <?PHP 
	
	//すべて受信
	extract($_POST);
	
	//宛先作成自分のメールアドレスを$toに入れる
	$to="aaaa@aaaa";
	
	//タイトル作成
	$title="お問い合わせです。";
	
	//本文を作成
	$all="
お名前:$namae

性別:$sex

生年月日:$yyyy 年 $mm 月 $dd 日

どこでこのサイトを知りましたか:$book $frend $yahoo

メールアドレス:$mail1


お問い合わせ内容:$naiyou";

	/*文字化けした方は下記のmb_convert_encodingの2行をコメントアウトしてください
	それでも文字化けする方は[mb_convert_encoding]で検索して調べてください
	
*/	$title=mb_convert_encoding($title,"EUC-JP","UTF-8");
	$all=mb_convert_encoding($all,"EUC-JP","UTF-8");

	//メール送信
	if(mb_send_mail($to,$title,$all,"FROM:$mail1")){
		
		echo "メールを送信いたしました。<br />
		このたびはお問い合わせいただき、誠にありがとうございました。<br />";
		
	}
	else{
		
		echo"メールの送信に失敗しました。<br />
		再度お問い合わせいただくか、お電話にてご連絡ください。<br /><br />";
		
	}
	
	
	?>
</div><!--wrap_end -->

最後に記入者に自動返信を送れば完成です。
<div id="wrap">
    <h3>お問い合わせフォーム・完了・送信ページ</h3>
    <?PHP 
	
	//すべて受信
	extract($_POST);
	
	//宛先作成自分のメールアドレスを$toに入れる
	$to="aaaa@aaaa";
	
	//タイトル作成
	$title="お問い合わせです。";
	
	//本文を作成
	$all="
お名前:$namae

性別:$sex

生年月日:$yyyy 年 $mm 月 $dd 日

どこでこのサイトを知りましたか:$book $frend $yahoo

メールアドレス:$mail1


お問い合わせ内容:$naiyou";

	/*文字化けした方は下記コメントアウトをとって文字コードを変更してください。
	それでも文字化けする方は[mb_convert_encoding]で検索して調べてください
	文字コードをUTF-8からEUC-JPに変更(文字化け防止)
	$title=mb_convert_encoding($title,"EUC-JP","UTF-8");
	$all=mb_convert_encoding($all,"EUC-JP","UTF-8");*/

	//メール送信
	if(mb_send_mail($to,$title,$all,"FROM:$mail1")){
		
		echo "メールを送信いたしました。<br />
		このたびはお問い合わせいただき、誠にありがとうございました。<br />";
		
	}
	else{
		
		echo"メールの送信に失敗しました。<br />
		再度お問い合わせいただくか、お電話にてご連絡ください。<br /><br />";
		
	}
	
	//返信用作成
	
	
	//タイトル作成
	$title2="お問い合わせありがとうございます。";
	
	//本文を作成
	$all2="このメールは自動送信です。
このたびはお問い合わせいただき、誠にありがとうございます。
今一度ご入力内容をご確認いただきますようよろしくお願いいたします。

お名前:$namae

性別:$sex

生年月日:$yyyy 年 $mm 月 $dd 日

どこでこのサイトを知りましたか:$book $frend $yahoo

メールアドレス:$mail1


お問い合わせ内容:$naiyou

担当者よりご連絡させていただきますので今しばらくお待ちいただきますようよろしくお願いいたします。";

	/*文字化けした方は下記のmb_convert_encodingの2行をコメントアウトしてください
	それでも文字化けする方は[mb_convert_encoding]で検索して調べてください
	
*/	$title2=mb_convert_encoding($title2,"EUC-JP","UTF-8");
	$all2=mb_convert_encoding($all2,"EUC-JP","UTF-8");
	//送信
	mb_send_mail($mail1,$title2,$all2,"FROM:$to");
	
	
	?>
</div><!--wrap_end -->

以上で完成です。長々と書きましたがお読みいただきありがとうございます。まだまだ勉強中で間違い等があると思いますので、ご指摘コメントもお待ちしております。

最後にホームページ上ではコードが見ずらいと思いますので完成見本をご用意しております。下記よりダウンロードしてください。

完成見本はこちら


このエントリーをはてなブックマークに追加

コメント欄

    サンゴの尻尾

    PHP勉強中です。
    初心者にはひじょうにわかりやすく
    助かります。
    フォーム作成の中で?という部分があったのでご質問させていただきます。
    inq02.phpにて
    名前やメールアドレスが未記入の場合
    フラッグを1にしますが
    if(empty($namae)){ …….
    emptyの次、($mail1)や($mail1)など
    変数になっている部分はどこで変数に
    指定しているのでしょうか?
    emptyを記述した時点でフォームの
    nameに記述したものが$…になるのでしょうか?拙い文章ですいません。
    お時間のあるときで構いません。
    ご回答いただければ助かります。
    よろしくお願いいたします。

    2012年9月5日5:20 AM

      Mrアルバイト

      サンゴの尻尾様コメントありがとうございます。

      ご質問の内容ですが、完成見本のinq02.phpで説明させていただくと

      //すべて受信
      extract($_POST);

      で変数にセットしています。

      extract($_POST);はnameに指定した名前と同じ変数に送られてきたデータをすべてセットしてくれます。

      通常

      $mail1=$_POST[“mail1″];

      のように変数にセットしていくのですが

      nameと同じ名前でよければ

      extract($_POST);だと複数書かずに1行書くだけで済みます。

      詳しくは

      お問い合わせフォームの作り方⑤に書いておりますので

      お時間のある時にご覧になってください。

      私もまだ勉強中ですので、説明不足なところがございますが、今後ともよろしくお願いいたします。

      2012年9月5日9:27 AM

    サンゴの尻尾

    お忙しい中ご回答いただきありがとうございます。
    少しづつですが頭の中のモヤが晴れていくようです。
    早速、フォームの作り方⑤を読み返してみます。
    今後ともよろしくお願いいたします。

    2012年9月5日5:11 PM

    まみ

    初めて質問させていただきます。
    大変分かりやすい説明で、とても感動しながら読んでいます。
    参考書やインターネットの情報を見よう見まねに作っているので、とても初歩的な質問ですみません。

    現在一からウェブサイトを作っている最中なのですが、このPHPファイルはPHPファイルとして最終的にもアップロードするのでしょうか?

    あらかた、HTMLページは作ってあり、CSSを適用させているのですが、このお問い合わせの部分をその作ったお問い合わせページの中に取り入れたいのです。

    各ページのTOPやFOOTERなどが共通のデザインになっているためです。

    しかしPHPをHTMLで保存するとコードの文字色も変わりますし、どうも様子が変そうです。

    このPHPファイルとHTMLファイル自体のかかわり方をどのようにすればいいのか教えていただきたいと思います。

    うまく表現できないのですが、普通のHTMLとCSSで枠組みを作ってあるページをお問い合わせとして使いたいと思っています。

    お忙しいと思いますが、是非アドバイスよろしくお願いいたします。

    2012年9月12日4:29 PM

      Mrアルバイト

      お問い合わせありがとうございます。

      <?PHP  ?>

      の間に書かれているPHPを使う場合は必ずファイル名の拡張子を.htmlなどでなく.phpに変更しなければなりません。

      投稿者様が作られているサイトにお問い合わせフォームのソースを取り入れられるなら、お問い合わせファームはPHPが使われているので、投稿者様がすでに作られているファイルが.htmlでしたら拡張子を.phpに変更しなければなりません。

      PHPを使っていないファイルは.phpに変更する必要はありません。

      ファイルの拡張子を.phpに変更するとローカルで確認できなくなるので(XAMPPなどをインストールすればOKですが)確認はサーバー上で行ってください。

      見当違いの回答でしたらすいません。

      今後ともご質問がありましたら、お待ちしております。

      2012年9月12日4:44 PM

    まみ

    迅速にご回答いただきましてありがとうございます。

    お問い合わせのページ以外は拡張子はHTMLのままでもいいのでしょうか?(一つのウェブサイトのHTMLとPHPが混在している状態)

    現在使用しているウェブサイトがあるため、この中にフォルダを作成してサーバー上で確認しているのですが、拡張子をPHPにすると拡張子の問題で表示できません、とエラーページで表示されます。

    ブラウザで確認するときに
    http://www.会社名.com/test/inq01.php
    としているのですが、間違っているのでしょうか?

    度々すみませんが、よろしくお願いいたします。

    2012年9月13日8:20 AM

      Mrアルバイト

      まみさま

      まず一つのウェブサイトにHTMLとPHPが混在してもかまいません。PHPを使用しているファイルのみ拡張子を.phpにすれば問題ないです。

      エラーページで表示される件ですが、確認方法は間違っていないと思います。

      エラーページが表示される原因は何点かありますので以下の点を確認してみてください。

      1)サーバーがPHPに対応していない。(使えない)
      お使いのサーバーがPHPに対応しているのか確認してみてください。対応していなければ、サーバーを新しくしなければなりません。基本的にはどのサーバーも対応していますが、無料のサーバーの場合対応していない場合があります。

      2)記述ミス。PHPやJAVASCRIPTなどの言語は基本的に一文字でも間違っていると表示されませんのでスペルチェックや;(セミコロン)の入れ忘れ}(かっこ)の入れ忘れなど確認してみてください。
      記述ミスの場合サーバーにもよると思いますが英語で記述が間違っているファイル名と行番号(line11のようなもの)が表示されますので、その出てきた行番号の記述をチェックしてみてください。(行番号の前の行に}がない場合もあるので前後の行番号もチェックしてください)

      以上になります。

      引き続きご質問があればお待ちしております。

      2012年9月13日10:29 AM

    nao

    わかりやすいです。ありがとうございます。

    2012年9月25日7:11 AM

      Mrアルバイト

      nao様

      ありがとうございます。

      今後もよろしくお願いします。

      2012年9月25日7:35 AM

    zenzen

    大変わかり易かったです。
    初めてPHPに取り組んでみました。
    今後も勉強していきたいと思います。

    2012年10月12日1:59 PM

      Mrアルバイト

      zenzen様

      今後もよろしくお願いいたします。

      2012年10月12日2:21 PM

    onnu

    大変参考になりました。為になる記事ですね。
    ありがとうございました。

    2012年11月1日11:28 PM

      Mrアルバイト

      onnu様

      お読みいただきありがとうございます。

      今後もよろしくお願いいたします。

      2012年11月2日9:44 AM

    バディ

    初めて質問させていただきます。
    Webサイトを制作しているのですが、「生年月日」の箇所が、受信メールと相手のメールには西暦しか表示されません。
    『生年月日:1969 年 』というようになります。
    月と日も表示を『生年月日:1969 年 6 月 19 日』と言うように、メールでの表示にしたいのですがどの様にすればよいのでしょうか?

    よろしくお願いいたします。

    2012年11月15日5:43 PM

      Mrアルバイト

      バディ様

      お読みいただきありがとうございます。

      生年月日の表示ですがこちらのミスでした。

      inq03.phpを修正しましたので完成見本を再度ダウンロードしてください。

      内容としましてはinq03.phpの月と日の部分の

      変数と文字が隣り合っていましたので修正させていただきました

      修正前

      $mm月

      修正後($mmと月の間に半角スペースを入れました)

      $mm 月

      しかも

      $mm年になっていました。すいません。

      ご確認お願いします。

      よろしければきちんと表示されたかご連絡いただければと思います。

      今後ともよろしくお願いいたします

      2012年11月15日5:59 PM

    バディ

    Mrアルバイトさん
    連絡が遅れてすみません
    生年月日の表示の件ありがとうございました。
    無事に表示しました。

    こちらのメールフォームで、入力されたデータをcsvファイルに添付したいのですが、ご指導頂けますか。
    よろしくお願いします。

    2012年11月29日10:22 AM

      Mrアルバイト

      バディ様

      表示されてよかったです。

      csvファイルに添付とのことですが説明するのにかなりのボリュームが必要になりますので

      今後機会がありましたら、投稿させていただきます。

      今後ともよろしくお願いいたします

      2012年11月29日1:24 PM

    バディ

    Mrアルバイト

    自動配信メールを使わせてもらってます。
    ありがとうございます。

    ユーザーが、間違ったメールアドレス(存在しないメールアドレス)を入力したらエラー表示をさせたいのですが、どのようにすれば良いのでしょうか?

    自動配信メールで、間違ったメールアドレスは、こちらの方のメールボックスにメールは来るのですが…

    2012年12月29日9:59 AM

      Mrアルバイト

      遅くなりました。

      ユーザーが存在しなメールアドレスを入力したらエラー表示をさせる方法は、わかりません。

      対象法としましては、確認用メールアドレスのところにコピーしないでください。等の注意書きを入れるなどがあると思います。

      お力になれずすいません。

      2013年1月24日1:14 PM

    たけうま

    お世話になってます。

    今回ご教示いただいた完成見本を参考に私も問い合わせフォームを作っているのですが、チェックボックスも必須入力にしたい場合inq02.phpに記載するif構文はテキストボックスの時のような
    if(empty($namae)){

    echo ‘必須お名前を入力してください。’.”\n”;
    $flag=1;
    ではダメですよね?いろいろ検索して自分なりにあてはめてみてもうまくいきません(泣)
    どのような記載をすればいいのかご教示いただきたく存じます。お願いいたします。

    2013年1月24日1:02 PM

      Mrアルバイト

      たけうま様

      ご覧いただきありがとうございます。

      チェックボックスを必須にする手段の一つとして下記の手段があります。

      例として生年月日を選択してもらうのを必須にした場合は

      入力画面を

      必須
      <select name="seinengapi">
        <option>-選択-</option>
        <option>1985年生まれ/option>
        <option>1986年生まれ</option>
        <option>1987年生まれ</option>
      </select>
      

      のように記述し
      必須
      上記のように表示されます

      何も選んでいなかったら-選択-が表示されている状態

      確認画面のエラーチェックに

       //生年月日のチェック
                      if($seinengapi=="-選択-"){
                          
                          echo '<p class="error">*必須*生年月日を選択してください。</p>';
                          $flag=1;
                          
                      }
      

      などのように記述すればOKです。

      上記を日本語で説明すると

      もし$seinengapiが-選択-と等しかったら(さわっていなければ)生年月日を選択してください。を出力するという感じです。

      ご確認よろしくお願いします。

      2013年1月24日1:22 PM

    たけうま

    大変迅速なお返事&ご指導ありがとうございます!
    これはセレクトボックスを必須にしたパターンですね?これも知りたかったので大変ありがたいです。
    では先ほど私がお尋ねしましたチェックボックス(今回の完成見本ですと「どこでこのサイトを知りましたか?」の質問の返事を必須にしたい場合)どのようなif構文にすればよろしいのでしょうか?
    たびたびになり申し訳ありませんがよろしくご教示いただければ幸いです。よろしくお願い申し上げます。

    2013年1月24日2:27 PM

      Mrアルバイト

      すいません。
      勘違いしていました。

      サンプルの例で行くと

                  //どこで知ったかチェック
      			if(empty($book) and empty($frend) and empty($yahoo)){
      				
      				echo '<p class="error">どこでこのサイトを知りましたかにチェックを入れてください。</p>';
      				$flag=1;
      				
      			}
      			

      でOKだと思います。

      日本語で言うともし$bookがからでなおかつ$frendがからでなおかつ$yahooがからの場合にのみ

      どこでこのサイトを知りましたかにチェックを入れてください。

      を出力するという感じです。

      ご確認お願いします。

      動作チェックしていないので、動くかどうかのご返信お待ちしております。

      2013年1月24日4:48 PM

    たけうま

    Mrアルバイト様

    早速のご指導ありがとうございます。
    実践したところ、理想のエラーメッセージが出せる状態になりました。本当にありがとうございます。

    ところで同じチェックボックスについて質問がございます。
    完成見本のinq01でチェックボックスについて、「雑誌」「知人の紹介」「ヤフー広告」のすべてにチェックを入れると内容確認画面(inq02)において何もエラーメッセージは出ないのですが、「雑誌」だけなどいずれか一個にチェックを入れて内容確認画面に移ると

    Notice: Undefined variable: frend in C:\xampp\htdocs\test\inq02.php on line 88

    Notice: Undefined variable: yahoo in C:\xampp\htdocs\test\inq02.php on line 88

    Notice: Undefined variable: frend in C:\xampp\htdocs\test\inq02.php on line 109

    Notice: Undefined variable: yahoo in C:\xampp\htdocs\test\inq02.php on line 110

    というような表示が出てしまいます。これを消すにはどのような表記を各々の箇所に加えればよろしいのでしょうか?
    改めてご教示いただきたく存じます。本来ならこれを最初に聞くべきなのかもしれませんが…みたびすみません。ご指導可能であればよろしくお願いいたします。

    2013年1月24日7:00 PM

      Mrアルバイト

      たけうま様

      すいません。

      ちょっとファイルを見てみないとわからない状態です。

      一度ローカルではなくサーバーに仮にアップして確認されてみてはどうでしょうか。

      お力に成れずすいません。

      2013年1月24日8:43 PM

    たけうま

    了解しました。まだ当面ローカルで作りこんでからアップする予定なので確認は少し先にないそうですが、また先々に状況わかればご報告いたします。先の2点は明快かつ的確なご指導あいがとうございました!!貴社様のわかいやすいブログに感謝して今後も頑張ってみます!

    2013年1月25日9:00 AM

    ルイージ

    こちらのサイトは大変勉強になり、ありがとうございます。質問ですが、サンプルのinq03.phpで送信結果の文字化けがなかなか直らず、色々調べた結果、<?PHP のすぐ下に

    mb_language('ja');
    mb_internal_encoding('utf-8');

    を入れ
    mb_convert_encodingは全てコメントアウトしたら良くなりましたが、これで何か問題はあるのでしょうか?

    2013年1月25日11:03 PM

      Mrアルバイト

      ルイージ様

      ご覧いただきありがとうございます。

      正直まだ勉強中ですので、先輩に聞いております。

      私的には、文字化けが治ればOKかなと思います。

      お力に成れずすいません。

      2013年1月26日3:02 PM

    たけうま

    久しぶりにコメントいたします。ホームページのコンテンツが完成し、ウェブ上にアップロードしました。お問い合わせフォームも問題なく表示されて何より…ところがそこに試しに入力をして送信すると、届いたメールがすべて文字化けしてしまっていました。参考にさせていただいた文字コードがutf-8をご使用になられている関係でこれが起こっているのかなという想像はできますが、ではどう解決すればいいのかがまったくわかりません。なにとぞ解決策をご教授いただきたく存じます。よろしくお願い申し上げます。

    2013年3月13日8:42 PM

      Mrアルバイト

      たけうま様

      文字化けの件ですがサーバー環境によってかわってくると思いますので、何点か試していただきたいことがあります。

      まず

      /*文字化けした方は下記のmb_convert_encodingの2行をコメントアウトしてください
      	それでも文字化けする方は[mb_convert_encoding]で検索して調べてください
      	
      */	$title=mb_convert_encoding($title,"EUC-JP","UTF-8");
      	$all=mb_convert_encoding($all,"EUC-JP","UTF-8");
      
      
      

      の部分をコメントアウトしてください。

      /*文字化けした方は下記のmb_convert_encodingの2行をコメントアウトしてください
      	それでも文字化けする方は[mb_convert_encoding]で検索して調べてください
      	
      */	//$title=mb_convert_encoding($title,"EUC-JP","UTF-8");
      	//$all=mb_convert_encoding($all,"EUC-JP","UTF-8");
      
      
      

      それで治らないようでしたつぎは

      //すべて受信
      	extract($_POST);
      
      
      

      の上に下記を追加してください

      			//サーバーのモジコード変更
      			mb_language("Ja");
      			mb_internal_encoding("UTF-8");
      
      
      

      こんな感じになります

      			//サーバーのモジコード変更
      			mb_language("Ja");
      			mb_internal_encoding("UTF-8");
      			
      			//すべて受信
      			extract($_POST);
      
      
      

      これで治らなかったら一番初めのmb_convert_encodingの部分を再度表示させてみてください。

      以上
      3パターンを試していただければと思います。

      よろしくおねがいいたします。

      2013年3月14日5:36 AM

    たけうま

    ありがとうございます。一個目のご指示で解決しました。私は本当に初心者なので「コメントアウト」の意味すら分からず、検索してもご指示いただいたような入力にはたどりつけず困り果てていました。まだ画像とびなど一部ありますが、ついにサイトは完成しました。ホームページビルダーなどのソフトにも頼らず、頼ったのはこのサイトと無料素材屋さん、それからサクラエディタとFFFTPという無料ソフトだけでこれだけのものを作ることができました。お暇あれば一度見てやってください。本当に本当にありがとうございます。私どもには一応業者が作ったホームページがあるのですがこれからはその業者よりも検索ランクが上に行くようにSEO対策を勉強して頑張ってみます。本当にありがとうございました。

    2013年3月14日9:15 AM

      Mrアルバイト

      たけうま様

      無事サイトが完成できてなによりです。ホームページも見させていただきました。大変きれいに作られていると感じました。

      少しおせっかいになると思いますが、下層ページ(トップページ以外のページ)から左上のトップボタンをクリックして

      トップに戻る場合リンクが大文字のIndex.htmlになっておりエラーが出ておりますので、

      Iを小文字にしたindex.htmlにご修正された方が良いかと思います。

      以上出過ぎたお言葉でしたが、今後ともよろしくお願いいたします。

      2013年3月14日9:30 AM

    たけうま

    ご指摘ありがとうございます。早速改訂しました☆今はとにかく仕事のかたわら長々やってきた作業がひとつの形になってむせび泣いております(笑)ただSEO対策という壁はまたこれが高そうなので一息ついたら頑張っていきます。ありがとうございました。またそれらについても分かりやすい解説期待しています。

    2013年3月14日1:07 PM

    案山子亭

    問い合わせフォームの作成にまるまる参考にさせて戴きました、ありがとうございます。
    私のところでも文字化けしてしまい、
    $all = mb_convert_encoding($all,”EUC-JP”,”auto”);
    で解決しました。さくらサーバーはこれでいけると思いますので、どなたかの参考になれば。

    2013年4月13日12:02 AM

      Mrアルバイト

      案山子亭様

      コメントありがとうございます。

      さくらでの使いかたもご指導いただきありがとうございました。

      2013年4月17日7:48 AM

    HTML勉強中

    初めて質問させていただきます。
    大変分かりやすい説明に加え、完成見本も載せていただけているので、初学者の立場に立たれているなと、感激しております。

    そこでひとつ質問なのですが。
    「完了・メール送信ページ」に、自分のアドレスを載せる箇所があります。
    アドレスをそのまま載せるのはやめたほうが良いと聞いた事があるので「エンティティ表記(10進数)」へ変換して記載したところ、「メールの送信に失敗しました。」としか出なかったので、恐るおそる無変換のアドレスで記載したところ、送信できました。
    一応確認だけして、いまはFTPから削除はしているのですが…
    PHPはエンティティ表記は使えないのでしょうか?
    それともFTPでの接続がもたついてのことだったのでしょうか?
    ページのソースを見たところ、PHPだからか、アドレスがどこにも見当たらなかったので、PHPでは「メールアドレス収集ロボット」に拾われないと認識していて良いのでしょうか?
    長くなってしまいましたがお答えいただけるとありがたいです。

    2013年4月15日6:55 PM

      Mrアルバイト

      HTML勉強中様

      ブログを読んでいただきありがとうございます。

      すいません。勉強中で「エンティティ表記(10進数)」での変換についてわかりかねます。

      また、PHPで記述されている部分はechoやprintで書き出さなとソース上に表示されません。しかし「メールアドレス収集ロボット」に拾われるか拾われないかはわかりません・・・。

      まったくお役に立てずすいません。わかりましたら、投稿させていただきます。

      今後ともよろしくお願いいたします。

      2013年4月17日7:54 AM

    HTML勉強中

    お忙しい中ご回答いただきありがとうございます。
    ややこしい質問で申し訳ありませんでした。
    ジェイクエリが動かない?競合?等など。いろいろ分からないことだらけなので、ちょくちょくサイトを覗かせていただこうと思っております。
    Mrアルバイト様の、ますますのご活躍を期待しております。

    2013年4月17日6:23 PM

      Mrアルバイト

      HTML勉強中様

      お役にたてずすみませんでした。

      今後ともよろしくお願いいたします。

      2013年4月17日6:34 PM

    HTML勉強中

    2回目の質問になります。
    以前、formよりメールが送信でき、迷惑メールフォルダではありましたが、自分のアドレスに送られてきたことを確認して、FTPで削除しました。
    次の日に内容を少し触って再度FTPにUPしたのですが、inq01、inq02はうまく切り替わるのですが、inq03だけ、メールの送信に失敗してしまい、それ以来成功しなくなりました。
    何かおかしいところを触ったかなと思い見比べたり、また最初からしたり、書籍やらWEBで調べはしたのですが、分からずじまいで本日に至ります。
    inq03.phpの
    「//宛先作成自分のメールアドレスを$toに入れる $to=”aaaa@aaaa”;」
    の所だけ、アドレスを書き換えたらよかったと思うのですが、何か忘れている所があるでしょうか?
    まだ作りかけですが、サイトの「問い合わせ」を一度見ていただけないでしょうか?
    関係あるかは分かりませんが、一応サーバーはサイトミックスで、アドレスは上記のものになります。
    何卒、よろしくお願いいたします。

    2013年4月20日9:13 PM

      Mrアルバイト

      HTML勉強中様

      ホームページ見させていただきました。

      かっこいいホームページですね。

      「//宛先作成自分のメールアドレスを$toに入れる $to=”aaaa@aaaa”;」

      の部分だけ書き換えれば大丈夫と思います。

      PHP事態にエラーは出ていないので、メール環境の問題かもしれません。

      一度成功されているので、がんばってください。

      適切なアドバイスできずすいません。

      2013年4月21日5:36 PM

    HTML勉強中

    何度も、並びにお褒めの言葉ありがとうございます。
    おかげさまで、PHPに問題がないことが分かりましたので、一歩前進いたしました。
    先ほど、分厚い本も買ってまいりましたので、Mrアルバイト様の言葉を励みにがんばってみます。

    2013年4月21日7:27 PM

    yama

    はじめまして。
    大変わかりやすく、参考にさせていただきました。
    質問させていただきたいのですが、
    自動返信メールの「お名前」に「様」を表示させたいのですが、どのように記述すればよいでしょうか・・?
    いろいろ試してみたのですが、うまく表示されませんでした。。
    ご教示いただけますと幸いです。
    何卒よろしくお願いいたします。

    2013年5月24日9:35 PM

      Mrアルバイト

      yama様

      コメントありがとうございます。

      「お名前」に「様」を付ける方法ですが

      inq003.phpのお名前:$namaeのところを

      お名前:{$namae}様

      にすればOKです。{}で囲ってやればOKです。

      試してみてください。

      2013年5月25日8:18 AM

    yama

    早速のご返信ありがとうございます!
    無事できました!
    本当にありがとうございました!

    2013年5月27日12:19 PM

    daisuke

    初めまして。
    初めてのメールフォームで苦戦中ですがこのサイトのおかげで大分進んでます。

    そこで質問なんですが、
    メールを送信したときに、
    gmailやauのメールだとちゃんとエンドユーザーへの返信も届くのですが、会社のアドレスだと届きません。
    どんな原因が考えられますでしょうか。

    ご教授いただけると大変ありがたく思います。よろしくお願いします。

    2013年7月16日9:31 PM

      Mrアルバイト

      daisuke様 

      コメントありがとうございます。 

      会社のアドレスに自動返信が届かないとのことですが 

      正直原因が分かりません。

      アドレスの入力ミスがないか再度確認していただければと思います。    

      お役にたてずすいません。

      2013年7月17日5:22 AM

    daisuke

    わかりました!ありがとうございます!
    もう一度事細かく見てみます。

    2013年7月17日10:13 AM

    松ちゃん

    はじめまして、お陰で利用させていただきました。ありがとうございます。
    ところで、自動返信ですが、携帯やスマートフォンには配信されないのでしょうか?

    2014年2月4日1:40 PM

      Mrアルバイト

      松ちゃんさん

      コメントありがとうございます。

      スマートフォンには返信できます。

      2014年2月4日1:50 PM

    しゅ

    勉強しました!
    ありがとうございます!

    2014年2月19日4:34 PM

      Mrアルバイト

      しゅ様

      コメントありがとうございます。

      今後ともよろしくお願いいたします。

      2014年2月19日4:39 PM

    ガンダム

    説明がわかりやすくフォーム作成の参考にさせて頂きました
    説明を基に自社のホームページの中にフォームページを組み込んで見ました。
    正しく記述できていると思うのですが、、テストサイトで試したところ、入力ページにメールアドレス(メールアドレスmail1、確認用メールアドレスmail2)をきちんと入力しているのに確認ページに移動した時に「メールアドレスを入力してください」、「メールアドレスを入力してください」と表示されます。
    どうやら入力したメールアドレスが認識されいていないようです。
    nameの参照はそれぞれmail1、mail2となっており間違いないと思います。
    考えられる原因は何か有りますでしょうか?
    よろしくお願いいたします。

    2014年5月29日5:53 PM

      Mrアルバイト

      ガンダム様

      当ブログを見ていただきありがとうございます。

      原因・・わかりません。

      一度ページ上部にあるサンプルをダウンロードしてコピーしてみてはいかがでしょうか?

      また、テストサイトというのはサーバーにアップロードして確認されているのでしょうか?

      アップロードされていないのでしたら一度アップロードされて確認されてみてください。

      明確な返答ができませんでしたが、ご確認よろしくお願いいたします。

      2014年5月29日6:36 PM

    ガンダム

    ご回答有難うございます。
    なぜか今日確認したらメールアドレスは正常に認識されました。
    テストは実際のサーバーにアップロードして行いました。
    今度は別の問題が発生しまして、確認ページに進むと入力内容の表示が文字化けしてしまいます。
    続けて送信ボタンを押すとメールは自分と問い合わせ先に返信がちゃんと送信されますがメールはタイトル・本文ともに文字化けしてしまいます。
    mb_convert_encodingの部分をコメントアウトしたのですが、直りませんでした。
    どうしたら良いでしょうか?

    2014年5月30日9:23 AM

      Mrアルバイト

      ガンダム様

      mb_convert_encodingの部分は削除していただき

      extract($_POST);の下に
      mb_language(“Ja”);
      mb_internal_encoding(“UTF-8″);

      を追加してください。

      ご確認よろしくお願い足します

      2014年5月30日9:47 AM

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

TRACKBACK_URL