شوّيت: شبكة كرة قدم اجتماعية




العودة   سوالف سوفت > سوالف برمجة المواقع وتطويرها > الويب والويب 2.0 والـ Semantic Web
التسجيل المدوّنات البحث مشاركات اليوم جعل الأقسام مقروءة

موضوع مغلق
 
LinkBack أدوات الموضوع
عضو نشيط جدا
#1  
تـــــعلم وافـــــهم (1)

السلام عليكم

بالتاكيد ان اغلبنا شاهد في موقع ياهو او هوتميل او اى موقع تجارى
اثناء عملية التسجيل
انك تمر بمرحلة الصورة العشوائية والتى تحتوى على ارقام وحروف يجب عليك ادخالها كما في الصورة حتى تتم عملية التسجيل

اذا لم ترى ذلك من قبل او لم تفهم قصدي تفضل هنا
http://ardalsharq.com/mail/111.php
وبالتاكيد ايضا سالت نفسك
كيف يتم تكوين الصورة هذه وهل هيا صورة متعددة موجودة اساسا بالموقع ؟
وكيف يتم تمييز الحروف التى تظهر على الصورة بينما تقوم انت بادخالها من لوحة المفاتيح ؟

الان سوف اقوم بشرح كيفية عمل ذلك بواسطة php
ولكن لا تتعجل
سوف اقوم بشرح الاكواد خطوة خطوة ثم وضع الكود كاملا
وسوف اضع ملف مرفق يحتوى البرنامج كاملا
سوف نستخدم الجلسات (session) في هذا السكربت البسيط

في البدايه نخبر السرفر اننا بصدد عملية تكوين صورة
مع تحديد نوع الصورة
ويكون ذلك كالاتى


كود PHP:


<?php 
 
/*ارسال الهيدر*/ 
Header("Content-Type: image/png"); 
?>
اذا اردت استخدام الامتداد jpg فقط غيرpng في الكود بالاعلى الى jpg

الان تريد ان تعرف كيف سنقوم بتكوين الصورة
ولكن مهلا في البدايه يجب وضع كود السيشن او الجلسه

كود PHP:
<?php 
/* بداية الجلسة. */ 
session_start(); 

/*سوف نقوم بتعريف هذا المتغير لاحقا.*/ 
$new_string

/*تسجيل المتغير الخاص بالجلسة لكى نتمكن من اسختدامه بعد ذلك. */ 
session_register('new_string'); 
?>
ما معنى هذا الكود
فقط بدأنا دالة السيشن
واضفنا متغير جديد بدون تحديد

الان نبدأ الكود الخاص بانشاء الصورة
كود PHP:

<?php 
/* انشاء الصورة*/ 
/*الرقم الاول هو عرض الصورة والرقم الثانى هو الارتفاع*/ 
$im ImageCreate(20040);   
?>
الان وضعت المتغير im كرمز سوف اقوم باستخدامه للتعبير عن الصورة طوال الدرس
وحددنا ابعاد الصورة باستخدام الدالة image create

ولكن هل هيا صورة بلا الوان ؟؟؟؟؟؟
لا الان سوف نجعلها اكثر حيوية وحركة

كود PHP:
php 
/*نقوم بتعين لونين مختلفين للاستخدام في الصورة */ 
$white ImageColorAllocate($im255255255); 
$black ImageColorAllocate($im000); 
?> 
الان استخدمنا المتغييرن white and black
ويمكن تغيير الالوان بتغيير قيم الارقام في الكود
الان
لدينا صورة im تحتوى على لونين white و black وابعادها 200* 40
الان ننتقل لمرحلة اخرى وهي عمل الكود العشوائي للارقام والحروف التي ستظهر على الصورة باستخدام نظام md5 للتشفير ولكن لن نتطرق لكيفية عمل نظام التشفير لانه خارج نطاق عملنا الان

كود PHP:
<?php 
/*توليد الكود العشوائى.*/ 

srand((double)microtime()*1000000);  

/*تشفير الكود وتحويله لارقام وحروف */ 

$string md5(rand(0,9999));  

