• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل نمایش captcha
#1
Question 
سلام و خسته نباشید خدمت همه عزیزان...
من یه تازه کارم در php ممنون می شم کمکم کنید...
من یه کد نوشتم که کد captcha بسازه بعد این کد رو به عنوان منبع یه تصویر قرار دادم اما تصویر نشون داده نمی شه...
کد captcha :
کد:
<?php
session_start();

$image=imagecreate(150,100);

$bgcolor=imagecolorallocate($image,255,255,0);
$txtcolor=imagecolorallocate($image,0,0,255);

imagefill($image,0,0,$bgcolor);

for($i=1;$i<=6;$i++)
{
    $randval=mt_rand(1,2);
    
    switch($randval)
    {
        case 1:
            $randchar=mt_rand(97,122);
        break;
        
        case 2:
            $randchar=mt_rand(65,90);
        break;
    }
}

$_SESSION['imagetext']=chr($randchar);
$randtext[]=chr($randchar);

imagechar($image,"1","20","13",$randtext[0],$txtcolor);
imagechar($image,1,20,20,$randtext[1],$txtcolor);
imagechar($image,1,20,1,$randtext[2],$txtcolor);
imagechar($image,1,20,50,$randtext[3],$txtcolor);
imagechar($image,1,20,137,$randtext[4],$txtcolor);
imagechar($image,1,20,19,$randtext[5],$txtcolor);

header("content-type: image/jpeg");
imagejpeg($image);


?>

حال فایل بالا به عنوان منبع تصویر در تگ img قرار دادم...
کد:
<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1252" >

<title>imageverification</title>
</head>

<body>
<p align="center"><img src="securityimage.php" /></p>
<br>
<form method="post"  action="image.php" target="_self" >
Enter the code here:<input type="text" name="code" ><br>
<input type="submit" name="submit" value="check"></form>
</body>
</html>


مشکل اینجاست که تصویر ساخته شده در فایل captcha نشون داده نمی شه..
ممنون می شم کمک کنید..
پیشاپیش ممنون به خاطر راهنمایی هاتون...
اگر جای نامناسبی پست قرار دادم مدیر ببخشه چو جای بهتری پیدا نکردم!
تا یادگیری در حد کمال پیش خواهم رفت!
Blush
  پاسخ
تشکر شده توسط :
#2
.سلام
اگه خط زیر رو کامنت می کردی خودش خطا رو برات نشون می داد :
کد پی‌اچ‌پی:
header("content-type: image/jpeg"); 
اگه این جوری بنویسی درست می شه! البته تصویر جالبی در نمیاد باید مختصات کاراکترا رو درست کنی :
کد پی‌اچ‌پی:
<?php
session_start
();
error_reporting(E_ALL);
ini_set('display_errors'1);


$image=imagecreate(150,100);

$bgcolor=imagecolorallocate($image,255,255,0);
$txtcolor=imagecolorallocate($image,0,0,255);

imagefill($image,0,0,$bgcolor);

for(
$i=1;$i<=6;$i++)
{
    
$randval=mt_rand(1,2);
    
    switch(
$randval)
    {
        case 
1:
            
$randchar=mt_rand(97,122);
        break;
        
        case 
2:
            
$randchar=mt_rand(65,90);
        break;
    }
    
$randtext[]=chr($randchar);
}
$_SESSION['imagetext']=  implode('',$randtext);
imagechar($image,"1","20","13",$randtext[0],$txtcolor);
imagechar($image,1,20,20,$randtext[1],$txtcolor);
imagechar($image,1,20,1,$randtext[2],$txtcolor);
imagechar($image,1,20,50,$randtext[3],$txtcolor);
imagechar($image,1,20,137,$randtext[4],$txtcolor);
imagechar($image,1,20,19,$randtext[5],$txtcolor);

header("content-type: image/jpeg");
imagejpeg($image); 
  پاسخ
تشکر شده توسط : mojtaba.sln


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان