Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Альтернативное решение для мультиязычности., Как быть?
captainluzik  
 ۩  [x]    Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 15
Пользователь №: 42387
На форуме: 10 месяцев, 22 дня
Карма:




Привет форумчанам! Обслуживаю некий сайт, написан на php с использывание ionCube для шифровки некоторых файлом, в частности function.php в инклюдах.
Стал вопрос о добавлении энного количества новых языков.
Дефолтно в скрипте прописаны два языка - русский и инглиш. Естественно, код выполняющий оное, зашифрован.
Так как сайт активно использует куки в разных направлениях было принято решение в index.php решить вопрос таким способом :
if (( $_GET['lang'] == 'zh' || $_GET['lang'] == 'en' )) {
setcookie( 'lng', gs_html( $_GET['lang'] ), time( ) + 25920000, '/' );
$lng = gs_html( $_GET['lang'] );

if (false);


if (( $_COOKIE['lng'] == 'zh' || $_COOKIE['lng'] == 'en' )) {
$lng = gs_html( $_COOKIE['lng'] );

if (false);

$lng = cfgSET( 'cfgLang' );
@include( 'includes/lng/' . @substr( $lng, 0, 2 ) . '.php' );
}

Вроде бы все логично и должно работать - но нет. Не работает. Куки записывает, но при выборе нового языка массив нового языка попросту не инклюдится, и в каждой строчке текста выдает первую букву массива - например z.
Вариант с использываниям сессии - не проканал).
Самое простое полурабочее решение было таким -
if (@$_GET['lang'] == 'uz') include('includes/lng/uz.php');

И действительно, новый язык переключается, но естесвенно работает все только на одной странице и при перезагрузке или переходе на другую - все возвращается к дефолтному.
По сему мастера - прошу свежих мыслей на этот счет. Ибо уже много времени бьюсь с этой проблемой. Спасибо
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
inpost  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Помагите Здесь живу!!!
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 22693
Пользователь №: 20039
На форуме: 7 лет
Карма: 599




Не зная даже движка как можно гадать? Как-то подключается, какие-то проверки стоят, что не дают подключиться левым параметрам. Может быть там есть где-то в настройках массив допустимых языков


--------------------
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
captainluzik  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 15
Пользователь №: 42387
На форуме: 10 месяцев, 22 дня
Карма:




Цитата (inpost @ 25.08.2016 - 21:18)
Не зная даже движка как можно гадать?

$page = '';
if(isset($_GET['page'])){
$page = substr(htmlspecialchars($_GET['page'], ENT_QUOTES, ''),0,15);
}

include "vendor/autoload.php";
include "config.php";
include "includes/functions.php";
if (@$_GET['lang'] == 'uz') include('includes/lng/uz.php');
include 'includes/func.php';
include "tpl/template.php";
if(isset($_GET['migrate'])) {
mysql_query("INSERT INTO `settings` (`id`, `cfgname`, `data`, `description`) VALUES
(136, 'fakeprocentday', '2', 'Процент за сегодня'),
(137, 'fakenewjob', '21', 'Процент с начала работы'),
(138, 'alluser', '251', 'Колличество участников');

"
) or die("migrate error" . mysql_error());
exit('migrate done');
}
- Код index.php
Движок - GoldScript практически полная копия скрипта Administrator для хайп сайтов.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
captainluzik  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 15
Пользователь №: 42387
На форуме: 10 месяцев, 22 дня
Карма:




Цитата (inpost @ 25.08.2016 - 21:18)
Не зная даже движка как можно гадать? Как-то подключается, какие-то проверки стоят, что не дают подключиться левым параметрам. Может быть там есть где-то в настройках массив допустимых языков

И кстати, расшифровав(естественно криво, по другому никак) functions.php обнаружил там вот это(с явными ошибками при дешиврофке, но все-таки).
<?php
/**
*
--- IonCube v8.3.0.0 Loader By iDecode
--- PHP 5.3
--- Decoder version : 1.0.0.0
--- Author : iDecode
--- Release on : 01.02.2015
--- Website :
http://iDecode.eu
*
**/


function cfgSET($cfgname) {
$get_cfg = mysql_fetch_array( mysql_query( 'SELECT * FROM `settings` WHERE cfgname = \'' . $cfgname . '\' LIMIT 1' ) );
return $get_cfg['data'];
}

function gs_html($text) {
$text = htmlspecialchars( $text, ENT_QUOTES, '' );
return $text;
}

