Ankündigung

Einklappen
Keine Ankündigung bisher.

Cookie setzen durch Imageabruf

Einklappen

Neue Werbung 2019

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

  • Cookie setzen durch Imageabruf

    Moin!
    Erst einmal hallo hallo und vorneweg danke für Support. Ich bin php Newbie, möchte aber fleißig lernen

    Ich möchte folgendes tun. Es soll ein 1x1 großer Pixel durch <img src> in einer html-datei abgerufen werden, der das setzen eines Cookie veranlasst. Cookie Inhalt ist dann eine unique ID sowie 3 feste Parameter durch einen Platzhalter getrennt.

    Folgende Idee hatte ich, funzt aber nicht. Könnt Ihr mir helfen?

    Schon mal vielen Dank im voraus....
    ------------------------------------------

    <?php

    // Image erzeugen, 1x1 pixel
    $im=imagecreate(1,1);

    // setzen Hintergrundfarbe
    $white=imagecolorallocate($im,255,255,255);

    // Allocate Hintergrundfarbe
    imagesetpixel($im,1,1,$white);

    // Setzen image type
    header("content-type:image/jpg");

    // JPG erzeugen
    imagejpeg($im);

    // Free memory associated with the image
    imagedestroy($im);


    //unique ID erzeugen
    $invitationid = uniqid (rand(), true);
    echo $invitationid;
    echo "<br>";

    //Parameter erzeugen
    $mandator = 1;
    $campaign = 0815;
    $zone = 0816;
    $seperator = /;

    //Cookieinhalt erzeugen
    $fullcookie = $mandator . $seperator . $campaign . $seperator . $zone . $seperator . $invitationid;

    //Cookie setzen
    setcookie(„wurst“,$fullcookie,time()+3600*24*30,“. gehirntoast.de“);

    ?>


  • #2
    Und wo ist jetzt dein Problem?

    Was mir auffällt:
    - Cookie musst setzen bevor du was an den Browser sendest
    - Du kannst nicht wild HTML mit Bilddaten mischen. Du sendest den Content-Typ image/jpg also haben die echo's da nichts zu suchen.
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      Zitat von tkausl Beitrag anzeigen
      - Cookie musst setzen bevor du was an den Browser sendest
      Dazu hatte ich grad was rausgesucht:

      setcookie() definiert ein mit den HTTP Header-Informationen zu übertragendes Cookie.
      Wie andere Header auch, müssen Cookies vor jeglicher Ausgabe im Skript gesendet werden.
      Das bedeutet, dass die Funktion aufgerufen werden muß, bevor irgend eine Ausgabe gemacht wird,
      dazu zählen neben Ausgaben mit echo auch Grafikausgaben (imagejpeg),
      <html>- oder <head>-Tags sowie jede Art von Whitespaces oder BOM..
      PHP-Klassen auf github

      Kommentar


      • #4
        Zitat von jspit Beitrag anzeigen
        Das bedeutet, dass die Funktion aufgerufen werden muß, bevor irgend eine Ausgabe gemacht wird,
        dazu zählen neben Ausgaben mit echo auch <html>- oder <head>-Tags sowie jede Art von Whitespaces oder BOM.
        In seinem Fall sollte man noch dazusagen, dass die Ausgabe des Bildes
        PHP-Code:
        imagejpeg($im); 
        auch dazu zählt
        Zitat von nikosch
        Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

        Kommentar


        • #5
          Herzlichen Dank erst mal, aber es funkt immer noch nicht, es wird verdammt noch mal kein Cookie gesetzt

          Ich habe das Script jetzt umgedreht und eure Anmerkungen berücksichtigt

          <?php

          //unique ID erzeugen
          $invitationid = uniqid (rand(), true);

          //Parameter erzeugen
          $mandator = 1;
          $campaign = 0815;
          $zone = 0816;
          $seperator = /;

          //Cookieinhalt erzeugen
          $fullcookie = $mandator . $seperator . $campaign . $seperator . $zone . $seperator . $invitationid;

          //Cookie setzen
          setcookie(„wurst“,$fullcookie,time()+3600*24*30,“. gehirntoast.de“);


          // Image erzeugen, 1x1 pixel
          $im=imagecreate(1,1);

          // setzen Hintergrundfarbe
          $white=imagecolorallocate($im,255,255,255);

          // Allocate Hintergrundfarbe
          imagesetpixel($im,1,1,$white);

          // Setzen image type
          header("content-type:image/jpg");

          // JPG erzeugen
          imagejpeg($im);

          // Free memory associated with the image
          imagedestroy($im);

          ?>

          Kommentar


          • #6
            Bitte nutze [ PHP ][/ PHP ] Tags für dein PHP-Code. Ich seh da ne menge Syntaxfehler, die aber auch vom Forum kommen können
            Zitat von nikosch
            Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

            Kommentar


            • #7
              Dann kommentier mal den ganzen Grafikkram aus, aktivier das error_reporting und schau, ob bei normalen Scriptstart dein Cookie gesetzt wird.
              PHP-Klassen auf github

              Kommentar


              • #8
                Vielen Dank, ich bin leider blutiger Anfänger, aber irgendwie muss man ja mal starten. Danke an euch. Hier nun noch mal der Code mit PHP-Tag:

                PHP-Code:
                <?php

                //unique ID erzeugen
                $invitationid uniqid (rand(), true);

                //Parameter erzeugen
                $mandator 1;
                $campaign 0815;
                $zone 0816;
                $seperator = /;

                //Cookieinhalt erzeugen
                $fullcookie $mandator $seperator $campaign $seperator $zone $seperator $invitationid;

                //Cookie setzen
                setcookie(„wurst“,$fullcookie,time()+3600*24*30,.gehirntoast.de“);

                // Image erzeugen, 1x1 pixel
                $im=imagecreate(1,1);

                // setzen Hintergrundfarbe
                $white=imagecolorallocate($im,255,255,255);

                // Allocate Hintergrundfarbe
                imagesetpixel($im,1,1,$white);

                // Setzen image type
                header("content-type:image/jpg");

                // JPG erzeugen
                imagejpeg($im);

                // Free memory associated with the image
                imagedestroy($im);

                ?>

                Kommentar


                • #9
                  Was soll denn „ und “ darstellen? In PHP gibt es sowas nicht.
                  PHP-Code:
                  $seperator = /; 
                  Da fehlen die Quotes.
                  Zitat von nikosch
                  Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

                  Kommentar


                  • #10
                    Zitat von tkausl Beitrag anzeigen
                    Was soll denn „ und “ darstellen? In PHP gibt es sowas nicht.
                    PHP-Code:
                    $seperator = /; 
                    Da fehlen die Quotes.
                    Ich möchte die Zeichenkette im Cookie durch irgendetwas separieren, kann jedes Sonderzeichen sein, ich dachte an einen "/". Kann aber auch ein Semikolon oder so sein. Geht das nicht?

                    Danke für Dummy-Support

                    Kommentar


                    • #11
                      Zitat von elobe Beitrag anzeigen
                      Ich möchte die Zeichenkette im Cookie durch irgendetwas separieren, kann jedes Sonderzeichen sein, ich dachte an einen "/". Kann aber auch ein Semikolon oder so sein. Geht das nicht?
                      Natürlich geht das. Aber warum denkst du an ein "/" aber nutzt dann nur ein /?
                      Genauso wie du in deinem Satzbau verdeutlichen willst, dass du dieses Zeichen meinst braucht auch PHP die Information, dass du genau dieses Zeichen meinst und es sich nicht um pure Syntax-Zeichen handelt.
                      Zitat von nikosch
                      Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

                      Kommentar


                      • #12
                        Es funzt, vielen fank an alle!

                        Kommentar


                        • #13
                          PHP-Code:
                          $seperator "/";

                          $seperator "|";
                          $seperator ";"
                          Das Wort heißt aber eigentlich Separator

                          Kommentar

                          Lädt...
                          X