ما هى افضل الممارسات لبرمجة موقع كبير
السلام عليكم ورحمة الله وبركاته
من فترة نصبت سكربت كليجا لرفع الملفات صراحة سكربت اعجبني واريد ان اسنفسر عن امرين في البداية انا شغال على برمجة موقع كبير وراح يستقبل عدد زوار كبير فما هي الاسس والمعايير الواجب استخدمها للحصول على اسرع برمجة + عندما قمت باضافة الاسم في قاعدة البيانات باللغة العربية لقيت الاسم نفس الشي بمعنى انه غير مشوه ارجوا افادتي شكرا
5 إجابات
أنا لن أتكلم عن طرق البرمجة، فالإخوة غطوها ... لكن لننظر ناجية السيرفر.
أولاً، يجب أن تقوم بـStress Test لمعرفة مدى إحتمال السيرفر و الموقع ... ثانياً، و الأهم التأمين. و هذا عن طريق Penetration Testing و SQL Injection لأن المبرمجين فى بعض الأحيان ينسون الكشف عن المدخلات. و هذا يسبب خلل فى الموقع و يسمح للهاكرز بالدخول و سحب قاعدة البيانات و هذه تعرف بإسم SQL Dump بواسطة: sikas 1 من 1 أشخاص وجدو هذه الاجابة مفيدة. هل وجدتها؟ نعم لا
بالنسبة للبرمجة الأفضل عليك استخدام الكلاسات فهي تسهل عليك الكثير
اما بالنسبة للغة العربية بالاضافة الى استخدام ترميز utf8 في الهيدر أعلى الصفحة وكذا نوع ترميز الصفحة من خصائص الصفحة من خلال الدريم ويفر أو يمكنك تحويلها باستخدام مفكرة الويندوز لكن ان كان كل شيء يعمل والمشكلة الوحيدة هي في ادخال واستخراج البيانات من قاعدة البيانات عليك استعمال الاسطر التالية في ملف الاتصال عند استخدام دالة الاتصال mysql_query("SET character_set_client=utf8"); mysql_query("SET character_set_connection=utf8"); mysql_query("SET character_set_database=utf8"); mysql_query("SET character_set_results=utf8"); mysql_query("SET character_set_server=utf8"); كما يجب عند انشاء قاعدة البيانات بأن تكون MySQL connection collation: utf8-general-ci بواسطة: al3rdan 0 من 0 أشخاص وجدو هذه الاجابة مفيدة. هل وجدتها؟ نعم لا
استخد هذا الكود بعد الاتصال بقاعدة البينات مباشرة
mysql_set_charset('utf8'); بواسطة: Amer 1 من 1 أشخاص وجدو هذه الاجابة مفيدة. هل وجدتها؟ نعم لا
لا تستعمل SELECT * لان كلما كثرت الحقول الذى تريد قارئتا ستسبب حمل كبير
// غير مفضل $r = mysql_query("SELECT * FROM user WHERE user_id = 1"); $d = mysql_fetch_assoc($r); echo "Welcome {$d['username']}"; // الافضل: $r = mysql_query("SELECT username FROM user WHERE user_id = 1"); $d = mysql_fetch_assoc($r); echo "Welcome {$d['username']}";وايضا لا تستعمل ORDER BY RAND() لانها ثقيلة للغاية وتسبب مشكل البطىء // حاول الا تفعل هذا: $r = mysql_query("SELECT username FROM user ORDER BY RAND() LIMIT 1"); // مفضل اكثر: $r = mysql_query("SELECT count(*) FROM user"); $d = mysql_fetch_row($r); $rand = mt_rand(0,$d[0] - 1); $r = mysql_query("SELECT username FROM user LIMIT $rand, 1"); وايضا لابد ان يوجد حقل id فى اى جدول ويكون PRIMARY KEY و AUTO_INCREMENT و INT و يفضل ايضا ان يكون UNSIGNED حتى لا يحمل اشارة سالبة بواسطة: molhm 2 من 2 أشخاص وجدو هذه الاجابة مفيدة. هل وجدتها؟ نعم لا ممتاز شكرا جزيلا لك ارجوا افادتي في امور اخرى اذا توفرت
بالنسبة للمواقع الكبيرة يفضل عدم استعمال الكثير من الاستعلامات اى محاولة استخدام اوامر join للدخول الى الجداول الاخرى فى نفس الاستعلام لتتخفيف من الامر ، فانا كنت اعمل فى موقع كبير كانت هذه مشكلته ، يوجد به الكثير من الاستعلامات وعندما يصل عدد زواره اكثر من 1000 السيرفر يتوقف ، واستعملنا نظام الكاش.
بواسطة: MacOS 2 من 2 أشخاص وجدو هذه الاجابة مفيدة. هل وجدتها؟ نعم لا شكرا لردك بالتاكيد كمثال ، بدلا من ان تحضر المقالة فى استعلام واسم العضو كاتب المقالة فى استعلام منفصل يمكنك عمل الاثنين فى واحد باوامر الجوين معلش اخوي ارجوا التوضيح اكثر :) لو سمحت اذا فيك توضيح "واستعملنا نظام الكاش" بدلا من ان كل مرة تتصل بقاعدة البيانات وتاتى بنفس الشىء الكاش يحفظ البيانات كملفات بها مصوفوفات على السيرفر ويحدثها كل عدد من الثوانى بدلا من الاتصال بسيرفر قاعدة البيانات نعم و يفضل استعمال نظام قوالب سمارتي للمشاريع الكبيرة لانه نظام قوالب سمارتي يحتوي على نظام كاش جاهز ممكن شروحات عن نظام سمارتي بارك الله فيكم صراحة بحثت باللغة العربية لم اجد موضوع شامل بهذا الخصوص هذا موقعهم smarty.net ليس عندي دراية به جيداً لأنني أعمل بدون نظام قوالب إن شاء الله الأخوة يفيدوك حمل المحرك + المثال المرفق وانظر به راح تفهم كيف يعمل وبعد ذلك ادخل المنوال شوفت بعض الشروحات على الانترنت لكن تحس انها لغة ثانية ^_^ لو عندك بعض لخبرة فيك يمكن أن لا تستعمل نظام القوالب تبرمج عادي و تضيف نظام الكاش الى برمجياتك والله شايف نظام القوالب معقد راح ابحث عن شرحات بنظام الكاش |
ماذا تقصد باضافة لقاعدة البيانات؟ هل استعملت phpmyadmin ام من الخارج؟
28 / يناير / 2012 الساعة 23:9
اهلا بك , اقصد من خلال برمجة
28 / يناير / 2012 الساعة 23:11
لم افهم ما تقصد ، هل تضيفه عليه ان يظهر مشوه؟
28 / يناير / 2012 الساعة 23:15
اعتقد ما وصلتك الفكرة عند الاستعلام تظهر لغة عربية تمام التمام لكن عندما ادخل الـ phpmyadmin , واعرض الحقول تظهر غريبة مثل "ØÇÑÞ ÇÍãÏ " اتسائل كيف تمكن مبرمجي سكربت كليجا من ظهور البيانات المدخلة في phpmyadmin باللغة العربية
اتمنى ان تكون الامور واضحة
شكرا
28 / يناير / 2012 الساعة 23:52
عن طريق <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
28 / يناير / 2012 الساعة 23:56
حتى تكون الامور اوضح , اللغة بالفعل لغة عربية لكن المشكلة مثلا لو كتبت "فيس بوك" عند الاستعلام تظهر "فيس بوك" لكن عندما ادخل الــ phpmyadmin
تظهر بهذا الشكل ""ØÇÑÞ ÇÍãÏ ""
28 / يناير / 2012 الساعة 23:56
لا يوجد مشكلة بالترميز
28 / يناير / 2012 الساعة 23:56
اها اللغة العرابية معروفة انها لا تعمل فى الـphpmyadmin لان ترميزه لا يدعمها ولو كتبتها من خلاله ستظهر به ولن تظهر خارجه
28 / يناير / 2012 الساعة 23:58
هذه ما اعرفه , لكن عندما جربت سكربت كليجا اي عضو يسجل باللغة العربية يظهر كما هو في الــ phpmyadmin
29 / يناير / 2012 الساعة 0:0
هذا حال اى اسكربت وليس كليجا
29 / يناير / 2012 الساعة 0:9
طيب شو بيستخدمو ^_^
29 / يناير / 2012 الساعة 0:59
أولا على الترميز في قاعدة البيانات ان يكون utf-8 و كذلك الحال في صفحة الإدخال إجعلها utf-8
29 / يناير / 2012 الساعة 10:36
http://www.sqlbuddy.com/
29 / يناير / 2012 الساعة 17:10