Blockchain code Metaverse VR

Unity×VR×Blockchain(258)

スポンサーリンク

//tips

//php理解

ログイン画面を設定していく。この際には入力された、コードとパスが正しいかの認証を行う。認証は入力情報がデータベースに存在するかの確認をすれば良い。selectとwhereでデータを探し、情報を取得できれば認証完了、返ってこなければ失敗とする。

まずはシンプルな認証画面の作成。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ログイン</title>
</head>
<body>
スタッフログイン<br/>
<form method="post" action="staff_login_check.php">
スタッフコード<br/>
<input type="text" name="code"><br/>
パスワード<br/>
<input type="password" name="pass"><br/>
<br/>
<input type="submit" value="ログイン"><br/>
</form>
</body>
</html>

これで入力画面を作れたので、スタッフが存在するのかのチェック機能を実装する。

存在する場合は、次の画面へ、存在しなければ「スタッフコードかパスワードが間違っています。」と表示する。

<?php

try
{
$staff_code=$_POST['code'];
$staff_pass=$_POST['pass'];

$staff_code=htmlspecialchars($staff_code,ENT_QUOTES,'UTF-8');
$staff_pass=htmlspecialchars($staff_pass,ENT_QUOTES,'UTF-8');

$staff_pass=md5($staff_pass);

$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);

$sql='SELECT name FROM mst_staff WHERE code =? AND password =?';
$stmt=$dbh->prepare($sql);
$data[]=$staff_code;
$data[]=$staff_pass;
$stmt->execute($data);

$dbh=null;

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

if($rec==false)
{
print'スタッフコードかパスワードが間違っています<br/';
print'<a href="staff_login.php">戻る</a>';
}else{

header('Location:staff_top.php');
exit();
}

}catch(Exception $e){
print'ただいま障害により大変ご迷惑をおかけします';
}
?>

ログイントップ画面へ遷移させるのでそちらを作成。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ログイン</title>
</head>
<body>
ショップ管理トップメニュー<br/>
<br/>
<a href="../staff/staff_list.php">スタッフ管理</a><br/>
<br/>
<a href="../product/pro_list.php">商品管理</a><br/>

</body>
</html>

ログインを実行してみるが失敗。正しいパスワードを入れて実行しているがエラーになる現象が発生。

いろいろ調べていると参考文献の方にも問題があることが分かってきた。

https://teratail.com/questions/292230

後ほどログイン部分は重要なので下記を参考に修正を行う。

https://qiita.com/ShibuyaKosuke/items/f114ffccf441edb2b745

https://qiita.com/ryo-futebol/items/5fb635199acc2fcbd3ff

https://qiita.com/rana_kualu/items/3ef57485be1103362f56

https://www.php.net/manual/ja/class.exception.php

一旦は今の内容で進めるためにデバッグ確認を進めていく。データベースから内容を検索するという仕組みは作動するはずなので。

var_dump($変数);を使用して確かめていく。

遷移しているとphp文がそのままブラウザに表示されるようになったがこれはlocalhostにアクセスして開いていないため読み込めていなかった。

http://localhost/staff_login/staff_login_check.php

コード:aa パスワード:aaのスタッフをデバッグで確認すると、

var_dump($staff_pass);
var_dump($staff_code);

string(32) "4124bc0a9335c27f086f24ba207a4912"
string(2) "aa"
となり、データベースに格納されている下記と等しくなっている。

4124bc0a9335c27f086f24ba207a4912

問題点を探していたらcodeの方は1~順番につく数字を採用していたので、3,aaと入力しなければならなかった。nameの内容を記入していたのでログインできなかったことに気がついた。こちらで解決。

ここからセッションの仕組みを組み込みログインしなければ情報を見られなくするようにする。現在はログイン後のページURLを他の人に渡しても入れてしまう。

session_start();でパソコンのクッキー領域にセッションidを保存させ、サーバーにも同じものを保存させる。それにより、個人情報を取り扱うことができるようになる。

$_SESSION[‘~’]を使用することで個人情報を保存しておくことができる。

人気の記事

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.