While-Schleife

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

  • While-Schleife

    [COLOR=red]If-Abfrage unten in der Whileschleife editiert um etwas Verwirrung wegzunehmen [/COLOR]

    Folgender code:
    PHP-Code:
    $query $db->query("SELECT pid, userid, text, date, views FROM {$config["tables"]["ugb_ubook"]} WHERE ugbid = '$_GET[ugbid]' ORDER BY pid DESC");
    if(
    $db->num_rows($query) == 0) { echo $func->no_items("Gästebuch-Einträge","","rlist"); }
    else {
        while(
    $row $db->fetch_array($query)){
            
    $pid $row["pid"];
            
            
    $templ['ugb']['ubook']['case']['info']['post']['pid']                 = $pid;    
            
    $templ['ugb']['ubook']['case']['info']['post']['text']                 = $func->db2text2html($row["text"]);
            
    $templ['ugb']['ubook']['case']['info']['post']['poster']['userid']     = $row["userid"];
            
    $templ['ugb']['ubook']['case']['info']['post']['date']                 = $func->unixstamp2date($row["date"],"daydatetime");
            
            
            
    $userdata $ugbfunc->getuserinfo($row["userid"]);
                
                
                
                
    $templ['ugb']['ubook']['case']['info']['post']['poster']['username']     = $userdata["username"];
                
    $templ['ugb']['ubook']['case']['info']['post']['poster']['type']         = $userdata["type"];
                
    $templ['ugb']['ubook']['case']['info']['post']['poster']['avatar']        = $userdata["avatar"];
                
    $templ['ugb']['ubook']['case']['info']['post']['poster']['signature']     = $func->db2text2html($userdata["signature"]);
            
            if(
    $auth["userid"] == $row["userid"])     eval("\$templ['ugb']['ubook']['case']['info']['post']['edit'] = \""$func->gettemplate("ugb_ubook_post_edit")."\";");
            
            eval(
    "\$templ['ugb']['ubook']['case']['control']['rows'] .= \""$func->gettemplate("ugb_ubook_row")."\";");
            
                        
        } 
    // while

    Problem:
    PHP-Code:
    if($auth['type'] > OR $auth["userid"] == $row["userid"])     eval("\$templ['ugb']['ubook']['case']['info']['post']['edit'] = \""$func->gettemplate("ugb_ubook_post_edit")."\";"); 
    ich möchte standard benutzern die Möglichkeit geben einen Eitrag den sie ins GB geschrieben haben zu ändern, jedoch nur jene Einträge die von ihnen stammen.
    Ist im GB noch kein Eintrag von solch einem Standard-user, so werden auch keine ändern und löschen buttons angezeigt. Postet solch ein user, werden plötzlich bei jedem Eintrag egal ob er von selbigem User stammt oder nicht, die möglichkeiten ändern und löschen angezeigt.

    Wie müsste ich die Bedingung oder vielleicht sogar die Whileschleife ändern?

    MFG deschmiddi
    Zuletzt geändert von deschmiddi; 16.02.2004, 17:00.
    Geht net gibts net...

  • #2
    PHP-Code:
    if($auth['type'] > OR $auth["userid"] == $row["userid"]) 
    sollte das nicht AND heissen?
    Kissolino.com

    Kommentar


    • #3
      Nein

      type 1 = Benutzer
      2 = Administrator
      3 = Webmaster

      Man soll nur ändern können, wenn man entweder mindestens die rechte eines Admins hat oder der Eintrag der geändert oder gelöscht werden soll, stammt von einem selbst( dann ist es egal ob man user oder admin ist)


      im moment kann ich jedenfalls wenn ich user bin sowohl meinen eigenen Eintrag löschen/ändern wie auch die Einträge von anderen usern was aber nur einem Admin oder webmaster erlaubt ist
      Geht net gibts net...

      Kommentar


      • #4
        Hat den keiner ne Lösung für mein Problem?
        Ich hab jetzt schon so einiges versucht und hier im Board geforstet aber ich find einfach nix...

        Scheint so als wär das mal wieder ne Aufgabe für Genies wie Abraxax oder de Mr. happyness

        Bitte helft mir... so e kleiner Tipp würd auch schon reiche...
        Hauptsach Lerneffekt und dass es funzt

        MFG deschmiddi
        Geht net gibts net...

        Kommentar


        • #5
          ich find deinen aufbau etwas unübersichtlich ... das geht anderen
          wahrscheinlich genauso, aber ... du packst die edit-information in ein
          array: ... ]['post']['edit'] = ...; das scheint mir das generelle array aller
          posts zu sein, du willst aber das ganze auf den poster eingrenzen ... imho
          musst du noch eine ebene tiefer ... ansonsten bin ich mit meinem latein am
          ende und meine glaskugel auch
          Kissolino.com

          Kommentar


          • #6
            wie wird denn $auth['type'] ermitteln

            Kommentar


            • #7
              $auth['type'] wird beim einloggen ermittelt und aus der db geholt.
              dann in der session gespeichert und steht so bis zum logout aus dem system zur verfügung.

              @ Wurzel ne ebene Tiefer?
              haste da ein Beispiel für?

              Sieht kompliziert aus der Code weil er hat auf Templatebasis arbeitet...
              ich dachte jedoch es wär net so schlimm weil sich das problem ja auf die whileschleife begrenzt...

              ich müsst irgenteinen in der session gespeicherten wert in der angesprochenen if-abfrage mit einem wert vergleichen können, den derjenige der gepostet hat, hatte. Stimmen diese so wird edit erlaubt, anders nicht. Dieses müsste er bei jedem eintrag überprüfen...

              im moment macht mei script es aber so, dass wenn kein eintrag vorhanden ist der übereinstimmt auch keine edit funktion erlaubt wird, findet er jedoch einen, so erlaubt er die edit funktion auch bei allen anderen einträgen

              *g* bische kompliziert klingt ... hann ihrs verstann wie ich meine?
              wenn net poste ich mal e pic

              Gruß deschmiddi
              Geht net gibts net...

              Kommentar


              • #8
                Original geschrieben von deschmiddi
                @ Wurzel ne ebene Tiefer?
                haste da ein Beispiel für?
                wer hat das denn verzapft? du oder ich?

                ich rate, es gehört hierhin:
                PHP-Code:
                $templ['ugb']['ubook']['case']['info']['post']['poster']['edit'] = ...;
                //NICHT
                $templ['ugb']['ubook']['case']['info']['post']['edit'] = ...; 
                btw: wozu nimmst du eval an der stelle?
                Kissolino.com

                Kommentar


                • #9
                  ich nehme eval aus folgendem grund: weil eval einen string auswertet als wär es php-code

                  PHP-Code:

                  eval("\$templ['ugb']['ubook']['case']['info']['post']['edit'] = \""$func->gettemplate("ugb_ubook_post_edit")."\";"); 
                  Anmerkung: alle arrays...['post']['poster']... enthalten nur die daten der person, die den Eintrag gemacht hat...


                  die ugb_ubook_post_edit.htm

                  <a href="?mod=ugb&action=edit&mode=pchange&pid=$pid">
                  <img src="design/standard/images/buttons_edit.gif" alt="Eintrag &auml;ndern" border="0"></a>
                  <a href="?mod=ugb&action=edit&mode=pdelete&pid=$pid">
                  <img src="design/standard/images/buttons_delete.gif" alt="Eintrag l&ouml;schen" border="0"></a>


                  verweist quasi auf nen Button



                  ausgegeben wird der dann hinterher in der ugb_ubook_row.htm

                  <tr>
                  <td class="tbl_1" height="30" colspan="2">
                  <table width="100%" cellspacing="0" cellpadding="3" class="tbl_1">
                  <tr>
                  <td width="100" align="left" valign="top" class="tbl_1" nowrap> <b>{$templ['ugb']['ubook']['case']['info']['post']['poster']['username']}</b>
                  <a href="?mod=usrmgr&action=details&userid={$templ['board']['thread']['case']['info']['post']['poster']['userid']}">
                  <img src="design/standard/images/arrows_user.gif" alt="Benutzerdetails anzeigen" border="0"></a>
                  <br>
                  {$templ['ugb']['ubook']['case']['info']['post']['poster']['type']} <br>
                  <br>
                  {$templ['ugb']['ubook']['case']['info']['post']['poster']['avatar']}
                  <br>
                  <br>
                  Aus: {$templ['ugb']['ubook']['case']['info']['post']['poster']['city']}<br>
                  <br>
                  </td>
                  <td width="90%" height="28" valign="top" class="tbl_1">
                  <table width="100%" border="0" cellspacing="0" cellpadding="0" class="tbl_1">
                  <tr>
                  <td width="100%"> Verfasst am: {$templ['ugb']['ubook']['case']['info']['post']['date']}
                  &nbsp;&nbsp;&nbsp; </td>
                  <td valign="top" align="right" nowrap> {$templ['ugb']['ubook']['case']['info']['post']['edit']}
                  <!--
                  <a href="?mod=board&action=post&level=post&tid=$tid&mode=quote">
                  <img src="design/standard/images/buttons_zitat.gif" alt="Antworten mit Zitat" border="0">
                  </a>
                  -->
                  </td>
                  </tr>
                  <tr>
                  <td colspan="2"><hr size="1" noshade class="tbl_1"></td>
                  </tr>
                  <tr>
                  <td colspan="2"> {$templ['ugb']['ubook']['case']['info']['post']['text']}
                  <br>
                  <br>
                  {$templ['ugb']['ubook']['case']['info']['post']['poster']['signature']}
                  </td>
                  </tr>
                  </table></td>
                  </tr>
                  <tr>
                  <td width="180" align="left" valign="middle" class="tbl_1">
                  <a href="#top">Nach oben</a>
                  </td>
                  <td width="90%" height="28" valign="bottom" class="tbl_1">
                  <table cellspacing="0" cellpadding="0" border="0" height="18" width="18">
                  <tr>
                  <td valign="middle">




                  </td>
                  </tr>
                  </table>
                  </td>
                  </tr>
                  </table>
                  </td>
                  </tr>
                  <tr class="tbl_4">
                  <td colspan="2"><img src="/" width="1" height="1"></td>
                  </tr>


                  Vielleicht kann mir ja derjenige helfen, der diese Board geschrieben hat
                  Schließlich kann ich hier im Board ja auch nur die Einträge editieren/löschen
                  die von mir selbst sind ... deine Wurzel kann ich ja nicht bearbeiten außer ich wär admin
                  Zuletzt geändert von deschmiddi; 16.02.2004, 16:57.
                  Geht net gibts net...

                  Kommentar

                  Lädt...
                  X