


パーミッションコードは32ビットのint型でバイナリで制御します。例えば、パーミッションコードの合計が1000の場合、4桁目はパーミッションがあり、それ以外はパーミッションが無いことを意味します。 ?
バイナリは、どのビットに権限があるかを示すために 32 ビットの int 型を使用します。 次の 32 ビット バイナリは、権限コードを示します。
すべてに権限がある場合: 11111111 11111111 11111111 11111111 // (以下の最初の 00000 は省略できます)
最小値のみ。 1 人目の許可: 00000000 00000000 00000000 00000001
1 人目の許可: 00000000 00000000 00000000 00000010
2 人目の許可: 00000000 0000 0000 00000 00000100
複数の権限: 00000000 00000000 0000000000000101 2人が権限を持っています)
私が欲しいもの質問したいのは、私の 0 番目の位置がアクセス許可の追加である場合、1 番目はアクセス許可の検索、2 番目はアクセス許可の更新、そして 3 番目はアクセス許可の削除です。
しかし、この人のアクセス許可が 1 つしかない場合、どうやって判断すればよいでしょうか?権限があるか、または指定された権限コードに複数の権限が含まれているかを判断するにはどうすればよいですか?
誰がメソッドを記述して、取得した許可コードをメソッドに入れて判断できるか見てみましょう?
実際、私が判断しなければならないのは、それをフロントエンドに配置し、フロントエンド インターフェイスに 4 つのチェック ボックスを表示することです。
追加 削除 変更 削除 // バックエンドが 2 つの権限があると判断した場合、ユーザーはインターフェイスに入るときに 2 つのチェック ボックスが表示されますが、このボックスは直接選択されていますか? ? ? ?ここで、PHP でのアクセス許可の設定の問題が発生します。アドバイスをいただけますか。 ? ? 、? ? /、? ? ? ?
ディスカッションへの返信 (解決策)
Linux の制限メソッドを試してください 777 755 .... フロントエンド表示ルートには
分割と判定があり、これらの 2 つのステップになるはずです。 。 。
私が見た権限のほとんどは、1、1、1、1、1、1、1、1 で、区別しやすいように区切り文字が付いています。
どのように分割したかはわかりませんが、実行できる小さな具体例があれば、それを超えて拡張できると思います。 。 。 。 。 。 。 。 。 。 。
非常に単純です。ビットは
$权限 = array( '增加' => 0b1, '查找' => 0b10, '更新' => 0b100, '删除' => 0b1000,);$权限字 = 0b101;foreach($权限 as $k=>$v) { printf("<input type=checkbox name=permit[] value=%s %s>%s<br>\n", $k, $权限字 & $v ? 'checked' : '', $k);}
<input type=checkbox name=permit[] value=增加 checked>增加<br><input type=checkbox name=permit[] value=查找 >查找<br><input type=checkbox name=permit[] value=更新 checked>更新<br><input type=checkbox name=permit[] value=删除 >删除<br>
$权限 = array( '增加' => 0b1, '查找' => 0b10, '更新' => 0b100, '删除' => 0b1000,);$权限字 = 0b101;foreach($权限 as $k=>$v) { printf("<input type=checkbox name=permit[] value=%s %s>%s<br>\n", $v, $权限字 & $v ? 'checked' : '', $k);}
<input type=checkbox name=permit[] value=1 checked>增加<br><input type=checkbox name=permit[] value=2 >查找<br><input type=checkbox name=permit[] value=4 checked>更新<br><input type=checkbox name=permit[] value=8 >删除<br>
複数の権限の問題を考慮すると、pow の 2 番目のパラメータは上向きに増加し続けることができます。理解できるかわかりません
$add=pow(2,1);//2$del=pow(2,2);//4$update=pow(2,3);//8$query=pow(2,4);//16//增加&删除$p=$add+$del;if(getstatus($p,1)){//1是查询 echo '有增加的权限<br>';}//增加&删除&修改$p=$add+$del+$update;if(getstatus($p,3)){//3是修改 echo '有修改的权限<br>';}if(!getstatus($p,4)){//4是查询 echo '没有查询的权限<br>';}function getstatus($status,$p){ $t = $status & pow(2, $p) ? 1 : 0; return $t;}
5階の方法を試しました。フロントエンドのコードにはインポートされた形式があり、出力がフロントエンドに入力されると、常にその形式に変換されません。何が起こっているのかわかりません。printf() の前にコードを追加する必要がありますか?ブロック名="本文">
< ;/ブロック> ,,,,,,,,,,,,,,,,,,,,,,,,,, 、、、、、、、、、、、、、、
Web ページのソース コードを表示する場合、これら
Web ページのソース コードを表示する場合、追加
更新
削除
このブロックにありませんか? ?解決策
単一のフラグにこの権限があるかどうかを判断するために 32 種類の権限を設定できるはずです
getAuth($postStatus, $targetStatus){ return $status & $targetStatus;}getAuth(0x21f, 0x78); //判断是否有 00000000 00000000 00000000 011111000权限
プログラムの観点から見ると、PHP でのこのアプローチは良いことよりも害があるようです。最適化効果; データ構造の観点からは、管理と検索が不便です
個人的な意見

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

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

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

ホットトピック











PHPでは、Password_hashとpassword_verify関数を使用して安全なパスワードハッシュを実装する必要があり、MD5またはSHA1を使用しないでください。 1)password_hashセキュリティを強化するために、塩値を含むハッシュを生成します。 2)password_verifyハッシュ値を比較して、パスワードを確認し、セキュリティを確保します。 3)MD5とSHA1は脆弱であり、塩の値が不足しており、最新のパスワードセキュリティには適していません。

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPで前処理ステートメントとPDOを使用すると、SQL注入攻撃を効果的に防ぐことができます。 1)PDOを使用してデータベースに接続し、エラーモードを設定します。 2)準備方法を使用して前処理ステートメントを作成し、プレースホルダーを使用してデータを渡し、メソッドを実行します。 3)結果のクエリを処理し、コードのセキュリティとパフォーマンスを確保します。

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。
