Ankündigung

Einklappen
Keine Ankündigung bisher.

Cookie setzen Problem

Einklappen

Neue Werbung 2019

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

  • Cookie setzen Problem

    Moin Leute, ich möchte, dass auf meiner Webseite für den User alle xx Minuten ein PopUp geöffnet wird.

    Also habe ich dieses Script vor dem <body> Tag platziert:

    PHP-Code:
    <script type="text/javascript">
    function 
    info (url) {
     
    fenster window.open("TEST""Popupfenster""width=400,height=300,resizable=yes");
     
    fenster.focus();
     return 
    false;
    }
    </script> 
    Im <body> Tag müsste ich dann eigentlich ein onload="info" einfügen, jedoch will ich ja, dass das PopUp nur alle xx Minuten geöffnet wird also habe ich anstatt dem onload="info" ein
    PHP-Code:
    include 'popup.php' 
    eingefügt.


    Die PopUp.php hat folgenden Inhalt:

    PHP-Code:
    <?

    if (isset($_COOKIE['ad'])) {



    }

    else {

    setcookie("ad", "ad",time()+(36*24));
    echo 'onload="info()"';
    }    

     
     
     ?>
    Dieses Skript funktioniert von der Funktionalität her, jedoch wird der Cookie "AD" nur dann gesetzt wenn ich die datei /popup.php direkt aufrufe und nicht durch das "includen".

    Weiß hier vielleicht jemand einen Fehler in meinem Skript oder einen anderen Lösungsvorschlag?

    Ich hoffe ich habe mich diesmal verständlich ausgedrückt und bedankte mich im Vorraus,

    mfg

  • #2
    Moin Leute, ich möchte, dass auf meiner Webseite für den User alle xx Minuten ein PopUp geöffnet wird.
    Na super. Was für eine Freude für den User.

    Dass es 2012 auch bereits Popupblocker gibt, hast DU aber schon mitbekommen, ja?

    Kommentar


    • #3
      ja jedoch ändert das doch nichts an meiner frage oder ?

      Kommentar


      • #4
        Tut es, der Popup-Blocker und dessen eingeschalteter Zustand ist Browser-Default bei allen (aktuellen) Webbrowsern. Mit Popups umsich zu schießen ist als würde man mit Frames arbeiten. Beides veraltet, Popups gelten sogar als aggressives Seitenverhalten.

        Wenn du unbedingt alle x sekunden dem User mit einem Status von Y auf den Cookie gehen willst, blend ein entsprechendes DIV per Javascript ein das via AJAX geupdated wird.

        Kommentar


        • #5
          Mach es doch anders - greife in Javascript auf das Cookie zu und prüfe alle 5 Sekunden, ob der Timestamp älter ist als x*60 Sekunden. Wenn ja, Popup und Cookie neu setzen

          Kommentar


          • #6
            1. Wie schon von anderen Usern gesagt: PopUps werden meistens geblockt, Frames gehören in die Tonne.
            2. Tu einfach per AJAX den Cookie alle x Sekunden überprüfen lassen, das erzeugt aber, wenn viele die Seite besuchen, viel Traffic.

            Kommentar


            • #7
              Wieso soll denn Ajax nen Cookie prüfen? Also ehrlich no92, Deine Antworten hier im Forum sind tw. sehr fragwürdig...

              Kommentar


              • #8
                Zitat von nikosch Beitrag anzeigen
                Wieso soll denn Ajax nen Cookie prüfen?
                Du hast mich wohl nicht ganz verstanden: ich meinte es wird per AJAX ein PHP Skript aufgerufen, das dann den Cookie überprüft. PHP kontrolliert den Cookie, nicht JavaScript. Mir ist kein anderer Lösungsansatz bekannt.

                Kommentar


                • #9
                  Zunächst mal kann Javascript selbst Cookies lesen. Und dann stellt sich mir die Frage, wozu es das sollte. Als wenn JS nicht selbst die Zeit zählen könnte...

                  Kommentar


                  • #10
                    Wahrscheinlich hast Du beim Ausführen des include-Befehls schon Ausgaben, sei es mit echo oder HTML gehabt. Folgender Inhalt steht in der PHP Dokumentation zu setcookie()
                    Erfolgt eine Ausgabe vor dem Aufruf dieser Funktion, wird setcookie() fehlschlagen und FALSE zurückgeben. Wenn setcookie() erfolgreich durchgeführt wird, wird TRUE zurückgegeben. Dies sagt jedoch nichts darüber aus, ob der Benutzer das Cookie auch akzeptiert hat.
                    Dein Aufruf kannst Du mit setInterval() in Javascript zeitlich wiederholen. Details findest Du bei Selfhtml.

                    Viele Grüße

                    Jan

                    Kommentar


                    • #11
                      Zitat von pferdmenges Beitrag anzeigen
                      Dein Aufruf kannst Du mit setInterval() in Javascript zeitlich wiederholen.
                      @nikosch Ich habe das so gemeint, die Idee war, JS und PHP zu verknüpfen.

                      Kommentar

                      Lädt...
                      X