tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Lime
ERLEDIGT
NEIN
ANTWORTEN
12
ZUGRIFFE
554
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Purdey Purdey ist offline Mitglied Bronze
    Registriert seit
    Sep 2007
    Beiträge
    42
    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)
    PHP-Code:
    Array
    (
        [
    1] => Array
            (
                [
    rightID] => 1
                
    [hasright] => 1
            
    )

        [
    2] => Array
            (
                [
    rightID] => 2
                
    [hasright] => 0
            
    )

        [
    3] => Array
            (
                [
    rightID] => 3
                
    [hasright] => 0
            
    )


    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.
     

  2. #2
    Avatar von Maniac
    Maniac Maniac ist offline Mitglied Smaragd
    Registriert seit
    Apr 2007
    Ort
    Augsburg/Gersthofen (Bayern)
    Beiträge
    1.204
    In einer Schleife durchgehen, am besten eine Foreach-Schleife.
    Dann eine Bedingung die diese Werte abfägt:
    PHP-Code:
    foreach($array as $key => $value){
      if(
    $value['rightID'] == && $value['hasright'] == 1){
          
    // tu was
       
    }

    Das ganze könntest du mit einer switch-case Bedingung für alle Fälle am besten lösen.
     
    Die Schweine von heute sind unsere Schnitzel von morgen!

  3. #3
    Avatar von Anna Bolika
    Anna Bolika Anna Bolika ist offline Mitglied Silber
    Registriert seit
    Jan 2011
    Beiträge
    75
    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?!
     

  4. #4
    Kyôya Kyôya ist offline Mitglied Silber
    Registriert seit
    Nov 2011
    Ort
    Würzburg
    Beiträge
    62
    Hi,

    gute Idee

    Zitat Zitat von Anna Bolika Beitrag anzeigen
    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?!
    Eine weitere Variante ist, statt einem nummerischen Index, einen assoziativen zu nehmen. Die Namen im Beispiel sind frei erfunden.
    PHP-Code:
    <?php
    $rights 
    = array(
        
    'postEdit' => 1,
        
    'postDelete' => 0,
        
    'threadDelete' => 0,
    );
    ?>
    Gruß Kyôya Stefan
     
    Oracle Certified MySQL 5 Professional Developer
    Zend Certified PHP 5.3 Engineer

    Vorträge, Webinare, etc im Mayflower - Blog

  5. #5
    Purdey Purdey ist offline Mitglied Bronze
    Registriert seit
    Sep 2007
    Beiträge
    42
    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?
     

  6. #6
    Kyôya Kyôya ist offline Mitglied Silber
    Registriert seit
    Nov 2011
    Ort
    Würzburg
    Beiträge
    62
    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

  7. #7
    Purdey Purdey ist offline Mitglied Bronze
    Registriert seit
    Sep 2007
    Beiträge
    42
    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"?
     

  8. #8
    Kyôya Kyôya ist offline Mitglied Silber
    Registriert seit
    Nov 2011
    Ort
    Würzburg
    Beiträge
    62
    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

  9. #9
    Purdey Purdey ist offline Mitglied Bronze
    Registriert seit
    Sep 2007
    Beiträge
    42
    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?
     

  10. #10
    Kyôya Kyôya ist offline Mitglied Silber
    Registriert seit
    Nov 2011
    Ort
    Würzburg
    Beiträge
    62
    In dem Login-Script (oder wo auch immer die Rechte geladen werden):
    PHP-Code:
    $rights = array(
        
    'postEdit' => 1,
        
    'postDelete' => 0,
        
    'threadDelete' => 0,
    );

    $_SESSION['rights'] = $rights
    Auf der Seite, auf der die Rechte Rechte geprüft werden sollen:
    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

  11. #11
    Purdey Purdey ist offline Mitglied Bronze
    Registriert seit
    Sep 2007
    Beiträge
    42
    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
            )
     
    )
     

  12. #12
    Avatar von Lime
    Lime Lime ist gerade online frisch fruchtig
    Registriert seit
    Jul 2011
    Beiträge
    373
    Wie dir sicher aufgefallen ist, hast du jeweils doppelte Einträge:
    PHP-Code:
    Array
    (
        [
    1] => Array //1 ist dasselbe wie unten
            
    (
                [
    rightID] => //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
            
    )
     

    PHP-Code:
    Array
    (
        [
    1] => //rightID 1 hat hasRight 1
     
        
    [2] => //rightID 2 hat hasRight 0

    Gruß
    PS: die Variante von den anderen ist auch nicht schlecht, jedoch kommt es darauf an, was du genau machen willst...
    Purdey bedankt sich. 

  13. #13
    Purdey Purdey ist offline Mitglied Bronze
    Registriert seit
    Sep 2007
    Beiträge
    42
    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

  1. Antworten: 2
    Letzter Beitrag: 16.04.09, 15:35
  2. Antworten: 3
    Letzter Beitrag: 03.10.08, 15:52
  3. Webseite auslesen und in wert schreiben ?
    Von cora_x im Forum .NET Web und Kommunikation
    Antworten: 3
    Letzter Beitrag: 05.11.07, 09:57
  4. Antworten: 5
    Letzter Beitrag: 05.08.06, 17:50
  5. Arrayzugriff ohne Variable
    Von mille im Forum PHP
    Antworten: 2
    Letzter Beitrag: 09.05.05, 17:58

Stichworte