我是PHP的新手,我正在尝试将php脚本嵌入到一个框架(Web Presence Builder / Parallels)中,该框架为网页设置了2个cookie。我使用以下代码设置cookie。
$hour = time() + 3600;
setcookie("Cookie1", $_POST['username'], $hour, '.mydomain.com');
setcookie("Cookie2", $_POST['pass'], $hour, $hour, '.mydomain.com');
未设置cookie,但是,当我在空白页面(相同的服务器,没有html或css)上运行相同的脚本时,会设置cookie。我已阅读其声明的文档
Like other headers, cookies must be sent before any output from your script...
有没有办法插入脚本以便设置cookie?
感谢。
答案 0 :(得分:1)
放
<?php
$hour = time() + 3600;
setcookie("Cookie1", $_POST['username'], $hour, '.mydomain.com');
setcookie("Cookie2", $_POST['pass'], $hour, $hour, '.mydomain.com');
位于文件的最顶层。将其放在顶部不会影响页面上任何文本输入的位置,因为该代码不输出任何输入字段。
答案 1 :(得分:0)
更一般地说,我认为尽可能使用脚本顶部的大量PHP来布局动态HTML(DHTML)脚本是一种好习惯。这有助于保持对PHP服务器性质的认识。 (即,在将结果输出传递给浏览器之前,所有PHP都在服务器上执行 - 然后在视图源中看到)。 只在需要上下文的代码中传播PHP。 (例如,有条件地显示不同的内容,填充选择的选项或回显字段的默认值)。 在经典设置中,当前页面包含将数据发布到同一页面以进行验证的表单 - 将所有PHP验证和处理代码放在脚本的顶部。您应该通过其余代码(仅测试和/或回声)避免任何PHP计算和/或分配。