سلام. این نحوه اضافه کردن کد امنیتی نیست. شما ابتدا در یک تابع، یا کلاس باید این کد رو بسازید و مقداردهی کنید در Session . به عنوان مثال من یک فایل به نام captcha.php می سازم و کدهای زیر رو می نویسم :
<?php session_start(); $text = rand(10000,99999); $_SESSION["vercode"] = $text; $height = 25; $width = 65; $image_p = imagecreate($width, $height); $black = imagecolorallocate($image_p, 0, 0, 0); $white = imagecolorallocate($image_p, 255, 255, 255); $font_size = 14; imagestring($image_p, $font_size, 5, 5, $text, $white); imagejpeg($image_p, null, 80); ?>
بعد در فرم ثبت نام، هر جا که خواستم کد رو نشون بدم، یک تگ img درست می کنم ، و src اون رو برابر captcha.php قرار می دم. در واقع به جای مسیر یک عکس، شما مسیر فایل php رو می دید
<form action="register.php" method="post"> Comment: <textarea name="coment"></textarea> Enter Code <img src="captcha.php"><input type="text" name="vercode" /> <input type="submit" name="Submit" value="Submit" /> </form>
خب حالا در فایل register.php ، مقدار کد امنیتی وارد شده در فیلد، که توسط کاربر وارد شده رو، با مقدار کد امنیتی که در Session ذخیره کردی، مقایسه می کنی :
session_start(); if ($_POST["vercode"] != $_SESSION["vercode"] OR $_SESSION["vercode"]=='') { echo '<strong>Incorrect verification code.</strong>'; } else { // add form data processing code here echo '<strong>Verification successful.</strong>'; };
تمام شد. به همین سادگی، به همین راحتی. دیگه از اون کدها ننویس