猿问

session_start() 导致错误:没有这样的文件或目录

我有以下 PHP 代码:


include './globallyUsedFunctions/connectToDatabase.php';

include './globallyUsedFunctions/hashInput.php';

session_start();

出于某种原因,它会导致此错误:


<br />

<b>Warning</b>:  session_start(): open(\xampp\tmp\sess_4p70knkr6lb7r9ha0pitktl3fe, O_RDWR) failed: No such file or directory (2) in <b>D:\foundationtests\src\assets\php\login.php</b> on line <b>2</b><br />

<br />

<b>Warning</b>:  session_start(): Failed to read session data: files (path: \xampp\tmp) in <b>D:\foundationtests\src\assets\php\login.php</b> on line <b>2</b><br />

现在我认为原因在于代码之外,所以这里有一些关于我的系统的信息:我有最新版本的免安装 XAMPP,我在其中运行 apache 和 mariaDB。这是在 Windows 10 机器上运行的,在没有管理员权限的用户帐户上运行(这就是我选择 XAMPP 免安装版本的原因)。


该网站也在基于 webpack4、gulp 和 babel7 的 ZURB 基础框架(ZURB 模板 6.4)中运行。


编辑:我已经尝试过的替代方案:


由“代码构建者”建议(见答案)


session_start();

require_once $_SERVER['DOCUMENT_ROOT'].'/globallyUsedFunctions/connectToDatabase.php';

require_once $_SERVER['DOCUMENT_ROOT'].'/globallyUsedFunctions/hashInput.php';

结果 =>


<br />

<b>Warning</b>:  session_start(): open(\xampp\tmp\sess_14rr40ahtg7rbgb20fvqocet83, O_RDWR) failed: No such file or directory (2) in <b>D:\foundationtests\src\assets\php\login.php</b> on line <b>2</b><br />

<br />

<b>Warning</b>:  session_start(): Failed to read session data: files (path: \xampp\tmp) in <b>D:\foundationtests\src\assets\php\login.php</b> on line <b>2</b><br />


元芳怎么了
浏览 421回答 2
2回答

慕姐4208626

<b>Warning</b>: &nbsp;session_start(): open(\xampp\tmp\sess_4p70knkr6lb7r9ha0pitktl3fe, O_RDWR) failed: No such file or directory (2) in <b>D:\foundationtests\src\assets\php\login.php</b> on line <b>2</b><br />session_start()尝试将其数据写入的路径没有驱动器号。由于您正在从 运行代码D:\foundationtests\src\assets\php\login.php,因此假定它D:也在 。你说实际路径应该在E:.&nbsp;问题就在这里。我不熟悉第三方包(有时它们引起的问题似乎比解决的问题还多)但它肯定会在php.ini某个地方有一个包含不完整session.save_path指令的文件。找到它并修复它。除此之外,更好的长期解决方案是为每个应用程序启用自定义会话目录。机制大致相同:D:\foundationtests\src在 DOCUMENT_ROOT 之外的代码库中创建一个目录(我猜是在某个地方)。session.save_path调用前配置session_start()。这具有提供对会话超时的完全控制的额外好处。

幕布斯7119047

session_start();&nbsp;应该始终是项目中的第一行代码。使用相对路径会给你带来麻烦。尝试使用 $_SERVER['DOCUMENT_ROOT'] 的绝对路径,然后指定文件的位置。require_once&nbsp;$_SERVER['DOCUMENT_ROOT']."/connectToDatabase.php";
随时随地看视频慕课网APP
我要回答