چگونه کد تایید پیامک را با PHP ارسال کنیم؟

فهرست مطالب
Toggle“چرا ارسال پیامک کد تایید با PHP ضروری است؟
در دنیای دیجیتال امروز، امنیت و اعتبارسنجی کاربران یکی از مهمترین چالشهای توسعهدهندگان وب است. کد تایید پیامکی (OTP) یکی از مؤثرترین روشها برای احراز هویت کاربران و جلوگیری از دسترسی غیرمجاز به سیستمها است.
با استفاده از PHP ، میتوانید به راحتی یک سیستم ارسال کد تایید پیامکی پیادهسازی کنید. این فرآیند شامل اتصال به API پنل پیامکی، تولید کد تصادفی، ذخیره آن در دیتابیس و اعتبارسنجی کد تایید است.
در این مقاله، به صورت گام به گام نحوه ارسال پیامک کد تایید با PHP را آموزش میدهیم. همچنین، به چالشهای رایج و راهحلهای آنها نیز میپردازیم.
اگر به دنبال یک پنل پیامکی حرفهای هستید، میتوانید خدمات پیامک ما را بررسی کنید.
مراحل ارسال پیامک کد تایید با PHP
1. اتصال به API پنل پیامکی
برای ارسال پیامک کد تایید، نیاز به اتصال به API یک پنل پیامکی دارید. این کار به شما امکان میدهد تا پیامکها را به صورت خودکار ارسال کنید.
مراحل اتصال به API:
- ثبتنام در پنل پیامکی:
ابتدا باید در یک پنل پیامکی معتبر ثبتنام کنید. پس از ثبتنام، یک API Key دریافت خواهید کرد که برای ارسال درخواستها به API استفاده میشود. - دریافت مستندات API:
پنلهای پیامکی معمولاً مستندات کاملی برای استفاده از API ارائه میدهند. این مستندات شامل URLهای مورد نیاز، پارامترهای ورودی و خروجی و مثالهای کد است. - استفاده از CURL در PHP:
برای اتصال به API پنل پیامکی، میتوانید از تابع CURL در PHP استفاده کنید. این تابع به شما امکان میدهد تا درخواستهای HTTP را به API ارسال کنید.
2. نوشتن کد PHP برای ارسال پیامک
3. اعتبارسنجی کد تایید
مثال کد PHP برای اتصال به API:
CREATE TABLE verifications (
id INT AUTO_INCREMENT PRIMARY KEY,
mobile VARCHAR(20) NOT NULL,
code VARCHAR(10) NOT NULL,
created_at DATETIME NOT NULL,
expire_at DATETIME NOT NULL,
status ENUM(‘pending’, ‘verified’, ‘expired’) DEFAULT ‘pending’
);
✅
مرحله اول: ارسال کد تأیید و ذخیره در دیتابیس
<?php
$pdo = new PDO(‘mysql:host=localhost;dbname=test;charset=utf8mb4’, ‘root’, ”); // کانکشن به دیتابیس
$mobile = ‘+989120000000’;
$verificationCode = rand(10000, 99999);
$patternCode = ‘abc123’;
$sender = ‘+983000505’;
$apiKey = ‘apikey’;
$payload = json_encode([
“code” => $patternCode,
“sender” => $sender,
“recipient” => $mobile,
“variable” => [
“verification_code” => $verificationCode
]
]);
$curl = curl_init(‘https://api2.ippanel.com/api/v1/sms/pattern/normal/send’);
curl_setopt_array($curl, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => ‘POST’,
CURLOPT_POSTFIELDS => $payload,
CURLOPT_HTTPHEADER => [
‘Accept: application/json’,
‘ApiKey: ‘ . $apiKey,
‘Content-Type: application/json’
],
CURLOPT_TIMEOUT => 10,
]);
$response = curl_exec($curl);
curl_close($curl);
if (curl_errno($curl)) {
echo ‘Curl error: ‘ . curl_error($curl);
exit;
}
$data = json_decode($response, true);
if (isset($data[‘error’])) {
echo ‘خطا در ارسال: ‘ . $data[‘error’][‘message’];
exit;
}
// ذخیره در دیتابیس
$stmt = $pdo->prepare(“INSERT INTO verifications (mobile, code, created_at, expire_at) VALUES (?, ?, NOW(), DATE_ADD(NOW(), INTERVAL 5 MINUTE))”);
$stmt->execute([$mobile, $verificationCode]);
echo “کد تایید ارسال شد به شماره: $mobile”;
✅ مرحله دوم: اعتبارسنجی کد وارد شده توسط کاربر
<?php
$pdo = new PDO(‘mysql:host=localhost;dbname=test;charset=utf8mb4’, ‘root’, ”);
$mobile = ‘+989120000000’; // از کاربر گرفته میشه
$inputCode = ‘12345’; // کدی که کاربر وارد کرده
$stmt = $pdo->prepare(“SELECT * FROM verifications
WHERE mobile = ? AND code = ?
AND status = ‘pending’
AND expire_at > NOW()
ORDER BY id DESC LIMIT 1″);
$stmt->execute([$mobile, $inputCode]);
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if ($row) {
// کد معتبره → تغییر وضعیت به verified
$update = $pdo->prepare(“UPDATE verifications SET status = ‘verified’ WHERE id = ?”);
$update->execute([$row[‘id’]]);
echo “✅ کد تایید معتبر است”;
} else {
echo “❌ کد تایید نامعتبر است یا منقضی شده”;
}
پیادهسازی OTP (One-Time Password) با PHP
1. تنظیم زمان انقضا برای کد تایید
کد تایید باید دارای یک زمان انقضا باشد تا از استفاده مجدد آن جلوگیری شود. معمولاً زمان انقضا 5 تا 10 دقیقه تنظیم میشود.
2. افزایش امنیت سیستم
- استفاده از HTTPS:
برای جلوگیری از دسترسی غیرمجاز به اطلاعات کاربران، از پروتکل HTTPS استفاده کنید. - جلوگیری از حملات Brute Force:
برای جلوگیری از تلاشهای مکرر برای حدس زدن کد تایید، میتوانید تعداد تلاشهای ناموفق را محدود کنید.
چالشهای رایج و راهحلها
1. مشکلات اتصال به API
مشکلاتی مانند قطعی شبکه یا اشتباه در پارامترهای ورودی میتوانند باعث عدم ارسال پیامک شوند. برای رفع این مشکلات، از لگگیری (Logging) و مدیریت خطاها استفاده کنید.
2. مدیریت خطاهای شبکه
برای مدیریت خطاهای شبکه، میتوانید از تلاشهای مجدد (Retry Mechanism) استفاده کنید.
آرتا پیامک: راهحل حرفهای برای ارسال پیامک کد تایید
اگر به دنبال یک پنل پیامکی قابل اعتماد هستید، آرتا پیامک بهترین گزینه برای شماست.

91691362 - 021
info[at]artapayamak.com
آرتا پیامک یکی از بهترین ارائهدهندگان پنل اس ام اس در ایران است که امکان ارسال پیامک تبلیغاتی و پیامک انبوه را با کمترین هزینه و بالاترین سرعت فراهم میکند. با استفاده از سامانه پیامک ما میتوانید پیامهای خود را به مخاطبان هدف ارسال کرده و بازدهی تبلیغات خود را افزایش دهید. جهت کسب اطلاعات بیشتر درباره تعرفهها و امکانات، به صفحه تعرفه پنل اس ام اس مراجعه کنید.
آرتا پیامک پیشرفتهترین پنل پیامکی جهت ارسال پیامک انبوه تبلیغاتی و ارسال پیامک وبسرویس خدماتی است.
کلیه حقوق مادی و معنوی برای آرتا پیامک محفوظ است.