[عزف الموسيقى] ديفيد جيه مالان: حسنا. نرحب مرة. هذا هو CS50. هذا هو نهاية الأسبوع 8. وكما تعلمون، لدينا جميلة ساعات العمل العادية في عدد قليل من قاعات الطعام، بما في ذلك أننبرغ. وبعض من فريق تتكرم أخذت بعض الصور في الآونة الأخيرة. وتكريما ل عيد جميع القديسين، وكنا نظن أن حصة واحدة بدلا أن اشتعلت لنا المفاجأة هنا في قاعة أننبرغ فقط ليلة أخرى. زميل يعقوب بك طرح ل هذه الصورة، لكنه كان أكثر مسلية وكان في الفيسبوك، وتلت ذلك محادثة ما حدث بعد ذلك. منصبه في أول رد إلى صورته كان هذا. وبعد بضع دقائق، وقال انه قرر لواحد حتى نفسه مع هذا. وتابعت بعد ذلك للذهاب إلى هذا، وبعد ذلك، بل وأكثر متعجبا عندما توافقوا أمه في. ثم في نهاية المطاف، يبدو أن هذا كان مجرد حيلة رائعة ل اللعب التي يجري. لذلك، إذا كنت ترغب لرؤية يعقوب وغيرهم، بينهم سينثيا منغ، الذي هو وراء الكواليس من موظفي منطقة CS50، التوجه الى هذا الرابط وهذه المسرحية هنا. ذلك دون مزيد من اللغط، ونحن اليوم تستمر هذه النظرة في برمجة الويب، وإنشاء الفعلي للبرامج التي لا تعمل في سطر الأوامر الخاص بك، ولكن بدلا من تشغيل داخل المتصفح. يفترض الآن، أو جدا قريبا، وأنت تسير أن تكون في خضم تنفيذ خادم الويب الخاص بك، والتي يختلف عن برمجة الويب. خادم الويب في pset6 هو كل شيء كتابة البرنامج الذي يعرف كيفية اتخاذ طلبات HTTP من مستعرض، أو حتى من أنت، الإنسان، مع برنامج يسمى التلنت، و ثم الاستجابة لهذه الطلبات إما بواسطة بصق ملف HTML، أو JPEG أو GIF أو حتى ملف فب. ولكن مع خادم الويب، انها ليست من المفترض أن مجرد فتح ملف PHP، شيء تنتهي في فب، و ثم بصق المحتويات. أنه من المفترض أن تفعل ما هذا الملف أولا؟ إذا جاز التعبير. وقال نحن الاثنين لا ترجمة عليه، لكن rather-- لذا، تفسير ذلك. من لغة PHP تفسير، وهكذا واحدة من السمات الرئيسية في الويب الخاص بك الخادم، ولو نفذت من قبلنا، هذا هو القدرة على خادم الويب الخاص بك لاحظت، يا. هذا هو ملف تنتهي في فب. اسمحوا لي ليس مجرد إرساله إلى المستخدم مثل ذلك هو محتوى ثابت، بل اسمحوا لي قراءتها سطرا الخط، من اليسار إلى اليمين، وتفسير ذلك. والقيام به، أن ل سوف اللاعبين أساسا البونت لبرنامج في الجهاز، وعلى الكثير من النظم الحاسوبية، فقط ودعا PHP. هذا هو اسم PHP و مترجم لغة نفسها. ، لدرجة أن قطعة ننفذ لل كنت، وما تبقى لكم، في نهاية المطاف، هو رقم من قطعة، من بينها تنفذ دعم لمحتوى ثابت. ولكن الآن، مع و مشكلة تعيين سبعة، وكنت سوف تبدأ في التحول إلى الكتابة فعلا رمز PHP أن يحصل على تفسير في الحديث إلى النهاية الخلفية قاعدة البيانات الذي يقوم بتخزين المعلومات. لذلك دعونا أولا نفهم بشكل أفضل زوجين من هذه superglobals وتماما مدى قوة لك الخروج من مربع مجانا مع لغة مثل PHP. أشياء لم يكن لديك لتنفيذ نفسك. لذلك، رأينا يوم الاثنين $ _GET، وهو superglobal، الذي هو مجرد PHP تتحدث عن عالمي متغير يمكنك الوصول إلى أي مكان. وما هو داخل _GET $؟ ما هو داخل هذا superglobal الذي نراه؟ بالتأكيد إحصائيا عند شخص على الأقل أحد يعرف. ما هو داخل _GET $؟ نعم؟ الجمهور: انها المتغيرات كنت وضعت في سلسلة الاستعلام. ديفيد جيه مالان: ممتازة. انها المتغيرات لك وضعت في سلسلة الاستعلام. هكذا، في مثالنا السن من reimplementing جوجل عندما كان لدينا عنوان URL، ثم علامة استفهام، التي ترسم بداية HTTP المعلمات، ثم كان لدينا ف المساواة شيء ما، مثل س يساوي القطط، ما يمكن أن يذهب تلقائيا داخل والتي تبلغ _GET السوبر العالمية بالنسبة لك، بسبب PHP، هو مفتاح س، وقيمتها من القطط. وبعبارة أخرى، $ _GET وجميع هذه الأشياء هي صفائف النقابي، الجداول التجزئة من نوع ما، أن مفاتيح تخزين والقيم. الآن، مرة أخرى في pset5، تجزئة الجدول قد نفذت، أو محاولة قد نفذت، حقا كان فعليا النقابي مجموعة، بنية بيانات حيث يمكنك إقران مفاتيح مع القيم. ولكن في pset5، وكانت قيم تافهة. وكانت القيمة الحقيقية أساسا أو كاذبة. هي كلمة في القاموس؟ لذلك، عند تجزئته كلمة مثل التفاح لمعرفة ما إذا كان التفاح هو في القاموس، وظيفة الشيك يفترض عاد صحيحة أو خاطئة. لذلك، وهذا على نحو فعال قيمة نحن نحصل على الظهر. لكن شاهدنا يوم الاثنين لفترة وجيزة، يمكنك بالتأكيد ربط أكثر إثارة للاهتمام القيم من مجرد صحيحة أو خاطئة مع مفاتيح، مثل التفاح. هل يمكن أن تعود في الواقع سلسلة التعسفية، وبالفعل، هذا ما _GET دولار، وهذه المتغيرات الأخرى ندعك تفعل. حتى _POST $ غير مماثل في الروح، ولكن إذا كنت تقديم نموذج عن طريق آخر، طريقة HTTP يختلف هذا تستخدم لأشياء مثل بطاقات الائتمان، و والمعلومات الخاصة، وحتى معلومات ثنائية مثل الصور و هذه الأمور في نهاية المطاف داخل دولار _POST. وفعلا عن الملفات مثل ملفات JPEG وغيرها، هناك حتى آخر هذا ليس هنا يسمى $ _files كذلك. لذلك، خادم فإننا لن أسهب في الحديث جدا بكثير، لكنه يتيح لك الوصول لفرز انخفاض مستوى التفاصيل حول الملقم نفسه الذي تستخدمه. كوكي والدورة، رغم ذلك، سنرى الآن بشكل فعال. والأخير هو ما نستخدمه لتنفيذ مفهوم عربة التسوق. واحدة عظمى بسيطة، ولكن تذكر أن كان لدينا هذا المثال هنا، عد كم مرة زار هذه الصفحة من قبل. ولكن اليوم، بدلا من مجرد إلقاء نظرة على تأثير هذا، دعونا فتح المفتش الكروم، و التي تستطيع عادة القيام به من خلال النقر على الحق أو تحكم النقر فوق أي مكان على صفحة ويب، ثم اختر تفقد عنصر. أو يمكنك أن تذهب من خلال القوائم التي وصفنا في المواصفات pset6 ل. وأنا ذاهب إلى علامة التبويب الشبكة هنا، ودعونا مشاهدة لحظة حركة المرور HTTP هذا ذهابا وإيابا. اسمحوا لي أولا المضي قدما واضح مخبأ كروم. وحتى بعض من قد تكون مألوفة مع هذه التقنية بالفعل، ونحن في طريقنا لاستخدامها لأغراض التصحيح هنا. ونحن الآن كما الكمبيوتر العلماء تسير على بدء أفعل هذا من أجل التصحيح الأغراض، حيث سنقوم مسح ذاكرة التخزين المؤقت، عادة، حتى يتسنى لنا يمكن التخلص من الأشياء تسمى الكوكيز. لذلك ربما كنت على دراية عامة مع ما هي ملفات تعريف الارتباط، أو على الأقل إن وجدت، ولكن ما هو تفهمك منهم، مجرد مستخدم لل أجهزة الكمبيوتر، ما هو الكوكي؟ نعم. الجمهور: انها قليلا of-- جيدا، وليس بت في المدى علوم الكمبيوتر. انها قطعة من البيانات التي ل موقع يرسل لك من أجل لتكون قادرة على تسجيل إحصاءات عليك. ديفيد جيه مالان: موافق، وحسن. حتى انها قطعة من البيانات التي ل الخادم، ويضع على جهاز الكمبيوتر الخاص بك، ودعونا تعميمها حتى أكثر من ذلك، هو مفتاح جيدا value--، أن يزداد أكثر دقة. وهو قطعة من المعلومات، وقطعة من البيانات، أن ملقم قادر وضعت على جهاز الكمبيوتر الخاص بك وغالبا جدا، والخادم لا هذا وذلك لتذكر من أنت. هكذا على سبيل المثال، خلاف لربما كنت تسجيل الدخول إلى مواقع مثل الفيسبوك، أو Gmail أو غيرها من قبل، وقمت بتسجيل الدخول باستخدام اسم المستخدم وكلمة السر، ثم بعد ذلك، بالنسبة لبعض العدد دقائق أو ساعات أو حتى أيام، يتذكر الخادم الذي كنت، في الواقع، في تسجيل. الآن، كيف أن يحدث في الواقع؟ لأنك بالتأكيد ليس إعادة كتابة اسم المستخدم وكلمة المرور في كل مرة يمكنك التنقل إلى صفحة مختلفة في الفيسبوك. هكذا اتضح لل الكوكيز هي الجواب. الكوكي يمكن ان يخطر لك كما، نوع من مثل، اليد الرقمية الطوابع التي قد تحصل في أحد الملاهي حديقة أو النادي الذي أساسا يشير إلى أنك هنا منذ من قبل، وقمت بالفعل أظهرت ID الخاص بك إلى الحارس، ل مثلا، وأن النادي أو الحديقة الآن يجب أن نفترض أن لك وقد تمت مصادقته بالفعل. كنت قد حددت بالفعل قبل ذلك. حتى مع أخذ ذلك في الاعتبار، دعونا فتح العداد هنا. اسمحوا لي المضي قدما، وأنا فقط فعلت ذلك، ومسح كل ملفات الكوكيز. والآن ما أنا ذاهب الى القيام به هو عقد التحول، فقط لحسن التدبير، وإعادة تحميل الصفحة قسرا. تحول فقط للتأكد من يحصل مؤقتا أن لا شيء. وهنا طلب التي ذهبت ذهابا وإيابا. حتى هنا لدينا الطلب، والسماح لي في التكبير إلى هنا، والكثير من هذه هو نوع من التفاصيل رتيبا ل الآن أن لديه متصفح تلقائيا أرسلت، ولكن دعونا انقر فوق عرض مصدر لرؤية رؤوس الخام. وإذا كنت قد اتجه الى pset6 بالفعل، أنت بالتأكيد سوف ندرك الأشياء من هذا القبيل، وربما بعض هذه خطوط أخرى هنا، ولكن ما هو أكثر إثارة للاهتمام لهذا اليوم إذا كنت انتقل لأسفل، وليس لطلب ولكن إلى ما يسمى ردا على ذلك، هذا الخط ربما تبدو مألوفة. هذا شيء جيد عندما ترى 200 OK. يبدو أن هذا هو التاريخ والوقت في الخادم وهناك حفنة من الاشياء. أوه، هذا مثير للاهتمام. تبين كلما كنت تستخدم PHP، على الأقل في هذا الخادم، خادم يبصق ما نسخة من PHP الذي تستخدمه. وهو، في الواقع، عن الأمن الأغراض، هو ليس شيئا جيدا. ولكن، سوف نعود إلى ذلك بعض وقت آخر ربما. ولكن الآن هذا هو خط العصير اليوم، ورأينا بإيجاز بعض هذه، أعتقد أننا عندما الفيسبوك مع مطعون حول المفتش في ذلك الوقت، مجموعة الكوكي هو ما زرع قطعة أن القليل من المعلومات على جهاز الكمبيوتر الخاص بك. هذا هو رأس HTTP هذا هو فعال يقول المتصفح الخاص بك، الكروم، IE، أيا كان، مهلا متجر متصفح على المستخدم القرص الصلب، أو في ذاكرة الوصول العشوائي للمستخدم، مفتاح يسمى PHPSESSID، وهو تدوين المختصر لمعرف الدورة، وإعطائها قيمة 0vlk8t، نقطة، نقطة، نقطة. وهناك شبه طويلة حقا سلسلة أبجدية رقمية عشوائية. انها مجرد رقم كبير حقا، ولكن لقد المشفرة مع الحروف والأرقام ذلك أن حجم يمكن أن يكون حتى أكبر من الأرقام وحدها. ومن ثم، بالمناسبة، مسار = /، أن يعني فقط ان هذه الكعكة يجب أن يكون المرتبطة مجمل الموقع، ليس فقط محددة الصفحة كل شيء. لذلك هذا هو أن اليد ختم الظاهري. انها كما لو الخادم، الفيسبوك، أو في حالتنا الجهاز، لديه 0vlk8t مكتوبة حرفيا وهكذا دواليك، على يدك. تلاحظ ما للملقم، لا تفعل غير انها ليست تخزين اسم المستخدم الخاص بي، وبالتأكيد لا تخزين كلمة المرور الخاصة بي. بدلا من ذلك، يبدو أن تخزين المعلومات العشوائية الزائفة بحيث لا يمكن لأحد أن يخمن ما هو بيدي ختم. على جانب الملقم، وفي الوقت نفسه، الملقم سوف أتذكر، وربما في قاعدة بيانات أو شيء من هذا، أن المستخدم الذي في المستقبل يقدم ختم يد 0vlk8t، وزارة النقل، وزارة النقل، وزارة النقل، يجب أن تترافق مع هذا خاصة عربة التسوق، إذا جاز التعبير. وبعبارة أخرى، إذا أنا الآن أذهب هنا مرة أخرى وإعادة تحميل هذه الصفحة، كيف يعرف الخادم التي زرتها مرة واحدة؟ أو إذا كنت تفعل ذلك مرة أخرى، كيف الخادم أعلم أنني قمت بزيارة ذلك مرتين؟ كذلك اذا ذهبت الى هذا معظم الطلب في الآونة الأخيرة، والتي هو الآن في ثلث أنني قد أرسلت في المجموع، لاحظ طلبي الآن. لا يزال هذا هناك يطلب هنا، نفسه كما كان من قبل، لا يزال هناك مجموعة كاملة من الاشياء التي قمنا تجاهلها كما كان من قبل، لكن رأسية الأخير جدا، وهذا الوقت، لأن لقد كنت هنا من قبل، هو عرض ل هذا من ناحية ختم الظاهري. حيث هذا الخط هنا، لم يتم تعيين الكوكيز ولكن الكعكة القولون PHPSESSI = 0vlk8t، هذا مجرد بلدي المتصفح التلقائي عرض هذه الطوابع اليد بحيث الآن الخادم، بمجرد أنها تدرك، أوه، هذا هو المستخدم 0vlk8t نقطة، نقطة، نقطة، الآن أستطيع أن أتذكر من هو أو هي به reassociate مع أن المستخدم مهما كانت معلومات اريد، وجميع ويمكن تخزين هذه المعلومات من قبلك، مبرمج، في $ _SESSION. لكي نكون واضحين، إذا كنت تفتح حقيقية سريعة في جي إديت هذا الملف الفعلي، counter.php، في الدليل العام المضيف المحلي بلدي كما كان من قبل، لاحظ أنه، في الواقع، أنا تخزينها في نهاية المطاف $ _SESSION قوسي الإقتباس "مضادة" قيمة العداد السابقة التي أحصل من هذه السطور هنا أننا نظرت إلى الساعة الماضي زائد واحد. حتى تحت غطاء محرك السيارة، هذا كل الكوكيز هي. انها مجرد نوع من الرقمية ختم ناحية تسير ذهابا وإيابا، وبصراحة إذا قمت بفتح كروم مفتش في أي موقع إلكتروني قمت بزيارة اليوم، مع السوبر احتمال كبير، كنت تريد الذهاب لرؤية واحدة ربما، ربما نصف دزينة من الكعك يجري تذكر من أنت. والأسوأ من ذلك، إذا كانت تلك الموقع الذي تزوره لدينا جميع الإعلانات التي ومن المؤكد أن من الشائع جدا اليوم، وإذا كانت تلك الإعلانات تأتي بعض من الحزب المركزي، وشخص مثل جوجل أو في AdWords لأنها استدعاء واحد من منتجاتها أو غير ذلك من الباعة أن بيع الإعلانات، ما هو المثير للاهتمام، وبصراحة ما هو قليلا ومما يثير القلق، حول كيفية HTTP يعمل، هو أنه إذا كان لديك إعلان جزءا لا يتجزأ في Facebook.com، وGoogle.com، وHarvard.edu، أي عدد من المواقع، لذلك من هذا القبيل أن هناك رجل في منتصف والذي يقضي متابعة الاعلانات لكل ثلاثة من هذه المواقع، اتضح أن الكوكيز هي في المجال. حتى إذا كان لديك إعلان قادمة من نفس الشركة في مختلف المواقع، أن الشركة يمكن أن تتبع على نحو فعال من كنت في كل من تلك المواقع. هارفارد قد لا يعرف الذي تزوره الفيسبوك. الفيسبوك قد لا يعرف و كنت تزور جامعة هارفارد. ولكن مهما كانت الخدمة الإعلانية يستخدمونه اذا كان هذا المجال هو الحاضر في كل Harvard.edu الويب صفحات وصفحات الويب Facebook.com، هذا رجل في منتصف يعرف بالتأكيد من أنت بسبب هذه الملفات يجري تقاسمها عبر، أو بالأحرى ل، أن ما يسمى الوسيط. ولذا فإننا سوف نعود إلى هذا في الآثار الأمنية منها، ولكن هناك الكثير من المعلومات يجري تخزينها عنك في أي وقت كنت زيارة معظم أي صفحة على شبكة الإنترنت شبكة الانترنت وذلك حقا يقلل إلى هذه الآلية بسيطة جدا. ما يحدث، إذن، إذا كنت فائقة بجنون العظمة وعليك أن تقرر الذهاب إلى كروم أو IE أو أيا كان وإيقاف ملفات تعريف الارتباط الخاصة بك؟ ماذا يحدث؟ نعم؟ كنت really-- قمت به هذا الحق؟ موافق. لا، والمضي قدما. الجمهور: بعض المواقع لا تملك وظيفة دون ذلك مثل الفيسبوك. ديفيد جيه مالان: نعم! لذلك بعض المواقع سوف تتوقف فقط العمل. وفي معظم المواقع هذه الأيام التي تعتمد بشكل أساسي على ملفات تعريف الارتباط، خاصة إذا كان لديهم قمت بتسجيل في، انهم مجرد الذهاب الى كسر. لأن النظر في البديل، إذا كان الموقع لا يوجد لديه وسيلة لتذكر من أنت، وبالتالي متصفح الويب الخاص بك ليست تمثل مع كل HTTP طلب من هذا الطابع اليد، فعالية موقع على شبكة الانترنت مثل الذهاب في الفيسبوك لدينا ليطالبك ل تسجيل الدخول في كل مرة الرتق تغيير الصفحات، أو انقر على الرابط الذي هو بالتأكيد ليست جيدة للمستخدم خاصة التجربة. ذلك أن هناك، أيضا، هو بين المقايضات. ذلك دون مزيد من اللغط، دعونا نلقي من المسلم به أن مع برمجة الويب، في لغات مثل PHP، يمكنك تذكر معلومات من هذا القبيل في مشكلة تعيين سبعة عند تنفيذ بنفسك E * TRADE مثل الانترنت التي لشراء وبيع الأسهم، عليك أن تتذكر بالضبط ما اشترت المستخدم وبيعها والذي كان هو أو هي عن طريق هذه الدورة. لكننا سنحتاج الى طريقة مربي الحيوانات من البريد الإلكتروني لبدء حفظ المعلومات حولها. أليس كذلك؟ يوم الاثنين، تحدثنا عن Frosh الرسائل الفورية وكيف في نسخة واحدة من هذا الموقع، منذ سنوات، كل ما فعلته كان البريد الإلكتروني لشركة بروكتر الذي هو المسؤول عن الألعاب الجماعية البرنامج، الاسم، والجنس، وعما إذا كانت أو لم تكن أنت ضابط برتبة نقيب، والنوم من شخص ل التسجيل للرياضة جماعية. حتى انها ليست سيئة، ولكن هو أو هي ثم كان لالقزم من خلال البريد الإلكتروني الخاصة بهم، جعل جدول بيانات أو شيء من هذا القبيل ذلك، أن تبقي كل شيء منظم. لذلك فإننا بالتأكيد كما المبرمجين يمكن القيام بذلك عن أن بروكتور. وهكذا تدخل في SQL، لغة الاستعلام الهيكلية، التي سوف تبدو جميلة مختلفة لكلا C و PHP، وعليك أن الغوص في أكثر من ذلك بكثير على أيدي PHP ومشكلة تعيين سبعة ولكن أيضا SQL، أو SQL، هذا هو اللغة التي استخدام التحدث إلى قاعدة البيانات. ولكن ما هي قاعدة البيانات؟ كذلك كنت أفكر في قاعدة البيانات، على الأقل في الوقت الراهن، كما يجري فقط مثل ملف إكسل، أو إذا كنت ملف المستخدم أرقام ماك، أو إذا كنت من تطبيقات Google المستخدم جدول بيانات جوجل، و انها فعليا قاعدة بيانات، أو حقا على وجه التحديد قاعدة بيانات علائقية. قاعدة بيانات علائقية هي فقط شيء له الصفوف والأعمدة، ويمكنك تخزين أي نوع من المعلومات الواردة في هذه الصفوف أو الأعمدة. ولكن ما هو لطيف حول SQL، و حول قواعد البيانات الفعلية، وليس فقط جداول البيانات أو جداول بيانات جوجل، و هو أنه يمكنك استخدام لغة في الواقع لتنفيذ الاستعلامات ل إدراج البيانات، لإزالة البيانات، للبحث عن البيانات، حتى الأهم من ذلك، وأنت لم يكن لديك لاستخدامه يدويا إلى حد ما كما كنت قد عادة جوجل جدول بيانات من هذا القبيل. حتى في SQL، هناك مجموعة من البيانات أو القطع الأساسية من وظيفة بنيت في. هناك عدد أكبر بكثير من هذه، ولكن هل يمكن أن تقطع مسافة كبيرة فقط من خلال معرفة أن هذه اللغة تسمى SQL أربعة على الأقل تصريحات يمكنك الاستفادة. حذف، لإزالة البيانات، إدراج لإضافة الصفوف، التحديث للتغيير الصفوف، واختيار، للحصول على العودة الصفوف و هذا هو في الواقع ما تفعله SQL. وهو يعمل بشكل كامل على الصفوف حتى أنه عند إدراج أو حذف، أو التحديث، أو تحديد ما كنت الحصول يعود إلى ما يسمى مجموعة النتائج، مثل مجموعة من الصفوف. حفنة من الصفوف من جدول. لذلك مرة في اليوم، وحتى يومنا هذا، يمكنك التفاعل مع قاعدة بيانات باستخدام سطر الأوامر، ولكنها ليست متعة خاصة لاستخدام هذه النافذة أسلوب أبيض وأسود وفعلا تنفيذ الأوامر وكزة حول قاعدة البيانات الخاصة بك. واجهة المستخدم الرسومية، أو واجهة المستخدم الرسومية، هو أكثر من الأفضل بكثير، يمكن القول، وهكذا الأداة نوصي و لك مسبقا على الجهاز ويسمى بريس. انها صدفة أن إجمالي اسم هذا الشيء لديه PHP في ذلك، هذا يعني فقط أن الشعب الذي كتب هذا البرنامج أنفسهم كتب في PHP. ولكن هذا في النهاية حول إدارة خادم قاعدة بيانات، مثل خادم MySQL التي قد تكون لديكم، وأنتم القيام، في الأجهزة CS50. ولذلك لا يوجد المزيد من التفاصيل من هنا نحتاج أن نهتم اليوم، ولكن ما هو المفتاح هو أن على اليسار الجانب هي قائمة على قواعد البيانات أن يكون لديك على جهاز الكمبيوتر الخاص بك، على الأجهزة CS50 الخاص بك، أو تأتي المشاريع النهائية التي قد يكون على طرف ثالث، وهي شركة ل موقع ويب أو خادم الويب، الذي هل يمكن أن تدفع للفضاء. لذا على اليسار هو قواعد البيانات، واحدة منها هو pset7 التي اقترضت من القادم PSET أسابيع، ثم على قمة هناك لاحظت هناك مجموعة من علامات التبويب، واحدة منها هو قواعد البيانات، SQL، والوضع، المستخدمين والتصدير وهكذا دواليك. حتى تتمكن من الذهاب لفترة طويلة الطريقة فقط من خلال تحقيق أن معظم واجهة المستخدم في العمود الأيسر العلوي وعبر أعلى اليمين هناك. فماذا يمكننا أن نفعل مع هذا الواقع؟ حسنا، دعونا نبدأ خلق القليل من المعلومات على النحو التالي. لنفترض ما يلي هو الحال، كما سيكون في غضون أيام قليلة، تريد تنفيذ على شبكة الإنترنت، دعا CS50 المالية، وهذا الموقع يتيح لك شراء أقتبس نهاية الاقتباس وبيع الأسهم. وانها تسير لمعرفة سعر تلك الأسهم، في نهاية المطاف كما سترى، من خلال التحدث إلى ياهو المالية. التي، رائعة، لديها خدمة مجانية حيث يمكنك تمرير في مؤشر الأسهم مثل GOOG لجوجل، وأنها سوف يعطيك ظهره الأسهم جوجل الحالي السعر في غضون الماضي بضعة دقائق على الأقل. لذلك عليك استخدام ذلك، في نهاية المطاف، التظاهر للمستخدم لشراء وبيع فعلي الأسهم باستخدام الأموال الافتراضية، لكن أول شيء جدا المستخدم سوف نرى هذه هي شاشة تسجيل الدخول التي تطلب منهم لاسم المستخدم وكلمة المرور الخاصة بهم. وهكذا، واحدة من أولى التحديات بالنسبة لك في pset7 سيكون لتنفيذ النهاية الخلفية قاعدة بيانات وجدول اذا صح التعبير، ما يجري لتخزين أسماء المستخدمين وكلمات السر وفي نهاية المطاف ما أسهم يمتلكونها، و كم، وكم النقدية لديهم، حتى حفنة من الأشياء الأخرى في الجداول الأخرى، أو جداول البيانات. لذلك دعونا نلقي نظرة على كيف يمكن لهذا قد يبدو للوهلة الأولى. أنا ذاهب إلى العودة إلى الجهاز وأنا الذهاب إلى الذهاب إلى هذا الرابط هنا بريس مضيف محلي / بريس وسترى أنه يأخذني إلى واجهة تماما كما شاهدنا على لقطة الشاشة، وهنا أنا لدينا قاعدة بيانات إضافية دعت المحاضرة لهذا اليوم واسمحوا لي أن المضي قدما أولا وانقر على pset7. ويبدو لي أن لديها زوجين من الخيارات، واحدة عن الجديد، لإنشاء جدول جديد، وصلة للمستخدمين، التي هو جدول أنا خلقت بالفعل. إذن ما هو الجدول؟ حتى إذا كنت تستخدم إكسل من قبل، وإذا كنت قد الأرقام المستعملة أو جوجل جداول البيانات، يمكنك فتح نافذة ويمكنك الحصول على مجموعة كاملة من الصفوف والأعمدة، ولكن بعد ذلك لديك عادة أوراق العمل على طول الجزء السفلي، أو علامات تبويب منفصلة. يمكنك التفكير في كل ورقة العمل كجدول بحيث قاعدة البيانات، في نهاية المطاف، هو مزيج من جدول واحد أو أكثر، واحد أو أكثر من أوراق العمل، في عالم من جدول العادي. لذلك اسمحوا لي المضي قدما و انقر على ورقة العمل هذه أنني ولم يضف، ودعا المستخدمين، المعروف باسم جدول قاعدة البيانات. وإذا كنت انتقل لأسفل هنا، اسمحوا لي تصغير قليلا، هذا هو ما يقول بريس لنا هو داخل هذا الجدول في الوقت الحالي. انها مربكة قليلا في البداية وهلة لأن واجهة المستخدم ليس أجمل شيء في العالم، ولكن ما يثير الاهتمام هو هذا الجزء هنا. الهوية، واسم المستخدم، والتجزئة. مقدما، وعليك أن تكون اليد هذه مشكلة في تحديد سبعة، نقدم لكم ملف يحتوي على السوبر جدول قاعدة بيانات صغيرة، اقترضت الواقع من طبعة القراصنة المشكلة تعيين اثنين، داخل التي يوجد منها ستة صفوف. واحد لبليندا كل الطريق إلى واحد لZamyla، ونلاحظ على يسار تلك أسماء ومعرفات فريدة مثل واحد، اثنان، ثلاثة، أربعة، خمسة، ستة، الأعداد الصحيحة، ثم إلى اليمين والتجزئة. وإذا، هي احتمالات، أنت لم تفعل المشكلة طبعة القراصنة تعيين اثنين، ولكن تجزئة هي تماما مثل مشفرة كلمة السر مع بعض المحاذير. وهكذا، ما تراه هنا إصدارات مشفرة من كل ستة من كلمات السر لدينا من مشكلة ضبط اثنين من القراصنة طبعة. الآن إلى اليسار هو فقط بعض الاشياء واجهة المستخدم الرسومية، تحرير هذا الصف، نسخ هذا الصف، حذف هذا الصف. ولكن ما هو مثير للاهتمام الآن هو ما يلي. أنا يمكن أن تبدأ فعلا تجريب هذا الجدول. حتى إذا ذهبت وانقر على SQL التبويب، وأحصل على مربع نص كبير هذا. وهذا ليس كيف نحن ذاهبون ل تفعل ذلك فعلا عند كتابة التعليمات البرمجية. أن تكون واضحة، بريس هو مجرد أداة هذا الذهاب إلى دعونا كزة حول قاعدة البيانات ودعونا تجربة استفسار. هكذا على سبيل المثال، لنفترض أنا تنفيذ هذا بالضبط. حدد، التي تعد واحدة من تلك كلمات ذكرتها سابقا، نجمة، الذي يمثل جميع الأعمدة في جدول. ما من الجدول؟ حسنا، مستخدمين. وإشعار هناك هذا اتفاقية غريبة في SQL حيث يمكنك استخدام فعلا القراد الظهر، عادة، لا احد يقتبس ونقلت يست مزدوجة عند الحديث عن أسماء الجداول، لذلك الاقتباس العودة هو الشيء على أعلى اليد اليسرى من لوحة المفاتيح أكثر الأرجح. لذلك اسمحوا لي المضي قدما الآن ومجرد ترك ذلك وحده وانتقل لأسفل وانقر فوق انتقال، ونحن الذهاب فعلا لرؤية الشيء نفسه. لقد أعدم مجرد الاستعلام SQL قائلا مختارة نجم كل شيء ودعا من جدول المستخدمين، و ما تحصل عليه العودة هو هذا. في نهاية المطاف، سوف تكون قادرة على تفعل هذا الشيء نفسه في التعليمات البرمجية، ولكن الآن كل ما أردت أن لا أرى ذلك كان في متصفحي. حسنا دعونا نفعل شيئا مختلفة قليلا. اسمحوا لي أن أعود إلى علامة التبويب SQL، ودعونا نقول فقط أن ما؟ Zamyla فقد كل من لها المال، وبالتالي فإنه من الوقت بالنسبة لنا لحذف لها كمستخدم. انها لم تعد تسجيل الدخول. لذلك انا ذاهب الى القول حذف from-- كذلك، والحفاظ على رأس المال من أجل التناسق، وحذف من حيث المستخدمين. وهكذا، فإننا يمكن أن يكون هؤلاء المسندات، أو هذه تصفيات، في نهاية بياني أين وكيف يمكن لي حذف Zamyla؟ قبل اسمها Zamyla، وبالتالي فإن العمود، أحد الأعمدة كان اسمه، وذلك حيث اسم = "Zamyla". وهنا يمكنني استخدام مزدوج يقتبس أو علامات الاقتباس المفردة، لك فقط استخدام الجزء الخلفي القراد عندما نتحدث عن أسماء، على سبيل المثال، من الجداول أو الحقول. واسمحوا لي هنا انقر فوق الانتقال. والآن، صفحة الويب هي يجري متوترون قليلا. أو، هل تريد حقا أن تنفيذ حذف من المستخدمين حيث يساوي اسم Zamyla؟ نعم. حتى الآن، إذا عدنا إلى مائدتي من قبل المستخدمين النقر، لاحظ أن جلالة الملك. أنا أخطأ. في واقع الأمر، أنا نوع من النقر بعيدا بسرعة لم نرى حتى رسالة خطأ الحمراء، ربما. ماذا أفعل الخطأ؟ الجمهور: أنت لم تكن في حاجة للاستفادة اسمها. ديفيد جيه مالان: نعم أنا رسملة اسمها، ولكن في الواقع أنا لها username-- قدم الزوجان الأخطاء، أليس كذلك؟ واحد، واسم المستخدم لها هو zamyla، Z صغيرة، واسم العمود هو اسم المستخدم، لا اسم، لذلك دعونا نفعل ذلك مرة أخرى. اسمحوا لي أن تمضي قدما و حذف من حيث المستخدمين اسم المستخدم يساوي بين قوسي الإقتباس "Zamyla". كل الحق؟ حتى هذا يبدو أفضل قليلا، واسمحوا لي بالذهاب انتقل لأسفل وانقر فوق انتقال. فإنها ما تزال مستمرة ل يصيح في وجهي للتأكد. أنا فوق نعم، والآن نرى، بصراحة هذا حدث، حقا سريع، أقل من واحد الثانية بالتأكيد، هذا هو بالضبط الاستعلام التي حصلت على تنفيذها. لتأكيد، اسمحوا لي أن المستخدمين انقر والواقع الآن هو ذهب Zamyla. الآن دعونا نفعل العكس. لنفترض أن غابي يريد تسجيل في الموقع. ما هو الاستعلام SQL، ما هو قيادة يمكنني أن اكتب لإضافة غابي؟ حسنا انها واضحة جدا. تضاف إلى المستخدمين، والآن يحصل خفي قليلا. أنا بحاجة إلى تحديد، إلى الملقم، ما هي المجالات أريد أن تعيين. لا يهمني حقا ما معرف غابي العدد، لذلك انا ذاهب لتخطي ذلك. أنا بدلا سأقول اسم المستخدم، التجزئة، ومن ثم القيم أريد أن أضع هناك ستكون غابي. ثم تجزئة له، وأنا لا أعرف. حتى الآن، وأنا ذاهب ل كما أن ترك كبيرة للقيام به. سنعود ل أن المشكلة في مجموعة المواصفات لكيفية كنت في الواقع تفعل ذلك. لذلك نلاحظ، مرة أخرى، على بناء الجملة. تضاف إلى اسم الجدول، ثم قائمة قوسين من الحقول، الأعمدة التي تريد إضافة القيم، وبعد ذلك فقط نفس الترتيب المحدد تترك ل حق القيم التي تريد إضافتها، وانها مجرد التفاف ل النص طويل بعض الشيء. لذلك اسمحوا لي الآن انقر فوق انتقال. إدراج صف واحد. والآن اذا عدت ل المستخدمين، ما هو مثير للاهتمام هو أن ليس فقط هو غابي الآن في قاعدة البيانات، ما هو على ما يبدو هويته؟ حسنا انها سبعة. لماذا هو سبعة عندما لم أكن إضافته؟ لذلك هذا، أيضا، هي واحدة من الميزات التي تحصل عليها من قاعدة البيانات. وهناك الكثير من المدمج في وظيفة. اتضح أنه عندما خلق هذا الجدول، أنا تكوينها مسبقا انها تلقائيا تعيين معرف في مثل هذه الطريقة أن الزيادات. حتى إذا كنت من أي وقت مضى مطعون حولها، ونظرت إلى ما لديك معرف الفيسبوك العدد هو، في هذه الأيام أنها ليست حقا شيء للقيام، ولكن الفيسبوك باعتبارها API، واجهة برمجة التطبيق، حيث يمكنك الحصول على العودة في مجمله مجموعة من البيانات حول نفسك، عن أصدقائك، واتصالاتك. وما كان ليكون نوع من بارد، مرة في اليوم، كان للبحث عن ما لديك كان الفيسبوك رقم معرف. مارك زوكربيرج، على سبيل المثال، هو ثلاثة منذ أن كان مؤلف الموقع. وكما تقول القصة، انشأ حسابين الاختبار، مستخدم واحد واثنين، الذي ثم حذفها. وهكذا، Zuck، كما هو اسم المستخدم له في الفيسبوك، هو معرف رقم ثلاثة، وكل منا لديه أرقام بكثير أكبر من الثلاثة في هذه الأيام. في الواقع، في بعض نقطة الفيسبوك ابتعدت من حتى باستخدام الباحث، والتي هي قيمة 32-بت، لاستخدام الخطوة يصل المقبل، أساسا طويلا طويلا أنها يمكن أن تستوعب حتى أكثر المستخدمين تسجيل. لذلك حقيقة تاريخية المرح قليلا. ذلك أن مجرد الجملة الأساسية التي يمكننا أن تنفيذ بضعة الاستفسارات، ولكن يمكننا في الواقع به حفنة من الأشياء مع SQL. وسترى في النهاية، في مشكلة تحديد سبعة أن يكون لديك لجعل عدد من قرارات التصميم، بينهم ستكون ما أنواع البيانات للاستخدام. هكذا مثلما هو الحال في C، هناك البيانات أنواع في قاعدة بيانات، مثل الخلية، وأنواع البيانات التي يجب أن تختار وتشمل هذه المجالات من هنا. تشار، VARCHAR، كثافة العمليات، الباحث الكبير، عشري والوقت والتاريخ، وغيرها الكثير. لذلك دعونا نفعل هذا الواقع. دعونا نتظاهر بأننا لم ومن ناحية الجدول لكم هذا المستخدم واسمحوا لي أن تمضي قدما وخلق، ل نفسي في المحاضرات database-- دعونا فعلا لي المضي قدما وحذف الجدول لدي هنا بالفعل حتى نتمكن من خلق هذا الواقع. يصيح. انا ذاهب الى إسقاط هذا الجدول، والآن أنا سوف نذهب مرة أخرى إلى محاضرة قاعدة بيانات أكثر من هنا، انا ذاهب لإنشاء جدول ودعا مستخدمي ودعونا مجرد القيام ثلاثة أعمدة في البداية، وانقر فوق انتقال. الآن، بالنسبة للجزء الاكبر، و مرة أخرى، وهذا هو فقط استخدام هذه الأداة الرسومية يسمى بريس، وما نقوم به الآن تم إنشاء جدول. لذلك هذا هو مثل الملف ذاهب، الجديدة، وإنشاء ملف Excel جديد. حتى انها تطلب مني قليل أسئلة، من اليسار إلى اليمين، ما هو اسم العمود الأول، ثم اسم العمود الثاني واسم الثالث. لذلك دعونا إعادة هذا. ID، ومن ثم كان اسم المستخدم واحد، ثم كانت البعثرة آخر. وذلك ما ينبغي نوع البيانات يكون الآن لحقل مثل الهوية؟ ستجد هنا لائحة كاملة من أنواع البيانات المتوفرة لديك في قاعدة بيانات، والآن دعونا اذهبوا مع كثافة العمليات. قيمة 32 بت، وأنا لا أعتقد أنا واقعي ستكون لدينا أكثر من 4 مليارات المستخدمين في حسابي، في خدمة بلدي، و لذلك انا ذاهب الى مواصلة التحرك إلى السؤال التالي. أنا لا أذهب إلى تحديد طول أو القيم، انها ليست قابلة للتطبيق هنا لكثافة العمليات، في حد ذاتها. والآن يمكنني تحديد، على ما يبدو، وهو الافتراضي القيمة، وأنا لست بصدد تحديد. ترتيب، وأنا لا أعرف ما هو. سمة. نحن الآن فعلا يكون قرار تصميم. لذلك هناك عدد قليل من المجالات هنا، ليست كل والتي يمكن تطبيقها، ولكن غير موقعة يعني مجرد ما؟ يجب أن يكون الباحث؟ فقط غير سالب. لذلك يجب أن يكون 0 على ما يصل. لا، أنا لن تحقق ل أريد من كل مستخدم أن يكون له هوية، لا يمكن أن تكون فارغة. ومن ثم، نصل إلى بعض أكثر قرارات التصميم مثيرة للاهتمام من هذا القبيل. سوف نعود إلى هذا في لحظة، ولكن ما ميزة أخرى من قاعدة البيانات هو، هو الذي يمكن أن أقول لكم خادم قاعدة البيانات في موعدها وتحسين نفسك، بك ذاكرة الوصول العشوائي ومساحة القرص الثابت، بحيث يختار، وتدرج، و حذف، وتحديثات سريعة حقا. على النقيض من ذلك مع pset5. إذا أردت البحث عن شيء في جدول التجزئة الخاصة بك، والتي رأيك في كقاعدة بيانات، الذين اضطروا إلى القيام بكل العمل لصنع جدول التجزئة الخاصة بك بسرعة. انها مثل، بالطبع، لك. أليس كذلك؟ كان عليك أن تضع في كل مرة غرامة ضبط الامور، والحصول على وظيفة تجزئة الحق، معرفة كيف العديد من الدلاء لديهم. ولكن ما هو لطيف، ومرة ​​أخرى، حول قاعدة البيانات كنت للتو البونت كل هذا إلى أشخاص آخرين الذين يعتقد هذا خلال للكم، وماذا انا ذاهب الى القول هنا تحت المؤشر هذا المجال هويتي ستكون الطريق الرئيسية لل تحديد المستخدمين في قاعدة البيانات هذه. أنا لا أذهب إلى التفكير من Zamyla كما Zamyla، انا ذاهب الى التفكير في كما لها عدد 6. لماذا هو، ربما، أفضل حدسي للتفكير في نموذج و كل الصفوف الفردية الخاصة بك باستخدام عدد بدلا من شيء مثل سلسلة، مثل Zamyla أو غابي أو أطول سلسلة لا يزال؟ نعم؟ الجمهور: معرف فريد من نوعه؟ ديفيد جيه مالان: أقول مرة أخرى؟ الجمهور: معرف فريد من نوعه؟ ديفيد جيه مالان: معرف هي فريدة من نوعها، ولكن suppose-- كما هو الحال في عام مع أسماء المستخدمين، لنفترض كما قلت يمكن أن يكون هناك واحد فقط Zamyla في العالم، وغابي واحدة فقط. أنا يمكن فرض تفرد قيدا على الاوتار، أيضا، إذا أردت. حتى ليس الفكر السيئ. الجمهور: أكثر أمنا. ديفيد جيه مالان: أكثر أمنا، لماذا؟ الجمهور: لا يمكن معرفة أي هو الذي، كما هو الحال في المستعمل. ديفيد جيه مالان: موافق، لا يمكن معرفة أي مستخدم هو ذلك الذي هناك جوانب الخصوصية إليها، خاصة إذا كانت معرفات ربما الظهور في عناوين المواقع. على يقين من ذلك، يمكن أن النوع من العمل، أيضا. أفكار أخرى؟ نعم؟ الجمهور: انه من الاسهل ل تنفيذ عمليات على عدد صحيح. ديفيد جيه مالان: هذا هو كيكر الحقيقي. انها مجرد أكثر كفاءة، أو أسهل للكمبيوتر، لتنفيذ عمليات على عدد صحيح. أليس كذلك؟ مكفول عدد صحيح ل يكون 32-بت، في حين Zamyla هو بضعة أحرف، غابرييل هو بضعة أحرف، دافنبورت طويلة حقا، ولذا فإنه من لا كفاءة ولا سيما استخدام سلاسل للمقارنة بين القيم وتبدو للحقول، وحقول التحديث، إذا كان يمكنك الحصول بعيدا مع عدد صحيح واحد فقط. فقط 32 بت. حتى أسماء، أيضا، بهذه الطريقة، لا يجب أن تكون فريدة من نوعها، على الرغم من أنها ربما ينبغي يكون، وحتى في هذه الطريقة أيضا يمكن السماح للمستخدم تغيير اسم المستخدم له أو لها. لذلك دعونا الآن ترك هذا النحو الوسيلة الرئيسية لتحديد المستخدم. هذا هو قول قاعدة البيانات والمضي قدما في تحسين نفسك بحيث يو بي إس نظرة على الهوية هي بسرعة فائقة. منظمة العفو الدولية، واسمه فظيعة، فقط يعني زيادة تلقائية، وهذا هو الاختيار مربع نحن بحاجة إلى التحقق لتحديد أن حقل معرف ل يتم تحديثه تلقائيا بالنسبة لي، ثم انا ذاهب الى انتقل إلى هنا وبصراحة أنا غير مهتم حقا في أي أكثر من هذه المجالات. بالتأكيد ليس اليوم. لذلك أنا ذاهب للذهاب إلى هنا، إلى العمود الأول، حيث أنا بحاجة إلى تحديد اسم المستخدم والبعثرة، ودعونا على الأقل التركيز على ثانية واحدة حتى الآن. الباحث ربما لا يكون دعوة الحق، وذلك ما يجعل أكثر منطقية ربما؟ الجمهور: نص. ديفيد جيه مالان: أقول مرة أخرى؟ الجمهور: نص. ديفيد جيه مالان: نص؟ حسنا، سمعت النص. ماذا بعد؟ لدينا نوع من حفنة من الخيارات التي هي نصوص في الطبيعة. حتى متى، وماذا، يفعل يمكنك استخدام بعض من هذه؟ كذلك شار، على عكس ما كنت قد أعتقد، ليس حرف واحد. انها لعدد محدد من الأحرف. لذلك إذا علمنا أن جميع أسماء المستخدمين يجب أن يكون مثل ثمانية أحرف، كما اعتادت ان تكون شائعة في كبار السن أنظمة الكمبيوتر، ويمكنني أن أقول شار وبعد ذلك يمكن أن نقول 8 هنا. وذلك عندما يصبح العمود الثالث ينطبق عند إنشاء الجدول. ولكن هذا النوع من مزعج ربما لأن بعض الناس تريد أن يكون اسم مستخدم أطول من ثمانية أحرف، بعض الناس قد ترغب في لديك اسم مستخدم أقصر، فلماذا ارتكاب نفسي إلى عدد معين؟ لماذا لا يكون متغير عدد أحرف فقط و القول بأن الحد الأقصى لطول اسم هو، لا أعرف، مثل 64 حرفا. لا أستطيع التفكير في أي الأصدقاء الذين لها أسماء أطول من 64 حرفا، وحتى اذا كان هذا قصيرة جدا هل يمكن بالتأكيد عثرة عنه تعسفا. حتى VARCHAR هو متغير عدد حرف. النص ليس غريزة سيئة، و بصراحة هذا النوع من يفعل ما يقول، لكن حقل نص يمكن أن يكون مثل 65،000 بايت على الأقل. وهذا ربما مبالغة ل الحقل، وفي الواقع، نعم، 65535. وهذا ربما مبالغة ل اسم، ولذا فإننا سوف عصا، عادة، مع varchars لالنصية الميدان والتجزئة، أيضا. التجزئة، كما تبين، أننا يمكن أن تفعل VARCHAR فضلا أو أي شيء من هذا القبيل، لكننا لن نركز اليوم على هناك التشفير وأرقام أننا قد فعلا تريد استخدامه لطوله. ولكن اسمحوا لي أن انتقل لأسفل إلى اليمين. هل يمكن أن يكون واحد فقط المؤشر الرئيسي للجدول، ولكن لا أريد أن تطبيق أي من هذه، الآن، واسم المستخدم، وكنت أقول؟ ما ينبغي أن يكون إسم العضو على أساس غامضة فهم هذه الخيارات الأربعة؟ فقط بأسمائها؟ الجمهور: فريد. ديفيد جيه مالان: فريد من نوعه، أليس كذلك؟ لذلك تبين أنه لا يمكن فقط كنت اقول قاعدة بيانات، مقدما، هذه هي الطريقة الأساسية تحديد المجالات. يمكنك أيضا أن أقول هذا هو سيكون حقل فريد. انها لن تكون الشيء أنا أعتمد على، ولكن أود قاعدة البيانات ل لدينا أساسا أنه إذا شرط، لذلك أنني إذا حاولت من أي وقت مضى لتسجيل اثنين من المستخدمين بنفس الاسم، وخارج قاعدة مسطحة لا يجري في اسمحوا لي. كنت قد يكون لها بعض تعليمات برمجية إضافية في بي ان يمنع قدر، ولكن قاعدة البيانات، أيضا، يمكن أن تضمن أن هذا لن يحدث. الآن، بوصفها جانبا، خصوصا كنت تفكر في المشاريع النهائية، نضع في اعتبارنا أنه مؤشر وكامل النص هي في الواقع مفيدة للغاية. إذا كان لديك قاعدة بيانات أكبر، وليس مع عشرات، بل مئات أو آلاف أو حتى الملايين من الحقول، يمكنك كما نقول للقاعدة مقدما هذا هو حقل سأشارك أن يكون البحث على الكثير. ربما اسم المستخدم لها، ربما حان الحيوي، إذا كنت جعل موقع على شبكة الانترنت مثل الفيسبوك أن لديه الفقرات التي يسمح للمستخدم لإنقاذ، وإذا كنت ترغب في نقول للقاعدة مقدما انا ذاهب الى أن البحث في هذا المجال الكثير، ولكنها ليست بالضرورة فريدة من نوعها، يمكنك تحديد خلق لي فهرس. أو، هل يمكن القول أيضا أن تسمح لي بذلك نوع من التفتيش التعسفي مثل القيادة أو تحكم F، مثلك ربما في معالج النصوص، لذلك يمكن أن ننظر سلاسل التعسفية أو فرعية في هذا المجال. وبعبارة أخرى، نحن نحصل على إلى هذه النقطة في الفصل الدراسي حيث لم يكن لديك ما يدعو للقلق كيفية تنفيذ الأمور بكفاءة. أنت فقط بحاجة الى معرفة ما قرارات التصميم لجعل بحيث كنت استخدام الأدوات المناسبة لل التجارة من أجل الاستفادة من الميزات بنينا أن الآخرين لك. لذلك باختصار، ينبغي الابتدائية فقط لديك واحدة، هل يمكن أن يكون واحد فقط، وهذا هو الشيء كنت الالتزام تستخدم لتحديد الحقول بشكل فريد. فريدة من نوعها هو مماثل للتو في الروح، ولكن قد تستخدم في بعض الأحيان إلا أنه، ولكنك تريد قاعدة البيانات لفرض ذلك. مؤشر استباقي يعني فقط تسريع الامور في المستقبل حتى أستطيع أن البحث عن الأمور في هذا المجال. ثم النص الكامل عموما ل الفقرات، أو المقالات، أو هيئات كبيرة النص حيث كنت قد ترغب أيضا أن يكون بطاقات البرية مثل ما يعادل نجوم. الحق. بحيث كان نوع من الكثير لفي كل مرة. دعونا نرى ما اذا كنا لا نستطيع استخلاص زوجين من هذه الميزات ومن ثم بناء شيء بسيطة إلى حد ما، ولكنها قوية. حتى بين البعض قرارات التصميم كنت الذهاب في نهاية المطاف أن يكون هو على طول خطوط محركات التخزين. واسمحوا لي فقط أن أذكر من هذا تحسبا من المشاريع النهائية، وتحسبا لدعونا say-- لا دعونا نفعل هذا. دعونا نبني هذا القليل التطبيق أولا. انا ذاهب للذهاب إلى محطة بلدي النافذة، وهنا ليس counter.php فقط، ونحن ذاهبون الآن للتخلص من أنه لم يعد وثيق، ولكن لدينا مجموعة كاملة وهذا من الدلائل سوف تكون مشابهة جدا في روح لماذا سترى في مشكلة تحديد سبعة. لذلك لدينا ثلاثة الدلائل يتضمن قوالب الجمهور والتي هو بالضبط حيث توقفنا على الاثنين مع شركائنا كله نموذج MVC. وباختصار، في العلن ستذهب أي ملف أريد للمستخدمين في الواقع ت تكون قادرة على زيارة في المتصفح عن طريق URL. القالب. ما لم نضع في القوالب؟ أي نوع من الاشياء؟ لم يكن هناك الكثير ولكن زوجين ملفات على الأقل يوم الاثنين. نعم. الجمهور: رأس وتذييل الصفحة؟ ديفيد جيه مالان: رأس وتذييل الصفحة. لذلك لدينا شيئا من هذا القبيل اليوم أيضا. لدينا عدد قليل من أكثر الملفات ولكن تذييل أرى، رأس أرى، ثم حفنة من الملفات الأخرى. لذلك هذا هو ما يعادل من وجهة نظر V بعثة التحقق المشتركة، والتي، مرة أخرى، سوف تكون أكثر قليلا مشكلة واضحة في تحديد سبعة، ولكن هذا هو مجرد مجلد أنا وضع الكثير من الجماليات بلدي. وهناك الكثير من بلادي HTML، والكثير من أشكال بلدي. وفي الوقت نفسه، يشمل، هو آخر دليل الذي يحتوي على هذه الملفات الثلاثة ودعونا نلقي نظرة سريعة على هذه. انا ذاهب الى المضي قدما وفتح ملف config.php. كما اتضح، والكثير مثل في وقت سابق من هذا المصطلح، قمت بتضمين حاد CS50 نقطة ح مع pset7. في المثال اليوم، وأنت تسير أن تفعل ما يعادل ذلك مع بيان تتطلب أن فعالية تشمل هذه عدة خطوط. ذلك أن يكون واضحا، وهذا هو يسمى ملف ملف config.php. وتلاحظ ما تقوم به. انها على ما يبدو تفعل شيئا تحول على الرسائل خفي، الخطأ بحيث يمكنك رؤيتها في المتصفح. انها، ثم، على ما يبدو تتطلب ملفين أخرى لذلك هذا هو مثل # تشمل في C، وهذا واحد ثم رأيناك، ولقد اعتمدت على هذا يتحول على إن عربة التسوق مثل وظيفة. وهذا يعني وجود إرادة كوكي ترسل جيئة وذهابا. فلماذا هذا الاهتمام؟ حسنا، إذا كان علينا أن نعود إلى هذا دليل وفتح، على سبيل المثال، constance.php. لاحظ أن يفعل PHP الثوابت الدعم، انها ليست تماما مثل تعريف # في C. بدلا من ذلك، كنت حرفيا يقول تعريفها، وإنذار التي قمت المخزنة مسبقا أربعة ثوابت في هذا الملف. واحد لقاعدة بيانات اليوم، ل كلمة السر لاسم المستخدم الخاص بي، واسم الخادم. لذلك فان هذه ذاهبون فعلا أن تكون تشبه إلى حد ما في مشكلة تحديد سبعة. وأخيرا، وهذا هو المكان الذي أنا يذهب للحصول على بعض وظائف طيبة من الموظفين، في functions.php هي مجموعة من الرموز لدينا كتب، وأنا سرقت بعض هذه مشكلة من مجموعة السبع لهذا اليوم، أن يفعل مجموعة من الأشياء ودعونا ننظر فقط في واحد منهم على وجه الخصوص. هذه وظيفة هنا، الاستعلام، ستكون وظيفة PHP نسميه من أجل تنفيذ SQL. منذ لحظة كنا باستخدام بريس، ولكن هذا مجرد لنوع من أغراض التعلم وأغراض التشخيص ونسيان مجموعة قاعدة البيانات الخاصة بك. عند استخدام الواقع الخاص قاعدة بيانات، أنت، الإنسان، ومن الواضح لن ليتم سحب ما يصل على شبكة الإنترنت الصفحة في كل مرة شخص ما بالتسجيل. وأنت تسير لكتابة التعليمات البرمجية التي إدراج وحذف المستخدمين على الطلب، ونحن في طريقنا للقيام بذلك عن طريق وظيفة الاستعلام. إذا أنا الآن انتقل لأسفل، هناك سيكون هناك عدد قليل من أكثر الميزات. إعادة توجيه هو الذهاب الى تكون وظيفة كتبنا لك أن تسمح لك ل إرسال المستخدم إلى عنوان آخر، وتجعل من وظيفة، تماما مثل شاهدنا اليوم الاثنين، أن يجعل الواقع قالب، ولكن أكثر على هذه في شكل pset7 سيرا على الأقدام الخاصة بها. الآن، دعونا نمضي قدما ونفعل ذلك. اسمحوا لي أن أخوض في الجدول محاضراتي و نرى أن هناك حاليا شيئا هنا فقط حتى الآن، واسمحوا لي أن أذهب أيضا في بلدي الدليل العام، حيث هناك ملف واحد فقط، index.php. هذا الملف يبدو أن السوبر بسيطة في هذه اللحظة، يبدو تماما مثل هذا. يشبه إلى حد كبير كيف يمكننا توقفت يوم الاثنين. انا يتطلب هذا الملف، ملف config.php، والتي هي في يتضمن الدليل، الذي في نقطة نقطة، والدي، ثم انها مجرد تقديم هذا الملف. فما هو هذا الملف؟ دعونا فتح في قوالب بلدي form.php، وسنرى ذلك. سوبر بسيطة ويبدو أن هذا النموذج هو سوف يقدم من قبل _GET دولار أو _POST $. سريع الاختيار التعقل. حرفيا بصريا بحث الملف. طريقة يساوي المنصب. حتى انها لا تنوي استخدام عنوان URL، مثل جوجل يفعل، فإنه سيكون لنوع من اخفاء المعلومات خلف مشاهد وانها الذهاب إلى الخضوع ل ملف يسمى register.php، وهذا هو الملف نحن لم تكتب بعد ولكن هذا ما يحدث لتبدو مثل هذا. إذا ذهبت إلى صفحة منفصلة وهذا هو ما مضيف محلي / index.php يبدو. ومرة أخرى، للملقم مجرد افتراض index.php. دخول. ولهذا حيث نحن في، وماذا أريد أن أفعل ويكون قادرا على كتابة الأشياء مثل ديفيد، ومن ثم رقم هاتفي، والذي سيقول 617-555-1212 حتى الآن، تسجيل والآن لم يتم العثور register.php. لذلك أنا بحاجة لتنفيذ هذا. لذلك دعونا سوط بسرعة شيء مثل هذا الأمر. اسمحوا لي أن أذهب إلى دليل بلدي العام والقيام جي إديت من register.php، والآن انا ذاهب الى المضي قدما و بدء وضع PHP، كما فعلنا يوم الاثنين، وعلامة الوثيق PHP في و دعونا نفعل أمرين. حتى واحد، وأنا أعلم، من وقد كتب هذا النموذج، الذي أريد أن تحقق ليلي. إذا كان فارغا، مهما كانت المستعمل كتبته في حقل الاسم، ثم أنا ذاهب لأقول شيئا مثل الاعتذار المفقودين الاسم. الاعتذار، وفي الوقت نفسه، لا بنيت في شيء PHP، انها وظيفة كتبنا في functions.php لpset7 بحيث يكون لديك الوصول إليها. إلا إذا كان الحقل الآخر فارغ، العدد، ثم أنا الذهاب إلى الاعتذار لل ويقول المستخدم العدد الناقص. حفظ هذا الملف. الآن دعونا نعود إلى متصفحي، العودة إلى المنتدى حاول مرة أخرى. تسجيل. موافق. لم يحدث شيء، وهو أمر جيد. لم أحصل على رسالة خطأ. ولكن إذا بدلا من ذلك، دعونا إعادة تحميل هذه الصفحة، وليس تقديم أي شيء. اللعنة. تفعل ذلك. تسجيل. ماذا أفعل الخطأ؟ إذا فارغة، اسم $ _POST. أقول مرة أخرى؟ أوه، بالطبع. لقد نسيت أهم جزء، والتي وتتطلب ("../ يشمل / ملف config.php."). أنا بحاجة إلى الوصول إلى الاعتذار وظيفة، والتي هو السبب شيئا لم يحدث. وظيفة لا وجود لها في الواقع. لذا دعونا نحاول هذا مرة أخرى. دعونا إعادة تحميل الصفحة، انقر فوق تسجيل. موافق. هناك هو عليه. لذلك، الإخراج نحن رؤية هنا هو نتيجة الدعوة إلى الاعتذار وظيفة، سوبر بسيطة، وأنه يطبع للتو مهما أعطيها كحجة. كل الحق، لذلك دعونا نتعاون. دعونا تقديم اسمي مثل ديفيد، تسجيل، عدد المفقودين موافق دعونا توفير ذلك أيضا. 617-555-1212. تسجيل. موافق. لذلك كل شيء على ما يرام الآن، لا شيء فقط اهتمام يحدث. حتى الآن دعونا تقديم شيء أكثر اهتمام يحدث مثل هذا. اسمحوا لي ان اذهب الى بريس، ودعونا في الواقع إنشاء جدول يسمى المستخدمين، انا ذاهب الى اعطائها ثلاثة الأعمدة، وسوف أكون بسرعة خلق الهوية، ومن ثم الاسم ثم الرقم، وحقل معرف أنا سوف تترك باعتباره الباحث. حقل اسم سأشارك ترك باعتباره VARCHAR، ونحن سوف نقول 64، تعسفا إلى حد ما. عدد سأشارك لجعل، أنت تعرف لماذا؟ ونحن في طريقنا إلى دعم أعداد الامريكية هنا، لذلك أنا ذاهب لتفعل شيئا مثل شار ثم 10 حرفا الحد الأقصى للرمز المنطقة ثم سبعة أرقام. وبعد أكثر من هنا، وانا ذاهب ل تحديد السيارات الاضافة هذا المجال، جعل هذا المفتاح الأساسي، و انا ذاهب الى المضي قدما وليس تحقق أي من هذه المربعات الأخرى. حتى عندما كنت الآن أخيرا انقر فوق حفظ، وأعود إلى بلدي مستخدمي الجدول، هذا ما يبدو إذا أنا الآن فوق هيكل علامة تبويب جديدة. لذلك هذا، ليكون واضحا، هو مجرد وسيلة لبريس القول جدول قاعدة البيانات الخاصة بك لديه الهوية، واسم، وعدد مع تلك تكوينات معينة وسنقوم تجاهل بقية الحقول هناك في الوقت الراهن. حتى الآن ماذا أريد أن أفعل؟ حتى إذا ذهبت الآن الى بلدي شفرة المصدر، إذا كان كل شيء على ما يرام أريد أن تنفيذ الاستعلام التالي. تضاف الى ويمكنني فقط يقول مستخدمي أنا لا حصرا تحتاج تلك العودة القراد لو كان ليست كلمة خطيرة مثل المستخدمين. انا ذاهب الى القول الاسم، عدد، ثم أنا هنا لن كود الثابت أرقام القيم بعد. انا ذاهب الى وضع اثنين من علامات الاستفهام. وهذا هو اصطلاح في العديد من اللغات حيث إذا كنت تريد أن يكون عنصر نائب عن سلسلة وأنت تسير لاستخدام السؤال علامات، لأسباب سنقوم أعود للدردشة حول الأمن، وهنا انا ذاهب لتمرير في تلك حقلين بعد الاسم، ثم إضافة رقم، والآن قم بحفظ الملف. والآن أنا ذاهب ل النزول هنا هو السوبر ببساطة نقول rendersuccess.php، التي ستكون قالب آخر. أنا ذاهب لخلق بسرعة. Geditsuccess.php وانا فقط يقول H1 نجاح في هذا الملف. حسنا. حتى الآن، دعونا نعود إلى متصفح، حيث زرتها من قبل. دعونا المضي قدما وتأكيد أنني كتبت في ديفيد، كتبت في رقم الهاتف، تسجيل. اللعنة. ماذا أفعل الخطأ؟ هكذا اراه خطأ هنا، يكون خطأ في بناء جملة SQL الخاصة بك. اسمحوا لي أن تقفز إلى جي إديت، والسماح لي أن أعود إلى register.php، وماذا يمكنني أن حذف مهم آخر مرة؟ أحتاج هذا. كنت تريد أن تعرف أن البعض من من لاحظت وجود من قبل، لكنني في حاجة الى ذلك. حتى الآن دعونا نعود، وهذا كان مفيدا أن تراه في متصفح وهذا هو السبب في ملف config.php نحن بصق أخطاء. دعونا المضي قدما وإعادة تحميل، انقر فوق متابعة، والنجاح. وحتى الآن اسمحوا لي ان اذهب الى بلدي قاعدة بيانات هنا وانقر على المستخدمين، وتصفح، وأنا لاحظت الآن ديفيد ديك في قاعدة البيانات الخاصة بي هنا. الآن من الناحية الفنية هذا الموقع ليس بعد على شبكة الإنترنت العامة، و لذلك أنا لا يمكن أن يكون البعض الناس في وضع هنا، ولكن إذا أنا الآن أرغب في ل مثلا، بإرسال رسالة نصية نفسي. دعونا الخروج على أطرافهم هنا ونرى ما اذا كان هذا يعمل بالفعل. انا ذاهب الى المضي قدما وحذف هذا الصف وسنقوم طمس هذا في الفيديو لاحقا لذلك نحن ليس لدينا الانترنت كامل الرسائل النصية لي، وسوف نذهب الآن إلى المتصفح وسنذهب الى محاضرة ونحن سوف اكتب في مختلف عدد هنا، التسجيل، نجاح. حتى الآن، عدد بلدي هو المفترض في قاعدة البيانات، والآن الجزء الممتع. دعونا فعلا استخدام PHP للقيام شيء برمجيا، إما من الأمر خط أو من مكان آخر، والآن أنا فقط سوف يبقيه بسيط وانا ذاهب الى الذهاب الى بلدي الدليل هنا والقيام بما يلي. جي إديت النصي دعنا نقول، سنقوم يطلق عليه النص، #! / المستخدم / بن / الحياة الفطرية PHP، كما رأينا في المرة السابقة. PHP. الآن أنا ذاهب للا تتطلب يتضمن ملف config.php، على الرغم من أن هذا قد لحث على خطأ طفيف. والآن انا ذاهب الى المضي قدما ويقول الصفوف، الاستعلام، حدد نجم من المستخدمين، والآن هنا انا ذاهب الى القيام تقنية من وقت لآخر كل الصفوف صف واحد. وانا ذاهب الى القيام بشيء بسيط. Printf دعنا نقول الاسم هو هذا، وهذا العدد هو، مائل ن. والآن انا ذاهب لتمرير في الصف أقتبس اسم املك، ورقم الصف بين قوسي الإقتباس، والآن دعونا نمضي قدما ونافذة محطة بلدي شمود هذا + X لجعل هذا السيناريو قابل للتنفيذ يسمى النص. والآن دعونا تشغيل النص. موافق، لذلك التقدم. لذلك أنا قد كتبت الآن النصي سطر الأوامر، في لغة PHP دعا، التي، بسبب ذلك يتطلب خط، لديه حق الوصول إلى جميع تلك التكوين الثوابت أنني محدد. اسم قاعدة البيانات وهكذا دواليك. في الواقع، لمجرد أن تكون واضحة أن هذه ليست مجرد صدفة، اسمحوا لي أن تمضي قدما وتسجيل، سريع حقا، وشخص آخر مثل روب وسوف يعطيه رقم 555-1212. والآن، إذا كنت تشغيل البرنامج النصي مرة أخرى، لاحظ قوة ما نقوم به مع قاعدة البيانات. أنا الآن رأيت على الفور ما الأخريين الصفوف في قاعدة البيانات الخاصة بي. حتى الآن دعونا نحاول أن نفعل شيئا حتى مربي الحيوانات داخل، وهذا هو الجزء قمنا لم تختبر مقدما، حتى آخر مرة فعلت ذلك سارت الأمور منحرف فظيعة، لدينا فيديو لهذا الغرض. في الواقع، نعم، مضحك جانبا. لذلك في المرة الأخيرة، في محاضرة مثل قبل عامين، قررنا، أنا قررت أن تكون كل هذا سيكون فكرة عظيمة لتوليد رسائل البريد الإلكتروني في ديناميكيا الطبقة، وذلك باستخدام قاعدة بيانات CS50 كامل الطلاب، الذي كان قد قدم لنا أرقامهم وشركات الهواتف المحمولة الخاصة بهم والتي تقوم قد نذكر من pset0، كيفية التفكير، اتضح كان لدي خلل بسيط في برنامجي و قام الأخطاء زوجين في عام 2012، على ما أعتقد. حيث، واحد كان لي لحلقة فعلت بالضبط هذا النوع من الشيء، بالتكرار عبر قاعدة البيانات، الحصول على اسم من قاعدة البيانات، اسم من قاعدة البيانات، ومن ثم على كل تكرار تلك الحلقة وأنا أرسلت رسالة بالبريد الالكتروني. ولكن بدلا من إرسال بريد إلكتروني واحد، وأنا أرسلت بريد إلكتروني واحد التكرار الأول، واثنين من رسائل البريد الإلكتروني والتكرار الثاني، أرسل ثلاث رسائل البريد الإلكتروني والتكرار الثاني، الذي كما قد نتذكر من وجهة نظرنا مناقشة تدوين مقارب هذا يا كبير من السوء، مثل ن تربيع هو عدد الرسائل التي أرسلتها، ولكنه لم يكن حتى رسائل البريد الإلكتروني كانت الرسائل النصية. وكما تعلمون، ليس الحضور عالية السوبر في نهاية الفصل الدراسي وحتى ظننت أنه سيكون لطيف في الوقت ليقول: "لماذا ليست لك الدرجة؟" في نص الرسالة أنا أرسل إلى الصف بأكمله، وكان مضحكا لمثل 50٪ من الطبقة، ولكن ال 50٪ الأخرى، وبعضهم استثنائي، وأنا أرسلت بشكل لا يصدق الملاحظات الحلوة اعتذاري لموظفي الاعتذار عن بعد أن غاب عن محاضرة فقط هذا مرة واحدة، أليس كذلك؟ بحيث منحرف فظيعة. انطلاقا من هذه الروح، دعونا نحاول هذا مرة أخرى ولكن فقط مع رقم هاتفي. مقدما، في functions.php، لقد كتبت هذه الوظيفة هنا. انه دعا النص، و يأخذ في ثلاث حجج. عدد، الناقل، ورسالة. أنا باستخدام بيان التبديل، والتي رائعة PHP اتخاذ السلاسل، وليس فقط الأعداد الصحيحة، وأنا لم تنفذ كل الدعم لهذا بعد، لقد فعلت فقط AT & T و Verizon. لأنه تبين مع أن هذه الناقلات لديهم بريد إلكتروني إلى بوابات الرسائل القصيرة، حيث يمكنك فعلا إرسال بريد إلكتروني إلى عنوان مثل رقم الهاتف في vtext.com وإذا لم حجب المستخدم الرسائل، وأنها سوف تذهب من خلال هي رسالة نصية. الآن للقيام بذلك، وانا ذاهب لدينا لإضافة حقل واحد سريع حقا أن قاعدة البيانات الخاصة بي. انا ذاهب للذهاب إلى هيكل بلدي، وأنا الذهاب الى المضي قدما وإضافة الحقل في نهاية الجدول. دعونا انقر فوق انتقال، وأنا سوف نطلق على هذا الناقل والآن أنا ذاهب ل ترك هذا كنص شريط، ولكن يمكننا أن نكون مربي الحيوانات في المستقبل. انا ذاهب الى الذهاب بسرعة إلى مائدتي، وأنا الذهاب للتخلص من روب، لأن ذلك هو عدد وهمية، انا ذاهب للذهاب إلى تحرير هنا وأنا الذهاب لتغيير الناقل يدويا أن تكون فيريزون، التي هو، الآن وهنا. دعونا نفعل شيك التعقل سريع. دعونا تفتح لنا النصي النص الذي يشبه هذا، الناقل٪ S. نفعله أكثر من ذلك الكثير خطأ التحقق مما فعلت في عام 2012، والناقل. والآن، انا ذاهب للذهاب إلى الأمام وإعادة تشغيل البرنامج النصي. موافق. الناقل فيريزون، مما يعني الآن أتمنى أن تفعل هذا فقط. صحيح هذا العام، نأمل، هنا نذهب. حتى داخل هذه للحلقة، وأنا ستكون لدينا ليس فقط هذا printf، انا ذاهب أيضا لاستدعاء نص و استخدام هذه الوظيفة استدعاء كان يستغرق عددا، و الناقل، ورسالة. لذلك دعونا نرى، وعدد يسير ل يكون الخلاف بين قوسي الإقتباس "رقم" الخلاف بين قوسي الإقتباس "الناقل" وآخر واحد كان رسالة. لا المسمار هذا العام، منقوطة. موافق. عبرت الأصابع. دعونا نرى ما اذا كان هذا يعمل. كل الحق، لذلك. هنا نذهب. دعونا فتح الهاتف، عبور أصابعك، اللعنة. may-- متغير غير معروف يا انتظر، انتظر، انتظر، بسرعة حقيقية. بسرعة حقيقية، حقيقية سريعة. هذا هو يستحق ذلك تماما. اسمحوا لي أن انتزاع، اسمحوا لي أن انتزاع، اه-يا. شكرا لك، والنصوص لها بدأت من شخص آخر. اسمحوا لي أن تمضي قدما وتفتح حقيقية سريع، dropbox.php / البريد هنا. وضع الاستعداد. يستحق ذلك تماما. التنزيلات. OK، src8m المصدر. موافق. تحتاج سطر واحد أكثر هنا. يا هناك هو عليه، انها في Frosh الرسائل الفورية، انها في تسجيل ثلاثة. يا مرحبا، مارجو، شكرا جزيلا لك. موافق، وكنت في عداد المفقودين هذا الخط هنا. لذلك اسمحوا لي أن انتزاع بسرعة هذا سطر من التعليمات البرمجية، التي تشمل البريد أو مكتبة أنني فعلا تريد استخدامه، انا ذاهب بسرعة العودة إلى وظائف، انا ذاهب للذهاب إلى الجزء العلوي من هذا ملف ويتطلب هذا الملف أيضا، والآن انا ذاهب لعبور حقا بلدي الأصابع عندما أعود إلى الأمر النصي الخط، وهو داخل دليل المضيف المحلي اليوم. نص تشغيل. دخول. البريد. وضع الاستعداد. وضع الاستعداد. البريد. أوه، حسنا. هنا نذهب. يحصل الإلكتروني الجديد PHP الارسال. لم أفعل هذا الحق؟ اللعنة. علي: أوه، الانتظار، الانتظار، الانتظار. الوقوف إلى جانب. أعدكم، وهذا هو سيكون ذلك يستحق كل هذا العناء. العنوان. هذا هو السبب في أنني لا تجعل أمثلة الحق قبل الطبقة. لاف. فشل المستلمين التالية. دعونا نحاول شيء واحد آخر. SMTP تعيينها من إضافة عنوان، العنوان هو في الواقع ذلك. دعونا نحاول هذا الجزء الأخير في العنوان. فصيل عبد الواحد، أنا حزين حقا الآن. شكرا لك. ولكن أنا حقا أقدر كل النصوص كنت قد ترسل. كنت قد حصلت على هذا ديفيد. كنت تهب عليه. دعونا نترك الامر هناك و وسوف نصلح يوم الاثنين. نراكم بعد ذلك. DAVEN فارنهام: والآن ديب الأفكار قبل Daven فارنهام. إذا سقطت شجرة في غابة الثنائية و لا أحد حولها لC it-- [القهقهة].