Blockchain code Metaverse VR

Unity×VR×Blockchain(268)

スポンサーリンク

//tips

本日日経産業新聞に3次元EC対応を前提にした仮想空間構築ソフトのペガサスキットについて記事が出ていた。田畑さん、素晴らしい。https://www.jpgamesinc.com/

//php理解

shop_form_check.phpに会員情報チェック機能を追加していく。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">

</head>
<body>

<?php

require_once('../common/common.php');

$post=sanitize($_POST);

$onamae=$post['onamae'];
$email=$post['email'];
$postal1=$post['postal1'];
$postal2=$post['postal2'];

$address=$post['address'];
$tel=$post['tel'];

$chumon=$post['chumon'];
$pass=$post['pass'];
$pass2=$post['pass2'];
$danjo=$post['danjo'];
$birth=$post['birth'];

$okflg=true;

if($onamae==''){
print 'お名前が入力されていません<br/><br/>';
$okflg=false;

}else{
print 'お名前<br/>';
print $onamae;
print '<br/><br/>';

}

if(preg_match('/^[a-zA-Z0-9_.+-]+[@][a-zA-Z0-9.-]+$/',$email)==0){

print 'メールアドレスを正確に入力してください<br/><br/>';
$okflg=false;

}else{
print 'メールアドレス<br/>';
print $email;
print '<br/><br/>';

}

if(preg_match('/^[0-9]+$/',$postal1)==0){

print '郵便番号を正確に入力してください<br/><br/>';
$okflg=false;

}else{
print '郵便番号<br/>';
print $postal1;
print '-';
print $postal2;

print '<br/><br/>';

}

if(preg_match('/^[0-9]+$/',$postal2)==0){

print '郵便番号を正確に入力してください<br/><br/>';
$okflg=false;

}

if($address==''){
print '住所が入力されていません<br/><br/>';
$okflg=false;

}else{
print '住所<br/>';
print $address;
print '<br/><br/>';

}

if(preg_match('/^0\d{9,11}$/',$tel)==0){//^0\d{9,10}$

print '電話番号を正確に入力してください<br/><br/>';
$okflg=false;

}else{
print '電話番号<br/>';
print $tel;
print '<br/><br/>';

}

if($chumon=='chumontouroku'){
if($pass==''){
print'パスワードが入力されていません<br/><br/>';
$okflg=false;
}

if($pass!=$pass2){
print'パスワードが一致しません<br/><br/>';
$okflg=false;
}
print'性別<br/>';

if($danjo=='dan'){
print'男性';
}else{
print'女性';
}
print'<br/><br/>';
print$birth;
print'年代';
print'<br/><br/>';

}

if($okflg==true){
print'<form method="post" action="shop_form_done.php">';
print'<input type="hidden" name="onamae" value="'.$onamae.'">';
print'<input type="hidden" name="email" value="'.$email.'">';
print'<input type="hidden" name="postal1" value="'.$postal1.'">';
print'<input type="hidden" name="postal2" value="'.$postal2.'">';
print'<input type="hidden" name="address" value="'.$address.'">';
print'<input type="hidden" name="tel" value="'.$tel.'">';
print'<input type="hidden" name="chumon" value="'.$chumon.'">';
print'<input type="hidden" name="pass" value="'.$pass.'">';
print'<input type="hidden" name="danjo" value="'.$danjo.'">';
print'<input type="hidden" name="birth" value="'.$birth.'">';

print'<input type="button" onclick="history.back()" value="戻る">';
print'<input type="submit" value="OK"><br/>';
print'</form>';

}else{
print'<form>';
print'<input type="button" onclick="history.back()" value="戻る">';
print'</form>';

}

 

?>

</body>
</html>

ここからさらに会員情報を登録するためのdat_memberテーブルを作成する。

Mysqlでテーブルを作成したらテーブルに情報を登録するためのスクリプトを作成する。shop_form_doneを修正することになる。

<?php
session_start();
session_regenerate_id(true);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">

</head>
<body>

<?php

