ホームページ バックエンド開発 PHPチュートリアル yii2 と php の (逆) シリアル化の落とし穴

yii2 と php の (逆) シリアル化の落とし穴

Jul 29, 2016 am 08:52 AM
console rbac

yii2 でのロールの記録に関するメモ

今日、私は yii2 用の RBAC アプリケーションを作成し、ロールに関する元のレコードを単純に変更して新しい権限に切り替えるつもりでしたが、次のエラーが発生しました:

  • unserialize(): Error at offset 36 of 127 bytes

権限構造 (権限名、ロール名、使用される authManager タイプ) の問題を解決した後、記録されたロールのデータを変更することが問題の原因であると思います。元の記録された権限データは次のとおりです:


  • O:30:"consolerbacProfileAccessRule":3:{s:4:"name";s:14:"viewOwnProfile";s:9:"createdAt";i: 1460293714; s:9:”updatedAt”;i:1460293714;}

PHPのシリアル化された配列なので、元の配列では添え字や値に関わらず、値(文字列)の形で現れます。 ) 直列化後、それらの添え字はすべて独自の長さになります (したがって、O:30 は合計 30 文字の単語 consolebacProfileAccessRule を指し、i などの数字で表されるものは長さを示す必要がないことも説明されています)。 :1460293714;)。解決策は非常に簡単で、主にシリアル化形式の問題です。変更された権限レコードは次のとおりです:


  • O:28:"consolerbacAdminAccessRule":3:{s:4:"name";s:10:"visitAdmin";s:9:"createdAt";i:1460293714 ; s:9:”updatedAt”;i:1460293714;}

コードを書くということは、コードに何が含まれているかを理解し、作業ステップから一つずつ解決することを意味します。些細な問題は気にならないでしょう。結局のところ、私たちは長い間それについて考えてきました。間違いがなければ、もっと革新的なコードを書いていたかもしれません。

')​​.addClass('事前番号付け').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

以上、yii2 と php (de)serialization の落とし穴について、yii と php の内容も含めて紹介しましたが、PHP チュートリアルに興味のある友人の参考になれば幸いです。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

コンソールってどういう意味ですか? コンソールってどういう意味ですか? Sep 05, 2023 pm 02:43 PM

コンソールとは、コンソールを意味します。コンピュータ システムと対話するデバイスまたはソフトウェアです。通常は、情報を入力および出力するためのキーボードと画面を備えたデバイスです。コンソールは、もともと大型コンピュータ システムに使用され、後に個人用にも適用されました。ユーザーがコンピュータ システムを管理および保守したり、オペレーティング システムやアプリケーションをインストールしたり、プログラムをデバッグしたりするのに役立ちます。

新しいNintendo Switch Liteのリフレッシュの予約注文が開始されました 新しいNintendo Switch Liteのリフレッシュの予約注文が開始されました Jun 29, 2024 am 06:49 AM

任天堂は、最新バージョンのSwitch Lite(Amazonで現在189.99ドル)の予約注文を開始した。ただし、このデバイスはまだ世界中で注文できません。要約すると、同社はほぼ 2 週間前に Switch Lite Hyrule Edition を発表しました。

C# の Console.Clear 関数を使用してコンソール出力をクリアする C# の Console.Clear 関数を使用してコンソール出力をクリアする Nov 18, 2023 am 11:00 AM

C# で Console.Clear 関数を使用して、コンソール出力をクリアします。C# コンソール アプリケーションでは、新しいコンテンツを表示したり、より良いユーザー エクスペリエンスを提供したりするために、コンソールの出力情報をクリアする必要があることがよくあります。 C# には、この関数を実装するための Console.Clear 関数が用意されています。これにより、コンソールの出力をクリアしてインターフェイスを再び空白にすることができます。 Console.Clear 関数の呼び出し形式は次​​のとおりです: Console.Clear(); この関数は入力を必要としません。

コンソールとはどういう意味ですか コンソールとはどういう意味ですか Aug 09, 2023 pm 04:21 PM

コンソールは、コンピューター プログラムでテキストやコマンドを入出力するために使用される対話型インターフェイスです。オペレーティング システムや開発環境が異なると、コンソールの外観や機能も異なります。通常、コマンド ライン インターフェイスまたはコマンド ライン プロンプトを提供するテキスト インターフェイスで、ユーザーがキーボードからコマンドを入力し、プログラムの出力を表示できるようにします。

任天堂、Switch 2発売前に新たなSwitch Liteのリフレッシュを発表 任天堂、Switch 2発売前に新たなSwitch Liteのリフレッシュを発表 Jun 20, 2024 am 09:41 AM

任天堂は昨日、最新の Nintendo Direct イベントで多くのゲームを発表しましたが、その概要については別途ご案内しました。さらに、同社は Switch Lite の新バージョン (Amazon で現在 194.93 ドル) も発表しました。

MagicX XU Mini M: 分解により、宣伝されていた RK3562 ではなく RK3326 CPU が明らかに、MagicX はサードパーティ開発者との関係を断つ MagicX XU Mini M: 分解により、宣伝されていた RK3562 ではなく RK3326 CPU が明らかに、MagicX はサードパーティ開発者との関係を断つ Sep 01, 2024 am 06:30 AM

最近 MagicX XU Mini M を購入した方は、このニュースは驚くかもしれません。新しくリリースされたハンドヘルド コンソールのハードウェアとソフトウェアの分解により、宣伝されている RK3562 CPU が実際にはスペックの低い古い RK3326 プロセッサであることが明らかになりました。

コンソールインターフェイスとは何ですか? コンソールインターフェイスとは何ですか? Aug 08, 2023 am 11:15 AM

コンソール インターフェイスは、コンピュータのコマンド ラインやブラウザ開発ツールで情報を出力するためのツールで、出力結果やアプリケーションのデバッグ情報を簡単に記録および表示する方法を提供します。コンソール インターフェイスを使用することで、開発者はより効果的に問題を特定して解決し、アプリケーションのパフォーマンスを最適化し、開発効率を向上させることができます。コマンド ラインでもブラウザ開発ツールでも、コンソール インターフェイスは不可欠なツールです。

C# で Console.WriteLine() を使用する方法 C# で Console.WriteLine() を使用する方法 Feb 25, 2024 pm 02:36 PM

C# で Console.WriteLine() を使用するには、特定のコード サンプルが必要です。C# の Console.WriteLine() は、テキスト行をコンソールに出力するために使用される非常に一般的なメソッドです。この関数は、他のプログラミング言語の print() 関数または println() 関数に似ています。 Console.WriteLine() の使い方は非常に簡単で、括弧内に出力したいテキストを書いて Enter キーを押すだけです。以下は具体的なものです

See all articles