【问题标题】:session_start() keeps the file load foreversession_start() 永远保持文件加载
【发布时间】:2013-08-18 21:00:00
【问题描述】:

我将 PHP 与 XAMPP 一起使用。我的 PHP 文件可以工作,但是如果我在脚本中的任何位置调用 session_start() 并运行它,在页面标题处写“等待本地主机”,页面将永远加载,只会显示一个空白页面并继续加载。

我也试过启用错误,没有显示错误。

运行:

<?php
echo "test";
?>

这不会运行(空白页面并且页面一直在加载)

<?php
session_start();
echo "test";
?>

编辑: 由于 Fred 的建议,我从 phpinfo() 结果中发布了我的会话信息:

Session Support  enabled  
Registered save handlers  files user  
Registered serializer handlers  php php_binary wddx  

session.auto_start Off Off 
session.cache_expire 180 180 
session.cache_limiter nocache nocache 
session.cookie_domain no value no value 
session.cookie_httponly Off Off 
session.cookie_lifetime 0 0 
session.cookie_path / / 
session.cookie_secure Off Off 
session.entropy_file no value no value 
session.entropy_length 0 0 
session.gc_divisor 1000 1000 
session.gc_maxlifetime 1440 1440 
session.gc_probability 1 1 
session.hash_bits_per_character 5 5 
session.hash_function 0 0 
session.name PHPSESSID PHPSESSID 
session.referer_check no value no value 
session.save_handler files files 
session.save_path C:\xampp2\tmp C:\xampp2\tmp 
session.serialize_handler php php 
session.upload_progress.cleanup On On 
session.upload_progress.enabled On On 
session.upload_progress.freq 1% 1% 
session.upload_progress.min_freq 1 1 
session.upload_progress.name PHP_SESSION_UPLOAD_PROGRESS PHP_SESSION_UPLOAD_PROGRESS 
session.upload_progress.prefix upload_progress_ upload_progress_ 
session.use_cookies On On 
session.use_only_cookies Off Off 
session.use_trans_sid 0 0 

【问题讨论】:

  • “在页面标题处”?这是您实际的完整代码吗?我没有看到任何页面标题,所以这显然不是您的完整代码。
  • 我认为他的意思是进度状态,弗雷德。
  • 请运行这个:echo session_status(); 你得到了什么? 012
  • @ChrisForrence 我明白了,但我们/我如何确定问题出在哪里?完整的代码总是最好的,IMO。
  • @Fred OP 做了正确的事情。我们鼓励在 SO 上使用 SSCCE

标签: php apache session xampp


【解决方案1】:

当我在本地主机上同时运行多个使用 session_start() 的页面时,我遇到了这个问题。

" 默认情况下,PHP 将其会话数据写入文件。当对启动会话 (session_start()) 的 PHP 脚本发出请求时,该会话文件被锁定。这意味着如果您的网页向 PHP 脚本发出大量请求,例如,通过 Ajax 加载内容,每个请求都可能锁定会话并阻止其他请求完成。 " http://konrness.com/php5/how-to-prevent-blocking-php-requests/

【讨论】:

  • 文件只被锁定几纳秒。您每秒可以有 10000 个请求,并且它们不会明显地相互阻塞。锁定发生得非常非常快。
  • stackoverflow.com/a/14966334/3787376 "你有文件系统支持的会话的经典问题。你的上传脚本在其持续时间内锁定会话支持文件,因此在释放锁定之前无法访问会话信息。”和“要释放会话锁定,请在上传脚本的任何时候调用session_write_close。这使您无法访问会话变量,直到您稍后再次调用session_start。您可以随意重复此循环。”以下是锁定发生位置的一些证据。
【解决方案2】:

在我自己的环境中对此进行了调查,这似乎是 XAMPP 软件堆栈本身的一个故障,我在系统错误日志中收到错误,表明子进程退出并带有长状态代码,然后重新启动。这不是与 PHP 相关的错误,而是 XAMPP 中的实现错误。我已将错误的详细信息转发给该项目的开发成员 Bitnami,希望他们能够解决此问题并发布更新版本,同时我建议使用 wamp。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    • 1970-01-01
    • 2019-05-24
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 2019-12-07
    相关资源
    最近更新 更多