0
اعتبارسنجی نشدن کد امنیتی در PHP
من کد امنیتی ای را در php ساختم ولی این کد اعتبار سنجی نمی شود و مدام پیغام NNNO را می دهد
<input type="hidden" name="p4" value="$_SESSION['captcha']" >
<?php
if(isset($_POST['r13']))
{
echo $_SESSION['captcha'];
if($_POST['r13']!=captcha.php)
{
echo "<p class='bg-danger text-right' id='tr1'>NNNO</p>";
}
}
?>
کد های تصویر امنیتی
<?php
session_start(); // شروع یک نشست
$number = rand(100,999999); // ایجاد یک عدد تصادفی
$_SESSION['captcha'] = $number; // ذخیره عدد در نشست
$img = imagecreate(150,30); // ایجاد یک تصویر 30×150
imagecolorallocate($img,255,255,255); // ایجاد رنگ پس زمینه
$color=imagecolorallocate($img,0,0,0); // ساخت یک رنگ
imagettftext($img,30,0,0,26,$color,"bmehr.ttf",$number); // وارد کردن عدد تصادفی در تصویر
header("content-type: image/png"); // تعیین نوع فایل خروجی
imagepng($img); // نمایش تصویر
?>
به چه دلیل اعتبار سنجی نمی شود این دو کد در دو صفحه مختلف هستند
3 پاسخ
0
سلام Itpro ای عزیز
توی خط
if($_POST['r13']!=captcha.php)
به نظر می رسه captcha.php یک فایل است و نمی توان مقدار پست شده را با یک فایل php مقایسه کرد و جواب این مقایسه غلط خواهد بود
0
پس چگونه باید این اعتبار سنجی را انجام داد
0
سلام .
ببینید شما در فایل captcha.php کد کپچارو ساختید و در نشستی ( SESSION ) به نام captcha ذخیره کردید .
حالا در فرمی کاربر باید کد امنیتی رو وارد کنه ، باید کد امنیتی که کاربر وارد کرده رو با کدی که داخل نشست کپچا ذخیره کردید مقایسه کنید .
برای مثال :
<?php
if(isset($_POST['r13']))
{
if($_POST['r13'] != $_SESSION['captcha'])
{
echo "<p class='bg-danger text-right' id='tr1'>NNNO</p>";
}
}
?>
موفق باشید .