cookies and php - basics

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • deko

    cookies and php - basics

    This is about the simplest example I could come up with, but for some reason
    (not my browser's settings) it's not working...


    [top of page]
    <?php
    setcookie($cook ie_name, "cookie_content ", time()+3600);
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>cookie test</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body>
    <p>
    <?php
    if (isset($cookie_ name))
    {
    print "Welcome! <br>";
    }
    else
    {
    print "Go away.";
    }
    ?>
    </p>
    </body>
    </html>

    Am I missing something? thx


  • deko

    #2
    Re: cookies and php - basics

    Ah Ha... got it working

    <?php
    $cookie_name = "the_cookie_nam e"; <== this is what was missing
    $cookie_content = "the_cookie_con tent";
    setcookie($cook ie_name, $cookie_content , time()+3600);
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>cookie test</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body>
    <p>
    <?php
    if (isset($cookie_ name))
    {
    print "Welcome! <br>";
    }
    else
    {
    print "Go away.";
    }
    ?>
    </p>
    </body>
    </html>

    As for best practices, should the cookie code always be at the top of the page
    like this?


    Comment

    • deko

      #3
      Re: cookies and php - basics

      umm... on second thought... back to the drawing board
      "deko" <dje422@hotmail .com> wrote in message
      news:0lw7c.4120 1$OG6.20733@new ssvr25.news.pro digy.com...[color=blue]
      > Ah Ha... got it working
      >
      > <?php
      > $cookie_name = "the_cookie_nam e"; <== this is what was missing
      > $cookie_content = "the_cookie_con tent";
      > setcookie($cook ie_name, $cookie_content , time()+3600);
      > ?>
      > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
      > "http://www.w3.org/TR/html4/loose.dtd">
      > <html>
      > <head>
      > <title>cookie test</title>
      > <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      > </head>
      > <body>
      > <p>
      > <?php
      > if (isset($cookie_ name))
      > {
      > print "Welcome! <br>";
      > }
      > else
      > {
      > print "Go away.";
      > }
      > ?>
      > </p>
      > </body>
      > </html>
      >
      > As for best practices, should the cookie code always be at the top of the page
      > like this?
      >
      >[/color]


      Comment

      • deko

        #4
        Re: cookies and php - basics

        Here's beta 2 - but something is still not right. I still get in without
        waiting 2 hours....

        <?php
        $cookie_name = "www.mysite.com ";
        setcookie($cook ie_name, time(), time()+7200); //say cookie is received at
        3:00pm
        //question: if the cookie has NOT yet expired, will it be set again?
        //if yes, how do I prevent cookie from being set if it has not expired?
        ?>
        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
        <html>
        <head>
        <title>cookie test</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        </head>
        <body>
        <p>
        <?php
        $cookie_content = $HTTP_COOKIE_VA RS[$cookie_name];
        if ($cookie_conten t > (time()-7200))
        //say it's now 4:00pm - if your cookie timestamp (3:00pm) is greater than
        //(i.e. after) 2:00pm (now minus 2 hours) then you can't come in
        {
        print "Go away! You are allowed in here only once every 2 hours.";
        }
        else
        {
        print "Welcome! You have not been here more than once in the past 2 hours.";
        }
        ?>
        </p>
        </body>
        </html>



        Comment

        • Alvaro G Vicario

          #5
          Re: cookies and php - basics

          *** deko wrote/escribió (Mon, 22 Mar 2004 07:02:23 GMT):[color=blue]
          > This is about the simplest example I could come up with, but for some reason
          > (not my browser's settings) it's not working...
          >
          >
          > [top of page]
          > <?php
          > setcookie($cook ie_name, "cookie_content ", time()+3600);
          > ?>[/color]

          Please note you never give any value to $cookie_name variable so cookie is
          created without any name, just a value.

          Set-Cookie: =cookie_content ; expires=Mon, 22-Mar-04 10:30:51 GMT



          --
          --
          -- Álvaro G. Vicario - Burgos, Spain
          --

          Comment

          • Alvaro G Vicario

            #6
            Re: cookies and php - basics

            Sorry, I hadn't read your followups.

            *** deko wrote/escribió (Mon, 22 Mar 2004 09:07:13 GMT):[color=blue]
            > //question: if the cookie has NOT yet expired, will it be set again?[/color]

            Sure. Why shouldn't?
            [color=blue]
            > //if yes, how do I prevent cookie from being set if it has not expired?[/color]

            if()

            Check first whether cookie exists.

            [color=blue]
            > if ($cookie_conten t > (time()-7200))[/color]

            Try this:

            echo $cookie_content

            You'll notice what fails. In general, printing the value of variables helps
            a lot. You'll also make good use of print_r():

            echo "<pre>";
            print_r($HTTP_C OOKIE_VARS);
            echo "</pre>";

            It's not a good idea to use dots in cookie names.



            --
            --
            -- Álvaro G. Vicario - Burgos, Spain
            --

            Comment

            • deko

              #7
              Re: cookies and php - basics

              Hi and thanks for the reply. What I am trying to do is very basic, I'm sure.

              Again, here is my code - see comments for questions.

              <?php
              $cookie_name = "wwwmydomaincom ";
              setcookie($cook ie_name, time(), time()+7200); //say cookie is received at
              3:00pm
              //here you say that the cookie will be set again, even if it has expired.
              //the problem is, when I try to check to see if the cookie exists -
              // using $HTTP_COOKIE_VA RS - I get some error about the header...
              //so what souldd teh code look like?
              ?>
              <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
              "http://www.w3.org/TR/html4/loose.dtd">
              <html>
              <head>
              <title>cookie test</title>
              <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
              </head>
              <body>
              <p>
              <?php
              $cookie_content = $HTTP_COOKIE_VA RS[$cookie_name];
              if ($cookie_conten t > (time()-7200))
              //say it's now 4:00pm - if your cookie timestamp (3:00pm) is greater than
              //(i.e. after) 2:00pm (now minus 2 hours) then you can't come in
              {
              print "Go away! You are allowed in here only once every 2 hours.";
              }
              else
              {
              print "Welcome! You have not been here more than once in the past 2 hours.";
              }
              ?>
              </p>
              </body>
              </html>


              Comment

              • Alvaro G Vicario

                #8
                Re: cookies and php - basics

                *** deko wrote/escribió (Mon, 22 Mar 2004 10:49:34 GMT):[color=blue]
                > //here you say that the cookie will be set again, even if it has expired.
                > //the problem is, when I try to check to see if the cookie exists -
                > // using $HTTP_COOKIE_VA RS - I get some error about the header...
                > //so what souldd teh code look like?[/color]

                Something like this should work:

                if($_COOKIE['wwwmydomaincom ']!=''){
                }



                --
                --
                -- Álvaro G. Vicario - Burgos, Spain
                --

                Comment

                • deko

                  #9
                  Re: cookies and php - basics

                  Okay, I think I've got it:

                  <?php
                  setcookie("cook ie_name",time() ,0,"/");
                  $cookie_check = $HTTP_COOKIE_VA RS["cookie_nam e"];
                  if ($cookie_check > (time()-7200))
                  {
                  print "Try again in 2 hours.";
                  exit;
                  }
                  else
                  {
                  echo "the code";
                  }
                  ?>

                  This seems to be working as desired. The problem is how to accommodate visitors
                  from different time zones? For example, if your time zone is 3 hours behind me,
                  "the code" will never run for you. Is there a way to determine the time zone
                  offset of my visitors?


                  Comment

                  • Alvaro G Vicario

                    #10
                    Re: cookies and php - basics

                    *** deko wrote/escribió (Mon, 22 Mar 2004 21:55:10 GMT):[color=blue]
                    > This seems to be working as desired. The problem is how to accommodate visitors
                    > from different time zones?[/color]

                    There's no need to. You are setting the time in the server.


                    --
                    --
                    -- Álvaro G. Vicario - Burgos, Spain
                    --

                    Comment

                    • deko

                      #11
                      Re: cookies and php - basics

                      10-4

                      thanks for the help. I think I'm read for cookies 102...

                      cheers,

                      deko

                      "Alvaro G Vicario" <alvaro_QUITAR_ REMOVE@telecomp uteronline.com> wrote in
                      message news:iitzqset7r 70.oujlgbpjxznw $.dlg@40tude.ne t...[color=blue]
                      > *** deko wrote/escribió (Mon, 22 Mar 2004 21:55:10 GMT):[color=green]
                      > > This seems to be working as desired. The problem is how to accommodate[/color][/color]
                      visitors[color=blue][color=green]
                      > > from different time zones?[/color]
                      >
                      > There's no need to. You are setting the time in the server.
                      >
                      >
                      > --
                      > --
                      > -- Álvaro G. Vicario - Burgos, Spain
                      > --[/color]


                      Comment

                      Working...