【问题标题】:PHP on XAMPP not Interpreting Variable Containing Relative Path CorrectlyXAMPP 上的 PHP 未正确解释包含相对路径的变量
【发布时间】:2016-08-25 09:06:01
【问题描述】:

我正在尝试在我现在负责的一个小型电子商务网站上做一些工作。该站点在 Linux 上使用 PHP 5.3.24 运行在 Apache 服务器上(不确定是什么版本,HTTP 响应只会告诉我它是“Apache”)。该网站在服务器上运行良好,由 Network Solutions 托管,实际上只使用 PHP 来动态生成页面,没有 DB 交互,因为目前,除了他们处理最终交易外,我们还使用 PayPal 购物车。

我决定在我家的 XAMPP Apache/MySQL/PHP 安装上做一些开发——(也许不是最好的选择),具体来说:

XAMPP for Windows 1.7.3

Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1

所有这些都在 Windows XP SP3 上运行(等待......)。

当我将网站移植到我的服务器时,索引页面加载正常 - 都是直接的 HTML,但是当我尝试进入网站的下一个级别时,某些资源没有加载。

这是一个使用包含动态构建的 .php 文件的示例:

<?php

$pageID = "category1" ;
$mainPane_filename = "category1.inc";
$rootDir = "../";
$categoryID=$cID = "item_pv";
$sb_filename = "php/itemlist.php";

include($rootDir . "php/template.php"); 

?>

在这种情况下,变量 '$rootDir' 的赋值工作正常,我的 XAMPP 安装在语法上没有问题:

'include($rootDir. "php/template.php");'

但是,template.php 文件中的链接存在问题。

虽然该文件具有 .php 扩展名,并且确实包含一些独立的 php 脚本,但其中大部分是 HTML。似乎 PHP 解释器不喜欢这样的东西:

<link rel="stylesheet" type="text/css" href="<?=$rootDir?>ns_stl.css">

有很多这样的链接主要指向图形文件。这些链接不存在于脚本标签内,除了语法之外都是直接的 HTML:

<?=$rootDir?>

这些在实时服务器上解释得很好,但我的 XAMPP 安装给了我错误:

[Sun Apr 24 20:50:12 2016] [error] [client 192.168.29.249] (20024)给定的路径格式错误或包含无效字符:无法映射 GET /niche/menu/%3C?=$rootDir ?%3Eimages/navi6.jpg HTTP/1.1 转文件,引用者:http://192.168.29.249/niche/menu/category1.php

我注意到错误消息已将 字符呈现为 URL 编码,我尝试将一些链接更改为包含:'%3C?=$rootDir?%3E',但没有任何乐趣。

有人知道可能发生了什么吗?

对于所有忍受了这么远的人,我发自内心的“谢谢你!”

【问题讨论】:

    标签: php xampp


    【解决方案1】:

    我将首先删除 php 短标签,更改

        <?=$rootDir?>
    

        <?php echo $rootDir; ?>
    

    这是一篇解决短标签相关问题的文章。 https://softwareengineering.stackexchange.com/questions/151661/is-it-bad-practice-to-use-tag-in-php

    基本上是你在代码中看到的任何地方

     <?= should be changed to  <?php 
    

    这肯定会对 XAMPP 有所帮助。在实时服务器上更改它们可能也不会受到伤害。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多