繁体   English   中英

SESSION在location.reload()之后丢失

[英]SESSION lost after location.reload()

我试图使用ajax进行登录,以将用户名和密码发送到我的php脚本中,以检查数据库中是否有任何记录,在我的ajax成功中,我想重新加载页面以显示创建会话时的内容。 我在页面的顶部使用会话启动。 同样在本地服务器上,我的登录正常,但是在ipage服务器上,我遇到了丢失会话的问题...(我使用var_dump($ _ SESSION)对其进行了测试,并且其始终array (size=0) empty )我也尝试使用此方法在我的页面顶部:

session_save_path("your home directory path"/cgi-bin/tmp);
session_start(); 

但这也没有用。。。我也试图更改session.save_path但还是一样。

对不起,我的英语不好。

编辑:我已经尝试使用表单来创建登录名,但仍然存在相同的问题。 现在很清楚,服务器出了点问题。(也许是php.ini)

事实证明,我的主机更改了服务器并开始使用/ var / php_sessions以外的其他会话保存路径,该路径不再存在。 一种解决方案是声明ini_set(' session.save_path','SOME WRITABLE PATH'); 在我所有的脚本文件中,但是那会很痛苦。 我与主机进行了交谈,他们明确地将会话路径设置为确实存在的真实路径。 希望这可以帮助遇到会话路径问题的任何人。

Location of session folder:

/domains/account/session

location of index.php

/domains/account/public_html/index.php

我在第0行放置在index.php中的内容:

<?php 
ini_set('session.save_path',realpath(dirname($_SERVER['DOCUMENT_ROOT']) . '/../session'));
session_start();

这是唯一对我有用的解决方案。 希望这对某人有帮助。

也许我的答案迟到了,但我认为这对遇到与我一样的问题的人会有所帮助。

我正在通过使用jQuery和AJAX验证登录表单。 如果数据库中没有匹配的记录,则PHP脚本返回错误,但如果一切正常,则PHP脚本将email,password和loginIn变量存储为会话并将成功返回给jQuery。 然后我把location.reload(); 显然会删除会话变量(布尔值以外的所有变量)。 所以我用location.reload(true); 这解决了我的问题。

您还可以在W3Schools上阅读有关此内容的更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM