Frage zu UserManagment

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #31
    Guten Morgen!

    natürlich probier ich selbst rum und versuche es selbst zum laufen zu bringen!! Ich wende mich ja auch nur ans forum wenn ich wirklich nicht weiter weiß.

    Ich hab jetzt in die tabelle adminuser noch 5 spalten vom typ enum('N','Y') eingefügt und dann sechs benutzer angelegt!
    Einen benutzer "admin" mit den rechten Y,Y,Y,Y,Y,

    und die benutzer 1 - 5 mit den rechten Y,N,N,N,N
    N,Y,N,N,N
    N,N,Y,N,N
    N,N,N,Y,N
    N,N,N,N,Y


    Jetzt bin ich gerade dabei in meiner php-datei die benutzerrechte abzufragen!!

    Ich muss jetzt wohl erst einmal abfragen welche rechte der angemeldete Benutzer hat:!?

    Hab mir das so vorgestellt:

    select recht1, recht2, recht3, recht4, recht5 from adminuser where id = '$userinfo[Vorname]'

    Wie kann ich an diese abfrage jetzt eine if bedingung stellen!?

    z. b.

    if right1 = Y .....führe folgendes aus,
    if rihgt2 = Y......führe folgendes aus,
    if right3 = Y.....führe folgendes aus,
    if right4 = Y .....führe folgendes aus,
    if right5 = Y .....führe folgendes aus!!

    Liegen die Daten des Abgefragten Datensatzes als variablen vor?

    Gruß Flo

    Kommentar


    • #32
      > Ich muss jetzt wohl erst einmal abfragen welche rechte der angemeldete
      > Benutzer hat:!?

      > Hab mir das so vorgestellt:
      > select recht1, recht2, recht3, recht4, recht5 ....

      es sollte reichen, wenn du die userdata-fkt erweiterst. dann hast du alles im array userdata.

      > Wie kann ich an diese abfrage jetzt eine if bedingung stellen!?

      if (!$userdata["recht1"]) header("Location: admin.php");

      das schreibst du dann oben ins script rein. der user, der das recht nicht hat, wird zum menu geschickt.

      > Liegen die Daten des Abgefragten Datensatzes als variablen vor?

      s.o.
      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


      Kommentar


      • #33
        wenn ich das jetzt recht verstehe werden alle benutzer, die das recht haben zur admin.php geschickt, die anderen zur index.php (Login-Formular)?!?!?


        Ich will jedoch, dass benutzer mit unterschiedlichen rechten unterschiedliche datenbankabfragen erhalten!

        Ich hab das mal so versucht, funktioniert aber leider irgendwie nicht!

        PHP-Code:

        <?php

          session_start
        ();
          include(
        "connect2db.inc.php");
          include(
        "usermanagment.inc.php");

          
        $userinfo CheckUserSession(session_id());

         include(
        "config.php");


        $db mysql_connect("localhost""root""");
        mysql_select_db("wp_project",$db);

        $result mysql_query(
        "SELECT right1, right2, right3, right4, right5 FROM adminuser userid ='$userinfo[userid]');
        if (!
        $result) {
        echo("
        <P>Error performing query" .
        mysql_error() . "
        </P>");
        exit();
        }

        if (right1 == 'Y') {
        // Request info
        $result = mysql_query(
        "
        SELECT FROM kummerkasten WHERE status and range Äpfel order by time desc");
        if (!
        $result) {
        echo("
        <P>Error performing query" .
        mysql_error() . "
        </P>");
        exit();
        }}

        if (right2 == 'Y') {
        // Request info
        $result = mysql_query(
        "
        SELECT FROM kummerkasten WHERE status and range Birnen order by time desc");
        if (!
        $result) {
        echo("
        <P>Error performing query" .
        mysql_error() . "
        </P>");
        exit();
        }}

        if (right3 == 'Y') {
        // Request info
        $result = mysql_query(
        "
        SELECT FROM kummerkasten WHERE status and range Bananen order by time desc");
        if (!
        $result) {
        echo("
        <P>Error performing query" .
        mysql_error() . "
        </P>");
        exit();
        }}

        if (right4 == 'Y') {
        // Request info
        $result = mysql_query(
        "
        SELECT FROM kummerkasten WHERE status and range Orangen order by time desc");
        if (!
        $result) {
        echo("
        <P>Error performing query" .
        mysql_error() . "
        </P>");
        exit();
        }}

        if (right5 == 'Y') {
        // Request info
        $result = mysql_query(
        "
        SELECT FROM kummerkasten WHERE status and range Kiwi order by time desc");
        if (!
        $result) {
        echo("
        <P>Error performing query" .
        mysql_error() . "
        </P>");
        exit();
        }}


        Ich erhalt da folgenden Fehler:
        Parse error: parse error, unexpected '>' in c:\programme\apache group\apache\htdocs\admin_unreplyed.php on line 18

        In der Zeile 18 steht: echo("<P>Error performing query: " .

        Kommentar


        • #34
          prüf doch mal dienen syntax.


          in der ersten query fehlt ein "

          oder

          if ($right1 == 'Y') {


          usw. wenn du keine parse-errors mehr hast, gehts sehrwohl
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #35
            irgendetwas scheint mit der if-anweisung noch nicht zu stimmen, da sie scheinbar nicht aufgerufen wird!

            Es erfolgt keine Ausgabe dessen, was im if-block steht!

            Allerdings kommt auch keine Fehlermeldung!?



            Sieht so aus:

            PHP-Code:
            $result = mysql_query(
            "SELECT right1, right2, right3, right4, right5 FROM adminuser WHERE userid ='$userinfo[UserId]'");
            if (!$result) {
            echo("<P>Error performing query: " .
            mysql_error() . "</P>");
            exit();
            }

            if (right1 == 'Y') {
            // Request info
            $result = mysql_query(
            "SELECT * FROM kummerkasten WHERE status = 0 order by time desc");
            if (!$result) {
            echo("<P>Error performing query: " .
            mysql_error() . "</P>");
            exit();
            }

            ?>
            <body bgcolor="#cccccc" link="#ffcc33" alink="#ffcc33" vlink="#ffcc33">
            <table bgcolor="#FFFFFF" cellspacing="0" cellpadding="0" align="center" >
            <tr>
                <td colspan="6"><img src="images/logo_oben.jpg" border="0"></td>
            </tr>
            <tr>
            <td><a href="admin_unreplyed.php"><img src="images/links.jpg" border="0"></a></td>
            <td><a href="admin_replyed.php"><img src="images/mitte.jpg" border="0"></a></td>
            <td><a href="admin_deathline.php"><img src="images/rechts.jpg" border="0"></a></td>
            <td><a href="index.php?action=logout"><img src="images/logout.jpg" border="0"></a></td>
            </tr>
            </table>

            <br>

            <table bgcolor="#FFCC33" width="90%" align="center" cellpadding="0" cellspacing="0">
            <colgroup>
            <col width="5%">
            <col width="5%">
            <col width="22%">
            <col width="10%">
            <col width="20%">
            <col width="15%">
            <col width="10%">
            <col width="8%">
            </colgroup>  
            <tr> 
                <th colspan="8"><br><font face="Arial" size="5">Offene Kommentare</font><p><p></th>
            </tr>
            <tr>
                <td><font face ="arial" size="2"><p align ="center"><b>lfd. #</b></p></font></td>
                <td><font face ="arial" size="2"><p align ="center"><b>Info</b></p></font></td>
                <td><font face ="arial" size="2"><b>Name</b></font></td>
                <td><font face ="arial" size="2"><b>Kundennr.</b></font></td>
                <td><font face ="arial" size="2"><b>Produktkategorie</b></font></td>
                <td><font face ="arial" size="2"><b><p align ="center">erstellt am</p></b></font></td>
                <td><font face ="arial" size="2"><b><p align ="center">beantworten</p></b></font></td>
                <td><font face ="arial" size="2"><b><p align ="center">löschen</p></b></font></td>
                </tr>
            <tr><td><br></td></tr>
            </table>

              <?php


            // Display the text
            while ( $row mysql_fetch_array($result) ) {
            $ticketnum=$row["id"];
            $name=$row["name"];
            $kdnr=$row["kdnr"];
            $maschinennr=$row["maschinennr"];
            $ordernr=$row["ordernr"];
            $range=$row["range"];
            $comment=$row["comment"];
            $solution=$row["solution"];
            $attachment=$row["attachment"];
            $status =$row["status"];
            $know =$row["know"];
            $time =$row["time"];


            echo 
            '<table bgcolor="#ffCC33" width="90%" align="center" cellpadding="0" cellspacing="0" >
            <colgroup>
            <col width="5%">
            <col width="5%">
            <col width="22%">
            <col width="10%">
            <col width="20%">
            <col width="15%">
            <col width="10%">
            <col width="8%">
            </colgroup>
            <tr>
            <td><p align="center"><font face ="arial" size="2">'
            .$ticketnum.'</p></font></td>
            <td><p align="center"><a href="admin_details.php?id='
            .$ticketnum.'"><img src ="images/button_lupe.gif"></p></td>
            <td><p align="left"><font face="arial" size="2">'
            .$name.'</p></font></td>
            <td><p align="left"><font face="arial" size="2">'
            .$kdnr.'</p></font></td>
            <td><font face="arial" size="2">'
            .$range.'</font></td>
            <td><p align="center"><font face="arial" size="2">'
            .$time.'</p></td>
            <td><p align="center"><a href="admin_update.php?id='
            .$ticketnum.'"><img src ="images/edit.gif"></p></td>
            <td><p align="center"><a href="admin_del_entry.php?action=delete&id='
            .$ticketnum.'"><img src ="images/bin.gif"></p></td>
            </tr>
            </table>'
            ;

            }}

            ... 
            nächste if-anweisung...
            Kann es sein dass die erste query (an die adminuser-tabelle) nicht stimmt? Sonst müsste er doch merken dass bei dem eingeloggten benutzer das right1 auf Y steht!?!?

            Gruß Flo

            Kommentar


            • #36
              Kann es sein dass die erste query (an die adminuser-tabelle) nicht stimmt? Sonst müsste er doch merken dass bei dem eingeloggten benutzer das right1 auf Y steht!?!?
              die abfrage stimmt schon, wenn du keine fehlermeldung bekommst.

              aber ich vermisse mysql_fetch_array() da oben.
              wie soll dein script denn an die daten kommen?
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #37
                aha, mysql_fetch_array() ist der übeltäter!

                Damit ich auch was daraus lerne:

                die funktion mysql_fetch_array() speichert doch die ergebnisse einer abfrage in einem Array, soweit ich das in dem buch gelesen habe!

                folglich muss doch die übergebene variable auch die variable sein, in der die abfrage gespeichert ist, oder?

                bei mir müsste das doch so aussehen:

                mysql_fetch_array($result);

                Ich hab die Zeile zwischen der Abfrage der admin-user-tabelle und der ersten if-anweisung reingeschrieben!!

                Hab schon im Forum nach mysql-fetch-array() gesucht.
                Doch meistens handelt es sich da immer um while schleifen mit while (mysql_fetch_array(...))

                Und eine while schleife brauch ich da doch nicht, will ja nur die daten der einen abfrage in dem array speichern!! Oder etwa doch???

                Wie funktioniert das mit den variablen die an das mysql_fetch_array übergeben werden und was geschieht damit!?

                Ich blick mit bei diesem mysql_fetch_array() noch nicht ganz durch!

                Wäre super wenn du mir das erklären könntest damit auch ich es versteh!!

                Denn wenn man es kapiert hat versteht man wohl auch warum es notwenig ist!!

                Vielen Dank für deine Mühe!

                Gruß Flo

                Kommentar


                • #38
                  Hab schon im Forum nach mysql-fetch-array() gesucht.
                  Doch meistens handelt es sich da immer um while schleifen mit while (mysql_fetch_array(...))
                  hast du auch mal im php-handbuch geschaut?

                  die while brauchst du nur, wenn mehrere datensätze zurückkommen. da aber die userid nur einmal da ist, brauchst du kein while. hauptsache du bist dir sicher, dass EIN datensatz zurückgeliefert wird.

                  um auf nummer sicher zu gehen, kannst du noch ein 'LIMIT 1' an die query anhängen.

                  und man sollte auch mit mysql_num_rows() prüfen, ob nicht evtl. 0 datensätze zurück gegeben werden. z.b. wenn kein user existiert. einfach mal im handbuch schauen.
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar

                  Lädt...
                  X