クライアントで Cookie が無効になっているときにセッションが無効にならないようにするための PHP ソリューション_PHP チュートリアル
Cookie は良いものですが、一部のクライアント ブラウザは Cookie を無効にするため、Cookie に依存するプログラムが失敗したり、エラーが発生したりすることがあります。では、ユーザーが本当に Cookie を閉じた場合、PHP はどのようにセッションを再度使用する必要があるのでしょうか? 。
1. php.ini で session.use_trans_sid = 1 を設定するか、enable-trans-sid オプションをオンにして、PHP がページ間でセッション ID を自動的に渡すようにします。
2. URL を通じて値を手動で渡し、非表示のフォームを通じてセッション ID を渡します。
3. session_id をファイルやデータベースなどに保存し、クロスページプロセス中に手動で呼び出します。
アプローチ例1:
s1.php
1
2session_start();
3$_SESSION[’var1’]="ソースコード愛好家";
4$url="次のページ";
5echo $url;
6?>
s2.php
1
2session_start();
3echo "渡されたセッション変数 var1 の値は次のとおりです: ".$_SESSION[’var1’];
4?>
上記のコードを実行すると、クライアントのCookieが正常であれば「Source Code Lover」という結果が得られるはずです。
このときクライアントのCookieをオフにすると結果が得られない可能性がありますので、php.iniでsession.use_trans_sid = 1を設定するか、コンパイル時に--enable-trans-sidオプションをオンにするとよいでしょう。この時点で、「ソースコード愛好家」という結果を再取得できます
アプローチ例2:
s1.php
1
2session_start();
3$_SESSION[’var1’]="ソースコード愛好家";
4$sn = session_id();
5$url="次のページ";
6echo $url;
7?>
s2.php
1
2session_id($_GET[’s’]);
3session_start();
4echo "渡されたセッション変数 var1 の値は次のとおりです: ".$_SESSION[’var1’];
5?>
フォームを非表示にする基本原則は上記と同じです。
パス3の例:login.html
mylogin1.php
01
02$name=$_POST['name'];
03$pass=$_POST['pass'];
04if(!$name || !$pass) {
05echo "ユーザー名またはパスワードが空です。もう一度ログインしてください。";
06die();
07}
08if (!($name=="youngong" && $pass=="123") {
09echo "ユーザー名またはパスワードが間違っています。もう一度ログインしてください。";
10die();
11}
12//登録ユーザー
13ob_start();
14session_start();
15$_SESSION['user']= $name;
16$psid=session_id();
17$fp=fopen("e:tmpphpsid.txt","w+";
18fwrite($fp,$psid);
19fclose($fp);
20//本人確認が成功しました。関連する操作を実行します
21echo「ログインしました
」「;
」22echo "次のページ";
23?>
mylogin2.php
01
02$fp=fopen("e:tmpphpsid.txt","r";
03$sid=fread($fp,1024);
04fclose($fp);
05session_id($sid);
06session_start();
07if(isset($_SESSION[’user’]) && $_SESSION[’user’]="老公" {
08echo "ログインしました!";
09}
10else {
11//関連する操作を実行するために正常にログインしました
12echo "ログインしていません、アクセス権がありません";
13echo "閲覧するにはログインしてください";
14die();
15}
16?>
Cookie をオフにしてもう一度お試しください。ユーザー名: youngong パスワード: 123 ファイルを通じてセッション ID を保存します。e:tmpphpsid.txt です。データベースの利用方法については例を挙げませんが、ファイルの操作方法と同様です。上記のメソッドには共通点が 1 つあります。それは、前のページでセッション ID を取得し、それを次のページに渡す方法を見つけて、次のページの session_start() の前にコード session_id (渡されたセッション ID) を追加することです。ページ; 何かの参考になれば幸いです。
。
aphpDependencyInjectionContaineriSATOULTAINATINAGECLASSDEPTINCIES、強化測定性、テスト可能性、および維持可能性。

SELECT DEPENTENCINGINOFCENT(DI)大規模なアプリケーションの場合、ServicElocatorは小さなプロジェクトまたはプロトタイプに適しています。 1)DIは、コンストラクターインジェクションを通じてコードのテスト可能性とモジュール性を改善します。 2)ServiceLocatorは、センター登録を通じてサービスを取得します。これは便利ですが、コードカップリングの増加につながる可能性があります。

phpapplicationscanbeoptimizedforspeedandEfficiencyby:1)enabingopcacheinphp.ini、2)PreparedStatementswithpordatabasequeriesを使用して、3)LoopswithArray_filterandarray_mapfordataprocessing、4)の構成ngincasaSearverseproxy、5)

PHPemailvalidationinvolvesthreesteps:1)Formatvalidationusingregularexpressionstochecktheemailformat;2)DNSvalidationtoensurethedomainhasavalidMXrecord;3)SMTPvalidation,themostthoroughmethod,whichchecksifthemailboxexistsbyconnectingtotheSMTPserver.Impl

tomakephpapplicationsfaster、followthesesteps:1)useopcodecachinglikeopcacheTostoredscriptbytecode.2)最小化abasequeriesecachingingindexing.3)leveragephp7機能forbettercodeefficiency.4)

依存性注入(DI)は、明示的に推移的な依存関係によりPHPコードのテスト可能性を大幅に改善します。 1)DI分離クラスと特定の実装により、テストとメンテナンスが柔軟になります。 2)3つのタイプのうち、コンストラクターは、状態を一貫性に保つために明示的な式依存性を注入します。 3)DIコンテナを使用して複雑な依存関係を管理し、コードの品質と開発効率を向上させます。

DatabaseQueryoptimizationInpholvesseveralstrategESTOEnhancePerformance.1)selectonlynlynlyndorycolumnStoredatedataTransfer.2)useindexingtospeedupdataretrieval.3)revenmecrycachingtostoreres sultsoffrequent queries.4)


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

WebStorm Mac版
便利なJavaScript開発ツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
