0

此代码曾经在 PHP4 的早期版本中工作,但现在托管服务器已升级到 PHP5,因此不再在我的网站上工作。有什么简单的方法可以更改此代码以使其再次工作?

<?
if ($info == "file1") {include ("file1.html");}
if ($info == "file2") {include ("file2.html");}
if ($info == "file3") {include ("file3.html");}
if ($info == "file4") {include ("file4.html");}
if ($info == "file5") {include ("file5.html");}
?> 

编辑:是的,这是我在最终网站上的代码(这里不是 PHP 专业人士)。我只是在一个简单的链接中调用“$info= _ ”(我想返回 www.website.com/?info=file),即:

<a href="?info=file1">Click here to read File 1</a> 
4

4 回答 4

7

如果这是实际代码,则您的问题是在<?PHP 块的开头使用短标签。PHP5 默认不再支持这些。而是使用

<?php ...code here... ?>

或者,您可以要求您的提供商在 php.ini 中设置“short_open_tag”选项。

于 2012-09-07T17:25:57.290 回答
3

根据您的编辑,问题似乎在于您register_globals在 php.ini 文件中使用旧版本的 php。

register_globals提取所有全局变量,以便在您通常使用的地方$_GET['info'],使用register_globalson,您可以简单地使用$info.

此功能在 php 5.3 中已弃用,并从 php 5.4 中删除,因为它会带来巨大的安全风险。

要解决您的问题,您可以在条件之前设置变量:

$info = $_GET['info'];
if ($info == "file1") {include ("file1.html");}
...
于 2012-09-07T23:24:11.173 回答
2

默认情况下,<? ?>不启用短标签。

在不知道您的错误的情况下,尝试使用<?php而不是<?

更新:由于您显然包含带有短打开标签的页面,因此在您的调用页面中,您可以调用:

ini_set('short_open_tag', '1');

我怀疑您的服务提供商会为您设置短开放标签属性。

于 2012-09-07T17:25:40.973 回答
-1

你的代码有错误。改变这个:

if ($info == "file5") {include ("file5html");}

对此:

if ($info == "file5") {include ("file5.html");}
于 2012-09-07T17:24:27.133 回答