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>"; } } ?>
موفق باشید .