更新 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;
      
   

?>

感谢您提供的任何帮助。我是新手用户,在未知水域航行...

【问题讨论】:

如果includeshtdocs内部,那么/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 网页的执行的主要内容,如果未能解决你的问题,请参考以下文章

XAMPP - 如何从主目录执行 PHP 文件?

如何在 Xampp 中找到 PHP 可执行文件 - Ubuntu

用 php.exe 执行 php 文件

如何通过php在Xampp中执行jar文件

怎么更换xampp里PHP的版本?

从 php 执行 shell 脚本会在 Windows (Xampp) 上打开文件