Blockchain code Metaverse VR

Unity×VR×Blockchain(251)

スポンサーリンク

//tips

//php理解

ログイン名やパスワードなどの新規登録・更新機能の全体像を確認していく。

<?php
session_start();
$name=$address=$login=$password=‘’;

if(isset($_SESSION[‘customer’])){
$name=$_SESSION[‘customer’][‘name’];
$address=$_SESSION[‘customer’][‘address’];
$login=$_SESSION[‘customer’][‘login’];
$password=$_SESSION[‘customer’][‘password’];
}

echo’<form action=“customer-output.php” method=“post”>’;
echo’<table>’;
echo’<tr><td>お名前</td><td>’;
echo’<input type=“text” name=“name” value=“value”’,$name,’”>’;
echo’</td></tr>’;
echo’<tr><td>ご住所</td><td>’;
echo’<input type=“test” name=“address” value=“’,$address,’”>’;
echo’</td></tr>’;
echo’<tr><td>ご住所</td><td>’;

?>

上記では、現在登録されている顧客情報を表示した上で変更が必要な箇所だけユーザが編集できるようにしている。

まずはセッションを使うのでsession_start();を実行。

顧客名、住所、ログイン名、パスワードを保存する変数を用意。セッションに顧客情報が登録されているかどうかをissetで確認。

登録されていたらセッションデータから情報を読み出して各変数に代入。代入された変数はinputタグの中身にvalueとして表示される。

顧客情報を登録する場合はデータベースに接続する必要があるので、

session_start();
$pdo=new PDO(‘mysql:host=localhost;dbname=shop;charset=utf8’,’staff’,’password’);

を実行した後に、指定したログイン名が使われているかどうかを調べる。

ログインしている場合には
Select * from customer where id!=? and login=?

ログインしていない場合には
Select * from customer where login=?

