За последние 24 часа нас посетили 62845 программистов и 1743 робота. Сейчас ищут 2193 программиста ...

Сайт с поддердкой нескольких языков

Тема в разделе "PHP для новичков", создана пользователем novik85, 16 ноя 2007.

  1. novik85

    novik85 Активный пользователь

    С нами с:
    16 ноя 2007
    Сообщения:
    3
    Симпатии:
    0
    Можно ли сделать так чтобы COOKIE записанный к примеру на site.ru был доступен и на sub.site.ru и наобророт
    И еще подскажите как можно оптимизиравать данный код.
    PHP:
    1.  
    2. class Language
    3. {
    4.     var $description;
    5.     var $filename;
    6. }
    7.  
    8.     $lang_list = array();
    9.  
    10.     $lang_list[0] = new Language();
    11.     $lang_list[0]->description = "English";
    12.     $lang_list[0]->cod = "en";
    13.     $lang_list[0]->filename = "english.php";
    14.  
    15.     $lang_list[1] = new Language();
    16.     $lang_list[1]->description = "Русский";
    17.     $lang_list[1]->cod = "ru";
    18.     $lang_list[1]->filename = "russian.php";
    19.  
    20. if (isset($_GET["new_lang"]))   {
    21.     $new_lang = $_GET["new_lang"];
    22.     if (!isset($new_lang) ||    $new_lang < 0 || $new_lang > count($lang_list))
    23.         $new_lang = 0;
    24.     $temp2 = $lang_list[$new_lang]->cod;
    25. }else{
    26.     if (isset($_COOKIE["Language"])) {
    27.         $temp2 = $_COOKIE["Language"];
    28.     }else{
    29.         list($temp, $temp2, $temp3) =  split('[.]', $_SERVER['SCRIPT_NAME'], 3);
    30.     }
    31. }
    32.  
    33. $current_language = 0;
    34. $file_end = ".php";
    35. $lan_value = "en";
    36. for($i=1; $i < count($lang_list); $i++)
    37.     if ($temp2 == $lang_list[$i]->cod){
    38.         $current_language = $i;
    39.         $file_end = ".".$lang_list[$i]->cod.".php";
    40.         $lan_value = $lang_list[$i]->cod;
    41.     }
    42. setcookie("Language", $lan_value, 0x7FFFFFFF);  
    43.    
    44. unset($temp);unset($temp2);unset($temp3);
    45. //include a language file
    46. if (isset($lang_list[$current_language]) && file_exists("./language/".$lang_list[$current_language]->filename))
    47.     include("./language/".$lang_list[$current_language]->filename);
    48. else
    49. {
    50.     die("<font color=red><b>ERROR: Couldn't find language file!</b></font>");
    51. }
    [/code]
     
  2. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    http://php.net/setcookie пятый параметр
    Код (Text):
    1. .example.com
    Наоборот, нельзя по-моему.
     
  3. novik85

    novik85 Активный пользователь

    С нами с:
    16 ноя 2007
    Сообщения:
    3
    Симпатии:
    0
    Пробовал вот так:
    PHP:
    1. setcookie("Language", $lan_value, 0x7FFFFFFF, "/", ".site.ru", 0);  
    В cookie по моему ничего не записало., может гдето ошибся?