Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ошибка Parse error: syntax error, unexpected '[', expecting ',' or ';' in W:\home\site\www\kernel\lang.ker.php on line 20
 
 автор: home-studia   (17.02.2009 в 21:13)   письмо автору
 
 

Здравствуйте.
Подскажите пожалуйста почему выдает ошибку 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$setlangget_langs_arr( ) ) )
    {
        
setcookie"cook_lang"$setlangtime( ) + 31536000"/"$_SERVER[HTTP_HOST], );
        
$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;
                
definelangdir$sellang_dir );
                if ( 
file_existslangdir."/index.lng.php" ) )
                {
                    include( 
langdir."/index.lng.php" );
                }
                if ( 
file_existslangdir."/lang.lng.php" ) )
                {
                    include( 
langdir."/lang.lng.php" );
                }
                if ( 
file_existslangdir."/vars.lng.php" ) )
                {
                    include( 
langdir."/vars.lng.php" );
                }
                if ( 
file_existslangdir."/sysv.lng.php" ) )
                {
                    include( 
langdir."/sysv.lng.php" );
                }
                
$lang array_merge$lang$langindex );
            }
        }
        
closedir$dh );
    }
    unset( 
$visiter_language );
}
?>

  Ответить  
 
 автор: AcidTrash   (17.02.2009 в 21:46)   письмо автору
 
   для: home-studia   (17.02.2009 в 21:13)
 

$GLOBALS['_SESSION']
А, что это такое, для global?

  Ответить  
 
 автор: home-studia   (17.02.2009 в 22:04)   письмо автору
 
   для: AcidTrash   (17.02.2009 в 21:46)
 

Точно не знаю. Как я понимаю ошибку находит в синтаксе, что мол неожиданно обнаруживается “[“ может нужно скобки сменить или что-нибудь еще?

  Ответить  
 
 автор: AcidTrash   (17.02.2009 в 22:12)   письмо автору
 
   для: home-studia   (17.02.2009 в 22:04)
 

Хорошо, вопрос такой, что такое $GLOBALS['_SESSION'] ?

  Ответить  
 
 автор: BinLaden   (17.02.2009 в 22:14)   письмо автору
 
   для: home-studia   (17.02.2009 в 21:13)
 

> 20 строчка:
> global $GLOBALS['_SESSION'];

А у меня вышло это:

            return $ret;

Вы точно привели код файла "lang.ker.php", а не какого-то другого?

  Ответить  
 
 автор: home-studia   (17.02.2009 в 22:19)   письмо автору
734 байт
 
   для: BinLaden   (17.02.2009 в 22:14)
 

Прикрепил файл lang.ker.php

P.S. удалил 8 строчек коментов в начале про дату написания и т.д. имейте ввиду, следовательно ошибка будет в 13 строке

  Ответить  
 
 автор: BinLaden   (17.02.2009 в 22:23)   письмо автору
 
   для: home-studia   (17.02.2009 в 22:19)
 

Удалите строки

global $GLOBALS['_SESSION']; 
global $COOKIE; 
global $GLOBALS['_SERVER'];


И замените текстовым редактором $GLOBALS['_SESSION'] на $_SESSION, а $GLOBALS['_SERVER'] на $_SERVER.

  Ответить  
 
 автор: home-studia   (17.02.2009 в 22:26)   письмо автору
 
   для: BinLaden   (17.02.2009 в 22:23)
 

Чтобы получилось что-то вроде этого?

function visiter_language( $setlang = "" )
{
    $_SESSION;
    $_SERVER;
    if ( $setlang == "" )
    {
        if ( $_SESSION[sess_lang] != "" )

  Ответить  
 
 автор: BinLaden   (17.02.2009 в 22:31)   письмо автору
 
   для: home-studia   (17.02.2009 в 22:26)
 

Нет, строчек

$_SESSION; 
$_SERVER;

быть не должно.

  Ответить  
 
 автор: home-studia   (17.02.2009 в 22:34)   письмо автору
 
   для: 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)   письмо автору
 
   для: home-studia   (17.02.2009 в 22:34)
 

> это верно?

Нет. Правильно $_POST. Почитайте: http://ru.php.net/manual/en/language.variables.superglobals.php

  Ответить  
 
 автор: home-studia   (17.02.2009 в 22:46)   письмо автору
 
   для: BinLaden   (17.02.2009 в 22:37)
 

К сожалению я в англ. не силен, подскажите пожалуйста как мне попробовать изменить, может быть так?
global $_POST['$GLOBALS'];

  Ответить  
 
 автор: home-studia   (17.02.2009 в 22:47)   письмо автору
 
   для: home-studia   (17.02.2009 в 22:46)
 

Ошибка исчезла когда убрал global и оставил так:
$_POST['$GLOBALS'];

  Ответить  
 
 автор: BinLaden   (17.02.2009 в 23:04)   письмо автору
 
   для: home-studia   (17.02.2009 в 22:47)
 

Эта строка не имеет смысла.

  Ответить  
 
 автор: nikita2206   (17.02.2009 в 23:11)   письмо автору
 
   для: BinLaden   (17.02.2009 в 23:04)
 

вы че люди!! $_SERVER, $_POST и т.д. это суперглобальный массив и зачем его еще делать глобальным в функции если он итак глобальный.....

вот к примеру это: $GLOBALS['_SESSION'][sess_lang] = $setlang;
ведь лучше написать: $_SESSION['sess_lang'] = $setlang;

[поправлено модератором]

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования