ビッグになります。Re:born

ビッグになるよー

PHP ログイン/セッション管理について

 

これで俺もPHPマスター

 

>>check.php(htmlでもええんかな?)

<?php

//既にログイン状態ならそのまま目的地へ吹き飛ばす 
if (isset($_SESSION["USERID"])) {
header("Location: main.php");
exit;
}

// エラーメッセージ(エラーの場合は値を代入)
$errorMessage = "";

 

// 画面に表示するため特殊文字を滅ぼす(エスケープする)
$viewUserId = htmlspecialchars($_POST["userid"], ENT_QUOTES);

 

// ログインボタンが押された! 
if (isset($_POST["login"])) {

// 認証成功(hoge部分がそれぞれID、PASSになる)
if ($_POST["userid"] == "hoge" && $_POST["password"] == "hoge") {

// セッションIDを新規に発行する(使い捨て的ニュアンス)
session_regenerate_id(TRUE);
$_SESSION["USERID"] = $_POST["userid"];
header("Location: main.php");
exit;
}
else {
$errorMessage = "IDかPASS間違ってんよ!!";
}
}

?>

//以下HTML部分

 

 

 >>main.php(目的のページ)

<?php
session_start();

// ログイン状態じゃなければお帰り願う
if (!isset($_SESSION["USERID"])) {
header("Location: logout.php");
exit;
}

echo "ようこそ" . $_SESSION["USERID"] . "さん";
?>

//以下HTML部分 

 

 

>>logout.php(消えてなくなれっ!)

<?php
session_start();

if (isset($_SESSION["USERID"])) {
$errorMessage = "ログアウトしました。";
}
else {
$errorMessage = "セッションがタイムアウトしました。";
}
// セッション変数のクリア
$_SESSION = array();
// クッキーの破棄(あんま理解してない)
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
// セッションクリア
@session_destroy();
?>

 //以下HTML部分

 

 

これまんまコピーしたらとりあえずいける

 

 

 

追記

ログイン画面デザイン参考

ログイン画面のデザインまとめ | モノづくりブログ - 株式会社8bit