ホームページ  >  記事  >  バックエンド開発  >  php_PHP チュートリアルでセッションにユーザーのログイン情報を保存する方法

php_PHP チュートリアルでセッションにユーザーのログイン情報を保存する方法

WBOY
WBOYオリジナル
2016-07-13 17:15:171755ブラウズ

セッションは PHP では非常に重要です。たとえば、ユーザーは通常、ログインにセッションを使用します。同時に、プロパティ カートは一時的なレコードの保存にセッションを使用します。

セッションの作成が簡単

コードは次のとおりです コードをコピー


session_start();
$username = "nostop";
session_register("ユーザー名");
?>

この例では、username という名前の変数をセッションに登録し、その値は nostop です。

セッションを読む

PHP の組み込み $_SESSION 変数は、設定されたセッション変数に簡単にアクセスできます。

コードは次のとおりです コードをコピー

例:
session_start();
echo "登録されたユーザー名は:".$_SESSION["username"] //出力 登録されたユーザー名は: nostop
; ?>

セッションを破棄する

コードは次のとおりです コードをコピー

session_unregister() 単一のセッション変数の登録を解除します
unset($_SESSION['age']); $_SESSION['age'] で登録されたセッション変数を登録解除するために使用されます
session_unset() は登録されている変数をすべて削除します
session_destroy() はすべてのセッション変数をログアウトし、セッション全体をログアウトします

例:

コードは次のとおりです コードをコピー
session_start();
session_unregister("username"); //セッション変数の登録を解除します
session_unset(); //セッションセッションをログアウトします
?>


完全なセッションの使用方法を参照してください

セッションを使用してユーザーのログイン情報を保存します

コードは次のとおりです コードをコピー


//データベースの場所
定義('DB_HOST', 'ローカルホスト');
//ユーザー名
定義('DB_USER', 'root');
//パスワード
定義('DB_PASSWORD', '19900101');
//データベース名
定義('DB_NAME','テスト') ;
?>

ログインページ: logIn.php

コードは次のとおりです コードをコピー

//ユーザーがログインしていない場合、つまり $_SESSION['user_id'] が設定されていない場合、次のコードを実行します
if(!isset($_SESSION['user_id'])){
If(isset($_POST['submit'])){//ユーザーがログインフォームを送信するときに次のコードを実行します
$dbc = mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME);
$user_username = mysqli_real_escape_string($dbc,trim($_POST['username']));
$user_password = mysqli_real_escape_string($dbc,trim($_POST['password']));

if(!empty($user_username)&&!empty($user_password)){
//MySql の SHA() 関数は、文字列の一方向暗号化を実行するために使用されます
$query = "SELECT user_id, username FROM missmatch_user WHERE username = '$user_username' AND "."password = SHA('$user_password')";
// ユーザー名とパスワードを使用してクエリを実行します
$data = mysqli_query($dbc,$query);
// レコードが 1 つだけ見つかった場合は、SESSION を設定し、同時にページをリダイレクトします
If(mysqli_num_rows($data)==1){
$row = mysqli_fetch_array($data);
$_SESSION['user_id']=$row['user_id'];
$_SESSION['ユーザー名']=$row['ユーザー名'];
$home_url = 'loged.php';
header('場所: '.$home_url);
}else{// 見つかったレコードが間違っている場合は、エラー メッセージを設定します
$error_msg = '申し訳ありませんが、ログインするには有効なユーザー名とパスワードを入力する必要があります。';
}
}その他{
$error_msg = '申し訳ありませんが、ログインするには有効なユーザー名とパスワードを入力する必要があります。';
}
}
}else{//ユーザーがすでにログインしている場合は、ログインしたページに直接ジャンプします
$home_url = 'loged.php';
header('場所: '.$home_url);
}
?>

<頭>
不一致 - ログイン



                                                                                                          & Lt;!-$ _Session ['user_id'] を通じて、ユーザーがログインに失敗したと判断され、ユーザー名とパスワードを入力するように表示されます。 If(!isset($_SESSION['user_id'])){
echo '

'.$error_msg.'

';
?>


                                                                                                           &lt; legend&gt; login&lt;/legend&gt;


&lt;! - ユーザーが既にユーザー名を入力している場合、ユーザー名はエコーされます - &gt;

value="" ️




}
?>


3. ログインページ: logged.php

コードは次のとおりですコードをコピー

//セッションに保存されている変数値を使用する前にセッションを開く必要があります
session_start();
//セッション変数を使用してログインステータスを確認します
if(isset($_SESSION['ユーザー名'])){
echo 'あなたは '.$_SESSION['username'] としてログインしています。'
';
//「ログアウト」をクリックしてlogOutページに移動し、ログアウトします
echo ' ログアウト('.$_SESSION['username'].')';
}
/**ログインしたページでは、$_SESSION['username']、
などのユーザーのセッションを使用できます。 * $_SESSION['user_id'] はデータベースにクエリを実行し、さまざまな操作を行うことができます*/
?>

4. セッションページからログアウトします: logOut.php (ログアウト後は lonIn.php にリダイレクトします)

コードは次のとおりですコードをコピー
//ログアウトしている場合でも、セッション変数にアクセスするには最初にセッションを開始する必要があります
session_start();
//セッション変数を使用してログインステータスを確認します
if(isset($_SESSION['user_id'])){
//セッション変数をクリアするには、$_SESSION スーパーグローバル変数を空の配列に設定します
$_SESSION = array();
//セッション Cookie が存在する場合は、有効期限を 1 時間前に設定して削除します
If(isset($_COOKIE[セッション名()])){
setcookie(session_name(),'',time()-3600);
}
// 組み込みの session_destroy() 関数呼び出しを使用してセッションをキャンセルします
Session_destroy();
}
// location ヘッダーにより、ブラウザは別のページにリダイレクトされます
$home_url = 'logIn.php';
header('場所:'.$home_url);
?>

http://www.bkjia.com/PHPjc/628874.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/628874.html技術記事セッションは php では非常に重要です。たとえば、ユーザーは通常、ログインにセッションを使用します。同時に、プロパティ カートは Cookie と比べてはるかに安全です。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。