try{
require_once('../common/common.php');

$post=sanitize($_POST);

$onamae=$post['onamae'];
$email=$post['email'];
$postal1=$post['postal1'];
$postal2=$post['postal2'];

$address=$post['address'];
$tel=$post['tel'];
$chumon=$post['chumon'];
$pass=$post['pass'];
$danjo=$post['danjo'];
$birth=$post['birth'];

 

print $onamae.'様';
print 'ご注文ありがとうございました<br/>';
print $email.'にメールを送りましたのでご確認ください<br/>';
print '商品は以下の住所に発送させていただきます<br/>';
print $postal1.'-'.$postal2.'<br/>';
print $address.'<br/>';
print $tel.'<br/>';

$honbun='';
$honbun.=$onamae."様\n\nこの度はご注文ありがとうございました。\n";
$honbun.="\n";
$honbun.="ご注文商品\n";
$honbun.="-----------\n";

$cart=$_SESSION['cart'];
$kazu=$_SESSION['kazu'];
$max=count($cart);

$dsn='mysql:dbname=shop;host=localhost;charset=utf8';
$user='root';
$password='';

$dbh=new PDO($dsn,$user,$password);
$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

for($i=0;$i<$max;$i++){

$sql='SELECT name,price FROM mst_product WHERE code=?';
$stmt=$dbh->prepare($sql);
$data[0]=$cart[$i];
$stmt->execute($data);

$rec=$stmt->fetch(PDO::FETCH_ASSOC);

$name=$rec['name'];
$price=$rec['price'];
$kakaku[]=$price;
$suryo=$kazu[$i];
$shokei=$price*$suryo;

$honbun.=$name.'';
$honbun.=$price.'円×';
$honbun.=$suryo.'個=';
$honbun.=$shokei."円\n";

}

$sql='LOCK TABLES dat_sales WRITE,dat_sales_product WRITE,dat_member WRITE';
$stmt=$dbh->prepare($sql);
$stmt->execute();

$lastmembercode=0;
if($chumon=='chumontouroku'){

$sql='INSERT INTO dat_member(password,name,email,postal1,postal2,address,tel,danjo,born)VALUES(?,?,?,?,?,?,?,?,?)';
$stmt=$dbh->prepare($sql);
$data=array();//データを一旦クリア
$data[0]=0;
$data[]=md5($pass);
$data[]=$onamae;
$data[]=$email;
$data[]=$postal1;
$data[]=$postal2;
$data[]=$address;
$data[]=$tel;

if($danjo=='dan'){
$data[]=1;
}else{
$data[]=2;
}
$data[]=$birth;
$stmt->execute($data);

}

$sql='INSERT INTO dat_sales(code_number,name,email,postal1,postal2,address,tel)VALUES(?,?,?,?,?,?,?)';
$stmt=$dbh->prepare($sql);
$data=array();//データを一旦クリア
$data[]=$lastmembercode;
$data[]=$onamae;
$data[]=$email;
$data[]=$postal1;
$data[]=$postal2;
$data[]=$address;
$data[]=$tel;
$stmt->execute($data);

$sql='SELECT LAST_INSERT_ID()';
$stmt=$dbh->prepare($sql);
$stmt->execute();
$rec=$stmt->fetch(PDO::FETCH_ASSOC);
$lastcode=$rec['LAST_INSERT_ID()'];

for($i=0;$i<$max;$i++){

$sql='INSERT INTO dat_sales_product(code_sales,code_product,price,quantity)VALUES(?,?,?,?)';
$stmt=$dbh->prepare($sql);

$data=array();
$data[]=$lastcode;
$data[]=$cart[$i];
$data[]=$kakaku[$i];
$data[]=$kazu[$i];

$stmt->execute($data);

}

$sql='UNLOCK TABLES';
$stmt=$dbh->prepare($sql);
$stmt->execute();

$dbh=null;

$honbun.="送料は無料です。\n";
$honbun.="-------------\n";
$honbun.="\n";
$honbun.="代金は以下の口座に振り込みください。\n";
$honbun.="○○銀行 ○○支店 普通口座12345\n";
$honbun.="入金確認が取れ次第、梱包、発送させていただきます\n";
$honbun.="\n";
//$honbun.="○○県○○市12-345\n";
//$honbun.="○○銀行 ○○支店 普通口座12345\n";

print'<br/>';
//print nl2br($honbun);

$title='ご注文ありがとうございます';
$header='From:info@aaa.co.jp';
$honbun=html_entity_decode($honbun,ENT_QUOTES,'UTF-8');
mb_language('Japanese');
mb_internal_encoding('UTF-8');
mb_send_mail($email,$honbun,$header);

$title='お客様から注文がありました';
$header='From:'.$email;
$honbun=html_entity_decode($honbun,ENT_QUOTES,'UTF-8');
mb_language('Japanese');
mb_internal_encoding('UTF-8');
mb_send_mail('shop@shop.co.jp',$honbun,$header);

}
catch(Exception $e)
{

print'ただいま障害により大変ご迷惑をおかけしております。';
echo $e->getMessage();
exit();
}

