Blockchain code Metaverse VR

Unity×VR×Blockchain(255)

スポンサーリンク

//tips

//php理解

商品管理の作成を行うため新たなテーブルを作るところから始める。

phpmyadminでmst_productテーブルを作成したらhtdocsファイルにproductフォルダを追加。

商品追加画面から作成していく。

まずは下記の入力画面を作成し。基本的にはstaffのものをベースに変更するだけで良い。

<body>
商品追加<br/>
<br/>
<form method="post" action="pro_add_check.php">
商品名を入力してください<br/>
<input type="text" name="name" style="width:200px"><br/>
価格を入力してください<br/>
<input type="password" name="pass" style="width:100px"><br/>
<br/>
<input type ="button" onclick="history.back()" value="戻る">
<input type ="submit" value="OK">

</form>
</body>

そこからpro_add_checkの内容を下記に記載する。

<body>
<?php

$pro_name=$_POST['name'];
$pro_price=$_POST['price'];

$pro_name=htmlspecialchars($pro_name,ENT_QUOTES,'UTF-8');
$pro_price=htmlspecialchars($pro_price,ENT_QUOTES,'UTF-8');

if($pro_name=='')
{
print'商品名が入力されていません。<br/>';
}
else
{
print'商品名:';
print$pro_name;
print'<br/>';
}

if(preg_match('/¥A[0-9]+¥z/',$pro_price)==0)
{
print'価格をきちんと入力してください。<br/>';
}else{

print'価格:';
print $pro_price;
print'円<br/>';
}

if($pro_name==''||preg_match('/¥A[0-9]+¥z/',$pro_price)==0)
{
print'<form>';
print'<input type="button" onclick="history.back()" value="戻る">';
print'</form>';
}
else
{
print'上記の商品を追加します。<br/>';
print'<form method ="post" action="pro_add_done.php" >';
print'<input type ="hidden" name="name" value="'.$pro_name.'" >';
print'<input type ="hidden" name="pass" value="'.$pro_price.'" >';
print'<br/>';
print'<input type ="button" onclick="history.back()" value="戻る" >';
print'<input type ="submit" value="OK" >';
print'</form>';

}

?>

</body>

先にも確認した正規表現がここでも価格の確認のため用いられている。

preg_match('/¥A[0-9]+¥z/',$pro_price)はA[0-9]+¥zが半角数字を表し、$pro_priceがチェックしたいデータを格納している。

データベースの追加実行画面は下記。

<body>
<?php

try
{
$pro_name=$_POST['name'];
$pro_price=$_POST['price'];

$pro_name=htmlspecialchars($pro_name,ENT_QUOTES,'UTF-8');
$pro_price=htmlspecialchars($pro_price,ENT_QUOTES,'UTF-8');

$dsn='mysql:dbname=shop;host=localhost;charset=utf8';
$user='root';
$priceword='';
$dbh=new PDO($dsn,$user,$priceword);
$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

$sql = 'INSERT INTO mst_product(name,price) VALUES (?,?)';
$stmt=$dbh->prepare($sql);
$data[]=$pro_name;
$data[]=$pro_price;
$stmt->execute($data);

$dbh=null;

print $pro_name;
print'を追加しました。<br/>';
}
catch(Exception $e)
{
print'ただいま障害によろ大変迷惑をおかけしております。';
exit();

}

?>
<a href="pro_list.php">戻る</a>
</body>

http://localhost/product/pro_add.phpをブラウザに入力して追加の流れまでを実行できる。

<input type="text" name="price" style="width:50px"><br/>がパスワードになっていたのでテキストに変更。

また、正規チェックで数字が引っかかるので’/\A[0-9]+\z/‘,に変更することでエラーを解消。

下記が発動してしまったので、echo $e->getMessage();を追加して問題内容を出力させる。

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

}

SQLSTATE[HY000]: General error: 1364 Field 'gazou' doesn't have a default valueとのことだったのでまだ設定していないgazouの部分が問題となっているよう。

このエラーはmysqlのバージョンアップによって起こるものだとのこと。デフォルト未設定のフィールドにエータを入れなくてもエラーにならないように調整する。

https://qiita.com/21century_girl_/items/5be2606b3bfa98514952

Etcフォルダにあるmy.cnfを開き下記を追加。

sql_mode=NO_ENGINE_SUBSTITUTION

一旦manager-osxを閉じてmyphpも終了。

再度開いて状況を確認する。

これでも治らなかったのでmyphpのgazouのデフォルト値をnullに設定したら問題なく追加完了画面が表示された。

人気の記事

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.