さて、引き続き環境構築をやっていきます。
少しずつでも進めていきたいと思いますので、頑張りましょう!
前回、DBの準備は終えたので、PHPのコンテンツ作成に行きましょう。
環境は前回の続きを、使っていきます。
多少修正を行いますが、ここがお勧めです。
まずはHTMLファイルの方をサクッと作ります。
$ cd /var/www/html/ #カレントディレクトリへ移動 $ sudo nano index.html #ファイルを作成or編集
参考のサイトから以下をコピペします。
<html> <meta charset="UTF-8"> <head> <title>ログイン画面</title> </head> <body> <form action="db.php" method="post"> <table> <tr> <td>ユーザID</td> <td><input type="text" name="uid"></td> </tr> <tr> <td>パスワード</td> <td><input type="text" name="password"></td> </tr> </table> <input type="submit" value="ログイン"> </form> </body> </html> #Ctrl+oで保存して終了
念のためブラウザからアクセスします。以下のように画面が表示されればOK
例:http://192.168.70.131/index.html
次に同じように「db.php」を作ってコピペと行きます。
$ sudo nano db.php #SQLiがあるファイルを作成
参考のサイトから以下をコピペします。
※もちろん接続するDBユーザの情報とかは前回作成したのに合わせます。
<html> <meta charset="UTF-8"> <head> <title>ログイン処理</title> </head> <body> <?php $conn = mysql_connect('localhost', 'tokoroten', 'assword1111aaaa!A'); $db = mysql_select_db('testuser', $conn); $uid = $_POST['uid']; $pass = $_POST['password']; $result = mysql_query("SELECT email FROM users where uid='$uid' AND passwd='{$pass}'"); if (mysql_num_rows($result) == 0) { echo "ユーザ名または、パスワードに誤りがあります。"; exit; } while ($row = mysql_fetch_assoc($result)) { print('email addressはこちらです '.$row['email']); print('<br>'); } mysql_close($conn); ?> <a href="index.html">ログイン画面に戻る</a> </body> </html>
さて、次にDBに情報を登録しましょう!
$ mysql -u tokoroten -p #mysqlにログイン CREATE DATABASE testuser; #testuserという名前のデータベースを作成 CREATE TABLE testuser.users (uid varchar(20), passwd varchar(20), mail varchar(20)); #usersというテーブルを作成し、カラムを「uid、passwd、mail」として作成
適当なユーザ情報を3つほど考え、DBに登録します。
INSERT INTO testuser.users (uid , passwd , mail) VALUES ('tokoroten', 'password', 'aasdawds@gmail.com'); INSERT INTO testuser.users (uid , passwd , mail) VALUES ('test', 'test', 'test@tttttt.com'); INSERT INTO testuser.users (uid , passwd , mail) VALUES ('sqliuser', 'sqlipass', 'sqli@sqlidsada.com');
流し込めたら、情報がちゃんとできているか確認します。
select * from testuser.users;
以下のような形になっていればOKです。
さて、ブラウザから動作を確認してみましょう!
ブラウザInternet Explorerを使用していた場合はこんな感じになっているかと
なぜだ~と思う方もいるかと思いますが、焦らず、エラーログを確認しに行きます。
$ cd /var/log/apache2/ $ less error.log
するとメッセージとしては「PHP Fatal error: Uncaught Error: Call to undefined function mysql_connect()」と出ているかと思います。
未定義の関数とな・・・
こういったコピペを駆使していくと、このような事態に陥ることはよくあります。
※これが発表の前日だったりするとマジで寝れません。
なので、次回は解決するためのエッセンスを記載して、動かすところまで行きたいと思います。
進行が遅くて申し訳ございません。
質問や不明点、要望等あれば、コメントやツイッター等で連絡をお願いします。
コメント