70٪ تخفیف ویژه جشنواره تابستانه توسینسو
پایان تخفیف تا:
مشاهده دوره‌ها
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); // نمایش تصویر
?>

به چه دلیل اعتبار سنجی نمی شود این دو کد در دو صفحه مختلف هستند

پرسیده شده در 1395/01/27 توسط

3 پاسخ

0

سلام Itpro ای عزیز

توی خط

if($_POST['r13']!=captcha.php)

به نظر می رسه captcha.php یک فایل است و نمی توان مقدار پست شده را با یک فایل php مقایسه کرد و جواب این مقایسه غلط خواهد بود

پاسخ در 1395/01/27 توسط
0

پس چگونه باید این اعتبار سنجی را انجام داد

پاسخ در 1395/01/28 توسط
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>";
  
}
}
?>

موفق باشید .

پاسخ در 1395/01/30 توسط

پاسخ شما