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

皆さん、ついに、エアラインでも、サブスクリプションが始まったのはご存じですか? まだ実験段階ですが、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.