Narzędzie diagnostyczne do modułu PriceWars 2 - więcej na seigi.eu
* @version 1.0
* @copyright SEIGI Grzegorz Zawadzki
*
*/
require_once './../../config/config.inc.php';
$warning = $error = false;
$test_domains = array(
'pl.seigi.eu',
's1.license.seigi.eu',
's2.license.seigi.eu',
's3.license.seigi.eu',
's4.license.seigi.eu',
);
$domains = array(
'http://google.pl',
'https://www.wp.pl/',
'https://www.onet.pl/',
);
$could_connect_seigi = $could_connect_external = false;
echo "Serwery licencji
";
$tr = array();
foreach($test_domains as $d) {
test_xyz($d, $tr);
}
foreach($tr as $d){
echo $d['text'];
if($d['result']) {
$could_connect_seigi = $d['result'];
}
}
if(!$could_connect_seigi) {
echo "Testy łączności
";
echo "Serwery ogólne
";
$r = array();
foreach($domains as $d){
$r[$d] = testConnection($d);
if($r[$d]){
$could_connect_external = true;
}
}
// echo "
";
// $could_connect_external &= testConnection('https://www.wp.pl/');
// echo "
";
// $could_connect_external &= testConnection('https://arena.pl/');
}else{
$could_connect_external = true;
}
if(!function_exists('curl_init')) {
d_info('Rozszerzenie CURL nie jest zainstalowane');
}
function test_xyz($domain, &$r) {
$r[$domain]['text'] = "Testing {$domain}
";
$r[$domain]['text'] .= "IP: ".gethostbyname($domain).' - ';
$xyz = tools::file_get_contents('http://'.$domain.'/xyz.txt');
$r[$domain]['text'] .= ($xyz == 'xyz' ? 'Connection OK' : 'Not xyz - connection error');
$r[$domain]['text'] .= "
";
$r[$domain]['result'] = ($xyz == 'xyz' ? true : false);
return $r;
}
function testConnection($url, &$result = false){
$curl_timeout = 3;
if(@file_get_contents($url) === false){
d_info('Próba otworzenia zasobu '.$url.' przez file_get_contents nie powiodła się');
$error = error_get_last() ;
d_warning($error['message']);
if(function_exists('error_clear_last'))
error_clear_last();
if(function_exists('curl_init')) {
d_info('(CURL) Próba połączenia za pomocą rozszerzenia CURL');
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $curl_timeout);
curl_setopt($curl, CURLOPT_TIMEOUT, $curl_timeout);
$curl_info = curl_getinfo($curl);
$curl_result = curl_exec($curl);
curl_close($curl);
d_info('(CURL) Serwer zwrócił KOD HTTP: '. $curl_info['http_code']);
if($curl_result === false){
d_error( '(CURL) Połączenie nie udane. Nie można nawiązać połączenia z serwerem');
return false;
} else {
d_error( 'Twoja strona musi zezwalać na połączenie z zasobami zdalnymi. Musisz mieć zainstalowane i aktywne rozszerzenie curl i/lub aktywną opcję allow_url_fopen');
return true;
}
} else {
d_error( 'Twoja strona musi zezwalać na połączenie z zasobami zdalnymi. Musisz mieć zainstalowane i aktywne rozszerzenie curl i/lub aktywną opcję allow_url_fopen');
return false;
}
}
d_ok('Próba otworzenia zasobu przez file_get_contents udana: '. $url);
return true;
}
echo "Podsumowanie
";
if($could_connect_seigi) {
d_ok('Połączenie z serwerem licencji nawiązane');
} else {
d_error( 'Nie można połączyć z serwerem licencji.');
}
if(!$could_connect_seigi && !$could_connect_external){
d_error( 'Konfiguracja serwera nie pozwala na żadne połączenie zdalne z poziomu skryptu. Proszę o kontakt z administratorem serwera', true);
}elseif(!$could_connect_seigi){
d_warning('Połączenie z zewnętrznymi serwerami działa poprawnie, natomiast nie udało połączyć się z serwerem licencji. Skontaktuj się z nami w celu wyjaśnienia sytuacji');
}
if(get_magic_quotes_gpc())
d_error( 'Opcja magic_quotes_gpc jest aktywna. Należy ją wyłączyć aby moduł (zresztą i sklep też) działał poprawnie.');
echo "Testy systemowe
";
foreach(get_loaded_extensions() as $ext){
if(strpos($ext, 'XCache') !== false){
d_warning('Wykryto zainstalowane rozszerzenie "'.$ext.'" które może - ALE NIE MUSI sprawiać problemy. XCache jest przestażały (ost. akt ~2014 roku), a w sieci są lepsze moduły cacheujące
Czasami problemy z tym modułem mogą zostać rozwiązane po aktualizacji IonCube do najnowszej wersji');
}
}
/* if(ini_get('allow_url_fopen') != 1)
echo 'UWAGA! allow_url_fopen musi być ustawione na 1. Prosimy o kontakt z administratorem serwera
';
*/
if(!extension_loaded('mcrypt') && PHP_VERSION_ID < 70000)
d_error ('UWAGA! Brak biblioteki mcrypt');
if(extension_loaded('suhosin') || (defined('SUHOSIN_PATCH') && constant("SUHOSIN_PATCH")))
d_warning('Na serwerze jest obecne rozszerzenie Suhosin. Potrafi on sprawiać problemy przy generowaniu XML. Tym ostrzeżeniem nie należy się przejmować, jeśli XML generuje się prawidłowo');
if(!extension_loaded('ionCube Loader'))
d_error ('UWAGA! Brak zainstalowanego rozszerzenia "ionCube Loader" na serwerze, który jest niezbędny aby korzystać z tego modułu. Jeśli chcesz korzystać z modułu i widzisz tę wiadomośc, to skontaktuj się z administratorem Twojego serwera i poproś o instalację/aktywację rozszerzenia.');
else {
if(!function_exists('ioncube_loader_iversion')) {
d_warning('Wykryto IONCUBE loader - nie wiadomo jednak jaka wersja. Zaktualizuj lub zainstaluj moduł w wersji najnowszej wersji lub minimum 10.2.2');
} elseif (ioncube_loader_iversion() < 100202) {
d_warning('Moduł IONCUBE Loader jest bardzo nieaktualny. Nasz moduł nie będzie pracował na Twoim serwerze. Zaktualizuj moduł IoncubeLoader do najnowszej wersji lub minimum 10.2.2, twoja wersja to: ' . ioncube_loader_version().' ('.ioncube_loader_iversion().')');
} else {
d_ok('Moduł Ioncube wydaje się być aktualny. Twoja wersja to: ' . ioncube_loader_version().' ('.ioncube_loader_iversion().')');
}
}
d_info('PHP version: '. PHP_VERSION.' ('.PHP_VERSION_ID.')');
function d_info ($s) {
echo 'INFO: '.$s.'
';
}
function d_error ($s, $rev = false) {
if($rev)
echo 'BŁĄD: '.$s.'
';
else
echo 'BŁĄD: '.$s.'
';
}
function d_warning ($s) {
echo 'OSTRZEŻENIE: '.$s.'
';
}
function d_ok ($s) {
echo 'SUKCES: '.$s.'
';
}
?>