- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在我的 PHP 代码中这样设置我的 session :$_SESSION['user_id'] = $login;
这似乎在上传到我的服务器并跨不同页面时工作正常,但是当我在我的本地机器上测试网站时, session 似乎在将脚本留在设置位置后立即取消设置。
我正在本地机器上使用 XAMPP 和完全相同的代码进行测试。
我不确定为什么会出现此问题,非常感谢任何有用的答案。
$_SESSION['user_id'] = $login;
echo '<META HTTP-EQUIV="refresh" content="0;URL=../home.php">';
这是我登录的整个功能(它是类(class)的一部分):
public function loggingIn(){
session_start();
$db = new Database('localhost','root','','userdata');
$userFunctions = new Users($db);
$username = $_POST['usernameInput'];
$password = $_POST['passwordInput'];
if(empty($username) || empty($password)){
$this->errors['u&p'] = 'Please Enter Your Username AND Password';
$this->printE();
} elseif($userFunctions->user_exists($username)===false){
$this->errors['nm'] = 'That Username/Password Combination Is Not Valid';
$this->printE();
} else {
$login = $userFunctions->login($username, $password);
if($login === false){
$this->errors['nm'] = 'That Username/Password Combination Is Not Valid';
echo 'Login Failed!';
} else {
if(!$userFunctions->economyTableExistsForUser($login)){
$userFunctions->createEconomyTableForUser($login);
}
if(!$userFunctions->schoolTableExistsForUser($login)) {
$userFunctions->createSchoolTableForUser($login);
}
$_SESSION['user_id'] = $login;
echo $_SESSION['user_id']; // working fine
header('Location: ../home.php');
}
}
}
最佳答案
假设您的家用机器没有:
session.autostart = On
在你的php.ini ,而您的另一台机器显然是。
确保您已在 PHP 代码中设置:
session_start();
如果你不这样做,那么你的 session 就不会开始,除非我的第一个猜想是正确的。
此外,您必须检查本地主机上的 PHP 版本和 php.ini 中的设置。确保存储 session 文件的目录是可写的,并且 session 文件确实存在。
您最好使用 PHP 解决方案进行重定向:
header("Location: /");
exit();
PHP 具有修改 HTTP header 的函数。其中一些:
换行符和空格可能是个问题,但也有不可见的字符序列会导致警告:无法修改 header 信息
,例如UTF-8 BOM (Byte-Order-Mark)。 .尝试重新保存您的文件,确保它保存为 UTF-8(无 BOM)
。
要正确调试您的代码,请确保 PHP 显示所有警告和通知。在 session 开始之前运行它:
ini_set('display_errors', -1);
您还必须检查 session.gc_maxlifetime
设置:
session.gc_maxlifetime
session.gc_maxlifetime specifies the number of seconds after which data will be seen as 'garbage' and cleaned up. Garbage collection occurs during session start.
要在 Sublime Text 中查看空格,请编辑设置:
// Set to "none" to turn off drawing white space, "selection" to draw only the
// white space within the selection, and "all" to draw all white space
"draw_white_space": "selection",
你可以在Preferences->Settings Default中设置它。如果您编辑用户设置 Preferences->Settings - User 并按以下方式添加行:
{
"font_size": 10,
"draw_white_space": "all"
}
还要确保它显示所有其他特殊字符以正确调试您的代码!
最后尝试在重定向之前添加 session_write_close();
。
在您的 PHP 文件中,在 session_start();
之前设置 session.save_path = "/home/username/tmp";
指令。在 public_html 之外创建 tmp
目录。确保 tmp
目录具有 chmod 770 并使用相同的用户/组权限创建。在您的主目录中运行 ls -lsa
以检查新目录是否具有与其他目录相同的用户/组,例如 public_html。如果不是,请确保通过运行 chown username:groupname/home/username/tmp
以 root 身份更改 tmp
的权限。
关于php - 使用 XAMPP 设置 $_SESSION 在本地主机上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19644624/
我卸载了 xampp 并在 Windows 上安装了最新版本的 5.4 php。当我尝试安装新版本的 php 时,C://xampp 中的旧文件夹将被删除。我从该文件夹中删除了除 memcached
在全新安装的 Windows 7 和 Xampp 上,我无法访问 localhost .它只是说找不到,即使 Apache 和 MySQL 运行得很好。到目前为止我尝试过的: 检查 hosts此行的文
我最近没有在我的 xampp 中进行任何更改,直到昨天它都在正常工作。 但是现在我得到了这个错误: Object not found! The requested URL was not found
我最近没有在我的 xampp 中进行任何更改,直到昨天它都在正常工作。 但是现在我得到了这个错误: Object not found! The requested URL was not found
我在笔记本电脑上安装了Xampp 3.2.1版,之前MySQL在它上面运行得很好,但突然MySQL停止运行,而阿帕奇和其他公司都在运行。当我点击开始MySQL时,它显示这个错误我使用Windows 1
我希望在小型办公室内使用 xampp 设置服务器。我当然会保护 xampp,但为了让网络上的其他 4 台 PC 可以使用我的 web 应用程序,我是否只需创建一个虚拟主机?有没有办法确保只能在局域网上
我希望能够在 c:\xampp-scope 之外使用别名,如 alias /opt "C:\opt" 在 xampp 中有一些设置我无法确定,尝试更改用户,添加等,但这些设置都不起作用,它是一个纯粹的
我正在使用 XAMPP,Apache 2.2.17。我添加了虚拟主机,但我的虚拟主机和 localhost 都指向同一个位置。这是我在 httpd-vhosts.conf 中的代码 ServerNa
试图编辑 xampp 图标,但不能这样做,所以删除了它们。现在我的网页甚至没有 xampp 图标,我无法添加自己的图标。有人可以指导我完成真正有效的整个过程。如果不能,那么就教我如何在我的网站即将托管
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭10 年前。 Improve th
当我尝试启动 XAMPP - MySql 时它不起作用。 我已经尝试修复它,但我找不到任何实际的解决方案,我希望你能找到它的问题所在。 有日志: 2019-06-26 9:08:35 0 [Note
出于某种原因,我需要同时运行两个 xampp 副本。我在互联网上阅读了很多教程,但如果我需要运行另一个,他们最终会告诉我关闭当前的 xampp。这有可能实现吗? 最佳答案 您可以使用不同的端口同时运行
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 9年前关闭。 Improve this q
如何在 XAMPP 中启用目录和文件列表?在 WAMP 中,它默认启用。 最佳答案 我的 Xampp httpd.conf 在 xampp 目录条目下已经有 Indexes 选项 删除所有默认的#co
我在 xampp 服务器上安装了 Moodle。它安装正确。但是当我尝试注销或任何其他事件时,Firefox 显示错误,页面没有正确重定向。我清除了浏览器的 cookie,但没有用。我重新安装了 Mo
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我目前有 4 个网站使用 XAMPP 在我的家用台式电脑上运行。它们在端口 80、81、7733 和 25293 上运行。 从外部网络访问时,前三个运行良好,但最后一个 (25293) 无法加载。 (
我的 XAMPP 最新版本有问题,这是我第一次使用它,我一直使用 EasyPHP。 在我站点的“include”目录中有一个名为“header.php”的文件,当我从本地主机浏览该文件夹时,如果我直接
我已经安装了 xampp,默认情况下我的网站文件存储在 htdocs 中。如何更改网络目录路径? 最佳答案 编辑文件/opt/lampp/etc/httpd.conf 并更改包含当前 Web 目录路径
我只用 Apache 和 PHP 安装了 XAMPP,现在我意识到我还需要 MySQL。我下载了 XAMPP 安装程序并运行它,但它不会安装在 C:\xampp 中因为它已经存在。 如何将 MySQL
我是一名优秀的程序员,十分优秀!