2013-10-24 58 views
0

我在動過我的網站到一個新的服務器的過程工程(MS Server 2008 R2中,PHP 5.3,IIS 7.5)從我們的舊(MS Server 2003中,PHP 5.1 ,IIS 6)和下面的代碼給了我一個「PHP公告:未定義的變量:一年......」我的新的服務器上,但它在老服務器工作得很好。我認爲這是PHP,但有人可以對此有所瞭解嗎? $ year變量在這裏有問題。每次我運行我的表單時,都會返回「對不起,不正確的訪問」。先進的謝謝你。PHP - 未定義的變量在5.3,但5.1

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

'$一年=日期(「Y」);'在腳本 –

+0

[頂部即使在5.1那代碼沒有沒有解析錯誤運行(http://3v4l.org/FXL5G)即使你會設置'$ year'。 – PeeHaa

+0

很可能與哪個版本的PHP無關,只是['error_reporting'](http://php.net/manual/en/errorfunc.configuration.php#ini.error-reporting)的不同值。或者,如果代碼實際上是工作的罰款,這是該文件的頂部,你可以一直依靠['register_globals'(http://us3.php.net/manual/en/security.globals.php) (這是一個非常糟糕的主意)。 – IMSoP

回答

1

看起來你缺少一個parathesis

if ($year=='2012') || $year=='2013' || $year=='2014') 

應該

if ($year=='2012' || $year=='2013' || $year=='2014') 

或可能(但我不明白爲什麼)

if (($year=='2012') || $year=='2013' || $year=='2014')