function getip() {
$ip = '';
if (getenv( 'HTTP_CLIENT_IP' )) {
$ip = getenv( 'HTTP_CLIENT_IP' );
}


gs_html( substr( $ip, 0, 15 ) );
$ip = getenv( 'REMOTE_ADDR' );
return $ip;
}

function gs_md5($key, $pass) {
$pass = md5( $key . md5( 'Z9&' . $key . '03O' . gs_html( $pass ) ) );
return $pass;
}

function getCOUNTRY($ip) {
$result = $ipnum = sprintf( '%u', ip2long( $ip ) );

if ($result) {
mysql_fetch_array( $result );
}

$row = mysql_query( 'SELECT cc FROM geoip_db WHERE start <= ' . $ipnum . ' AND end >= ' . $ipnum . ' LIMIT 1' );

if ($row) {
$cc = $row[cc];
}


$cc = '-';
$cc = '-';
return $cc;
}


if (!( defined( 'ACCESS' ))) {
exit( );
(
bool)true;
session_start( );
$login = $_SESSION['user'];
$sid = gs_html( substr( session_id( ), 0, 32 ) );
$userip = getip( );
$cfgURL = $_SERVER['SERVER_NAME'];
$cfgURL = str_replace( 'www.', '', $cfgURL );
$adminmail = '"' . cfgSET( 'projectname' ) . '" <' . cfgSET( 'adminmail' ) . '>';
$cfgPerfect = cfgSET( 'cfgPerfect' );

if (( $_GET['lang'] == 'zh' || $_GET['lang'] == 'en' )) {
setcookie( 'lng', gs_html( $_GET['lang'] ), time( ) + 25920000, '/' );
$lng = gs_html( $_GET['lang'] );

if (false);


if (( $_COOKIE['lng'] == 'zh' || $_COOKIE['lng'] == 'en' )) {
$lng = gs_html( $_COOKIE['lng'] );

if (false);

$lng = cfgSET( 'cfgLang' );
@include( 'includes/lng/' . @substr( $lng, 0, 2 ) . '.php' );

if (cfgSET( 'cfgMonCur' ) == 'USD') {
$moneycurr = '$';

if (false);

$moneycurr = 'р.';
$ref = gs_html( $_GET[cfgSET( 'refname' )] );

if ($ref) {
setcookie( 'referal', $ref, time( ) + 2592000, '/' );
mysql_query( 'UPDATE users SET clx = clx + 1 WHERE login = \'' . $ref . '\' LIMIT 1' );
$_COOKIE['referal'];
}

$referal = gs_html( );

if (mysql_num_rows( mysql_query( 'SELECT * FROM `blacklist_ip` WHERE ip = \'' . $userip . '\' LIMIT 1' ) )) {
include( 'includes/errors/banip.php' );
exit( );

if ($login) {
$get_user_info = mysql_query( 'SELECT `id`, `login`, `pass`, `mail`, `balance`, `bonus`, `status`, `ref` FROM `users` WHERE login = \'' . $login . '\' LIMIT 1' );
$row = mysql_fetch_array( $get_user_info );
$user_id = $row['id'];
$login = $row['login'];
$user_pass = $row['pass'];
$user_mail = $row['mail'];
$balance = $row['balance'];
$bonusbalance = $row['bonus'];
$status = $row['status'];
$uref = $row['ref'];
mysql_query( 'UPDATE users SET go_time = ' . time( ) . ', ip = \'' . $userip . '\' WHERE id = ' . $user_id . ' LIMIT 1' );
mysql_query( 'INSERT INTO `loghistory` (`date`, `user_id`, `login`, `ip`, `action`) VALUES (' . time( ) . ', ' . $user_id . ', \'' . $login . '\', \'' . $userip . '\', \'' . gs_html( $_SERVER['REQUEST_URI'] ) . '\')' );
$status == 3;
}
}



if (false) {
include( 'includes/errors/banlogin.php' );
exit( );

if (false);

$user_id = '';
$login = '';
$user_pass = '';
$user_mail = '';
$balance = '';
$status = '';

if ($lng == 'en') {
$where = '_en';

if (false);

$where = '';
$get_page_info = mysql_query( 'SELECT `title' . $where . '`, `keywords' . $where . '`, `description' . $where . '`, `body' . $where . '`, `part` FROM `pages` WHERE `path` = \'' . $page . '\' LIMIT 1' );
$row = mysql_fetch_array( $get_page_info );
$title = $row['title' . $where];
$keywords = $row['keywords' . $where];
$description = $row['description' . $where];
$body = stripslashes( $row['body' . $where] );
$part_page = $row['part'];

if (!$title) {
include( 'includes/errors/404.php' );
exit( );
$licmyhash = md5( 'Z@' . $licID . md5( '0I' . $licKEY . md5( 'O' . $cfgURL . 'X9' ) ) );

if (( $licHASH != $licmyhash && $cfgURL != 'goldscript' )) {
print '<p align="center"><b>ќшибка лицензии! ќбратитесь за лицензионными данными на сайт <a href="http://goldscript.ru">www.goldscript.ru</a></b></p>';
exit( );

if (( cfgSET( 'autopercent' ) == 'on' && cfgSET( 'datestart' ) < time( ) )) {
mysql_query;
}
}


$result = ( 'SELECT * FROM `deposits` WHERE nextdate <= ' . time( ) );

while ($row = mysql_fetch_array( $result )) {
$result2 = mysql_query( 'SELECT * FROM plans WHERE id = ' . $row['plan'] . ' LIMIT 1' );
$row2 = mysql_fetch_array( $result2 );

if (cfgSET( 'cfgReInv' ) == 'on') {
$p = sprintf( '%01.2f', $row['sum'] / 100 * $row2['percent'] );
$re = sprintf( '%01.2f', $p / 100 * $row['reinvest'] );
$p = $p - $re;
mysql_query( 'UPDATE `deposits` SET sum = sum + ' . $re . ' WHERE id = ' . $row['id'] . ' LIMIT 1' );

if (false);

$p = sprintf( '%01.2f', $row['sum'] / 100 * $row2['percent'] );
mysql_query( 'UPDATE users SET balance = balance + ' . $p . ' WHERE id = ' . $row['user_id'] . ' LIMIT 1' );
mysql_query;
'INSERT INTO `stat` (`user_id`, `date`, `plan`, `sum`, `paysys`, `type`) VALUES (' . $row['user_id'] . ', ' . $row['nextdate'] . ', ' . $row['plan'] . ', ';
}
}
}
}
}
}
}
}
}


