我有运行PHP 5.3.6的Unix服务器上运行的PHP文件。这些文件确实会将会话变量检查为保护对它们的访问的一种形式。该方法过去对我来说很有效,大部分时间都在这里工作。单击链接有时会导致打开文件对话框而不是导航到页面
我遇到的问题有时候,当您浏览网站时,打开的文件对话框出现而不是导航到该页面的浏览器。提供下载的文件是一个与您列出的文件名称相同的php文件,但是它的长度为0个字节。如果您点击取消并再次点击该链接,通常情况下工作仍然正常。但是,如果您提交表单信息,则会出现问题。
我以前偶尔会遇到过这个问题,甚至在用PHP构建的其他企业网站上看过这个问题(Facebook已经做了两三次),但并没有像我这么做特定的网站。
<?php
session_start();
$_SESSION['admin'] = 1;
header('Location: policy.php');
是如何设置会话的一部分(实际凭据检查被忽略,因为它对示例没有必要)。
<?php
require "../php/secure.php";
是每个“安全”页面的顶部。 secure.php的内容如下:
<?php
session_start();
if($_SESSION['admin'] != 1)
{
header('Location: index.php');
}
这是完整的secure.php文件,没有关闭?>。
任何想法,为什么这可能会发生将不胜感激,我不能拿出任何理由为什么这只会发生在一些时间,否则工作完美。
谢谢。
作为更新,在检查Apache错误日志后,显然在出现空文件时出现分段错误(11)。没有线索,但它为什么发生。 – drewster
更新2:这是一个服务器问题,IT人员通过服务器的防火墙阻止了memcache守护进程清除了这个问题,而不是PHP语言问题。不过谢谢你的建议。 – drewster