1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [تابع أسبوع 8] 2 00:00:02,000 --> 00:00:04,000 [ديفيد J. مالان] [جامعة هارفارد] 3 00:00:04,000 --> 00:00:08,000 [هذا CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:13,000 >> هذا هو CS50، لذلك هذا هو نهاية أسبوع 8 هنا. 5 00:00:13,000 --> 00:00:16,000 كان لدينا بالطبع قليلا من الاعصار في وقت سابق هذا الأسبوع، 6 00:00:16,000 --> 00:00:19,000 حتى الآن هو حقا فقط أنت وأنا في هذه القاعة محاضرة، 7 00:00:19,000 --> 00:00:22,000 ولكن اليوم نحن نواصل حديثنا عن PHP 8 00:00:22,000 --> 00:00:25,000 وحول برمجة الويب بشكل عام، ونحن نقدم أيضا فكرة 9 00:00:25,000 --> 00:00:29,000 قواعد البيانات، لا سيما احد يسمى الخلية، التي تحظى بشعبية كبيرة هذه الأيام، 10 00:00:29,000 --> 00:00:34,000 في جزء كبير منه بسبب قابلية، وكذلك بسبب كونها الحرة والمفتوحة المصدر. 11 00:00:34,000 --> 00:00:37,000 >> ولكن أولا، نظرة على حيث توقفنا آخر مرة. 12 00:00:37,000 --> 00:00:40,000 أذكر أننا كنا ننظر إلى العديد من الأمثلة الرسائل الفورية Frosh، 13 00:00:40,000 --> 00:00:44,000 وكان هذا النموذج البشع الذي جئت حتى مع سنوات + منذ نحو 15 14 00:00:44,000 --> 00:00:49,000 من أجل أن يكون الطلاب على الحرم الجامعي سجل للرياضة جماعية طالبة 15 00:00:49,000 --> 00:00:52,000 دون الحاجة فعلا لرحلة بعد الآن عبر الفناء ليجلزوورث 16 00:00:52,000 --> 00:00:56,000 إلى الشريحة قطعة من الورق تحت البدنية الباب بعض بروكتور. 17 00:00:56,000 --> 00:00:59,000 انتقل بدلا من ذلك نحن كل شيء عبر الإنترنت، ولكن للقيام بذلك نحن بحاجة إلى الاستفادة 18 00:00:59,000 --> 00:01:03,000 من التكنولوجيات قليلة، حتى واحد، نحن في حاجة HTML، لغة توصيف النص التشعبي، 19 00:01:03,000 --> 00:01:07,000 وهو مرة أخرى هذه اللغة الترميزية التي تقوم بها صفحات الويب هيكليا. 20 00:01:07,000 --> 00:01:10,000 >> استخدام القليل من CSS في هذه الأيام، أوراق الأنماط المتتالية، 21 00:01:10,000 --> 00:01:16,000 حيث نستخدم stylizations من صفحة ويب باستخدام بناء جملة مختلف قليلا، 22 00:01:16,000 --> 00:01:19,000 في حين كان كل شيء عن HTML بنية منه. 23 00:01:19,000 --> 00:01:21,000 ونحن بحاجة أيضا إلى إدخال لغة البرمجة على شبكة الإنترنت. 24 00:01:21,000 --> 00:01:25,000 في هذه الحالة، سوف نستخدم PHP، PHP وسوف تسمح لنا 25 00:01:25,000 --> 00:01:28,000 خرج إلى المحتوى ديناميكيا وكذلك كما تفعل أشياء مثل برنامجي 26 00:01:28,000 --> 00:01:33,000 إرسال رسائل البريد الإلكتروني، كما كان الحال على المذكرة غادرنا الأسبوع الماضي. 27 00:01:33,000 --> 00:01:35,000 >> يذكر أن قانون لهذا كان في 2 أجزاء. 28 00:01:35,000 --> 00:01:38,000 واحد، كان لدينا froshims3.php، 29 00:01:38,000 --> 00:01:42,000 وكان هذا التوصيف إلى حد كبير مع نموذج HTML داخل منه، 30 00:01:42,000 --> 00:01:45,000 القليل من CSS هنا حتى في سمات نمط 31 00:01:45,000 --> 00:01:48,000 وبحيث يتم توسيط النموذج نفسه على الصفحة، ولكن أبعد من ذلك 32 00:01:48,000 --> 00:01:51,000 كان لدينا بعض المدخلات شكل ممثل، حقل النص، مربع، 33 00:01:51,000 --> 00:01:55,000 بعض أزرار الراديو، وقائمة مختارة، وعلى زر إرسال. 34 00:01:55,000 --> 00:02:01,000 وعبر هذا النموذج، قدمنا ​​إلى ملف التي كانت تسمى فيما يبدو register3.php، 35 00:02:01,000 --> 00:02:04,000 بدا التي في حد ذاته شيئا قليلا من هذا القبيل. 36 00:02:04,000 --> 00:02:08,000 الآن، كان معظم التعليمات البرمجية في register3.php، أذكر، كل شيء عن البريد الإلكتروني. 37 00:02:08,000 --> 00:02:11,000 فعلت قليلا من التحقق من صحة النموذج الذي قدم للتأكد من 38 00:02:11,000 --> 00:02:14,000 التي تم توفيرها في الواقع الحقول التي كان من المتوقع. 39 00:02:14,000 --> 00:02:18,000 ثم دعا لنا بعض وظائف PHP باستخدام بناء الجملة قليلا جديدة، 40 00:02:18,000 --> 00:02:20,000 على الرغم من انها اقترضت من أنه C. 41 00:02:20,000 --> 00:02:24,000 >> هذا المشغل سهم يتيح لنا الاستفادة من ما يسمى وجوه المنحى البرمجة. 42 00:02:24,000 --> 00:02:27,000 فإننا لن يذهب الى ذلك بأي قدر من التفصيل هنا، ولكن أعرف في الوقت الراهن 43 00:02:27,000 --> 00:02:31,000 انها وسيلة من وجود وظائف الكائنات المرتبطة، 44 00:02:31,000 --> 00:02:34,000 التي هي نوع خاص من الهيكل، كما رأينا في C. 45 00:02:34,000 --> 00:02:37,000 لكن في الوقت الراهن، تأخذ فقط على الإيمان بأن هذا هو بناء الجملة الصحيح لاستخدام 46 00:02:37,000 --> 00:02:41,000 عند استخدام مكتبة مثل هذه المكتبة PHPMailer. 47 00:02:41,000 --> 00:02:44,000 ثم في نهاية هذا الملف كنا قد تم إنشاؤه بشكل حيوي بريد الكتروني 48 00:02:44,000 --> 00:02:47,000 التي حصلت على إرسالها إلى حساب بلدي jharvard@cs50.net 49 00:02:47,000 --> 00:02:50,000 من حساب jharvard@cs50.net بلدي، 50 00:02:50,000 --> 00:02:54,000 وأبلغنا المستخدم بناء على ذلك تم تسجيلها لهذه الرياضة. 51 00:02:54,000 --> 00:02:57,000 هذا هو الى حد كبير ما لم Frosh موقع الرسائل الفورية كل تلك السنوات منذ 52 00:02:57,000 --> 00:03:00,000 عندما كنت تنفيذه، منح، في لغة مختلفة، 53 00:03:00,000 --> 00:03:02,000 ولكنه ربما يظهر لك القوة التي لديك 54 00:03:02,000 --> 00:03:05,000 الآن يمكنك التعبير عن نفسك فقط لا برمجيا 55 00:03:05,000 --> 00:03:08,000 على مستوى منخفض في لغة C ولكن في مثل مستوى أعلى بكثير 56 00:03:08,000 --> 00:03:11,000 مع هذه التطبيقات العالم الحقيقي جدا مثل البريد الإلكتروني إلى حل فعلا 57 00:03:11,000 --> 00:03:13,000 بعض مشاكل العالم الحقيقي. 58 00:03:13,000 --> 00:03:16,000 >> الآن، بطبيعة الحال، على الرغم من أنني استخدام هذا البرنامج النصي لتوليد بعض 59 00:03:16,000 --> 00:03:20,000 رسائل البريد الإلكتروني بشكل حيوي من jharvard@cs50.net، الذي هو في الواقع حساب 60 00:03:20,000 --> 00:03:23,000 أن لدي الوصول إلى، لا أن نكون حذرين للغاية لإرسال 61 00:03:23,000 --> 00:03:26,000 البريد فقط من الحسابات التي هي في الواقع بنفسك، 62 00:03:26,000 --> 00:03:30,000 لئلا الأمور تحصل في قليلا من الماء الساخن في الحياة. 63 00:03:30,000 --> 00:03:35,000 مع أن قال، دعونا الآن الانتقال إلى حل مشكلة مختلفة تماما، 64 00:03:35,000 --> 00:03:37,000 أن الدول الاحتفاظ. 65 00:03:37,000 --> 00:03:39,000 الآن، ماذا يعني هذا في الواقع؟ 66 00:03:39,000 --> 00:03:42,000 HTTP، بروتوكول نقل النص التشعبي هذا، 67 00:03:42,000 --> 00:03:45,000 هو في الواقع بروتوكول عديمي الجنسية، وما يعنيه هذا هو أن 68 00:03:45,000 --> 00:03:48,000 عند سحب ما يصل شيء من هذا القبيل ثم Google.com وتصل إلى تدخل 69 00:03:48,000 --> 00:03:51,000 عادة المتصفح لديه بعض النوع من الغزل رمز ثم أن 70 00:03:51,000 --> 00:03:54,000 يتم تحميلها النتائج في بعض صفحات الويب، 71 00:03:54,000 --> 00:03:57,000 ثم توقف قليلا أن رمز الغزل، والتي تشير إلى الواقع 72 00:03:57,000 --> 00:04:02,000 إلى اكتمال HTTP نوع من الاتصال بالخادم وهذا كل شيء. 73 00:04:02,000 --> 00:04:05,000 HTTP عديم الجنسية، بمعنى أنه لا يحتفظ 74 00:04:05,000 --> 00:04:08,000 اتصال مستمر إلى الملقم في سكايب بنفس الطريقة لا 75 00:04:08,000 --> 00:04:11,000 أو هل لأن Gchat مع HTTP 76 00:04:11,000 --> 00:04:15,000 الافتراض هو أنه بمجرد كنت قد جلب صفحة ويب هذا كل شيء. 77 00:04:15,000 --> 00:04:18,000 >> الآن، في الواقع هذه الأيام على مواقع مثل الفيسبوك وخرائط جوجل 78 00:04:18,000 --> 00:04:21,000 وتويتر وما شابه ذلك هناك الكثير من الديناميكية حيث 79 00:04:21,000 --> 00:04:25,000 حتى بعد أن يتوقف رمز الغزل يمكنك الحصول في الواقع المزيد من التحديثات 80 00:04:25,000 --> 00:04:29,000 من الملقم، أكثر تويت والتحديثات في الفيسبوك أكثر الوضع وما شابه ذلك. 81 00:04:29,000 --> 00:04:33,000 ولكن حتى الذي يستخدم تقنية التي سنتحدث عنها في غضون أسبوع أو أسبوعين 82 00:04:33,000 --> 00:04:36,000 المعروفة باسم اياكس باستخدام لغة تسمى جافا سكريبت، 83 00:04:36,000 --> 00:04:38,000 ولكن في نهاية اليوم، لا يزال HTTP عديمي الجنسية. 84 00:04:38,000 --> 00:04:42,000 وحتى الآن إذا كنت تريد أن تذكر على نحو ما الأشياء عن مستخدم 85 00:04:42,000 --> 00:04:44,000 حتى بعد لقد قطع هم من الخادم الخاص بك 86 00:04:44,000 --> 00:04:47,000 PHP لا تحمل لك وسيلة للقيام بذلك 87 00:04:47,000 --> 00:04:52,000 لأنه، كما رأينا المرة الأخيرة، PHP لديها عدد من superglobals، 88 00:04:52,000 --> 00:04:55,000 وsuperglobal هو، مرة أخرى، متغير الخاصة العالمية 89 00:04:55,000 --> 00:04:59,000 وسلمت لك من قبل أن خادم الويب وPHP نفسها. 90 00:04:59,000 --> 00:05:02,000 >> لم يكن لديك لتفعل أي شيء لوضع القيم فيه، 91 00:05:02,000 --> 00:05:05,000 وبين superglobals رأيناه حتى الآن يتم الحصول على وظيفة، 92 00:05:05,000 --> 00:05:08,000 وهو حيث يتم وضع حقول النموذج تلقائيا بالنسبة لك، 93 00:05:08,000 --> 00:05:11,000 فضلا عن اثنين آخرين أننا لم نشهد حتى الآن. 94 00:05:11,000 --> 00:05:17,000 داخل دولار _SERVER بعض المتغيرات الخاصة المتعلقة الملقم نفسه. 95 00:05:17,000 --> 00:05:22,000 ما هو عنوان IP، ما البروتوكول، HTTP أو HTTPS لم تستخدمها، 96 00:05:22,000 --> 00:05:25,000 ما طريقة طلب استخدمتها وما شابه، لذلك هناك بعض مثيرة للاهتمام، 97 00:05:25,000 --> 00:05:29,000 العصير تفاصيل حول الخادم، في واقع الأمر، المستخدم في هناك أيضا. 98 00:05:29,000 --> 00:05:33,000 هناك $ _cookie، الذي هو مصدر هذه الاشياء يتم تخزين ملفات تعريف الارتباط ودعا. 99 00:05:33,000 --> 00:05:36,000 فإننا لن قضاء بعض الوقت على ملفات تعريف الارتباط نفسها اليوم، 100 00:05:36,000 --> 00:05:40,000 ولكن نعرف الآن أن الكعكة هو مجرد قطعة صغيرة من المعلومات 101 00:05:40,000 --> 00:05:43,000 التي يمكن أن خادم الويب النباتية على متصفح الإنترنت 102 00:05:43,000 --> 00:05:46,000 وبدوره RAM، أو محرك الأقراص الثابت الكمبيوتر الخاص به 103 00:05:46,000 --> 00:05:49,000 لتخزين المعلومات عن مستخدم، على سبيل المثال، اسم المستخدم 104 00:05:49,000 --> 00:05:52,000 بحيث لم يكن لديك لكتابته كل مرة يدخلون فيها في بعض أو 105 00:05:52,000 --> 00:05:55,000 فريد رقم أو معرف لهذا المستخدم 106 00:05:55,000 --> 00:05:58,000 بحيث لم يكن لديك لالالحاح لهم مثل هذا النوع من الأسئلة حول 107 00:05:58,000 --> 00:06:00,000 تفضيلات في المستقبل، ولكن معظم الفائدة 108 00:06:00,000 --> 00:06:02,000 الآن هو $ _SESSION. 109 00:06:02,000 --> 00:06:07,000 >> هذا superglobal، والتي، مثل الآخرين، وسلمت لكم تلقائيا باستخدام PHP 110 00:06:07,000 --> 00:06:10,000 عندما كنت تكتب PHP القائمة على المواقع 111 00:06:10,000 --> 00:06:13,000 يمكن تخزين أي شيء تريده، سلاسل، الأعداد الصحيحة، 112 00:06:13,000 --> 00:06:16,000 العائمة نقطة، والقيم، المصفوفات، الكائنات، 113 00:06:16,000 --> 00:06:20,000 حقا أي شيء الذي تريده، ويسمح لك لتخزين في مثل هذه الطريقة 114 00:06:20,000 --> 00:06:23,000 أنه حتى لو يقوم المستخدم بزيارة كنت بين الحين والآخر 115 00:06:23,000 --> 00:06:26,000 يعود دقيقة من الآن أو 5 دقائق من الآن لأن 116 00:06:26,000 --> 00:06:28,000 انهم يأخذون وقتهم قبل النقر فوق بعض وصلة أخرى 117 00:06:28,000 --> 00:06:32,000 سوف PHP ضمان مهما كنت وضعت في هذا superglobal الدورة 118 00:06:32,000 --> 00:06:37,000 وبعد دقائق أو 5 دقائق قبل أن يكون لا يزال هناك عندما يعود المستخدم. 119 00:06:37,000 --> 00:06:40,000 وتحت غطاء محرك السيارة ويتم تنفيذ هذا عن طريق superglobal 120 00:06:40,000 --> 00:06:44,000 ودعا تلك الأشياء الكوكيز، ولكن في الوقت الراهن، انها مجرد فكرة مجردة 121 00:06:44,000 --> 00:06:47,000 حيث انها نوع من ما يعادل البرنامجي للعربة التسوق. 122 00:06:47,000 --> 00:06:50,000 مهما كنت، ومبرمج، وطرح في هذا 123 00:06:50,000 --> 00:06:53,000 وسوف تكون مجموعة النقابي superglobal هناك بعض عدد الدقائق في وقت لاحق 124 00:06:53,000 --> 00:06:59,000 حتى تقوم بحذفها أو حتى المستخدم إنهاء المتصفح له أو لها تماما. 125 00:06:59,000 --> 00:07:02,000 >> دعونا نلقي نظرة على مثال لكيفية استخدام هذا الشيء في الواقع. 126 00:07:02,000 --> 00:07:07,000 في counter.php بين القطع اليوم من التعليمات البرمجية 127 00:07:07,000 --> 00:07:09,000 لدينا السطر التالي. 128 00:07:09,000 --> 00:07:13,000 في بداية هذا الملف لدينا مجموعة من التعليقات الأزرق، والتي رتيبا في الوقت الراهن. 129 00:07:13,000 --> 00:07:15,000 ولكن في خط 13 لدينا سطر جديد، 130 00:07:15,000 --> 00:07:18,000 session_start، والتي في الواقع لا بالضبط ما يقول. 131 00:07:18,000 --> 00:07:20,000 ويبدأ جلسات. 132 00:07:20,000 --> 00:07:25,000 أنها تمكنك من استخدام هذا superglobal $ _SESSION كبيرة، وانها بهذه البساطة. 133 00:07:25,000 --> 00:07:30,000 الآن، إذا كان لنا أن المضي قدما للنظر في السطر 16، دعونا في محاولة لمعرفة ما صفحة الويب هذه هو الذهاب الى القيام به. 134 00:07:30,000 --> 00:07:35,000 اذا (isset ($ _SESSION ["مكافحة"]) ثم المضي قدما 135 00:07:35,000 --> 00:07:39,000 وتخزينها في المتغير العداد، ومكافحة صغيرة، 136 00:07:39,000 --> 00:07:42,000 $ _SESSION ["مكافحة"]. 137 00:07:42,000 --> 00:07:45,000 هذا ويبدو أن الإعلان عن متغير محلي يسمى مكافحة 138 00:07:45,000 --> 00:07:48,000 داخل منها انها وضع نسخة من كل ما هو داخل superglobal 139 00:07:48,000 --> 00:07:52,000 ودعا الدورة في موقع "العداد." 140 00:07:52,000 --> 00:07:56,000 آخر، على ما يبدو، هذا القليل مكافحة متغير محلي، يتم تهيئة إلى 0. 141 00:07:56,000 --> 00:08:01,000 >> ولكن بعد ذلك بضعة أسطر في وقت لاحق في 26 نسخة لاحظ أن الدورة من العداد، 142 00:08:01,000 --> 00:08:06,000 مفتاحه، لديها تعيين القيمة الجديدة التي هي قيمتها الحالية بالإضافة إلى 1. 143 00:08:06,000 --> 00:08:09,000 باختصار، هذا الملف يبدو أن تحديث 144 00:08:09,000 --> 00:08:13,000 عداد التي يتم تخزينها داخل superglobal الدورة 145 00:08:13,000 --> 00:08:16,000 من تزايد ذلك في موعد أقصاه 1، ولكنه يحتفظ لأول مرة نسخة من القيمة السابقة 146 00:08:16,000 --> 00:08:20,000 بواسطة تخزينها في متغير محلي يسمى مكافحة $، 147 00:08:20,000 --> 00:08:22,000 ثم أسفل هنا دعونا نرى ما تبقى. 148 00:08:22,000 --> 00:08:24,000 تبين انه موجود HTML فقط. 149 00:08:24,000 --> 00:08:29,000 في الجزء السفلي من هذه الصفحة ونحن نرى في خط ال 37 التي زرتها في هذا الموقع 150 00:08:29,000 --> 00:08:33,000 عدد المرات مكافحة، لذلك هناك ملامح الزوجين للاهتمام هنا. 151 00:08:33,000 --> 00:08:36,000 واحد، وهذا هو متغير بشكل واضح، ولكنها لا تكفي لمجرد وضع 152 00:08:36,000 --> 00:08:39,000 $ العداد في جسد HTML الخاص بك لأنه بطبيعة الحال 153 00:08:39,000 --> 00:08:43,000 اذا كان هناك فقط بين PHP HTML الخاص بك هو ذاهب لنفترض أن هذا HTML فقط. 154 00:08:43,000 --> 00:08:48,000 تريد حرفيا $ مكافحة المراد طباعتها على الشاشة. 155 00:08:48,000 --> 00:08:51,000 >> ولكن بدلا من ذلك عن طريق إسقاط في وضع PHP 156 00:08:51,000 --> 00:08:55,000 مع هذه القطعة من الجملة يمكننا إدراج قيمة حيوي هنا 157 00:08:55,000 --> 00:08:58,000 مشابهة جدا في الروح إلى ما قمنا به آخر مرة مع 158 00:08:58,000 --> 00:09:00,000 إدراج القيم في السلاسل. 159 00:09:00,000 --> 00:09:04,000 في الواقع، وهذا هو مجرد تدوين اختزال لقوله شيئا من هذا القبيل حرفيا، 160 00:09:04,000 --> 00:09:12,000 الطباعة ($ العداد) أو حتى شيء من هذا القبيل (٪ S مكافحة،) printf، 161 00:09:12,000 --> 00:09:14,000 أو حتى، كما كنت قد شهدت عبر الإنترنت أو في الكتب المدرسية، 162 00:09:14,000 --> 00:09:17,000 هناك وظيفة تسمى صدى في PHP 163 00:09:17,000 --> 00:09:20,000 الذي يفعل الشيء نفسه، وجميع هذه الطرق هي مجرد يعد ينضب 164 00:09:20,000 --> 00:09:25,000 لقول <؟ =. 165 00:09:25,000 --> 00:09:28,000 في هذا حالة واحدة لا تحتاج لوضع 166 00:09:28,000 --> 00:09:30,000 وPHP الكلمة بعد علامة الاستفهام. 167 00:09:30,000 --> 00:09:34,000 هذا هو اختصار لتدوين، مرة أخرى، ما رأيناه فقط قبل لحظة 168 00:09:34,000 --> 00:09:37,000 الذي يردد بعض القيمة. 169 00:09:37,000 --> 00:09:39,000 >> دعونا نرى ما النتيجة النهائية لهذا هو في الواقع. 170 00:09:39,000 --> 00:09:43,000 اسمحوا لي أن يذهب أكثر في ملف counter.php لدينا، 171 00:09:43,000 --> 00:09:47,000 وسنرى أن داود ارتكب خطأ فحسب من خلال اللعب مع رمز هناك. 172 00:09:47,000 --> 00:09:50,000 دعونا نذهب الإصلاح أيا كان سكران، 173 00:09:50,000 --> 00:09:54,000 ويبدو أن الخطأ هناك، ذهب، على خط 37. 174 00:09:54,000 --> 00:09:59,000 وفقا لأعلى هذه الصفحة لقد زرت هذا الموقع 0 مرة. 175 00:09:59,000 --> 00:10:02,000 حسنا، دعونا نمضي قدما الآن، وعلى رأس من المتصفح انقر على 176 00:10:02,000 --> 00:10:05,000 إعادة تحميل الرمز، وأنا تحميل، انقر فوق 177 00:10:05,000 --> 00:10:12,000 والآن لقد زار الموقع 1 مرة، 2، 3، 4، 5، 6، 7، 8. 178 00:10:12,000 --> 00:10:16,000 والواقع أنه إذا نظرنا إلى مصدر هذه الصفحة شفرة المصدر الفعلي يتغير، 179 00:10:16,000 --> 00:10:19,000 وتلاحظ الغياب التام لأي PHP، والتي جاء فيها أن 180 00:10:19,000 --> 00:10:23,000 يتم تقييم PHP رمز أو تفسير جانب الملقم، 181 00:10:23,000 --> 00:10:27,000 وهذا يعني أن ذلك ناتج من البرنامج النصي PHP هو ما بعث في نهاية المطاف إلى المستعرض، 182 00:10:27,000 --> 00:10:31,000 وهو في هذه الحالة هو بعض HTML الخام وبعض النصوص الخام. 183 00:10:31,000 --> 00:10:33,000 ما يحدث هنا؟ 184 00:10:33,000 --> 00:10:37,000 >> حسنا، مع خطوط قليلة نسبيا من التعليمات البرمجية وأنا قادرة على تخزين 185 00:10:37,000 --> 00:10:40,000 باستمرار على مدى عدة ثوان، أو إذا انتظرنا لفترة كافية، 186 00:10:40,000 --> 00:10:44,000 دقائق وساعات حتى بعض القيمة بطريقة تجعل HTTP 187 00:10:44,000 --> 00:10:47,000 يبدو كما لو جليل لقد احتفظت 188 00:10:47,000 --> 00:10:51,000 هذا الصدد إلى الخادم، وانها تذكر فقط ما قلت أنها المرة الأخيرة، 189 00:10:51,000 --> 00:10:55,000 ولكن في الواقع هناك مجموعة كاملة من التعقيد يجري تحت غطاء محرك السيارة 190 00:10:55,000 --> 00:10:59,000 التي تنطوي على ملفات تعريف الارتباط التي التمكينية PHP أن تعطيني هذا الوهم 191 00:10:59,000 --> 00:11:02,000 هذا عربة التسوق تشبه الميزة. 192 00:11:02,000 --> 00:11:05,000 في الوقت الراهن، مثال تافهة حيث نحن فقط تخزين عدد صحيح، 193 00:11:05,000 --> 00:11:08,000 ولكن ذلك يعود إلى ميزة أن تكون ذات قيمة كبيرة 194 00:11:08,000 --> 00:11:10,000 عندما نبدأ الحديث عن المشاريع أكثر تعقيدا، 195 00:11:10,000 --> 00:11:12,000 من بينها تعيين المشكلة 7. 196 00:11:12,000 --> 00:11:16,000 هذه هي مشكلتك مشاركة جدا في تعيين CS50. 197 00:11:16,000 --> 00:11:19,000 وأنا أعلم، أنه من المحزن جدا، ولكن ما سوف تجد هو أننا ذاهبون إلى إبرام 198 00:11:19,000 --> 00:11:22,000 هذا الجزء من الفصل الدراسي من خلال تحويل الواقع 199 00:11:22,000 --> 00:11:25,000 من سياق C بالتأكيد سياق PHP 200 00:11:25,000 --> 00:11:27,000 ولكن في حين أن استخدام بعض أساسيات نفسه 201 00:11:27,000 --> 00:11:29,000 لقد تحدثنا عن لبعض الوقت. 202 00:11:29,000 --> 00:11:33,000 >> الهدف مع pset 7 في تنفيذ CS50 المالية، 203 00:11:33,000 --> 00:11:37,000 وهو الإصدار الخاص بك من ياهو المالية أو التمويل جوجل 204 00:11:37,000 --> 00:11:40,000 أو حتى Etrade.com حيث لديك القدرة على 205 00:11:40,000 --> 00:11:43,000 البحث عن أسعار الأسهم لرموز معينة، ولكن أكثر من ذلك 206 00:11:43,000 --> 00:11:48,000 لديك القدرة على "شراء" و "بيع" الأسهم 207 00:11:48,000 --> 00:11:51,000 أن يتم تداول في البورصات المختلفة لأنه كما هذه الصفحة الرئيسية 208 00:11:51,000 --> 00:11:55,000 يشير هنا، وهو في الواقع إلى أي مدى بدأنا 209 00:11:55,000 --> 00:11:59,000 مجموعة مشكلة بالنسبة لك، لديك نموذج تسجيل الدخول هذا ما يسأل عن اسم مستخدم وكلمة مرور. 210 00:11:59,000 --> 00:12:03,000 أنه يحتوي على زر إرسال، ولكن بعد ذلك، كما سنرى في نهاية المطاف، 211 00:12:03,000 --> 00:12:06,000 ليس هناك شيء يحدث في الواقع تحت غطاء محرك السيارة لأنه حتى الآن 212 00:12:06,000 --> 00:12:09,000 يبقى لك لتنفيذ القدرة على تسجيل المستخدمين الجدد، 213 00:12:09,000 --> 00:12:12,000 القدرة على شراء الأسهم، لبيع الأسهم، 214 00:12:12,000 --> 00:12:14,000 لننظر في الواقع إلى ارتفاع أسعار الأسهم الحالية. 215 00:12:14,000 --> 00:12:17,000 >> وبالفعل، فإن ذلك لن يكون كما العالم الحقيقي ممكن لأننا لم 216 00:12:17,000 --> 00:12:20,000 وتشمل قليلا من التعليمات البرمجية التي من شأنها أن تسمح لك وظيفة واحدة 217 00:12:20,000 --> 00:12:25,000 للاستعلام ياهو المالية، الأمر الذي يجعل رائعة البيانات المتاحة مجانا 218 00:12:25,000 --> 00:12:31,000 ليبحث حتى أسعار الأسهم استنادا إلى رمز أسهم أو رمز مؤشر، 219 00:12:31,000 --> 00:12:34,000 وتحصل مرة أخرى على السعر الحالي للسهم من اليوم. 220 00:12:34,000 --> 00:12:37,000 فإن البيانات ترونه في هذا الواقع pset خاصة تكون 221 00:12:37,000 --> 00:12:40,000 كما حول العالم الحقيقي كما يمكن الحصول على ذلك ان كنت فعلا التواصل 222 00:12:40,000 --> 00:12:43,000 مع الأسهم العالم الحقيقي، وأسعار العالم الحقيقي، 223 00:12:43,000 --> 00:12:47,000 وسنرى كم من المال يمكنك ان تجعل ربما 224 00:12:47,000 --> 00:12:51,000 خلال الأيام القليلة القادمة من اللعب مع مجموعة مشكلتك الخاصة. 225 00:12:51,000 --> 00:12:55,000 >> ولكن دعونا أولا تعيين المرحلة لكيفية تصميم شيء وهذا بالتأكيد أكثر تعقيدا 226 00:12:55,000 --> 00:12:59,000 من counter.php، وهذا أكثر تعقيدا من أي من الأمثلة الرسائل الفورية Frosh حتى الآن، 227 00:12:59,000 --> 00:13:02,000 ودعونا نحاول أن نقدم نماذج لبعض هنا أن تسمح لنا 228 00:13:02,000 --> 00:13:06,000 سواء بالنسبة للpset 7 و ربما لمشروعك النهائي إذا كنت تفعل شيئا على شبكة الإنترنت استنادا 229 00:13:06,000 --> 00:13:11,000 للحفاظ على التعليمات البرمجية منظمة تنظيما جيدا، للحفاظ على نفسك عاقل، 230 00:13:11,000 --> 00:13:15,000 واتخاذ خطوة نحو التعاون، سواء في المشروع النهائي CS50 231 00:13:15,000 --> 00:13:18,000 أو أكثر إذا كنت لا تزال لبرنامج شيء في المستقبل. 232 00:13:18,000 --> 00:13:21,000 هناك هذا النموذج التصميم العام 233 00:13:21,000 --> 00:13:24,000 في علم الحاسوب وتطوير البرمجيات في عام أكثر 234 00:13:24,000 --> 00:13:27,000 المعروفة باسم MVC، نموذج عرض وحدة تحكم، 235 00:13:27,000 --> 00:13:30,000 وهذا هو اختصار سخيفة الذي يصف فكرة جميلة جدا، 236 00:13:30,000 --> 00:13:34,000 وهو الفصل بين الجوانب المختلفة للبرنامج، 237 00:13:34,000 --> 00:13:39,000 حفظ تحديدا منفصلة أو منطق منطق تسلسل العمل من موقع على شبكة الانترنت 238 00:13:39,000 --> 00:13:42,000 ذلك أن أي شيء ينطوي على أشياء مثل 239 00:13:42,000 --> 00:13:45,000 استدعاء دالات قواعد البيانات والاستعلام ومثل 240 00:13:45,000 --> 00:13:48,000 لا يحدث بين HTML الخاص بك 241 00:13:48,000 --> 00:13:51,000 بل في ملفات منفصلة، ​​وبالفعل، هناك ملف واحد هذا 242 00:13:51,000 --> 00:13:54,000 ودعا عادة أن تقوم وحدة تحكم 243 00:13:54,000 --> 00:13:56,000 هذا حقا العقل المدبر وراء العملية، وسنرى مثالا 244 00:13:56,000 --> 00:13:58,000 هذا في لحظة واحدة. 245 00:13:58,000 --> 00:14:01,000 >> هناك نموذج البرمجة التي رمز 246 00:14:01,000 --> 00:14:05,000 التي لا والحديث مع قواعد البيانات، أن يتكلم مع ياهو المالية وما شابه ذلك، 247 00:14:05,000 --> 00:14:08,000 وثم هناك V في MVC، وجهات النظر، 248 00:14:08,000 --> 00:14:11,000 كل الاشياء التي لتتصل علم الجمال، والملفات التي تحتوي على الواقع 249 00:14:11,000 --> 00:14:14,000 HTML الخاص بك، وربما CSS الخاص وما شابه ذلك. 250 00:14:14,000 --> 00:14:17,000 الفكرة هنا، وهذه الصورة توحي، هو أن وحدة تحكم 251 00:14:17,000 --> 00:14:21,000 هو الملف، كما سنرى قريبا، وكما سترى خاصة في pset 7، 252 00:14:21,000 --> 00:14:24,000 ان العالم يتحدث عبر متصفحات الويب الخاصة بهم. 253 00:14:24,000 --> 00:14:27,000 وهذا هو الملف الذي زار يحصل على شبكة الانترنت العامة، 254 00:14:27,000 --> 00:14:30,000 ولكن وحدة تحكم يتحدث إلى نموذج محتمل، 255 00:14:30,000 --> 00:14:34,000 التي تعد واحدة أو أكثر من الملفات الأخرى التي تحتوي على رمز البيانات ذات الصلة ل، 256 00:14:34,000 --> 00:14:37,000 كود المتعلقة قواعد البيانات وما شابه ذلك، وبعد ذلك يتحدث إلى 257 00:14:37,000 --> 00:14:40,000 وحدة تحكم واحد أو أكثر من الملفات الأخرى المعروفة وجهات النظر، 258 00:14:40,000 --> 00:14:43,000 والتي هي جماليات صفحة ويب، وقوالب من نوع ما، 259 00:14:43,000 --> 00:14:47,000 والذي قد يأخذ بعض البيانات كمدخلات، ولكن في نهاية اليوم 260 00:14:47,000 --> 00:14:50,000 ينبغي أن المنطق فقط من داخل عرض يكون تقديم تلك البيانات، 261 00:14:50,000 --> 00:14:53,000 بالتكرار عبر حلقة والبصق فعلا بعض 262 00:14:53,000 --> 00:14:56,000 HTML المستندة إلى التسليم لها أو حتى ما يشبه PDF. 263 00:14:56,000 --> 00:14:59,000 >> ما هو لطيفة عن MVC هي أنك يمكن أن يكون لها وجهات نظر مختلفة 264 00:14:59,000 --> 00:15:02,000 يعتمد على نوع الجهاز، استنادا إلى نوع تنسيق الملف الذي في الواقع 265 00:15:02,000 --> 00:15:04,000 تريد أن تظهر للمستخدم. 266 00:15:04,000 --> 00:15:10,000 دعونا نلقي نظرة على بعض الأمثلة تدريجيا أكثر تعقيدا ومصممة بشكل جيد 267 00:15:10,000 --> 00:15:13,000 من خلال البدء أولا مع الإصدار 0 هنا. 268 00:15:13,000 --> 00:15:16,000 اسمحوا لي أن تمضي قدما وفتح في الدليل MVC لدينا اليوم 269 00:15:16,000 --> 00:15:21,000 يسمى ملف index.php في الدليل 0. 270 00:15:21,000 --> 00:15:26,000 تلاحظ هذا هو موقع سوبر بسيطة ومخيب جدا 271 00:15:26,000 --> 00:15:29,000 وهذا النوع من الإصدار 0 من صفحة رئيسية لCS50، 272 00:15:29,000 --> 00:15:32,000 ولاحظ كيف لدينا تصل إلى محاضرات، لدينا تصل إلى المنهج، 273 00:15:32,000 --> 00:15:35,000 وإذا كنت اتبع الارتباط إلى إشعار بأن محاضرات URL 274 00:15:35,000 --> 00:15:39,000 يصل أعلى سيتغير لlectures.php. 275 00:15:39,000 --> 00:15:44,000 إذا كنت ثم اتبع تصل إلى إشعار 1 أسبوع أن التغييرات URL لweek1.php. 276 00:15:44,000 --> 00:15:46,000 يبدو أن هناك بنية هرمية بسيطة الى حد كبير هنا. 277 00:15:46,000 --> 00:15:49,000 >> دعونا نلقي نظرة سريعة تحت غطاء محرك السيارة في كيفية وضع هذا الخروج، 278 00:15:49,000 --> 00:15:53,000 والواقع أنه إذا أنظر إلى index.php انها بسيطة جدا. 279 00:15:53,000 --> 00:15:57,000 في الواقع، على الرغم من أنني يسمى هذا ملف PHP وليس هناك كود البرمجة الفعلية. 280 00:15:57,000 --> 00:16:01,000 هناك تعليق أنني كتبت هنا في PHP فقط حتى أن المستخدم لا ينتهي رؤيتها. 281 00:16:01,000 --> 00:16:05,000 بطبيعة الحال، كما كان من قبل، في أي شيء بين العلامات PHP 282 00:16:05,000 --> 00:16:08,000 يحصل تفسير، حتى لو كان تعليق، وتفسير تعليقا 283 00:16:08,000 --> 00:16:11,000 يعني فقط لرميها بعيدا في نهاية المطاف والواقع ليس 284 00:16:11,000 --> 00:16:15,000 إرسالها إلى المستعرض، لذلك كل شيء هنا هو في علم الجمال فقط. 285 00:16:15,000 --> 00:16:20,000 إذا كنت تفتح lectures.php بالمثل هذا أيضا مجرد ملف الثابت ترميز. 286 00:16:20,000 --> 00:16:23,000 يحدث أن تسمى شيئا. PHP، 287 00:16:23,000 --> 00:16:27,000 لكنها في الحقيقة للتو. HTML، وweek1.php، week2.php 288 00:16:27,000 --> 00:16:31,000 وبالمثل هي العلامات فقط، لذلك هناك مجموعة من أوجه القصور في هذا التصميم. 289 00:16:31,000 --> 00:16:33,000 واحد، انها كمية كبيرة من نسخ / لصق. 290 00:16:33,000 --> 00:16:37,000 على الرغم من أن الشيء الوحيد الذي تغير بين هذه الملفات هي قائمة غير مرتبة، 291 00:16:37,000 --> 00:16:41,000 العلامات لي، مع ذلك لدي نوع الوثيقة، HTML، الرأس، 292 00:16:41,000 --> 00:16:44,000 عنوان والجسد وثيقة، وثيقة HTML وأكثر 293 00:16:44,000 --> 00:16:47,000 في كل ملف واحد، مما يعني أنه إذا أريد من أي وقت مضى لإعادة هيكلة 294 00:16:47,000 --> 00:16:50,000 هذه صفحة ويب أو restylize أنه يجب أن أذهب في وتغيير 295 00:16:50,000 --> 00:16:54,000 كل هذه الملفات يدويا أو مع بعض ضخمة البحث والاستبدال. 296 00:16:54,000 --> 00:17:01,000 >> دعونا نلقي خطوة نحو تصميم أكثر ذكاء، ويعد التفكير في الإصدار 1 هنا 297 00:17:01,000 --> 00:17:04,000 حيث في مثل قراءة البيانات التي لدينا المدرجة بحيث يمكنك لعب جنبا إلى جنب مع 298 00:17:04,000 --> 00:17:07,000 هذه أكثر مهل في وقت المنزل الذي لدينا هنا 299 00:17:07,000 --> 00:17:10,000 موجز من الملفات في الإصدار 1 من هذا الموقع، 300 00:17:10,000 --> 00:17:13,000 ويبدو أن ذلك لقد اتخذت على نفسي لخصم ما 301 00:17:13,000 --> 00:17:17,000 بعض التعليمات البرمجية المشتركة، وfooter.php header.php. 302 00:17:17,000 --> 00:17:20,000 حسنا، دعونا نلقي نظرة على ما هو داخل أول هذه. 303 00:17:20,000 --> 00:17:23,000 Header.php تبدو مألوفة، 304 00:17:23,000 --> 00:17:26,000 ولكن لاحظ حيث أنها لا تحصل على قطع؟ 305 00:17:26,000 --> 00:17:30,000 مباشرة بعد السطر 19، لذلك هذا هو كل ما كان شائعا 306 00:17:30,000 --> 00:17:33,000 من index.php الملفات، lectures.php، 307 00:17:33,000 --> 00:17:36,000 week1 وweek2.php من المثال السابق. 308 00:17:36,000 --> 00:17:40,000 كان ما فعلته نسخة وقطع كل شيء أن كان سمة مشتركة بين جميع هذه الملفات، 309 00:17:40,000 --> 00:17:44,000 وضعها في ملف رأس منفصلة، ​​وبالمثل في footer.php 310 00:17:44,000 --> 00:17:48,000 لم أكن تطبيق نفس المبدأ حيث خطوط فقط للاهتمام 311 00:17:48,000 --> 00:17:52,000 في footer.php هي هذين، وثيقة وهيئة HTML إغلاق. 312 00:17:52,000 --> 00:17:55,000 >> ولكن ماذا يعني هذا الآن هو أن في الإصدار الجديد 313 00:17:55,000 --> 00:17:59,000 إشعار index.php كم فإنه يمكن الحصول على أبسط. 314 00:17:59,000 --> 00:18:02,000 منح، أكثر قليلا خفي النظر، أقل قليلا بديهية 315 00:18:02,000 --> 00:18:06,000 لمتابعة الأعلى إلى الأسفل، ولكن يا إلهي، هو ذهب الآن كل ذلك التكرار. 316 00:18:06,000 --> 00:18:10,000 نطلب باستخدام دالة PHP دعا حرفيا تتطلب أعلى، 317 00:18:10,000 --> 00:18:15,000 التي تذكر جدا، أذكر، من لC # تشمل آلية. 318 00:18:15,000 --> 00:18:17,000 نطلب header.php في الأعلى. 319 00:18:17,000 --> 00:18:20,000 نطلب footer.php في الجزء السفلي، والشيء الوحيد الذي يختلف 320 00:18:20,000 --> 00:18:25,000 أو خاص حول هذا الملف هو المحتوى الذي من المفترض أن تكون فريدة من نوعها لذلك. 321 00:18:25,000 --> 00:18:29,000 إذا ذهبت بعد ذلك الى، يقول، lectures.php، وينطبق المبدأ ذاته. 322 00:18:29,000 --> 00:18:32,000 مرة أخرى، بعض التعليقات حتى اعلى، ولكن بعد ذلك تتطلب رأس، تذييل تتطلب، 323 00:18:32,000 --> 00:18:35,000 وبين انها فقط المحتوى الذي الذي تغير فعلا. 324 00:18:35,000 --> 00:18:38,000 وإذا نظرنا إلى أسبوع 1 أسبوع 2 وكنا نرى 325 00:18:38,000 --> 00:18:42,000 أنه قد تم تطبيق نفس المبدأ هناك. 326 00:18:42,000 --> 00:18:44,000 حسنا، لم تكن فعلنا تماما هناك. 327 00:18:44,000 --> 00:18:48,000 >> دعونا نلقي نظرة على الإصدار 2، التي لديها بنية مماثلة، 328 00:18:48,000 --> 00:18:50,000 ولكن لاحظ الآن لقد أدخلت شيء آخر. 329 00:18:50,000 --> 00:18:53,000 في السطر 10 لقد تعرفت helpers.php، 330 00:18:53,000 --> 00:18:55,000 والذي يحتوي على ما يبدو دالات المساعدة. 331 00:18:55,000 --> 00:18:58,000 A الدالة المساعد عموما وظيفة قصيرة نسبيا 332 00:18:58,000 --> 00:19:01,000 أن تكتب لمساعدتك في أماكن مختلفة، 333 00:19:01,000 --> 00:19:04,000 ودعونا نرى ما هو داخل helpers.php. 334 00:19:04,000 --> 00:19:07,000 في هذه الحالة، يبدو أن لديها 2 المهام. 335 00:19:07,000 --> 00:19:10,000 أذكر من ذلك اليوم مع المثال لدينا مكعب 336 00:19:10,000 --> 00:19:13,000 يمكنك تحديد المهام الخاصة بك في PHP، وما قمت به الآن هو أنني قمت 337 00:19:13,000 --> 00:19:17,000 الوظائف المحددة دعا تقديم تذييل وتقديم رأس، 338 00:19:17,000 --> 00:19:21,000 دعا وأولها تأخذ معلمة البيانات، 339 00:19:21,000 --> 00:19:25,000 القيمة الافتراضية التي هي مجموعة فارغة، كما اقترح هناك، 340 00:19:25,000 --> 00:19:29,000 ويمكن أن نكتب هذا في الواقع أكثر وضوحا حتى في أحدث إصدار من PHP 341 00:19:29,000 --> 00:19:32,000 بالقول قوس مربع فتح، إغلاق مربع قوس. 342 00:19:32,000 --> 00:19:35,000 هذا يعني مجموعة فارغة من حجم 0 ولكن مع ذلك صفيف. 343 00:19:35,000 --> 00:19:38,000 >> هذه الوظيفة استخراج قليلا خاصة في هذا 344 00:19:38,000 --> 00:19:41,000 ما يفعله هو أنه يأخذ وحجتها مجموعة النقابي 345 00:19:41,000 --> 00:19:45,000 يحتوي 0 أو أكثر أزواج قيمة المفتاح، وإذا كان لديك مفتاح للفو 346 00:19:45,000 --> 00:19:48,000 وقيمة من شريط وظيفة مستخلص 347 00:19:48,000 --> 00:19:51,000 يخلق وضعا يكون فيه الآن، وذلك اعتبارا من خط 11، 348 00:19:51,000 --> 00:19:57,000 لديك متغير محلي يسمى $ فو قيمته هو بار. 349 00:19:57,000 --> 00:19:59,000 وإذا كان لديك المزيد من المفاتيح والقيم في مجموعة البيانات، 350 00:19:59,000 --> 00:20:03,000 وبالمثل يمكن استخراج ما في النطاق المحلي 351 00:20:03,000 --> 00:20:06,000 أو اسم الفضاء بحيث footer.php و 352 00:20:06,000 --> 00:20:09,000 نفس الفكرة الى هنا بحيث header.php 353 00:20:09,000 --> 00:20:12,000 الحصول على هذه المتغيرات. 354 00:20:12,000 --> 00:20:15,000 في الواقع، اسمحوا لي مرة أخرى فتح header.php 355 00:20:15,000 --> 00:20:18,000 ولفت الانتباه إلى الآن ما يبدو في هذا الإصدار. 356 00:20:18,000 --> 00:20:22,000 >> بدلا من الترميز الصعب CS50 كعنوان لكل صفحة واحدة 357 00:20:22,000 --> 00:20:24,000 لاحظ الدينامية التي من الممكن الآن. 358 00:20:24,000 --> 00:20:29,000 في السطر 5 مرددا أنا متغير العنوان، 359 00:20:29,000 --> 00:20:34,000 ولكن أولا أنا تمرير هذا المتغير إلى وظيفة العنوان دعا htmlspecialchars. 360 00:20:34,000 --> 00:20:38,000 A اسم غبي لوظيفة، طالما أنه هو، ولكن هل حقا ما يقول. 361 00:20:38,000 --> 00:20:41,000 فإنه يضمن أن أي أحرف خاصة 362 00:20:41,000 --> 00:20:46,000 في سلسلة وهذا ما كان صدر في ونجا بشكل صحيح HTML. 363 00:20:46,000 --> 00:20:49,000 هذا هو في الواقع وسيلة لتجنب ما يسمى هجوم عبر موقع البرمجة 364 00:20:49,000 --> 00:20:52,000 حيث يمكن للشخص بشكل ضار أو غير قصد 365 00:20:52,000 --> 00:20:55,000 حقن HTML الخاصة بهم إلى موقع الويب الخاص بك 366 00:20:55,000 --> 00:20:59,000 عن طريق لصق في شكل ما، على سبيل المثال، 367 00:20:59,000 --> 00:21:02,000 ما كنت لم نكن نتوقع تماما، لا سيما شفرة جافا سكريبت، 368 00:21:02,000 --> 00:21:05,000 كما سوف نتحدث عن في غضون أسبوع أو اثنين الخاص الوقت. 369 00:21:05,000 --> 00:21:08,000 >> هذا header.php الآن، انها وجهة نظر 370 00:21:08,000 --> 00:21:12,000 بمعنى أنه يسمح لك لعرض جماليا محتويات بعض مجموعة البيانات. 371 00:21:12,000 --> 00:21:14,000 ولكن على نحو أكثر تحديدا، انها القالب. 372 00:21:14,000 --> 00:21:19,000 هذا هو نوع من خطة الآن ما نريد رأس كل صفحة لتبدو وكأنها، 373 00:21:19,000 --> 00:21:23,000 ولكن هناك بعض الدينامية في أننا نريد أن يكون عنوان إدراج حيوي 374 00:21:23,000 --> 00:21:26,000 استنادا إلى متغير اللقب 375 00:21:26,000 --> 00:21:30,000 تم استخراج أننا عندما دعا، مرة أخرى، 376 00:21:30,000 --> 00:21:33,000 وظيفة تجعل الرأس. 377 00:21:33,000 --> 00:21:36,000 الآن، إذا نظرنا إلى تذييل تقديم، هناك في الواقع لا تستخدم الكثير من هذا الحق الآن 378 00:21:36,000 --> 00:21:40,000 لأنه في footer.php ليس هناك ديناميكية على الإطلاق. 379 00:21:40,000 --> 00:21:43,000 يمكن أن يكون هناك، ولكن في الوقت الحالي فإنه من الصعب قائمة مشفرة من 2 العلامات، 380 00:21:43,000 --> 00:21:46,000 ولكن نفس الفكرة تنطبق، بحيث تشير في الواقع لماذا 381 00:21:46,000 --> 00:21:49,000 نحن لم نضيع الوقت وجود رأس وتجعل وظيفة تقديم تذييل؟ 382 00:21:49,000 --> 00:21:52,000 اسمحوا لي أن انتقل الآن إلى الإصدار بدلا 3، 383 00:21:52,000 --> 00:21:56,000 وفي الإصدار 3 في المساعدين قررت تبسيط الأمر أكثر. 384 00:21:56,000 --> 00:21:58,000 >> اسمحوا لي أن يكون وظيفة واحدة تقدم. 385 00:21:58,000 --> 00:22:02,000 يسمى هذا الوقت اسمحوا لي انها قد تأخذ حجة أخرى، قالب، 386 00:22:02,000 --> 00:22:05,000 الذي صمم ليكون اسم القالب، 387 00:22:05,000 --> 00:22:11,000 وبعد ذلك سوف سلسلة بوقاحة. PHP لقيمة هذا المتغير في، 388 00:22:11,000 --> 00:22:17,000 ثم إذا كان موجودا foo.php، bar.php أو header.php وfooter.php، 389 00:22:17,000 --> 00:22:20,000 ثم انا ذاهب الى المضي قدما واستخراج البيانات المتغيرة 390 00:22:20,000 --> 00:22:23,000 وتتطلب بعد ذلك أن المسار. 391 00:22:23,000 --> 00:22:29,000 وبعبارة أخرى، لاستخدام هذا الآن، إذا كنت تفتح index.php 392 00:22:29,000 --> 00:22:32,000 تلاحظ أنني لا تستدعي تقديم رأس بعد الآن. 393 00:22:32,000 --> 00:22:36,000 أعطي الكلمة فقط تقديم، ولكن مررت في قيمة رأس نقلت من 394 00:22:36,000 --> 00:22:39,000 لتوضيح القالب الذي أريد في الواقع ليتم تحميلها. 395 00:22:39,000 --> 00:22:41,000 >> ثم لاحظت أكثر من هنا ما أفعله. 396 00:22:41,000 --> 00:22:44,000 أنا في تمرير مفتاح حيوي من العنوان، 397 00:22:44,000 --> 00:22:47,000 قيمة CS50، وهذا أيضا، كما رأينا من قبل، 398 00:22:47,000 --> 00:22:51,000 ويمكن تقديم أكثر اقتضابا في أحدث إصدار من PHP 399 00:22:51,000 --> 00:22:54,000 أين يمكنني استبدال دالة صفيف مع الأقواس المربعة، 400 00:22:54,000 --> 00:22:57,000 الذي أقترح هو أكثر قابلية للقراءة وبالتأكيد 401 00:22:57,000 --> 00:22:59,000 أسهل قليلا لكتابة. 402 00:22:59,000 --> 00:23:02,000 وبطبيعة الحال، مع الدعوة تجعل تذييل في الجزء السفلي، 403 00:23:02,000 --> 00:23:05,000 نحن لا تهتم يمر في الوسيطة الثانية في كل شيء، لا مجموعة النقابي، 404 00:23:05,000 --> 00:23:07,000 لأنه لا يوجد شيء داخل دينامية أن تذييل الصفحة. 405 00:23:07,000 --> 00:23:10,000 انها مجرد وثيقة لبعض العلامات HTML. 406 00:23:10,000 --> 00:23:14,000 جيدة، ونحن نتخذ خطوات لتنظيف الامور حقا هنا، 407 00:23:14,000 --> 00:23:17,000 ولكن اسمحوا لي أن تفتح 2 أمثلة النهائي. 408 00:23:17,000 --> 00:23:21,000 هذا واحد، رقم 4، لاحظ أن لقد اتخذت قرارا واعيا الآن 409 00:23:21,000 --> 00:23:26,000 لتحسين بناء على المثال السابق باستخدام التسلسل الهرمي لبعض وأخيرا ملفاتي. 410 00:23:26,000 --> 00:23:29,000 >> تلاحظ أن في هذا الملخص، في هذا قراءة لي، لقد أدخلت 411 00:23:29,000 --> 00:23:32,000 ويتضمن الدليل ودليل قوالب 412 00:23:32,000 --> 00:23:35,000 محتويات التي ستكون الأمور أريد أن تشمل 413 00:23:35,000 --> 00:23:38,000 والقوالب التي أريد أن تجعل، على التوالي. 414 00:23:38,000 --> 00:23:42,000 هذا هو حقا كوني الشرج ومحاولة لابقاء الامور مرتبة، 415 00:23:42,000 --> 00:23:45,000 الحفاظ على الملفات ذات الصلة معا، ولكن النتيجة النهائية 416 00:23:45,000 --> 00:23:48,000 هو أن لدينا الآن الإعداد أرتب قليلا، ولكن علينا أن نتذكر الآن 417 00:23:48,000 --> 00:23:51,000 في، على سبيل المثال، index.php 418 00:23:51,000 --> 00:23:55,000 عندما نطلب helpers.php الملف 419 00:23:55,000 --> 00:24:01,000 علينا أن تتطلب الآن عبر يشمل / helpers.php 420 00:24:01,000 --> 00:24:06,000 بدلا من القول فقط helpers.php لأنه الآن انها في الواقع في دليل فرعي. 421 00:24:06,000 --> 00:24:09,000 الآن، بوصفها جانبا، سترى في هذه الأمثلة وغيرها بعض 422 00:24:09,000 --> 00:24:11,000 تتطلب وظائف مثل، تتطلب مرة واحدة. 423 00:24:11,000 --> 00:24:15,000 هناك في الواقع وظيفة تسمى نفسها تشمل، ولديهم كل سلوك مختلف قليلا. 424 00:24:15,000 --> 00:24:18,000 هنا أقول مرة واحدة تتطلب لجعل سوبر الواضح أن أريد فقط تلك 425 00:24:18,000 --> 00:24:20,000 وشملت المساعدين في مشروعي مرة واحدة. 426 00:24:20,000 --> 00:24:24,000 ولكن إذا أنا دقيق وإذا أنا أفكر في الواقع من خلال منطق بلدي بشكل صحيح 427 00:24:24,000 --> 00:24:27,000 ويكفي فقط أن أقول أيضا تتطلب أعلى ومن أعلى 428 00:24:27,000 --> 00:24:31,000 طالما أنا نفسي لا تتطلب بطريق الخطأ أن الملف نفسه في مكان آخر. 429 00:24:31,000 --> 00:24:34,000 في الواقع، وهذا هو وسيلة أكثر كفاءة قليلا للقيام بهذه الأمور بعد ذلك باستخدام 430 00:24:34,000 --> 00:24:38,000 تتطلب مرة واحدة، ولذا فإنني سوف تقليم عليه أن يطلب فقط. 431 00:24:38,000 --> 00:24:40,000 >> دعونا نلقي خطوة إلى الأمام. 432 00:24:40,000 --> 00:24:46,000 هذا المثال الأخير الآن، الإصدار 5، لديه التسلسل الهرمي للمجلدات حتى أنظف. 433 00:24:46,000 --> 00:24:50,000 لاحظت ما فعلته هنا فقا لقراءة البيانات في هذا الإصدار النهائي 434 00:24:50,000 --> 00:24:54,000 الآن لدي الدليل بلدي HTML، والتي لقد كان كل هذا الوقت، 435 00:24:54,000 --> 00:24:58,000 ولكن داخل هناك الآن فقط index.php، lectures.php، 436 00:24:58,000 --> 00:25:01,000 week1.php وweek2.php. 437 00:25:01,000 --> 00:25:05,000 ويتضمن الدليل يعيش الآن جنبا إلى جنب مع الدليل HTML، 438 00:25:05,000 --> 00:25:08,000 حتى على مستوى نفس أخ، إذا جاز التعبير. 439 00:25:08,000 --> 00:25:10,000 يفعل ذلك المجلد Templates. 440 00:25:10,000 --> 00:25:14,000 الوجبات الجاهزة المفتاح هنا هو لقد قدم هيكل أكثر قليلا، 441 00:25:14,000 --> 00:25:17,000 ولكن السمة الرئيسية الآن هي أن الملفات فقط 442 00:25:17,000 --> 00:25:21,000 التي تحتاج إلى شبكة الإنترنت يمكن الوصول إليها، علنا ​​عنونة 443 00:25:21,000 --> 00:25:25,000 من URL على شبكة الانترنت العامة في دليل بلدي HTML. 444 00:25:25,000 --> 00:25:28,000 >> وفي الوقت نفسه، وغيرها من الملفات، helpers.php، footer.php، 445 00:25:28,000 --> 00:25:32,000 header.php، التي هي ربما يمكن القول أكثر حساسية، 446 00:25:32,000 --> 00:25:35,000 ربما المساعدين في الواقع بعض أسماء المستخدمين وكلمات السر أو بعض الفكرية 447 00:25:35,000 --> 00:25:39,000 الملكية من الألغام، وظائف أنا حقا لا نريد للعالم أن يرى، حتى لو عن طريق الخطأ. 448 00:25:39,000 --> 00:25:45,000 انها ممارسة جيدة للحفاظ على الخروج من الدليل HTML العامة 449 00:25:45,000 --> 00:25:48,000 أي الملفات التي لا تحتاج لنفسها ان تكون عامة. 450 00:25:48,000 --> 00:25:51,000 كل ما عليك القيام به في هذه الحالة عند النظر في، على سبيل المثال، 451 00:25:51,000 --> 00:25:55,000 الدليل HTML في ملف index.php، 452 00:25:55,000 --> 00:25:58,000 تلاحظ لدينا لمجرد أن يكون قليلا أكثر حذرا عندما تتطلب 453 00:25:58,000 --> 00:26:00,000 أو مرة واحدة تتطلب هذا الملف. 454 00:26:00,000 --> 00:26:03,000 ولست بحاجة إلى القيام به أولا .. للذهاب إلى الدليل الرئيسي، 455 00:26:03,000 --> 00:26:06,000 بعد ذلك / وتشمل / helpers.php 456 00:26:06,000 --> 00:26:12,000 للغوص في التراجع للحصول على الملف الذي يهمني. 457 00:26:12,000 --> 00:26:16,000 >> ثم أي أسئلة على MVC 458 00:26:16,000 --> 00:26:20,000 هذا التجسد أو بسيطة نسبيا منه؟ 459 00:26:20,000 --> 00:26:23,000 واسمحوا لي أن أوضح أن ركزنا قليلا جدا على 460 00:26:23,000 --> 00:26:27,000 V هنا، وجهات النظر وهذه الديون للخروج من هذه القوالب. 461 00:26:27,000 --> 00:26:30,000 لقد تميز حقا لا M من C فقط حتى الآن. 462 00:26:30,000 --> 00:26:33,000 في الواقع، هناك فعلا ما لا M هنا، وحتى C لدينا، 463 00:26:33,000 --> 00:26:36,000 تحكم، لا تفعل فعلا كل ذلك بكثير، ولكن عليك الحصول على أكثر من ذلك بكثير 464 00:26:36,000 --> 00:26:39,000 مألوفة مع كل من تلك الرسائل 2 من MVC، 465 00:26:39,000 --> 00:26:43,000 أو بدلا من ذلك، سوف تحصل على أكثر من ذلك بكثير على دراية C 466 00:26:43,000 --> 00:26:49,000 في MVC للاطلاع على المجموعة المشكلة 7، ولذلك لا يوجد المزيد من ذلك في الأفق. 467 00:26:49,000 --> 00:26:51,000 الأسئلة؟ 468 00:26:51,000 --> 00:26:53,000 هناك في الواقع لا أحد هنا. 469 00:26:53,000 --> 00:26:57,000 >> حسنا، دعنا ننتقل الآن إلى الموضوع الثاني والأخير لهذا اليوم. 470 00:26:57,000 --> 00:27:00,000 هذا هو مقدمة لقاعدة بيانات. 471 00:27:00,000 --> 00:27:03,000 حتى هذه النقطة كان لدينا عدد قليل من الطرق لتخزين البيانات. 472 00:27:03,000 --> 00:27:05,000 لقد استخدمنا المتغيرات. 473 00:27:05,000 --> 00:27:08,000 مرة أخرى في ملف C لدينا، I / O مناقشة بدأنا باستخدام ملفات نصية 474 00:27:08,000 --> 00:27:11,000 واستخدام الملفات مثل fprintf، ومن ثم بدأنا حتى 475 00:27:11,000 --> 00:27:14,000 الحديث عن ملفات CSV قليلا أو قيم مفصولة بفاصلة، 476 00:27:14,000 --> 00:27:17,000 يسمح ذلك كل هذه أن يكون لدينا البيانات المخزنة 477 00:27:17,000 --> 00:27:19,000 إما باستمرار أو غير بإصرار. 478 00:27:19,000 --> 00:27:23,000 ولكن حتى ملفات CSV لا تساعد حقا أن تبحث 479 00:27:23,000 --> 00:27:25,000 وإدراج وحذف. 480 00:27:25,000 --> 00:27:28,000 انها حقا مجرد ملف نصي غبي مفصولة بفواصل 481 00:27:28,000 --> 00:27:30,000 من صف من صف من، حتى إذا كنت ترغب في 482 00:27:30,000 --> 00:27:32,000 البحث هذا الملف أفضل يمكنك القيام به هو حقا البحث الخطي. 483 00:27:32,000 --> 00:27:34,000 عليك أن تبدأ في الجزء العلوي من الملف، وقراءة كل شيء في، 484 00:27:34,000 --> 00:27:36,000 والبحث عن بعض قيمة الفائدة. 485 00:27:36,000 --> 00:27:39,000 إذا كنت ترغب في إدراج فيه عليك أن تفعل الشيء نفسه، 486 00:27:39,000 --> 00:27:41,000 أكثر من ذلك بالتكرار وإدراج في مكان معين، 487 00:27:41,000 --> 00:27:45,000 في واقع الأمر، لديك لبذل كل ما من منطق البحث نفسك. 488 00:27:45,000 --> 00:27:49,000 >> لا يمكنك أن تفعل نمط مطابقة ذكية على ملف CSV نفسك إلا إذا كنت كتابة التعليمات البرمجية. 489 00:27:49,000 --> 00:27:51,000 لا يمكنك أن تفعل لملف الترشيح CSV 490 00:27:51,000 --> 00:27:53,000 إلا إذا كنت نفسك كتابة التعليمات البرمجية. 491 00:27:53,000 --> 00:27:56,000 لن يكون ذلك جميلا إذا وضع شخص آخر في جميع الجهود 492 00:27:56,000 --> 00:27:59,000 في الواقع لجعل البحث سهلة وسهلة الإدراج 493 00:27:59,000 --> 00:28:01,000 وحذف وتحديث وهكذا دواليك؟ 494 00:28:01,000 --> 00:28:04,000 هذا هو بالضبط ما هو قاعدة بيانات. 495 00:28:04,000 --> 00:28:07,000 SQL، لغة الاستعلام الهيكلية، هو آخر لغة 496 00:28:07,000 --> 00:28:10,000 اننا هنا اليوم تقديم، ولكن هذا أيضا يمكن الوصول إليها إلى حد ما، 497 00:28:10,000 --> 00:28:13,000 وما نحن ذاهبون حقا القيام به هو مجرد نتف من ورائه بعض أبرزها 498 00:28:13,000 --> 00:28:16,000 الخصائص بحيث لpset 7، وإذا كنت تفعل شيئا على شبكة الإنترنت استنادا، 499 00:28:16,000 --> 00:28:19,000 المشروع النهائي الخاص بك، لديك القدرة على التعبير عن نفسك 500 00:28:19,000 --> 00:28:22,000 من حيث الاستعلامات البيانات. 501 00:28:22,000 --> 00:28:25,000 لديك القدرة على تخزين قليلا أو كثيرا من البيانات 502 00:28:25,000 --> 00:28:28,000 بطريقة أكثر تنظيما من شأنها أن في نهاية اليوم 503 00:28:28,000 --> 00:28:32,000 تجعل حياتك أسهل لأنه مع SQL يمكنك التعبير عن نفسك 504 00:28:32,000 --> 00:28:35,000 أكثر دقة، أكثر من ذلك بكثير منهجي من أجل 505 00:28:35,000 --> 00:28:40,000 نعود بعض فرعية من البيانات من أكبر جسم من البيانات. 506 00:28:40,000 --> 00:28:45,000 >> يمكنك التفكير في قاعدة البيانات، في هذه الحالة، قاعدة بيانات SQL، حقا مثل Excel 507 00:28:45,000 --> 00:28:48,000 أو أرقام حيث انها جداول البيانات، 508 00:28:48,000 --> 00:28:50,000 أو ربما جداول متعددة، وجداول البيانات، بالطبع، 509 00:28:50,000 --> 00:28:53,000 والصفوف والأعمدة، وذلك لأن 510 00:28:53,000 --> 00:28:56,000 قواعد البيانات العلائقية SQL هي، بمعنى العلائقية 511 00:28:56,000 --> 00:28:59,000 أنهم تخزين البيانات من حيث هذه الجداول، 512 00:28:59,000 --> 00:29:01,000 الصفوف والأعمدة. 513 00:29:01,000 --> 00:29:03,000 فهي أعلى من أداء ما يشبه جدول البيانات، 514 00:29:03,000 --> 00:29:05,000 ومن المفترض جدول لاستخدامها من قبل الإنسان. 515 00:29:05,000 --> 00:29:08,000 وتهدف قاعدة بيانات لاستخدامها من قبل مبرمج 516 00:29:08,000 --> 00:29:12,000 كتابة التعليمات البرمجية ضدها، لذلك تجسد قاعدة بيانات 517 00:29:12,000 --> 00:29:14,000 ستكون إما سطر الأوامر. 518 00:29:14,000 --> 00:29:18,000 >> واحدة من قواعد البيانات العلائقية الأكثر شعبية هناك، مرة أخرى، الخلية، 519 00:29:18,000 --> 00:29:22,000 وهو مجاني رائعة، وأداء عال جدا، وهذا ما 520 00:29:22,000 --> 00:29:24,000 تستخدم الفيسبوك للغاية في وقت مبكر وإلى حد ما حتى اليوم 521 00:29:24,000 --> 00:29:27,000 لتخزين الكثير من البيانات الخاصة به، وسنرى في لحظة 522 00:29:27,000 --> 00:29:30,000 أن استخدام أوامر بسيطة نسبيا 523 00:29:30,000 --> 00:29:33,000 يمكننا تحديد البيانات وإدراج، تحديث البيانات، 524 00:29:33,000 --> 00:29:37,000 حذف البيانات وما شابه ذلك، لكن لحسن الحظ، هناك أكثر من واجهة سهلة الاستخدام 525 00:29:37,000 --> 00:29:39,000 من مجرد كتابة في موجه بالأبيض والأسود هنا. 526 00:29:39,000 --> 00:29:43,000 سنستخدم لpset 7 و بعده أداة مجانية تسمى بريس. 527 00:29:43,000 --> 00:29:45,000 الاسم هو من قبيل الصدفة. 528 00:29:45,000 --> 00:29:47,000 الأداة التي ستنفذ يحدث في PHP، 529 00:29:47,000 --> 00:29:49,000 ولكن هذا لا صلة لها بالموضوع أساسا. 530 00:29:49,000 --> 00:29:53,000 ما هو مفيدة حول بريس هو أنه أداة على شبكة الإنترنت. 531 00:29:53,000 --> 00:29:55,000 لقد كنا مثبتة مسبقا في الجهاز بالنسبة لك، 532 00:29:55,000 --> 00:29:58,000 ومعها يمكنك إنشاء الجداول في قاعدة بيانات، 533 00:29:58,000 --> 00:30:01,000 يمكنك إدراج البيانات، حذف البيانات، ونرى عموما 534 00:30:01,000 --> 00:30:04,000 البيانات في بيئة سهلة الاستخدام إلى حد ما. 535 00:30:04,000 --> 00:30:07,000 المستخدمون لن تستخدم بريس. 536 00:30:07,000 --> 00:30:09,000 >> هذا هو في الحقيقة مجرد أداة إدارية أو المطور 537 00:30:09,000 --> 00:30:12,000 التي لرؤية وكزة حول البيانات الخاصة بك ومعرفة كيفية تنظيم ذلك، 538 00:30:12,000 --> 00:30:15,000 مثل الكثير من نفسك أنك قد تستخدم Excel أو أرقام، 539 00:30:15,000 --> 00:30:19,000 ولكنها ستكون وسيلة رائعة لتصور ما يجري تحت غطاء محرك السيارة 540 00:30:19,000 --> 00:30:22,000 بحيث يمكنك التركيز على حل مشكلة مثيرة للاهتمام وليس ذلك بكثير 541 00:30:22,000 --> 00:30:25,000 على أوامر غامضة. 542 00:30:25,000 --> 00:30:28,000 دعونا نلقي نظرة على مثال من البيانات التي قد تكون مخزنة tabularly 543 00:30:28,000 --> 00:30:30,000 في قاعدة بيانات علائقية. 544 00:30:30,000 --> 00:30:32,000 وهنا أحد الأمثلة على ذلك. 545 00:30:32,000 --> 00:30:35,000 الآن، للأسف، أخطأ بريس على جانب الطريق رمي أيضا العديد من الكلمات 546 00:30:35,000 --> 00:30:38,000 والرسومات في لكم، ولكن إذا كنت في شحذ فقط على 547 00:30:38,000 --> 00:30:42,000 العمود ID، العمود اسم المستخدم والعمود التجزئة، 548 00:30:42,000 --> 00:30:45,000 هذا هو جدول فعال، ولكن يحدث أن تكون قصاصة 549 00:30:45,000 --> 00:30:49,000 من داخل الجدول من الأجهزة 550 00:30:49,000 --> 00:30:53,000 باستخدام ملف التي نقدمها لكم مع مجموعة مشكلة في 7. 551 00:30:53,000 --> 00:30:57,000 >> على وجه الخصوص، نقدم لكم ملف الذي يمثل 552 00:30:57,000 --> 00:31:01,000 المستخدم الجدول، لذلك تحتوي على جدول المستخدمين مع 3 أعمدة، 553 00:31:01,000 --> 00:31:05,000 واحد منها هو معرف فريد ابتداء من الساعة 1 و يجري بعد ذلك زيادة. 554 00:31:05,000 --> 00:31:08,000 العمود الثاني هو اسم المستخدم، وأولئك منكم الذين لم هاكر، 555 00:31:08,000 --> 00:31:12,000 الطبعة هاكر لpset 2 قد، التعرف على بعض من هذه أسماء المستخدمين على الأقل. 556 00:31:12,000 --> 00:31:16,000 على الجانب الأيمن من كلمات السر، لكنها ليست كلمات السر الحرفي. 557 00:31:16,000 --> 00:31:19,000 انهم التجزئة منه، لذلك تبين 558 00:31:19,000 --> 00:31:22,000 أن تخزين كلمات السر في قاعدة بيانات هو فكرة سيئة حقا. 559 00:31:22,000 --> 00:31:25,000 كنت قد قرأت جميع ربما في مرحلة ما من بعض المواقع 560 00:31:25,000 --> 00:31:28,000 أو قاعدة بيانات للخطر بعض الشركات، ومن ثم عليك أن 561 00:31:28,000 --> 00:31:31,000 تغيير كلمة المرور الخاصة بك، تحتاج إلى الحصول على مبلغ معاد على الأشياء 562 00:31:31,000 --> 00:31:34,000 لأن بعض الرجل سيئة اندلعت فعلا في حسابك نتيجة لذلك. 563 00:31:34,000 --> 00:31:38,000 >> تخزين كلمات المرور في نص واضح، غير مشفرة في قاعدة بيانات 564 00:31:38,000 --> 00:31:41,000 هو أبله تماما، وحتى الآن انها مسلية إلى حد كبير 565 00:31:41,000 --> 00:31:44,000 ثم قرأت عن بعض الشركات معروفة جدا 566 00:31:44,000 --> 00:31:47,000 في بعض الأحيان في الصحافة للخطر الذي قواعد البيانات، 567 00:31:47,000 --> 00:31:50,000 وهذا الجزء ليس مضحكا، ولكن غير مشفرة حقيقة أن تحتوي على قواعد بيانات 568 00:31:50,000 --> 00:31:53,000 أمر مثير للسخرية لأن كلمات المرور حرفيا مع سطر واحد من التعليمات البرمجية 569 00:31:53,000 --> 00:31:57,000 يمكنك حماية ضد هذا التهديد بصفة خاصة، وهذا ما فعلناه هنا. 570 00:31:57,000 --> 00:32:00,000 حتى وهمية لدينا القليل الإصدار المالية CS50 571 00:32:00,000 --> 00:32:03,000 تشفير كلمات المرور ونحن فقط لحسن التدبير، وأنه حقيقة 572 00:32:03,000 --> 00:32:07,000 كل هذه كلمات السر تبدأ مع $ 1 $ هو مجرد اتفاقية. 573 00:32:07,000 --> 00:32:10,000 هذا يعني فقط أنهم المشفرة أو تجزئته حقا، 574 00:32:10,000 --> 00:32:13,000 الذي هو مثل وظيفة التشفير في اتجاه واحد 575 00:32:13,000 --> 00:32:17,000 حيث لا يمكنك عكس آثاره مع ما يسمى MD5. 576 00:32:17,000 --> 00:32:21,000 >> حقيقة أن 50 هو بعد ذلك يعني أن قيمة الملح 577 00:32:21,000 --> 00:32:24,000 كان يستخدم من 50 لتجزئة كل هذه كلمات السر باستثناء واحدة. 578 00:32:24,000 --> 00:32:27,000 الألغام، بطبيعة الحال، وكما ترون هناك، HA، 579 00:32:27,000 --> 00:32:30,000 وكان استخدام الملح مختلفة، لذلك أولئك منكم الذين حصلوا على تعثرت قليلا حتى 580 00:32:30,000 --> 00:32:33,000 ربما في هاكر 2، وربما كان ذلك نتيجة لدينا بعد استخدام 581 00:32:33,000 --> 00:32:36,000 تجزئة مختلفة من الآخرين لأن كلمة السر هو في الواقع نفس 582 00:32:36,000 --> 00:32:38,000 حيث أن بعض المستخدمين الآخرين هناك. 583 00:32:38,000 --> 00:32:41,000 في الواقع، إذا كنت قد تم الانتظار كل هذه الأسابيع لمعرفة 584 00:32:41,000 --> 00:32:44,000 ما هي تلك كلمات السر وهنا كانت كلمات المرور التي تم الطعن لك 585 00:32:44,000 --> 00:32:48,000 للقضاء في الطبعة هاكر من مجموعة المشكلة 2، لذلك لا صعبة جدا. 586 00:32:48,000 --> 00:32:50,000 في الواقع، كان لمالان نفس jharvard، 587 00:32:50,000 --> 00:32:54,000 لكنهم إذا عدنا تبدو مختلفة. 588 00:32:54,000 --> 00:32:58,000 >> التركيز على jharvard في قرمزي بسبب المملحة بشكل مختلف. 589 00:32:58,000 --> 00:33:01,000 منزعجة الخوارزمية في الطريقة التي 590 00:33:01,000 --> 00:33:05,000 تجزئة القيمة، قيمة مشفرة تبدو مختلفة قليلا 591 00:33:05,000 --> 00:33:08,000 لأن المدخلات كانت مختلفة قليلا، ولكن كلمة المرور تحت غطاء محرك السيارة 592 00:33:08,000 --> 00:33:10,000 كان لا يزال قرمزي في نهاية المطاف. 593 00:33:10,000 --> 00:33:12,000 الآن، هذا الذي يهتم؟ 594 00:33:12,000 --> 00:33:15,000 حسنا، نحن نقدم لكم مع المستخدمين العينة، والعينة أسماء المستخدمين 595 00:33:15,000 --> 00:33:18,000 والتجزئة من كلمات المرور الخاصة بهم بحيث يكون لديك فعلا بعض 596 00:33:18,000 --> 00:33:23,000 العملاء لCS50 المالية عندما تحصل على أول بعيدا عن الارض مع التعليمات البرمجية. 597 00:33:23,000 --> 00:33:27,000 سيكون لديك لتنفيذ أكثر من الجداول داخل الخلية، داخل قاعدة البيانات. 598 00:33:27,000 --> 00:33:30,000 سيكون لديك لخلق المزيد من جداول البيانات، على نحو فعال، ولكن قررنا أن أقدم لكم هذا واحد 599 00:33:30,000 --> 00:33:33,000 لتبدأ، وسترى أن المشكلة مواصفات مجموعة 600 00:33:33,000 --> 00:33:37,000 يرشدك خلال عملية استيراد هذا الجدول 601 00:33:37,000 --> 00:33:39,000 وشرح أيضا ما تناقلته بعض والخصائص، 602 00:33:39,000 --> 00:33:41,000 وسترى أيضا أن نقدم لك رمز 603 00:33:41,000 --> 00:33:44,000 للتعامل مع تجزئة أو تشفير كلمات المرور هذه، 604 00:33:44,000 --> 00:33:49,000 حتى لا داعي للقلق كثيرا حول ما MD5 أو ما شابه ذلك هو في الواقع كل شيء. 605 00:33:49,000 --> 00:33:53,000 >> لذلك، SQL، لغة الاستعلام الهيكلية. 606 00:33:53,000 --> 00:33:56,000 هذا هو، بكل بساطة، لغة نحن على وشك البدء في استخدام pset في 7 607 00:33:56,000 --> 00:34:01,000 وربما خارجها لطلب البيانات من قاعدة بيانات بعض. 608 00:34:01,000 --> 00:34:06,000 و، البيانات مرة أخرى وتخزينها tabularly في هذه الجداول العلائقية، والأعمدة، والصفوف، 609 00:34:06,000 --> 00:34:09,000 ولكن باستخدام بعض بناء الجملة بسيطة نسبيا مثل حذف، 610 00:34:09,000 --> 00:34:12,000 يمكن إدراج وتحديث وتحديد نقوم به بالضبط. 611 00:34:12,000 --> 00:34:15,000 يمكننا حذف من قاعدة البيانات، إدراج، 612 00:34:15,000 --> 00:34:19,000 تحديث البيانات، وكذلك تحديد، وهذا هو، استرداد البيانات من قاعدة البيانات. 613 00:34:19,000 --> 00:34:21,000 كيف نذهب عن القيام بذلك؟ 614 00:34:21,000 --> 00:34:23,000 اسمحوا لي أن المضي قدما في الجهاز. 615 00:34:23,000 --> 00:34:28,000 اسمحوا لي سحب ما يصل الموقع http://localhost، 616 00:34:28,000 --> 00:34:30,000 التي، مرة أخرى، هو الأجهزة المحلية نفسها. 617 00:34:30,000 --> 00:34:32,000 وهذا اللقب الافتراضي الخاص به. 618 00:34:32,000 --> 00:34:35,000 واسمحوا لي أن انتقل إلى / بريس. 619 00:34:35,000 --> 00:34:39,000 هذا يحدث ليكون URL الخاص أن الأجهزة هي مسبقا لفهم 620 00:34:39,000 --> 00:34:42,000 يطالب فورا لي عن اسم المستخدم وكلمة المرور. 621 00:34:42,000 --> 00:34:46,000 >> كالعادة، انا ذاهب لكتابة jharvard والقرمزي، 622 00:34:46,000 --> 00:34:48,000 ولكن ندرك أن هذا هو حساب المسؤول على الكمبيوتر. 623 00:34:48,000 --> 00:34:53,000 انها مجرد مصادفة أن هناك أيضا jharvard مسجلة لCS50 المالية. 624 00:34:53,000 --> 00:34:56,000 Jharvard، قرمزي، أدخل يعطيني واجهة المستخدم التي رأيناها 625 00:34:56,000 --> 00:34:59,000 لمحة عن لحظة مضت، وانها قليلا في البداية الساحقة، 626 00:34:59,000 --> 00:35:02,000 لكن اطمئني، كنت أبدا ستكون لدينا لفوق معظم الروابط في هذه الأداة. 627 00:35:02,000 --> 00:35:05,000 سوف ينتهي بك الأمر باستخدام مجموعة فرعية صغيرة التي هي سوبر مفيدة، 628 00:35:05,000 --> 00:35:08,000 وأولها هو قواعد البيانات هنا. 629 00:35:08,000 --> 00:35:11,000 إذا ذهبت إلى قواعد البيانات، لاحظ أن أنا دفعت الأول إلى إنشاء قاعدة بيانات. 630 00:35:11,000 --> 00:35:14,000 هذا هو مثل إنشاء ملف Excel جديد، على نحو فعال. 631 00:35:14,000 --> 00:35:18,000 انا ذاهب الى المضي قدما، وندعو هذه المحاضرة، وأنا مجرد الذهاب الى هناك تجاهل حقل ومقارنتها. 632 00:35:18,000 --> 00:35:20,000 عليها أن تفعل مع تمثيل البيانات فيه، 633 00:35:20,000 --> 00:35:24,000 وانا ذاهب الى انقر فوق إنشاء، ثم لاحظ الآن وأنا أترك خلق 634 00:35:24,000 --> 00:35:27,000 على الجانب الأيسر حيث تقول لا قواعد البيانات 635 00:35:27,000 --> 00:35:30,000 وأود أن نرى قريبا قاعدة البيانات المحاضرة. 636 00:35:30,000 --> 00:35:32,000 >> إذا كنت انقر الآن على الجانب الأيسر، وقاعدة بيانات محاضرة، 637 00:35:32,000 --> 00:35:34,000 تلاحظ علامات التبويب تغيير بلدي قليلا. 638 00:35:34,000 --> 00:35:38,000 أنا عندي هيكل، SQL، الاستيراد والتصدير وبعض الأشياء الأخرى. 639 00:35:38,000 --> 00:35:40,000 هيكل جميلة فارغة من ذلك بكثير. 640 00:35:40,000 --> 00:35:43,000 العثور على الجداول في قاعدة البيانات، كما جاء هنا، 641 00:35:43,000 --> 00:35:47,000 لذلك دعونا إنشاء جدول، ودعونا نمضي قدما وإنشاء جدول 642 00:35:47,000 --> 00:35:53,000 مثل الطلاب، وعدد الأعمدة ونحن لا نريد؟ 643 00:35:53,000 --> 00:35:55,000 دعونا نحافظ على هذا بسيط، ودعونا سجل لكل طالب 644 00:35:55,000 --> 00:35:58,000 عدد ID، وهو اسم، وعنوان البريد الإلكتروني. 645 00:35:58,000 --> 00:36:02,000 >> سنقوم يبقيه بسيط من هذا القبيل، لذلك 3 أعمدة، انتقل. 646 00:36:02,000 --> 00:36:05,000 النموذج الذي تراه هنا الآن قليلا فوضوي والساحقة، 647 00:36:05,000 --> 00:36:08,000 ولكن لدينا فقط للذهاب من خلال ذلك من صف، لذلك بسرعة حقا دعونا نعطي 648 00:36:08,000 --> 00:36:14,000 العمود الأول في قاعدة البيانات هذه على اسم ID لمعرف فريد. 649 00:36:14,000 --> 00:36:17,000 سيكون عدد صحيح. لا أستطيع تجاهل الواقع وطول القيم. 650 00:36:17,000 --> 00:36:21,000 والباحث ستكون 32 بت بغض النظر عن ما اكتب في هناك، لذلك دعونا اتركه فارغا. 651 00:36:21,000 --> 00:36:24,000 القيمة الافتراضية، ويمكنني أن تجعل من فارغة، كما هو محدد. 652 00:36:24,000 --> 00:36:27,000 أنا ذاهب إلى ترك ذلك وحده. دعونا لا تقلق بشأن القيم الافتراضية. 653 00:36:27,000 --> 00:36:29,000 دعونا انتقل إلى هنا لسمات، أليس كذلك. 654 00:36:29,000 --> 00:36:31,000 هذا مثير للاهتمام. 655 00:36:31,000 --> 00:36:33,000 دعونا نمضي قدما وبشكل تعسفي إلى حد ما أن نقول يجب أن تكون معرفات غير الموقعة. 656 00:36:33,000 --> 00:36:35,000 دعونا لا نضيع الأرقام السالبة. 657 00:36:35,000 --> 00:36:37,000 >> دعونا نذهب 0 حتي 4000000000، يعطي أو يأخذ، 658 00:36:37,000 --> 00:36:40,000 وثم دعونا لا تلمس أي من هذه الحقول فقط حتى الآن هناك، 659 00:36:40,000 --> 00:36:43,000 ولكن ثم اسمحوا لي أن اكتب في اسم هنا إلى أسفل، 660 00:36:43,000 --> 00:36:46,000 وغيرها من ثم كان البريد الإلكتروني، وبالتالي فإن الصيد هو البريد الإلكتروني 661 00:36:46,000 --> 00:36:50,000 واسم، من الواضح أن لا الأعداد الصحيحة، لذلك دعونا تغيير هذه إلى حقل مختلف. 662 00:36:50,000 --> 00:36:53,000 تبين VARCHAR، شار متغير الطول، 663 00:36:53,000 --> 00:36:56,000 مثل سلسلة في قاعدة بيانات SQL 664 00:36:56,000 --> 00:36:59,000 ولكن بطول متغير، وكان لديك فعلا ليقولوا ذلك مقدما 665 00:36:59,000 --> 00:37:02,000 الحد الأقصى لطول السلسلة، لذلك انا ذاهب الى حد ما بشكل تعسفي 666 00:37:02,000 --> 00:37:05,000 من اتفاقية نوع 255 حرفا. 667 00:37:05,000 --> 00:37:08,000 يمكن أن أقول تماما 32. يمكن أن أقول 1،000. 668 00:37:08,000 --> 00:37:11,000 كنت نوع من الحاجة إلى تقرر لنفسك بناء على التركيبة السكانية لديك ما هو 669 00:37:11,000 --> 00:37:14,000 أطول اسم الطالب وتذهب مع هذا العدد أو أكبر قليلا، 670 00:37:14,000 --> 00:37:17,000 ولكن ما هو جميل عن VARCHAR هو انها لن تضيع 671 00:37:17,000 --> 00:37:19,000 255 بايت على اسم كل طالب. 672 00:37:19,000 --> 00:37:23,000 اذا كان DAVID انها لن تستخدم كلها 255 بايت، 673 00:37:23,000 --> 00:37:26,000 ولكن هذا على الحد الأعلى، لذلك سأذهب مع 255 فقط من خلال الاتفاقية، 674 00:37:26,000 --> 00:37:30,000 ولكن يمكن أن نناقش بعض لتكون أقل قيمة، وعنوان البريد الإلكتروني 675 00:37:30,000 --> 00:37:34,000 لمجرد أن يكون ثابت 255، ولكن مرة أخرى، أننا يمكن أن يكون نفس المناقشة. 676 00:37:34,000 --> 00:37:36,000 ولكن انا ذاهب الى القيام شيء آخر أكثر من هنا على الجانب الأيمن. 677 00:37:36,000 --> 00:37:40,000 >> ما هو قوية حول قاعدة بيانات هي أنه يمكن أن تفعل الكثير من رفع الأحمال الثقيلة 678 00:37:40,000 --> 00:37:42,000 أو العمل المعقد بالنسبة لك. 679 00:37:42,000 --> 00:37:46,000 على وجه الخصوص، في الحقيقة أنا لا يهمني ما أرقام ID تلميذي هي. 680 00:37:46,000 --> 00:37:49,000 من المفترض أن تكون مجرد معرف فريد في قاعدة بيانات 681 00:37:49,000 --> 00:37:52,000 لذلك لدي التمثيل مقتضبة 32 بت من ذلك الطالب 682 00:37:52,000 --> 00:37:55,000 بحيث لدي طريقة ما لتحديد فريد لهم 683 00:37:55,000 --> 00:37:58,000 لئلا تكون 2 ديفيدز هناك، على سبيل المثال، في فئة. 684 00:37:58,000 --> 00:38:01,000 في الواقع، انا ذاهب للتحقق من هذا المربع AI، مقدار السيارات، 685 00:38:01,000 --> 00:38:04,000 بحيث قاعدة البيانات، الخلية، والشخصيات من 686 00:38:04,000 --> 00:38:08,000 ما كل طالب ID المدرج حديثا هو سيكون. 687 00:38:08,000 --> 00:38:11,000 أنا لا تملك حتى ليهمني ذلك في قانون بلدي، 688 00:38:11,000 --> 00:38:13,000 وانا ذاهب أيضا لاختيار شيء ضمن القائمة الفهرس. 689 00:38:13,000 --> 00:38:17,000 مؤشر المنسدلة هنا والابتدائي، فريدة من نوعها، 690 00:38:17,000 --> 00:38:19,000 ومؤشر النص الكامل. 691 00:38:19,000 --> 00:38:21,000 يمكنك تخمين ما ربما اثنين من هذه الأمور، 692 00:38:21,000 --> 00:38:24,000 ولكن تبين في قواعد البيانات العلائقية 693 00:38:24,000 --> 00:38:28,000 أنت مبرمج أو مسؤول قاعدة البيانات الحصول على نحو استباقي 694 00:38:28,000 --> 00:38:32,000 تعطي تلميحات إلى قاعدة البيانات على ما المجالات 695 00:38:32,000 --> 00:38:34,000 في جدول خاص هي قليلا. 696 00:38:34,000 --> 00:38:37,000 >> على سبيل المثال، في هذه الحالة أنا ذاهب إلى القول بأن ID 697 00:38:37,000 --> 00:38:42,000 سيكون مؤشر الأولية، والمعروف باسم مفتاح أساسي. 698 00:38:42,000 --> 00:38:44,000 ما يعني بحكم التعريف هو أن من الآن فصاعدا ID 699 00:38:44,000 --> 00:38:48,000 وبشكل فريد الطلاب في هذا الجدول. 700 00:38:48,000 --> 00:38:53,000 لن يكون لدى الطالب نفس معرف لأنني فرض هذا القيد أو هذا مؤشر. 701 00:38:53,000 --> 00:38:55,000 وعلاوة على ذلك، وهذا ما يجري القيام به بالنسبة لي هو انه ذاهب لاقول 702 00:38:55,000 --> 00:38:58,000 الخلية التي ID هو خاص. 703 00:38:58,000 --> 00:39:03,000 أهتم بشكل خاص حول ID، لذلك يذهب إلى الأمام والقيام السحر بنية البيانات الخاصة بك نزوة ل، 704 00:39:03,000 --> 00:39:05,000 بناء نوع من الأشجار. 705 00:39:05,000 --> 00:39:08,000 عادة ما تسمى شيء انها B-شجرة، ونحن لم ننظر في أسابيع، 706 00:39:08,000 --> 00:39:11,000 ولكن من آخر بنية بيانات مماثلة في مثل هذه الروح إلى الأشجار الثنائية 707 00:39:11,000 --> 00:39:15,000 ويحاول أننا في النظر، لكنه سيحتاج إلى القول 708 00:39:15,000 --> 00:39:18,000 إلى قاعدة البيانات هذا المجال المهم لدرجة أنني ربما 709 00:39:18,000 --> 00:39:22,000 تريد أن تكون قادرة على البحث في ذلك، والمضي قدما في بناء يتوهم البعض 710 00:39:22,000 --> 00:39:25,000 هيكل البيانات في الذاكرة لتسريع البحث بحيث مثالي 711 00:39:25,000 --> 00:39:28,000 انهم الوقت ثابتة أو على الأقل قريبة من ممكن أن 712 00:39:28,000 --> 00:39:32,000 بحيث لا تتحول الى البحث الخطي، والذي لن يكون 713 00:39:32,000 --> 00:39:34,000 العلي أداء النهج. 714 00:39:34,000 --> 00:39:37,000 على النقيض من ذلك، كان يمكن أن يكون عنوان البريد الإلكتروني مفتاح أساسي. 715 00:39:37,000 --> 00:39:41,000 >> من الناحية النظرية، عنوان البريد الإلكتروني الجميع هي فريدة من نوعها، إلا إذا كنت تقاسم بعض الاعتبار، 716 00:39:41,000 --> 00:39:45,000 ولكن هذا عادة لا جيدة لاستخدام شيء من هذا القبيل سلسلة 717 00:39:45,000 --> 00:39:49,000 كمفتاح أساسي لأنه إذا هدفها في الحياة هو تحديد فريد 718 00:39:49,000 --> 00:39:55,000 الصفوف في الجدول الخاص بك وليس هناك سبب لاستخدام الحد الأقصى 255 بايت 719 00:39:55,000 --> 00:39:58,000 لتحديد فريد شخص إذا كان يمكنك الحصول بعيدا مع فقط 4 بايت 720 00:39:58,000 --> 00:40:00,000 أو الباحث 32 بت. 721 00:40:00,000 --> 00:40:03,000 بشكل عام، يجب أن يكون المفتاح الأساسي قصيرة وموجزة 722 00:40:03,000 --> 00:40:07,000 وشيء من هذا القبيل مثالي عدد صحيح أو الباحث الكبير، الذي صادف أن يكون 64 بت. 723 00:40:07,000 --> 00:40:11,000 ولكن يجب أن يكون عنوان بريد إلكتروني فريد، واحدة من السمات من قاعدة بيانات جدا 724 00:40:11,000 --> 00:40:14,000 هو فرض تفرد بالنسبة لي. 725 00:40:14,000 --> 00:40:18,000 من خلال تحديد فريدة هنا بجوار البريد الإلكتروني، على الرغم من البريد الإلكتروني نفسه 726 00:40:18,000 --> 00:40:21,000 يتم تمريره خارج الشاشة، وأنا أقول لقاعدة البيانات 727 00:40:21,000 --> 00:40:23,000 لا ثقة لي. 728 00:40:23,000 --> 00:40:26,000 لا تدع لي إدراجها في قاعدة البيانات 729 00:40:26,000 --> 00:40:29,000 عنوان البريد الإلكتروني نفسه مرتين، حتى لو أنا أحمق ولست 730 00:40:29,000 --> 00:40:32,000 جيدة جدا مع المؤسسة الدولية للعلوم بلدي وآخر، والمؤسسة الدولية للعلوم الفعلية كود PHP 731 00:40:32,000 --> 00:40:37,000 واسمحوا لي بطريق الخطأ للمستخدم تسجيل عنوان بريد إلكتروني مع القائمة 732 00:40:37,000 --> 00:40:40,000 قاعدة البيانات هو آخر مستوى الدفاع عن صحة 733 00:40:40,000 --> 00:40:44,000 لضمان أن عنوان البريد الإلكتروني مكررة لا ينتهي في الجدول. 734 00:40:44,000 --> 00:40:49,000 >> الآن، على النقيض من ذلك، على سبيل الاسم الذي ربما لا تريد لجعل هذا فريدة من نوعها 735 00:40:49,000 --> 00:40:51,000 لأن هناك أبدا ثم يمكن أن تكون 2 أو 2 ديفيدز الحدادون مايك، على سبيل المثال، 736 00:40:51,000 --> 00:40:55,000 في قاعدة البيانات الخاصة بك، ليصبح الفرد سوف نترك وحده فقط. 737 00:40:55,000 --> 00:40:58,000 انا ذاهب الى المضي قدما وانقر على حفظ أسفل اليمين، 738 00:40:58,000 --> 00:41:02,000 وكل شيء يبدو جيدا، ولكن لاحظت هنا 739 00:41:02,000 --> 00:41:04,000 هذا هو الجزء الذي لأننا الآن لن تنفق الكثير من الوقت على 740 00:41:04,000 --> 00:41:07,000 لأن بناء الجملة معقدة بعض الشيء، وليس لدينا لإنشاء الجداول 741 00:41:07,000 --> 00:41:10,000 كل ما في كثير من الأحيان، ولكن SQL نفسها هي لغة، 742 00:41:10,000 --> 00:41:13,000 بناء الجملة من أجل الحق الذي هو هنا لقد أبرزت أن. 743 00:41:13,000 --> 00:41:18,000 ما هو حقا بريس أنه يخلق GUI على شبكة الإنترنت بالنسبة لك 744 00:41:18,000 --> 00:41:23,000 والتي يمكنك توفير الوقت وعدم الحاجة إلى كتابة يدويا من 745 00:41:23,000 --> 00:41:26,000 استعلام SQL طويلة نسبيا من هذا القبيل. 746 00:41:26,000 --> 00:41:29,000 >> وبعبارة أخرى، إذا كنت تريد يدويا إنشاء هذا الجدول، 747 00:41:29,000 --> 00:41:32,000 إما في تلك بريس بالأبيض والأسود أو حتى في الأوامر 748 00:41:32,000 --> 00:41:35,000 باستخدام هذا التبويب أخرى، هذا التبويب SQL حيث يمكنك كتابة أي استفسارات في SQL 749 00:41:35,000 --> 00:41:38,000 تريد، بصراحة، هذا من شأنه أن اتخذت لي دقيقة واحدة 750 00:41:38,000 --> 00:41:41,000 في الواقع أن نتذكر بناء الجملة بأكملها، وحتى ذلك الحين لدي ربما 751 00:41:41,000 --> 00:41:45,000 إحراز بعض الأخطاء المطبعية، لذلك هذه الأداة مفيدة لاشياء من هذا القبيل، وكما انها مفيدة. 752 00:41:45,000 --> 00:41:49,000 يمكنك أن تبدأ في الاستدلال ما هو بناء الجملة 753 00:41:49,000 --> 00:41:52,000 فقط من خلال لون لطيفة الترميز التي تضيف بريس 754 00:41:52,000 --> 00:41:54,000 للراحة لنا البصرية. 755 00:41:54,000 --> 00:41:56,000 ولكن الآن دعونا نفعل هذا بدلا من ذلك. 756 00:41:56,000 --> 00:42:00,000 اسمحوا لي أن انتقل إلى علامة التبويب إدراج في الأعلى، واسمحوا لي أن تمضي قدما وعلى سبيل المثال إدراج 757 00:42:00,000 --> 00:42:04,000 معرف دعونا نقول من الواقع، لا يهمني. 758 00:42:04,000 --> 00:42:07,000 انه سيكون لطريقة السيارات. انا ذاهب للسماح للصفقة قاعدة البيانات مع هذا. 759 00:42:07,000 --> 00:42:11,000 ولكن سأكون ديفيد، والبريد الإلكتروني الخاص بي يجب أن يكون malan@harvard.edu. 760 00:42:11,000 --> 00:42:16,000 >> دعونا نمضي قدما هنا وضعت في مايك سميث واحد آخر. 761 00:42:16,000 --> 00:42:18,000 سوف أعطي نفسي اسم العائلة أيضا، 762 00:42:18,000 --> 00:42:22,000 وسيكون لدينا له ان smith@example.com، 763 00:42:22,000 --> 00:42:24,000 ثم أين أذهب بعد ذلك؟ 764 00:42:24,000 --> 00:42:27,000 حسنا، يبدو أن الذهاب هو الزر لفوق، وفويلا. 765 00:42:27,000 --> 00:42:30,000 تلاحظ في الصفوف الأعلى 2 المدرجة. 766 00:42:30,000 --> 00:42:32,000 هذا هو الاستعلام SQL الفعلي. 767 00:42:32,000 --> 00:42:36,000 هذا هو أداة تنفيذ بريس بالنسبة لي، 768 00:42:36,000 --> 00:42:40,000 ولكن النتيجة النهائية، لاحظ، إذا ذهبت الآن إلى علامة التبويب شاشة، 769 00:42:40,000 --> 00:42:43,000 هو أن نرى الصفوف 2 في هذا الجدول، تذكرنا جدا من الناحية الجمالية 770 00:42:43,000 --> 00:42:46,000 من الجدول رأينا في وقت سابق لمستخدمينا من pset 7، 771 00:42:46,000 --> 00:42:51,000 واحد منهم هو ديفيد مالان، واحد منهم هو الآن مايك سميث. 772 00:42:51,000 --> 00:42:54,000 ولكن لمجرد أن يكون واضحا، ولست بحاجة لاستخدام بريس، 773 00:42:54,000 --> 00:42:56,000 وبالفعل، وأنت تسير لكتابة التعليمات البرمجية قريبا لpset 7 774 00:42:56,000 --> 00:43:01,000 بأتمتة عملية إضافة الصفوف، وحذف الصفوف، واستكمال الصفوف وما شابه ذلك، 775 00:43:01,000 --> 00:43:04,000 لذلك اسمحوا لي أن انتقل إلى علامة التبويب بدلا SQL هنا حتى 776 00:43:04,000 --> 00:43:14,000 ونوع في حدد * من الطلاب حيث 777 00:43:14,000 --> 00:43:18,000 البريد الإلكتروني = "malan@harvard.edu". 778 00:43:18,000 --> 00:43:21,000 >> وبعبارة أخرى لنفترض الآن لديك 779 00:43:21,000 --> 00:43:26,000 شكل HTML، وأنواع المستخدم في عنوان بريدهم الإلكتروني، من بين مجالات أخرى، 780 00:43:26,000 --> 00:43:29,000 والهدف من ذلك هو الآن في PHP على رمز النهاية الخلفية 781 00:43:29,000 --> 00:43:31,000 لننظر في الواقع عن التفاصيل الخاصة بهذا المستخدم الأخرى. 782 00:43:31,000 --> 00:43:34,000 ما هو اسمك الكامل؟ ما هو رقم هاتفك ID؟ 783 00:43:34,000 --> 00:43:37,000 هل يمكن كتابة استعلام SQL مثل هذا، حدد * من الطلاب 784 00:43:37,000 --> 00:43:40,000 حيث الكتروني = "malan@harvard.edu". 785 00:43:40,000 --> 00:43:46,000 وإذا كنت ثم انقر فوق انتقال، لاحظ أنه ينبغي لي أن والواقع أنني، نعود فقط صف واحد. 786 00:43:46,000 --> 00:43:50,000 تم حذف مايك من هذه المجموعة نتيجة لذلك، كما جمع الصفوف 787 00:43:50,000 --> 00:43:53,000 ويطلق عموما، لأنه ليس لديه عنوان البريد الإلكتروني نفسه لي. 788 00:43:53,000 --> 00:43:57,000 >> الآن، مرة أخرى، وهنا لpset 7 ستستخدم كأداة بريس الإدارية 789 00:43:57,000 --> 00:44:00,000 وأداة تربوية لمعرفة طريقك 790 00:44:00,000 --> 00:44:03,000 في جميع أنحاء العالم من SQL، ولكن في نهاية اليوم 791 00:44:03,000 --> 00:44:08,000 كنت على وشك أن أكتب هذه الاستعلامات داخل كود PHP الفعلية، 792 00:44:08,000 --> 00:44:11,000 وهكذا لا تنزعج تجول في Zamyla على وجه الخصوص 793 00:44:11,000 --> 00:44:14,000 حيث سوف تحصل على جولة من قانون التوزيع لهذه المجموعة المشكلة 794 00:44:14,000 --> 00:44:18,000 لقد أعطيت لنا حيث كنت ليس فقط جماليات لصفحة تسجيل الدخول 795 00:44:18,000 --> 00:44:21,000 ولقد ظل شعار لطيف مثير تقول CS50 المالية، ولكننا أيضا كنت 796 00:44:21,000 --> 00:44:24,000 مجموعة من الوظائف من شأنها أن تجعل حياتك أسهل قليلا. 797 00:44:24,000 --> 00:44:27,000 لقد كتبنا أيضا جزء من pset بالنسبة لك، 798 00:44:27,000 --> 00:44:32,000 الجزء الدخول منه على وجه الخصوص، لتعطيك إحساسا تصميم ممثل 799 00:44:32,000 --> 00:44:36,000 يستخدم وحدة تحكم في الواقع، لindex.php، المثال، 800 00:44:36,000 --> 00:44:40,000 login.php وما شابه ذلك، ومن ثم سترى pset أيضا دليل قوالب 801 00:44:40,000 --> 00:44:43,000 التي لديها كل وجهات النظر الخاصة بك، كل من علم الجمال. 802 00:44:43,000 --> 00:44:46,000 وهكذا سير العمل العام في pset 7 هو الى ان يحدث ذلك 803 00:44:46,000 --> 00:44:49,000 المستخدمون زيارة وحدة تحكم عن طريق URL في مستعرض. 804 00:44:49,000 --> 00:44:53,000 أن وحدة التحكم يحتوي على رمز PHP التي كتبت، وداخل التعليمات البرمجية PHP 805 00:44:53,000 --> 00:44:57,000 قد تكون متداخلة بعض خطوط SQL علامات اقتباس مزدوجة في ما بين 806 00:44:57,000 --> 00:45:00,000 ومررنا على وظيفة كتب الاستعلام دعا 807 00:45:00,000 --> 00:45:03,000 وسوف تساعدك على التحدث إلى قاعدة البيانات دون استخدام شيء من هذا القبيل 808 00:45:03,000 --> 00:45:05,000 أداة إدارية مثل بريس. 809 00:45:05,000 --> 00:45:08,000 >> عليك أن تكون قادرا على كتابة البيانات SQL في التعليمات البرمجية PHP 810 00:45:08,000 --> 00:45:11,000 ونعود مجموعة PHP من مجموعة النتائج، 811 00:45:11,000 --> 00:45:14,000 من الصفوف التي تطابق الواقع هذا الاستعلام. 812 00:45:14,000 --> 00:45:18,000 وبالمثل سوف تكون قادرة على القيام إدراج أو حذف 813 00:45:18,000 --> 00:45:22,000 أو تحديثات أو ما شابه ذلك، بناء الجملة التي تشبه إلى حد ما، 814 00:45:22,000 --> 00:45:25,000 وسترى من بعض المراجع على الإنترنت، من توزيع التعليمات البرمجية 815 00:45:25,000 --> 00:45:29,000 وpset من حزمة نفسها بالضبط كيفية التوجه نحو القيام بذلك. 816 00:45:29,000 --> 00:45:33,000 في نهاية المطاف نحن ندرك حقا مجرد خدش سطح SQL 817 00:45:33,000 --> 00:45:36,000 والخلية، ولكن قوة هو حقا أنها تحررك 818 00:45:36,000 --> 00:45:40,000 للتركيز على المشاكل التي تريد حلها، وحالات الاستخدام تريد تطبيق 819 00:45:40,000 --> 00:45:43,000 دون الحاجة إلى القلق تماما بقدر، على الأقل في وقت مبكر، 820 00:45:43,000 --> 00:45:47,000 حول مكان وكيفية تخزين والبحث في قاعدة البيانات الخاصة بك، 821 00:45:47,000 --> 00:45:50,000 وهذا هو حرفيا حيث الفيسبوك نفسه حصلت على بدايته 822 00:45:50,000 --> 00:45:53,000 باستخدام MySQL و بعد ذلك باستخدام أكثر من ملقمات الخلية ومن ثم أكثر من ملقمات الخلية 823 00:45:53,000 --> 00:45:57,000 قبل وقت طويل كان لديهم ثم لبدء حقا التفكير مليا في كيفية 824 00:45:57,000 --> 00:46:00,000 تخزين البيانات، وكيفية تخزين الأشياء أكثر كفاءة، 825 00:46:00,000 --> 00:46:04,000 على الرغم من ذلك سوف نتخذها لمنح حقيقة أن الفهارس والقيود الفريدة 826 00:46:04,000 --> 00:46:08,000 وهكذا دواليك العمل فقط هناك محادثة مثيرة جدا للاهتمام 827 00:46:08,000 --> 00:46:12,000 التي يمكن أن تؤدي في نهاية المطاف كل هذا، لذلك ندرك أننا مجرد خدش السطح 828 00:46:12,000 --> 00:46:17,000 يمكن في نهاية المطاف ما لك أو لمشاريعك تصبح قدرا كبيرا من البيانات الكبيرة. 829 00:46:17,000 --> 00:46:22,000 >> مع أن قال، دعونا تنتهي هنا، وسنرى في الأسبوع القادم. 830 00:46:28,000 --> 00:46:30,000 [CS50.TV]