Einträge ins GB sollen erst nach Freigabe sichtbar werden

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

  • #31
    Original geschrieben von ministry
    Die Klammern von der Forschleife waren nicht mehr richtig bei dem, was du da vorhin gepostet hast.

    PHP-Code:
    for ($i $index$i $last$i++) {
        
    $parts explode("|"$data[$i]);
         
    //if prüfung nach dem Wert. Wenn nicht auf 1 dann continue
         
    if($parts[9] != 1){
                continue;
         }
         
    var_dump($parts);
         echo(
    "<br><br>");

    Was ist damit?
    Richtig du hattest Recht, mir ist die Klammer von der obersten Zeile nach unten verrutscht. Nachdem ich nur die wieder richtig platziert habe erscheinen auch die neuesten Beiträge.
    Danke für den Hinweis ich hätte das nie gefunden.

    Wenn ich jedoch deinen kompletten Code einbaue ist das GB gar nicht mehr sichtbar.

    Weiterhin habe ich festgestellt, dass ohne das \n die neueste Nachricht die vorherige in der Ansicht überlagert. In der .dat fehlt dann ein Zeichen in Form eines Quadrats dass anscheinend die Beiträge trennt.

    Kommentar


    • #32
      @ tobi:

      Aktuell sieht der aktuellste Beitrag so aus:

      array(10) { [0]=> string(10) "19.02.2007" [1]=> string(5) "19:41" [2]=> string(13) "80.37.209.163" [3]=> string(4) "Name" [4]=> string(5) "Email" [5]=> string(7) "Hompage" [6]=> string(3) "Ort" [7]=> string(4) "Text" [8]=> string(1) "1" [9]=> string(4) "xxx " }

      Noch scheint es dem GB egal zu sein, ob ich eine 0 od. eine 1 mitschicke.
      Habe jetzt das Aktiv-Feld um eins nach links verschoben damit es nicht hinter dem \n ist. So könnte doch das \n drinbleiben, oder?

      Kommentar


      • #33
        So könnte doch das \n drinbleiben, oder?
        Lies mal file() im Manual und du wirst sehen, dass es kein \n drin haben sollte. Als Zeilenendzeichen schon, aber nicht mitten in der Zeile.

        Gruss

        tobi

        p.s. kannst du mal den Code Teil des Einlesens der File, der Zerlegung der Zeile und der Prüfung auf den Wert senden.
        Weil wenn ich dein var_dump anschaue, dann ist es jetzt Element 8 und nicht mehr Element 9. Richtig ?
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #34
          Guten Morgen,

          habe auf parts 8 geändert und das \n weggemacht. Trotzdem ist die neue Nachricht sichtbar.


          PHP-Code:
            for ($i $index$i $last$i++)
          {
              
          $parts explode("|"$data[$i]);
          var_dump($parts);
          exit;
          //if prüfung nach dem Wert. Wenn nicht auf 1 dann continue
          if($parts[8] != 1){
              continue;

          Und so sieht die Änderung in der anderen Datei aus:

          PHP-Code:
            $aktiv="1";
            
          $ip $_SERVER["REMOTE_ADDR"];
            
          $eintrag "$datum|$zeit|$ip|$name|$email|$hp|$ort|$text|$aktiv|$kommentar"
          Habe mehrere Male mit 1 und mit 0 mitschicken versucht, aber die Meldungen erscheinen alle, unabhängig ob 0 od. 1

          Kommentar


          • #35
            Logisch, wenn du dir das da anguckst - momentan kommt die Ausgabe vor der Prüfung.
            ich glaube

            Kommentar


            • #36
              @topicstarter
              Der var_dump() und das exit; war nur zum sogenannten Debuggen gemeint. Also solltest du wenn du die Sache testen willst diese Zeilen wieder auskommentieren z.B. so
              PHP-Code:
              for ($i $index$i $last$i++)
              {
                  
              $parts explode("|"$data[$i]);
              //var_dump($parts);
              //exit;
              //if prüfung nach dem Wert. Wenn nicht auf 1 dann continue
              if($parts[8] != 1){
                  continue;

              Gruss

              tobi
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar


              • #37
                Original geschrieben von jahlives
                PHP-Code:
                for ($i $index$i $last$i++)
                {
                    
                $parts explode("|"$data[$i]);
                //var_dump($parts);
                //exit;
                //if prüfung nach dem Wert. Wenn nicht auf 1 dann continue
                if($parts[8] != 1){
                    continue;

                Um der nächsten Antwort ("Jetzt wird wieder gar nichts ausgegeben") vorzubeugen:

                PHP-Code:
                for ($i $index$i $last$i++) {
                     
                $parts explode("|"$data[$i]);
                     
                //var_dump($parts);
                     //exit;
                     //if prüfung nach dem Wert. Wenn nicht auf 1 dann continue
                     
                if($parts[8] != 1){
                           continue;
                     }
                     
                // HIER FEHLT DIE AUSGABE DER EINTRÄGE :-)

                ich glaube

                Kommentar


                • #38
                  Mensch Leute ich glaub wir haben´s bald.
                  Also wenn ich den code von ministry reinbaue, erscheint nur eine weisse Seite.
                  Jetzt habe ich den letzten code von jahlives reingebaut und jetzt erscheinen nur noch die beiträge die ein 1 mitgepostet bekommen haben, die nachrichten die ich mit 0 gepostet habe erscheinen nicht obwohl sie in der .dat drin sind.

                  Was jetzt praktisch noch nicht funzt ist, dass die Zeilen verschoben sind:
                  Es ist da z.B. "kommentar von ahaffner" sichtbar was normalerweise nur auftaucht wenn ich als admin einen Kommentar zu der Nachricht hinzufüge.
                  Ausserdem erscheinen die alten einträge nicht. Kann bei allen eine 1 hinzufügen?

                  Wenn mal jemand reingucken könnte:
                  http://www.gran-canaria-haffner.de/gbcam/gaestebuch.php

                  EDIT: Obwohl jetzt das thema mit 0 und 1 funktionieren tut, passiert folgendes:
                  Wenn ich einen Eintrag mit 0 schreibe ist er nicht im GB sichtbar.
                  Wenn ich dann die 0 in eine 1 in der .dat umstelle erscheint der Eintrag.
                  Aber in beiden fällen wird der unmittelbar davorliegende Beitrag ausgeblendet.
                  Zuletzt geändert von grancan; 20.02.2007, 10:56.

                  Kommentar


                  • #39
                    Also häng jetzt noch mal bitte die .dat hier an (genau so wie sie ist).
                    Kann bei allen eine 1 hinzufügen?
                    Wenn du sie angezeigt haben willst, sicher. Nimm aber die richtige Position in der Zeile.

                    Gruss

                    tobi
                    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                    Kommentar


                    • #40
                      Ich musste die Datei in eine txt. kopieren, denn sonst kann man sie hier nicht hochladen, danach war sie auch noch zu gross und da hab ich von den ältesten Einträgen was gelöscht.
                      Ich hoffe es reicht mit den neuesten:
                      Angehängte Dateien

                      Kommentar


                      • #41
                        Am Ende eines jeden Eintrags (sprich Ende der Zeile muss es natürlich einen \n haben, sonst liest file() alles in eine Zeile)
                        Ich habe deine Datei bearbeitet und mit 3 Einträgen wieder hier hochgeladen. Probier diese aus und berichte. Wie gesagt es ist wichtig, dass am Ende eines kompletten Eintrags (also nach 'xxx') ein \n kommt, damit es mit file() funzen kann.

                        Gruss

                        tobi
                        Angehängte Dateien
                        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                        Kommentar


                        • #42
                          Also, hab es genau so eingebaut wie du es beschrieben hattest, aber an der Anzeige der Einträge hat sich danach nichts geändert.

                          Jetzt habe ich zum testen zwischen den Test5 und Test 4 dort wo du eine Leerzeile gemacht hast ein Quadrat hingemacht so wie du es bei den alten Einträgen siehst und dann erscheint der Testeintrag 4.

                          Kommentar


                          • #43
                            Also kann es entweder daran liegen, dass dein BS \n nicht mag und lieber \r\n hätte. Um das einzugrenzen solltest du den var_dump() und das exit wieder einbauen resp das exit mit einem continue; ersetzen Wieviele Zeilen werden nun ausgegeben ?
                            Wenns nicht 3 sind dann stimmt etwas mit den Zeilenendzeichen ned.

                            Gruss

                            tobi

                            p.s. poste doch den dump hier
                            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                            Kommentar


                            • #44
                              So habs gemacht und es wird wirklich nur 1 Nachricht angezeigt.

                              Kommentar


                              • #45
                                Und wie sieht der dump aus ? Alles in einer Zeile?
                                Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                                [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                                Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                                Kommentar

                                Lädt...
                                X