منتديات قراصنة الجــــتزائر

مـــــــرحبا بكم في منتدانا الغالي


انضم إلى المنتدى ، فالأمر سريع وسهل

منتديات قراصنة الجــــتزائر

مـــــــرحبا بكم في منتدانا الغالي

منتديات قراصنة الجــــتزائر

هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.


    الدرس الثامن والاخير لهذه الدورة php

    mimih
    mimih


    أوسمتى : iud 100000737222110

    100002641046068 uid te3i

    http://ar.hitskin.com/search-skin/skin-182649.htm
    عدد المساهمات : 134
    السٌّمعَة : 1
    تاريخ التسجيل : 11/01/2011
    العمر : 27
    الموقع : collo

    الدرس الثامن والاخير لهذه الدورة php Empty الدرس الثامن والاخير لهذه الدورة php

    مُساهمة  mimih الجمعة أغسطس 10, 2012 9:39 pm

    الحاجة أم الإختراع



    سكريبت يرتب العناوين البريدية


    كثير من الناس يستعمل برامج قوائم المراسلات لإرسال الرسائل لمجموعة من العناوين البريدية لكن مشكلة هذه البرامج أن رسالتك قد لا تصل للعناوين بنسبة 50% ..
    و ذلك لكون كثير من مزودي خدمة البريد يضعون فلترة للرسائل التي تصل من برامج قوائم المراسلات ..
    و لعل البعض قد رأى ذلك و هي أنه ترجع إليه عدد من الرسائل التي أرسلها ..
    فلذلك فكرت بطريقة لترتيب العناوين البريدية و من ثم إرسالها عن طريق برنامج ( الأوتلوك ) مثلاً أو من خلال أي بريد في خانة To ..
    لكن بحيث يكون الأمر تلقائي ( الإضافة و ترتيب العناوين ) ..
    فنتج معي هذا السكربت الذي أستخلصته أيضاً من أحد برامج المقالات و قمت بتطويره ليلائم المطلوب ..
    و سوف تكون إضافة العنوان البريدي للزائر بالطريقة المعتادة بقوائم المراسلات حيث يكون هناك مربع لإدخال العنوان البريدي ثم الضغط على زر إضافة فيضاف العنوان لقاعدة البيانات ..
    و يتم عرض مجموع العناوين البريدية المضافة على الشكل :
    email@domain.com; email@domain.com; email@domain.com; email@domain.com; email@domain.com;

    و إليكم السكربت ..

    # أولاً / أزرع قاعدة البيانات هذه :


    PHP:

    --------------------------------------------------------------------------------

    CREATE TABLE `emails` (
    `id` int(10) unsigned NOT NULL auto_increment,
    `email` varchar(255) NOT NULL default '',
    PRIMARY KEY (`id`),
    KEY `id` (`id`)
    ) TYPE=MyISAM;





    --------------------------------------------------------------------------------


    CREATE TABLE `emails`
    و هو أمر إنشاء جدول بإسم emails كما تعلمنا سابقاً ..
    `id` int(10) unsigned NOT NULL auto_increment,
    و هو الحقل الأول و أسميناه id بحيث يعطي لكل بريد رقم معين ..
    و تم وضع خصاية الترقيم التلقائي كلما تضاف معلومة للحقل ..
    `email` varchar(255) NOT NULL default '',
    الحقل الثاني و الذي تسجل فيه العناوين البريدية و تم تحديد سعته لتتسع ل 255 حرف فقط ..
    PRIMARY KEY (`id`),
    KEY `id` (`id`)
    مجموعة من الأوامر أعتقد والله أعلم أنها ستفيد عند الطلب لأي id من خلال البرنامج ..
    TYPE=MyISAM;
    هذا الأمر فائدته أنه يجعل الحقول قابلة للكتابة و MyISAM نوع من أنواع الكتابة بقاعدة البيانات ..
    هذا فيما يتعلق بإنشاء الجداول و الحقول بقاعدة البيانات ..



    # ثانياً / أنشيء ملف و سمه emails.php مثلاً .. و ضع فيه الكود التالي ( طبعاً مع تغيير معلومات القاعدة و الجدول و إسم الملف إن تبدلت ) :

    PHP:

    --------------------------------------------------------------------------------


    <?php
    $dbserver="localhost";
    $dbuser="";
    $dbpass="";
    $dbname="";
    mysql_connect($dbserver,$dbuser,$dbpass);
    mysql_select_db($dbname);
    if(isset($email))
    {
    mysql_query("INSERT emails (email)VALUES('$email')")||die(mysql_error());
    echo "تم إضافة بريدك بنجاح";
    }
    echo "
    <form method='POST' action='emails.php?email=add'>
    أضف بريدك لدينا :<br>
    <input type='text' size='30' name='email'>
    <input type='submit' name='add' value='أضف'>
    </form>
    ";
    ?>




    --------------------------------------------------------------------------------


    طبعاً هذا الملف هو الذي يعرض للزوار ..

    $dbserver="localhost";
    $dbuser="";
    $dbpass="";
    $dbname="";
    mysql_connect($dbserver,$dbuser,$dbpass);
    mysql_select_db($dbname);
    كما تعلمنا سابقاً هنا توضع معلومات قاعدة البيانات و تتم عملية الإتصال بالقاعدة ..
    if(isset($email))
    و هي جملة شرطية تعني إذا طلب المتغير $email بواسطة المتصفح ..
    كمثال :
    emails.php?email
    و هي ما سنرى أننا قد وضعناه بنموذج الإدخال ..
    و قد يفيد هذا الأمر عند الرغبة بتجزئة السكربت ووضع أوامر مستقلة فيه ..
    حيث حينما يطلب هذا المتغير سيتم تنفيذ الأوامر فقط المتعلقة به ..
    و هي التي وضعت بين العلامتين { و } ..
    و الأمر المتعلق بالشرط هو :
    mysql_query("INSERT emails (email)VALUES('$email')")||die(mysql_error());
    و هو عبارة عن عملية إتصال بقاعدة البيانات و من ثم إدارج قيمة معينة و هي email و ذلك بالجدول emails بقاعدة البيانات .. و إذا كان هناك خطأ فلن تظهر عبارة الإتمام :
    echo "تم إضافة بريدك بنجاح";
    و يمكن وضع أي رسالة بدلاً من تركها فاضية كالتالي :
    mysql_query("INSERT emails (email)VALUES('$email')")||die(mysql_error(لم يتم إضافة بريدك));
    طبعاً كما قلنا الأمر السابق يتم إذا تم طلبه أما إذا لم يتم طلبه أبداً فإن السكربت سوف يظهر النموذج التالي :
    echo "



    أضف بريدك لدينا :<br>
    <input type='text' size='30' name='email'>
    <input type='submit' name='add' value='أضف'>
    </form>
    ";
    و نلاحظ أننا بخانة الأكشن بالنموذج وضعنا إسم الملف مع وضع المتغير و هو email و وضعنا بجانبه =add و هو إسم الزر الذي سيقوم بتنفيذ العملية ..
    نلاحظ أننا وضعنا مربع النص و أسميناه email لأنه هو المقصود بالمتغير ..
    طبعاً بعد إدخال البريد و ضغط زر ( أضف ) و حسب مسار الأكشن الذي وضعناه سوف يذهب للأمر الذي أشترطنا فيه أن يكون email ..
    حيث سيتم بعدها تنفيذ الأوامر داخل ذلك الأمر ..
    هذا فيما يتعلق بنموذج الإدخال ..


    # ثالثاً / بقي علينا ملف العرض الذي يعرض لنا العناوين البريدية المضافة لقاعدة البيانات و يرتبها على الشكل :
    email@domain.com; email@domain.com; email@domain.com; email@domain.com; email@domain.com;
    لذلك أنشيء ملف و سمه مثلاً show.php و ضع فيه الكود التالي ( طبعاً مع تغيير معلومات القاعدة و الجدول و إسم الملف إن تبدلت ) :

    PHP:

    --------------------------------------------------------------------------------


    <?php
    $dbserver="localhost";
    $dbuser="";
    $dbpass="";
    $dbname="";
    mysql_connect($dbserver,$dbuser,$dbpass);
    mysql_select_db($dbname);
    $quer=@mysql_query("SELECT email FROM emails ORDER BY id DESC limit 1");
    $num=1;
    $tablequery=mysql_query("SELECT email FROM emails ORDER BY id DESC");
    while($result=mysql_fetch_array($tablequery))
    {
    echo " $result[email];";
    }
    ?>




    --------------------------------------------------------------------------------



    $dbserver="localhost";
    $dbuser="";
    $dbpass="";
    $dbname="";
    mysql_connect($dbserver,$dbuser,$dbpass);
    mysql_select_db($dbname);
    يتم الإتصال بقاعدة البيانات حسب الأوامر السابقة ..
    $quer=@mysql_query("SELECT email FROM emails ORDER BY id DESC limit 1");
    $num=1;
    هذا السطر فعلاً سطر زائد كما تفضل أخي أسامة .. و إعذروني أنا لأني أستخرجت السكربت من برنامج مقالات فلذلك ربما لم أنتبه لهذا الأمر ..
    و سبب أنه زائد حيث أنه غير مستخدم بالبرنمج مطلقاً ..
    المتغيرات فيه لم تستخدم ..
    لذلك من سيركب البرنامج يحذف السطرين السابقين ..
    $tablequery=mysql_query("SELECT email FROM emails ORDER BY id DESC");
    هنا بهذا السطر تتم عملية الإتصال المباشرة جدول قاعدة البيانات و هو emails و يتم تحديد الحقل email منه ..
    while($result=mysql_fetch_array($tablequery))
    بالنسبة لهذا الأمر فأعتقد والله أعلم أن while تفيد عند الرغبة في تنفيذ الأمر بشكل متكرر ..
    و هنا يعني أن النتيجة النهائية و التي ستظهر للزائر ستكون من خلال عملية الإتصال بالجدول مباشرة tablequery ووضعنا $result كمتغير لعملية طلب معين من حقول الجدول ..
    ولاحظ أننا وضعنا الأوامر المتعلقة ب while بين { و } كما فعلنا بالشرط سابقاً ..
    echo " $result[ email ];";
    و هو أمر إظهار و عرض العنوان البريدي ..
    و سوف يقوم البرنامج بطلب العناوين البريدية بحسب رقم الآي دي إلى أن يصل لأخر رقم آي دي ..
    و بالأمر السابق سوف يضع البرنامج العناوين على الشكل :
    email @ domain.com; email @ domain.com; email @ domain.com; email @ domain.com
    و لكن ماذا إن أردنا أن يكون بالشكل :
    email @ domain.com
    email @ domain.com
    email @ domain.com
    email @ domain.com
    أي كل بريد في سطر ..
    سوف نبدل طريقة ترتيب العناوين من خلال التغيير بأمر العرض إلى :
    echo " $result[ email ]<br>";
    لاحظ وضعنا الأمر <br> و هو من أوامر الهتمل و ذلك للقفز سطر كل مرة ..



    # طبعاً قد يستلزم حماية هذا الملف بكلمة سرية أو عن طريق ملفات الإتش تي أكسيس ..

      الوقت/التاريخ الآن هو الخميس نوفمبر 21, 2024 6:58 am