بسم الله الرحمن الرحيم

يسعدنا اليوم أن نفتتح مدونة Tech Talk Time والتي ستكون مدونة تقنية عربية متخصصة في مجال تطوير الويب، حيث سيتم التركيز في هذه المدونة على الأمور التعليمية والبرمجية وتناول التقنيات الجديدة بما يدعم مطوري الويب العرب ويفتح أفاق جديدة لاستخدام هذه التقنيات في الوسط العربي. أكمل قراءة التدوينة

كُتب في غير مصنف | 8 تعليقات

Game Programming based on HTML5 & JS

مسا الخير جميعاً،

قمت مبادرة مشكورة من قبل فريق CPS ومجتمع IEEE في جامعة الأزهر بتقديم ورشة عمل في نقابة المهندسين حول برمجة الألعاب باستخدام أحدث تقنيات الويب وبشكل خاص HTML5 و JAVASCRIPT APIs، وذلك بحضور أكثر من 70 طالب وطالبة من مختلف المستويات الدراسية.

بداية إذا كنت ترغب في متابعة المواضيع التقنية وأخبار الورشات الأخرى ( سيتم إضافة سلسلة حول ورشات Googleing Gaza قريباً ) فأرجو منكم الإنضمام لـصفحة المدونة عبر الفيسبوك كما سيشرفني انضمامكم لصفحة الشركة Orient.ps على الفيسبوك أيضاً أكمل قراءة التدوينة

كُتب في غير مصنف | تعليق واحد

اهمية mysql_close()

السلام عليكم

احببت في هذا المقال ان اذكر نقطة في برمجة المواقع ربما يغيب عنها البعض اوحتى يستخدمها ولا يعلم ما الفرق بين استخدامها وعدم استخدامها

وهي عملية اغلاق الاتصال بالdatabase

mysql_close();

لنأخذ مثال:

لنفرض انك قمت بكتابة الكود التالي

<?php
$host = "localhost";
$user = "root";
$pass = "rootpass";
$db = "joo";

$connect = mysql_connect($host,$user,$pass);
mysql_select_db($db,$connect);
$query = mysql_query("SELECT name FROM table");

while($name = mysql_fetch_array($query)){
	echo $name["name"]."<br>";
}
include($_GET["page"]);
?>

رغم ان لغة php تسمح لك بعدم اغلاقها يدويا وتقوم هي باغلاقها عنك ، لكن ما الفرق بينها وبين ان تضيف جملة

mysql_close();

قبل

include($_GET["page"]);

الفرق قاتل جدا وهو التالي

لنفرض انك قمت بعدم كتابة جملة الاغلاق

mysql_close();

فعليا سيتم اغلاق الاتصال بالdatabase بعد انتها الscript كاملا اي بعد انتها جملة include

ولنفرض ان المخترق قام بعمل hijacking واستغل جملة include وقام باضافة كود يتعامل مع ال database

ونتذكر ان اتصال ال database ما زال موجود

فيكون كود المخترق قادر على التعامل مع الdatabase بكل بساطة

اتمنى ان اكون قد اوضحت الفكرة

تحياتي

كُتب في غير مصنف | الأوسمة: , , | 4 تعليقات

كيف تتهرب من فلاتر السبام .. باستخدام الدوت نت ASP.net

اليوم سأكتب اول موضوعاتي على حائط هذه الصفحة الاكثر من رائعة في الفكرة و الهدف

سيكون موضوعي عن مشكلة واجهتني خلال رحلتي في برمحة المواقع و هي مشكلة متعلقة بالرسائل و Spam Filters و SMTP الخاص بالموقع
و طبعا نتحدث هنا عن لغة ال ASP.net …

طبعا المشكلة تتمثل في عدة نقاط:

1- الانكود الخاص بالرسالة خصوصا للمواقع العربية.
2- الرسايل تتحول الي صندوق الجنك .. المشكلة الاكبر و الأخطر.
و السبب ان العلب المواقع دعائية يهمها ان تتواصل مع الزبون يشكل متميز

