おせわになっております。
以下の制作物で行き詰まっております。
電話番号が確認画面に引き渡されず困っております。
正規表現も含め、すべての電話番号に対応するものはなにかといろいろ調べている最中です。
なにかアドバイスをいただけましたら幸いです。
どうぞよろしくお願いします。
##shop_form_check.php
PHP
1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="UTF-8"> 5<title>購入者情報引き渡し</title> 6</head> 7<body> 8 9<?php 10 11require_once('../common/common.php'); 12 13$post=sanitize($_POST); 14 15$onamae=$post['onamae']; 16$email=$post['email']; 17$postal1=$post['postal1']; 18$postal2=$post['postal2']; 19$address=$post['address']; 20$tel=$post['tel']; 21 22$okflg=true; 23 24if($onamae=='') 25{ 26 print 'お名前が入力されていません。<br /><br />'; 27 $okflg=false; 28} 29else 30{ 31 print 'お名前<br />'; 32 print $onamae; 33 print '<br /><br />'; 34} 35 36if(preg_match('/^[\w\-.]+\@[\w\-.]+.([a-z]+)$/',$email)==0) 37{ 38 print 'メールアドレスを正確に入力してください。<br /><br />'; 39 $okflg=false; 40} 41else 42{ 43 print 'メールアドレス<br />'; 44 print $email; 45 print '<br /><br />'; 46} 47 48if(preg_match('/^[0-9]+$/',$postal1)==0) 49{ 50 print '郵便番号は半角数字で入力してください。<br /><br />'; 51 $okflg=false; 52} 53else 54{ 55 print '郵便番号<br />'; 56 print $postal1; 57 print '-'; 58 print $postal2; 59 print '<br /><br />'; 60} 61 62if(preg_match('/^[0-9]+$/',$postal2)==0) 63{ 64 print '郵便番号は半角数字で入力してください。<br /><br />'; 65 $okflg=false; 66} 67 68if($address=='') 69{ 70 print '住所が入力されていません。<br /><br />'; 71 $okflg=false; 72} 73else 74{ 75 print '住所<br />'; 76 print $address; 77 print '<br /><br />'; 78} 79 80if(preg_match('/^\d{2,5}-?\d{2,5}-?\d{4,5}$/',$tel)==0) 81{ 82 print '電話番号を正確に入力してください。<br /><br />'; 83 $okflg=false; 84} 85else 86{ 87 print '電話番号<br />'; 88 print $tel; 89 print '<br /><br />'; 90} 91 92if($okflg==true) 93{ 94 print '<form method="post" action="shop_form_done.php">'; 95 print '<input type="hidden" name="onamae" value="'.$onamae.'">'; 96 print '<input type="hidden" name="email" value="'.$email.'">'; 97 print '<input type="hidden" name="postal1" value="'.$postal1.'">'; 98 print '<input type="hidden" name="postal2" value="'.$postal2.'">'; 99 print '<input type="hidden" name="address" value="'.$address.'">'; 100 print '<input type="hidden" name="tel" value="'.$tel.'">'; 101 print '<input type="button" onclick="history.back()" value="戻る">'; 102 print '<input type="submit" value="OK"><br />'; 103 print '</form>'; 104} 105else 106{ 107 print '<form>'; 108 print '<input type="button" onclick="history.back()" value="戻る">'; 109 print '</form>'; 110} 111 112?> 113 114</body> 115</html>
##shop_form_done.php
PHP
1<?php 2 session_start(); 3 session_regenerate_id(true); 4?> 5<!DOCTYPE html> 6<html> 7<head> 8<meta charset="UTF-8"> 9<title>購入者情報受け取り</title> 10</head> 11<body> 12 13<?php 14 15try 16{ 17 18require_once('../common/common.php'); 19 20$post=sanitize($_POST); 21 22$onamae=$post['onamae']; 23$email=$post['email']; 24$postal1=$post['postal1']; 25$postal2=$post['postal2']; 26$address=$post['address']; 27$tel=$post['tel']; 28 29print $onamae.'様<br />'; 30print 'ご注文ありがとうござました。<br />'; 31print $email.'にメールを送りましたのでご確認ください。<br />'; 32print '商品は以下の住所に発送させていただきます。<br />'; 33print $postal1.'-'.$postal2.'<br />'; 34print $address.'<br />'; 35print $tel.'<br />'; 36 37$honbun=''; 38$honbun.=$onamae."様\n\nこのたびはご注文ありがとうございました。\n"; 39$honbun.="\n"; 40$honbun.="ご注文商品\n"; 41$honbun.="--------------------\n"; 42 43$cart=$_SESSION['cart']; 44$kazu=$_SESSION['kazu']; 45$max=count($cart); 46 47$dsn='mysql:dbname=shop;host=localhost;charset=utf8'; 48$user='root'; 49$password=''; 50$dbh=new PDO($dsn,$user,$password); 51$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 52 53for($i=0;$i<$max;$i++) 54{ 55 $sql='SELECT name,price FROM mst_product WHERE code=?'; 56 $stmt=$dbh->prepare($sql); 57 $data[0]=$cart[$i]; 58 $stmt->execute($data); 59 60 $rec=$stmt->fetch(PDO::FETCH_ASSOC); 61 62 $name=$rec['name']; 63 $price=$rec['price']; 64 $suryo=$kazu[$i]; 65 $shokei=$price*$suryo; 66 67 $honbun.=$name.' '; 68 $honbun.=$price.'円 x '; 69 $honbun.=$suryo.'個 = '; 70 $honbun.=$shokei."円\n"; 71} 72 73$dbh=null; 74 75$honbun.="送料は無料です。\n"; 76$honbun.="--------------------\n"; 77$honbun.="\n"; 78$honbun.="代金は以下の口座にお振込ください。\n"; 79$honbun.="ろくまる銀行 やさい支店 普通口座 1234567\n"; 80$honbun.="入金確認が取れ次第、梱包、発送させていただきます。\n"; 81$honbun.="\n"; 82$honbun.="□□□□□□□□□□□□□□\n"; 83$honbun.=" ~安心野菜のろくまる農園~\n"; 84$honbun.="\n"; 85$honbun.="○○県六丸郡六丸村123-4\n"; 86$honbun.="電話 090-6060-xxxx\n"; 87$honbun.="メール info@rokumarunouen.co.jp\n"; 88$honbun.="□□□□□□□□□□□□□□\n"; 89//print '<br />'; 90//print nl2br($honbun); 91 92$title='ご注文ありがとうございます。'; 93$header='From:info@rokumarunouen.co.jp'; 94$honbun=html_entity_decode($honbun,ENT_QUOTES,'UTF-8'); 95mb_language('Japanese'); 96mb_internal_encoding('UTF-8'); 97mb_send_mail($email,$title,$honbun,$header); 98 99$title='お客様からご注文がありました。'; 100$header='From:'.$email; 101$honbun=html_entity_decode($honbun,ENT_QUOTES,'UTF-8'); 102mb_language('Japanese'); 103mb_internal_encoding('UTF-8'); 104mb_send_mail('info@rokumarunouen.co.jp',$title,$honbun,$header); 105 106} 107catch (Exception $e) 108{ 109 print 'ただいま障害により大変ご迷惑をお掛けしております。'; 110 exit(); 111} 112 113?> 114 115</body> 116</html>
##shop_form.html
html
1<!doctype html> 2<html> 3<head> 4<meta charset="UTF-8"> 5<title>顧客情報入力画面</title> 6</head> 7 8<body> 9お客様情報を入力してください<br /> 10<form method="post" action="shop_form_check.php"> 11お名前<br /> 12<input type="text" name="onamae" style="width:200px"><br /> 13メールアドレス<br /> 14<input type="text" name="email" style="width:200px"><br /> 15郵便番号<br /> 16<input type="text" name="postal1" style="width:50px">- 17<input type="text" name="postal2" style="width:80px"><br /> 18住所<br /> 19<input type="text" name="address" style="width:500px"><br /> 20電話番号<br /> 21<input type="text" name="tel" style="width:150px"><br /> 22<input type="button" onclick="history.back()" value="戻る"> 23<input type="submit" value="OK"><br /> 24</form> 25 26</body> 27</html> 28
回答1件
あなたの回答
tips
プレビュー