PHP はセッションを使用してユーザーのログイン情報を保存します
Jun 13, 2016 pm 12:26 PM
PHP はセッションを使用してユーザーのログイン情報を保存します
PHP はセッションを使用してユーザーのログイン情報を保存します
セッションを使用してページのログイン情報を保存します
1.接続設(shè)定ページ: connectvars.php
<?php//數(shù)據(jù)庫的位置define('DB_HOST', 'localhost');//用戶名define('DB_USER', 'root');//口令define('DB_PASSWORD', '19900101');//數(shù)據(jù)庫名define('DB_NAME','test') ;?>
2. ログイン ページ: logIn.php
<?php//插入連接數(shù)據(jù)庫的相關(guān)信息require_once 'connectvars.php';//開啟一個會話session_start();$error_msg = "";//如果用戶未登錄,即未設(shè)置$_SESSION['user_id']時,執(zhí)行以下代碼if(!isset($_SESSION['user_id'])){ if(isset($_POST['submit'])){//用戶提交登錄表單時執(zhí)行如下代碼 $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()函數(shù)用于對字符串進行單向加密 $query = "SELECT user_id, username FROM mismatch_user WHERE username = '$user_username' AND "."password = SHA('$user_password')"; //用用戶名和密碼進行查詢 $data = mysqli_query($dbc,$query); //若查到的記錄正好為一條,則設(shè)置SESSION,同時進行頁面重定向 if(mysqli_num_rows($data)==1){ $row = mysqli_fetch_array($data); $_SESSION['user_id']=$row['user_id']; $_SESSION['username']=$row['username']; $home_url = 'loged.php'; header('Location: '.$home_url); }else{//若查到的記錄不對,則設(shè)置錯誤信息 $error_msg = 'Sorry, you must enter a valid username and password to log in.'; } }else{ $error_msg = 'Sorry, you must enter a valid username and password to log in.'; } }}else{//如果用戶已經(jīng)登錄,則直接跳轉(zhuǎn)到已經(jīng)登錄頁面 $home_url = 'loged.php'; header('Location: '.$home_url);}?><html> <head> <title>Mismatch - Log In</title> <link rel="stylesheet" type="text/css" href="style.css" /> </head> <body> <h3>Msimatch - Log In</h3> <!--通過$_SESSION['user_id']進行判斷,如果用戶未登錄,則顯示登錄表單,讓用戶輸入用戶名和密碼--> <?php if(!isset($_SESSION['user_id'])){ echo '<p class="error">'.$error_msg.'</p>'; ?> <!-- $_SERVER['PHP_SELF']代表用戶提交表單時,調(diào)用自身php文件 --> <form method = "post" action="<?php echo $_SERVER['PHP_SELF'];?>"> <fieldset> <legend>Log In</legend> <label for="username">Username:</label> <!-- 如果用戶已輸過用戶名,則回顯用戶名 --> <input type="text" id="username" name="username" value="<?php if(!empty($user_username)) echo $user_username; ?>" /> <br/> <label for="password">Password:</label> <input type="password" id="password" name="password"/> </fieldset> <input type="submit" value="Log In" name="submit"/> </form> <?php } ?> </body></html>
3. ログイン ページ: logged.php
<?php//使用會話內(nèi)存儲的變量值之前必須先開啟會話session_start();//使用一個會話變量檢查登錄狀態(tài)if(isset($_SESSION['username'])){ echo 'You are Logged as '.$_SESSION['username'].'<br/>'; //點擊“Log Out”,則轉(zhuǎn)到logOut頁面進行注銷 echo '<a href="logOut.php"> Log Out('.$_SESSION['username'].')</a>';}/**在已登錄頁面中,可以利用用戶的session如$_SESSION['username']、 * $_SESSION['user_id']對數(shù)據(jù)庫進行查詢,可以做好多好多事情*/?>
4. ログアウト セッション ページ: logOut.php (ログアウト後、lonIn.php にリダイレクト)
<?php//即使是注銷時,也必須首先開始會話才能訪問會話變量session_start();//使用一個會話變量檢查登錄狀態(tài)if(isset($_SESSION['user_id'])){ //要清除會話變量,將$_SESSION超級全局變量設(shè)置為一個空數(shù)組 $_SESSION = array(); //如果存在一個會話cookie,通過將到期時間設(shè)置為之前1個小時從而將其刪除 if(isset($_COOKIE[session_name()])){ setcookie(session_name(),'',time()-3600); } //使用內(nèi)置session_destroy()函數(shù)調(diào)用撤銷會話 session_destroy();}//location首部使瀏覽器重定向到另一個頁面$home_url = 'logIn.php';header('Location:'.$home_url);?>

ホットAIツール

Undress AI Tool
脫衣畫像を無料で

Undresser.AI Undress
リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover
寫真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中國語版
中國語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

