こんにちは、前回の「送信の続きからデータベース接続」に引き続き
今回は、ログイン処理からページ遷移をやっていこうと思います。
これは、前回までのです。
送信続きからデータベース接続まで、ログイン処理その2「PHP」
それでは前回のを基盤に進んでいきます。
<!DOCTYPE html>
<html lang=“ja”>
<head>
<meta charset=“UTF-8”>
<title>Document</title>
</head>
<body>
<?php
if(isset($_POST[‘hid’])){
if($_POST[‘id’] && $_POST[‘pw’]){
$id = $_POST[‘id’];
$pw = $_POST[‘pw’];
$username=“ユーザー名”;
$password=“パスワード”;
$dbname=“データベース名”;
$mysqli = new mysqli(‘ホストかIP’,$username,$password);
$mysqli->set_charset(‘utf8’);
if($mysqli-> connect_errno){
print(‘<p>データベースへの接続に失敗しました。</p>’.$mysqli ->
connect_error);
exit();
}$db_selected = $mysqli->select_db($dbname);
if (!$db_selected){
die(‘データベース選択失敗です。’.mysql_error());
}
$sql = “SELECT * FROM テーブル名“;
$stmt = $mysqli ->query($sql);
}else{
echo “ID、パスワードを入力してください”;
}
?>
<h1>ログイン画面</h1>
<hr>
<br>
<form action=“” method=“POST”>
<input type=“hidden” name=“hid” value=“hid”/>
ID:<input type=“text” name=“id” value=“”><br>
PW:<input type=“password” name=“pw” value=“”>
<input type=“submit” value=“ログイン”>
</form>
</body>
</html>
ではここからですね
Foreach文入れる!
foreach($stmt as $row){
if($id==$row[‘カラム名’] && $pw==$row[‘カラム名’]){
}}
こちらはパスワードとIDが一致したときの処理の中に入れましょう。
こちらの処理では
入力されたID,PWとカラム内の値と一致したら
の処理をしています。
要は、IDかつパスワードが一致したときのみの実行するための
前準備です。
データベースのテーブル内のカラム名です。
シングルクォートで囲みましょう。
次に
SESSIONを使います!
こちらの処理では、
セッションとは、コンピュータのサーバー側に一時的にデータを保存
を行っています。
つまり、別のページにとんでもその変数のデータを覚えていたりするわけです。
cookieによく似てますが、cookieはブラウザに保存します
なのでセキュリティ的にはセッションのほうが安全です。
<?php
session_start();
?>
まず、こちらを入力します。
入力するところに注意が必要で
HTMLの外に書きます。。
一行目に書きます。つまり
の上に書くということです。
セッションしたいものを先ほどの中に入れてもいいのですが、
僕はパスワードとIDが一致したときの処理の中に書いていきます。
$_SESSION[‘id’]=$row[‘カラム名’];
$_SESSION[‘pw’]=$row[‘カラム名’];
$_SESSION[‘name’]=$row[‘カラム名’];
$_SESSION[‘OK’]=“OK”;
一応今回持っていくデータは、
Idとパスワード、名前、と「OK」です。
「OK」は正直いらないですが、確認のために持っています。
次にページ遷移の処理
を書いていきます。
header(“Location:遷移先.php”);
exit();
このように、書きます。
exit();は正直書いても書かなくてもこの処理の場合変わらないので
どちらでもいいです。
では、こちらのPHPファイルは完成したので
完全版を貼ります!
まとめ
<?php
session_start();
?>
<!DOCTYPE html>
<html lang=“ja”>
<head>
<meta charset=“UTF-8”>
<title>Document</title>
</head>
<body>
<?php
if(isset($_POST[‘hid’])){
if($_POST[‘id’] && $_POST[‘pw’]){
$id = $_POST[‘id’];
$pw = $_POST[‘pw’];
$username=“ユーザー名”;
$password=“パスワード”;
$dbname=“データベース名”;
$mysqli = new mysqli(‘ホストかIP’,$username,$password);
$mysqli->set_charset(‘utf8’);
if($mysqli-> connect_errno){
print(‘<p>データベースへの接続に失敗しました。</p>’.$mysqli ->
connect_error);
exit();
}$db_selected = $mysqli->select_db($dbname);
if (!$db_selected){
die(‘データベース選択失敗です。’.mysql_error());
}
$sql = “SELECT * FROM テーブル名“;
$stmt = $mysqli ->query($sql);
foreach($stmt as $row){
if($id==$row[‘カラム名’] && $pw==$row[‘カラム名’]){
$_SESSION[‘id’]=$row[‘カラム名’];
$_SESSION[‘pw’]=$row[‘カラム名’];
$_SESSION[‘name’]=$row[‘カラム名’];
$_SESSION[‘OK’]=“OK”;
header(“Location:loginok.php”);
exit();
}
}
}else{
echo “ID、パスワードを入力してください”;
}
?>
<h1>ログイン画面</h1>
<hr>
<br>
<form action=“” method=“POST”>
<input type=“hidden” name=“hid” value=“hid”/>
ID:<input type=“text” name=“id” value=“”><br>
PW:<input type=“password” name=“pw” value=“”>
<input type=“submit” value=“ログイン”>
</form>
</body>
</html>
ではこれでページ遷移はできるので、次回はページ遷移先の
設定をしていきます!
ではありがとうございます!
コメント