?>
<br/>
<a href="shop_list.php">商品画面へ</a>

</body>
</html>

早速会員登録を行ったが、ただいま障害により大変ご迷惑をおかけしております。SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokensのエラーが発生。

var_dumpで挟んでデバックしてみるとstring(1) "0" ただいま障害により大変ご迷惑をおかけしております。SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokensと表示されたので下記の部分が該当することになる。

var_dump('0');

$lastmembercode=0;
if($chumon=='chumontouroku'){

$sql='INSERT INTO dat_member(password,name,email,postal1,postal2,address,tel,danjo,born)VALUES(?,?,?,?,?,?,?,?,?)';
$stmt=$dbh->prepare($sql);
$data=array();//データを一旦クリア
$data[0]=0;
$data[]=md5($pass);
$data[]=$onamae;
$data[]=$email;
$data[]=$postal1;
$data[]=$postal2;
$data[]=$address;
$data[]=$tel;

if($danjo=='dan'){
$data[]=1;
}else{
$data[]=2;
}
$data[]=$birth;
$stmt->execute($data);

}
var_dump('1');

下記の記述漏れがあったので追加。

$stmt->execute($data);

$sql='SELECT LAST_INSERT_ID()';
$stmt=$dbh->prepare($sql);
$stmt->execute();
$rec=$stmt->fetch(PDO::FETCH_ASSOC);
$lastmembercode=$rec['LAST_INSERT_ID()'];

これにより無事問題は解決し、phpmyadminに会員情報登録が完了できた。

人気の記事

1

コロナによる需要変化 コロナパンデミックの影響で、人々は外に出られなくなり、自宅で過ごす時間が増えました。 この自粛ムードの中、下記のようなビジネスの需要変化が引き起こされています。 【利用者減少】 ...

2

米国レストランの決済時に毎日お世話になっていた「Square」のビジネスモデルについて本日はふれていきたいと思います。 「Square」とは、ネットにつながったモバイル端末と専用のカードリーダーを用意 ...

3

無料でネットショップを開けるアプリとして多くの人に驚きを与えたBASE株式会社が、2019年10月25日東証マザーズに上場しました。2020年2月時点で90万店を超えるショップを抱えるまでに成長してい ...

4

2011年にサービスを開始してから圧倒的な成長率を誇るインテリア通販サイト 【FLYMEe/フライミー】を皆さんご存じでしょうか。 「自分のイメージするインテリア、本当に欲しいインテリアがどこにあるの ...

5

ナイキのSNKRSが、なぜこれほどまでに人気なのか?調べてみました。 きっかけは米国での友達との会話。彼は自分のシューズをみせて、「これ20万円もしたんだぜ。」と語ってくれました。 あまり靴に興味がな ...

-Blockchain, code, Metaverse, VR
-, ,

Copyright© BUSINESS HACKER , 2021 All Rights Reserved Powered by AFFINGER5.