2012-03-23 82 views
-2

同一站点,不同的问题......它好工作几分钟,但现在我得到这个...另一个PHP致命错误

Fatal error: require() [function.require]: Failed opening required 
'/home/retrorea/public_html/tradepost/includes/messages.english.php.inc.php' 
(include_path='.:/usr/lib/php:/usr/local/lib/php') in 
/home/retrorea/public_html/tradepost/includes/messages.inc.php on line 50 

我没有带改变任何东西除外。下面是一行50

require($include_path.'messages.'.$language.'.inc.php');

而这里的整个事情:

<?#//v.3.2.5 
if(!defined('INCLUDED')) exit("Access denied"); 
#/////////////////////////////////////////////////////// 
#// COPYRIGHT 2007 Phpauction.net ALL RIGHTS RESERVED // 
#/////////////////////////////////////////////////////// 

/** ************************************************************* 
* NOTE: Language management 
*/ 

if(!empty($_GET[lan])) { 
    $language = $_GET[lan]; 
    $_SESSION['language'] = $language; 

    #// Set language cookie 
    setcookie("USERLANGUAGE","",time()-3600); 
    setcookie("USERLANGUAGE",$_GET[lan],time()+31536000,"/"); 
} elseif(isset($_SESSION['language'])) { 
    $language = $_SESSION['language']; 
} elseif(empty($_SESSION['language']) && !isset($_COOKIE['USERLANGUAGE'])) { 
    $language = $SETTINGS['defaultlanguage']; 
    $_SESSION['language'] = $language; 

    #// Set language cookie 
    setcookie("USERLANGUAGE","",time()-3600); 
    setcookie("USERLANGUAGE",$language,time()+31536000); 
} elseif(empty($_GET[lan])) { 
    if(isset($_COOKIE['USERLANGUAGE'])) { 
    $language = $_COOKIE['USERLANGUAGE']; 
    } else { 
    $language = $SETTINGS['defaultlanguage']; 
    } 
} elseif(isset($_COOKIE['USERLANGUAGE'])) { 
    $language = $_COOKIE['USERLANGUAGE']; 
} elseif(strlen($_GET[lan]) > 2) { 
    $language = $SETTINGS['defaultlanguage']; 
} else { 
    $language = $SETTINGS['defaultlanguage']; 
} 
$language = str_replace('..','',addslashes(htmlspecialchars($language))); 
#// If the user is logged in, update the user's record 
#// This is used to send the e-mails in the user's language 
if(isset($_SESSION['PHPAUCTION_LOGGED_IN'])) { 
    mysql_query("DELETE FROM PHPAUCTIONXL_userslanguage WHERE user='".$_SESSION['PHPAUCTION_LOGGED_IN']."'"); 
    mysql_query("INSERT INTO PHPAUCTIONXL_userslanguage VALUES(
         '".$_SESSION['PHPAUCTION_LOGGED_IN']."', 
         '$language')"); 
} 
if (!$language) $language = $SETTINGS['defaultlanguage']; 
require($include_path.'messages.'.$language.'.inc.php'); 
/* **************************************************************/ 
?> 
+2

注意:我在代码中看到很多'$ _GET [lan]',虽然这在技术上可以在PHP中工作,但这是一种非常糟糕的做法。它应该是'$ _GET ['lan']' – nathanjosiah 2012-03-23 23:15:27

+0

Dude - 你有*服务器上有一个名为“/home/retrorea/public_html/tradepost/includes/messages.english.php.inc.php”的文件吗? ? – paulsm4 2012-03-23 23:18:07

回答

0

也有一些是错误的URL结构。看这部分

messages.english.php.inc.php 

尝试修改:

$include_path.'messages.' 

有了:

$include_path.'messages/' 
1

要包括该文件未找到。你有没有检查文件的路径是否正确?

你确定要包含的文件是messages.english.php.inc.php?我想你会包括messages/english.php.inc.php


此外,为什么两次.php扩展?

0

您似乎没有定义$include_path。在引用它之前,您需要确保该文件完全存在。

您也可能想使用include而不是require

include() generates a warning, but the script will continue execution 
require() generates a fatal error, and the script will stop 

读到它here