【问题标题】:PHP Sessions Not Saving for random usersPHP 会话不为随机用户保存
【发布时间】:2020-05-20 18:44:44
【问题描述】:

我目前正在 PHP 5.6 上运行一个项目,因为该项目在旧 PHP 代码上运行。我目前遇到随机用户无法保留其会话的问题。

例如,用户正在登录并且他们的会话立即被取消设置。

我已尽我所能尝试解决问题: - 检查我的配置文件调用会话开始 - 检查 SSL 不会导致会话取消设置 - 将所有带有数据库功能的会话未设置命令设置为 cmets - 没有运气检查 htaccess 文件 - 双重检查用户正在访问http://www。或仅 http:// (不是一个然后另一个) - 检查cookies没有被用户浏览器阻止 - 检查 Adblock 插件没有干扰。

我认为可能是我的 htaccess 文件导致了问题,但我不是这些方面的专家,我已将我的 htaccess 文件代码放在下面

Options -Indexes

# Various rewrite rules.
<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !=/favicon.ico

  RewriteRule ^([^/]+)$ index.php?p=$1 [L,QSA]
  #RewriteRule ^(.*)$ V2/$1 [L,QSA]
</IfModule>

<IfModule mod_rewrite.c>
 RewriteEngine on 
 RewriteCond %{REQUEST_FILENAME} !-d 
 RewriteCond %{REQUEST_FILENAME}\.php -f 
</IfModule>

<IfModule php5_module>
   php_flag asp_tags Off
   php_flag display_errors Off
   php_value max_execution_time 90
   php_value max_input_time -1
   php_value max_input_vars 1000
   php_value memory_limit 64M
   php_value post_max_size 20M
   php_value session.gc_maxlifetime 1440
   php_value session.save_path ".cagefs/var/cpanel/php/sessions/ea-php56"
   php_value upload_max_filesize 2M
   php_flag zlib.output_compression Off
</IfModule>

RewriteEngine On

ErrorDocument 400 /V2/404

ErrorDocument 401 /V2/404

ErrorDocument 403 /V2/404

ErrorDocument 404 /V2/404

ErrorDocument 500 /V2/404

RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:craftbot@yahoo.com [OR]
RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR]
RewriteCond %{HTTP_USER_AGENT} ^Custo [OR]
RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR]
RewriteCond %{HTTP_USER_AGENT} ^Download\ Demon [OR]
RewriteCond %{HTTP_USER_AGENT} ^eCatch [OR]
RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]
RewriteCond %{HTTP_USER_AGENT} ^Express\ WebPictures [OR]
RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR]
RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [OR]
RewriteCond %{HTTP_USER_AGENT} ^FlashGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetWeb! [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [OR]
RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR]
RewriteCond %{HTTP_USER_AGENT} ^Grafula [OR]
RewriteCond %{HTTP_USER_AGENT} ^HMView [OR]
RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Stripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} Indy\ Library [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^InterGET [OR]
RewriteCond %{HTTP_USER_AGENT} ^Internet\ Ninja [OR]
RewriteCond %{HTTP_USER_AGENT} ^JetCar [OR]
RewriteCond %{HTTP_USER_AGENT} ^JOC\ Web\ Spider [OR]
RewriteCond %{HTTP_USER_AGENT} ^larbin [OR]
RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mass\ Downloader [OR]
RewriteCond %{HTTP_USER_AGENT} ^MIDown\ tool [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mister\ PiX [OR]
RewriteCond %{HTTP_USER_AGENT} ^Navroad [OR]
RewriteCond %{HTTP_USER_AGENT} ^NearSite [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetAnts [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Net\ Vampire [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Octopus [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Explorer [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Navigator [OR]
RewriteCond %{HTTP_USER_AGENT} ^PageGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^Papa\ Foto [OR]
RewriteCond %{HTTP_USER_AGENT} ^pavuk [OR]
RewriteCond %{HTTP_USER_AGENT} ^pcBrowser [OR]
RewriteCond %{HTTP_USER_AGENT} ^RealDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^ReGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [OR]
RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^SpiderWeb [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Surfbot [OR]
RewriteCond %{HTTP_USER_AGENT} ^tAkeOut [OR]
RewriteCond %{HTTP_USER_AGENT} ^Teleport\ Pro [OR]
RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Image\ Collector [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebAuto [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebCopier [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebFetch [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebGo\ IS [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebLeacher [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebReaper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebSauger [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ eXtractor [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ Quester [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebStripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Widow [OR]
RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus
RewriteRule ^.* - [F,L]

# compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/php
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

# 1 YEAR
<FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$">
Header set Cache-Control "max-age=29030400, public"
</FilesMatch>

# 1 WEEK
<FilesMatch "\.(jpg|jpeg|png|gif|swf|PNG|js|css)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>

# 3 HOUR
<FilesMatch "\.(txt|xml|php|html|zip)$">
Header set Cache-Control "max-age=10800"
</FilesMatch>

# NEVER CACHE - notice the extra directives
<FilesMatch "\.(htm|cgi|pl)$">
Header set Cache-Control "max-age=0, private, no-store, no-cache, must-revalidate"
</FilesMatch>

<files *.php>
SetOutputFilter DEFLATE
</files>

有没有人知道这可能出现的问题?

错误日志文件

    [04-Feb-2020 21:43:43 UTC] PHP Deprecated:  mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/sitename/public_html/panel/_inc/db.inc.php on line 11
[04-Feb-2020 21:43:43 UTC] PHP Deprecated:  mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/sitename/public_html/panel/_inc/db.inc.php on line 11
[04-Feb-2020 21:43:43 Europe/London] PHP Warning:  simplexml_load_file(http://...@andromeda.shoutca.st:8619/admin.cgi?mode=viewxml&amp;page=1&amp;sid=1): failed to open stream: Connection refused in /home/sitename/public_html/V2/index.php on line 260
[04-Feb-2020 21:43:43 Europe/London] PHP Warning:  simplexml_load_file(): I/O warning : failed to load external entity &quot;http%3A%2F%2Fadmin%3ASrM%7BO%29-%29O0O8%40andromeda.shoutca.st%3A8619%2Fadmin.cgi%3Fmode%3Dviewxml%26page%3D1%26sid%3D1&quot; in /home/sitename/public_html/V2/index.php on line 260
[04-Feb-2020 21:43:43 Europe/London] PHP Warning:  simplexml_load_file(http://...@andromeda.shoutca.st:8619/admin.cgi?mode=viewxml&amp;page=1&amp;sid=1): failed to open stream: Connection refused in /home/sitename/public_html/V2/index.php on line 260
[04-Feb-2020 21:43:43 Europe/London] PHP Warning:  simplexml_load_file(): I/O warning : failed to load external entity &quot;http%3A%2F%2Fadmin%3ASrM%7BO%29-%29O0O8%40andromeda.shoutca.st%3A8619%2Fadmin.cgi%3Fmode%3Dviewxml%26page%3D1%26sid%3D1&quot; in /home/sitename/public_html/V2/index.php on line 260

不要相信 simplexml_load_file 错误是问题所在,因为这是一个直播服务。目前我的直播主持人有问题,所以等待对那些进行排序(这不会导致会话取消)

我知道 PHP 正在贬低 MYSQL 连接,这就是该项目在 PHP 5.6 上运行的原因

提前谢谢你!

【问题讨论】:

  • 您是否一直在检查您的日志/使用过错误报告?您的问题仅包含 .htaccess 代码,而不包含 php 或会话。如果这是 php 相关的,您需要发布您用于所有这些的代码。
  • 嗨@FunkFortyNiner我没有把它放在我的代码中,因为它肯定是设置但无缘无故地取消设置随机用户,我的登录链接到一个配置文件,该配置文件链接到一个类文件,我已经仔细检查了所有这些,一切似乎都很好。我会仔细检查我的错误日志

标签: php .htaccess session-cookies


【解决方案1】:

您似乎在使用非常便宜的多租户托管 - 在这里诊断任何东西都非常困难。您的 htaccess 文件显示您的环境具有非常宽松的控制。

我们无法回答为什么您的会话失败的问题,但是您提供的信息中没有任何内容可以证明会话失败。您的下一步是:

1) 修改代码和日志记录,以便您可以跟踪行为 - 例如通过删除一个随机的持久 cookie 并记录它和会话 id。您还可以将 PHP 代码中有关会话状态的环境变量注入 Apache 以进行日志记录。

2) 停止使用默认处理程序 - 您无法查看/控制它的行为方式。还有很多其他可用的(我建议使用基于 MySQL 的)并在那里添加工具。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-25
    • 2015-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多