[عزف الموسيقى] DAVID مالان: هذا هو CS 50، و هذه هي بداية الاسبوع تسعة. وما كنا نظن أننا سوف نفعل اليوم ليس فقط إغلاق الباب في الأسبوع الماضي المواد حيث ركزنا على الخادم الجانب برمجة الويب مع PHP و SQL، بعض الاشياء قاعدة البيانات. سوف نتحدث عن شيء من الأمن اليوم ثم الانتقال إلى البرمجة جانب العميل لغة تعرف باسم جافا سكريبت. ولكن أولا، بعض الفداء. ولعلكم تذكرون أنه في الأربعاء، شرعت لكتابة الموقع الذي أخذت في مدخلات المستخدم قبل أن تشكل HTML المخزنة ثم أن أسماء إدخال المستخدم، هاتف الأرقام والهواتف المحمولة الناقلين في قاعدة البيانات. ثم كان لي أمر صغير السيناريو خط كتابة في PHP التي كان من المفترض أن تكرار على مدى الصفوف في قاعدة البيانات وترسل رسائل نصية. على الرغم من العديد، العديد من المحاولات، ونحن لم تحصل على هذا العمل بحلول نهاية. لذلك قضيت هذا الأسبوع بأكمله العمل على هذا الرمز لتحصل لنا بعد نقطة حيث توقفنا، حيث جميع حصلت بنهاية يوم الأربعاء وكانت هذه رسالة نصية من مارجو لأنني كافحت، تليها رسالة نصية من آخر زميل، كنت قد حصلت على هذا ديفيد. تليها هذا واحد، مشجع رائع. أبقى على الذهاب، مشجعة جدا. أنا تقريبا حصلت عليه حتى then-- و هذا علما أننا انتهت يوم الاربعاء. ثم في الواقع ربما المفضل، وبعد لحظة، وجاء هذا في. لعنة لايف ستريم. حتى اليوم، يمكننا إصلاح هذا مع سريعة ننظر إلى ما فعلته منذ ذلك الحين. لذلك كل من هذا الرمز هو متاح من الانترنت، الأسبوع الماضي الأسبوع ثمانية، شفرة المصدر. وسترى أن ذهبت من خلال، وأنا تنظيف فعليا حتى الأشياء قليلا. تعرفت على اثنين آخرين ميزات قاعدة بيانات SQL. على سبيل المثال، بدلا من فقط للتأكد من الناقل فار تشار وأنا أعتقد أنني فعلت على الطاير الأسبوع الماضي. أنا بدلا تعريفها بأنها ما يسمى التعداد. و قد شهدت بعض منكم هذا كما اكتشفنا C. التعداد هو في الواقع سمة من سمات C حيث يمكنك تعداد في مجمله مجموعة من الثوابت وتعيينها القيم التلقائية، مثل واحد، اثنان، ثلاثة، أربعة دون الحاجة إلى الأرقام رمز الصعبة. لذا SQL يدعم نفسه، حيث إن لديك حقل قاعدة البيانات الذي قمت فقط تريد أن تأخذ على أحد محدود القيم، يمكنك تحديد حرفيا كما فعلت هناك لمدة أربعة الولايات المتحدة حاملات الهواتف المحمولة شعبية. هكذا فعلت ذلك. وقدم لي عدد من التغييرات جيدا، وأهمها تم الحصول على البريد الإلكتروني ليعمل التذكير، أن هذا البرنامج الذي اعتمد على ودعا عموما بريد إلكتروني إلى بوابة الرسائل القصيرة، والتي هي فقط طريقة أخرى للقول بأن فيريزون، و AT & T، وغيرها من الناس دعم خادم، حيث إذا تلقت البريد الإلكتروني، وذلك بتحويلها إلى SMS ويرسل النص رسالة إلى هاتف شخص ما. حتى إذا فعلت ذلك بشكل صحيح، هنا هو شكل جديد وتحسين ما يجري التحدث الى مدونة جديدة ومحسنة، والتي يمكنك ان تلعب مع الانترنت. وستجعل نأمل بلدي زمارة الهاتف في مجرد لحظة. ذلك أولا، أنا ذاهب إلى كتابة اسمي. ثانيا، أنا لا أذهب للقيام بذلك هذه المرة. انا ذاهب الى لا تفقد عنصر. وهذا هو مجرد الشيء القليل لذلك أنا لا خلق ساعات ما بعد الإنتاج العمل كما فعلت في المرة السابقة. الآن هناك رقم هاتفي. انا حدد فيريزون. وهنا، دعونا تشغيل هذا الميكروفون هنا، وتهدف هذه في هاتفي هنا. انا ذاهب الى انقر فوق تسجيل، التي ينبغي أن نأمل وضعها في قاعدة البيانات. الآن انا ذاهب للذهاب إلى برنامج سطر الأوامر، التي كان يسمى استدعاء مائل نقطة النص، وعبر أصابعك. هنا نذهب. [DINGS PHONE] [تصفيق] DAVID مالان: حتى أكثر متعة من this-- انها متعة، وبطبيعة الحال، إذا كنت وصول الى ذلك. ولكن هذا أكثر متعة، فكرت، إذا كنا أنشأت واحدة من تلك اللحظات الفيلم حيث كأنه شيء حقا حدث سيئة في العالم، ومثل جميع الناس NSA الهواتف المحمولة تبدأ التصفير مع الرسائل النصية تنبيههم إلى هذه الحقيقة. لذلك أنا أعتقد أننا سوف نحاول لإعادة نفسه هنا، حيث لا تستخدم قاعدة بيانات، أنا بدلا مقدما كتب برنامج يشبه هذا. هذا هو index.php-- وأضع هذا الرمز على الانترنت كما يبدو أن well-- فقط يجعل form.php، باستخدام أسلوب النموذج MVC أننا الحديث عن بمزيد من التفصيل في مجموعة مشكلة سبعة. هذا النموذج هو بسيط جدا. انها سوف يقدم إلى ل ملف يسمى here.php عن طريق آخر. وعلى ما يبدو انها سوف تسأل للحصول على الاسم، ورقم الهاتف، وبعد ذلك عن طريق ما يسمى حدد القائمة، انها سوف أعطيك أربعة على الأقل الولايات المتحدة حاملات الهواتف المحمولة شعبية، ومن ثم تسمح لك فعليا أخذ الحضور بالضغط هنا. وهنا، وفي الوقت نفسه، يجري ل استعارة بعض من رمز من الوقت الماضي. وإذا كنت مجرد المقشود هذا، سترى أن هناك مجموعة كاملة من التحقق من الخطأ. ولكن الجمال في النهاية هو أن نحن لا الكتابة إلى قاعدة بيانات اليوم. نحن ابقائها بسيطة و فقط بإرسال أمل رسالة نصية عبر وظيفة أنا وكتب على مدى بضعة أيام دعوة الماضية النص، الذي هو في وظائف. PHP، وهو متاح مرة أخرى على الانترنت. حتى إذا كنت ترغب في المشاركة في هذا. نحن لن يتم تخزين أي شيء. الذهاب إلى هذا الرابط هنا في الوقت الحقيقي. لا تضعها فقط حتى الآن، ولكن دعونا نرى ما اذا كنا يمكن أن يكون واحد من هذه الأفلام لحظات الهاتف المحمول حيث الجميع يبدأ التصفير، ونأمل فقط مرة واحدة هذا العام على عكس عام 2011 أين ذهب هذا منحرف فظيعة. وعندما تذهب إلى هذا العنوان، أنت ترى نموذج بسيط السوبر إذا كان لديك اسم، الهاتف الخليوي عدد، وحاملة الهاتف المحمول التي مباريات قائمة هناك، انتقل وقبل ملء النموذج. ولكن لا تصل يقدم فقط حتى الآن. ما يحدث على شكل لتبدو مثل هذه. المضي قدما واكتب في اسمك ورقم الهاتف. OOP، شخص ما يحدث في الطليعة. لا بأس. حسنا، لقد شغل الجميع الاستمارة. هذا يجب أن تعمل على الهاتف، أيضا، إذا كنت تريد. كل الحق على علامات الخاص بك، والحصول على مجموعة، أذهب. ضرب هنا. ماذا؟ لا. أقسم بالله، أنا اختبرت هذا عدة مرات اليوم. كنت حصلت عليه؟ [فاصلة أصوات] DAVID مالان: حسنا، ربما خطأ المستخدم. هذا هو اثنين. عملت لمدة سنتين للخروج من بضع مئات، ثلاثة، أربعة. حسنا، هذا جيد. أربعة من كل خمسة ل ماذا عن الأداء الدقيق. وذلك ما حدث للتو؟ هكذا يفترض، دون رؤية بك الشاشات، ماذا يمكن أن يكون errored؟ فمن المحتمل أننا كنا فقط في محاولة لجعل اتصالات كثيرة جدا إلى خادم البريد هارفارد في كل مرة واحدة من عنوان IP نفسه. أنا مجرد التخمين منذ لم أكن لديك متسع من الاختبار هذا الرمز مع بعض 300 شخصا مقدما لكنه الآن أدرك أن أنه ينبغي على الأقل وقد حصلت هذه المهمة هذه المرة. كل الحق، لذلك لماذا كل هذا أكثر ثيق ما الذي يحدث؟ حسنا أولا، سريع زوجين من الإعلانات. حتى واحد، إذا كنت ترغب في الانضمام تشانغ، و نيك، والبعض الآخر على الغداء يوم الجمعة، القيام RSVP في URL المعتاد هناك. إذا كنت تفكر في التركيز أو القيام الثانوي في CS، سواء كنت طالبة أو طالبة، أو حتى صغار أو كبار في هذه المرحلة ويمكن أن يزال الضغط في الدورات، ندرك أن كلية الهندسة وجمع مجانا بن و الآيس كريم جيري والمشورة هذا الأربعاء بعد وقت قصير من الدرجة الساعة 4:00 بعد الظهر في مبنى CS في ماكسويل دوركين. إذا كان هذا هو سريع جدا على الشاشة، واذهبوا لcs50.harvard.edu ل رابط إلى الحدث الفيسبوك حيث يمكنك ان ترى المزيد من التفاصيل. وفي الوقت نفسه، ظننت انني سوف تصحيح الشيء الآخر أنني أخطأ يوم الاربعاء. تبين أن الرقم مارك في الفيسبوك وليس ثلاثة. كان الأربعة. اتضح انه كان أكثر الاختبار حسابات من أذكر. ولكن ما شعرت مثل هذه الفرصة القيام به هو سحب ما يصل URL مثل هذا. هكذا اتضح أن الفيسبوك لديها API، واجهة برمجة تطبيقات، وهي آلية يمكن من خلالها لك يمكن طلب البيانات برمجيا في الفيسبوك والعودة آلة المعلومات القابلة للقراءة، وليس صفحات الويب لكن النص فقط الخام، شيء دعا جافا سكريبت تدوين كائن. وفي الواقع، إذا قمت بزيارة هذا URL، والتكبير، افتراضيا، هذا هو مارك علنا معلومات سهلة المنال. والتفاصيل مثيرة للاهتمام هنا هو مجرد أن هويته في الواقع، عدد أربعة، وأنا أدركت بمجرد أن فعلت ذلك. يمكنك أن تفعل هذا بنفسك إذا كنت تعرف الفيسبوك اسم المستخدم الخاص بك إذا كان لديك واحد. فقط اكتبه حتى أعلى هناك. ولا شيء من هذا هو الخاص. أنا فقط القيام بذلك حتى في وضع التصفح المتخفي. لذلك أنا لا حتى تقوم بتسجيل الدخول. وكنت ترى أنني كان على ما يبدو مستخدم عدد 6454 في الفيسبوك، وهي ليست سيئة للغاية هذه الأيام. لذلك على أية حال، سترى أيضا معلومات إضافية هناك. والجانب المفيد ذلك هو أنك يمكن كتابة البرامج الخاصة بك التي يدمج البيانات مثل هذه بطريقة أو بأخرى في التطبيق الخاص بك. يمكنك تمكين المستخدمين ل تسجيل الدخول إلى موقع الويب الخاص بك، لا تستخدم اسم المستخدم المخصصة الخاصة بهم و كلمة السر لكن ربما هم الفيسبوك تسجيل الدخول والحصول على معلومات حتى حول أصدقائهم، إذا كانت هذه الموافقة، أو ما شابه ذلك. لذلك نلاحظ أن CS50، أيضا، لديها بعض من واجهات برمجة التطبيقات الخاصة بها، واحدة للبيانات بالطبع التسويقي، بعض للقوائم العناق في الطعام قاعات، كل من المباني والمواقع في الحرم الجامعي لدينا API لوكذلك التي يمكنك الاستعلام بالمثل والحصول على البيانات النصية الظهر التي يمكنك دمج في PHP أو جافا سكريبت، أو حتى، وإن كان أقل شيوعا، و C يستند المشروع النهائي. في الواقع قبل للنهائي مشروع عدد قليل من المعالم. هل حصلت على رسالة بريد إلكتروني منا في اليوم الآخر. ندرك أن الاقتراح ويرجع ذلك يوم الاثنين القادم. انها ليست ملزمة بالضرورة، ولكنك لا حاجة لتلقي زملاء التدريس الخاص الموافقة قبل اتخاذ أي تغييرات بعد ذلك. ثم متقدمون ل عدد من المعالم الأخرى. ذلك أن ندف لك، أيضا، مع بعض الاحتمالات، لدينا مجموعة من هذه المصابيح هوى. وبعض من رفاق دينا الآن بعض هذه في غرفة النوم الخاصة بك أيضا. ولديهم أيضا على API. لذلك أذكر تلك الأسابيع المصابيح الثنائية قبل أن دان برادلي وأنسل خلق الدف بالنسبة لنا. أنها تستخدم واجهة البرنامج ل هذا المصباح الكهربائي، والتي في الوقت الحالي يتم توصيل الكهرباء إلى ومن ثم عن طريق اللاسلكي متصل الشيء القليل ودعا الجسر إلى هنا، وكأنه ملكية خاصة الموجه قليلا لهذا الجهاز بالذات. ولكن تبين لو كنت أعرف كيف إرسال رسائل HTTP، وعلينا جميعا القيام به الآن، أنا يستطيع أرسلت رسالة من هذا القبيل ل هذا المصباح الكهربائي لتشغيله أو إيقاف تشغيله أو يفعل أي عدد من عمليات أخرى على ذلك. لاحظ أنه لا يحصل، ليس بعد ذلك. هناك واحد آخر يسمى وضع. هناك في الواقع عدد قليل من غيرها من مثل هذه الأفعال. ولكن لاحظت ان هناك طريقا هناك، خفض API، خفض المطور الجديد، خفض الضوء، وخفض واحد، خفض الدولة. وهذا على ما يبدو مجرد مسار الشركة، فيليبس، قررت لديك لتصل مع طلب HTTP إذا كنت ترغب في تغيير الدولة لمبة باستخدام HTTP 1.1. ثم لاحظ سطر فارغ. ثم أخيرا ما يشبه نوع من مصفوفة من نوع ما، هذا هو الذهاب مرة أخرى ليتم استدعاؤها جافا سكريبت تدوين كائن، أو جيسون. وما تراه هنا هو أن هناك ثلاثة أزواج قيمة المفتاح. ويطلق على مفتاح واحد. وقيمته على ما يبدو سوف يكون ذلك صحيحا. سطوع هو 128، والتي هو نوع من كثافة العمليات. ثم الساعة الانتقالية الصفر، وهو ما يبدو كم من الوقت سيكون ل تتخذ لتحويل هذا الشيء على. حتى الآن هذا المصباح الكهربائي. ولكن إذا كنت تفعل بالضبط this-- السماح لي بالذهاب إلى ورقة غش صغيرة أن دان أنشئت في advance-- وانا ذاهب للمضي قدما ونسخ الأمر التالي. حليقة، والبعض منكم قد استقاها على CS50 مناقشة هو أداة مثل تلنت مثل هذا أنه يمكنك محاكاة طلبات HTTP، يضع على وجه التحديد. أستطيع أن ترسل هذه البيانات، على وجه التحديد ما نحن فقط شهدت لحظة مضت تحديدا لURL هذا أكثر من هنا. ثم الضفيرة يجري التعامل معها كل الرؤوس المطلوبة وهناك تحليل لل. لذا كل ما عليك فعله هو نسخ هذا إلى نافذة الصالة ثم ضرب أدخل. والمصباح الكهربائي تطول. وهذا هو كل شيء يمر جهاز الكمبيوتر الخاص بي لاسلكيا بطريقة أو بأخرى وصولا الى الجسر الذي ثم يتحدث إلى هذا المصباح الكهربائي. أستطيع أن أفعل شيئا آخر. أنا يمكن أن تجعل هذا الشيء اذهب الأحمر على سبيل المثال. أنا يمكن على سبيل المثال جعل هذا الشيء يذهب الأخضر. أنا يمكن أن تجعل من الذهاب الأزرق. وتلاحظ في كل من هذه الحالات، كل ما أنا تغيير هي ما يسمى قيمة هوى ل في الواقع تعطيه بعض الألوان. لذلك اسمحوا لي لصق هذا في واحد كذلك. الآن حان الأزرق. ويمكنك القيام به حتى مربي الحيوانات أشياء where-- دعنا نذهب إلى اللون الأخضر. وأنا لا يمكن القيام بذلك من بالطبع مع رمز بلدي. ولكن حتى API نفسها يدعم العمليات غير تقليدي مثل هذه، والتي سوف تهتم الآن لنا ل30 ثانية القادمة. لذلك هذا هو طعم واحد من ما يمكن أن تفعل مع API، هذه واحدة تنطوي المصابيح الكهربائية. نلاحظ أن CS50 وقد اثنين أزواج من نظارات جوجل إذا كنت أحب لمعالجة شيء على طول تلك الخطوط، اردوينو UNOS، التي هي أجهزة الكمبيوتر متناهية الصغر، أساسا، على لوحة الدوائر القليل يمكنك الاتصال الأسلاك وغيرها من الامور والتحكم في الواقع لديك بيئة العالم الحقيقي. ثم هناك زوجين اللعب الجديدة التي لدينا. هذا واحد حرفيا وصل للتو اليوم الآخر عن طريق البريد، وميو الشارة. واعتقد انها وسيلة ل تحصل متحمس حول مشاريع التي قد تستخدمها مع هذا الجهاز من شأنه يكون للعب هذا مقطع قصير التي يستخدمونها لإثارة الناس أننا نعيش الآن في المستقبل. [عزف الموسيقى] DAVID مالان: حتى في بضعة أسابيع، ل أيضا يمكن أن تكون باردة في هذا المعرض CS50. جهاز آخر على أننا لدينا مجموعة من أننا سعيدة لقرض من أصل لمشاريع ويسمى وحدة تحكم الحركة. هذا هو جهاز USB الصغير الاتصال بجهاز كمبيوتر يسمح لك بالتفاعل مع الكمبيوتر المحمول، ماك أو PC، كما لو كان لديك مثل كينيكت إكس بوكس وفعلا جعل الحركات الجسدية بكثير كما نرى في هذه رؤية للمستقبل. [عزف الموسيقى] DAVID مالان: حتى لو كان لديك أي فكرة عن كيفية شيء من هذا القبيل ربما يمكن أن يخترع أو العمل على مستوى الأجهزة، لا يهم. حتى بعد أشهر قليلة فقط من CS50، وفهم البرمجة بشكل عام، وبرمجة الويب أكثر مؤخرا، وبعد ذلك أيضا واجهات برمجة التطبيقات، وHTTP، سيكون لديك الوصول عبر واجهات برمجة التطبيقات البرمجيات إذا كنت لا تريد أن تقترض واحدة من هذه أجهزة للحديث فعلا لذلك وليس لديها ما يدعو للقلق تنفيذ الكامنة مزيد من التفاصيل، وهو تماما بما يتفق مع هذه الفكرة من طبقات فكرة مجردة أن لدينا شهدت طوال الفصل الدراسي. هكذا أيضا خلال عطلة نهاية الاسبوع، شهد قطع زوجين من الأخبار. تذهب أولا، اذهب إلى ندوات إذا كنت أود أن تعلم شيئا أكثر على أي عدد من المواضيع. رؤية URL هناك. وأرسلت هذا واحد ل لي تشانغ، الذي تعرفه، من الذي طبع لدينا جيش من الفيلة. وكان العنوان الرئيسي على النحو التالي. أشعر بالرعب من بلدي تلفزيون الجديد. لماذا أنا خائفة لتحويل هذه شيء وكنت على أن يكون جدا. لذلك نحن الآن في نشير في الفصل الدراسي، جدا، حيث حتى لو كان لديك أدنى من التفاهم من الكيفية التي يعمل بها على شبكة الإنترنت، وHTTP، والأمن، وأشياء من هذا القبيل يجب أن تبدأ في اللحاق العين. ولكن أيضا، عليك أن تفهم إذا كانت هذه الأمور أو لا التهديدات الفعلية. لذلك أخذت بعض المقتطفات من هذه المادة هنا. والقصة هي كما يلي. أنا الآن مالك التلفزيون الذكي الجديد، الذي وعود لتقديم يتدفقون محتوى الوسائط المتعددة، والألعاب، والتطبيق، و وسائل الاعلام الاجتماعية، والانترنت التصفح، يا والتلفزيون أيضا. المشكلة الوحيدة هي أنني الآن خائف على استخدامها، كما يقول الكاتب. هل سيكون، أيضا، إذا كنت تقرأ من خلال سياسة الخصوصية 46 صفحة لجهاز التلفزيون. كمية البيانات هذه يجمع شيء مذهل. فإنه يسجل أين ومتى، وكيف، و إلى متى يمكنك استخدام جهاز التلفزيون. ويحدد تتبع الكوكيز، كما ناقشناه، ومنارات مصممة للكشف عندما يكون لديك ينظر محتوى معين أو رسالة البريد الإلكتروني معينة إذا كنت تريد التحقق من البريد الإلكتروني على جهاز التلفزيون. يسجل التطبيقات التي الاستخدام، والمواقع التي تزورها، وكيف تتفاعل مع المحتوى، تفعل كل ذلك عبر التلفزيون الذكي الخاص بك. أيضا، creepier yet-- هذا هو بلدي addition-- وقد بنيت في الكاميرا مع التعرف على الوجه. والغرض من ذلك هو توفير السيطرة فتة للتلفزيون وتمكنك من تسجيل الدخول إلى شخصية حساب باستخدام وجهك. وعلى الجانب العلوي، والصور هي المحفوظة على التلفزيون بدلا من تحميلها. إلى ملقم الشركات. على الجانب السلبي، وشبكة الإنترنت اتصال يجعل التلفزيون كله عرضة للقراصنة الذين أثبتت قدرة لتأخذ السيطرة الكاملة على الجهاز. الأكثر إثارة للقلق، وإذا لم يكن ذلك ذكية بما فيه الكفاية، هو الميكروفون. التلفزيون تفتخر صوت ميزة التعرف على التي تسمح للمشاهدين التحكم الشاشة مع الأوامر الصوتية. ولكن هذه الخدمة تأتي مع تحذير المشؤومة إلى حد ما. يرجى أن يكون على علم أنه إذا كلماتك المنطوقة وتشمل شخصية أو غيرها حساسة المعلومات، هذه المعلومات وسيكون من بين البيانات التي تم التقاطها وتنتقل إلى طرف ثالث. حصل ذلك؟ لا أقول الشخصية أو الحساسة الاشياء أمام جهاز التلفزيون. لذلك هذا هو في الواقع لريال مدريد. وانه من الصعب ألا نرى ما اذا كان الذهاب لشراء أفضل أو ما شابه ذلك لأجهزة التلفاز في هذه الأيام. انهم جميعا الذكية في بعض الطريق. وكانوا يحصلون أكثر ذكاء وcreepier. وانهم ببساطة جمع البيانات في الطرق التي تحدثنا حول ومن ثم تحميلها عبر HTTP أو بعض بروتوكول آخر لبعض الخادم. لذلك كان من متعة هذا المقال في هذا الموقع على الانترنت هنا، والذي تحدث عن خلل معين أو رمز خاطئ أن نتمكن من ربط فعلا في مناقشة الأسبوع الماضي. لذلك كان هذا العنوان كما التالي، والقصة هنا، عملت جوش Breckman ل الشركة التي هبطت على عقد لتطوير إدارة المحتوى النظام، أو CMS كما انهم يسمى، عن موقع حكومي كبير إلى حد ما. الكثير من المشاريع المشاركة تطوير نظام إدارة المحتوى حتى أن الموظفين سيكون قادرة على بناء وصيانة المتغيرة من أي وقت مضى محتوى مواقعهم. سارت الأمور بشكل جيد جدا ل بعد أيام قليلة سوف يعيش. ولكن في اليوم السادس، سارت الامور ليس على ما يرام. كل المحتوى على وكان موقع اختفت تماما. وأدت كل الصفحات إلى الافتراضي، من فضلك ادخل صفحة ويب المحتوى. يصيح. وكان جوش يسمى في ل ولاحظت التحقيق أن واحدة مزعجة خاصة عنوان IP الخارجي زيارتها ذهب في وحذف كافة المحتوى على النظام. لم عنوان IP يست ملكا لبعض القراصنة عازمة الخارج على تدمير مفيدة المعلومات الحكومية. انها عقدت العزم على googlebot.com، بالذات الويب الزحف العنكبوت جوجل. يصيح. بعد قليل من البحث والهرولة حول العثور على نسخة احتياطية noncorrupt، وجدت جوش المشكلة. وكان المستخدم نسخ و لصق بعض المحتويات من واحد صفحة إلى أخرى، بما في ذلك لتحرير ارتباط تشعبي لتحرير المحتوى على الصفحة. عادة هذا لن يكون القضية منذ مستخدم خارجي من شأنه تحتاج إلى إدخال اسم وكلمة مرور، ولكن نظام التوثيق CMS، نظام تسجيل الدخول، لم تأخذ بعين الاعتبار القرصنة متطورة تقنيات جوجل العنكبوت. يصيح. كما اتضح، وجوجل العنكبوت لا تستخدم الكوكيز، مما يعني أنه يمكن تجاوز بسهولة الاختيار لل يتم تسجيل على مجموعة الكوكي أن تكون كاذبة. كما أنها لا تولي اهتماما ل جافا سكريبت، التي عادة عاجل وإعادة توجيه المستخدمين الذين لم يتم دخولك. ومع ذلك فإنه لا اتبع كل الارتباط التشعبي في كل صفحة يجدها، بما فيها تلك التي حذف الصفحة في العنوان. يصيح. فماذا يعني هذا في أكثر المصطلحات الفنية ولكن يمكن الوصول إليها إلى حد ما؟ بل يعني فقط أن طوال موقعه على الانترنت، كان لديهم عناوين لا يختلف هذا واحد أن قد ترى مشكلة في مجموعة السبع. نذكر في مشكلة تعيين سبعة أو معرفة في مشكلة تحديد سبعة ان كنت تحدى، من بين أمور أخرى، لبيع الأسهم نيابة عن مستخدمين. لكن تنفيذ هذه الميزة عن طريق للحصول على عبر وصلات في المستخدم الخاص بك واجهة، وربما لا أذكى فكرة لأنه إذا كان موقعك هو بطريقة أو بأخرى يمكن الوصول إليها سواء من قبل الإنسان من الذي حول أو النقر شراء بوت مثل غوغل أو العنكبوت كما انهم يسمى هذا فقط الزحف على شبكة الإنترنت في محاولة لمؤشر الشبكة كمحرك البحث، استطاعوا بسهولة جدا ضرب عن طريق الحصول على هذا النوع من URL. وهذا ظيفيا تعادل، في هذه الحالة، بيع جميع أسهم جوجل. الآن بصراحة، انها تماما أبله أن CMS وتستخدم جافا سكريبت والكوكيز لتنفيذ نظام تسجيل الدخول لل وعدم القيام بذلك من جانب الخادم، و يا رفاق تفعل وسوف في PSET 7-- هناك login.php الملف-- دائما، دائما، دائما يجب أن يكون الأمن به على جانب الملقم، ليس على العميل لأنه، كما هذا وتشير المادة وكنت قد نفسك نرى في مرحلة ما، فمن تافهة لمستخدم، جيدة أو سيئة، لتحويل قبالة جافا سكريبت ناهيك عن الكوكيز. بحيث هو WTF اليومي. هناك واحد أكثر، والتي هو مجرد نوع من مخيف، ولذا فإنني سوف أذكر أنه إذا فقط درسا الحياة. كلما كنت تستخدم تطبيق تسمى مثل سناب شات أو ما شابه ذلك تقول هذه الصور تدوم إلا ل خمس ثوان، عشر ثوان، أو غيرها. انهم سريع الزوال وهذا هو قطعا ليس هو الحال. كما لا توجد وسيلة، رقميا، لتنفيذ بعض شكل من أشكال الفيديو، أو صورة، أو مشاركة تلك النصوص أن المتلقي على الطرف الآخر لا يمكن حفظ البيانات بطريقة ما. في معظم بطريقة ساذجة، شخص قد يستغرق هواتفهم. ولها نافذة الثاني 10 في حين تبحث في بعض مبكرة لمجرد اتخاذ بعض هاتف آخر وتصوير ذلك، ومن الواضح. حتى تتمكن من الحفاظ على شيء رقميا بهذه الطريقة. البعض منكم يعرفون كيفية اتخاذ لقطات على هاتفك. في الواقع، إذا كنت لا تعرف هذا، ندرك أن ما لا يقل عن سناب شات، واعتقد البعض تطبيقات هذه الأيام، على الأقل أقول لكم إذا كان المتلقي لديه في الواقع أخذ لقطة من الصورة. ولكن الأسوأ من ذلك، وكان هذا snappening، كما صاغ أحدهم مؤخرا، حيث بعض 100000 قد ينجذب تم الافراج في ما يسمى ملف التورنت على مختلف المواقع في نهاية المطاف. وهذه تحتوي على مجموعة كاملة الرسائل الخاصة والمشاركات. اتضح معظمهم حميدة، حتى لا ما قد تتوقع. ولكن لأنه كان شخصا استخدام موقع طرف ثالث، تسجيل الدخول مع سناب شات بهم اسم المستخدم وكلمة المرور ومن ثم إنقاذ كل من ينجذب لها على هذا الموقع طرف ثالث. وكان هذا الطرف الثالث الموقع الذي تم اختراق، أحسب مما يعني مجرد شخص كيف للحصول على كل بالإضافة إلى 100،000 من تلك الصور إلى القرص الصلب الخاص بهم للمشاركة لاحقة. بصراحة، هنا أيضا، انها نوع أبله من أن سناب شات وينفذ في مثل هذه الطريقة التي يمكن لطرف ثالث نوع من اعتراض البيانات وأنها ليست مرتبطة بك تطبيق خاص يعمل على الهواتف. ولكن هنا أيضا، ندرك أن هذه أشياء يجب أن لا قبض عليك على حين غرة، أو ينبغي على الأقل هناك أن يكون درسا في الحياة هنا. إذا كنت ترغب التقنية مزيد من التفاصيل، يذهب إلى أن هناك URL هذا في الشرائح اليوم. كل الحق، على أي أسئلة دروس الحياة اليوم في CS؟ تحويل هذا الخروج. أي شيء على الإطلاق؟ أي شيء على الإطلاق؟ لقد حصلت على الكثير من الناس فحص سناب شات أو شيئا الآن. كل الحق، لذلك SQL، لغة الاستعلام الهيكلية. دعونا التفاف هذا. وأيضا، على الرغم من نحن فقط خدش سطح هذا اللغة، سنعطيك ما يكفي من اللغة في شكل PSET 7 لكي تتمكن من معالجة بعض وظائف مشتركة إلى حد ما. ولكن أدرك أن هناك زوجين الأشياء التي لا تتطلب منكم، بل انهم ذاهبون ليكون تأتي أهمية المشاريع النهائية وتأتي بالتأكيد جعل الفعلية المواقع مع المستخدمين الفعليين هذا القرار هو التصميم. اتضح أنه في قاعدة بيانات MySQL، وكنت لدينا باقات من الخيارات مثل أنواع البيانات للأعمدة بك وغيرها من الأمور، ولكن لديك أيضا خيار ما يسمى التخزين المحرك لجميع البيانات الخاصة بك، هذا النوع من نظام الملفات، إذا كنت على دراية، لجميع البيانات الخاصة بك. شكل ما يتم حفظه في نهاية المطاف؟ والأكثر شيوعا، وربما كان MYISAM وك InnoDB، المصطلحات الفنية أننا سوف يهتمون فقط لدرجة أن أحد لديه واحد لايوجد الميزة التالية. لنفترض أن لديك ثلاجة النوم القليل. ونفترض أن لديك و الحجرة، الذين يشاركوننا هذه الثلاجة، مغرمون حقا من الحليب مثلا. وهذا هو، في الواقع، كيف يمكن لل قيل لي قصة طريق العودة في ذلك اليوم، عندما أخذت دورة دعا CS 161 نظام التشغيل، والتي يستكشف بالمثل هذا الموضوع. لذلك كنت قد حصلت على هذه الثلاجة. كنت خارجا من الحليب. وعدت إلى المنزل، الحجرة الخاص بك لا يزال في الدرجة أو أيا كان، وعليك أن تقرر انا ذاهب الى الخروج والحصول على بعض الحليب. لذلك قمت بإغلاق الثلاجة، سجن غرفة النوم، والذهاب عبر الشارع لCVS أو في أي مكان، والحصول على في خط لشراء بعض الحليب. وفي الوقت نفسه، الحجرة الخاصة بك يحصل المنزل من الطبقة، ويحصل في غرفة النوم، يفتح الثلاجة، ويدرك أيضا ooph، نحن من الحليب. حتى انه أو انها تغلق الثلاجة ويحدث بعد ذلك للذهاب إلى CVS الآخرين، الذي صادف أن يكون كتلة واحدة بعيدا عن CVS أخرى في الساحة، ويحصل في خط هناك للحصول على بعض الحليب. الآن، بالطبع، بضع دقائق في وقت لاحق، كلاكما على العودة، والأسوأ من ذلك كله ممكن حدث النتائج. كل من الحليب لديك. وكنت لا حقا مثل الحليب كثيرا. حتى واحد منهم هو فقط الذهاب إلى تعكر في مرحلة ما. حتى الآن لديك كمية زائدة من الحليب في الثلاجة كل ذلك بسبب ماذا؟ [غير مسموع] DAVID مالان: نعم، كنت لا التواصل بطريقة أو بأخرى مع بعضها البعض أن كنت الحصول على الحليب. حتى في أبسط طرق في العالم البشري، كيف يمكن تجنب هذا سخيفة السيناريو من الحدوث مثل أن ينتهي بك المطاف مع واحد فقط. نص منهم، نعم جيدة. ولكن وإلا كيف؟ تنبيهية. DAVID مالان: ملاحظة ما بعد ذلك. أي شكل من أشكال الاتصال أن يقول الحجرة الخاصة بك لا تذهب إلى الثلاجة للبن. انا ذاهب للذهاب تقتني بمفردي. لذا عليك بطريقة أو بأخرى لقفل هذه الموارد. حتى نتمكن من جعل this-- نستطيع النوع من الخراب قصة وتتحول إلى قصة CS حيث التفكير في هذا الأمر وكأنه المتغير الذي يخزن بعض القيمة. والآن، و قيمة الحليب هي صفر، التي كنت لا تريد الخاص بك الحجرة لفحص هذا المتغير ومن ثم اتخاذ قرار بنفسه استنادا إلى حالة من هذا المتغير إذا كنت في عملية تغيير حالة هذا المتغير. ذلك واحد من خطوط SQL أننا تعطيك في PSET 7 مواصفات هذا هو واحد هنا. ونحن لا تنفق ضخمة مقدار الوقت الذي تتحدث عنه. ولكن تبين، إذا كنت تحاول لشراء بعض الأسهم في تمويل CS50 أن لديك بالفعل بعض أسهم، ل تريد أن تكون قادرة على القيام بعدد من الأشياء معا على الفور. كنت تريد أن تكون قادرة على على نحو فعال، على مستوى عال، تحقق من كل حق، إذا أريد لشراء المزيد من الأسهم الحرة، ونحن الأسهم قرش في الحديث عن المواصفات، أريد أن الاختيار الأول عدد الأسهم لدي. ونفترض انها خمسة. وأريد أن أفترض شراء 10 أكثر، وأنا في نهاية المطاف تريد أن يكون 15 سهم من الأسهم. لذلك لا بد لي من طرح سؤالين. ما هي حالة المتغير؟ ما هي الدولة من الصف؟ كم عدد أسهم يمكنني دينا حاليا؟ ثم كنت تريد أن تمضي قدما وتحديثه. لذلك هذا هو التناظرية إلى الحليب في أن تتحقق الصف، ثم كنت تريد تحديثه لأنه إذا كنت ترغب في شراء 10 سهم، كنت لا تريد تغيير الصف إلى 10، ل تريد تغييره إلى 5 بالإضافة إلى 10 أو، بالطبع، 15. هذا سطر من التعليمات البرمجية يضمن أن هذين الأفكار المفاهيمية يحدث معا أو لا على الاطلاق. لا أحد، بما في ذلك بعض مستخدم آخر من الذي بتسجيل الدخول إلى الموقع نفسه، يمكن أن يقطع بطريقة أو بأخرى والتحقق من الصف وتحديث الصف، و اختيار والتحديث اذا صح التعبير. وبناء الجملة ليست فائقة واضحة، ولكن هذا سطر واحد، متى يتم هو، يضمن أن هاتين العمليتين تحقق المتغير أو تحقق الصف وتحديث الصف يحدث بالذرة. يا هنا نذهب مرة أخرى. رسالة نصية على هاتفي. لذلك دعونا تجعل من هذا أكثر قليلا الخرسانة. لنفترض أنك لا تنفيذ ثلاجة، وكنت لا تنفذ PSET 7 لكن بنك الفعلي، أو أجهزة الصراف الآلي، الصراف الآلي ل الجهاز، حيث كنت إلى حد ما تريد أن تكون قادرة على تمكين للمستخدمين تحويل الأموال من حساب إلى آخر. حسنا، تشبث. انا ذاهب لكتم هذا الآن، وشكرا لكم. لذلك نحن نريد لنقل الأموال من رقم حساب واحد إلى حساب مختلف عدد، وتحديدا 100 دولار. لذلك هذا هو نوع من التعسف سبيل المثال، حيث كنت، أجهزة الصراف الآلي، قد ترغب في تنفيذ اثنين SQL استفسارات، طرح من حساب واحد، وإضافة إلى حساب آخر. ولكنك تريد التأكد من أن هذه خطين كل من تحدث أو لا على الاطلاق. كنت لا تريد شيئا الحصول على توقف. لم تقم بعض الرجل سيئة الذكية يقف بطريقة أو بأخرى في بنك اوف امريكا مع اثنين من أجهزة الصراف الآلي في الجبهة منه وبطريقة أو بأخرى نوع من الكتابة في الأوامر في نفس الوقت، نأمل تحاول خصم 200 $ بدلا 100 دولار و 100 دولار فقط وجود الفضل. باختصار، تريد هذا ل تتصرف تماما كما كنت تتوقع. والطريقة التي لديك هذا في قاعدة البيانات SQL كنت ألفه في ما دعا معاملة. حرفيا في SQL، يمكنك الاتصال في CS50 وظيفة الاستعلام مع اشارة الى بداية املك الصفقة. ثم يمكنك تنفيذ أي عدد من استعلامات SQL لاحقة، ولكن أيا منها لا تأخذ التأثير على قاعدة البيانات حتى استدعاء الاستعلام قوسي الإقتباس ارتكابها، إذا مرة أخرى باستخدام PHP. وبهذه الطريقة، يمكنك التأكد من أن حتى إذا كان لديك 1000 جميع المستخدمين ضرب قاعدة البيانات الخاصة بك في الوقت نفسه، SQL ونعد بأن هذه سوف يكون اثنين الاستفسارات نفذت حق واحد بعد الآخر. حتى لا ينتهي بك الأمر مع فائض الحليب أو كمية خاطئ، في نهاية المطاف، من المال. حتى تضع ذلك في اعتبارها، وليس ذلك بكثير لPSET 7 ولكن للمشاريع النهائية إذا كنت فعلا في محاولة لنقل البيانات حول عبر الجداول كما كنت قد هنا. ولكن ربما أكثر بساطة و واضح أن نفهم بمثال هذا هو واحد هنا. وشخص ما بالبريد الالكتروني لنا عن هذا فقط في اليوم الآخر عندما رأى شيئا من هذا القبيل على الانترنت. لذلك على حد علمي، فإن نظام دبوس ليس عرضة لهذا الهجوم. وليس لدي أي فكرة حتى لو كان الاستخدامات قاعدة البيانات SQL تحت غطاء محرك السيارة. ولكن دعونا استخدامه ل من أجل المناقشة. وهنا الشاشة التي الناس يميلون هارفارد عندما انظر الى تسجيل الدخول مع بهم معرف هارفارد وعدد دبوس بهم. ونفترض أن النظام كان دبوس نفذت في PHP ومع الخلية قاعدة البيانات، رمز أن شخصا منذ سنوات قد كتبت قد تبدو مثل هذه. أولا، إعلان ودعا اسم المستخدم المتغير. ومجرد الحصول على ذلك من وsuperglobal POST. ثم الحصول على متغير آخر ودعا كلمة وتفعل الشيء نفسه. ومن ثم تنفيذ فقط هذا الاستعلام طويلة هنا، اختيار نجم من المستخدمين حيث اسم المستخدم يساوي كذا وكذا وكلمة يساوي كذا وكذا. تلاحظ أن مجعد الأقواس لقد استعملت هنا يعني فقط لPHP، انتقل قبل والبديل قيمة هذين المتغيرات هناك حق. انهم ليسوا الضرورة القصوى، ولكن فإنها تميل إلى تجنب أخطاء في بناء الجملة خفية. حتى هذا يبدو تماما صحيحة للوهلة الأولى. والتأكد من ذلك. هل يمكن تنفيذ نظام دبوس في هذا السبيل. ولكن لنفترض أن السوبر طالبة ذكية وخبيثة هذه المدخلات كما له أو لها دبوس. حتى لقد إزالة الرصاصة علامات هنا في وهمية تصل، ولقد كشف الواقع ما هو أو هي قد تكون الكتابة. وانه من الغريب قليلا. ولكن ما يقفز عليك في المحتملة ومما يثير القلق حول إدخال المستخدم، حتى إذا كان لديك أي فكرة عما هجوم حقن SQL وسيلة. لماذا هذا ننظر قليلا مريب؟ ما هذا؟ [غير مسموع] DAVID مالان: إن أم مشبوهة قليلا. في الواقع، وهذا الكلمة من SQL. بحيث لا يبشر بالخير. حقيقة أن هناك كل هذه علامات الاقتباس المفردة there-- في الواقع، واحدة من أسهل طرق لكسر بعض قواعد البيانات هي عن طريق كتابة اسم مثل أورايلي يحتوي على علامة اقتباس أحادية في ذلك لأنه إذا كان الإنسان الذي كتب رمز وراء الكواليس لا تأخذ في الاعتبار أن هناك قد تكون علامات الاقتباس المفردة في المستخدم المدخلات، وقال انه او انها تستخدم ونقلت واحدة في مدوناتها، الأشياء السيئة يمكن أن يحدث. في الواقع، الأسوأ من ذلك، النظر في هذا. إذا كان هذا مرة أخرى رمز أن أحدا في جامعة هارفارد سنوات قبل كتب للدبوس نظام، لاحظ ما على وشك الحصول على استبداله لاسم المستخدم وكلمة المرور إذا أنواع المستخدم الدخول مرة أخرى كما skroob اسم المستخدم الخاص بهم ثم واحد، اثنان، ثلاثة، أربعة، خمسة، اقتباس أو قوسي الإقتباس واحد يساوي أقتبس احد. ونلاحظ ما هو أساسي هنا قد المستخدم لا بدأت كلمة المرور الخاصة بهم أو دبوس مع اقتباس. وأنها لم تنته عليه مع اقتباس لانه أو انها وعلى افتراض أنه إذا كان كان مبرمج يست حادة جدا، وهم في طريقهم لديك تلك ونقلت واحدة في مدوناتها. وحتى هنا في التعليمات البرمجية. واستبدال ذلك قد يحدث الآن هو هذا. ولقد أكد ما تمت كتابة المستخدم في. لذلك من قبل، بعد. ونلاحظ ما هو مثير للقلق أقل ما يقال الآن حوالي النصف الأيمن من هذا الرمز SQL؟ انها قليلا أكثر تعقيدا، باعتراف الجميع، من الاستعلامات رأيناه. ولكن لا يمكن لهذا ربما يكون أمرا جيدا إذا كنت قائلا مختارة نجم، وهو اختيار كل شيء من الجدول المستخدم حيث يساوي اسم المستخدم skroob و تعادل كلمة مرور واحدة، اثنان، ثلاثة، أربعة، خمسة أو واحد يساوي واحد. ما هي الآثار المترتبة منطقي من المفترض أن الشرط الأخير؟ هذا صحيح فقط دائما. ولأن لدينا نوع من خمنت أو أحسب عن طريق التجربة والخطأ أن المبرمج الذي كتب هذا الرمز لم توقع الشخص البشري أو سيئة الكتابة في علامات الاقتباس المفردة كذلك، يمكننا أن نحويا إكمال الاستعلام SQL مع شيء لا معنى لها لكن شيئا غير صحيح نحويا أن يقيم دائما إلى true. حتى إذا كان يتم استخدام هذا الرمز للإجابة السؤال صحيحة أو خاطئة يجب يسمح هذا المستخدم لتمرير، و الجواب هو دائما على ما يبدو تسير ليكون صحيحا لأن هذا دائما ما لتحديد شيء من قاعدة البيانات لأن واحدا بالطبع يساوي دائما واحدة. إذن ما هو الحل؟ كذلك في PSET 7، ونحن في الواقع تجنب كل هذا معا. نقدم لك وظيفة الاستعلام، ونحن نشجعك على استخدام علامات استفهام كما النائبة، على غرار في روح لprintf ل٪ S، ولكن ما هو مفتاح عن علامات استفهام هنا هو إذا كنت تقرأ الواقع من خلال functions.php، حيث لدينا ويتم تنفيذ وظيفة الاستعلام، ونجا تلك علامات الاستفهام، حيث بأي شيء يحتمل أن تكون خطرة مثل تشغيل اقتباس واحد في اقتباس واحد هرب. لذلك هذا هو ما يحدث حقا إذا كنت استخدام وظيفة الاستعلام CS50 أو أي عدد المكتبات المجانية طرف ثالث تفعل الشيء نفسه. لا يهم في هذه الحالة، باللون الأخضر، إذا تمت كتابة المستخدم في اقتباس واحد لأن الاستعلام الوظيفة التي كتبنا هي الذهاب لإضافة خطوط مائلة عكسية قبل أي اشارة خطيرة من هذا القبيل. وهذا ليس، في الواقع، ستكون شرعي. هذا هو مثل الكتابة في مجنون أبحث كلمة السر لهذا، بالطبع، لن لتكون كلمة skroob الفعلية. لذلك الوجبات الجاهزة للCS50 هو واحد، دائما استخدام شيء على الاطلاق مثل وظيفة الاستعلام CS50 ل أو المكتبة الأساسية، والذي يحدث أن تسمى شركة تنمية نفط عمان. ولكن أبدا، أبدا، لم تفعل كود مثل هذا دون الهروب أو الغسل كما يقولون المدخلات الخاصة بك. وسوف في مرحلة ما ربما تأتي عبر بعض المواقع مثل هذا. في الواقع، يبدو أن هذا هو الحال مثل في المطارات والفنادق والأماكن حيث لديهم خدمة الواي فاي المجانية الوصول التي لديك لتسجيل الدخول إلى، هذه المواقع هي دائما نفذت فظيعة. وهكذا نوع من المرح في المنزل ممارسة، ليس لأغراض خبيثة أو أكثر من المرح على الطريق ممارسة، هو أن اكتب فقط الفاصلة العليا، اقتباس واحد، في نموذج على بعض المواقع ونرى ما سيحدث. وإذا تعطل الخادم أو يعطي لك نوعا من رسالة الخطأ، قد يكون جيدا أن لم يتوقع أحد هذا. ثم يجب عليك تنبيه السليم المضي قدما السلطات وأبعد. حتى الآن يجب أن نأمل الرجال فهم أكثر قليلا المهوس الفكاهة هنا. [ضحك] DAVID مالان: أنت تعرف أنك المهوس. لالقليلة القادمة سنوات، سوف يتذكر الذين الجداول بوبي الصغير بسبب هذا الكرتون هنا. حتى أن تبقي في الاعتبار ونحن سياق التحول للمرة الأخيرة اليوم لجافا سكريبت. لقد قضى قليلا نسبيا الوقت على بناء جملة PHP لأنه في الواقع السوبر مماثلة لC. وبشكل جيد بما فيه الكفاية، وجافا سكريبت جدا هو السوبر مشابهة لصيغة C ل فضلا عن سنرى في مجرد لحظة وكما سنقوم نرى في وقت لاحق من هذا الأسبوع على وجه الخصوص. ما يمكنك القيام به مع هذه اللغة، رغم ذلك، هو كل شيء وأكثر قوة، خصوصا مع واجهات برمجة التطبيقات. ولكن أولا جولة سريعة. حتى واحد، في جافا سكريبت، هناك لا وظيفة الرئيسية، التي هي لطيفة. كما هو الحال مع PHP، يمكنك فقط كتابة التعليمات البرمجية. الشروط تبدو مثل هذا. وربما التعبيرات المنطقية تبدو مثل هذا أو مثل هذا. مفاتيح موجودة، وأنها قد تبدو مثل هذه. أربع حلقات تبدو مثل هذه. بينما تبدو هذه الحلقات. القيام البرهة تبدو هذه. ثم صفائف تبدو وكأنها هذا، تشبه الى حد بعيد PHP. لكن لاحظ أنه في جافا سكريبت لك تعريف متغير وليس مع الدولار التوقيع، وليس مع نوع البيانات ولكن حرفيا بالقول فار لمتغير قبل ذلك. ذلك أيضا ما كتبته فضفاضة في أن لديها أنواع، ولكنك لا تعلن بشكل صريح. ثم سلسلة، ل مثلا، قد تبدو مثل هذا، هذه السلسلة يطلق S في هذه الحالة. ثم كائن. وهذه سنرى أكثر قبل فترة طويلة. والهدف من ذلك هو ربما أحد ينظر الأكثر شيوعا هياكل البيانات في جافا سكريبت مقرها البرنامج لأنه يسمح لل لك لربط تعسفي أزواج قيمة المفتاح فقط مثل صفائف النقابي في PHP وتماما مثل جدول التجزئة الخاصة بك أو محاولة كما نفذنا وقبل أسابيع قليلة. لذلك دعونا نرى في الواقع ما يمكننا القيام به مع جافا سكريبت. وعلى وجه الخصوص، وهذا هو قائمة من الميزات أن المتصفحات لها أن تسمح لنا لربط جافا سكريبت في موقع على شبكة الانترنت على النحو التالي. وكثيرا ما يستخدم جافا سكريبت على أنها العميل لغة البرمجة. ليست جمعت فيه. ذلك أيضا يتم تفسير. ولكن على عكس PHP، والتي تم تشغيل على الخادم في خادم الويب، أو داخل العميق لل عملاء، وجافا سكريبت يختلف في أنه عادة ما تعمل في المتصفح. لذلك أي شفرة جافا سكريبت أن تبدأ الكتابة لPSET 8، أو المشروع النهائي الخاص بك، أو في العالم الحقيقي يجري عموما ليتم حفظها على الخادم، تماما في HTML نقطة أو نقطة شبيبة لملف جافا سكريبت. لكن المتصفح سوف لتحميل أن جافا سكريبت الرمز إلى المثال الخاص بك من الكروم، أو IE أو فايرفوكس، أو أيا كان. ورمز هي في طريقها فعلا للحصول على أعدم داخل المتصفح الخاص بك. فقط لجعل هذا أكثر واقعية، دعونا نرى هذا في شكل ملموس. ليس لدينا أي فكرة عما يفعله هذا الرمز دون قراءة الواقع من خلال ذلك. ولكن اسمحوا لي ان اذهب إلى Facebook.com دون تسجيل الدخول. اسمحوا لي ان اذهب لفحص العنصر وتذهب إلى، دعنا نقول، شبكة وإعادة تحميل الصفحة. وسنقوم see-- اسمحوا لي أن التحول تحديث لل الصفحة للحصول على كل طلبات جديدة. وأول جدا ملف أراه هو CSS، CSS. وهنا أول ملف جافا سكريبت، ولدي أي فكرة عما يفعل هذا، ولكن هنا هي بعض من شفرة جافا سكريبت الذي يدفع الفيسبوك. انها ليست حقا حتى أن كاشفا للتكبير. انها لا تزال مجرد لا معنى لها مثل. ولكن سترى حتى أسفل أدناه، هناك أكثر من هذه الملفات جافا سكريبت. يصيح. هذا هو بينغ. دعونا ننزل قليلا أبعد، أبعد من ذلك، أكثر من ذلك. هناك واحد. هناك واحد. هناك واحد. ذلك على الرغم من الفيسبوك، وراء مشاهد، هو مكتوب في المشاركة في PHP والفيسبوك في نسخة خاصة منه، هناك كمية هائلة من جافا سكريبت. في الواقع، أي من الدردشة تفعله في الفيسبوك، أي من التحديثات المضمنة زمني ذلك يحدث في الوقت الحقيقي، كل ذلك يقودها جافا سكريبت. نعم؟ الجمهور: لست متأكدا إذا كان هذا هو الفيسبوك، ولكن أعتقد أن الفيسبوك المتقدمة خاصة بهم في المنزل لغة التعليمات البرمجية؟ DAVID مالان: فعلوا. ولهذا السبب أقول تباين دعا PHP الهيب هوب أنهم فعلا الميزات المضافة لمثل ذلك عندما علامة تنفيذها أولا الفيسبوك، كانت مكتوبة في PHP. وهذا النوع من بقي هذا النوع من اللغة الأمامية التي يستخدمونها لفترة طويلة من الترميز، ولكن ذلك لم تكن لغة هذا المقاييس بشكل خاص إلى المليارات من الناس. وهكذا فقد أضاف وحدهم تحسينات وراء الكواليس. ويستخدمون أي عدد لغات أخرى لأجزاء مختلفة من بنيتها التحتية. لذلك نعم، انها تباين ما نعرفه الآن باسم PHP. لذلك دعونا نلقي نظرة في بضعة أمثلة وكيف يمكننا استخدام جافا سكريبت هنا. في التعليمات البرمجية المصدر اليوم، لدينا مجموعة من الملفات، أولها، دعونا دعا DOM الصفر. حتى DOM الصفر يبدو كما يلي. اسمحوا لي أن أخوض في هذا الدليل وفتح domzero.html، أعلى مما لديه نوع وثيقة إعلان قائلة هنا يأتي HTML 5. والآن وهنا علامة HTML. وهنا علامة الرأس. وهنا ما هو الجديد اليوم. لدينا الآن علامة النصي داخل رأس الصفحة. وهذا على ما يبدو لا القليل جدا، ولكن إشعار التي قمت بتعريف النصي، وجافا سكريبت. وبوصفها جانبا، لأن هذا هو اعتقاد خاطئ، جافا سكريبت لديه أي شيء على الإطلاق علاقة جافا، لغة أن البعض منكم قد تعلمت في APCS. وكان أكثر من التسويق شيء من أي شيء، ركوب ذيول المعطف جافا سنوات مضت. ولكن جافا سكريبت، لا علاقة لها جافا، تماما على نحو مماثل، ومزعج، اسمه مشوش. حتى هنا هو كيف تقوم بتعريف وظيفة في جافا سكريبت، ويقول حرفيا وظيفة، ثم اسم وظيفة، ثم أي حجج قد يستغرق، مثلما هو الحال في PHP. تبين في جافا سكريبت، واحدة من أكثر وظائف المزعجة التي توجد هي تنبيه. هذا هو النافذة الصغيرة التي سوف يطفو على السطح وتنبيهك بعض قطعة من المعلومات. لقد عبس عموما عليها. ولكن سنستخدم ذلك لدينا التمرين الأول هنا. لاحظت وجود بعض الميزات للجافا سكريبت. علامات الاقتباس المفردة والتنصيص لا يهم في الواقع بعد الآن. علامات الاقتباس المفردة والمزدوجة يمكن أن يكون متبادل ونقلت و بينما في C، لديك لاستخدام التنصيص على الجمل، و وكان لديك اثنين واحد ونقلت عن حرف. في العالم جافا سكريبت، كثير من الناس، معظم الناس استخدام علامات الاقتباس المفردة حول السلاسل فقط لأنه أمر الأسلوبية. ولكن ما هو المشغل بالإضافة إلى هنا، والتي لم نر من قبل؟ الجمهور: تسلسل. DAVID مالان: تسلسل. هكذا C لا يكون هذا حتى. PHP لديه مشغل نقطة، الذي يفعل ذلك. جافا سكريبت لديه مشغل زائد، وهو مشوش تماما مثل جافا. الآن ما الذي يحدث هنا؟ حتى هنا حيث أساسي فهم تلك الصورة نحن رمى يصل زوجين قبل أيام يأتي دور. أتذكر عندما كان لدينا بسيطة نسخة من HTML page-- وقال أنه فقط، مرحبا العالم. ثم وضعنا شجرة إلى اليمين، الذي وكان مجموعة من المستطيلات وخطوط ربط لهم مثل شجرة العائلة. ذلك أن ما يسمى DOM أو طراز كائن المستند. واتضح أنه يمكنك الوصول المستطيلات في تلك الشجرة مع جملة كما يلي. أقول لكم حرفيا وثيقة، وهو متغير عمومي خاص في جافا سكريبت البرنامج الذي لديه وظيفة المرتبطة به التي يمكن الوصول إليها مشابهة لبنية، ولكن يمكنك ببساطة يقول نقطة ثم اسم الدالة، الحصول على عنصر عن الهوية. العنصر أريد أن تحصل عليه هو يبدو أن أقتبس اسم املك. ثم أريد الحصول على قيمتها. الآن نحن نحصل قبل أنفسنا. أنا لست حتى متأكدا ما كل هذا حول. دعونا إلى الأمام بسرعة إلى HTML على الصفحة الذي هو السوبر بسيط. لاحظ أن كنت تعرف شكل أسفل هنا. لاحظ لقد أعطيت فريدة من نوعها ID، على الرغم من أننا قد لا تستخدم هذه السمة من قبل. ولكن هذا موجود في HTML. يمكنك تحديد بعض فريد قطعة من HTML مع معرف من هذا القبيل. إشعار الآن this-- تبين HTML تدعم، في تلك القائمة الغسيل قبل لحظة، ككل مجموعة من معالجات الأحداث. ويقول معالج الحدث هذا على تقديم. على المستخدم تقديم هذا النموذج، استدعاء التعليمات البرمجية التالية. ورمز هذا ما يحدث ليتم استدعاؤها أو أعدم هو هذا بالضبط اليونانية وظيفة تليها عودة كاذبة. كل شيء آخر ينبغي تكون مألوفة جدا. هنا هو إدخال نوع النص الذي ID، في هذه الحالة، سيكون الاسم. ليس لدينا سمة اسم الفعلية هذا time-- وزر إرسال. لذلك في الصفحة التي تظهر يشبه هذا. والسلوك الناتج، سترى، يبدو مثل هذا. الصفحة المضيفين المحليين وتقول انها، مرحبا ديفيد، يكاد يكون جماليا الطريق لتحية مستخدم. ولكن ما يحدث في الواقع على؟ كذلك، النظر في ما هو هذا. هذا هو حقل النص. وفقا ل HTML هنا، لقد أعطى ذلك معرف فريد دعا اقتبس اسم املك. وفي الوقت نفسه، لقد قلت عندما يقوم المستخدم بإرسال هذا النموذج من خلال ضرب أدخل أو النقر على إرسال زر استدعاء الدالة يسمى حي والعودة بعد ذلك خطأ. دعونا النظر تلك في الاتجاه المعاكس. لاحظت عندما كنت فوق إرسال، و لا يغير عنوان هذه الصفحة. أيقونة المتصفح لم تبدأ الغزل. أنا لم أذهب إلى أي مكان، وهذا هو وقال حرفيا لأن أعود خطأ. العودة دوائر قصيرة كاذبة أو توقف السلوك الافتراضي للنموذج. بحيث ثم يترك لنا هذا السؤال الأخير واحد. ماذا سلموا تفعل؟ أيضا، سلموا على ما يبدو يدعو دالة يسمى حالة تأهب، ويمر في واحد حجة طويلة هذا نتيجة وصل معا مجموعة من سلاسل فرعية، مرحبا مساحة فاصلة، ثم يعود هذا كل ما. حتى وثيقة أشبه العالمية المتغير إلى أن جذور تلك الشجرة، استدعاء وظيفة خاصة، خلاف ذلك يعرف الآن باسم طريقة. وظيفة هذا من داخل المتغير تسمى الطريقة بدلا من وظيفة. حتى الحصول على عنصر عن الهوية. ما العنصر هل ترغب في الحصول على هوية لها من قبل؟ أقتبس اسم املك و ثم يقدرون على وجه التحديد. لذلك وبعبارة أخرى، هذا الرمز ببساطة يجد حقل النص الذي هو اسم معرف ومن ثم يحصل على قيمتها. حتى لو كنت لتغيير هذا ويقول دافين بدلا من ديفيد، وانقر فوق إرسال، ونحن الآن لدينا تحية للدافين. كل الحق، لذلك كل شيء بخير وجيدة. ولكن دعونا نرى ما اذا كنا نستطيع جعل هذه المكنسة منذ قليل فقط كتابة التعليمات البرمجية مثل هذا يحدث عادة أن تثير الامتعاض. هذا هو الذهاب للبحث اخافة. ولكن ما هو أول الفرق أن لاحظ هنا في هذا الإصدار إلى جانب تغيير اسم DOM لواحد؟ ما يبدو وهيكليا مختلفة حول هذا مقابل الآخر؟ نعم؟ الجمهور: هل النموذج على أعلى النصي الآن؟ DAVID مالان: نعم، وشكل هو على رأس البرنامج النصي لسبب غريب. لذلك هذا هو أول شيء أن يقفز في وجهي، أيضا. ولله الحمد على الأقل، هذا الجزء هو متطابقة. ذلك الشيء الوحيد الذي يبدو أن تكون مختلفا هو هذا. حتى هنا ما هو أنيق حول تفعيل جافا 2. ويجعل من الصعب نفهم للوهلة الأولى، خاصة بالنسبة للمشاريع النهائية إذا كنت تبحث في نموذج التعليمات البرمجية على الإنترنت، ولكنه يتلخص في بعض السمات النحوية الأساسية. هنا مرة أخرى هو أن وثيقة متغيرة العالمية. هنا مرة أخرى هو أن طريقة أو وظيفة تقول الحصول على عنصر عن الهوية. هذه المرة أريد أن الحصول على معرف يسمى التجريبي. أين هو؟ وهذا ما يبدو صحيحا هنا، فإن النموذج نفسه. ونلاحظ الآن أن ما يبدو إذا أنا تعود تلك العقدة من شجرة يمثل الشكل في حد ذاته، وليس حقل النص، اتضح أن النموذج، الذي عقدة أو مستطيل من الشجرة، لديه ما سوف ندعو الممتلكات، جدا، جدا، جدا مماثلة في الروح إلى البنية في C. انها مجرد عضو بيانات داخل هذا المستطيل. حتى لقد حصلت على شكل هنا، وأنا ربط، و أو أنا إسناد، إلى يوم للتقديم معالج أو بالأحرى في إرسال الممتلكات الدالة التالية. وهذا هو، إلى حد بعيد، وأشد جنونا شيء حتى الآن نحويا. اتضح في جافا سكريبت و PHP، وبصراحة لهذه المسألة في C، على الرغم من أننا لا نفعل ذلك، يمكنك إضافة مجهول، مجهول، أو اكا امدا الوظائف التي ليس لها اسم ولكن مع ذلك يمكن أن يسمى. وذلك ما أفعله هنا هو انا تعيين هذا في إرسال الممتلكات، التي هو داخل هذه العقدة من شجرة DOM بلدي، و وظيفة، وظيفة المؤشر اذا صح التعبير. هذه الوظيفة لا يوجد لديه اسم، ولكن هذا لا يهم لأننا سنرى في لحظة كيف نسميها. عندما يتم استدعاء هذه الدالة، يعدم هذا الرمز، ثم يتم إرجاع كاذبة تماما مثل قبل. لكن لاحظ ما فعلته. عند هذه النقطة في القصة، ولدي نموذج. انها حصلت على معرف فريد يسمى التجريبي. إلى هنا، ولدي بطاقة النصي الذي ينفذ التعليمات البرمجية التالية. التي تعلقها على تلك العقدة في الشجرة لانها على إرسال هذه الخاصية مهمة هنا. وفقط من خلال طبيعة كيفية عمل المتصفحات، عندما كنت الآن انقر فوق إرسال أو هاهنا، هذه الوظيفة سوف تحصل دعا. أنها لا تحتاج إلى الاسم لأن الذين هيك يهتم ما يطلق عليه. المرة الوحيدة انها أي وقت مضى للحصول على ودعا هو عندما أقدم النموذج. ليس هناك حاجة بالنسبة لي، المطور البشري، الدعوة في الواقع في أي مكان آخر. الآن تماما كما دعابة، كما لو أن لم تمانع الانحناء بما فيه الكفاية، حتى أننا يمكن أن تجعل هذه ننظر باستخدام أكثر خفي مكتبة فائقة شعبية تسمى مسج. في الواقع مسج وجافا سكريبت غالبا ما يتم الخلط. وماذا سنفعل يوم الاربعاء هو بداية باستخدام هذه اللغة وهذه المكتبات غير المتزامن لبناء متزايد والتطبيقات الديناميكية مثل الحصول على خريطة التطبيقات، والتطبيقات أن تحديث صفحة ويب في الوقت الحقيقي الوقت، مثل الكثير من الفيسبوك أو Gchat القيام به، وأنه لم يعد نقتصر على إرسال ضرب من الحصول على أو مجرد وظيفة وحده. ولذا فإنني سوف أراك غدا الاربعاء. [عزف الموسيقى]