/*الان نحدد ثلاث خيارات المتغير – عدد الخانات التى يتم جلبها من المتغير – عدد الحروف والارقام التي ستظهر وتضمن داخل المتغير الجديد وهي هنا رقم 5.*/ 
$new_string substr($string175);  
?>
الان تعالوا نعيد تنظيم الالوان والاكود داخل الصورة

او تلويين الصورة
كود PHP:
<?php 
 
/*fill image with black*/ 
ImageFill($im00$black); 
?>
الان قمنا بتلويين الصورة بالكامل بالمتغير بلاك وهو اللون الاسود كما حددنا قيمته اعلى

الان اين سنكتب على الصورة
هل نبدأ من المنتصف ام من اليسار ؟
ابعاد الصورة هي 200 * 40
اذن احداثي الركن السفلي الايمن هو 200,40
اذن فليكن الكود في المنتصف فتكون احداثي نقطة البداية للكتابه
80 و 10 مثلا
كود PHP:
<?php 

ImageString
($im58010$new_string$white); 
?>
الان نتعرف ماذا كتبنا بالكود اعلاه
اول متغير هو الصورة im
الثاني هو حجم الخط يمكن استخدام اى رقم من 1 الى 5
80 و 10 احداثي نقطة بداية الكتابه على الصورة
الخامس هو الكود الذي قمنا بتشفيره وجلبة من دالة التشفير
السادس هو لون خط الكتابه وهو هنا اللون الابيض

الان انتهينا من كل معلومات الصورة التي نريد انشائها

فقط يتبقى ان نعطيها اسم يمكن استخدامه في أي مكان في الصفحة مثلها مثل أي صورة عادية
كود PHP:
<?php 
 
/*الاعداد النهائي للصورة*/ 
ImagePNG($im"verify.png"); 
ImageDestroy($im);  
?>
الان اعطينا الصورة اسم verify.png
فقط قمنا بتحويل كافة المعلومات التي قمنا بادخالها للمتغير im الى صورة وسميناها اسم جديد

ثم استخدمنا دالة image destroy
هذه الخطوة فائدتها :
تحرير ذاكرة السرفر من البيانات المدخلة
(( يا فرحة صاحب السرفر على هذه الخطوة ))
قد يرسل لك هدية بسبب استخدامك هذه الدالة


الان الكود النهائي
بعد تجميع كل هذه الخطوات
كود PHP:
<?php 
 
/*ارسال الهيدر*/ 
Header("Content-Type: image/png"); 

/* بداية الجلسة. */ 
session_start(); 

/*سوف نقوم بتحديد المتغير لاحقا.*/ 
$new_string

/*ربط المتغير. */ 
session_register('new_string'); 

/*كود تعريف صفحة اتش تى ام ال عادية .*/ 
echo "<html><head><title>verify</title></head>"
echo 
"<body>"
/* تجهيز الصورة*/ 
$im ImageCreate(20040);  

/*تحديد الوان الصورة*/ 
$white ImageColorAllocate($im255255255); 
$black ImageColorAllocate($im000); 

/*انشاء الكود العشوائي.*/ 

srand((double)microtime()*1000000);  

/*تشفير المتغير او الكود*/ 
$string md5(rand(0,9999));  

/*انشاء المتغير الجديد. */ 
$new_string substr($string175); 

 
/*تلوين خلفية الصورة باللون الاسود*/ 
ImageFill($im00$black); 

 
/*تحديد حجم الخط واحداثي نقطة بدء الكتابه ولون الخط */ 
ImageString($im58010$new_string$white); 

/* اعداد الصورة النهائية لكى تكون جاهزة للعرض في المتصفح*/ 
ImagePNG($im"verify.png"); 
ImageDestroy($im);  
?>
تابع <<<<<>>>>>>>>






__________________
فقط قم بزيارتنا ولن تندم

http://ardalsharq.com
arabawy is offline   قديم 07-05-2003, 02:00 AM
عضو نشيط جدا
#2  

الان كيف استخد هذا كله ؟
او كيف اضمنه ضمن برنامج او صفحة او سكربت


حسنا