多くのユーザーはスマートウォッチを選ぶときにファーウェイブランドを選択しますが、その中でもファーウェイ GT3pro と GT4 は非常に人気のある選択肢であり、多くのユーザーはファーウェイ GT3pro と GT4 の違いに興味を持っています。 Huawei GT3pro と GT4 の違いは何ですか? 1. 外観 GT4: 46mm と 41mm、材質(zhì)はガラスミラー + ステンレススチールボディ + 高解像度ファイバーバックシェルです。 GT3pro: 46.6mm および 42.9mm、材質(zhì)はサファイアガラス + チタンボディ/セラミックボディ + セラミックバックシェルです。 2. 健全な GT4: 最新の Huawei Truseen5.5+ アルゴリズムを使用すると、結(jié)果はより正確になります。 GT3pro: ECG 心電図と血管と安全性を追加

Springboot プロジェクトの本番環(huán)境のセッションアウト タイムアウトで問題が見つかりました。問題の説明は次のとおりです: テスト環(huán)境では、application.yaml を変更することでセッションアウトが構(gòu)成されていました。別の時間を設(shè)定してセッションアウト構(gòu)成を確認した後、有効期限がリリース時に直接 8 時間に設(shè)定され、運用環(huán)境に到著しました。しかし、正午にお客様から、プロジェクトの有効期限が短く設(shè)定されており、30分操作がないとセッションが期限切れになり、再度ログインが必要になるというフィードバックをいただきました。開発環(huán)境の扱いの問題を解決します。springboot プロジェクトには Tomcat が組み込まれているため、プロジェクト內(nèi)の application.yaml で設(shè)定されたセッションアウトが有効になります。本番環(huán)境: 本番環(huán)境リリースは

セッション障害は通常、セッションの有効期間の期限切れまたはサーバーのシャットダウンによって発生します。解決策: 1. セッションの有効期間を延長する; 2. 永続ストレージを使用する; 3. Cookie を使用する; 4. セッションを非同期的に更新する; 5. セッション管理ミドルウェアを使用する。

更新後に PHP セッションが消える問題の解決策: 1. 「session_start();」を通じてセッションを開きます; 2. すべてのパブリック設(shè)定を PHP ファイルに書き込みます; 3. 変數(shù)名は配列の添字と同じにすることはできません。 4. phpinfoでセッションデータの保存パスを確認し、ファイルディレクトリ內(nèi)のsessioが正常に保存されているか確認してください。

Windows 11 で Snipping Tool が機能しない理由 問題の根本原因を理解すると、適切な解決策を見つけるのに役立ちます。 Snipping Tool が正しく動作しない主な理由は次のとおりです。 フォーカス アシスタントがオンになっている: これにより、Snipping Tool が開かなくなります。破損したアプリケーション: 起動時にスニッピング ツールがクラッシュする場合は、破損している可能性があります。古いグラフィック ドライバー: 互換性のないドライバーは、スニッピング ツールに干渉する可能性があります。他のアプリケーションからの干渉: 実行中の他のアプリケーションが Snipping Tool と競合する可能性があります。証明書の有効期限が切れています: アップグレード プロセス中のエラーにより、この問題が発生する可能性があります。これらの簡単な解決策は、ほとんどのユーザーに適しており、特別な技術(shù)知識は必要ありません。 1. Windows および Microsoft Store アプリを更新する

問題: 今日、プロジェクトで設(shè)定タイムアウトの問題が発生し、SpringBoot2 の application.properties への変更が反映されませんでした。解決策:server.* プロパティは、SpringBoot によって使用される埋め込みコンテナーを制御するために使用されます。 SpringBoot は、ServletWebServerFactory インスタンスの 1 つを使用してサーブレット コンテナのインスタンスを作成します。これらのクラスは、server.* プロパティを使用して、制御されるサーブレット コンテナ (tomcat、jetty など) を構(gòu)成します。アプリケーションが war ファイルとして Tomcat インスタンスにデプロイされる場合、server.* プロパティは適用されません。それらは當(dāng)てはまりませんが、

PHPSession のクロスドメイン問題の解決策 フロントエンドとバックエンドの分離の開発では、クロスドメイン要求が標(biāo)準(zhǔn)になっています。クロスドメインの問題に対処するときは、通常、セッションの使用と管理が必要になります。ただし、ブラウザーのオリジンポリシーの制限により、デフォルトではセッションをドメイン間で共有できません。この問題を解決するには、いくつかの技術(shù)と方法を使用して、セッションのクロスドメイン共有を?qū)g現(xiàn)する必要があります。 1. ドメイン間でセッションを共有するための Cookie の最も一般的な使用法

セッション PHP のデフォルトの有効期限は 1440 秒、つまり 24 分です。つまり、クライアントが 24 分を超えて更新されない場合、現(xiàn)在のセッションは期限切れになります。ユーザーがブラウザを閉じると、セッションは終了し、セッションは存在しなくなります。
