تابع موضوعات المنتدى الانتساب تعليمات س - ج قائمة الأعضاء المفكرة بحث مواضيع اليوم إشارة الأقسام مقروءة

مواقع صديقة: تعلم البي اتش بي - تصميم نت - أفضل استضافة


عودة   منتدى بي اتش بي PHP > قسم لغة بي اتش بي PHP LANGUAGE > البرمجة الآمنة PHP Safe Coding


استبيان: كم تعطي هذا الدرس كتقييم؟
خيارات الاستبيان
كم تعطي هذا الدرس كتقييم؟

إضافة رد
 
LinkBack (5) أدوات الموضوع طريقة العرض
قديم 27-08-2007, 08:09 AM   5 links from elsewhere to this Post. Click to view. #1 (permalink)
مشرف قسم لغة بي اتش بي PHP
 
الصورة الرمزية لـ coder
 
تاريخ الانتساب: 24-12-2006
المكان: مصر
السن: 30
مشاركات: 1,724
مشاركات المدونة: 2
مستوى السمعة : 10
coder على طريق التميز و النجاح
Thumbs up [درس عملي] طريقة اضافة كود التحقق بالصورة CAPTCHA

السلام عليكم ورحمة الله وبركاته

ملحوظة: غير مسموح بنقل الدرس الى أي موقع آخر إلا مع ذكر المصدر ورابط لهذا الدرس

درس اليوم هو عن أداة تعتبر من أهم وأقوى الادوات في اي سكريبت يعتمد على تدخل الزوار سواء باضافة مشاركات أو تعليقات أو حتى بالبحث، وهي أداة CAPTCHA CODE أو التحقق البصري بالصورة.



وظيفتها هي التأكد أن من يقوم بملأ النموذج الخاص باضافة البيانات أو البحث هو بشر وليس سكريبت أو برنامج، مما يحفاظ على أمان السيرفر وعدم تكرار العملية بصورة كبيرة.

مثال عملي: انشاء كود اضافة تعليقات الزوار على المقال مع خاصية CAPTCHA
أولاً: ملف نموذج اضافة التعليق comment.php
كود PHP:
<form name="add.php" method="post">
الاسم: <input type="text" name="name" /><br />
التعليق: <textarea name="text" cols="30" rows="3"></textarea><br />
من فضلك أدخل الكود التالي: <img src="captcha.php"> <input type="text" name="captchacode" /><br />
<
input type="submit" name="submit" value="اضافة تعليق" />
</
form
الكود طبعا هو نموذج بطريقة POST مفهوم وواضح ،، أحببت أن أنوه الى هذه الجزئية فيه:
كود PHP:
<img src="captcha.php"
وهو الكود الخاص باظهار الصورة العشوائية، وجعلنا مصدر الصورة SRC هو اسم الملف الذي يقوم بتوليدها بحيث تنشأ عشوائيا في كل مرة يظهر فيها النموذج.

ثانياً: ملف انشاء صورة التحقق captcha.php
كود PHP:
<?
session_start
();
$text rand(10000,99999);
$_SESSION["captchacode"] = $text;
$height 25;
$width 65;
$image_p imagecreate($width$height);
$black imagecolorallocate($image_p000);
$white imagecolorallocate($image_p255255255);
$font_size 14;
imagestring($image_p$font_size55$text$white);
imagejpeg($image_pnull80);
?>
في السطر الأول بدأنا السيشن، وتكمن أهمية السيشن في أننا سنقوم بحفظ الرقم الموجود في صورة التحقق فيها لمقارنته مع ما سيدخله المستخدم في النموذج..
في السطر الثاني، قمنا بانشاء الرقم الذي سيتم كتابته في الصورة وهو رقم عشوائي بين 10000 الى 99999
في السطر الثالث وضعنا هذا الرقم العشوائي في السيشن، ليتم مقارنته مع ما سيدخله المستخدم في الخطوة التالية
في السطر الرابع حددنا ارتفاع الصورة
في السطر الخامس ع حددنا عرض الصورة
في السطر السادس أصدرنا أمر انشاء الصورة باستخدام العرض والارتفاع المحددين في السطر الثالث والرابع
في السطر السابع قمنا بتحديد اللون الأسود للصورة
في السطر الثامن قمنا بتحديد اللون الأبيض للصورة
في السطر التاسع قمنا بتحديد حجم الخط المستخدم
في السطر العاشر والحادي عشر الانشاء الفعلي للصورة وطباعتها للمتصفح


ثالثاً: ملف add.php (الاضافة الفعلية بقاعدة البيانات)
كود PHP:
<?
session_start
();
if(
$_POST['captchacode'] != $_SESSION['captchacode'] OR $_SESSION["captchacode"]==''
{
    die(
"خطأ في كود التحقق، من فضلك أعد المحاولة مرة أخرى");


$name htmlspecialchars($_POST['name']);
$text htmlspecialchars($_POST['text']);
mysql_query("INSERT INTO `comments` VALUES ('', '$name', '$text')");
echo 
"تم اضافة تعليقك بنجاح، شكرا لك..";
?>
في السطر الأول يتم متابعة السيشن السابقة
في السطر الثاني يتم التحقق ما اذا كانت النص الذي ادخله المستخدم غير مطابق للنص الموجود في السيشن (الموجود في الخطوة الثانية) فيتم طباعة رسالة خطأ تفيد خطأ في ادخال الكود..
أما في السطور التالية فهي عملية ادخال عادية الى قاعدة البيانات

رابعا: الجدول comments
كود:
CREATE TABLE `comments` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `name` varchar(255) NOT NULL default '',
  `comment` text NOT NULL,
  PRIMARY KEY  (`id`)
);
بهذا يكون قد اكتمل المثال كاملاً...
ويمكنك استدعاء الملف comments.php عن طريق المتصفح ليظهر لك نموذج اضافة التعليق وتبدأ بالتجربة

ارجو التطبيق واخباري بتجاربكم
كذلك بتطويراتحكم للأفضل واقتراحاتكم أو استفساراتكم
الدرس كامل بالمرفقات
تحياتي
محمود

ملحوظة: غير مسموح بنقل الدرس الى أي موقع آخر إلا مع ذكر المصدر ورابط لهذا الدرس
عرض الصور المرفقة
captcha.gif  
الملفات المرفقة
نوع الملف : zip capctah lesson.zip (1.3 كيلو بايت, 418 قراءة)
__________________
لضمان رد سريع على استفسارك أو موضوعك
* تأكد من البحث في المنتدى قبل أن تسأل
* احرص على أن تنتقي العنوان المناسب لموضوعك أو سؤالك
* قم بصياغة سؤالك بطريقة واضحة مع ذكر تجربتك ومكان الخطأ فيها
coder غير متصل   رد مع اقتباس
قديم 27-08-2007, 09:18 AM   #2 (permalink)
عضو فعال
 
تاريخ الانتساب: 08-06-2007
المكان: السعودية
مشاركات: 231
مستوى السمعة : 2
ff5006 على طريق التميز و النجاح
افتراضي رد : [درس عملي] طريقة اضافة كود التحقق بالصورة CAPTCHA

وعليكم السلام...

الله يجزاك خير على الدرس...
الله يعطيك العافيه.

وتم تقييم الدرس بخمس نجوم
__________________
:: php(); ::
ff5006 غير متصل   رد مع اقتباس
قديم 27-08-2007, 01:03 PM   #3 (permalink)
عضو فعال
 
تاريخ الانتساب: 10-02-2007
المكان: aLGERIA
مشاركات: 473
مشاركات المدونة: 2
مستوى السمعة : 2
aMINE سيحقق الشهرة بما فيه الكفاية قريباً
Lightbulb رد : [درس عملي] طريقة اضافة كود التحقق بالصورة CAPTCHA

و عليكم السلام ...

درس مهم و لا غنى عنه ، و تم التقييم ...

و أظن لو إستبدلنا هذه الأسطر ...

كود PHP:
$height 25;
$width 65;
$image_p imagecreate($width$height); 

بهذا السطر ...

كود PHP:
$image_p =imagecreatefromjpeg("captcha.jpg"); 
ستكون خلفية الكتابة هي الصورة المحددة ...

تحيتي...
aMINE غير متصل   رد مع اقتباس
قديم 27-08-2007, 01:19 PM   #4 (permalink)
عضو نشيط
 
تاريخ الانتساب: 12-07-2007
مشاركات: 109
مستوى السمعة : 2
php.ini على طريق التميز و النجاح
افتراضي رد : [درس عملي] طريقة اضافة كود التحقق بالصورة CAPTCHA

جزاك الله خير على الشرح المفصل
وكنت اتمنى التطبيق
بس مشكلتي اني مااعرف اركب مكتبة الصور على السيرفر الشخصي-_-
ياليت لو تتكرم علينا يااخ محمود وتشرح لنا طريقة تثبيتها او احد الاخوان يشرحها لنا
وجزاكم الله خير
php.ini غير متصل   رد مع اقتباس
قديم 27-08-2007, 06:21 PM   #5 (permalink)
مشرف قسم لغة بي اتش بي PHP
 
الصورة الرمزية لـ coder
 
تاريخ الانتساب: 24-12-2006
المكان: مصر
السن: 30
مشاركات: 1,724
مشاركات المدونة: 2
مستوى السمعة : 10
coder على طريق التميز و النجاح
افتراضي رد : [درس عملي] طريقة اضافة كود التحقق بالصورة CAPTCHA

اقتباس:
الكاتب : ff5006 عرض المشاركة
وعليكم السلام...

الله يجزاك خير على الدرس...
الله يعطيك العافيه.

وتم تقييم الدرس بخمس نجوم
شكرا لمرورك الكريم

اقتباس:
الكاتب : aMINE عرض المشاركة
و عليكم السلام ...

درس مهم و لا غنى عنه ، و تم التقييم ...

و أظن لو إستبدلنا هذه الأسطر ...

كود PHP:
$height 25;
$width 65;
$image_p imagecreate($width$height); 
بهذا السطر ...

كود PHP:
$image_p =imagecreatefromjpeg("captcha.jpg"); 
ستكون خلفية الكتابة هي الصورة المحددة ...

تحيتي...
شكرا على الاضافة الرائعة
اتمنى ان تجربها وتخبرنا فانا لم اجربها

اقتباس:
الكاتب : php.ini عرض المشاركة
جزاك الله خير على الشرح المفصل
وكنت اتمنى التطبيق
بس مشكلتي اني مااعرف اركب مكتبة الصور على السيرفر الشخصي-_-
ياليت لو تتكرم علينا يااخ محمود وتشرح لنا طريقة تثبيتها او احد الاخوان يشرحها لنا
وجزاكم الله خير
جزانا واياك أخي الكريم
ولكن اعتقد ان مكتبة الصور تأتي مركبة بصورة افتراضية على اغلب اصدارات php
اذا لم تكن عندك فاستخدم هذا السيرفر الشخصي بدلا مما تستخدم www.appservnetwork.com

تحياتي
__________________
لضمان رد سريع على استفسارك أو موضوعك
* تأكد من البحث في المنتدى قبل أن تسأل
* احرص على أن تنتقي العنوان المناسب لموضوعك أو سؤالك
* قم بصياغة سؤالك بطريقة واضحة مع ذكر تجربتك ومكان الخطأ فيها
coder غير متصل   رد مع اقتباس
قديم 27-08-2007, 07:31 PM   #6 (permalink)
عضو فعال
 
الصورة الرمزية لـ عبد الواحد البشيري
 
تاريخ الانتساب: 21-01-2007
المكان: المغرب
السن: 27
مشاركات: 477
مستوى السمعة : 2
عبد الواحد البشيري على طريق التميز و النجاح
افتراضي رد : [درس عملي] طريقة اضافة كود التحقق بالصورة CAPTCHA

ممتاز درس اكثر من رائع
__________________
المدونة www.bp.ma


لضمان رد سريع على استفسارك أو موضوعك

  1. تأكد من البحث في المنتدى قبل أن تسأل
  2. احرص على أن تنتقي العنوان المناسب لموضوعك أو سؤالك
  3. قم بصياغة سؤالك بطريقة واضحة مع ذكر تجربتك ومكان الخطأ فيها
عبد الواحد البشيري غير متصل   رد مع اقتباس
قديم 28-08-2007, 03:39 AM   #7 (permalink)
مطور منتديات mysmartbb
 
تاريخ الانتساب: 22-05-2007
المكان: Syria
مشاركات: 280
مستوى السمعة : 2
ايهاب الغزال على طريق التميز و النجاح
إرسال خطاب MSN إلى ايهاب الغزال إرسال خطاب Yahoo إلى ايهاب الغزال مخاطبة ايهاب الغزال بواسطة برنامج المحادثة سكايب ( Skype )
افتراضي رد : [درس عملي] طريقة اضافة كود التحقق بالصورة CAPTCHA

ماشاء الله ماشاء الله لاقوة الا بالله

قدمت فأبدعت وشرحت فبينت

استاذ قدير بكل معنى الكلمة لك مني الكثير من التقدير والاحترام

اخوك المحب

ايهاب الغزال
__________________

AJAX with PHP Soon
ايهاب الغزال غير متصل   رد مع اقتباس
قديم 04-09-2007, 07:58 PM   #8 (permalink)
عضو نشيط
 
الصورة الرمزية لـ sinator
 
تاريخ الانتساب: 18-08-2007
مشاركات: 70
مستوى السمعة : 2
sinator على طريق التميز و النجاح
افتراضي رد : [درس عملي] طريقة اضافة كود التحقق بالصورة CAPTCHA

شكرا على الدرس الرائع

من coder الاروع


اخوك سيناتور SINATOR
__________________

*................................................. ........*
*................................................. ........*
sinator غير متصل   رد مع اقتباس
قديم 05-09-2007, 12:06 AM   #9 (permalink)
عضو جديد
 
تاريخ الانتساب: 05-09-2007
مشاركات: 6
مستوى السمعة : 0
m.y.p.h.p على طريق التميز و النجاح
افتراضي رد : [درس عملي] طريقة اضافة كود التحقق بالصورة CAPTCHA

جميل جداااا مابرمجته يداك

الى الامام والمزيد من الدروس السهلة المبسطه يامشرفنا القدير
m.y.p.h.p غير متصل   رد مع اقتباس
قديم 15-09-2007, 11:53 AM   #10 (permalink)
عضو نشيط
 
تاريخ الانتساب: 22-07-2007
مشاركات: 61
مستوى السمعة : 2
mwafi على طريق التميز و النجاح
افتراضي رد : [درس عملي] طريقة اضافة كود التحقق بالصورة CAPTCHA

فعلا اضافة مميزة

وشكرا اخوي coder
mwafi غير متصل   رد مع اقتباس
إضافة رد


LinkBacks (?)
LinkBack to this Thread: http://www.montadaphp.net/t966/
الكاتب For Type التاريخ
ظ…ظ…ظƒظ† ط§ط­ط¯ ظٹط¶ظٹظپظ„ظٹ ظƒظˆط¯ ط§ظ„ captcha ظ„ط³ظƒط±ظٹط¨طھ (ط§طھطµظ„ ط¨ظ†ط§)طں :) - ط³ظˆط§ظ„ظپ ط³ظˆظپطھ This thread Pingback 26-09-2008 09:20 PM
غلط بكود الصورة ممكن المساعده - ::TRAIDNT FORUM:: This thread Refback 26-09-2008 12:48 AM
ط·ظ„ط¨ ظ…ظ† ظ…ط­طھط±ظپظٹ php ظƒظٹظپظٹط© ط¹ظ…ظ„ ظƒظˆط¯ ط§ظ„طھط­ظ‚ظ‚ - ط³ظˆط§ظ„ظپ ط³ظˆظپطھ This thread Pingback 25-09-2008 02:23 AM
طريقة اضافة كود التحقق بالصورة CAPTCHA This thread Refback 26-08-2008 12:21 AM
ط§ط±ظٹط¯ ظƒظˆط¯ ط§ظ„طھط­ظ‚ظ‚ ظ…ظ† ط§ظ„ظ…ط¯ط®ظ„ - ط³ظˆط§ظ„ظپ ط³ظˆظپطھ This thread Refback 18-08-2008 07:14 PM

