1Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
12
12
ZUGRIFFE
554
554
EMPFEHLEN
-
Hallo ich habe ein Array mit folgenden Aufbau.
Wie kann ich jetzt prüfen ob bei rightID =1, hasright auch = 1 ist? (bestenfalls aus der Usersession)
Um es die ganze Zeit verwenden könnte würde ich gern das Array in eine Session schreib um dann von da aus die Prüfung rightID =1 darf er oder darf er nicht (hasright =1 oder hasright = 0) durchführen zu können.PHP-Code:Array
(
[1] => Array
(
[rightID] => 1
[hasright] => 1
)
[2] => Array
(
[rightID] => 2
[hasright] => 0
)
[3] => Array
(
[rightID] => 3
[hasright] => 0
)
)
-
23.11.11 23:00 #2
In einer Schleife durchgehen, am besten eine Foreach-Schleife.
Dann eine Bedingung die diese Werte abfägt:
Das ganze könntest du mit einer switch-case Bedingung für alle Fälle am besten lösen.PHP-Code:foreach($array as $key => $value){
if($value['rightID'] == 1 && $value['hasright'] == 1){
// tu was
}
}
Die Schweine von heute sind unsere Schnitzel von morgen!
-
24.11.11 10:45 #3
In einem Anflug von Prophetie, was du machen wollen könntest, würde ich dir empfehlen, das Array anders aufzubauen.
Warum schreibst du rightID nicht in den key und nimmst hasright als value?
Dein Array oben sähe dann etwa so aus:
// rightID => hasright
1 => 1
2 => 0
3 => 0
Das würde doch den Zugriff darauf unkomplizierter machen?!
-
Oracle Certified MySQL 5 Professional Developer
Zend Certified PHP 5.3 Engineer
Vorträge, Webinare, etc im Mayflower - Blog
-
Danke für die Möglichkeiten nur wie bringe ich das array dann mit in die session so das ich immer drauf zugreifen kann?
Also ich will dann halt steuern können ob der user den button sehen darf oder nicht?
Da ich die Ressourcen schonen möchte würde ich halt gern einmal in die Session schreiben und immer nur von da auslesen?
-
Hi,
das ist einfacher als du vielleicht denkst
PHP-Code:$rights = array(
'postEdit' => 1,
'postDelete' => 0,
'threadDelete' => 0,
);
$_SESSION['rights'] = $rights;
Oracle Certified MySQL 5 Professional Developer
Zend Certified PHP 5.3 Engineer
Vorträge, Webinare, etc im Mayflower - Blog
-
und dann kann ich auch wieder drauf zugreifen in dem speziel postedit abfrage?
Scheint echt einfacher zu sein als ich dachte.
wie wäre das dann? oder muss man dann das array erst wieder "aufklappen"?
-
Kurz und knapp:
PHP-Code:$rights = $_SESSION['rights'];
Oracle Certified MySQL 5 Professional Developer
Zend Certified PHP 5.3 Engineer
Vorträge, Webinare, etc im Mayflower - Blog
-
Danke kannst du das nochmal an dem Bsp. oben festmachen?
Weil ich wölte ja jetzt bspw. an Stelle X wissen ob postdelete mit dem Recht vorhanden ist?
-
In dem Login-Script (oder wo auch immer die Rechte geladen werden):
Auf der Seite, auf der die Rechte Rechte geprüft werden sollen:PHP-Code:$rights = array(
'postEdit' => 1,
'postDelete' => 0,
'threadDelete' => 0,
);
$_SESSION['rights'] = $rights;
PHP-Code:$rights = $_SESSION['rights'];
if (isset($rights['postDelete']) && $rights['postDelete'] == 1) {
// do something
}
Oracle Certified MySQL 5 Professional Developer
Zend Certified PHP 5.3 Engineer
Vorträge, Webinare, etc im Mayflower - Blog
-
Das klingt echt alles ganz gut:
nur eine kleine Frage habe ich noch, wie bringe ich mein Array in eure Form:
Ausgangspunkt ist ja immernoch:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
Array ( [1] => Array ( [rightID] => 1 [hasright] => 1 ) [2] => Array ( [rightID] => 2 [hasright] => 0 ) [3] => Array ( [rightID] => 3 [hasright] => 0 ) [4] => Array ( [rightID] => 4 [hasright] => 0 ) [5] => Array ( [rightID] => 5 [hasright] => 0 ) )
-
Wie dir sicher aufgefallen ist, hast du jeweils doppelte Einträge:
PHP-Code:Array
(
[1] => Array //1 ist dasselbe wie unten
(
[rightID] => 1 //hier, genau dieselbe 1. Du kannst also diese ID weglassen, und einfach die 1 von vorne nehmen
[hasright] => 1
)
[2] => Array
(
[rightID] => 2
[hasright] => 0
)
[3] => Array
(
[rightID] => 3
[hasright] => 0
)
[4] => Array
(
[rightID] => 4
[hasright] => 0
)
[5] => Array
(
[rightID] => 5
[hasright] => 0
)
)
GrußPHP-Code:Array
(
[1] => 1 //rightID 1 hat hasRight 1
[2] => 0 //rightID 2 hat hasRight 0
)
PS: die Variante von den anderen ist auch nicht schlecht, jedoch kommt es darauf an, was du genau machen willst...
-
Okay okay, das ist soweit alles ganz cool. Werde ich jetz mal so implementieren, das es funktioniert.
Nächste Frage: Ich möchte nun in der Userverwaltung ein Seite mit Rechten abbilden, d.h.
Es wird verschiedene Bereiche hinter den Rechten geben (Stammdaten, Artikel) und ich möchte Pro Katgeorie einen Tab darstellen und in jedem Tab nur die entsprechenden Rechte? Wie bildet man sowas ab? Zusätzlich sollte sofern hasRight bei [1] => 1 ist auch einen Haken in der Checkbox sehen?
Hat jemand nen Ansatz für mich?
Vielen Dank vorab!
Ähnliche Themen
-
Formularfelder ind Session speichern, anschließend auslesen und session löschen
Von Fabian Frank im Forum PHPAntworten: 2Letzter Beitrag: 16.04.09, 15:35 -
Wert aus mySQL-Tabelle auslesen und je nach Wert vorher definierten Text ausgeben
Von RaffivK im Forum Relationale DatenbanksystemeAntworten: 3Letzter Beitrag: 03.10.08, 15:52 -
Webseite auslesen und in wert schreiben ?
Von cora_x im Forum .NET Web und KommunikationAntworten: 3Letzter Beitrag: 05.11.07, 09:57 -
Smarty: Arrayzugriff mithilfe von Variablen?
Von mille im Forum PHPAntworten: 5Letzter Beitrag: 05.08.06, 17:50 -
Arrayzugriff ohne Variable
Von mille im Forum PHPAntworten: 2Letzter Beitrag: 09.05.05, 17:58





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren