403Webshell
Server IP : 188.114.96.3  /  Your IP : 216.73.216.143
Web Server : Apache
System : Linux sv058.home.net.pl 6.8.2 husak_dirty_pages_fix #1 SMP PREEMPT_DYNAMIC Tue Apr 2 22:06:51 CEST 2024 x86_64
User :  ( 3194769)
PHP Version : 8.5.12
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : OFF
Directory :  /polana/admin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /polana/admin/polana-v18-diagnostyka.php
<?php
declare(strict_types=1);
/** POLANA V18.0 — read-only runtime checks, no credentials in report. */
require_once dirname(__DIR__).'/includes/functions.php';
require_admin_role();
header('Cache-Control: private, no-store');header('X-Robots-Tag: noindex, nofollow');
$root=dirname(__DIR__);
$tests=[];
$add=static function(string $group,string $label,string $status,string $message)use(&$tests):void{
    $tests[]=compact('group','label','status','message');
};
$has=static fn(string $rel):bool=>is_file($root.'/'.$rel);
$contains=static fn(string $rel,string $token):bool=>is_file($root.'/'.$rel)&&str_contains((string)@file_get_contents($root.'/'.$rel),$token);
$add('Środowisko','PHP','ok',PHP_VERSION);
$add('Środowisko','Baza danych','ok','Połączenie: '.(function_exists('db')?'PDO dostępne':'brak'));
try{db()->query('SELECT 1');}catch(Throwable $e){$add('Środowisko','MariaDB','bad','Błąd połączenia lub zapytania.');}
$add('Menu','Edytor kart',($has('admin/menu.php')&&filesize($root.'/admin/menu.php')>100)?'ok':'bad','Łącze /admin/menu.php → edytor centrum');
$add('Menu','Zarządzanie i paginacja',$contains('admin/menus.php','POLANA V18')?'ok':'warn','Filtry, publikacja, archiwum i kosz');
$add('Menu','IndexNow po zmianach',($contains('admin/polana-menu-centrum.php','PIN77_AUTO_MENU_V18')&&$contains('admin/menus.php','pv18_menu_action'))?'ok':'warn','Hook edycji pozycji oraz zmian statusu');
try {require_once $root.'/includes/polana_v18_menu.php';$add('Menu','Kosz',pv18_menu_trash_ready()?'ok':'warn',pv18_menu_trash_ready()?'Tabela kosza jest gotowa':'Uruchom instalator V18.0');}
catch(Throwable $e){$add('Menu','Kosz','bad','Brak lub błąd modułu');}
$add('SEO','Google i sitemap',$has('admin/polana-v164-seo.php')?'ok':'bad','Panel Google Search Console i sitemap');
$add('SEO','Generator XML',($has('sitemap.php')&&$has('includes/polana_v166_seo.php'))?'ok':'warn','Dynamiczna mapa XML (nie sprawdzono odpowiedzi HTTP)');
$ht=(string)@file_get_contents($root.'/.htaccess');
$add('SEO','Przekierowanie sitemap',str_contains($ht,'sitemap.php')?'ok':'warn','Reguła .htaccess wskazuje na sitemap.php');
$add('SEO','Blokada kopii i sesji',$contains('.htaccess','POLANA_V18_PRIVATE_HTTP_DENY')?'ok':'bad','Reguły HTTP dla plików .sql/.bak i prywatnych katalogów; przetestuj na serwerze');
$add('SEO','IndexNow',$has('includes/polana_indexnow.php')?'ok':'warn','Biblioteka i kolejka IndexNow');
if($has('includes/polana_indexnow.php')){
    require_once $root.'/includes/polana_indexnow.php';
    $add('SEO','IndexNow włączony',pin77_enabled()?'ok':'warn',pin77_enabled()?'Tak':'Nie — włącz w panelu IndexNow');
    try{if(pin77_tables_exist()){
        $counts=[];foreach(db()->query('SELECT status,COUNT(*) n FROM polana_indexnow_queue GROUP BY status')->fetchAll(PDO::FETCH_ASSOC) as $r)$counts[$r['status']]=(int)$r['n'];
        $add('SEO','Kolejka','info','Oczekujące '.($counts['pending']??0).', wysłane '.($counts['sent']??0).', błędy '.($counts['error']??0));
    }}catch(Throwable $e){$add('SEO','Kolejka','warn','Brak odczytu');}
}
$mode=setting('polana_tracking_mode','off');
$add('GTM / cookies','Tryb analityki',$mode==='gtm'?'ok':'warn',$mode==='gtm'?'GTM':'Tryb: '.$mode.' (ID GTM może być zapisany, ale nieaktywny)');
$add('GTM / cookies','Baner zgód',($has('assets/js/polana-tracking.js')&&$has('assets/css/polana-tracking.css'))?'ok':'warn','Pliki obecne; zgody sprawdź w przeglądarce / Tag Assistant');
$add('GTM / cookies','Consent Mode v2',$contains('assets/js/polana-tracking.js','ad_user_data')?'ok':'warn','Kod zgód obecny; nie potwierdza konfiguracji kontenera');
$add('Poczta','SMTP',setting('smtp_enabled','0')==='1'?'ok':'warn',setting('smtp_enabled','0')==='1'?'Włączone':'Wyłączone');
$add('Poczta','HTML rezerwacji',$has('includes/polana_v175_booking.php')?'ok':'warn','Moduł V17.5');
$add('Poczta','Numer #POLANA',$contains('includes/reservations.php','POLANA_V1752_CODE')?'ok':'warn','Znacznik numeracji V17.5.2');
$add('Newsletter','Panel i Excel',($has('admin/polana-newsletter.php')&&$has('admin/polana-newsletter-excel.php'))?'ok':'warn','Eksport XLSX i CSV');
try{
    $n=(int)db()->query("SELECT COUNT(*) FROM newsletter_subscribers WHERE status='active' AND verified_at IS NOT NULL")->fetchColumn();
    $add('Newsletter','Potwierdzeni do kampanii','info',(string)$n.' adresów');
}catch(Throwable $e){$add('Newsletter','Potwierdzeni do kampanii','warn','Brak odczytu verified_at');}
if($has('includes/polana_gcal.php')){
    try{require_once $root.'/includes/polana_gcal.php';$add('Kalendarz','OAuth Google',pg173_connected()?'ok':'warn',pg173_connected()?'Połączone konto':'Brak połączonego konta');}
    catch(Throwable $e){$add('Kalendarz','OAuth Google','warn','Nie można odczytać konfiguracji');}
}
$add('Bezpieczeństwo','CSRF użytkowników',$contains('admin/users.php','POLANA_V18_USERS_CSRF')?'ok':'bad','Ochrona POST tworzenia kont');
$add('Bezpieczeństwo','Opinie — RBAC',$contains('admin/opinie.php','POLANA V18')?'ok':'warn','Standardowe logowanie admin + CSRF');
$add('Bezpieczeństwo','Pliki prywatne w WWW',($has('admin/database_z_zip.sql')||$has('storage/.htaccess'))?'warn':'ok','Znaleziono historyczne kopie/strukturę SQL. HTTP powinien być zablokowany; docelowo przenieś je poza WWW.');
$report='POLANA V18.0 — diagnostyka '.date('Y-m-d H:i:s')."\n";
foreach($tests as $t)$report.='['.strtoupper($t['status']).'] '.$t['group'].' / '.$t['label'].': '.$t['message']."\n";
render_admin_header('Diagnostyka V18.0');
?>
<style>.pv18d{max-width:1140px;margin:0 auto 60px;padding:15px;color:#20392a}.pv18d .panel{background:#fff;border:1px solid #d7e2d5;border-radius:14px;padding:18px;margin:14px 0}.pv18d .row{display:flex;align-items:start;justify-content:space-between;gap:12px;border-bottom:1px solid #e7eee6;padding:12px 0}.pv18d .row:last-child{border:0}.pv18d .badge{padding:4px 9px;border-radius:99px;background:#e5f2e7;color:#23633b;font-weight:700;font-size:12px}.pv18d .badge.warn{background:#fff0d3;color:#885c15}.pv18d .badge.bad{background:#fce3e3;color:#97302f}.pv18d .badge.info{background:#e8eef9;color:#365478}.pv18d .muted{font-size:13px;color:#607366}.pv18d .links{display:flex;gap:9px;flex-wrap:wrap}.pv18d .links a,.pv18d button{border:0;background:#285638;color:white;border-radius:8px;padding:10px 13px;text-decoration:none;cursor:pointer}.pv18d textarea{width:100%;min-height:230px;padding:12px;border:1px solid #bacaba;border-radius:9px;font:12px/1.5 monospace}</style>
<div class="pv18d"><h1>Diagnostyka POLANA V18.0</h1><p>Raport tylko do odczytu: nie wysyła e-maili, nie zmienia bazy i nie ujawnia haseł ani tokenów. Nie zastępuje testów Google OAuth, GTM i odpowiedzi HTTP.</p>
<div class="links"><a href="/admin/menus.php">Menu</a><a href="/admin/polana-v164-seo.php">Google / sitemap</a><a href="/admin/polana-indexnow.php">IndexNow</a><a href="/admin/polana-analityka.php">GTM</a><a href="/admin/polana-kalendarz.php">Kalendarz</a><a href="/admin/polana-v18-instalator.php">Instalator / rollback</a></div>
<?php $group='';foreach($tests as $t):if($group!==$t['group']):if($group!==''):?></div><?php endif;$group=$t['group'];?><div class="panel"><h2><?=e($group)?></h2><?php endif;?><div class="row"><div><strong><?=e($t['label'])?></strong><div class="muted"><?=e($t['message'])?></div></div><span class="badge <?=e($t['status'])?>"><?=strtoupper(e($t['status']))?></span></div><?php endforeach;if($group!==''):?></div><?php endif;?>
<div class="panel"><h2>Raport do skopiowania</h2><textarea id="pv18report" readonly><?=e($report)?></textarea><p><button type="button" onclick="const t=document.getElementById('pv18report');t.select();document.execCommand('copy');this.textContent='Skopiowano';">Kopiuj raport</button></p></div></div>
<?php render_admin_footer(); ?>

Youez - 2016 - github.com/yon3zu
LinuXploit