В зависимости от страны вывод информации

12
K
На сайте с 13.11.2009
Offline
156
1343

Вот наваяла такое чудо-юдо, сайт на дле (лицензия официальная), в зависмости от страны нужно вывести различню информацию, например для России вставлен код индексной страницы движка DLE, для Китая просто надпись "Добро пожаловать в Китай !!!", для Франции загружаем HTML страницу testovaya.html , а для тех кто не определился или не попал под условия для стран просто напросто перекидываются на другой сайт test.com

<?php


//$ip = "46.229.140.43"; // Россия
//$ip = "180.76.15.162"; // Китай
//$ip = "95.130.12.37"; // Франция
$ip = "127.0.0.1"; // Локальный


#****** Вытаскиваем страну по айпи из базы ******#

require_once 'IP2Location.php';
$loc = new IP2Location('bases/IP2LOCATION.BIN', IP2Location::FILE_IO);


if ($loc->lookup($ip, IP2Location::COUNTRY_CODE) == "FR") // если определилась страна Франция грузим HTML страницу
{
include("testovaya.html");
}
elseif ($loc->lookup($ip, IP2Location::COUNTRY_CODE) == "RU") // если определилась страна Россия грузим индексную страницу DLE
{

#****** Здесь начало индексной страницы DLE ******#

@ob_start ();
@ob_implicit_flush ( 0 );

if( !defined( 'E_DEPRECATED' ) ) {

@error_reporting ( E_ALL ^ E_WARNING ^ E_NOTICE );
@ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE );

} else {

@error_reporting ( E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE );
@ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE );

}

@ini_set ( 'display_errors', true );
@ini_set ( 'html_errors', false );

define ( 'DATALIFEENGINE', true );
define ( 'ROOT_DIR', dirname ( __FILE__ ) );
define ( 'ENGINE_DIR', ROOT_DIR . '/engine' );

require_once ROOT_DIR . '/engine/init.php';

#****** Здесь конец индексной страницы DLE ******#

}
else if ($loc->lookup($ip, IP2Location::COUNTRY_CODE) == "CN") // если определилась страна Китай то выводим надпись
{
echo "Добро пожаловать в Китай !!!";
}
else {
header ("Location: http://test.com"); // Если ничего не попало в условия, перенаправляем на другой сайт
}

?>

Так вот, проверьте пожалуйста , есть ли какие ошибки? На локальном open server вроде работает , а на хостинге белая страница при любых айпишниках, пробовала вывод ошибок , тоже вроде ничего не показало...

Где я накосячила?

K
На сайте с 13.11.2009
Offline
156
#1

никто не поможет ? печально :(

ХЗ
На сайте с 31.08.2008
Offline
155
#2
Kristinka:
никто не поможет ? печально :(

уберите собачки у:

@error_reporting ( E_ALL ^ E_WARNING ^ E_NOTICE );

@ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE );

- Покажет ошибки, если нет, то в индексный файл вписываем ini_set('error_reporting', E_ALL); и смотрим ошибки

вообще убирайте код с собачками, на будущее, если белый лист или еще какие непонятки то включаем в код строчку ini_set('error_reporting', E_ALL);

K
На сайте с 13.11.2009
Offline
156
#3
Х.З.:
уберите собачки у:
@error_reporting ( E_ALL ^ E_WARNING ^ E_NOTICE );
@ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE );
- Покажет ошибки, если нет, то в индексный файл вписываем ini_set('error_reporting', E_ALL); и смотрим ошибки


вообще убирайте код с собачками, на будущее, если белый лист или еще какие непонятки то включаем в код строчку ini_set('error_reporting', E_ALL);

Убрала, ничего не показывает, потом убрала со всех шести строчек собачки и тоже ничего не показывает. Но хочу заметить что этот код это оригинальный код индексной страницы DLE, и он так и был с собачками. И странно что всё работает без ошибок локально, а на хостинге белая страница без всяких ошибок.

ХЗ
На сайте с 31.08.2008
Offline
155
#4
Kristinka:
Убрала, ничего не показывает, потом убрала со всех шести строчек собачки и тоже ничего не показывает. Но хочу заметить что этот код это оригинальный код индексной страницы DLE, и он так и был с собачками. И странно что всё работает без ошибок локально, а на хостинге белая страница без всяких ошибок.

потому что какого то файла на хостинге не хватает, поэтому и белый лист, сверьте файлы на хостинге с файлами в коде. в корневой index.php в самый верх вписываем ini_set('error_reporting', E_ALL); и смотрим ошибки

K
На сайте с 13.11.2009
Offline
156
#5
Х.З.:
потому что какого то файла на хостинге не хватает, поэтому и белый лист, сверьте файлы на хостинге с файлами в коде. в корневой index.php в самый верх вписываем ini_set('error_reporting', E_ALL); и смотрим ошибки

вот вылезла ошибка - Warning: Cannot modify header information - headers already sent by .......

вот на это что то жалуется

header ("Location: http://test.com");

но там у меня реальный адрес на сайт стоит, туда куда перенаправлять должно

LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#6

Сразу после:

<?php

напишите:

ob_start();

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
K
На сайте с 13.11.2009
Offline
156
#7
LEOnidUKG:
Сразу после:

<?php

напишите:

ob_start();

спасибо, помогло....А что делает эта строка ob_start(); в скрипте?

L
На сайте с 10.02.2015
Offline
221
#8

Начинает буферизацию вывода.

"?>" не пишите в конце файлов, чтобы не было таких проблем.

K
На сайте с 13.11.2009
Offline
156
#9
livetv:

"?>" не пишите в конце файлов, чтобы не было таких проблем.

Как это ... это же как бы закон...начало и конец php файла должен быть таким:

<?php

содержимое

?>

LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#10
livetv:
Начинает буферизацию вывода.

"?>" не пишите в конце файлов, чтобы не было таких проблем.

Это не из-за в конце ?>

Это значит заголовок в каком-то файле был передан или уже что-то на вывод было сделано.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий