صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 15 من 20

الموضوع: الحاجة أم الإختراع ( 2 ) : سكريبت يرتب العناوين البريدية

  1. #1
    عضو فعال جدا
    تاريخ التسجيل
    Dec 2000
    المشاركات
    2,697

    الحاجة أم الإختراع ( 2 ) : سكريبت يرتب العناوين البريدية



    السلام عليكم و رحمة الله و بركاته ..
    الإخوة الكرام حياكم الله و بياكم ..
    فتبعاً للموضوع السابق :
    http://www.swalif.net/softs/showthre...threadid=36368
    و الذي ذكرت فيه بعض الأمور التي قد نحتاجها فيستلزم علينا البحث عن حل لها ..
    أقدم لكم اليوم حاجة إحتجت لها و وصلت لطريقة لحلها ..
    و قد تكون نفس حاجتي موجودة عند البعض ..
    فأردت أن نتشارك سوياً هذا الحل ..

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

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

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

    # أولاً / أزرع قاعدة البيانات هذه :
    ============
    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;
    ============

    # ثانياً / أنشيء ملف و سمه emails.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>
    ";
    ?>
    ============
    طبعاً هذا الملف هو الذي يعرض للزوار ..

    # ثالثاً / بقي علينا ملف العرض الذي يعرض لنا العناوين البريدية المضافة لقاعدة البيانات و يرتبها على الشكل :
    email@domain.com; email@domain.com; email@domain.com; email@domain.com; email@domain.com;
    لذلك أنشيء ملف و سمه مثلاً show.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];";
    }
    ?>
    ============
    و طبعاً قد يستلزم حماية هذا الملف بكلمة سرية أو عن طريق ملفات الإتش تي أكسيس ..

    أرجو مراجعة السكربت من الخبراء و التنبيه على الأخطاء إن وجدت ..





    رضا غير متواجد حالياً


  2. #2
    عضو فعال
    تاريخ التسجيل
    Jul 2002
    المشاركات
    1,557


    عفوا اخوي ولكني اريد ان اعرف كيف ازرع قاعده بيانات؟





    __________________
    هل تبحث عن نطاقات مميزة, لها معنى؟
    إذا ما رأيك بإلقاء نظرة على هذه الباقة..
    XPlus غير متواجد حالياً

  3. #3
    عضو فعال جدا
    تاريخ التسجيل
    Dec 2000
    المشاركات
    2,697


    مرحبا plus ..
    سؤال جيد ..
    أدخل على phpMyAdmin في موقعك أو سيرفرك المحلي ..
    و أدخل لقاعدة البيانات الخاصة بك أو أنشأ قاعدة بيانات جديدة ..
    ( في السيرفر المحلي يتم ذلك من خلال الصفحة الأولى في phpMyAdmin حيث ستجد مكتوب Create new database و بأسفلها مربع لتدخل إسم القاعدة .. ضع أي إسم تريده .. و بالنسبة للـ phpMyAdmin في المواقع فغالباً يجب عليك إنشاء القاعدة من خلال لوحة التحكم ثم إستعراضها بـ phpMyAdmin ) ..
    بعد أن أن فتحت قاعدتك السابقة أو أنشأت قاعدة جديدة .. أضغط عليها فستفتح لك صفحة جديدة ..
    إبحث عن Run SQL query/queries on database .. ستجد تحته مربع كبير ..
    هذا المربع لإدخال أوامر الـ SQL و من خلاله تزرع الجداول بقاعدة البيانات ..
    إنسخ ماطلبت منك زراعته بالموضوع فوق و ضعه بالمربع الكبير هذا ..
    ثم إضغط زر Go ..

    بالتوفيق ..





    رضا غير متواجد حالياً

  4. #4
    عضو فعال
    تاريخ التسجيل
    Jul 2002
    المشاركات
    1,557


    شكرا اخوي





    __________________
    هل تبحث عن نطاقات مميزة, لها معنى؟
    إذا ما رأيك بإلقاء نظرة على هذه الباقة..
    XPlus غير متواجد حالياً

  5. #5
    عضو فعال جدا
    تاريخ التسجيل
    Dec 2000
    المشاركات
    2,697


    عفواً plus و بإنتظار البقية ..





    رضا غير متواجد حالياً

  6. #6
    Banned
    تاريخ التسجيل
    Mar 2002
    المشاركات
    192


    أحسنت ..

    ولكن في ثانياً ..

    من الأفضل وضع الأوامر التالية داخل الجملة الشريطة التي تليها:

    mysql_connect($dbserver,$dbuser,$dbpass);
    mysql_select_db($dbname);

    إذ لا داعي للاتصال ولا لتحديد قاعدة البيانات إذا لم يقم الزائر بإرسال بريده بعد... شغلة performance يعني





    4915 غير متواجد حالياً

  7. #7
    عضو فعال جدا
    تاريخ التسجيل
    Dec 2000
    المشاركات
    2,697


    هههه جزاك الله خير 4915 ..
    شكلك تشتغل منسق عالوورد ..





    رضا غير متواجد حالياً

  8. #8


    أقول رضا
    اش الفايدة من هذا السطر
    كود PHP:
    $num=1;
    $quer=@mysql_query("SELECT email FROM emails ORDER BY id DESC limit 1"); 






    __________________
    صلى الله على سيدنا محمد وعلى آله وصحبه وسلم
    أسامة نت غير متواجد حالياً

  9. #9
    عضو نشيط جدا
    تاريخ التسجيل
    Aug 2001
    المشاركات
    338


    جزاك الله خير اخي
    لكن انا في اشياء مو فاهمها
    كيف اضيف مجموعة من البريد 40000 بريد مثلا دفعه واحده
    وكيف ارسل للقائمة ؟؟
    وهل هي مضمونه ان ترسل الايميل لكل القائمه ؟

    شكرا





    Ice Cube غير متواجد حالياً

  10. #10
    عضو فعال جدا
    تاريخ التسجيل
    Dec 2000
    المشاركات
    2,697


    هههههه أسامة .. لازم الإحراج ..

    Ice Cube .. هذي مو قائمة مراسلات .. هذا سكربت يضيف الزائر فيه بريده و من ثم يتم عرض مجموعة الإيملات لك بطريقة ما عليك غير نسخ و لصق و تضعها بالاوتلوك او غيره ..





    رضا غير متواجد حالياً

  11. #11
    عضو نشيط جدا
    تاريخ التسجيل
    Aug 2001
    المشاركات
    338


    ومتلقي الرساله راح تطلع له كل عناوين الايميلات لباقي الاشخاص ؟





    Ice Cube غير متواجد حالياً

  12. #12
    عضو فعال جدا
    تاريخ التسجيل
    Dec 2000
    المشاركات
    2,697


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

    بسم الله ..

    ==========
    أولاً بالنسبة لقاعدة البيانات :
    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 و الذي يظهر للزائر .. و فيه نموذج الإدخال ..
    $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 "
    <form method='POST' action='emails.php?email=add'>
    أضف بريدك لدينا :<br>
    <input type='text' size='30' name='email'>
    <input type='submit' name='add' value='أضف'>
    </form>
    ";
    و نلاحظ أننا بخانة الأكشن بالنموذج وضعنا إسم الملف مع وضع المتغير و هو email و وضعنا بجانبه =add و هو إسم الزر الذي سيقوم بتنفيذ العملية ..
    نلاحظ أننا وضعنا مربع النص و أسميناه email لأنه هو المقصود بالمتغير ..
    طبعاً بعد إدخال البريد و ضغط زر ( أضف ) و حسب مسار الأكشن الذي وضعناه سوف يذهب للأمر الذي أشترطنا فيه أن يكون email ..
    حيث سيتم بعدها تنفيذ الأوامر داخل ذلك الأمر ..
    هذا فيما يتعلق بنموذج الإدخال ..
    ==========

    ==========
    ثالثاً بالنسبة للسكربت show.php و الذي تعرض ترتب فيه العناوين البريدية بالشكل التالي :
    email @ domain.com; email @ domain.com; email @ domain.com; email @ domain.com
    فأوامره :
    $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> و هو من أوامر الهتمل و ذلك للقفز سطر كل مرة ..
    ==========

    حقيقة أتمنى أن يكون شرح هذا السكربت واضحاً ..
    و أعذروني على شرحي الغير منهجي أو غير علمي ..
    فوالله أني لم أدرس ال php .. أو آخذ دورة فيها ..
    إنما هي إجتهادات ..
    والله يوفقنا و إياكم للعمل بمرضاته ..

    رضا ..





    رضا غير متواجد حالياً

  13. #13
    عضو نشيط جدا
    تاريخ التسجيل
    Feb 2000
    المشاركات
    538


    جميل جد يا رضا

    شرح وافي و كافي باذن الله

    zuhair@almashat.com
    و هذا بريدى المستخدم في ماسنجر مكرو سوفت
    zuhairmashat@hotmail.com





    ابن مكة غير متواجد حالياً

  14. #14


    السلام عليكم

    أنصح الإخوة أن يستبدلوا هذا الكود

    كود PHP:
    $tablequery=mysql_query("SELECT email FROM emails ORDER BY id DESC");
    while(
    $result=mysql_fetch_array($tablequery))

    ب

    كود PHP:
    $tablequery=mysql_query("SELECT email FROM emails GROUP BY emails ORDER BY id DESC");
    while(
    $result=mysql_fetch_array($tablequery))

    حيث أن هذا الكود يقوم بحذف الإيميلات المتكررة عند طباعتها
    وشكرا





    __________________
    صلى الله على سيدنا محمد وعلى آله وصحبه وسلم
    أسامة نت غير متواجد حالياً

  15. #15
    عضو فعال جدا
    تاريخ التسجيل
    Dec 2000
    المشاركات
    2,697


    أسامة .. و عليكم السلام أخي .. ونعم النصيحة بارك الله فيك ..

    إبن مكة .. حياك الله أخي .. و إعذرنا عالتقصير ..





    رضا غير متواجد حالياً





ضوابط المشاركة

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

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