Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Notice fehler beheben

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Notice fehler beheben

    Hallo zusammen,

    ich habe mich mal daran gemacht, meine Notice Fehler zu behandeln. Einige wie z.B. "Notice: Undefined index: id in ... on line ..."
    PHP-Code:
    $id $_GET['id']; 
    habe ich dann so behoben
    PHP-Code:
    if (array_key_exists('id',$_GET))
    {
        
    $id $_GET['id'];

    Jetzt habe ich aber noch was anderes.
    PHP-Code:
        for($i=0$i count($uebersicht2); $i++)
        {
            
    $protokoll .=    "<tr>
            <td>
                "
    .$uebersicht2[$i]['name']."&nbsp;
            </td>
            <td>
                "
    .$uebersicht2[$i]['stunden_c']."&nbsp;
            </td>
            <td>
                "
    .$uebersicht2[$i]['grund_c']."&nbsp;
            </td>
            <td>
                "
    .$uebersicht2[$i]['datum_c']."&nbsp;
            </td>
            <td>
                "
    .$uebersicht2[$i]['stunden_z']."&nbsp;
            </td>
            <td>
                "
    .$uebersicht2[$i]['grund_z']."&nbsp;
            </td>
            <td>
                "
    .$uebersicht2[$i]['datum_z']."&nbsp;
            </td>
        </tr>"
    ;
        } 
    Wenn da z.B. nur Daten bei den _c drin sind und die _z leer sind dann bringt er natürlich Notices darüber. Kann ich da jetzt das auch so beheben wie bei dem $_GET['id'] oder muss ich da anders vorgehen?

    Vielen Dank schonmal.


  • #2
    Kannst du genauso machen, aber achte darauf, das richtige Array anzusprechen ($uebersicht2[$i])
    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

    Kommentar


    • #3
      Kannst den ternären Operator für so etwas nehmen

      PHP-Code:
      isset($uebersicht2[$i]['name'])?$uebersicht2[$i]['name']:'default' 
      Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)
      Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)

      Kommentar


      • #4
        Zitat von lstegelitz Beitrag anzeigen
        Kannst du genauso machen, aber achte darauf, das richtige Array anzusprechen ($uebersicht2[$i])
        Vielen Dank. Habe das jetzt so gemacht und es kommen keine Notices mehr =) Habe nämlich mal gelesen, dass man die auch beheben sollte und mache das gerade ^^ genau wie ich im mom das ganze php Maual durchlesen will.

        PHP-Code:
        for($i=0$i count($uebersicht2); $i++)
            {
                
        $protokoll .=    "<tr>
                <td>"
        ;
                if (
        array_key_exists('name',$uebersicht2[$i]))
                    {
                        
        $protokoll .= $uebersicht2[$i]['name'];
                    }
                
        $protokoll .= "&nbsp;
                </td>
                <td>"
        ;
                if (
        array_key_exists('stunden_c',$uebersicht2[$i]))
                    {
                        
        $protokoll .= $uebersicht2[$i]['stunden_c'];
                    }
                
        $protokoll .= "&nbsp;
                </td>
                <td>"
        ;
                if (
        array_key_exists('grund_c',$uebersicht2[$i]))
                    {
                        
        $protokoll .= $uebersicht2[$i]['grund_c'];
                    }
                
        $protokoll .= "&nbsp;
                </td>
                <td>"
        ;
                if (
        array_key_exists('datum_c',$uebersicht2[$i]))
                    {
                        
        $protokoll .= $uebersicht2[$i]['datum_c'];
                    }
                
        $protokoll .= "&nbsp;
                </td>
                <td>"
        ;
                if (
        array_key_exists('stunden_z',$uebersicht2[$i]))
                    {
                        
        $protokoll .= $uebersicht2[$i]['stunden_z'];
                    }
                
        $protokoll .= "&nbsp;
                </td>
                <td>"
        ;
                if (
        array_key_exists('grund_z',$uebersicht2[$i]))
                    {
                        
        $protokoll .= $uebersicht2[$i]['grund_z'];
                    }
                
        $protokoll .= "&nbsp;
                </td>
                <td>"
        ;
                if (
        array_key_exists('datum_z',$uebersicht2[$i]))
                    {
                        
        $protokoll .= $uebersicht2[$i]['datum_z'];
                    }
                
        $protokoll .= "&nbsp;
                </td>
            </tr>"
        ;
            } 

        Kommentar


        • #5
          Wo ich grad noch dabei bin. Bei einer anderen Datei von dem Template Engine, kommt bei der index.php diese Fehlermeldungen:
          Code:
          Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\seite\tbs_class.php on line 738
          Die Zeile ist in einer Funktion.

          PHP-Code:
          function meth_Locator_FindTbs(&$Txt,$Name,$Pos,$ChrSub) {
          // Find a TBS Locator

              
          $PosEnd false;
              
          $PosMax strlen($Txt) -1;
              
          $Start $this->_ChrOpen.$Name;

              do {
                  
          // Search for the opening char
                  
          if ($Pos>$PosMax) return false;
                  
          $Pos strpos($Txt,$Start,$Pos);

                  
          // If found => next chars are analyzed
                  
          if ($Pos===false) {
                      return 
          false;
                  } else {
                      
          $Loc =& new clsTbsLocator;  //Das ist die Zeile 738
                      
          $ReadPrm false;
                      
          $PosX $Pos strlen($Start);
                      
          $x $Txt[$PosX];

                      if (
          $x===$this->_ChrClose) {
                          
          $PosEnd $PosX;
                      } elseif (
          $x===$ChrSub) {
                          
          $Loc->SubOk true// it is no longer the false value
                          
          $ReadPrm true;
                          
          $PosX++;
                      } elseif (
          strpos(';',$x)!==false) {
                          
          $ReadPrm true;
                          
          $PosX++;
                      } else {
                          
          $Pos++;
                      }

                      if (
          $ReadPrm) {
                          
          $this->f_Loc_PrmRead($Txt,$PosX,false,'\'',$this->_ChrOpen,$this->_ChrClose,$Loc,$PosEnd);
                          if (
          $PosEnd===false) {
                              
          $this->meth_Misc_Alert('','can\'t found the end of the tag \''.substr($Txt,$Pos,$PosX-$Pos+10).'...\'.');
                              
          $Pos++;
                          }
                      }

                  }

              } while (
          $PosEnd===false);

              
          $Loc->PosBeg $Pos;
              
          $Loc->PosEnd $PosEnd;
              if (
          $Loc->SubOk) {
                  
          $Loc->FullName $Name.'.'.$Loc->SubName;
                  
          $Loc->SubLst explode('.',$Loc->SubName);
                  
          $Loc->SubNbr count($Loc->SubLst);
              } else {
                  
          $Loc->FullName $Name;
              }
              if (
          $ReadPrm and isset($Loc->PrmLst['comm'])) {
                  
          $Loc->PosBeg0 $Loc->PosBeg;
                  
          $Loc->PosEnd0 $Loc->PosEnd;
                  
          $comm $Loc->PrmLst['comm'];
                  if ((
          $comm===true) or ($comm==='')) {
                      
          $Loc->Enlarged $this->f_Loc_EnlargeToStr($Txt,$Loc,'<!--' ,'-->');
                  } else {
                      
          $Loc->Enlarged $this->f_Loc_EnlargeToTag($Txt,$Loc,$comm,false);
                  }
              }

              return 
          $Loc;


          Ich glaube aber das ich da wohl wenig machen kann oder? Sonst könnte ich das vielleicht noch kaputt machen. Oder wie sieht das aus. Ich habe nämlich noch 3 mal diese Meldung, nur andere Zeilen betreffend in der Datei.

          Kommentar


          • #6
            Nur mal so zum Vergleich (mein Vorschlag)
            PHP-Code:
            for ( $i=0$i count$uebersicht2 ); $i++ ) {
                
            $protokoll .=    "<tr>
                    <td>
                        " 
            . ( isset( $uebersicht2[$i]['name'] ) ? $uebersicht2[$i]['name'] : "&nbsp;" ) . "
                    </td>
                    <td>
                        " 
            . ( isset( $uebersicht2[$i]['stunden_c'] ) ? $uebersicht2[$i]['stunden_c'] : "&nbsp;" ) . "
                    </td>
                    <td>
                        " 
            . ( isset( $uebersicht2[$i]['grund_c'] ) ? $uebersicht2[$i]['grund_c'] : "&nbsp;" ) . "
                    </td>
                    <td>
                        " 
            . ( isset( $uebersicht2[$i]['datum_c'] ) ? $uebersicht2[$i]['datum_c'] : "&nbsp;" ) . "
                    </td>
                    <td>
                        " 
            . ( isset( $uebersicht2[$i]['stunden_z'] ) ? $uebersicht2[$i]['stunden_z'] : "&nbsp;" ) . "
                    </td>
                    <td>
                        "
            . ( isset( $uebersicht2[$i]['grund_z'] ) ? $uebersicht2[$i]['grund_z'] : "&nbsp;" ) . "
                    </td>
                    <td>
                        " 
            . ( isset( $uebersicht2[$i]['datum_z'] ) ? $uebersicht2[$i]['datum_z'] : "&nbsp;" ) . "
                    </td>
                </tr>"
            ;

            Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)
            Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)

            Kommentar


            • #7
              Zitat von TrueEdge Beitrag anzeigen
              Wo ich grad noch dabei bin. Bei einer anderen Datei von dem Template Engine, kommt bei der index.php diese Fehlermeldungen:
              Code:
              Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\seite\tbs_class.php on line 738
              Die Zeile ist in einer Funktion.

              PHP-Code:
                          $Loc =& new clsTbsLocator;  //Das ist die Zeile 738 
              deprecated bedeutet wörtlich "abgelehnt" oder "mißbilligt"
              Es besagt eigentlich nur, das eine verwendete Funktion oder ein Konzept nicht mehr unterstützt werden wird - werden wird, weil man es noch verwenden darf, es aber in einer zukünftigen Version eventuell mal rausfliegt. (Wegfallende Funktionen werden eine Zeit lang als deprecated markiert, damit Programmierer Zeit haben, ihre Software umstellen zu können bis zu dem Zeitpunkt, an dem die Funktion entgültig verschwunden ist.)

              In deinem konkreten Fall musst du nur das Kaufmanns-Und entfernen (zu PHP 4 Zeiten wurde auf diese Art eine Referenz zugewiesen. PHP 5 hat aber einige Änderungen wiederfahren, eine davon war, daß diese Art der Zuweisung standardmäßig erfolgt, wodurch man die explizite Angabe weglassen kann/sollte).
              Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

              Kommentar


              • #8
                Ok vielen Dank für die Info. =) Jetzt hab ich gar keine Meldungen mehr.

                @dennis81: Ja dann werde ich das mal so ändern. Ist ja auch viel kürzer. =) Danke auch für deine Hilfe.

                Kommentar


                • #9
                  @Threadersteller: scahu dir mal count im Schleifenkopf = PFUI!!! | ragtek an

                  Kommentar


                  • #10
                    Verwende statt einer for-Schleife eine foreach-Schleife, da kommt man gar nicht erst in die Verlegenheit...
                    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                    Kommentar


                    • #11
                      Oder das^^

                      Kommentar


                      • #12
                        Also dann so?
                        PHP-Code:
                            foreach($uebersicht2 AS $uebersicht2
                            {
                                
                        $protokoll .=    "<tr>
                                    <td>
                                        " 
                        . ( isset( $uebersicht2['name'] ) ? $uebersicht2['name'] : "&nbsp;" ) . "
                                    </td>
                                    <td>
                                        " 
                        . ( isset( $uebersicht2['stunden_casal'] ) ? $uebersicht2['stunden_casal'] : "&nbsp;" ) . "
                                    </td>
                                    <td>
                                        " 
                        . ( isset( $uebersicht2['grund_casal'] ) ? $uebersicht2['grund_casal'] : "&nbsp;" ) . "
                                    </td>
                                    <td>
                                        " 
                        . ( isset( $uebersicht2['datum_casal'] ) ? $uebersicht2['datum_casal'] : "&nbsp;" ) . "
                                    </td>
                                    <td>
                                        " 
                        . ( isset( $uebersicht2['stunden_zipfelit'] ) ? $uebersicht2['stunden_zipfelit'] : "&nbsp;" ) . "
                                    </td>
                                    <td>
                                        "
                        . ( isset( $uebersicht2['grund_zipfel'] ) ? $uebersicht2['grund_zipfel'] : "&nbsp;" ) . "
                                    </td>
                                    <td>
                                        " 
                        . ( isset( $uebersicht2['datum_zipfel'] ) ? $uebersicht2['datum_zipfel'] : "&nbsp;" ) . "
                                    </td>
                                </tr>"
                        ;
                            } 

                        Kommentar


                        • #13
                          Zitat von TrueEdge Beitrag anzeigen
                          Also dann so?
                          PHP-Code:
                              foreach($uebersicht2 AS $uebersicht2
                              {
                                  
                          $protokoll .=    "<tr>
                                      <td>
                                          " 
                          . ( isset( $uebersicht2['name'] ) ? $uebersicht2['name'] : "&nbsp;" ) . "
                                      </td>
                                      <td>
                                          " 
                          . ( isset( $uebersicht2['stunden_casal'] ) ? $uebersicht2['stunden_casal'] : "&nbsp;" ) . "
                                      </td>
                                      <td>
                                          " 
                          . ( isset( $uebersicht2['grund_casal'] ) ? $uebersicht2['grund_casal'] : "&nbsp;" ) . "
                                      </td>
                                      <td>
                                          " 
                          . ( isset( $uebersicht2['datum_casal'] ) ? $uebersicht2['datum_casal'] : "&nbsp;" ) . "
                                      </td>
                                      <td>
                                          " 
                          . ( isset( $uebersicht2['stunden_zipfelit'] ) ? $uebersicht2['stunden_zipfelit'] : "&nbsp;" ) . "
                                      </td>
                                      <td>
                                          "
                          . ( isset( $uebersicht2['grund_zipfel'] ) ? $uebersicht2['grund_zipfel'] : "&nbsp;" ) . "
                                      </td>
                                      <td>
                                          " 
                          . ( isset( $uebersicht2['datum_zipfel'] ) ? $uebersicht2['datum_zipfel'] : "&nbsp;" ) . "
                                      </td>
                                  </tr>"
                          ;
                              } 
                          So wird es nicht funktionieren.

                          - Es gibt nun eine Kopie von dem Array mit dem gleichen Namen. Woher soll er wissen welches das richtige ist?

                          PHP-Code:
                          foreach ($uebersicht2 as $aktuellerWert
                          Mit der foreach gehst du jeden Eintrag im Array durch. in $aktuellerWertsteht dann der Wert der Reihe.

                          Damit du aber auch den Key hast muss die foreach noch angepasst werden.

                          PHP-Code:
                          foreach ($uebersicht2 as $aktuellerKey => $aktuellerWert

                          Teste es einfach mit var_dump(); dann siehste schnell was für Werte und Schlüssel zu einem gewissen Zeitpunkt vorhanden sind.

                          Kommentar


                          • #14
                            Zitat von stayInside Beitrag anzeigen
                            So wird es nicht funktionieren.
                            Es funktioniert aber ohne irgendeine Fehlermeldung. O.o

                            Kommentar


                            • #15
                              Zitat von TrueEdge Beitrag anzeigen
                              Es funktioniert aber ohne irgendeine Fehlermeldung. O.o
                              Und sind die Werte richtig?

                              Kommentar

                              Lädt...
                              X