Cookie正常工作一次,但现在没有设置

时间:2015-04-28 15:19:15

标签: php cookies

修改

好的,目前我的搜索页面是

$ valgrind ./bin/read_long_csv dat/randlong.txt
==26142== Memcheck, a memory error detector
==26142== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
==26142== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
==26142== Command: ./bin/read_long_csv dat/randlong.txt
==26142==

  reallocating 64 to 128

  reallocating 128 to 256

  reallocating 256 to 512
 array[0] : 353
 array[1] : 394
 array[2] : 257
 array[3] : 173
 array[4] : 389
 array[5] : 332
 array[6] : 338
 array[7] : 293
 array[8] : 58
 array[9] : 135
<snip>
 array[395] : 146
 array[396] : 324
 array[397] : 424
 array[398] : 365
 array[399] : 205
==26142==
==26142== HEAP SUMMARY:
==26142==     in use at exit: 0 bytes in 0 blocks
==26142==   total heap usage: 7 allocs, 7 frees, 9,886 bytes allocated
==26142==
==26142== All heap blocks were freed -- no leaks are possible
==26142==
==26142== For counts of detected and suppressed errors, rerun with: -v
==26142== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 2 from 2)

我的结果页面是:

<?php

 ...
        while($row = $search->fetch(PDO::FETCH_ASSOC)){
           $result .= "Title: " . $row['comicTitle'];
           $result .= " Issue: " . $row['comicIssue'];
           $result .= " Release: " . $row['releaseDate']."<BR>";

        }
         setcookie('results', $result);

    }

    ?>


    <!doctype html>
    <html>

结果第一次显示正确,但如果我转到搜索页面并再次搜索,我会得到之前的结果。我的if(isset)语句中的回声是否导致该错误?

原帖

我有一个变量$ results,我正在尝试保存到cookie,以便它可以显示在结果页面上。

在搜索页面上,要设置cookie,我使用: <?php if (isset($_COOKIE['results'])) { echo $_COOKIE['results']; }else{ echo "There are no results to display."; } ?> <!doctype html> <html>

在结果页面上,我使用了这个:

setcookie ('resultcookie', $result, time()+300);

我第一次尝试使用该页面时,结果显示正确。现在,当我尝试搜索时,我总是得到“没有结果可以显示”。我试过没有取消设置cookie,所以它会写出来但它似乎没有用。我尝试用$结果代替“”取消它,但这也没有用。我做错了什么?

1 个答案:

答案 0 :(得分:1)

您无法在回音后设置Cookie。它与任何其他http标头相同。 我没有看到你的所有代码,但是这里

 echo $_COOKIE['resultcookie'];
 setcookie('resultcookie', "", time()-86400);

您不会删除Cookie。这个setcookie()肯定失败了。

,在您从脚本输出任何内容之前使用setcookie()