我正在尝试使用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)
答案 0 :(得分:0)
事实证明,我的主机更改了服务器并开始使用除/ 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();
这是唯一对我有用的解决方案。希望这有助于某人。
答案 1 :(得分:0)
也许我的回答迟到了,但我认为这会对遇到同样问题的人有所帮助。
我正在使用jQuery和AJAX验证登录表单。如果数据库中没有匹配的记录,那么PHP脚本会返回错误,但如果一切正常,则PHP脚本将email,passoword和loggedIn变量存储为会话并将成功返回给jQuery。然后我把location.reload();
这显然删除了会话变量(所有除了布尔值)。所以我使用了location.reload(true);
。这解决了我的问题。
您还可以在W3Schools上阅读有关此内容的更多信息。