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-v14-menu-patch.php
<?php
declare(strict_types=1);
require_once dirname(__DIR__).'/includes/functions.php';
require_admin_role();
$target=dirname(__DIR__).'/includes/tklm_v9.php';$notice='';$error='';
if(($_SERVER['REQUEST_METHOD']??'')==='POST'){
 verify_csrf();
 try{
  if(!is_file($target)||!is_readable($target)||!is_writable($target))throw new RuntimeException('Brak możliwości odczytu/zapisu includes/tklm_v9.php');
  $src=file_get_contents($target);if($src===false)throw new RuntimeException('Odczyt nieudany');
  if(str_contains($src,'p14_translate($api,$source,$lang)')){$notice='Menu już ma ochronę nazw.';}
  else{
   $old=<<<'MATCH'
$answer=$api->translate($source,'pl',$lang);
MATCH;
   if(substr_count($src,$old)!==1)throw new RuntimeException('Nieznana wersja tklm_v9.php — nie zmieniono pliku. Potrzebuję aktualnego pliku do dopasowania.');
   $new=<<<'MATCH'
$answer=['translatedText'=>p14_translate($api,$source,$lang)];
MATCH;
   $src=str_replace($old,$new,$src);
   $anchor="require_once __DIR__.'/TklmTranslateClient.php';";
   if(substr_count($src,$anchor)!==1)throw new RuntimeException('Nieznana struktura include');
   $src=str_replace($anchor,$anchor."\nrequire_once __DIR__.'/polana_v14_names.php';",$src);
   $backup=$target.'.v14-backup-'.date('Ymd-His');
   if(!copy($target,$backup))throw new RuntimeException('Nie udało się zapisać backupu');
   $tmp=$target.'.v14.tmp';
   if(file_put_contents($tmp,$src,LOCK_EX)===false)throw new RuntimeException('Zapis tymczasowy nieudany');
   @chmod($tmp,fileperms($target)&0777);
   if(!rename($tmp,$target))throw new RuntimeException('Podmiana pliku nieudana; przywróć z backupu');
   $notice='Ochrona nazw w menu włączona. Backup: '.basename($backup);
  }
 }catch(Throwable $e){$error=$e->getMessage();}
}
render_admin_header('V14 — Menu: ochrona nazw');
?>
<main style="max-width:900px;margin:30px auto;padding:18px">
<h1>Ochrona nazw własnych w tłumaczeniach menu</h1>
<p>Jednorazowa poprawka podmienia tylko wywołanie API w istniejącym <code>includes/tklm_v9.php</code> i tworzy backup. Bez zmian w bazie i edytorze menu.</p>
<?php if($notice):?><p style="color:green"><?=htmlspecialchars($notice,ENT_QUOTES,'UTF-8')?></p><?php endif;?>
<?php if($error):?><p style="color:#a22"><?=htmlspecialchars($error,ENT_QUOTES,'UTF-8')?></p><?php endif;?>
<form method="post"><?=csrf_field()?><button type="submit" style="padding:12px 18px">Włącz ochronę nazw w menu</button></form>
<p><a href="/admin/polana-v14-slownik.php">Słownik nazw własnych</a> · <a href="/admin/v9-review.php">Centrum menu</a></p>
</main>
<?php render_admin_footer(); ?>

Youez - 2016 - github.com/yon3zu
LinuXploit