MAMP localhost包含和cookie设置功能

时间:2012-12-19 23:21:29

标签: php cookies include localhost mamp

由于显而易见的原因,我试图让我的网站脱机,我无法使localhost PHP功能正常工作。我的代码如下:

include "http://localhost:8888/mainbar.php?display=1";

如果我只是拥有它的名字,我可以包含该文件,但我需要在URL上传递值,所以这不是一个选项。我已经研究了其他方法来实现这一点,但使用MAMP的关键是能够脱机工作然后上传改进。

接下来,我无法设置Cookie。以下是我的以下cookie代码:

$expire=time() + (14 * 24 * 60 * 60);
setcookie("user", "Conan", $expire, '/');

我也曾尝试使用Chrome设置Cookie,但我无法这样做。如果无法做到,我会感到惊讶。

2 个答案:

答案 0 :(得分:2)

仅包含文件路径,而不是URL。

正确的用法如下所示: 包括“/ path / to / file”

include "/var/www/html/yourappfolder/mainbar.php";

我看到你试图传递一个变量?display=1。解决方案不是弄清楚如何使用URL参数加载文件,您真的想重新设计如何获取与display变量对应的信息。

您要做的是改进软件设计并在某处创建单独的功能,例如:getMainBarData($display)。在mainbar.php文件中,您将调用此函数以获取当前的结果。在您正在使用的文件中,您可以包含包含新功能getMainBarData($display)的文件,并直接调用它:getMainBarData(1)

所以基本上,你想创建一个既可以被mainbar.php使用又可以使用include的文件。 1个功能可供2页使用,这是您的最佳解决方案。

就cookie问题而言..尝试没有路径“/”..所以:

setcookie('user', 'Conan', $expire);

答案 1 :(得分:0)

对于问题的第一部分,你需要启用url_file_include。这被认为是一个巨大的安全风险,一般来说它永远不会被使用,因为它是设计糟糕的标志。为了使这项工作你只需要添加一个

allow_url_include=1
在你的php.ini中

。 对于问题的后半部分,您的代码在我的MAMP安装上正常工作,因此您必须确保在向浏览器输出之前调用setcookie(任何回声)。 如果您要保存任何敏感信息,也应该考虑不使用cookie。