حدود هوست
مكتبة السكربتات مكتبة البرامج معرض قوالب

العودة   حدود هوست > منتديات أصحاب المواقع > تقنيه البرمجه القياسيه


تقنيه البرمجه القياسيه قسم يختص بـ web 2.0 أى البرمجه الجديده أو القياسيه وكل ما يتعلق بـ CSS , AJAX , DHTML , XHTML , XML



رد
 
LinkBack أدوات الموضوع خيارات عرض الموضوع
  #1 (permalink)  
قديم 04-04-2008, 02:42 AM
الصورة الرمزية H.elkzaz
H.elkzaz H.elkzaz متواجد حالياً
مراقب
 
تاريخ التسجيل: Jul 2007
الدولة: قلب حدود
المشاركات: 291
معدل تقييم المستوى: 0
H.elkzaz is on a distinguished road
إرسال رسالة عبر مراسل MSN إلى H.elkzaz
شرح كلاس صورة التحقق


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

الان مع الشرح :
اولا صفحة الكلاس كامل مع شرح تفصيلي

كود PHP:
 <?php 
session_start
(); 
 

class SecurityImage 

    
//المتغيرات المستخدمة 
    
public $bg$image$font//fonts الخطوط موجودة بفولدر  
        
$fontsize$colour// لون وحجم الخط 
        
$strLength
        
$text ""$num_dots// النص وعدد النقاط العشوائية 
        
$chars = array("a""A""b""B""c""C""d""D""e""E""f""F""g"
        
"G""h""H""i""I""j""J""k""K""l""L""m""M""n""N""o"
        
"O""p""P""q""Q""r""R""s""S""t""T""u""U""v""V""w"
        
"W""x""X""y""Y""z""Z""1""2""3""4""5""6""7""8""9"); 

// مؤسس الكلاس : ينشيء القيم الاولية 
    
function SecurityImage() 
    { 
        
$this->num_dots 300// عدد النقاط المضافة 
        
$this->strLength 5;// طول النص 
        
$this->fontsize 18;// حجم الخط 

        
$this->selectFont(); // اختيار الخط 

        
$bg "images/" mt_rand(17) . ".png"// الصورة المستخدمة كخلفية 
        
$this->image imagecreatefrompng($bg);// انشاء صورة على خلفية صورة اخرى 
        
$this->colour ImageColorAllocate($this->image000); // لون النقاط , هنا استخدمنا الاسود 

        // عرض الصورة تلقائيا عند استدعاء الكلاس 
        
$this->show(); 

        
// اضافة الكود الى سيشن لمقارنته مع الكود المدخل من الفورم 
        
$_SESSION['SECURITY_CODE'] = $this->text
    } 
    
// عرض الصورة 
    
function show() 
    { 
        
Header("Content-type: image/png"); 

        
$this->text $this->genString(); 

        
// كتابة حرف او مز تلو الاخر على الصورة 
        
for ($i 0$i $this->strLength$i++) { 
            
$this->writeLetter($this->text[$i], (20 $i 25)); 
        } 

        
$this->addNoise(); 

        
imagepng($this->image); 
        
imagedestroy($this->image); 
    } 

    
// توليد نص بحروف وارقام عشوائية من المصفوفة اعلاه 
    
function genString() 
    { 
        for (
$i 0$i $this->strLength$i++) { 
            
$this->text .= $this->chars[mt_rand(0count($this->chars) - 1)]; 
        } 

        return 
$this->text
    } 

    
// كتابة نص على الصورة بتغيير الخط واللون 
    