検索結果が空であれば重複なしと言えるので
if(empty($sql->fetchAll())){
以下で登録処理を行う。

すでにログインしている場合は更新処理。
update customer set name=?,address=?,login=?,password=? where id=?

?の部分にexecuteで挿入を行う。

$sql->execute([
$_REQUEST[‘name’],$_REQUEST[‘address’],$_REQUEST[‘login’],$_REQUEST[‘password’],$id
]);

データベースを最新情報に更新したら、セッションデータも最新に変更。

$_SESSION[‘customer’]=[
‘id’=>$id,‘name’=>$_REQUEST[‘name’],‘address’=>$_REQUEST[‘address’],‘login’=>$_REQUEST[‘login’],‘password’=>$_REQUEST[‘password’]
];

ログインしていない場合は
insert into customer values(null,?,?,?,?)で情報の登録。

$sql->execute([
$_REQUEST[‘name’],$_REQUEST[‘address’],$_REQUEST[‘login’],$_REQUEST[‘password’]]);

?部分もexecuteで埋めておく。

ここからは簡単なショッピングカートの作成。

商品一覧ページを表示し、そこから詳細ページに進めるようにまずは作る。

リクエストパラメータに検索キーワードが含まれている時には商品検索を行う。if(isset($_REQUEST[‘keyword’])で検索キーワードがあるか確認している。

部分一致%’.$REQUEST[‘keyword’].’%’で商品を検索している。

検索キーワードが含まれていない時には商品一覧を表示している。

else{
$sql=$pdo->prepare(‘select* from product’);
$sql->execute([]);
}

記載内容は下記。

<form action=“product.php” method=“post”>
商品検索
<input type=“text” name=“keyword”>
<input type=“submit” value=“検索”>
</form>
<hr>
<?php
echo’<table>’;
echo’<th>商品番号</th><th>商品名</th><th>価格</th>’;
$pdo=new PDO(‘mysql:host=localhost;dbname=shop;charset=utf8’,’staff’,’password’);

if(isset($_REQUEST[‘keyword’])){
$sql=$pdo->prepare(‘select * from product where name like ?’);
$sql->execute([‘%’.$REQUEST[‘keyword’].’%’]);

}else{
$sql=$pdo->prepare(‘select* from product’);
$sql->execute([]);
}
foreach($sql->fetchAll() as $row){
$id=$row[‘id’];
echo ‘<tr>’;
echo ‘<td>’,$id,’</td>’;
echo ‘<td>’;
echo ‘<a href=“detail.php?id=‘, $id ,’”>’,$row[‘name’],’</a>’;
echo ‘</td>’;
echo ‘<td>’,$row[‘price’],’</td>’;
echo ‘</tr>’;
}
echo ‘</table>’;
?>

商品詳細情報を表示していく。

<?php
$pdo=new PDO(‘mysql:host=localhost;dbname=shop;charset=utf8’,’staff’,’password’);
$sql=$pdo->prepare(‘select * from product where id=?’);
$sql->execute([$_REQUEST[‘id’]]);

foreach($sql->fetchAll() as $row){

echo ‘<p><img src=“image/‘,$row[‘id’],’.jpg”></p>’;
echo ‘<form action=“cart-insert.php” method=“post”>’;
echo ‘<p>商品番号:‘,$row[‘id’],’</p>’;
echo ‘<p>商品名:‘,$row[‘name’],’</p>’;
echo ‘<p>価格:‘,$row[‘price’],’</p>’;
echo ‘<p>個数:<select name=“count”>’;
for($i=1;$i<=10,$I++){
echo ‘<option value=>”’,$I,’”>’,$I,’</option>’;
}
echo ‘</select></p>’;
echo’<input type=“hidden” name=“id” value=“‘,$row[‘id’],’”>’;

echo’<p><input type=“submit” value=“カートに追加”></p>’;
echo’</form>’;
echo’<p><a href=“favorite-insert.php?id=”,$row[‘id’],’”>お気に入りに追加</a><p>’;
}
?>

購入数を指定するためにセレクトボックスとimage画像を表示させるためのタグも挿入している。ここまでの学習内容の範囲なので特に初見のものは出ていないように思われる。

カート追加ボタンが選択されると、cart-insert.phpが実行される。

商品をカートに追加するため、リクエストパラメータ情報用にhiddenのinputタグを配置している。

ここからカートに追加ボタンをクリックしたときに実行されるスクリプトの内容を見ていく。

カート内の商品情報は、セッションデータに$_SESSION[‘product’][商品番号][‘name’]などの形で保存している。nameだけでなく、priceもcountも対応できるので、商品購入に必要な情報はこれで対応できる。

カートを表す変数は$_SESSION[‘product’]ときめ、issetで未定義であることを確認できたら$_SESSION[‘product’]=[]とする。

<?php
session_start();
$id=$_REQUEST[‘id’];

if(!isset($_SESSION[‘product’])){
$_SESSION[‘product’]=[]
}
$count=0;
if(isset($_SESSION[‘product’][$id])){
$count=$_SESSION[‘product’][$id][‘count’];
}
$_SESSION[‘product’][$id]=[
‘name’=>$_REQUEST[‘name’],
‘price’=>$_REQUEST[‘price’],
‘count’=>$count+$_REQUEST[‘count’],
];
echo’<p>カートに商品を追加しました</p>’;
echo’<hr>’;
require ’cart.php’;

?>

 

人気の記事

1

皆さん、ついに、エアラインでも、サブスクリプションが始まったのはご存じですか? まだ実験段階ですが、ANAが、定額全国住み放題サービスを提供する「ADDress」と組んで、国内線を4回まで定額利用可能 ...

2

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

3

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

4

ついに、noteの月間アクティブユーザー数が4400万人(2020年3月時点)に到達しました。 そもそも、「note」とは、クリエイターが、文章やマンガ、写真、音声を投稿することができ、ユーザーはその ...

5

ボードゲームカフェが1日2回転で儲かるという記事をみつけたので興味を持ち、調べてみました。 まずは、需要がどれくらいあるのか、市場のようすからみていきましょう。 世界最大のボードゲーム市場はドイツで、 ...

-Blockchain, code, Metaverse, VR
-, ,

Copyright© BUSINESS HUNTER , 2023 All Rights Reserved Powered by AFFINGER5.