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

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

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.