زوار هذا الموضوع الآن : 1 (0 عضو و 1 ضيف)
 

(View-All Members who have read this thread : 48
3okl, A.M.J.A.D, Abu Rakan, Abu Rayane, مبتدئ فى البرمجه, أبومؤمل, محمد عمارة, محمدهلال, ميت احساس, مدردش متقاعد, aroon, azharhost.com, مهندس مصرى, boot, الأسطورة, العملاق, ابن رشد المصرى, coder, cross, database, بلال كيالي, بيرسونال, enigma, gant, gaser, GHOST, hossam2044, issam-rrr, يوسف الحمود, Kariro, man summits, Mr.PhP iRaQ, روعة.م, p!a_md5, q84q8y, rammstein, S P E E D, Sa3Q, safwatk, sihamad, Sinator Programmer, SORPHP, stareagle, the_traveller, the_unknown, toty2000, trialless, وعد العمر
أدوات الموضوع
طريقة العرض
عادي عادي

ضوابط المشاركة
غير مصرّح لك بنشر موضوع جديد
غير مصرّح لك بنشر ردود
غير مصرّح لك برفع مرفقات
غير مصرّح لك بتعديل مشاركاتك

وسوم vB : نشيط
كود [IMG] : نشيط
كود هتمل : خامل
Trackbacks are نشيط
Pingbacks are نشيط
Refbacks are نشيط
الانتقال السريع

مواضيع ذات صلة
الموضوع الكاتب المجلس المشاركات المشاركة الأخيرة
كلاس "التحقق بالصورة " لحماية الفورمز anas دروس متقدمة 15 12-11-2008 11:48 AM
[درس عملي] اضافة حقوق موقعك لآلاف الصور برمجياً coder دروس متقدمة 21 13-08-2008 02:16 AM
تأكيد الكود بالصورة همام نداف مشاكل وحلول PHP Errors & Troubleshooting 6 30-04-2008 11:42 AM
منتداكم أنقذني من فقد عملي :| qahmad مرحباً بالأعضاء الجدد :) 2 11-10-2007 07:34 PM
ممكن شرح خطوات عمل captcha؟ PGSC مشاكل وحلول PHP Errors & Troubleshooting 2 17-04-2007 12:43 AM


يمنع نقل أي من موضوعات المنتدى دون إذن كتابي مسبق من إدارة المنتدى، مع الشكر.
التوقيت حسب جرينتش +3. الساعة الآن 04:18 PM.