問合せフォ-ム

問合せフォ-ム後処理 PHP ファイル
XAMPP 用
quest_data_mail.php

XAMPP にあげる時はこちらのファイルを使用してください。
このファイルはレンタルサ-バ用ではありません。


63 Pear Villageに戻る

<?php	
session_start();
header(
'Content-type:text/html;charset=utf-8'
);
// この宣言がないと日本語表示が文字化け
if(empty($_SESSION['phrase'])){
  //直接アクセスした時
  header("Location: quest_st.php");
  exit;
}
if(isset($_POST['check'])){
  $_SESSION['check'] =
   $_POST['check'];
}
if($_SESSION['phrase']
  != $_SESSION['check']){
  header
  ("Location: quest_st.php");
  exit;
}	
require_once 'MDB2.php';
/*
$_SESSION デ-タはすでに form で、
 htmlspecialchars 関数を適用され
「HTMLの特殊文字」をエスケープして
 います。
 このあと、prepare メソッドを実行し、
「SQLの特殊文字」をエスケープします。
*/ 
// データベース info 情報の設定
$sqltype = 'mysql';
$user = 'root';
$server = 'localhost';
$password = '';
// 接続するデータベース名
$dbname = 'phplibs';
/*
レンタルサ-バを使用するときは
$user = '***';
$server = '***';
$password = '***';
$dbname = '****_phplibs';
の値は適宜変更してください。
*/
if(empty($_SESSION["addre"])){
  $_SESSION["addre"] = " ";
}
$data = array
 ($_SESSION["uname"],
  $_SESSION["email"],
  $_SESSION["postnum"],
  $_SESSION["addre"],
  $_SESSION["come"]);
// プレ-スフォルダデ-タの
// タイプ配列設定
$types = array
 ('text', 'text', 'integer',
  'text', 'text');

// データベースに接続
$mdb2 = MDB2::connect
 ($sqltype
 .'://'.$user
 .':'.$password
 .'@'.$server.'/'
 .$dbname
 .'?charset=utf8');
// 接続チェック
if(MDB2::isError($mdb2))
  die("接続に失敗しました");

// SQL文作成
$sql = "INSERT INTO info_q
 (uname, email, postnum, addre, come)
  VALUES(?, ?, ?, ?, ?)";
/*
 テ-ブル名 info のカラム
 uname,email,postnum,addre,come
 に、
 $_POST["uname"], $_POST["email"],
 $_POST["postnum"], $_POST["addre"],
 $_POST["come"]
 を挿入予定
*/
// prepare メソッド実行   
$sth = $mdb2->prepare
 ($sql, $types, MDB2_PREPARE_MANIP);
if (MDB2::isError($sth)) die
 ("prepare エラ-: "
 . $sth->getMessage());

$result = $sth->execute($data);

// $result = $mdb2->exec($sql);
// execメソッドを実施し、
// SQL文$sqlを実行します。 
if (MDB2::isError($result)){
// エラーメッセージ出力
  echo
   "データを挿入できませんでした
    <br>エラー:"
   .$result->getMessage();
}else{
  echo
   "問合せ台帳に<br>"
   .$_SESSION['uname'].
   "&nbsp;さん<br>
    のお問合せの内容を挿入しました<br>";
}
// データベース接続の解除
$mdb2->disconnect();

// info 登録 END --- mail 送信 START

mb_language('ja');
mb_internal_encoding("UTF-8");
/*
 これがないと
 mb_encode_mimeheader('この部分');
 が文字化けする
*/
require_once 'Mail.php';
require_once 'Mail/mime.php';
// ここからxampp専用
$params=array(
  'host' => 'smtp.gmail.com',
  'port' => 587,
  'auth' => TRUE,
  'username' => '***********',
  'password' => '*********');
/*
  ここまでxampp専用
  レンタルサ-バの時は、
  $params['sendmail_path']
   = '/usr/sbin/sendmail';
  $params['sendmail_args']
   = ''; //この行は必須
  とする
  
【ポイント】
 Bcc、もしくはCcを設定したい場合、
 $headers['Bcc']とか$headers['Cc']
 だけでは header に書かれるだけで、
 実際にはメールは送信されない。
 最後の方にある
 $m->send($recip, $headers, $body);
 で指定される
「$recip」にアドレスを入れることで正常に
 送信される。
 $recip =
 "noge_to@nog.net, noge_bcc@nog.net";
 Bccを *****@gmail.com とすると
*/
$recip =
"*****@gmail.com,".$_SESSION["email"];
$headers=array(
 'From' =>
  mb_encode_mimeheader('63Pearより'),
/*	
 'From' => mb_encode_mimeheader
  ('63Pearより')
  '<info-1@63pear.devel.jp>',
 'From' =>
  '<info-1@63pear.dedel.jp>',
 のように記載してもGmailアドレスになる。
*/
  'To' => '<'.$_SESSION["email"].'>',
  'Subject' =>
   mb_encode_mimeheader(
   '問合せ確認'));
$html_params=array(
  'html_encoding'=>'base64',
  'text_charset'=>'ISO-2022-JP',
  'head_charset'=>'ISO-2022-JP',
  'html_charset'=>'ISO-2022-JP');

$mime = new Mail_mime();

// HTMLパ-ト作成
$html = <<<HTML
<html>
<body background="foot_bg.gif">
<h3>【Webサイトからのメール】</h3>
このメ-ルは、Pear HTML_Mail を使用して
送信しています。
<p style =
"color:red; background:yellow">
送信には gmail を利用しました。
</p>
{$_SESSION['uname']} さん<br>
下記内容のお問合せを受領しました。<br><br>
{$_SESSION['come1']}<br><br>
<a href = 
"http://move.devel.jp/index.php">
こちらもご覧ください。</a>
<br><br>
以上です。<br><br>
</body></html>
HTML;

$cont = mb_convert_encoding
 ($html,'ISO-2022-JP','auto'); 
$mime->setHTMLBody($cont); 
$mime->addHTMLImage
 ('./img/foot_bg.gif');
$body = $mime->get($html_params);
$headers = $mime->headers($headers);

$m = Mail::factory('smtp', $params);
/*
 レンタルサ-バの時は、
 $m =
 Mail::factory('sendmail', $params);
*/
$m->send($recip, $headers, $body);
if (PEAR::isError($m)) {
  die($m->getMessage());
  }	
echo
 '<br>問合せ受領メ-ルを送信しました<br>
  時折、迷惑メ-ルフォルダに迷い込むケ-ス
  があるようです<br>
  ご確認ください
  <br><br>';
session_destroy();
?>