|
|
|
| Здравствуйте.
Подскажите пожалуйста почему выдает ошибку Parse error: syntax error, unexpected '[', expecting ',' or ';' in W:\home\site\www\kernel\lang.ker.php on line 20 и как ее исправить.
20 строчка:
global $GLOBALS['_SESSION'];
|
полный код файла:
<?php
function lang_sysval( $key )
{
global $tables;
$r = @mysql_fetch_array( @mysql_query( "SELECT value FROM ".$tables['t_sysvals']." WHERE name='{$key}' LIMIT 1" ) );
$value = stripslashes( $r[value] );
return $value;
}
function visiter_language( $setlang = "" )
{
global $GLOBALS['_SESSION'];
global $COOKIE;
global $GLOBALS['_SERVER'];
if ( $setlang == "" )
{
if ( $_SESSION[sess_lang] != "" )
{
$ret = $_SESSION[sess_lang];
return $ret;
}
if ( $_COOKIE[cook_lang] != "" )
{
$ret = $_COOKIE[cook_lang];
return $ret;
}
$ret = lang_sysval( "language_interface" );
if ( $ret == "" )
{
$ret = "RU";
return $ret;
}
}
else if ( in_array( $setlang, get_langs_arr( ) ) )
{
setcookie( "cook_lang", $setlang, time( ) + 31536000, "/", $_SERVER[HTTP_HOST], 0 );
$GLOBALS['_SESSION'][sess_lang] = $setlang;
$ret = $setlang;
return $ret;
}
else
{
$ret = lang_sysval( "language_interface" );
}
return $ret;
}
function get_langs_arr( )
{
global $languages_dir;
if ( !is_dir( $languages_dir ) )
{
$languages_dir = "../".$languages_dir;
}
if ( is_dir( $languages_dir ) )
{
$dh = opendir( $languages_dir );
while ( $language = readdir( $dh ) )
{
if ( $language == "." || $language == ".." || !is_dir( $languages_dir."/".$language ) )
{
$languages[$language] = $language;
}
}
closedir( $dh );
}
return $languages;
}
$languages_dir = "lang";
$visiter_language = visiter_language( $_GET[lang] );
if ( $visiter_language )
{
if ( !is_dir( $languages_dir ) )
{
$languages_dir = "../".$languages_dir;
}
if ( is_dir( $languages_dir ) )
{
$dh = opendir( $languages_dir );
while ( $language = readdir( $dh ) )
{
if ( !is_dir( $languages_dir."/".$language ) && !( strtoupper( $visiter_language ) == strtoupper( $language ) ) )
{
$sellang_dir = $languages_dir."/".$language;
define( langdir, $sellang_dir );
if ( file_exists( langdir."/index.lng.php" ) )
{
include( langdir."/index.lng.php" );
}
if ( file_exists( langdir."/lang.lng.php" ) )
{
include( langdir."/lang.lng.php" );
}
if ( file_exists( langdir."/vars.lng.php" ) )
{
include( langdir."/vars.lng.php" );
}
if ( file_exists( langdir."/sysv.lng.php" ) )
{
include( langdir."/sysv.lng.php" );
}
$lang = array_merge( $lang, $langindex );
}
}
closedir( $dh );
}
unset( $visiter_language );
}
?>
|
| |
|
|
|
|
|
|
|
для: home-studia
(17.02.2009 в 21:13)
| | $GLOBALS['_SESSION']
А, что это такое, для global? | |
|
|
|
|
|
|
|
для: AcidTrash
(17.02.2009 в 21:46)
| | Точно не знаю. Как я понимаю ошибку находит в синтаксе, что мол неожиданно обнаруживается “[“ может нужно скобки сменить или что-нибудь еще? | |
|
|
|
|
|
|
|
для: home-studia
(17.02.2009 в 22:04)
| | Хорошо, вопрос такой, что такое $GLOBALS['_SESSION'] ? | |
|
|
|
|
|
|
|
для: home-studia
(17.02.2009 в 21:13)
| | > 20 строчка:
> global $GLOBALS['_SESSION'];
А у меня вышло это:
Вы точно привели код файла "lang.ker.php", а не какого-то другого? | |
|
|
|
|
 734 байт |
|
|
для: BinLaden
(17.02.2009 в 22:14)
| | Прикрепил файл lang.ker.php
P.S. удалил 8 строчек коментов в начале про дату написания и т.д. имейте ввиду, следовательно ошибка будет в 13 строке | |
|
|
|
|
|
|
|
для: home-studia
(17.02.2009 в 22:19)
| | Удалите строки
global $GLOBALS['_SESSION'];
global $COOKIE;
global $GLOBALS['_SERVER'];
|
И замените текстовым редактором $GLOBALS['_SESSION'] на $_SESSION, а $GLOBALS['_SERVER'] на $_SERVER. | |
|
|
|
|
|
|
|
для: BinLaden
(17.02.2009 в 22:23)
| | Чтобы получилось что-то вроде этого?
function visiter_language( $setlang = "" )
{
$_SESSION;
$_SERVER;
if ( $setlang == "" )
{
if ( $_SESSION[sess_lang] != "" )
|
| |
|
|
|
|
|
|
|
для: home-studia
(17.02.2009 в 22:26)
| | Нет, строчек
быть не должно. | |
|
|
|
|
|
|
|
для: BinLaden
(17.02.2009 в 22:23)
| | Попробовал, ошибка исчезла, но появилась в другом файле, тоже синтаксис на строчку:
global $GLOBALS['_POST'];
|
если изменить на:
$_POST['GLOBALS'];
это верно?
да, чуть не забыл, ошибка вида:
Parse error: syntax error, unexpected '[', expecting ',' or ';' in W:\home\site\www\kernel\core.ker.php on line 112
|
| |
|
|
|
|
|
|
|
|
для: BinLaden
(17.02.2009 в 22:37)
| | К сожалению я в англ. не силен, подскажите пожалуйста как мне попробовать изменить, может быть так?
global $_POST['$GLOBALS'];
|
| |
|
|
|
|
|
|
|
для: home-studia
(17.02.2009 в 22:46)
| | Ошибка исчезла когда убрал global и оставил так:
| |
|
|
|
|
|
|
|
для: home-studia
(17.02.2009 в 22:47)
| | Эта строка не имеет смысла. | |
|
|
|
|
|
|
|
для: BinLaden
(17.02.2009 в 23:04)
| | вы че люди!! $_SERVER, $_POST и т.д. это суперглобальный массив и зачем его еще делать глобальным в функции если он итак глобальный.....
вот к примеру это: $GLOBALS['_SESSION'][sess_lang] = $setlang;
ведь лучше написать: $_SESSION['sess_lang'] = $setlang;
[поправлено модератором] | |
|
|
|