PHP新手并且遇到cookie问题

时间:2013-09-07 00:22:37

标签: php html cookies

我是PHP新手,我的意思是全新的。今天是我第一次真的坐下来并且在很长一段时间内拍摄了它......而我想要实现的东西有点傻......我一直在制作一个小小的Flash游戏网站很长一段时间了...只是为了弄脏网页设计和HTML和CSS,我似乎做得很好。该网站只是一个简单的Flash游戏网站,所以我可以在学校玩一些我最喜欢的Flash游戏,当时我没有更好的事情要做。我记得在一个旧的网站上,为了做同样的事情,在每个游戏下面都有一个“恐慌按钮”,点击后只是带你去谷歌...我认为这是一个有趣和聪明的想法所以我想改进它,我想我会做一个小PHP脚本,使用户能够将链接更改为您想要的任何内容。所以,让我们说老师说你需要继续,哦,我不知道......科学.COM!您只需将URL复制并粘贴到首页的输入栏中,它会自动将其保存在您希望在单击“恐慌”按钮时要访问的URL的Cookie中...我猜不好发布代码一直试图让它工作,所以你们都可以看到。

继承人PHP:     

$expire=time()+0*0*12*0;

setcookie('panic', $panic, $expire);

?>

这是HTML:

<form method="post">
<input type="text" name="panic" size="80" id="panic"/>
<input type="submit" value="Submit"/>
</form>
<br />
<?php
echo ('click <a href="\'$_COOKIE {\'$panic\'}\'">HERE</a> to see if it worked!');
?>

我可能从这看起来不太聪明......我实际上已经花了好几个小时,因为某些原因我似乎无法弄明白......而且我不知道它是否可能,我可以拥有主要的PHP用于cookie的单独文件还是没有?...

我还必须指出,出于绝望,我开始编辑很多名字,所以我必须说如果看起来有什么不合适的地方,那么很可能是因为我感到沮丧并且以奇怪的方式弄乱了代码。 / p>

2 个答案:

答案 0 :(得分:0)

这是因为你的HTML是错误的。你不能这样设置cookie。 PHP是服务器端运行,而不是客户端。试试这个。

<强> HTML

<form method="post">
<input type="text" name="panic" size="80" id="panic"/>
<input type="submit" value="Submit"/>
</form>
<br />
<?php
echo ('click <a href="?viewcookie=1">HERE</a> to see if it worked!');
?>

<强> PHP

<?php
error_reporting(E_ALL ^ E_NOTICE); // prevent it from erroring if something isn't defined
if($_GET["viewcookie"]){
    echo $_COOKIE["panic"];
} else if($_POST){
    $panic = $_POST["panic"]
    setCookie('panic', $panic, time()+(60*12)); //expires in 12 minutes
    echo $_COOKIE["panic"];
}
?>

答案 1 :(得分:0)

我认为您的问题是由于以下代码中PHP误用了引号。此外,您正在为$_COOKIE[]选择器使用花括号,并尝试按其内容选择Cookie,而不是其名称(您使用的是$panic而不是'panic'):

  

<?php echo ('click <a href="\'$_COOKIE {\'$panic\'}\'">HERE</a> to see if it worked!'); ?>

单引号意味着您不需要转义双引号,并且您在引号中包含的任何PHP变量都不会自动替换,因此这些变量需要在引号之外连接。

尝试替换它:

<?php echo ('click <a href="'.$_COOKIE['panic'].'">HERE</a> to see if it worked!'); ?>