修改
好的,目前我的搜索页面是
$ 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,所以它会写出来但它似乎没有用。我尝试用$结果代替“”取消它,但这也没有用。我做错了什么?
答案 0 :(得分:1)
您无法在回音后设置Cookie。它与任何其他http标头相同。 我没有看到你的所有代码,但是这里
echo $_COOKIE['resultcookie'];
setcookie('resultcookie', "", time()-86400);
您不会删除Cookie。这个setcookie()肯定失败了。
,在您从脚本输出任何内容之前使用setcookie()