Hat PHP einen bug oder eher ich

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

  • Hat PHP einen bug oder eher ich

    hallo zusammen
    ich hätte da gerne mal ein problem


    ich habe folgenden code wenn ein normaler user kommt der keinen pcode hat dann bekommt er das element kennwort setzen nicht angezeigt, das geht auch. allerdings, wenn nun einer mit pcode = 9 ankommt dann wird der button als letztes ausgegeben und nicht als zweites

    PHP-Code:

    $register
    [0] = "Kennwort ändern";    
    $register[2] = "asdfessourcen";
    $register[3] = "asdfEinsatzmöglichkeit";
    $register[4] = "Sasdfasdfaprachen";
    $register[5] = "Zasdfasdfaertifikate/Schulungen";
    $register[6] = "Sofasdfasdftwareprodukte";
    $register[7] = "Facasdfadshlichequalifikation";

    if (
    $pcode == "9"
     {
     
    $register[1] = "Kennwort setzen";
     echo 
    "Der Admin is angemeldet";

       
    $SQL="........";
       
    $res=send_sql($SQL$lkid);

    }


    foreach (
    $register as $button)
    {
      
    $ZaHTML[Auswahl]="$ZaHTML[Auswahl]$button";

    Hat da jemand eine Idee woran das liegen könnte??

    gruß

    shortie
    Wusstet ihr schon?
    Wer später bremst ist länger schnell!

    Die wahrscheinlich beste Funktion in PHP ist mysql_error(), doch leider auch die unbekannteste!

  • #2
    Hat da jemand ne idee, was überhaupt das ziel deines Codes ist. Du solltest da n bisschen die Zusammenhänge mit DB u´nd so erwähnen.

    Kommentar


    • #3
      ich kann ja wohl schlecht die gesamte datei posten wäre etwas lang also sinn der sache ist es eine dynamische navigation zu bauen wobei das array die buttons sind

      es gibt verschiedene benutzer rollen in der anwendung eine davon ist admin, der dan den pcode 9 hat

      jetzt ist mein problem das den butten register[1] nur der admin bekommt der soll aber bitte schön direkt nach dem butto $register[0] kommen und nicht wie es hier der fall ist nach dem button $register[7]

      und da würde ich gerne wissen warum der so doof ist das er nicht kapiert das das element 1 vor 2 kommt und nicht nach 7

      hoffe das versteht man

      wollte das ganze nur vereinfachen denn das geasammte ist etwas länger und kompilizierter
      Wusstet ihr schon?
      Wer später bremst ist länger schnell!

      Die wahrscheinlich beste Funktion in PHP ist mysql_error(), doch leider auch die unbekannteste!

      Kommentar


      • #4
        schau mal in die usernotes von array_push()
        Kissolino.com

        Kommentar


        • #5
          danke hab noch einen anderen weg gefunden is vieleicht nicht der schönste aber es geht


          PHP-Code:

          $register
          [0] = "Kennwort ändern";  
          $register[1] = "";  
          $register[2] = "asdfessourcen";
          $register[3] = "asdfEinsatzmöglichkeit";
          $register[4] = "Sasdfasdfaprachen";
          $register[5] = "Zasdfasdfaertifikate/Schulungen";
          $register[6] = "Sofasdfasdftwareprodukte";
          $register[7] = "Facasdfadshlichequalifikation";

          if (
          $pcode == "9"
           {
           
          $register[1] = "Kennwort setzen";
           echo 
          "Der Admin is angemeldet";

             
          $SQL="........";
             
          $res=send_sql($SQL$lkid);

          }


          foreach (
          $register as $button)
          {
            
          $ZaHTML[Auswahl]="$ZaHTML[Auswahl]$button";

          wenn er jetzt das foreach macht lässt er den eintrag wie gewünscht einfach weg und wenn pcode 9 ist dann zeigt er ihn an der richtigen stelle an

          trotzdem danke für deine hilfe

          gruß

          shortie
          Wusstet ihr schon?
          Wer später bremst ist länger schnell!

          Die wahrscheinlich beste Funktion in PHP ist mysql_error(), doch leider auch die unbekannteste!

          Kommentar


          • #6
            vermutlich "ordnet" php das array einfach nicht richtig, bevor es mit foreach durchlaufen wird, d.h. der zuletzt gemachte eintrag wird auch zuletzt ausgegeben.

            dadurch, dass du das element jetzt schon mal vorher anlegst, und nachher nur veränderst, umgehst du das.

            ob das jetzt ein fehler ist, oder aber "works as designed", fraglich ...
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              es ist auf jedenfall zweckmäßig denn nu macht er ja was er soll

              aber hat mich schon etwas gewundert das php nicht mal zählen kann

              naja sei es wie es sei ich denke ich werde es einfach so lassen


              trotzdem danke

              gruß

              shortie
              Wusstet ihr schon?
              Wer später bremst ist länger schnell!

              Die wahrscheinlich beste Funktion in PHP ist mysql_error(), doch leider auch die unbekannteste!

              Kommentar


              • #8
                Tja es stimmt schon dass das array element einfach hinten dran gehängt wird, denn woher soll php wissen welche indexe sich der Herr Programmierer gedacht, dass sie gefüllt werden?
                Ausserdem wäre das auch eine speicherverschwendung...
                Dafür sind ja im Grunde auch deie warnings gedacht, die uninitializes indexe rügt...
                Beantworte nie Threads mit mehr als 15 followups...
                Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                Kommentar


                • #9
                  heist das das du eher von der leerstring variante abraten würdest??
                  Wusstet ihr schon?
                  Wer später bremst ist länger schnell!

                  Die wahrscheinlich beste Funktion in PHP ist mysql_error(), doch leider auch die unbekannteste!

                  Kommentar


                  • #10
                    abraten würde ich Dir von so Einigem, aber Du bezahlst mich ja nicht dafür :-)
                    Der code unten hat m.E. z.B. schlechten Stil, aber ok.
                    Beantworte nie Threads mit mehr als 15 followups...
                    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                    Kommentar


                    • #11
                      wieso schlechten stil?

                      würde mich mal interessieren wie du sowas schreiben würdest

                      dazu muss ich noch sagen das das array nicht in dergleichen datei steht wie der rest sondern in einem custom file

                      meintest du als stil das du kein array für die navi anlegen würdest oder wie

                      ich würde dich auch bezahlen sagen wir ein feuchter hände druck
                      Wusstet ihr schon?
                      Wer später bremst ist länger schnell!

                      Die wahrscheinlich beste Funktion in PHP ist mysql_error(), doch leider auch die unbekannteste!

                      Kommentar


                      • #12
                        schau dir mal dein code an
                        PHP-Code:
                        if ($pcode == "9"// ist 9 eine zahl oder ein string??
                         
                        {// ein leerzeichen vor der {
                         
                        $register[1] = "Kennwort setzen";
                         echo 
                        "Der Admin is angemeldet"// wie wärs mit einheitlicher Einrückung ?
                        // leerzeile???
                           
                        $SQL="........";// keine leerzeichen vor und nach =
                           
                        $res=send_sql($SQL$lkid);// das gleiche
                        // leerzeile???
                        }


                        foreach (
                        $register as $button)
                        {
                          
                        $ZaHTML[Auswahl]="$ZaHTML[Auswahl]$button";
                        // Variablennamensgebung??? 
                        // Index ist Konstante???
                        // warum die "" ??

                        Das sind mir ein bissi viele stilfragen in sonem mini code...
                        Beantworte nie Threads mit mehr als 15 followups...
                        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                        Kommentar


                        • #13
                          mhhh. also da könnte man jetzt versuchen noch was zu retten aber eigentlich ist es echt sch*** und ich geb dir recht da sind 2 3 dinge die so wie du es machen würdest besser sind

                          gut überzeugt
                          Wusstet ihr schon?
                          Wer später bremst ist länger schnell!

                          Die wahrscheinlich beste Funktion in PHP ist mysql_error(), doch leider auch die unbekannteste!

                          Kommentar


                          • #14
                            Grundsätzlich ziemlich unkonstanter Stil, bzw gar kein Stil
                            Beantworte nie Threads mit mehr als 15 followups...
                            Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                            Kommentar

                            Lädt...
                            X