al-marwa بوركت يداك 
 ما قصرت في الإجاية ..
 
	
		
			
			
				س6 : عندما جربت إنشاء الجدول بلوحة التحكم ظهرت لي هذه الأوامر :
هل يفضل إضافة هذا السطر الأخير أم لا ؟؟ هل تنصحوني بإضافتها أم لا ؟ 
			
		
 
	 
 إذا كنت ستحددين ترميزاً خاصاً غير الافتراضي لجداولك ، يفضّل أن تستخدميه ، المحرك الافتراضي هو MyISAM لذلك لا ضرورة للعبارة .. لكن الاحتياط ضروري أحياناً .. 
 أنا لا أستخدمها في برمجتي ..
 
- ملاحظاتي:
1. هناك خطأ مطبعي في :
	كود PHP:
	
<form achtion=newuser?next=1 method=POST > 
 achtion ، والصحيح: action ..
 
2. حاولي أن تستخدمي علامات التنصيص المزدوجة Double Quotations في قيم خصائص وسوم الـ HTML ..
 
يعني مثلاً:
	كود PHP:
	
<form achtion=newuser?next=1 method=POST > 
 اجعليه:
	كود PHP:
	
<form action="newuser?next=1" method="POST"> 
 هذا سيفيدك في سهولة الانتقال إلى XHTML لاحقاً إن شاء الله تعالى .. 
 
3. اهتمي بحماية أكوادك ، في الإدخال إلى قاعدة البيانات مثلاً ، يمكنك الاستعانة بدالة addslashes أو mysql_escape_string أو mysql_real_escape_string ، وأنا أفضّل الأخيرة ..
 
	كود PHP:
	
    $name = $_POST['name']; 
    $pass = md5($_POST['pass']); 
    $email=$_POST['email']; 
 ستصبح هذه السطور:
	كود PHP:
	
    $name = mysql_real_escape_string(trim($_POST['name']));
    $pass = md5(trim($_POST['pass']));
    $email = mysql_real_escape_string(trim($_POST['email'])); 
 هذا يساعد في منع حقن الإستعلام بأوامر خارجية SQL Injection ..
 
4. التركيز أثناء كتابة الكود يوفّر جزءاً كبيراً من الوقت في حل المشاكل لاحقاً:
	كود PHP:
	
$reg = "INSERT INTO admin(name,pass,email,admin) VALUES('$name','$pass','$email',,'$admin')"; 
 هناك فاصلة أتت عن طريق الخطأ :# .. ستصبح:
	كود PHP:
	
$reg = "INSERT INTO admin(name,pass,email,admin) VALUES('$name','$pass','$email','$admin')"; 
 5. عند إرسال نموذج بطريقة POST استخدمي العنصر REQUEST_METHOD من دالة SERVER المعرفة مسبقاً .
 
فبدلاً من إرسال الصفحة إلى next=1 ، سنرسلها إلى اسم الملف فقط ، حيث أنه لا توجد سوى هذه العملية هنا ، فلا داعي للتفرع بواسطة GET ..
 
السطر التالي:
	كود PHP:
	
if($_GET['next']==1) { 
 سيصبح:
	كود PHP:
	
if ($_SERVER['REQUEST_METHOD'] == 'POST')  { 
 العنصر REQUEST_METHOD من هذه المصفوفة يحمل دائماً طريقة الوصول للصفحة ، في العادة يكون إما POST أو GET ، عند دخول الصفحة بشكل طبيعي ستكون GET ، أما إن حملت الصفحة بيانات مرسلة بطريقة POST ، فستكون القيمة POST وسيتم تنفيذ جملة الشرط 
 ..
 
6. هذا الجزء يبدو لي غريباً:
	كود PHP:
	
           $email = trim( $email );  
            if(!empty($email)){  
            if(preg_match('/^[a-z0-9\\_\\.]+@[a-z0-9\\-]+\\.[a-z]+\\.?[a-z]{2,4}$/i', $email, $match)) return strtolower($match[0]); 
            else  return false;  
                                } 
            else return false; 
         
            } 
 فهذا السطر :
	كود PHP:
	
          $email = trim( $email ); 
 لم يسبقه تعريف لـ email$ ، فما هو email$ .. ؟! أعتقد أنه عليك استبدالها بـ :
	كود PHP:
	
$email = trim($_POST['email']); 
 هذا ما لدي حالياً بعد نظرتي السريعة للردود والكود وكل ما سبق ..
 
المعذرة على التقصير ..
 
تحياتي، أشرف السمهوري