0

このコードは以前のバージョンのPHP4で機能していましたが、ホスティングサーバーがPHP5にアップグレードされたため、私のWebサイトでは機能しなくなりました。このコードを変更して再び機能させる簡単な方法はありますか?

<?
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");}
?> 

編集:はい、これは私が最終的なWebサイトに持っているコードです(ここでは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_globalsphp.iniファイルの古いバージョンのphpにあったことであるように思われます。

register_globalsすべてのグローバル変数を抽出するため、通常使用する場所$_GET['info']で、register_globalsonを使用すると、単純にを使用できます$info

この機能はphp5.3で非推奨になり、セキュリティ上の大きなリスクをもたらすため、php5.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 に答える