JWT (JSON Web Token) — bu JSON formatidagi ma'lumotlarni xavfsiz tarzda uzatish uchun ishlatiladigan ochiq standart (RFC 7519). JWT autentifikatsiya va ma'lumotlarni tasdiqlash uchun keng qo‘llaniladi.
JWT qanday ishlaydi?
JWT uchta asosiy qismdan iborat:
1. Header (Sarlavha) – Algoritm va token turi haqida ma’lumot saqlaydi.
2. Payload (Yuk) – Token ichidagi ma’lumotlar (masalan, foydalanuvchi ID, rollar, vaqtlar).
3. Signature (Imzo) – Tokenning to‘g‘riligini tekshirish uchun ishlatiladi.
JWT quyidagi shaklda bo‘ladi:
header.payload.signature
Har bir qismi Base64Url formatida kodlanadi va nuqta (.) bilan ajratiladi.
JWT dan qanday foydalaniladi?
1. Foydalanuvchi tizimga kirganda, server unga JWT token yaratib beradi.
2. Har bir so‘rovda foydalanuvchi shu tokenni Authorization sarlavhasi orqali yuboradi:
Authorization: Bearer YOUR_JWT_TOKEN
3. Server tokenni tekshiradi va agar u yaroqli bo‘lsa, so‘rovni bajaradi.
JWT token yaratish (PHP misolida)
PHP-da JWT yaratish uchun Firebase\JWT kutubxonasidan foydalanish mumkin:
use Firebase\JWT\JWT;
$key = "secret_key"; // Maxfiy kalit
$payload = [
"user_id" => 123,
"role" => "admin",
"iat" => time(), // Yaratilgan vaqti
"exp" => time() + 3600 // 1 soatdan keyin eskiradi
];
// JWT yaratish
$jwt = JWT::encode($payload, $key, 'HS256');
echo $jwt;
JWT tokenni tekshirish
use Firebase\JWT\JWT;
use Firebase\JWT\Key;
try {
$decoded = JWT::decode($jwt, new Key($key, 'HS256'));
print_r($decoded);
} catch (Exception $e) {
echo "Token noto‘g‘ri yoki eskirgan!";
}
Afzalliklari
✔️ Sessiyalarni saqlash shart emas
✔️ JSON formatda oson ishlash mumkin
✔️ Avtorizatsiya jarayonini tezlashtiradi
Kamchiliklari
❌ Tokenni bekor qilish qiyin
❌ Xavfsizlik uchun maxfiy kalitni yaxshi himoyalash kerak
Agar siz JWT autentifikatsiyani Telegram botingiz yoki boshqa tizimlar bilan bog‘lamoqchi bo‘lsangiz, maxfiy kalit va token muddatlarini to‘g‘ri sozlash juda muhim.
JWT qanday ishlaydi?
JWT uchta asosiy qismdan iborat:
1. Header (Sarlavha) – Algoritm va token turi haqida ma’lumot saqlaydi.
2. Payload (Yuk) – Token ichidagi ma’lumotlar (masalan, foydalanuvchi ID, rollar, vaqtlar).
3. Signature (Imzo) – Tokenning to‘g‘riligini tekshirish uchun ishlatiladi.
JWT quyidagi shaklda bo‘ladi:
header.payload.signature
Har bir qismi Base64Url formatida kodlanadi va nuqta (.) bilan ajratiladi.
JWT dan qanday foydalaniladi?
1. Foydalanuvchi tizimga kirganda, server unga JWT token yaratib beradi.
2. Har bir so‘rovda foydalanuvchi shu tokenni Authorization sarlavhasi orqali yuboradi:
Authorization: Bearer YOUR_JWT_TOKEN
3. Server tokenni tekshiradi va agar u yaroqli bo‘lsa, so‘rovni bajaradi.
JWT token yaratish (PHP misolida)
PHP-da JWT yaratish uchun Firebase\JWT kutubxonasidan foydalanish mumkin:
use Firebase\JWT\JWT;
$key = "secret_key"; // Maxfiy kalit
$payload = [
"user_id" => 123,
"role" => "admin",
"iat" => time(), // Yaratilgan vaqti
"exp" => time() + 3600 // 1 soatdan keyin eskiradi
];
// JWT yaratish
$jwt = JWT::encode($payload, $key, 'HS256');
echo $jwt;
JWT tokenni tekshirish
use Firebase\JWT\JWT;
use Firebase\JWT\Key;
try {
$decoded = JWT::decode($jwt, new Key($key, 'HS256'));
print_r($decoded);
} catch (Exception $e) {
echo "Token noto‘g‘ri yoki eskirgan!";
}
Afzalliklari
✔️ Sessiyalarni saqlash shart emas
✔️ JSON formatda oson ishlash mumkin
✔️ Avtorizatsiya jarayonini tezlashtiradi
Kamchiliklari
❌ Tokenni bekor qilish qiyin
❌ Xavfsizlik uchun maxfiy kalitni yaxshi himoyalash kerak
Agar siz JWT autentifikatsiyani Telegram botingiz yoki boshqa tizimlar bilan bog‘lamoqchi bo‘lsangiz, maxfiy kalit va token muddatlarini to‘g‘ri sozlash juda muhim.
public function bot($method, $datas = [])
{
static $ch = null;
$url = "https://api.telegram.org/bot" . MYHEMIS . "/" . $method;
if ($ch === null) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Content-Type: application/x-www-form-urlencoded"
]);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_TCP_FASTOPEN, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2); // 2 soniya ichida bog‘lanmasa, bekor qilinadi
curl_setopt($ch, CURLOPT_TIMEOUT, 4); // Maksimal kutish vaqti
curl_setopt($ch, CURLOPT_NOSIGNAL, true);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, false);
curl_setopt($ch, CURLOPT_FORBID_REUSE, false);
}
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($datas));
$res = curl_exec($ch);
return $res ? json_decode($res, true) : curl_error($ch);
}
Bu kod Telegram Bot API so‘rovlarini tezlashtirish uchun
curl sessiyasini qayta ishlatadi. 🔹 Asosiy optimallashtirishlar:
-
static $ch → Bitta `curl` sessiyasidan qayta foydalanadi. -
CURLOPT_TCP_FASTOPEN → Tez ulanish imkonini beradi. -
CURLOPT_CONNECTTIMEOUT = 2, CURLOPT_TIMEOUT = 4 → Tez javob olish uchun cheklovlar. -
CURLOPT_FRESH_CONNECT = false, CURLOPT_FORBID_REUSE = false → Sessiyani qayta ishlatadi. 🚀 Natija: Kam resurs talab qiladi, tez ishlaydi!
function this($column, $table)
{
static $cache = [];
global $connect, $user_id;
$key = $table . '_' . $column . '_' . $user_id;
if (isset($cache[$key])) {
return $cache[$key];
}
$query = "SELECT `$column` FROM `$table` WHERE user_id = '{$user_id}' LIMIT 1";
$result = $connect->query($query);
$cache[$key] = ($result && $row = $result->fetch_assoc()) ? $row[$column] : null;
return $cache[$key];
}
$login = this('login', 'users'); // users bazasining login ustuni qiymatini olish.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
if ($data == "video_note") {
$user->request('sendMessage', [
'chat_id' => $chat_id,
'text' => "Video yuboring, men dumaloq video shaklida qilib beraman.",
'parse_mode' => 'markdown',
'reply_markup' => $round_video_menu,
]);
file_put_contents("step/convert/$chat_id.step", "awaiting_round_video");
exit();
}
$current_step = file_get_contents("step/convert/$chat_id.step");
if ($current_step == "awaiting_round_video") {
$uploaded_video = $message->video;
$video_file_id = $uploaded_video->file_id;
$file_info = $user->request('getFile', ['file_id' => $video_file_id]);
$file_path = $file_info->result->file_path;
$local_video_path = "convert/$chat_id.mp4";
file_put_contents($local_video_path, file_get_contents("https://api.telegram.org/file/bot" . API_KEY . "/" . $file_path));
$user->request('sendVideoNote', [
'chat_id' => $chat_id,
'videonote' => new CURLFile($local_video_path),
]);
unlink($local_video_path);
unlink("step/convert/$chat_id.step");
$user->request('sendMessage', [
'chat_id' => $chat_id,
'text' => "♻️ Bajarildi ✓",
'parse_mode' => 'markdown',
'reply_markup' => $convert_menu,
]);
exit();
}Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Composer — bu PHP loyihalaringizga kerakli kutubxonalarni oson o‘rnatish va boshqarish uchun ishlatiladigan vosita. U avtomatik yuklash, versiya nazorati va bog‘liq kutubxonalarni ham hal qiladi.
@phpdevelopers
@phpdevelopers
Cleaner.bat
3.1 KB
♻️ Kompyuterni optimal ishlashi uchun keshlarni tozalovchi fayl.
✳️ Quyidagilar tozalanadi.
[1/15] 🔄 DNS keshini tozalash...
Windows IP Configuration
Successfully flushed the DNS Resolver Cache.
[2/15] 🗑 Temp fayllarni tozalash...
[3/15] 🚀 Prefetch keshini tozalash...
[4/15] 🔄 Windows Update keshini tozalash...
[5/15] 🧹 Disk Cleanup ishga tushirilmoqda...
[6/15] 🚀 RAM xotirasini tozalash...
[7/15] ❌ Superfetch va SysMain xizmatlarini o‘chirish...
[8/15] 🗑 Chiqindilar qutisini tozalash...
[9/15] 🌐 Internetni optimallashtirish (Nettozlash)...
[10/15] 🛠 Diskni optimallashtirish...
[11/15] ❌ Keraksiz xizmatlarni o‘chirish...
[12/15] 🔧 Keraksiz AutoRun dasturlarini o‘chirish...
[13/15] 🚀 RAM ishlatilishini optimallashtirish...
[14/15] 🔄 Windows avtomatik tozalashni yoqish...
[15/15] 🔍 Xavfsizlik tekshiruvi...
✳️ Quyidagilar tozalanadi.
[1/15] 🔄 DNS keshini tozalash...
Windows IP Configuration
Successfully flushed the DNS Resolver Cache.
[2/15] 🗑 Temp fayllarni tozalash...
[3/15] 🚀 Prefetch keshini tozalash...
[4/15] 🔄 Windows Update keshini tozalash...
[5/15] 🧹 Disk Cleanup ishga tushirilmoqda...
[6/15] 🚀 RAM xotirasini tozalash...
[7/15] ❌ Superfetch va SysMain xizmatlarini o‘chirish...
[8/15] 🗑 Chiqindilar qutisini tozalash...
[9/15] 🌐 Internetni optimallashtirish (Nettozlash)...
[10/15] 🛠 Diskni optimallashtirish...
[11/15] ❌ Keraksiz xizmatlarni o‘chirish...
[12/15] 🔧 Keraksiz AutoRun dasturlarini o‘chirish...
[13/15] 🚀 RAM ishlatilishini optimallashtirish...
[14/15] 🔄 Windows avtomatik tozalashni yoqish...
[15/15] 🔍 Xavfsizlik tekshiruvi...
Please open Telegram to view this post
VIEW IN TELEGRAM
Timestamp — bu kompyuter tizimlari, dasturlar va ma’lumotlar bazalarida aniq vaqtni (sana va soatni) raqamli ko‘rinishda ifodalovchi qiymat. Odatda bu qiymat 1970-yil 1-yanvar 00:00:00 UTC dan boshlab o‘tgan soniyalar soni tarzida saqlanadi (bu format Unix timestamp deb ataladi).
---
Timestamp nima uchun kerak?
1. Vaqtni aniq belgilash uchun
Masalan: foydalanuvchi tizimga kirgan, ma’lumot qo‘shgan, o‘zgartirgan yoki o‘chirgan vaqtni aniqlash.
2. Ma’lumotlarni saralash va tartiblash uchun
Eng yangi yoki eski yozuvlarni ko‘rsatish.
3. Tizimlarda log yuritish
Harakatlar tarixini (loglar) yozishda foydalanuvchi qachon nima qilganini ko‘rsatish uchun.
4. Sessionlar yoki tokenlar muddati tugashini aniqlash uchun
Masalan: foydalanuvchi login qilgandan so‘ng, 1 soat ichida sessiyasi tugasin.
5. Vaqt zonalari bilan ishlashda
Har bir foydalanuvchining lokal vaqti bilan muomala qilish.
---
Tarixi
Unix timestamp birinchi marta 1970-yil 1-yanvar 00:00:00 UTC vaqtini “epoch” deb qabul qilgan holda Unix tizimlarida joriy qilingan.
Bu tizim dastlab C dasturlash tilidagi time_t turida ifodalanib, kompyuter xotirasida son ko‘rinishida saqlashni osonlashtirgan.
---
Agar sizda timestampni PHP, MySQL, yoki boshqa texnologiyalarda qanday ishlatilishi** bo‘yicha savollar bo‘lsa, mamnuniyat bilan tushuntiraman.
---
Timestamp nima uchun kerak?
1. Vaqtni aniq belgilash uchun
Masalan: foydalanuvchi tizimga kirgan, ma’lumot qo‘shgan, o‘zgartirgan yoki o‘chirgan vaqtni aniqlash.
2. Ma’lumotlarni saralash va tartiblash uchun
Eng yangi yoki eski yozuvlarni ko‘rsatish.
3. Tizimlarda log yuritish
Harakatlar tarixini (loglar) yozishda foydalanuvchi qachon nima qilganini ko‘rsatish uchun.
4. Sessionlar yoki tokenlar muddati tugashini aniqlash uchun
Masalan: foydalanuvchi login qilgandan so‘ng, 1 soat ichida sessiyasi tugasin.
5. Vaqt zonalari bilan ishlashda
Har bir foydalanuvchining lokal vaqti bilan muomala qilish.
---
Tarixi
Unix timestamp birinchi marta 1970-yil 1-yanvar 00:00:00 UTC vaqtini “epoch” deb qabul qilgan holda Unix tizimlarida joriy qilingan.
Bu tizim dastlab C dasturlash tilidagi time_t turida ifodalanib, kompyuter xotirasida son ko‘rinishida saqlashni osonlashtirgan.
---
Agar sizda timestampni PHP, MySQL, yoki boshqa texnologiyalarda qanday ishlatilishi** bo‘yicha savollar bo‘lsa, mamnuniyat bilan tushuntiraman.
function safeString($connect, $string)
{
return mysqli_real_escape_string($connect, htmlspecialchars($string, ENT_QUOTES, 'UTF-8'));
}
@phpdevelopers
Please open Telegram to view this post
VIEW IN TELEGRAM
SELECT user_id
FROM users
WHERE user_id NOT IN (
SELECT user_id FROM global_users
);
ℹ️ Bu komanda bilan siz faqat users jadvalida bor, ammo global_users da mavjud bo‘lmagan user_id ni chiqaradi. Siz aytgandek, bu yerda 1 ta ortiqcha bo‘lishi mumkin.
Ya'ni: Qaysidur bazaga bir xil foydanuvchi malumoti saqlanmagan bo'lsa uni qidirish uchun ishlatiladigan kod.
🔥3❤2💩1
🕒 Cron Job: Faqat kun davomida ishlaydigan sozlama
Agar sizga cron job skriptni faqat kun davomida, ya’ni ertalabdan kechgacha har daqiqada ishga tushurishi kerak bo‘lsa, kechasi esa umuman ishlamasligi kerak bo‘lsa — quyidagi cron ifodasi aynan siz uchun:
Nima qiladi bu cron?
Har kuni ertalab soat 06:00 dan kechki 23:59 gacha har daqiqada skriptni ishga tushuradi.
Tungi 00:00 dan 05:59 oralig‘ida esa umuman ishlamaydi, ya’ni kechasi serveringiz resurslarini tejaydi.
Qachon foydali bo‘ladi?
📍 Kechasi ishlashi shart bo‘lmagan jarayonlar uchun (masalan, Telegram bot monitoringi, statistika yig‘ish, foydalanuvchi faoliyatiga bog‘liq avtomatlashtirishlar va h.k.)
💡 Server yuklamasini optimallashtirish kerak bo‘lsa.
Agar sizga cron job skriptni faqat kun davomida, ya’ni ertalabdan kechgacha har daqiqada ishga tushurishi kerak bo‘lsa, kechasi esa umuman ishlamasligi kerak bo‘lsa — quyidagi cron ifodasi aynan siz uchun:
* 6-23 * * * php /path/to/your/script.php
Nima qiladi bu cron?
Har kuni ertalab soat 06:00 dan kechki 23:59 gacha har daqiqada skriptni ishga tushuradi.
Tungi 00:00 dan 05:59 oralig‘ida esa umuman ishlamaydi, ya’ni kechasi serveringiz resurslarini tejaydi.
Qachon foydali bo‘ladi?
📍 Kechasi ishlashi shart bo‘lmagan jarayonlar uchun (masalan, Telegram bot monitoringi, statistika yig‘ish, foydalanuvchi faoliyatiga bog‘liq avtomatlashtirishlar va h.k.)
💡 Server yuklamasini optimallashtirish kerak bo‘lsa.
💩1
❓ Bu qanday qilinadi?
input_field_placeholder — bu Telegram botida reply keyboard emas, inline keyboard (inline mode) uchun emas, balki reply qilish maydonidagi yozuv uchun ishlatiladi. Foydalanuvchining matn kiritadigan joyida ko‘rinadigan kulrang "placeholder" yozuvni o‘zgartirishga yordam beradi.
☑️ @phpdevelopers
$user->sendMessage([
'chat_id' => $user_id,
'text' => "Ismingizni yozing:",
'reply_markup' => json_encode([
'force_reply' => true,
'input_field_placeholder' => 'Ismingizni shu yerga yozing...'
])
]);
input_field_placeholder — bu Telegram botida reply keyboard emas, inline keyboard (inline mode) uchun emas, balki reply qilish maydonidagi yozuv uchun ishlatiladi. Foydalanuvchining matn kiritadigan joyida ko‘rinadigan kulrang "placeholder" yozuvni o‘zgartirishga yordam beradi.
☑️ @phpdevelopers
💩1
☑️ PHP Stormda ushbu sozlamani yoqish kodingizni taribli qilib saqlab beradi.
➖ CTRL + S bosilganida avtomatik tartiblab beradi.
💻 @phpdevelopers
➖ CTRL + S bosilganida avtomatik tartiblab beradi.
💻 @phpdevelopers
💩1