الرئيسية » برمجة PHP » سكربت لترتيب القوائم البريدية

سكربت لترتيب القوائم البريدية

 

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

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

$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

$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 الموجود بروت الموقع

اقرأ ايضاً!

x

‎قد يُعجبك أيضاً

كيفية برمجة منطقة خاصة لدخول الأعضاء

  لاحظت طلب بعض الإخوة بعمل درس حول كيفية عمل منطقة تسجيل دخول الأعضاء خاصة ...