1-قم بعمل ملف جديد بي اتش بي
2-ضع في الملف الكود السابق كاملا
3-ضع كود النموذج التالي اسفل الكود السابق في نفس الملف

كود PHP:
<?php 
/*نقوم بتضمين الصورة مثلها مثل أي صورة عادية.*/ 
echo "<img src=\"verify.png\">"
echo 
"<br><br>"
echo 
" من فضلك ادخل الكود الموجود في الصورة ولاحظ حساسية الارقام والحروف من حيث كبيرة او صغيرة  "
echo 
" <form action=\"formhandler.php\" method=post>"
echo 
"<input name=\"random\" type=\"text\" value=\"\">"
echo 
"<input type=\"submit\">"
echo 
"</form>"
echo 
"</body>"
echo 
"</html>"
?>
الان نحتاج لملف اخر
وقد اسميناه في الكود بالاعلى formhandler.php

وضع الكود التالي في الملف الجديد
كود PHP:
<?php 
/*بدء الجلسه التى قمنا بعملها في الملف الاول*/ 
session_start();   
$random trim($random); 

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

/*الان نقوم باستدعاء الممتغير نيو سترينج والذي قمنا بتسجيله داخل الجلسه او السيشن في الصفحة السابقه ويعود هنا بنفس قيمته ثم نقوم بمقارنتة بالمتغير راندوم .*/ 
if ($new_string == $random){ 
echo 
"شكرا لك الكود الذي ادخلته صحيح "

else{ 
echo 
"الكود خطأ فضلا ارجع للخلف واعد المحاولة."

?>
والان انتهى

الملف المرفق
يحتوى السكربت وشرح كل خطوة
ويمكن مشاهدة مثال على السكربت هنا
http://ardalsharq.com/mail/111.php

ملحوظة @@@@@@@@@@@@@@@@
اذا ظهرت رساله خطا
can`t open verify.png for writing
قم برفع اي صورة لديك في نفس مجلد السكربت واعد تسميتها الى نفس الاسم واجعل تصريحها 777






الملفات المرفقة
نوع الملف: zip image creator.zip‏ (1.5 كيلوبايت, 71 مشاهدة)
__________________
فقط قم بزيارتنا ولن تندم

http://ardalsharq.com
arabawy is offline   قديم 07-05-2003, 02:05 AM
عضو نشيط جدا
#3  

ما شاء الله تبارك الله
جزاك الله خيرا يا اخي والله انه درس رائع جدا

لكن السؤال الذي يطرح نفسه وما زال .......
لماذا يستخدمون هذه الطريقة ما الفائدة؟؟؟؟!!!!



وشكرا لك






almonzer is offline   قديم 07-05-2003, 02:35 AM
عضو سوبر نشيط
#4  

جزاك الله خير
درس رائع جدا

==========
لكن السؤال الذي يطرح نفسه وما زال .......
لماذا يستخدمون هذه الطريقة ما الفائدة؟؟؟؟!!!!
=========
هذه الطريقة للحماية من ربط مع فورم خارجي مع الفورم






أبو الوليد is offline   قديم 07-05-2003, 04:15 AM
مشرف اقسام التطوير و الشبكات و الاستضافة
#5  

يعطيك الف عافيه على هالدرس المميز






__________________
استخدم خاصية تنبيه المشرفين للضرورة وعند ملاحظة موضوع يخالف قوانين منتديات سوالف وسيتم مراجعة الموضوع او المشاركة المبلغ عنها على الفور
Net Hunter is offline   قديم 07-05-2003, 07:53 AM
مشرف
#6  

ممتاز أخوي ، درس مميز






__________________
الحالة في سوالف : غير نشط


لاَ اِلَهَ اِلاَّ اَنْتَ سُبْحَانَكَ اِنِّي كُنْتُ مِنَ الظَّالِمِينَ

الألفاظ هي الثياب التي ترتديها أفكارنا، لذا ..يجب ألا تظهر أفكارنا في ثياب رثة بالية
محمود المسعودي is offline   قديم 07-05-2003, 07:59 AM
عضو سوبر نشيط
#7  

يعطيك العافية أخوي بالفعل هذا الدرس جميل ولكن اكرر سؤال الإخوة ماهي الفائدة من هذا البرنامج ؟؟

أرى استخداماته كثر في بعض المواقع ولكن لماذا ؟؟

تحياتي ياعزيزي،،






B2S is offline   قديم 07-05-2003, 09:26 AM
عضو فعال
#8  

إقتباس:
رد مقتبس من Net Hunter
يعطيك الف عافيه على هالدرس المميز
لماذا يستخدمون هذه الطريقة ما الفائدة ؟






__________________

أطلبوا العلم من المهد الى اللحد
________________________________________________________________________
:::::::::: الحدث العربي :::::::::: دليل المعارض العربية :::::::::: http://www.arabevent.com ::::::::::
arabevent is offline   قديم 07-05-2003, 11:41 AM
مشرف اقسام التطوير و الشبكات و الاستضافة
#9  

يمكن عشان يثبتون لهم ان الي يعمل ساين اب صحيح عقلياَ وينقل الكود مثل ما هو
وفي برامج تعمل ساين اب دون الرجوع للمواقع من الاصل عشان يكون الساين اب سريع يمكن هالطريقة عشان منع مثل هذه الاشياء "


تحياتي






__________________
استخدم خاصية تنبيه المشرفين للضرورة وعند ملاحظة موضوع يخالف قوانين منتديات سوالف وسيتم مراجعة الموضوع او المشاركة المبلغ عنها على الفور
Net Hunter is offline   قديم 07-05-2003, 01:45 PM
عضو نشيط جدا
#10  

إقتباس:
رد مقتبس من Net Hunter
يمكن عشان يثبتون لهم ان الي يعمل ساين اب صحيح عقلياَ وينقل الكود مثل ما هو

تحياتي

حلوة

هذا كان راي اخوي الصغير






almonzer is offline   قديم 07-05-2003, 01:49 PM
عضو نشيط جدا
#11  

شكرا جزيلا على الدرس الأكثر من رائع

وبالفعل كنت اعتقد ان هذا للتأكد من أن المسجل صحيح عقلياً !!






__________________
اشهد أن لا إله الا الله وان محمد عبد الله ورسوله

إن أفضل ما في الحياة أن نقضيها في عمل شيء ، أي شيء يعيش أطول من الحياة نفسها
abubakerhamd is offline   قديم 07-05-2003, 03:46 PM
عضو فعال
#12  

هذه الطريقة يا أخوان تستخدم للتأكد من ان التسجيل ليس اليا

يعني تخيل انك فتحت موقع يمكن من خلاله للزوار التجسيل ( مجلة الكترونية مثلا ) ثم اتاك احد المحترفين وقام بتصميم برنامج يقوم بالتسجيل في موقع الاف او ملايين المرات بأسماء و ارقام عشوائية

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

هذه الطريقة فائدتها التأكد ان الشخص الي يسجل من بني البشر وليس برنامج عشوائي






البرواز is offline   قديم 07-05-2003, 06:27 PM
عضو نشيط جدا
#13  

مشكور اخوي arabway

على هذا الدرس الاكثر من رائع

لما شفت هذه التقنية في المواقع الاجنبية احترت

لكن ماشاء الله عليك جبت لنا التقنية لانها مفيدة جدا

يعطيك العافية اخوي وعساك على القوة






sagaf is offline   قديم 08-05-2003, 02:17 AM
عضو سوبر نشيط
#14  
مشكور اخوي arabway

درس مميز للغاية ....... يا اخ arabway

درس متقدم ورائع جدا جداً .............






__________________
* عش ما شئت فإنك ميت . وأحبب من شئت فأنك مفارقة , وأعمل ما شئت فأنك مجازى بة

* ما فائدة القلم اذا لم يفتح فكرا ..أو يضمد جرحا ..أو يرقا دمعة ..أو يطهر قلباً ..أو يكشف زيفاً .. أو يبني صرحاً يسعد الأنسان في ضلالة
faleh2002 is offline   قديم 08-05-2003, 04:56 PM
عضو سوبر نشيط
#15  

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

فعلا تقنية جميلة جدا ، مشكور جدا على الدرس

وتحياتى لك بالتوفيق أن شاء الله






__________________
Back To Track
php master is offline   قديم 09-05-2003, 01:28 AM
عضو فعال
#16  

شكراً على الموضوع المميز






__________________
System
KaRiM_NET is offline   قديم 09-05-2003, 01:39 PM
عضو نشيط جدا
#17  

السلام عليكم

شكرا لكل من قام بالرد

فائدة الفكرة
اولا : ضمان ان المسجل هو شخص عادى وعاقل ( نحتاجها في المنتديات - صار بعض المجانين يتعبونا ) وانه ليس برنامج او برمجه لضغط السرفر ( كان يوجد برنامج يقوم بالتسجيل في هوتميل بضغطة زر )

ثانيا : المواقع التجارية التى تعتمد في التسويق على نظام الشراكة
مثلا : اذا وصلنى 5 اعضاء جدد اعطيك 5 دولار
تخيل لو قام احد الشركاء ببرمجة سكربت ليخدع نظام التسجيل ؟
الشركة راح تغلق ثاني يوم
خصوصا اذا كانت شركة كبيرة وتحافظ على سمعتها وتحرص على الدفع للشركاء


ثالثا وهذا هو الاهم :

يمكن تطوير واستخدام الفكرة في اشياء كثيرة جدا
فمن الممكن مثلا
ان تضع صورة بانر منتداك بدون كتابه
ثم تجعل السكربت يقوم بكتابه اشياء مختلفه في كل زيارة للموقع فكرة صح ؟
يمكن ايضا استخدامها للكتابه على الصور التى يرفعها الزوار لموقعك
اذا كنت تستخدم برنامج الابلود
وان كنت اظن ان هناك برنامج يقوم بهذا الغرض
ولكنها فقط مجرد امثله وكل واحد يستطيع يطوع الافكار حسب رغبته وحسب ابداعه
وهذا بداية التميز






__________________
فقط قم بزيارتنا ولن تندم

http://ardalsharq.com
arabawy is offline   قديم 09-05-2003, 03:05 PM
عضو نشيط
#18  

درس رائع ومفيد

جزاك الله كل خير






__________________
مجموعة بي اتش بي العربية www.php4arab.org
البوابة العربية www.arabportal.net
rafia is offline   قديم 09-05-2003, 03:50 PM
عضو نشيط جدا
#19  

شكرا لك اخى rafia
وان شاء الله قريبا دروس اخرى بنفس الاسلوب






__________________
فقط قم بزيارتنا ولن تندم

http://ardalsharq.com
arabawy is offline   قديم 03-06-2003, 08:38 PM
عضو منذ مبطي
#20  

بارك الله فيك اخوي arabawy

درس أكثر من رائع .. وفائدته كبيره

بالتوفيق وفي انتظار كل جديد من عندك






بو مبارك is offline   قديم 03-06-2003, 08:54 PM
عضو نشيط جدا
#21  

شكرا لك عزيزي lebanon وجزاك الله خيرا على الدعوة






__________________
فقط قم بزيارتنا ولن تندم

http://ardalsharq.com
arabawy is offline   قديم 04-06-2003, 04:05 PM
عضو نشيط
#22  

شكراً

فكرة رائعة جداً






__________________
الحمدلله الذي جعل اعداءنا من الحمقى

وأخيراً, خدمة سجل الزوار العربي لموقعك (مجاناً)
http://www.arabgb.com
irc4arab is offline   قديم 04-06-2003, 04:28 PM
موضوع مغلق


 

أدوات الموضوع

قوانين المشاركات
لا يمكنك كتابة مواضيع جديدة
يمكنك إضافة ردود
لا يمكنك إرسال مرفقات
لا يمكنك تعديل مشاركاتك

كود vB متاح
كود [IMG] متاح
كود HTML غير متاح
Trackbacks are متاح
Pingbacks are متاح
Refbacks are متاح



جميع الأوقات بتوقيت غرينتش +3. الوقت الآن هو 06:12 AM.