こんにちは、前回の「フォームから送信まで、ログイン処理その1「PHP」」に引き続き
今回は、送信の続きからデータベースへ接続をやっていこうと思います。
これは、前回までのです。
フォームから送信まで、ログイン処理その1「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’]){
?>
<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>
ここからですね。
送信続き
IDとパスワードが送信されたら
if($_POST[‘id’] && $_POST[‘pw’]){
//この中に処理
}
今回は、null値つまりフォームから空のまま送信されたら
処理は行わないようにセットしてあります。
$_POST[‘id’] フォームで入力したID
$_POST[‘pw’]フォームで入力したパスワード
もしもこの二つがNULL値以外だったら処理を開始するにしてあります。
つまり
if($_POST[‘id’] && $_POST[‘pw’]){
}else{
echo “ID、パスワードを入力してください”;
}
このように、書いてもいいですね!
では //この中に処理 の中に書いていきます。
$id = $_POST[‘id’];
$pw = $_POST[‘pw’];
いちいち、書くのが面倒なので
取り敢えず、$id , $pwに入れます。
それで完了です。
データベース接続
では次に
データベースを選択していきます。
(僕は、というか今回はMySQLにつなげてます。)
$username=“ユーザー名”;
$password=“パスワード”;
$dbname=“データベース名”;
こちらを入力していきます。
今回は、PHP と MySQL データベースの間の接続をmysqliでやっていきます。
ちなみに
mysqliの書き方は、
手続き型ではなくオブジェクト型でやっていきます。
$mysqli = new mysqli(‘ホストまたはIP’,$username,$password);
そちらには、ホストかIPを入れていきます。
僕は、自分のPCだったのでlocalhostでした。
次に、
$mysqli->set_charset(‘utf8’);
こちらをセットしました。
これをセットしないと、文字化けします。
そして、データベースに接続できなかった場合を
書いていきましょうw
if($mysqli-> connect_errno){
print(‘<p>データベースへの接続に失敗しました。</p>’.$mysqli ->connect_error);
exit();
}
$db_selected = $mysqli->select_db($dbname);
if (!$db_selected){
die(‘データベース選択失敗です。’.mysql_error());
}
表示の仕方も違ってすみません・・・・
果たして、この二つ、1つではいいのでは!?という感じがしますw
結局は同じことしてますもんね・・・!?
まあ、安全に僕は書いておきます!
MySQLから呼び出す!
$sql = “SELECT * FROM テーブル名“;
$stmt = $mysqli ->query($sql);
このような感じになりました。
SQL文でアスタリスクはすべてという意味なので
この処理をすればテーブル内のデータは選べますが、
あまりよくないのかな・・・と思います。
HTMLのフォームから直接SQL文を入力してしまうと
実行してしまう、そして、中の個人情報を取り除かれたり消されたりと
SQLインジェクションといいますね・・
これは開発者がいけないですよね・・対策。
でも僕は無知すぎてわからないのでw
楽な方法を選んでしまいました。
今日のまとめ!
<!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’]){
$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文とSESSION(セッション)で
複数のページ間で共有できる変数持つ仕組みについて
書いていきます!
ありがとうございます。
コメント