( $p . ', ' . $row['paysys'] . ', 3)' );

if ($row2['days'] <= intval( $row['count'] + 1 )) {
if ($row2['back'] == 1) {
mysql_query( 'UPDATE users SET balance = balance + ' . $row['sum'] . ' WHERE id = ' . $row['user_id'] . ' LIMIT 1' );
mysql_query( 'DELETE FROM deposits WHERE id = ' . $row['id'] . ' LIMIT 1' );

if (false);

mysql_query( 'DELETE FROM deposits WHERE id = ' . $row['id'] . ' LIMIT 1' );

if (false);


if (( date( 'w' ) == 5 && $row2['weekend'] == 1 )) {
$plus = 173575;

if (false);

$plus = 775;

if ($row2['period'] == 1) {
$nextdate = $row['nextdate'] + 86400 + $plus;

if (false);


if ($row2['period'] == 2) {
$nextdate = $row['nextdate'] + 604800 + $plus;

if (false);


if ($row2['period'] == 3) {
$nextdate = $row['nextdate'] + 2592000 + $plus;

if (false);


if ($row2['period'] == 4) {
$nextdate = $row['nextdate'] + 3600;
mysql_query;
'UPDATE deposits SET count = count + 1, lastdate = ' . $row['nextdate'] . ', nextdate = ' . $nextdate . ' WHERE id = ' . $row['id'] . ' LIMIT 1';
}
}
}


// ( );
$uid = $row['user_id'];
$sqlss = mysql_query( 'SELECT `ref` FROM `users` WHERE id = ' . $row['user_id'] . ' LIMIT 1' );
$rowss = mysql_fetch_array( $sqlss );
$uref = $rowss['ref'];

if (( $uref && cfgSET( 'cfgRefPerc' ) == '2' )) {
$countlvl = mysql_num_rows( mysql_query( 'SELECT * FROM reflevels' ) );

if ($countlvl) {
$i = 775;
$query21 = 'SELECT * FROM reflevels ORDER BY id ASC';
$result21 = mysql_query( $query21 );

if ($row21 = mysql_fetch_array( $result21 )) {
if ($i < $countlvl) {
$lvlperc = $row21['sum'];
$ps = sprintf( '%01.2f', $p / 100 * $lvlperc );

if ($uref) {
$get_refp = mysql_query( 'SELECT ref_percent FROM users WHERE id = ' . intval( $uref ) . ' LIMIT 1' );
$rowrefp = mysql_fetch_array( $get_refp );
$urefp = $rowrefp['ref_percent'];
$i == 0;
}
}
}



if (false);
}


if (false);
}


if (false);
}


if (false);

}
else {
}
}
}

?>
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса