PHP-5.3中未定义变量,但在5.1中有效

PHP-5.3中未定义变量,但在5.1中有效,php,Php,我正在将我的网站从旧服务器(MS server 2003、PHP 5.1、IIS 6)迁移到新服务器(MS server 2008 R2、PHP 5.3、IIS 7.5),下面的代码在我的新服务器上为我提供了一个“PHP通知:未定义变量:年份…”,但它在旧服务器上运行良好。我想这是PHP,但是有人能解释一下吗?这里讨论的是$year变量。每次我运行我的表单时,它都会返回“对不起,访问不正确”。非常感谢 <?php if ( $year=='2012') || $year=='2013'

我正在将我的网站从旧服务器(MS server 2003、PHP 5.1、IIS 6)迁移到新服务器(MS server 2008 R2、PHP 5.3、IIS 7.5),下面的代码在我的新服务器上为我提供了一个“PHP通知:未定义变量:年份…”,但它在旧服务器上运行良好。我想这是PHP,但是有人能解释一下吗?这里讨论的是$year变量。每次我运行我的表单时,它都会返回“对不起,访问不正确”。非常感谢

<?php 

if ( $year=='2012') || $year=='2013' || $year=='2014') <~~~~~ Error Here
{

    $nextyr=$year+1;
    $prevyr=$year-1;


    $prevyr = substr($prevyr, -2,2);
    $lookupyr = substr($year, -2);
    $nextyr = substr($nextyr, -2);

    if ( $sess == 'SP' ){ $EXyear=$prevyr.$lookupyr;    }
    else if ( $sess == 'SU'  ){ $EXyear=$prevyr.$lookupyr; }
    else  { $EXyear=$lookupyr.$nextyr;  }
}
else { $EXyear=$year; } <~~~~~~ Error Here

    if (!isset($FacID))
    {

   if (!isset($crs) || !isset($sess) || !isset($year))
    exit("<h1 align='center'>Sorry, Improper Access</h1>");

看起来您缺少一个并列词

 if ( $year=='2012') || $year=='2013' || $year=='2014')
应该是

 if ( $year=='2012' || $year=='2013' || $year=='2014')
或者可能(但我不明白为什么)


$year=日期('Y')位于脚本顶部,即使您将设置
$year
。很可能与哪个版本的PHP无关,只是不同的值。或者,如果代码实际上运行良好,并且这是文件的顶部,那么您可能一直依赖它(这是一个非常糟糕的主意)。它在php.ini文件中打开了“register\u globals”。感谢IMSoP和所有人抽出时间来帮助我D
 if (( $year=='2012') || $year=='2013' || $year=='2014')