我正在尝试做一些工作在一个小的电子商务网站,我现在负责。该站点运行在Apache服务器上(不确定是什么版本,HTTP响应只会告诉我它是"Apache"),运行在Linux上,PHP为5.3.24。该网站在服务器上运行良好,由Network Solutions托管,实际上只使用PHP动态生成页面,没有数据库交互,就像目前一样,我们使用PayPal购物车来处理最终的事务。
我决定在我自己的XAMPP Apache/MySQL/PHP安装上进行一些开发--(可能不是最好的选择),具体地说:
用于Windows 1.7.3的XAMPP
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,但是当我试图进入站点的下一层时,一些资源没有加载。
下面是一个使用includes动态构建的.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 client 192.168.29.249给定路径的格式错误或包含无效字符:无法将GET /niche/menu/%3C?=$rootDir?%3Eimages/navi6.jpg HTTP/1.1映射到文件,引用:http://192.168.29.249/niche/menu/category1.php
我注意到错误消息将<>字符呈现为URL编码,并且我尝试更改一些链接以包含:'%3C?=$rootDir?%3E',但没有包含joy。
有谁知道可能发生了什么事吗?
对于那些经历了这一切的人,我要向他们致以由衷的感谢!
发布于 2016-04-30 13:59:28
我将从删除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有所帮助。在实时服务器上更改它们也不会有什么坏处。
https://stackoverflow.com/questions/36951285
复制相似问题