$v) {
$count[$k] = 0;
}
$log_file = '/home/httpd/client_form/premama/logs/num.csv';
$fp = fopen($log_file, 'r');
while ($row = fgetcsv($fp)) {
$count[$row[0]] += $row[1];
}
foreach ($count AS $k => $v) {
if ($limit <= $v) unset($date[$k]);
}
$log_dir = '/home/httpd/client_form/premama/logs/';
$read_file = '/home/httpd/client_form/premama/mail/mail.txt';
$template_dir = 'client_form/premama/';
$template_file = 'index.tpl';
$from = 'info@tochinavi.net';
$from_name = '栃ナビ!';
/* PHPエラー表示設定 */
ini_set( "display_errors", LOCOMILL_DISPLAY_ERROR );
/* Locomillクラスインスタンス生成 */
if( $err_str === "" )
{
try
{
$locomill = new Locomill( $_COOKIE );
}
catch( LocomillError $e )
{
$err_str .= $e->get_exception();
}
}
/* 出力準備 */
$smarty = new SmartyEx();
$smarty->prepare();
/* Areaクラスインスタンス生成 */
if( $err_str === "" )
{
try
{
$area = new Area( $locomill->get_db3() );
$temp = $area->get_data_array('area_master_03_tbl', true);
foreach ($temp AS $v) $area_03_array[$v['id']] = $v['name'];
}
catch( AreaError $e)
{
$err_str .= $e->get_exception();
}
}
/* Validateクラスインスタンス生成 */
if( $err_str === "" )
{
try
{
$validate = new Validate();
}
catch( ValidateError $e )
{
$err_str .= $e->get_exception();
}
}
/* 回答制限 */
if( $err_str === "" )
{
if (empty($date)) $err_str = '定員を超えたため、応募を締切らせていただきました。';
}
/* Request値の検証 */
if( $err_str === "" )
{
if (!empty($_POST)) $rq = $_POST;
if (!empty($rq['action'])) {
$action = $rq['action'];
unset($rq['action']);
}
if (isset($_GET['thanks'])) {
$template_file = 'thanks.tpl';
$smarty->display( $template_dir . $template_file );
exit;
}
elseif ($action == 'check' || $action == 'return' || $action == 'exec')
{
if (!$validate->__range($rq['name'], 1, 255)) {
$errmsg[] = "・氏名の入力が正しくありません。";
}
if (!$validate->__tel(sprintf('%s-%s-%s', $rq['tel1'], $rq['tel2'], $rq['tel3']))) {
$errmsg[] = "・携帯電話番号の入力が正しくありません。";
}
if (!$validate->__email($rq['email'])) {
$errmsg[] = "・連絡用メールアドレスの入力が正しくありません。";
} elseif ($rq['email'] != $rq['email_check']) {
$errmsg[] = "・連絡用メールアドレスが確認用と異なります。";
}
if (!array_key_exists($rq['num1'], $num1)) {
$errmsg[] = "・受講するプレママの人数の選択が正しくありません。";
}
if (!array_key_exists($rq['num2'], $num2)) {
$errmsg[] = "・参加人数(大人)の選択が正しくありません。";
}
if (!array_key_exists($rq['num3'], $num3)) {
$errmsg[] = "・参加人数(子供)の選択が正しくありません。";
}
if (!array_key_exists($rq['date'], $date)) {
$errmsg[] = "・誠に申し訳ございませんが、ご指定の日時は定員に達しました。";
} elseif ($limit < ($count[$rq['date']] + $rq['num1'])) {
$errmsg[] = "・誠に申し訳ございませんが、ご指定の日時は定員オーバーです。";
}
if (0 < $rq['num1'])
{
for ($i=1;$i<=count($num1);$i++)
{
if ($i <= $rq['num1'])
{
if (!$validate->__range($rq['name'.$i], 1, 255)) {
$errmsg[] = "・受講者名".$i."の氏名の入力が正しくありません。";
}
if (!array_key_exists($rq['age'.$i], $age)) {
$errmsg[] = "・受講者名".$i."の年齢の選択が正しくありません。";
}
if (!array_key_exists($rq['area'.$i], $area_03_array)) {
$errmsg[] = "・受講者名".$i."のお住まいのエリアの選択が正しくありません。";
}
if (!array_key_exists($rq['plan'.$i], $plan)) {
$errmsg[] = "・受講者名".$i."の予定日の選択が正しくありません。";
}
if (!array_key_exists($rq['present'.$i], $present)) {
$errmsg[] = "・受講者名".$i."の洗える授乳クッションの選択が正しくありません。";
}
}
else
{
$rq['name'.$i] = '';
$rq['age'.$i] = '';
$rq['area'.$i] = '';
$rq['plan'.$i] = '';
$rq['present'.$i] = '';
}
}
}
if (empty($rq['media'])) {
// $errmsg[] = "・イベントを知ったきっかけの選択が正しくありません。";
}
if (empty($errmsg))
{
if( $action == 'check' ) {
$template_file = 'confirm.tpl';
} elseif ($action == 'return') {
} elseif ($action == 'exec') {
// ログ登録
$log_file = 'logs.csv';
$log = array();
$log[] = date('Y/m/d H:i');
$log[] = $rq['name'];
$log[] = sprintf('%s-%s-%s', $rq['tel1'], $rq['tel2'], $rq['tel3']);
$log[] = $rq['email'];
$log[] = $num1[$rq['num1']];
$log[] = $num2[$rq['num2']];
$log[] = $num3[$rq['num3']];
$log[] = $date[$rq['date']];
for ($i=1;$i<=count($num1);$i++)
{
$log[] = $rq['name'.$i];
$log[] = $age[$rq['age'.$i]];
$log[] = $area_03_array[$rq['area'.$i]];
$log[] = $plan[$rq['plan'.$i]];
$log[] = $present[$rq['present'.$i]];
}
$temp = array();
if (!empty($rq['media'])) {
foreach ($rq['media'] AS $v) {
$temp[] = $media[$v];
}
}
$log[] = implode("\n", $temp);
foreach ($log AS $k => $v) {
$log[$k] = '"' . $v . '"';
}
$csv = (!empty($log)) ? join(',', $log) . "\n":'';
$csv = mb_convert_encoding($csv, 'SJIS-win', mb_detect_encoding($csv));
$log_path = $log_dir . $log_file;
if (is_file($log_path) && is_writable($log_path)) {
$fp = fopen($log_path, 'a+');
$result = fputs($fp,$csv);
fclose($fp);
}
$log_file = 'num.csv';
$log = array();
$log[] = $rq['date'];
$log[] = $rq['num1'];
foreach ($log AS $k => $v) {
$log[$k] = '"' . $v . '"';
}
$csv = (!empty($log)) ? join(',', $log) . "\n":'';
$csv = mb_convert_encoding($csv, 'SJIS-win', mb_detect_encoding($csv));
$log_path = $log_dir . $log_file;
if (is_file($log_path) && is_writable($log_path)) {
$fp = fopen($log_path, 'a+');
$result = fputs($fp,$csv);
fclose($fp);
}
// サンクスメール
$send_email = htmlspecialchars($rq['email']);
if (file_exists($read_file))
{
$send_data = file($read_file);
if (!empty($send_data))
{
$member = '';
for ($i=1;$i<=$rq['num1'];$i++)
{
$member .= '受講者'.$i."\n";
$member .= '氏名 /'.$rq['name'.$i]."\n";
$member .= '年齢 /'.$age[$rq['age'.$i]]."\n";
$member .= 'お住まいのエリア /'.$area_03_array[$rq['area'.$i]]."\n";
$member .= '予定日 /'.$plan[$rq['plan'.$i]]."\n";
$member .= '洗える授乳クッション /'.$present[$rq['present'.$i]]."\n";
}
$temp = array();
if (!empty($rq['media'])) {
foreach ($rq['media'] AS $v) {
$temp[] = $media[$v];
}
}
$media = implode(' ', $temp);
$to = $send_email;
$to_name = $send_email;
$subject = array_shift($send_data);
$subject = set_multibyte_mime($subject, 'UTF-8', 'ISO-2022-JP');
$message = implode('', $send_data);
$message = str_replace( "{##NAME##}", $rq['name'], $message );
$message = str_replace( "{##TEL##}", sprintf('%s-%s-%s', $rq['tel1'], $rq['tel2'], $rq['tel3']), $message );
$message = str_replace( "{##EMAIL##}", $rq['email'], $message );
$message = str_replace( "{##NUM1##}", $num1[$rq['num1']], $message );
$message = str_replace( "{##NUM2##}", $num2[$rq['num2']], $message );
$message = str_replace( "{##NUM3##}", $num3[$rq['num3']], $message );
$message = str_replace( "{##DATE##}", $date[$rq['date']], $message );
$message = str_replace( "{##MEMBER##}", $member, $message );
$message = str_replace( "{##MEDIA##}", $media, $message );
$message = str_replace( "
", "\r", $message );
locomill_send_mail3( $to, $to_name, $from, $from_name, $return_to, $subject, $message );
locomill_send_mail3( $from, $to_name, $from, $from_name, $return_to, $subject, $message );
}
else
{
$err_str .= "・送信に失敗しました(内部テンプレート欠損)。
";
}
}
else
{
$err_str .= "・送信に失敗しました(内部テンプレートエラー)。
";
}
header( 'Location: index.shtml?thanks' );
exit;
}
}
} else {
$rq = array('num1' => 1, 'date' => 1);
}
}
/* 変数の準備 */
foreach ($rq AS $k => $v) {
if (is_array($v)) {
foreach ($v AS $v2) {
$values[$k][] = htmlspecialchars($v2);
}
} else {
$values[$k] = htmlspecialchars($v);
}
}
$smarty->assign( "VALUES", $values );
$smarty->assign( "NUM1", $num1 );
$smarty->assign( "NUM1_COUNT", count($num1) );
$smarty->assign( "NUM2", $num2 );
$smarty->assign( "NUM3", $num3 );
if ($template_file == 'index.tpl') {
foreach ($date AS $k => $v) {
$date[$k] = $v.'(残り'.($limit - $count[$k]).'人)';
}
}
$smarty->assign( "DATE", $date );
$smarty->assign( "AGE", $age );
$smarty->assign( "AREA", $area_03_array );
$smarty->assign( "PLAN", $plan );
$smarty->assign( "PRESENT", $present );
$smarty->assign( "MEDIA", $media );
// エラー文字列
$smarty->assign( "ERRMSG", trim(join('
', $errmsg)));
$smarty->assign( "ERR_STR", $err_str );
/* 出 力 */
$smarty->display( $template_dir . $template_file );