更新 XAMPP 破坏了 php 网页的执行
Posted
技术标签:
【中文标题】更新 XAMPP 破坏了 php 网页的执行【英文标题】:Updating XAMPP broke php web page execution 【发布时间】:2019-07-04 05:30:38 【问题描述】:我使用的是 Windows 10 64 位台式机和一台 Windows 10 也是 64 位笔记本电脑。这在两台计算机上都发生了。
在完全卸载旧版本的 XAMPP(在管理员帐户中)后,我重新安装了最新版本(xampp-win32-7.3.1-0-VC15-installer.exe 作为管理员并禁用了防火墙和病毒防护)。
我通过在我的 Chrome 浏览器中输入 localhost/ 来验证安装,它在 localhost/dashboard 出现了 XAMPP 网页。
然后我将数据库备份加载到 phpMyAdmin 4.8.4 中。我将页面的备份文件夹复制到 htdocs 中。
但是现在在旧版本中正确显示的php网页现在在某些页面上抛出这个错误,而不是全部。
Warning: require_once(/includes/session.php): failed to open stream: No such file or directory in C:\xampp\htdocs\my_rabbits\my_profile.php on line 1
Fatal error: require_once(): Failed opening required '/includes/session.php' (include_path='C:\xampp\php\PEAR') in C:\xampp\htdocs\my_rabbits\my_profile.php on line 1
我检查了路径,它们都是正确的 - 没有拼写错误。我的包含文件夹和个人 my_profile.php 页面一样位于 htdocs 中。这是 my_profile.php 页面第 1 行的样子:
<?php require_once("/includes/session.php"); ?>
这是我的 includes/session.php 代码的样子:
<?php
session_start();
function message()
if (isset($_SESSION["message"]))
$output = "<div class=\"message\">";
$output .= htmlentities($_SESSION["message"]);
$output .= "</div>";
// clear message after use
$_SESSION["message"] = null;
return $output;
function errors()
if (isset($_SESSION["errors"]))
$errors = $_SESSION["errors"];
// clear message after use
$_SESSION["errors"] = null;
return $errors;
?>
感谢您提供的任何帮助。我是新手用户,在未知水域航行...
【问题讨论】:
如果includes
在htdocs
内部,那么/includes/session.php
不能是它的绝对路径。
不确定我是否理解.. my_profile.php 文件和包含文件夹都在同一个目录“my_rabbits”中。我需要指定前缀为“htdocs/my_rabbits”的路径吗?我也不明白它是如何在前一天晚上在旧版本上完美运行的。我想知道新版本是否有一些旧版本没有的设置更改。还是您现在必须以不同的方式编写代码?自从我写 php 以来已经有一段时间了。
请查看What is the difference between a relative and absolute path?。我不知道 PHP 解释器中有关路径处理的任何相关更改,所以如果在 /includes
中包含的东西即使你没有 C:\includes
目录也可以工作,老实说我不知道为什么。跨度>
【参考方案1】:
php.ini 中的include_path - 没有当前路径
include_path = ".;C:\xampp\php\PEAR"
【讨论】:
这对 absolute 路径有什么影响吗? 在某些 Windows 安装中 /path1/path2 = relative; C:\path1\path2 = 绝对。 有趣...如果我可以将手放在旧版本中,我会尝试测试。 然后,我按照您发布的 php5.5 论坛链接尝试了他们的建议,方法是在我的 require_once 语句前加上一个句点,例如 成功了!我现在需要进入每个损坏的页面并进行这个小调整,我会很高兴的。非常感谢!! 如果您正在修复代码,那么切换到绝对路径会更容易,这样您的代码就不会因为服务器设置而中断:__DIR__ . '/includes/...'
。以上是关于更新 XAMPP 破坏了 php 网页的执行的主要内容,如果未能解决你的问题,请参考以下文章