ユーザーにユーザー名とパスワードの入力を求める Web サイトがあり、MySQL データベースをチェックして資格情報が正しいかどうかを確認します。もしそうなら、ユーザーがウェブサイトの他の部分にアクセスできるようにしたいのですが、情報を満足に再入力する必要はありません。基本的に、ウェブサイトにログインしたままにします。
私はこれまでにこのようなことをしたことがなく、クラス プロジェクトの要件を超えようとしています。これを実現するにはどうすればよいですか?
それを行うには2つの方法があります
セッションを使用している場合、ユーザーはブラウザを閉じるたびにログインする必要があります。Cookie を使用すると、ログイン情報がユーザーのコンピューターにローカルに保存され (さまざまな Web サイトで「Remember Me」を見たことがあるはずです)、ユーザーは自動的にログインします。両方のオプションを同時に使用し、ユーザーの裁量で「記憶する」オプションを与えることができます
現在、Cookie に関連するセキュリティ上の問題があります (銀行の Web サイトなどでは「remember me」が表示されないため、ユーザー名を記憶するために表示される場合があります)。
また、この種のセットアップでは、許可されたユーザーのみがアクセスできるようにする必要があるすべてのページで、ユーザー資格情報を確認する必要があります。
SQL インジェクション防止コードは、適切にコーディングされていない場合は非常に簡単であり、さらにロケット科学ではないため、記述してください。
この種のセットアップを開始するには、いくつかの youtube チュートリアルに従うことができます。それらのトンがあります。チュートリアルへのリンクはこちらhttp://www.developphp.com/list_php_video.php#How_to_Build_a_Social_Network_Website これは初心者向けの優れたチュートリアルです。チュートリアル 1-9 で目的が解決されます。専門家になると、独自のカスタマイズされたクリーンなコードを書くことができます。これらのチュートリアルは、設計したい種類のシステムの基本を理解するのに役立ち、その後は学習と認識に基づいています. それから空は限界です:)
クッキーを使用する必要があります。ここへのアクセス方法: http://php.net/manual/fr/features.cookies.php
セッション変数を使用すると、ユーザーが接続されているかどうかを確認できます。
考えられる解決策は 2 つありますが、動作が異なります。
1 つ目: PHP セッションを使用することです。セッションのサポートにより、リクエスト間のデータを$_SESSION
スーパーグローバル配列に保存できます。訪問者がサイトにアクセスすると、PHP は自動的に (session.auto_start が 1 に設定されている場合)、またはリクエスト時に (session_start() を介して明示的に、または session_register() を介して暗黙的に) 特定のセッション ID がリクエストとともに送信されたかどうかをチェックします。この場合、以前に保存された環境が再作成されます。たとえば、ユーザーがこれでログインしているかどうかを保存できます。
session_start();
$_SESSION['loged_in']="yes";
これを使用して値を取得します。
session_start();
if($_SESSION['loged_in']=="yes"){ echo "logged in!"; }
2つ目はPHP Cookiesです。PHP は HTTP Cookie を透過的にサポートします。Cookie は、リモート ブラウザにデータを保存して、リターン ユーザーを追跡または識別するためのメカニズムです。setcookie() または setrawcookie() 関数を使用して Cookie を設定できます。Cookie は HTTP ヘッダーの一部であるため、出力がブラウザーに送信される前に setcookie() を呼び出す必要があります。これは、header() が持つ制限と同じです。Cookie を設定するかヘッダーを送信するかを決定するまで、出力バッファリング関数を使用してスクリプト出力を遅らせることができます。
Cookie は資格情報をローカルに保存し、ユーザーが同じ Web ページに再度アクセスするたびに再び利用できるようにします。「ログインを保持する」チェックボックスをオンにしたときに、ログインの詳細を保存する場所です。セッションとは異なり、ブラウザーを閉じてコンピューターをシャットダウンしても、再び Cookie にアクセスできるようになります。