السلام عليكم ورحمة الله وبركاته،

منذ مده ليست بالطوليه تم تعيني كمشرف لقسم الPHP، انا شخصياَ انفعل بسرعة وابدأ بالهيجان خصوصا مع الاعضاء الجدد، واسباب انفعالي هي عدم تقيدهم مع الشروط والالتزامات التي تجعل المنتدى نظيفاً ومليء بالمواضيع المفيدة.

هذه هي الالتزامات التي اود الاعضاء ان يلتزموا بها قبل ان انفعل وامسح جميع مواضيعهم

قبل كتابة اي موضوع:
قم بالبحث قبل كتابه اي سؤال، لان احتمال وجود سؤال شبيه لسؤالك وتم حلها هي كبيره جداً، واذا هناك استفسار اخر حول نفس الموضوع، قم بكتابة السؤال كرد في احدى المواضيع التي وجدتها، ولكن اذا كان زمن اخر رد اكثر من اربع شهور، فلا مانع من كتابه استفساراتك في موضوع جديد، ولا تنسى ان تضع رابط للموضوع التي اردت ان تتابع النقاش فيه، لكي لا يعطيك البعض ردود مكررة، لانك اذا لم تشر الى الموضوع القديم، قد يعطيك شخص اجابة، تم تجربتها في الموضوع السابق وتم اثبات فشلها او عدم جدواها.

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

كتاب الموضوع:
كما وضحت، لا تكتب موضوع جديد الا بعد البحث في المنتدى والتأكد من ان موضوعك ليس لها اي حل. الان اذا كنت متأكد انك لم ولن تجد موضوع يحل مشكلتك. قم بكتابه موضوع جديد.

الموضوع اللذي ستكتبه يجب ان يكون له عنوان واضح، العنوان الاكثر اشمئزازا بالنسبة لي هي "اريد حل مستعجل!!" لماذا ذالك الاستعجال؟ او "الى كل المبرمجين المحترفين!" لماذا؟ هل يجب علي كخبير قواعد بيانات مثلا ان انقر على الموضوع لاجد انه موضوع عن مشاكل الHTML؟ هذا سيضيع وقتي وسيعيق المواضيع التي تريد حلا في قواعد البيانات.

اذا مذا تفعل؟ كيف تكتب العنوان المناسب؟ الحل هو في الكلمات المفتاحية، فاذا كانت سؤالك عن قواعد البيانت وتريد ان تعرف عدد السجلات التي تم كتابتها قبل اربع اسابيع، فاكتب "MySQL معرفه عدد السجلات على اساس الزمن". هذا العنوان واضح جداً. اي انك تريد خبير قواعد بيانات، وتريد معرفع عدد السجلات. الفوائد هي، اولا انك ستجذب كل المبرمجين اللذين يخصهم مواضيع قواعد البيانات، وثانيا تعطي للزائر انطباع بأنه اذا فتح الموضوع سيجد درس او على الاقل معلومة عن كيفيه فرز البيانات عن طريق الزمن، ثالثاً عندما يمر على موضوعك عدة اشهر، سيجعل البحث عنة اسهل، والتصفح اسهل بكثير. رابعاً محركات البحث تعطي مكانة اكبر للعناوين مقارنه مع المحتوى، فالبحث في قوقل قد يشير الى موضوعك، فبذالك انت ضربت عصفورين بحجر، اي وجدت حلا لسؤالك، وافذت شخص اخر، ربما ذالك الشخص يدعي لك بالخير!

صلب الموضوع:
كتابه العنوان هو جزء مهم. ولكن طريقه السؤال ايضا اكثر من مهم. طريقع وضع السؤال هي:
1- قم بوضع الروابط للمواضيع المشابه، هذا سيوضح للخبير انك فعلت تلك الاقتراحات الموجوده في تلك الروابط ولم تنفع معك، فلذالك سيحاول الخبير بأعطائك حلول اخرى غير موجودة في الروابط التي وجدتها انت
2- قم بوضع الهدف من حل المشكة، لا تكتب لماذا الملف لا يعمل؟ لاننا نحن كخبراء لا نعرف شيئا عما تريد ان تفعله بالملف. فوضع الهدف واجعله مشروح بطريقه سهل الفهم. فلا تتوقع باننا نستطيع ان نقراء مافي رأسك ونقول لك ماذا تفعل.
3- قم بكتابه الحلول التي جربتها، هذا سيفيد مثل النقطه 1
4- قم بكتابه البيئه التي تبرمج فيها، مثلا، سرفر XAMMP و اصدار الرابع من PHP و قواعد بيانات من الصدار الخامس مثلا
5- اذا هناك حل قد توصلت اليه قريب من الحل المطلوب ولكن لم يقم بالمطلوب بالطريقع الازمه، قم بوضعها
6- في ملفات الشفرات،حاول ان لا تكتب اسامي المتغيرات بالعربي، ولا تحاول ان تكتب المتغيرات باسمك. مثال الى المتغيرات الخاطئه
كود PHP:
<?
$t 
5;
$y 4// what is y?
$malaf '/home/ali/public_html'// bad var name

function ahmad($d,$s){ // bad function name
    
$z 'ahmad';
}



?>
الطريقه الصحيح في كتابه المتغيرات هي بالتقيد بالمعاير القياسيه، ومن امثلتها
كود PHP:
<?
$userName 
"khalid"// this is a camle case way
//or
$user_name "khalid"// this is a nother standard

$firstNumber 5// is much more clear than y or x right?
$secondNumber 4;

function 
getUserName($userID){
    
$result mysql_query('SELECT username from users where id = '.$userID);
    
//....
    
return $userName;
}

// السطرين التاليين واضحان جدا حتى بدون شرح
$currentUserName getUserName(3);
echo 
$currentUsername;

//or
$users = array('Ali','Khalid','Sami');
foreach(
$users as $user){
    echo 
$user;
}

// او افضل بكثير اذا بدأت باستخدام البرمجه الكائنية
$userId 4;
$user = new User($userId);
$user->setName("Khalid");
$user->setDateOfBirth("1999/01/01");

$user->addExperience("PHP");
$user->addExperience("C++");
$user->addExperience("Basketball");

if(
$user->save()){
    echo 
'User information was saved correctly';
}
else{
    echo 
'An error has happend';
}


?>