سوف اسرد اسباب المشكلة و طريقة التفكير لحلها:
1- اسباب الانكود معروفة بجب ان ترسل الرسائل بـ UTF-8 لتحقيق الدعم باللغتين العربية و الانجليزية.
2- مشكلة الجنك .. عندما قرأت عن اسباب هذه المشكلة المزعجة لاصحاب المواقع.. وجدت ان الفلاتر الي تستخدمها خوادم البريد هيا السبب الاساسي ..
و هي تعمل على عدة محاور و تضع عدة قيود
1- يجب ان يكون موقع من المواقع المعرفة لديهم كمواقع امنة و ليش spamers .
2- ان يقوم المستلم بتحديد رسائلك كغير ضار لانتقالها للعلبة الوارد.
و من اجل ان تتجازو الفلتر يجب ان بتحقق في رسالتك التالي:
1- ان لا تحتوي رسالتك على العديد من الروابط.(و لكن اظن ان اغلب الاعلانات يجب ان تحتوي على الكثير :S)
2- ان لا تكون الروابط معقدة او طويلة … مثال (http://translate.google.com/translate_t?hl=&amp;ie=UTF-8&amp;text=+healthy+wealthy+life&amp;sl=ar&amp;tl=en#en|ar|%20healthy%20wealthy%20life)
3- الا يحتوي على نصوص طويلة.
4- الا يحتوي صور كبيرة الحجم او كبيرة.
5- الا يحتوي كلمات مخالفة.

و سوف نتجاوز المشاكل السابقة من خلال حل فعال.:

الحل يتمثل في الكود التالي مع استخدام System.Net.Mail

public void ExecuteHtmlSendMail(string FromAddress, string ToAddress, string BodyText, string Subject){
	MailMessage mailMsg = new MailMessage();
	mailMsg.From = new MailAddress(FromAddress);
	mailMsg.To.Add(new MailAddress(ToAddress));
	mailMsg.Subject = Subject;
	mailMsg.BodyEncoding = System.Text.Encoding.GetEncoding(“utf-8?);
	System.Net.Mail.AlternateView plainView = System.Net.Mail.AlternateView.CreateAlternateViewFromString(System.Text.RegularExpressions.Regex.Replace(BodyText, @”<(.|\n)*?>”, string.Empty), null, “text/plain”);
	System.Net.Mail.AlternateView htmlView = System.Net.Mail.AlternateView.CreateAlternateViewFromString(BodyText, null, “text/html”);
	mailMsg.AlternateViews.Add(plainView);
	mailMsg.AlternateViews.Add(htmlView);

	// Smtp configuration
	SmtpClient smtp = new SmtpClient();
	smtp.Host = “smtp.gmail.com”;
	smtp.Credentials = new System.Net.NetworkCredential(“username”, “password”);
	smtp.EnableSsl = true;
	smtp.Send(mailMsg);
}

في سطور الكود الاولى عند System.Net.Mail.AlternateView هنا نقوم بارسال نسخة من الرسالة و لكن plain بدون HTML و هذا يسهل كثيرا في تجاوز الفلتر حيت ان الفلتر هنا يعطيك نقاط اضافية على ان رسالتك ليست spam .. و يساعد في اخفاء الكثير من المشاكل الي ذكرتها سابقا باستخدام ال REGX مع النسخة البديلة

و لزبادة الاداء يجب ان يكون نموذج الرسالة يبدأ كاملا

<html><body>Your HTML Text/Code</body></html>

هنا نكون انتهينا من المشكلة و الحل

و ارجو من الله ان تكون تدوينتي افادت .. و من لديهم اقتراحات اخرى للحل فليقترح بكل صدر رحب

و في انتظار تسائلاتكم و تعليقاتكم

كُتب في غير مصنف | الأوسمة: , , , | إرسال التعليق

خارطة الطريق؛ إلى أين نسير؟

أود في هذه التدوينة الرسمية الأولى أن أعطي نظرة عامة لما سنتحدث عنه مستقبلاً في هذه المدونة، وما هو المقصود بتطوير الويب وما هي التقنيات الجديدة أو الأفاق الجديدة التي نطمح في خوض غمارها وتسهيل إستغلالها من قبل مطوري الويب العرب؟

أكتب هذه التدوينة لعدة أسباب، (1) لتوضيح تخصص المدونة وإتاحة فرصة أكبر للمتابعين لفهم خط سير المدونة على المدى القريب، (2) لتوفير معلومات أكبر لمن يود الإنضمام لمحرري المدونة سواء عبر اهتمامته بأحد أركانها التي ستذكر لاحقاً أو لشعوره بأنه يمتلك المهارة في توجهات أخرى لها علاقة مباشرة بتطوير الويب، (3) محاولة لترتيب الأوراق ومحاولة خلق جدولة زمنية وترتيب أولويات المدونة حسب الردود والتغذية الراجعة من قبلكم. أكمل قراءة التدوينة

كُتب في غير مصنف | إرسال التعليق