نمایش نتایج 1 تا 20 از 20

نام تاپیک: مشکل در ساخت captcha

  1. #1

    مشکل در ساخت captcha

    با یاد خدا
    سلام دوستان
    من در ساخت کد امنیتی به مشکل بر خوردم
    اول خودم خواستم بسازم با خطای زیر مواجه شدم
    بعد کدهای یکی دو تا کتاب رو تست کردم
    و همچنین کدهای تو نت رو اما همشون رو سیستم من خطای زیر رو میزنن
     "cannot be displayed because it contains errors"


    این هم یه سری از کد ها که تست کردم

    header('Content-type: image/png');
    $md5 = md5(microtime() * time() );
    $string = substr($md5, -5);
    $captcha = imagecreatefrompng("./capcha.png");
    $black = imagecolorallocate($captcha, 0, 0, 0);
    $line = imagecolorallocate($captcha,233,239,239);
    imageline($captcha,0,0,39,29,$line);
    imageline($captcha,40,0,64,29,$line);
    $_SESSION['key'] = md5($string);
    imagestring($captcha, 5, 20, 10, $string, $black);
    imagepng($captcha);



    $h=100;
    $w=300;
    $im=imagecreate($w,$h);
    $bc=imagecolorallocate($im,200,200,200);
    header('Content-Type: image/jpeg');
    imagejpeg($im);
    imagedestroy($im);


    درضمن تو فایل html هم من از تگ img استفاده کردم و ادرس فایل رو همین کدهای php زدم نشد

  2. #2
    کاربر دائمی آواتار 2undercover
    تاریخ عضویت
    تیر 1391
    محل زندگی
    خراسان رضوی
    پست
    1,471

    نقل قول: مشکل در ساخت captcha

    احتمالا کتاب خانه GD شما غیر فعال هستش و باید فعالش بکنین!

    توی فایل php.ini می تونید این کارو انجام بدید!

    با برداشتن کاراکتر ";" از اول این عبارت توی php.ini:

    extension=php_gd2.dll

  3. #3

    نقل قول: مشکل در ساخت captcha

    بعلاوه چون مستقیماً تصویر ساخته شده با GD رو میفرستین، باید فایلهاتون رو با کدگذاری UTF-8 without BOM ذخیره کنید و اولشون ob_start و آخرشون هم ob_end_flush رو صدا بزنید تا BOM برای مرورگر ارسال نشه. برای اطمینان، یکبار دستور header رو حذف کنید ببینید مرورگر چی نشون میده و خطای تولیدشده چیه و بعد از اطمینان از اینکه خطایی وجود نداره (یه مشت کارکتر عجیب و غریب باید ببینید)، اونوقت header رو بگذارین تا خروجی رو تبدیل به فرمت تصویر کنه.

  4. #4

    نقل قول: مشکل در ساخت captcha

    ببینید ما دو فایل داریم یکی 1.php یکی هم 2.htm
    حالا باید فایل 2 رو کد گذاری کنم با UTF-8 without BOM و
    فایل 1 رو در ابتدا و انتهای برنامه اون دو تابع رو فراخوانی کنم؟
    البته این رو هم بگم که قبل از این موضوع من وقتی header('Content-type: image/png'); رو دستکاری میکردم گاهی خروجی به شکل زیر میشد

    �PNG  IHDR�9$�W �IDATx����O]��܇N�)��* BX��"�[�Ę`\�p��'.��\�/�e�D�I ^"BR���tڹ�����I��y|z�i w> �=�������e��y����[@��IM��� %5A HM�R���)�+�}��q����çO ��-� Cv�O�^��(* CI����������� �µk׆-��ё DQ �� �a����`��d�(J�mQ�a� a���I ��e �P���ak9�t�0 c۶aAd��s��%-�+L�4M3 C�4���L��Jp��U�a<�SUu?iM�r rr���GGGE��3I����E���h 4�����{{{�jU�e������ I:��/_�, �0@&�IRRwH�dY�pbbb���z���팽 �aP�a������/^LNV����0 �q$I��߿�4��j �����^��H����r9�4��u ����du����ׯ_u]�ԍF���V�uxx������3`1 ]ڸP(pGӴ뺍F#‎!M]E��84Mx^˲��qܶmM������� ���e�B�`~~�V��8~xxxpp�j�._ ����N�`rr��l��� y��)`kkK�4���i��,  �X�- ��3ݙp����/_�;w�� ���!�fS�$]�s�ܰR�KKK�r�,�2I�4M�����/�b�ݖ$)���E�$A��N �={��s����u�d2�ߏ��� ����ׯEbrr���(�<�s]ײ,��ǩ�j�癦�l6UU�}?��Q�� �J��iB�8���A�X�WS���� ����Pј�����(�P���~6 %�u]]�!��Zmff�O+��h��,� � )\�u��h��˲lE����9L}��� ���ܜ��E��j�v���d2�,s7 11����������� I� �.\�}�v���UU+����>��ɓ' ��[677 �@�4M[�Ų���$���������q%�E ۶��H�$�b|��� ���A9oo,//������� p]�$IY��}�FӴ���bq��D�&X\\4M� q��\íV��FCUU� r�� ���������/_��r9�0\ץ(���z��l6)����J �wE�0LQ����Ñ����� z��ŋ��q��=�S�aY�wvv��� ��G�e����j��y�PQ��,h( OEA�MT������r9�u]�mE��F�������$ї $I�i��qi�=�,��yQoݺ5�I� ����nE�m���iZB��FGG� o�9��q��>|���˗X4��$ѡzXI $X^^�{���� �Ӓ$��0���[[[�z=��{�����ܻw���0�a� a}o*�����aA�t�WA���� ��m; C��� ���$I������������� w� �m'��4�4� x�_YYIh��3>>>33���.�"�0��X ��8���O�י��L�0 �0�FrU�z��j��`Yv�e����ٳ ��-UU����.]���� meevddDӴX���Z�vtt�y^&��y�fB� Q,--���p�����g�R������ I\�ijnܸ���.�r�������# ����j&����i��Lfww��n� �̔J%�a��z�P�f���A`�6I�� �������<��<�(J��R�� }��<�Cvvv&''Y�-�J�㜞���͡?A`�f6������ �|���~���0 4�$Ia���a��c��L�8�4M��� H��j5�0DQt]�ѣG��j5Ƒ��j�ZE�ŝ?kyyu����8� �4�V���,K�e� C�Hd�eQ����n۶�#S���,�2 ���4M��pF�$:��x׮][]]-�J� @���Q!�O�\ nܸ���k˲,�B�|6��ed�i�Qq�U �u���i۶Qח�y�\NT�����V+ Q��Qmş贋>���f�Y�� ��B���(�A@�p�iZ&�)�J�v� X,BQ�-vЪ���!|��q��i� �z틒$����k�'�mg�Y�4��h� \�"��`��.]�,?x��A\C�l���E˲L��<��� ��߉Z�T�}���x�X�6��Z�� �����ׯAP��1 �$���t�;�FQ�;S�%���Y]]eY5���mll�3I�4M�x��:��v ����iUU]�u��7O�4Y�Q�E\�R~&),..��2M� w���g(��EQ�,+���H��XnE� L��9����_9�l��TŶ�J�2l-'g���� ð�j�Z�ak�;�������3��$M j���)� R@j��� �&H� R�����g�IEND�B`�

  5. #5

    نقل قول: مشکل در ساخت captcha

    فایل 2 که داره عکس رو نشون میده بهش کاری نداریم. فایل 1 باید هم UTF-8 without BOM باشه و هم ob_start در ابتدا و ob_end_flush در انتهاش صدا زده بشه.
    موفق باشید.

  6. #6

    نقل قول: مشکل در ساخت captcha

    مشکل حل نشد
    فکر کنم کار من اشتباه باشه
    ببینید من اومدم تو فایل 1.php کد زیر رو نوشتم

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8 without BOM" />
    <title>Untitled Document</title>
    </head>
    <body>
    <?php
    ob_start();
    Header('Content-type: image/png');
    $im=ImageCreateFromPNG('capcha.png');
    ImagePng($im);
    ob_end_flush();
    ?>
    </body>
    </html>


    تو فایل اول هم در تگ img ادرس عکس رو فایل 1.php قرار دادم
    خروجی با دستکاری header با به شکل همون حروف نا مشخص میشه یا مثل عکسی که نمیتونه لود بشه به شکل زیر
    ca.png
    یه سوال دیگه اینکه ایا عکس باید با اجرای 1.php هم اجرا بشه یا اینکه از فایل 2.html استفاده بشه
    من در کد بالا فقط عکس رو که قبلا داشتم لود کردم و خواستم اون نمایش داده بشه بدون هیچ دستکاری

  7. #7
    کاربر دائمی آواتار 2undercover
    تاریخ عضویت
    تیر 1391
    محل زندگی
    خراسان رضوی
    پست
    1,471

    نقل قول: مشکل در ساخت captcha

    1. ob_start رو در ابتدای صفحه قبل از اینکه حتی تگ html رو باز کرده باشید فراخوانی کنید!

    2. توی فایل PHP تون نباید کد html داشته باشید! پس همه ی اون کد های html رو از صفحه ی 1.php پاک کنید!


  8. #8

    نقل قول: مشکل در ساخت captcha

    خب وقتی تگ های html رو پاک کنم اون تابع ob_start خود به خود در خط اول قرار میگیره نکته بعد اینکه پس این charset=UTF-8 without BOM" رو کجا پیاده سازی کنم؟

  9. #9
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    بهمن 1387
    سن
    37
    پست
    732

    نقل قول: مشکل در ساخت captcha

    نقل قول نوشته شده توسط one hacker alone مشاهده تاپیک
    مشکل حل نشد
    فکر کنم کار من اشتباه باشه
    ببینید من اومدم تو فایل 1.php کد زیر رو نوشتم

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8 without BOM" />
    <title>Untitled Document</title>
    </head>
    <body>
    <?php
    ob_start();
    Header('Content-type: image/png');
    $im=ImageCreateFromPNG('capcha.png');
    ImagePng($im);
    ob_end_flush();
    ?>
    </body>
    </html>


    تو فایل اول هم در تگ img ادرس عکس رو فایل 1.php قرار دادم
    خروجی با دستکاری header با به شکل همون حروف نا مشخص میشه یا مثل عکسی که نمیتونه لود بشه به شکل زیر
    ca.png
    یه سوال دیگه اینکه ایا عکس باید با اجرای 1.php هم اجرا بشه یا اینکه از فایل 2.html استفاده بشه
    من در کد بالا فقط عکس رو که قبلا داشتم لود کردم و خواستم اون نمایش داده بشه بدون هیچ دستکاری
    نمیدونم چرا ایجا دارید اجیاد فایل میکنید !
    برای نشون دادن فایل عکس باید از تگ img استفاده کنید :
    <img src="file_img.php" />

  10. #10
    کاربر جدید آواتار facefeed
    تاریخ عضویت
    خرداد 1391
    محل زندگی
    ایران - گیلان - لاهیجان
    پست
    20

    نقل قول: مشکل در ساخت captcha

    نقل قول نوشته شده توسط one hacker alone مشاهده تاپیک
    خب وقتی تگ های html رو پاک کنم اون تابع ob_start خود به خود در خط اول قرار میگیره نکته بعد اینکه پس این charset=UTF-8 without BOM" رو کجا پیاده سازی کنم؟
    سلام ، به نظرم نظر مهندش شهرکی عزیز این بود که شما فایل php رو با یه ادیتور مناسب مثل notepad++ باز کنید و از منوی charset گزینه utf8 without bom رو انتخاب کنید
    اگر جواب نداد ، برگردونید به حالت اول، محتوای فایل رو کات کنید ، charset رو روی utf8 without bom تنظیم کنید و محتوای فایل رو paste کنید

  11. #11

    نقل قول: مشکل در ساخت captcha

    اقا فایلم رو به شکلی که گفتین utf8 without bom کردم و از این لحاظ مطمئن هستم
    اما باز جواب نمیده
    الان تمام حرف ما سر این فایل php ِ یه دیگه؟ خوب یکی ازدوستان که که میدونه تو سیستمش این کد جواب میده فایلشو اینجا بزاره اگه از اون باشه باید رو سیستم من جواب بده دیگه بعد من خودم میشینم تکلیفشو روشن میکنم اگه از اونم کار نکرد دیگه وقتمو رو این فایل نزارم چوون من الان موندم مشکل از کجاس
    کتابخانه gd2 هم فعال هست

  12. #12

    نقل قول: مشکل در ساخت captcha

    دوستان کسی نیست کمک کنه تکلیف این رو روشن کنیم؟

  13. #13
    کاربر دائمی
    تاریخ عضویت
    آذر 1390
    محل زندگی
    کرمان
    پست
    1,461

    نقل قول: مشکل در ساخت captcha

    سلام این کد خودتون درست؟
    <?php
    session_start();
    error_reporting(E_ALL);
    ini_set('error_reporting', E_ALL);
    header('Content-type: image/png');
    $md5 = md5(microtime() * time() );
    $string = substr($md5, -5);
    $captcha = imagecreatefrompng("./captcha.png");
    $black = imagecolorallocate($captcha, 0, 0, 0);
    $line = imagecolorallocate($captcha,233,239,239);
    imagestring($captcha, 5, 20, 10, $string, $black);
    $_SESSION['key'] = md5($string);
    imagepng($captcha);
    imagedestroy($captcha);
    ?>

    اما شما باید یه عکس به نام captcha.png که پیش زمینه کپچا هست رو در کنار عکس داشته باشید.
    الان من تست کردم درست شد.

  14. #14

    نقل قول: مشکل در ساخت captcha

    فایل 2 که کار تولید CAPTCHA رو انجام میده، نباید هیچ کد HTML توش باشه. فقط خروجی ImagePNG باید توی فایل باشه. کدی که آقا امین گذاشتن رو بینید. بعد توی فایل 1 که قراره تصویر تولیدشده توسط فایل 2 رو نشون بده اینطوری عمل کنید:
    کد HTML:
    <img src="2.php"/>

  15. #15
    کاربر دائمی
    تاریخ عضویت
    آذر 1390
    محل زندگی
    کرمان
    پست
    1,461

    نقل قول: مشکل در ساخت captcha

    فایل کامل رو از زیر دانلود کنید.
    captcha.zip

  16. #16

    نقل قول: مشکل در ساخت captcha

    مشکل حل شد
    بابا من فکر میکردم این شکل ادرس دهی ./captcha.php میره از روت میخونه برا همین مثل ادرس دهی های دیگه captcha.php مینوشتم برا همین جواب نمیداد
    ممنون از همه گی
    در ضمن باید با اجرای هر دو فایل php ,html عکس لود بشه که برای من شد
    برنامه بدون اون دو تابع که در ابتدا و انتها باید نوشته میشد کار کرد اما میخوام بدونم کاربردشون چیه؟
    و این ادرس دهی چرا به این شکله؟
    و اگه من بخوام حروفم کج بشن چکار باید بکنم الان حروفم کنار هم و منظم هست

  17. #17
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    بهمن 1387
    سن
    37
    پست
    732

    نقل قول: مشکل در ساخت captcha

    میتونید از راههای زیادی استفاده کنید !
    اما بهترین راه و راحتتری راهش اینه که از فونت های کج و ناخوانا استفاده کنید ! اینطوری خیلی بهتره و راحتتر هست :)

  18. #18

    نقل قول: مشکل در ساخت captcha

    کد نمونه که من گذاشتم رو ببینید. حروف رو بهم میریزه.
    فایل های ضمیمه فایل های ضمیمه

  19. #19

    نقل قول: مشکل در ساخت captcha

    کدتون رو دیدم اما کپتچای شما ترکیبی از حروف و عدد بود نه کج بودن یا سرو ته بودن کاراکتر ها

  20. #20

    نقل قول: مشکل در ساخت captcha

    شرمنده نسخه قدیمی رو گذاشته بودم. این جدیده رو چک کنید. نمونه اجراش رو توی این لینک میتونید ببینید.
    فایل های ضمیمه فایل های ضمیمه

تاپیک های مشابه

  1. مشکل در ساخت دیتابیس
    نوشته شده توسط Ali_Mor در بخش PHP
    پاسخ: 13
    آخرین پست: پنج شنبه 22 مهر 1395, 21:13 عصر
  2. مشکل در ساخت setup
    نوشته شده توسط حامد حامدی در بخش Setup و Deployment
    پاسخ: 6
    آخرین پست: شنبه 20 فروردین 1384, 21:24 عصر
  3. مشکل در ساخت شبکه با استفاده از کابل لینک
    نوشته شده توسط Anon در بخش شبکه و Networking‌
    پاسخ: 1
    آخرین پست: شنبه 20 فروردین 1384, 06:56 صبح
  4. مشکل در ساخت ویرایگر html در vb.net
    نوشته شده توسط kamkam در بخش VB.NET
    پاسخ: 1
    آخرین پست: سه شنبه 10 شهریور 1383, 09:09 صبح
  5. مشکل در ساخت دیتابیس جدید
    نوشته شده توسط komeil64 در بخش SQL Server
    پاسخ: 1
    آخرین پست: سه شنبه 29 اردیبهشت 1383, 16:09 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •