Merkliste beim Start nicht leer

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

  • Merkliste beim Start nicht leer

    Mein Browser: Mozilla.
    Ich habe noch immer ein Problem mit meiner Merkliste.
    Wenn ich nach dem Start des Browsers eine Unterseite von Immobilienseite aufrufe, in der die Merkliste genutzt wird, dann bekomme ich mit
    PHP-Code:
    <a href="merk.php" style="text-decoration:none; color:#FFCC33">
          <? if (count($_SESSION['object_nr']) > 0) 
              { 
                  echo "Merkliste (".count($_SESSION['object_nr']).") anzeigen";
               } 
           ?> 
    </a>
    die Anzeige Merkliste (1) anzeigen,statt keiner Anzeige, was richtig wäre.
    Wenn ich ein beliebiges Objekt in die Merkliste übernehme, dann wieder entferne, ist alles ok.
    Auch wenn ich die Seite komplett verlasse, sogar den Cache lösche, bekomme ich nie eine Anzeige durch den obigen Link: Also alles bestens.
    Eben nur zu Beginn der Browsersitzung tritt dieser Fehler auf.
    Die Merkliste wird gefüllt über
    PHP-Code:
    <a href="<? echo "grund.php?add=".$object_nr[0][$satz]."&sortierung=".$sort_folge."&sort_rich=".$richtung; ?> " style="text-decoration:none; color: #FFCC33; font-weight:bold">zur Merkliste hinzuf&uuml;gen</a>
    Beim IE tritt das Problem immer auf, wenn ich die Seite auch nur neu lade...
    Kann mir jemand helfen??

  • #2
    Description
    int count ( mixed var [, int mode] )

    Returns the number of elements in var,
    which is typically an array,
    since anything else
    will have one element.
    usw.
    siehe also im Manual.
    Zuletzt geändert von tcpip; 02.07.2006, 22:47.

    Kommentar


    • #3
      Merkliste

      Ok, kann ich machen.
      Also der Start der 5 Seiten, in denen die Merkliste gefüllt werden kann ist folgender:
      PHP-Code:
        session_start();
          if(isset(
      $_GET['add']))
              {    
      // Abfrage ob es existiert
                  
      if(!isset($_SESSION['object_nr']) || count($_SESSION['object_nr']) === 0)
                      {
                          echo 
      '<script type="text/javascript">'
                          echo 
      'parent.li.location.href = "navi.php"';
                          echo 
      '</script>'
                      }
                  
      $_SESSION['object_nr'][] = $_GET['add']; 
              }

          
      $_SESSION['object_nr'] = @array_unique($_SESSION['object_nr']); // Doppelte Einträge löschen
          
      @array_multisort($_SESSION['object_nr']); // Liste sortieren 
      wobei die 2. IF-Abfrage bei Bedarf ein Neuladen des Navigationsframes bewirken soll,
      denn wenn die Merkliste nicht mehr leer ist, soll sie in der Navigation hervorgehoben werden.
      Die 1. IF-Abfrage fügt ein neues Element in die Merkliste ein.
      Dann werden doppelte Einträge entfernt, und der Rest sortiert.
      Dann folgen die Funktionen:
      PHP-Code:
              <SCRIPT LANGUAGE="JavaScript">
                  <!--
                      function 
      haus_k() {
                          
      document.sort_f1.submit();
                      }
                  
      // ******************************************************************
                      
      function haus_k1() { 
                          if (
      richtung_1 == " desc")
                              { 
      richtung_1 " asc"; }
                            else
                              { 
      richtung_1 " desc"; }
                          
      document.sort_f1.submit();
                      }
                  
      // ******************************************************************
                      
      function fenster(datei)
                          {
      fenster1=open('bild.php',"Fenstername","toolbar=no,scrollbars=yes,width=300,height=300,top=50,left=100");}
                  
      //-->
      </script
      für eine Sortierung der angezeigten Objekte (funktioniert auch),
      und der Auswahl, wie viele Objekte man auf einer Seite angezeigt bekommen möchte
      (Geht noch nicht: Wer mir helfen kann, bitte melden!),
      dann kommt die Anzeige, wenn etwas in der Merkliste vorhanden ist:
      PHP-Code:
      <a href="merk.php" style="text-decoration:none; color:#FFCC33">
           <? if (count($_SESSION['object_nr']) > 0) 
                { echo "Merkliste (".count($_SESSION['object_nr']).") anzeigen"; } 
           ?> 
      </a>
      (und hier ist eben seltsamerweise beim 1. Aufruf der Seite immer eine Anzeige.
      Beim Mozilla/Seamonkey bleibt nach dem löschen der Merkliste dieser Link immer unsichtbar,
      selbst wenn der Cache gelöscht wird, beim IE erscheint dieser Text bei jedem Neuaufruf derSeite.),
      und dann der Link, mit dem ein Objekt der Merkliste zugefügt werden kann:
      PHP-Code:
      <a href="
           <? echo "grund.php?add=".$object_nr[0][$satz]."
               &sortierung=".$sort_folge."&sort_rich=".$richtung; ?> 
           " style="text-decoration:none; color: #FFCC33;
              font-weight:bold">zur Merkliste hinzuf&uuml;gen
      </a>
      Dann kommt die merk.php, die so beginnt:
      PHP-Code:
          session_start();
          if(isset(
      $_GET['weg']))
              {    
      // Es kann sein das die $_SESSION['[object_nr'] noch gar nicht angelegt wurde, daher die Abfrage ob es existiert
                  
      $loeschen $_GET['weg'];
                  if(
      count($_SESSION['object_nr']) <= 1)
                      {
                          echo 
      '<script type="text/javascript">'
                          echo 
      'parent.li.location.href = "navi.php"';
                          echo 
      '</script>'
                      }
                  if (
      is_array($_SESSION['object_nr']))
                      { 
      $x array_search($loeschen,$_SESSION['object_nr']); }    //zu löschenden Eintrag suchen
                  
      if (strlen($x) > 0
                      {    unset(
      $_SESSION['object_nr'][$x]); }    // Löschen des Eintrags 
              

      gefolgt von der Abfrage, ob die Merkliste leer ist:
      PHP-Code:
                      if (count($_SESSION['object_nr']) <= 0)
                          {
                              echo 
      "<td align=\"center\" valign=\"middle\"><img src=\"bilder/villa-03.jpg\"><br><br>";
                              echo 
      "Ihre Merkliste ist momentan leer</td>"
                          } 
      und der Möglichkeit, das Objekt aus der Merkliste zu entfernen:
      PHP-Code:
      echo '<a href="merk.php?weg='.$object_nr[0][$satz].'"
            style="text-decoration:none; color: #FFCC33; font-size:16px; font-weight:bold">
           aus Merkliste l&ouml;schen</a>'

      was dann beim Selbstaufruf der merk.php auch geschieht.
      Dabei hab ich inzwischen auch keine Probleme mehr.
      Eben nur, daß die Merkliste ein (leeres) Element enthält, wenn die Seite beim Mozilla zum
      1. Mal geladen wird, beim IE bei jedem Aufruf der Startdatei: Das ist mein Haupt-Problem,
      neben dem oben genannten mit der Anzahl/Seite!!!
      Zuletzt geändert von Mannix-Krefeld; 03.07.2006, 08:25.

      Kommentar


      • #4
        Das geht mit standard debugging blitzartig:
        var_dump() der Merkliste an allen möglichen und unmöglichen Stellen machen.
        Dann siehst Du was drinn ist. Im Moment denkst Du nur, was drin sein sollte.

        Kommentar


        • #5
          Lies und befolge erstmal die Regeln:
          http://www.php-resource.de/forum/sho...threadid=50454
          hopka.net!

          Kommentar


          • #6
            mein post ist schmal, und seiner, im Detail, sowieso nicht relevant.

            Kommentar


            • #7
              Original geschrieben von tcpip
              mein post ist schmal, und seiner, im Detail, sowieso nicht relevant.
              was nix dran ändert, dass selbst Antworten bei Überbreite extrem ungünstig ist und wenig Spaß macht (geschweige denn das Lesen des Threads ... worum ging es hier doch gleich? XD)

              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
              Wie man Fragen richtig stellt

              Kommentar


              • #8
                gelobe Besserung

                Sorry, bin noch neu hier, aber ich werde mich bessern: Versprochen!
                Hat denn jemand eine Idee, was ich machen kann?
                Ich hebe schon alles mögliche versucht.
                Ich habe auch schon einen Wert in die Variable eingetragen und diesen dann gelöscht: Kein Erfolg....
                Und var_dump zeigt mir einen Eintrag an, aber ohne Inhalt!?

                Kommentar


                • #9
                  Du bistanscheinend nicht nur hier neu, sondern auch im Programmieren ungebildet.

                  Wenn es einen Eintrag liefert ist ja bestens: count=1.
                  Was war denn der Eintrag? und an welcher von den 100
                  mögliche und unmöglichen Stellen, wo
                  die Merkliste vorkommt.

                  hat denn jemand eine Idee, was ich machen kann
                  ja, ich, und in der Vergangenheitsform.

                  Kommentar


                  • #10
                    Re: gelobe Besserung

                    Original geschrieben von Mannix-Krefeld
                    Sorry, bin noch neu hier, aber ich werde mich bessern: Versprochen!
                    dann zur Hölle klicke auf editieren und mach Umbrüche in deine Posts!

                    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                    Wie man Fragen richtig stellt

                    Kommentar


                    • #11
                      Unter umbruch wird in der Programmierung ein Zeilenende verstanden, so dass
                      lange Zeilen auf zwei Zeilen, oder drei, aufgeteilt werden.

                      PS zu deinem ursprünglichen Problem, kannst Du mich mal anmailen, ich möchte Dir
                      einen Vorschlag in EURO machen, damit Du eventuell nicht tagelang suchen musst..

                      Kommentar


                      • #12
                        Danke, aber diese Forum werde ich nicht mehr mit Fragen belästigen.
                        Da gibtt es weitaus bessere.
                        Tschau

                        Kommentar


                        • #13
                          Original geschrieben von Mannix-Krefeld
                          Danke, aber diese Forum werde ich nicht mehr mit Fragen belästigen.
                          Da gibtt es weitaus bessere.
                          Tschau
                          Wenn besser bei dir in den Arsch kriechen bedeutet, stimmt das wohl.
                          An Qualität der Antworten kenne ich kein besseres, aber dafür müsste man ja was tun *graus*

                          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                          Wie man Fragen richtig stellt

                          Kommentar

                          Lädt...
                          X