كثير من الناس يستعمل برامج تنظيم قوائم المراسلات
البريدية لإرسال الرسائل لمجموعات من العناوين
البريدية لكن المشكلة في هذه البرامج أن رسالتك قد لا تصل للعناوين المقصودة بنسبة 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 الموجود بروت الموقع