Re: setting cookie doesn't work

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I made two files now of the program: (the main one and the one where I
set the cookie and open pdf)and I noticed that it doesn't work setting
the cookie the first time I call the file where I set the cookie but
only after the second header  redirection.
How do I refresh the page in php?

Thanks in advance, Grega from Slovenia

2009/8/3 Grega Leskovsek <mavricek@xxxxxxxxx>:
> And here is the objective:
> Alter your Acme, Inc. download interface from the previous lesson(I
> had to not to allow users on computers straing IP with 202 and allow
> only IE for Win and FF for Mac to download file) so that each user
> must register her email address in order to download the file. Use
> cookies to detect whether the user has already registered, and to
> ensure that the user downloads the file only once within 7 days of
> registering.
>
> As always, validate the forms, comment your code, and explain your results!
>
>
> 2009/8/3 Grega Leskovsek <mavricek@xxxxxxxxx>:
>> Here is one of my final objectives at PHP introductory course ot
>> O'Reilly. The strange thing that setting a cookie in that program
>> les13uadownload.php doesn't work. I don't have a clue - sometimes in
>> other programs when I run them they set cookies and sometimes not. To
>> see the full functionality of this "program" I had to set cookie
>> sevendays in another program. Please check where is my bug. Thanks in
>> advance, Grega from Slovenia
>>
>> <?php
>> if (!empty($_GET['delete_cookie'])) {
>>   setcookie("sevendays", "", time()-3600); //delete the cookie to
>> allow to download the file more than 1x in 7days as another user
>> }
>>
>> if (isset($_POST['check'])AND(isset($_POST['email']))AND(empty($_COOKIE["sevendays"])))
>> {#user clicked form download button
>>  $email = $_POST['email'];
>>  setcookie("sevendays", "email", time()+60*60*24*7);
>>  $filepath = $_SERVER['DOCUMENT_ROOT']."/.php_files/acme_brochure.pdf";
>>  if (file_exists($filepath)) {
>>     header("Content-Type: application/force-download");
>>     header("Content-Disposition:filename=\"brochure.pdf\"");
>>     $fd = fopen($filepath,'rb');
>>     fpassthru($fd);
>>     fclose($fd);
>>  }
>> }#isset(check)
>> ?>
>> <script type="text/javascript">
>>        function setcolor(backgcolor,color) {
>>                document.getElementById("file").style.color=color;
>>                document.getElementById("file").style.background=backgcolor;
>>        }
>>
>>  function setStyle(x) {
>>        document.getElementById(x).style.background="yellow";
>>  }
>>  function unSetStyle(x) {
>>        document.getElementById(x).style.background="white";
>>  }
>>
>>            function isFormValid (formToCheck) {
>>                retVal = true;
>>
>>                if (
>> (formToCheck.email.value).search(/^[\w!#$%&\'*+\/=?^`{|}~.-]+@(?:[a-z\d][a-z\d-]*(?:\.[a-z\d][a-z\d-]*)?)+\.(?:[a-z][a-z\d-]+)$/i)
>> == -1 )
>>                {
>>                    element = document.getElementById ("new1Label");
>>                    element.style.color = "red";
>>                    element.style.fontWeight = "bold";
>>                    retVal = false;
>>                    retEmVal = false;
>>                }
>>                else
>>                {
>>                    element = document.getElementById ("new1Label");
>>                    element.style.color = "black";
>>                    element.style.fontWeight = "normal";
>>                    retEmVal = true;
>>
>>                }
>>
>>                if (formToCheck.downloaded.value=='no') {
>>                    ret7daysVal = true;
>>                }else {
>>                    ret7daysVal = false;
>>                }
>>
>>                if (!retEmVal)
>>                {
>>                    alert ("Please enter a valid e-mail address!");
>>                    retVal = false;
>>                }else if (!ret7daysVal)
>>                {
>>                    alert ("You can download the file only once in
>> seven days!");
>>                    retVal = false;
>>                }
>>
>>                return retVal;
>>
>>            }
>> </script>
>> <?php
> //You dont need this line>
> require($_SERVER['DOCUMENT_ROOT']."/template_top.inc");
>> $ua = $_SERVER['HTTP_USER_AGENT']."<br />";
>> if (preg_match("/Macintosh/",$ua)) {
>>  if (!preg_match("/Firefox/",$ua)) {
>>    echo "For Macintosh You need to use Firefox! <a
>> href=\"http://www.apple.com/downloads/macosx/internet_utilities/mozillafirefox.html\";>Download
>> here ...</a>";
>>    exit();
>>  }
>> }
>> if (preg_match("/Windows/",$ua)) {
>>  if (!preg_match("/MSIE/",$ua)) {
>>    echo "For Windows You need to use Internet Explorer!";
>>    exit();
>>  }
>> }
>> $ip = $_SERVER['REMOTE_ADDR'];
>> $ipCheck = substr($ip,0,3);
>> if ($ipCheck == "202") {echo "I don't trust You."; exit();}
>> ?>
>> <?php
>> if (!empty($_COOKIE["sevendays"])) echo "IN SEVEN
>> ".$_COOKIE["sevendays"]." DAYS!!!";
>> if ($_COOKIE["sevendays"]) {
>>  echo $_COOKIE["sevendays"];
>>  ?>
>>  <a href="les13uadownload.php?delete_cookie=1">Not my email: <? echo
>> $_COOKIE["sevendays"]; ?>?</a>
>>  <?php
>> }else {
>>  ?>
>>  <form method="post" name="vnosnaForma" action="les12uadownload.php">
>>  <span id="new1Label">Enter Your e-mail: </span><input type="text"
>> size="25" name="email" value="<? echo $_COOKIE["sevendays"]; ?>">
>>  <input type="button" name="button" value="Download now!" onClick="if
>> (isFormValid(document.vnosnaForma)) {document.vnosnaForma.submit();}"
>> />
>>  <input type="hidden" name="check" value="1" />
>>  <input type="text" name="downloaded" value="<?php if
>> (!empty($_COOKIE["sevendays"])) echo $_COOKIE["sevendays"]; else echo
>> "no"; ?>"/>
>>  </form>
>>  <?php
>> }
> //You dont need this line>
> require($_SERVER['DOCUMENT_ROOT']."/template_bottom.inc");
>> print_r($_COOKIE);
>> echo "XX".$_COOKIE["sevendays"]."XX";
>> ?>
>>
>>
>> --
>> When the sun rises I receive and when it sets I forgive ->
>> http://users.skavt.net/~gleskovs/
>> All the Love, Grega Leskov'sek
>>
>
>
>
> --
> When the sun rises I receive and when it sets I forgive ->
> http://users.skavt.net/~gleskovs/
> All the Love, Grega Leskov'sek
>



-- 
When the sun rises I receive and when it sets I forgive ->
http://users.skavt.net/~gleskovs/
All the Love, Grega Leskov'sek

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux