此代码曾用于早期版本的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专业版)。我只是在一个简单的链接(我想要返回www.website.com/?info=file )中调用“$ info = _ ”,即:< / p>
<a href="?info=file1">Click here to read File 1</a>
答案 0 :(得分:7)
如果这是实际代码,那么您的问题是在PHP块的开头使用短标记<?
。 PHP5中默认不再支持这些。而是使用
<?php ...code here... ?>
或者,您可以要求您的提供商在php.ini中设置“short_open_tag”选项。
答案 1 :(得分:3)
根据您的编辑,似乎问题是您在php.ini文件中的旧版本的php中有register_globals
。
register_globals
提取所有全局变量,以便在$_GET['info']
开启时使用register_globals
时,只需使用$info
。
此功能在php 5.3中已弃用,并已从php 5.4中删除,因为它会带来巨大的安全风险。
要解决您的问题,您可以在条件之前设置变量:
$info = $_GET['info'];
if ($info == "file1") {include ("file1.html");}
...
答案 2 :(得分:2)
默认情况下,未启用短标记<? ?>
。
在不知道错误的情况下,请尝试使用<?php
代替<?
更新:由于您显然包含带有短打开标签的页面,因此您可以在主叫页面中致电:
ini_set('short_open_tag', '1');
我怀疑您的服务提供商会为您设置短开标签属性。
答案 3 :(得分:-1)
您的代码中存在错误。改变这个:
if ($info == "file5") {include ("file5html");}
对此:
if ($info == "file5") {include ("file5.html");}