![]() | رقم المشاركة : 1 (permalink) |
![]() كثير من الناس يستعمل برامج تنظيم قوائم المراسلات البريدية لإرسال الرسائل لمجموعات من العناوين البريدية لكن المشكلة في هذه البرامج أن رسالتك قد لا تصل للعناوين المقصودة بنسبة 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> و هو من أوامر الهتمل و ذلك للقفز سطر كل مرة .. # طبعاً قد يستلزم حماية هذا الملف بكلمة سرية أو عن طريق ملفات الإتش تي أكسس الملف: .htaccess الموجود بروت الموقع s;vfj gjvjdf hgr,hzl hgfvd]dm | |
| ![]() |
![]() | رقم المشاركة : 2 (permalink) | ||
![]() بارك الله فيك
| |||
| ![]() |
![]() |
مواقع النشر (المفضلة) |
|
|