PHP + MySQL でログイン画面作成

PHP + MySQL でログイン画面作成
#05 ログイン画面を作ろう
http://dotinstall.com/lessons/sns_php_v2/9605
を参考に
ログインチェックとログイン画面作成について学習
ログインチェックは
ログインしていないなら ログイン画面にとばすようにする
この動作をするlogin.php は
cp index.php login.php
でコピーして内容を改造していく
session_start();
if(empty($_SESSION[‘me’])){
header(‘location: ‘.SITE_URL.’login.php’);
exit;
}

セッションの中に me という文字があるか調べる
内のなら
header() で指定のURLへ飛ばす
今回はlogin.php に飛ばす
そして、login.php の方のheader では
header(‘location: ‘.SITE_URL);
とすることで、index.php に飛ばすことができる
こちらの login.php では
フォームを作成して
メールアドレス
パスワード
の入力欄
そして送信ボタンを作成する
もし、登録していないのであるなら
登録画面になる signup.php へのリンクもつくる
フォームはPOSTで送信する
action=”” というように空欄なのは
この
login.php 自身に送信するから
このフォームのソースは
<form action=”” method=”POST”>
<p>メールアドレス:<input type=”text” name=”email” value=””></p>
<p>パスワード:<input type=”password” name=”password” value=””></p>
<p><input type=”submit” value~”ログイン”><a href=”signup.php”>新規登録>はこちら</
a></p>
</form>
となる
次に、画面を読み込む前に
signup.php の作成を行う
#06 新規ユーザー登録画面を作ろう
http://dotinstall.com/lessons/sns_php_v2/9606
を参考に、ユーザ登録画面の作成
今後、自分でサービスを作る時にも使うので
覚えておくと後が便利
そして、このsignup.php も
cp login.php signup.php
として、ファイルをコピーしたものを改造したほうが
手間が省ける
この改造点は
すでにログイン判定はすませているので
if による判定を削除
あとはHTML部分の改造
完了したら実行してみたけど
画面が真っ白
ということで設定を変更
219行目のコメントアウトをはずし
sudo vim /etc/apache2/mods-enabled/mime.conf

AddHandler cgi-script .cgi .pl
へ変更
sudo vim /etc/apache2/sites-available/default

10行目へ
ExecCGI
を追記
Options Indexes FollowSymLinks MultiViews ExecCGI
とした
そして
AllowOverride None を
AllowOverride All へ変更し保存
sudo service apache2 restart
したものの、解決しないため
CentOSのローカル開発環境で実験したら
あっさりできた
ということで続き
フォームがPOSTされたか、そうでないかで
処理を分岐するため if を使う
if($_SERVER[‘REQUEST_METHOD’] !=’POST’){
//SCRF対策
setToken();
}else{
checkToken();
}
というようにする
フォームを投稿したときにトークンをセットしておき
そのフォームがPOSTされたときに
値が一致しているか調べる

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です