function writeLetter($letter$xvalue
    { 
        
$yvalue 30 mt_rand(010); // Randomly adjust y position. 
        
$angle mt_rand(-3030); // Give text a slight random angle. 
        // دالة لكتابة نص على الصورة باستخدام نوع الخط والزاوية والاحداثيات واللون والنص 
        
imagettftext($this->image$this->fontsize$angle$xvalue$yvalue$this-> 
            
colour$this->font$letter); 
    } 

    
// للمقارنة بين النص المدخل والنص الذي على الصورة 
    
function isMatch($t
    { 
        if (
$t == $this->text) { 
            return 
true
        } else 
            return 
false
    } 
    
// دالة لاضافة نقاط عشوائية على الصورة 
    
function addNoise() 
    { 
        
$width imagesx($this->image); // الحصول على عرض الصورة ووضعه بمتغير 
        
$height imagesy($this->image); //الحصول على ارتفاع الصورة ووضعه بمتغير 

        //نقاط عشوائية 
        
for ($i 0$i $this->num_dots$i++) { 
            
//هذه الدالة لرسم القطع الناقص وتعتمد على 4 معطيات 
            
imagefilledellipse($this->imagemt_rand(0$width), mt_rand(0$height), 11
                
$this->colour); 
        } 
    } 
    
// (تغيير الخط)دالة لاختيار خط عشوائي لاستخدامه في الكتابة على الصورة 
    
function selectFont() 
    { 
        
//دالة للحصول على قيمة عشوائية  mt_rand 
        
switch (mt_rand(13)) { 
            case 
1
                
$this->font "fonts/Acidic.TTF"
                break; 
            case 
2
                
$this->font "fonts/arial.ttf"
                break; 
            case 
3
                
$this->font "fonts/frizzed.ttf"
                break; 
                
//case 4 : $this->font = "fonts/STACKZ.TTF"; break; 
        

    } 


// انشاء الكائن الخاص بالصورة  
$secim = new SecurityImage(); 
?>
ثانيا طريقة الاستخدام :
قم باضافة حقل خاص للكود السري في الفورم الخاص بك الذي سيقارن مع الكود المكتوب فوق الصورة : مثال :
كود HTML:
 <td><label for="txtSecurityCode">Security Code</label>: </td> <td colspan="2"><input type="text" name="txtSecurityCode" size="30" /></td> <tr><td><img name="captchaimg" alt="Security Code" src="SecurityImage.php" /></td> <td><a href="javascript:location.reload();"><img src="images/arrow_refresh.png" alt="Refresh Code" border="0" /></a></td> </tr>
بالنسبة ل SecurityImage.php فهي صفحة كود الكلاس وبالنسبة ل images/arrow_refresh.png فأنها صورة صغيرة قرب صورة الكود عند الضغط عليها تقوم برمجة جافا بالكود السابق بتغيير الصورة في حال عدم وضوحها جدا..

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

كود PHP:
                       session_start(); 
if (
$_POST['txtSecurityCode'] == $_SESSION['SECURITY_CODE']) { 
    
// استمرار بتنفيذ كود معين 
} else { 
    
header('location: form.php?msg=error'); // عرض رسالة خطأ -الكود مثال فقط 


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

بالنسبة للمرفقات قم بوضع الصور في مجلد images والخطوط في مجلد fonts ضمن مسار سكريبتك ......


الملفات المرفقة
نوع الملف: rar windows-1256''images.rar‏ (46.1 كيلوبايت, المشاهدات 2)
نوع الملف: rar windows-1256''fonts.rar‏ (373.9 كيلوبايت, المشاهدات 1)



التوقيع
أنتبه لهذه المواضيع :
مواضيع تهمك :


آية الكرسي

(254) اللَّهُ لا إِلَهَ إِلَّا هُوَ الْحَيُّ الْقَيُّومُ لا تَأْخُذُهُ سِنَةٌ وَلا نَوْمٌ لَهُ مَا فِي السَّمَاوَاتِ وَمَا فِي الْأَرْضِ مَنْ ذَا الَّذِي يَشْفَعُ عِنْدَهُ إِلَّا بِإِذْنِهِ يَعْلَمُ مَا بَيْنَ أَيْدِيهِمْ وَمَا خَلْفَهُمْ وَلا يُحِيطُونَ بِشَيْءٍ مِنْ عِلْمِهِ إِلَّا بِمَا شَاءَ وَسِعَ كُرْسِيُّهُ السَّمَاوَاتِ وَالْأَرْضَ وَلا يَؤُودُهُ حِفْظُهُمَا وَهُوَ الْعَلِيُّ الْعَظِيمُ (255) .. صدق الله العظيم .
رد مع اقتباس
قديم 09-05-2008, 03:22 PM   #2 (permalink)
محمد الشلهوب
عضو
 
الصورة الرمزية محمد الشلهوب
 
تاريخ التسجيل: May 2008
المشاركات: 12
معدل تقييم المستوى: 0 محمد الشلهوب is an unknown quantity at this point
افتراضي

مشكور أخو ي ويعطيك ألف عافي



التوقيع
هلالي وراس عالي
محمد الشلهوب غير متواجد حالياً   رد مع اقتباس
رد

مواقع النشر

العبارات الدلالية
كلاس صورة التحقق

« قائمة Glossy | - »
أدوات الموضوع
خيارات عرض الموضوع

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

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are معطلة
Pingbacks are معطلة
Refbacks are معطلة


المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
اضافة صورة فى الموضوع او الرد او التوقيع RealyLover الشروحات والمشاكل والحلول والثغرات 3 07-04-2008 09:26 AM
Photoshop كيف أقوم بتصغير و تكبير صورة (2) RealyLover منتدى التصميم 0 31-03-2008 12:18 AM
اضافة توقيع و صورة شخصية لك بالمنتدي RealyLover الشروحات والمشاكل والحلول والثغرات 1 24-03-2008 08:30 PM
السماح بظهور صورة العضو على حسب القسم maro الشروحات والمشاكل والحلول والثغرات 2 26-07-2006 10:22 PM
كيف استطيع اضافة صورة توضيحية من الكومبيوتر؟ designer منتدى سكربت pafiledb 3 25-09-2004 08:38 AM

AddThis Feed Button

جميع الأوقات بتوقيت GMT +3. الساعة الآن 02:15 AM.


JS   XML   ATOM   RSS   RSS2  

المنتدى غير مسؤول عن المواضيع او المقالات التي تنشر بالمنتديات ,فكل موضوع ومقال يوضح رأي الكاتب

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148