Setcookie()

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

  • Setcookie()

    Guten abend!

    Ich habe da ein Problem mit der Variable setcookie()

    Folgendes:

    Ich setze auf http://www.domain1.de/setit.php
    das cookie "testcookie" mit

    setcookie("testcookie", "test");

    Wenn ich dieses aber nun auf http://www.domain2.de/abrufen.php
    abrufen möchte, geschieht das nicht.

    Wie muss ich das Cookie denn setzen damit es von JEDER URL
    aus abgerufen werden kann?


    Grüße und ein großes DANKE,

    Dennis :-)

  • #2
    Das geht überhaupt nicht ... die Cookies werden im RequestHeader ... automatisch mitgesendet und in PHP im Array $HTTP_COOKIE_VARS oder $_COOKIE abgelegt ... nun stelle sich mal einer vor bei jedem Aufruf einer Seite würden alle Cookies immer Mitgesendet ... dann würden wir gar keine Leitungen mehr in die Leitungsschächte quetschen können, die dick genug sind um alle diese Daten zu transportieren ...

    Nein ... Cookies werden immer nur an den Host ... gesendet die den Cookie geschrieben hat ... es sei denn du gibst im string domain sowas: ".domain.de" an. Dann wird der Cookie an alle Hosts in Deiner Domain gesendet.

    Die ganze Geschichte mit Cookies auf anderen Domains (z.B. gesetzt durch Grafiken von Drittanbietern; Werbebannern) ist dank IE6 und P3P um einiges komplizierter geworden ... aber wenn du Spaß dran hast: Microsoft's P3P Howto und hier noch was vom W3 Consortium.
    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Kommentar


    • #3
      Hallo!

      Du hast das Problem richtig erkannt...
      Ich will ein Skript schreiben womit ich Banner einblenden kann auf anderen Seiten.
      Die Banner ID soll damit übergeben werden...

      D.h. also ich kann das Skript mit Cookies vergessen weil der IE6 das so nicht mehr unterstützt ?

      Grüße, Dennis.

      Kommentar


      • #4
        Nein ... du kannst Das schon ... zumindest eingeschränkt ... allerdings mußt Du Dich an die erwähnten P3P Richtlinien halten ...
        carpe noctem

        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

        Kommentar


        • #5
          Hm ...

          also irgendwie blick ich da nicht richtig durch ...
          da steht ja was mit xml ...

          mh ... muss ich dann in jede partner seite(domain)
          da irgendwas im header einfügen damit er von anderen domains cookies ausliest?

          Grüße, Dennis.

          Kommentar


          • #6
            Nein ... du mußt auf Deinem Host 'ne Policy hinterlegen ... die Besteht aus einer p3p.xml in der Du Referenzen auf verschiedene Policies angibst ... einer oder mehrerer policy.p3p's ... in der die Policy-Beschreibungen in xml beschrieben werden ... und einer policy.html in der der ganze Schmonsens noch mal in einem lesbaren HTML-Dokument hinterlegt wird.

            Allerdings gibt's dafür auch Editoren ... mußt Du mal beim W3 Consortium suchen ...

            Eine Kurz-Policy mußt Du dann zusätzlich noch im Header Deines Banners mitschicken.

            Das ist an und für sich alles ...

            Allerdings muß dann auch noch der Besucher mitspielen und die Sicherheitsstufe entsprechend eingestellt haben ... normalerweise sollte es aber so funktionieren ... sonst gibt's unten in der Statuszeile 'nen Datenschutzberichts Icon ... das Du dann anklicken kannst ... die Meisten Affiliate-Programme haben sowas aber alles nicht ... weil sie so die Website-Betreiber besser übers Ohr hauen können ... zumindest ist das meine Threorie ...
            carpe noctem

            [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
            [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

            Kommentar


            • #7
              Man könnte das ganze auch teuflisch umgehen, zum Beispiel folgendermassen (ist nur ein Brainstorming, nicht getestet!):

              - Besucher kommt zu domain1.de und bekommt Session-Cookie "abc"
              - Besucher verlässt domain1.de und geht zu domain2.de
              - Auf domain2.de bekommt der Benutzer ein weiteres Cookie ("def") und es wird ein Bild mit der URL http://www.domain1.de/linkcookie.gif...de&session=def angezeigt.

              Das Bild (vorausgesetzt Cookies werden mit Bild-Requests mitgeschickt, ich weiss es nicht) bekommt nun den Cookie von domain1.de *und* via GET den Cookie von domain2.de mitgeschickt. Die Verwandschaft zwischen Cookie 1 und 2 wird in einer Tabelle abgelegt - und schwupp! kann man den Benutzer über mehrere Domains tracken. Wenn ich mal Zeit hab test ichs mal.

              Kommentar


              • #8
                Hallo!

                Danke erstmal für eure Mühe...
                Cookies sind meiner Meinung nach nun nicht mehr so gut
                Ich habe das jetzt mal mit Session_Start() gemacht ...
                Also es funktioniert fast perfekt, aber auch nur fast ...

                Folgende Situation:

                Ich wähle mich ins INet ein...
                Gehe auf eine PartnerSeite... http://www.partner.de

                Banner wird dort aufgerufen mit IMG TAG:
                http://www.ich.de/view.php?userid=1111

                view.php:
                ------------------------------------------------------------------------
                session_start()

                --> BannerID wird ermittelt, View geloggt etc... dann ...

                session_register("bannerID");

                ------------------------------------------------------------------------

                Dann klicke ich auf den Banner auf www.partner.de ->
                http://www.ich.de/click.php?userid=1111

                click.php
                ------------------------------------------------------------------------
                session_start()

                $bannernr = $bannerID;

                --> BannerKlick URL wird zum entsprechenden Banner ermittelt, Klick geloggt etc... und BannerKlick URL wird aufgerufen...
                ------------------------------------------------------------------------

                Es wird aber nicht die URL vom Banner z.B. www.Banner.de
                aufgerufen sondern www.ich.de ...
                (Wenn keine BannerID da ist -> auf Standard URL weitergehen)
                d.h. die Variable "bannerID" wurde nicht per Session übergeben...

                Lade ich aber nun die Partnerseite www.partner.de neu und klicke erneut auf den Banner funktioniert das reibungslos. Egal
                wie oft ich reloade und egal wieviel unterschiedliche Banner kommen...

                Also funktioniert die erste Session nicht. Das ist für ein BannerScript sehr schlecht. Weil der erste Klick sozusagen der Wichtigste ist.

                -> Der erste Klick funktioniert aber wenn ich den Banner auf
                www.ich.de aufrufe... also nur wenn ich auf anderen Domains
                das Skript das erstemal aufrufe funktioniert das nicht ...

                Muss ich da vielleicht am PHP Interpreter oder so etwas ändern?
                z.b. irgendwelche Einstellungen in PHP.INI ?

                Wäre euch sehr dankbar ....

                Grüße, Dennis.

                Kommentar


                • #9
                  Also ich habs nicht so ganz verstanden (ist auch schon spät) aber vielleicht liegt hier ein Verständnisproblem vor: Sessions basieren auch nur auf Cookies bzw. der Übergabe der SessionID via GET-Parameter.

                  Kommentar


                  • #10
                    ohje, das heisst man kann sessions auch vergessen weil die user
                    ja nur den img tag einbinden http://www.ich.de/view.php?id=11111

                    somit kann ma da keine session ids übergeben...

                    ich hab mir überlegt die übergabe, welcher user auf welchen banner geklickt hat, per datenbank zu lösen...
                    nur wie?

                    gibt es irgendwo eine auflistung was man bei einem klick von einer domain zur anderen alles per php auslesen kann ?
                    wie z.b. ip oder browser etc ...

                    Grüße, Dennis.

                    Kommentar


                    • #11
                      Grundsätzlich alles ausser fremden Cookies. Im HTTP_REFERER müsste die URL der Seite stehen, in der die Grafik eingebettet ist, das lässt sich z.B. mit Opera aber abschalten, ist also nicht 100% sicher.

                      Kommentar


                      • #12
                        ich weiss jetzt wie ichs per db mach :-)

                        ich schreib einfach die ip und die bannerid in den table "bannerid_11111" für view.php?id=11111

                        wenn dann das click.php?id=11111 aufgerufen wird schaut es im entsprechenden table nach welche ip welchen banner aufgerufen hat und voila dann sollte es funzen :-)

                        Kommentar


                        • #13
                          Klar, das geht schon, ist aber nicht zu 100% zuverlässig - Wenn mehrere Benutzer einen Proxy benutzen, haben die alle die gleiche IP. Je nachdem in welchen Dimensionen dein Projekt nachher laufen wird, könnte das Probleme geben.

                          Kommentar


                          • #14
                            stimmt...

                            wie kann ich denn dann den user nochmehr diferenzieren?
                            also referer ist auch doof weil bei ner firewall dieser nicht mit übertragen wird ...

                            Kommentar


                            • #15
                              Es sei' denn der Proxy ist so konfiguriert das $HTTP_X_FORWARDED_FOR gesetzt ist ... dann kann man die IP auch noch herausfinden ... muß allerdings dann 'nen 64Bit Wert speichern.
                              carpe noctem

                              [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                              [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                              Kommentar

                              Lädt...
                              X