[Powered by Google Translate] [هفته 8، ادامه داد]
[دیوید J. مالان] [دانشگاه هاروارد]
[این CS50.] [CS50.TV]
>> این CS50، پس از این است که در پایان هفته (8) در اینجا است.
البته ما تا به حال یک بیت از یک طوفان در اوایل این هفته،
به طوری که در حال حاضر آن است که واقعا فقط من و تو در این سالن سخنرانی،
اما امروز ما ادامه صحبت ما در مورد PHP
و در مورد برنامه نویسی وب به طور کلی، و ما نیز این ایده را معرفی
از پایگاه های داده، به خصوص به نام خروجی، که بسیار محبوب است این روزها،
در بخش زیادی به دلیل مقیاس پذیری آن و همچنین به دلیل آن که آزاد و منبع باز می باشد.
>> اما در ابتدا، نگاهی که در آن ما را ترک کردن زمان گذشته است.
به یاد بیاورید که ما در چندین نمونه انجمن ریاضی جدید الورود شد،
و این به شکل زشت بود که من با برخی از 15 سال + پیش آمد
به منظور دانش آموزان بر روی ثبت نام دانشگاه برای ورزش دانشجوی سال اول فوق
در واقع بدون نیاز به بازحمت حرکت دیگر در سراسر حیاط را به Wigglesworth
به اسلاید یک قطعه فیزیکی کاغذ زیر درب برخی از متولی.
در عوض ما نقل مکان کرد همه چیز، اما برای انجام این کار ما نیاز به استفاده از
از فن آوری های چند، بنابراین، ما نیاز به HTML، زبان نشانه گذاری ابرمتن
که دوباره این زبان نشانه گذاری که با آن شما می توانید صفحات وب ساختاری است.
>> با استفاده از یک بیت از CSS این روزها، شیوه نامه های آبشاری،
به موجب آن stylizations از صفحه وب با استفاده از نحو کمی متفاوت،
در حالی که HTML همه چیز در مورد ساختار آن بود.
ما همچنین نیاز به معرفی زبان برنامه نویسی وب است.
در این مورد، ما PHP، و استفاده از PHP است که به ما اجازه می دهد
به محتوای خروجی به صورت پویا و همچنین کارهای برنامه ریزی شده مانند انجام
ارسال ایمیل، و مورد توجه داشته باشید که ما در سمت چپ در هفته گذشته بود.
>> به یاد بیاورید که این کد برای در 2 بخش بود.
یکی، ما تا به حال froshims3.php
و این تا حد زیادی نشانه گذاری با یک فرم HTML در داخل آن بود.
کمی از CSS در اینجا در ویژگی های سبک
به طوری که شکل خود را بر روی صفحه، خواهد بود اما فراتر از آن متمرکز
ما تا به حال برخی از ورودی فرم نمایندگی، زمینه متن، چک باکس،
برخی از دکمه های رادیویی، یک منو را انتخاب کنید، و یک دکمه ارسال.
و از طریق این فرم، ما را به یک فایل است که ظاهرا نامیده می شد register3.php را مشاهده کنید.
که خود را نگاه چیزی کمی شبیه به این.
در حال حاضر، بیشتر از کد در register3.php، فراخوان، همه چیز در مورد ایمیل بود.
این کار را کمی از اعتبار از فرم که تا مطمئن شویم که ارائه شد
که زمینه در واقع ارائه شد که مورد انتظار است.
سپس ما به نام برخی از توابع پی اچ پی با استفاده از کمی نحو جدید،
حتی اگر آن را از C. قرض گرفته شده
>> این اپراتور فلش اجازه می دهد تا ما را به استفاده از چیزی به نام برنامه نویسی شی گرا است.
ما نمی خواهد که به در هر جزئیات اینجا، اما می دانم که در حال حاضر
این یک راه داشتن توابع مرتبط با اشیاء،
هستند که نوع خاصی از ساختار، همانطور که ما در C. دیدم
اما در حال حاضر، فقط در ایمان این است که به نحو صحیح به استفاده از
در هنگام استفاده از یک کتابخانه مثل این کتابخانه PHPMailer.
و سپس در پایان از این فایل به صورت پویا تولید یک ایمیل به
که به حساب jharvard@cs50.net من ارسال کردم
از حساب jharvard@cs50.net من،
و ما به اطلاع کاربر بر این اساس است که آنها را برای این ورزش ثبت شده بود.
این است که بسیار چه سایت انجمن ریاضی جدید الورود بود همه کسانی که سال ها پیش
زمانی که من آن را اجرا، اعطا شده در زبان های مختلف،
اما آن را به شما نشان می دهد که شاید این قدرت است که شما
حالا که شما می توانید خود را نه تنها به برنامه نویسی بیان
در یک سطح پایین در یک زبان مانند C، اما در یک سطح بسیار بالاتر
با این برنامه های کاربردی جهان واقعی مانند ایمیل را به واقع حل
برخی از مسائل و مشکلات دنیای واقعی است.
>> در حال حاضر، البته، حتی اگر من با استفاده از این اسکریپت برای تولید برخی از
ایمیل ها به صورت پویا از jharvard@cs50.net است، که در واقع یک حساب کاربری
که من به اینترنت دسترسی دارند، انجام می شود کاملا دقیق به ارسال
ایمیل تنها از حساب است که واقع را آن گونه که مایلید تغییر دهید،
مبادا چیزهایی که شما را در کمی آب داغ در زندگی است.
با که گفت، اجازه دهید در حال حاضر انتقال به حل یک مشکل کاملا متفاوت،
که ایالات حفظ.
در حال حاضر، چه در واقع چیست؟
HTTP، این پروتکل انتقال ابرمتن،
است که در واقع یک پروتکل بی وطن است، و این بدان معنی است که
زمانی که شما بالا بکشد چیزی شبیه به Google.com و سپس ضربه را وارد کنید
معمولا، مرورگر شما از برخی از انواع نخ ریسی نماد که پس از آن
نتایج در برخی از صفحه وب که دانلود شده،
و پس از آن است که آیکون کوچک متوقف می شود در حال چرخش، و که در واقع نشان می دهد
که HTTP نوعی از اتصال به سرور را تکمیل کرده است و این از آن است.
HTTP به این معنا که آن را حفظ نیست بی وطن است
اتصال مداوم به سرور در اسکایپ به همان شیوه می کند
یا Gchat می کند چرا که با HTTP
فرض بر این است که هنگامی که شما در ذهن یک صفحه وب که در آن.
>> در حال حاضر، در واقع این روز بر روی سایت هایی مانند فیس بوک و گوگل نقشه های
و توییتر و مانند خیلی بیشتر از پویایی وجود دارد که به موجب آن
حتی پس از آن نماد متوقف می شود نخ ریسی شما می توانید در واقع دریافت به روز رسانی های بیشتر
از سرور، توییت بیشتر، به روز رسانی وضعیت در فیس بوک و مانند آن.
اما حتی اگر این است که با استفاده از یک تکنیک است که صحبت خواهیم کرد در مورد یک یا دو هفته
شناخته شده به عنوان آژاکس با استفاده از یک زبان به نام جاوا اسکریپت،
اما در پایان روز، HTTP هنوز هم بی.
و با این حال اگر شما می خواهید به نحوی به یاد داشته باشید همه چیز در مورد یک کاربر
حتی بعد از اینکه آنها را از روی سرور خود را قطع کرده اید
PHP به شما استفاده از انجام این کار استطاعت
از آنجا که، به عنوان ما شاهد زمان گذشته، PHP شماره superglobals،
و یک superglobal، دوباره، یک متغیر خاص جهانی
که توسط وب سرور و PHP خود را به شما تحویل داده می شود.
>> شما لازم نیست که برای انجام هر کاری به قرار دادن مقادیر در آن،
و در میان superglobals ما تا کنون دیده ایم، دریافت و ارسال،
است که که در آن فرم ها به صورت خودکار برای شما قرار داده است،
همچنین به عنوان یک زن و شوهر از دیگران است که ما را دیده اند، هنوز رتبهدهی نشده است.
در داخل $ _SERVER برخی از متغیرهای خاص مربوط به خود سرور.
چه آدرس IP، پروتکل، HTTP یا HTTPS استفاده کردید،
چه روش درخواست شما با استفاده از بود و مانند آن، بنابراین برخی از جالب توجه وجود دارد،
جزئیات آبدار در مورد سرور، و در واقع، کاربر در آن وجود دارد نیز هست.
$ _cookie، که جایی است که این چیزها را به نام کوکی ها ذخیره می شوند وجود دارد.
ما زمان را در کوکی ها صرف نیست خود را امروز،
اما می دانم که در حال حاضر که یک کوکی این است که فقط یک قطعه کوچکی از اطلاعات
که یک سرویس دهنده وب می تواند بر روی یک مرورگر وب بوته
و به نوبه خود RAM خود و یا دیسک سخت کامپیوتر خود را
برای ذخیره اطلاعات مربوط به کاربر، به عنوان مثال، نام کاربری خود را
به طوری که آنها مجبور نیستند به نوع آن در هر زمان آنها وارد شوید و یا برخی از
شماره یا شناسه منحصر به فرد است که برای کاربر
به طوری که شما لازم نیست که آنها را با انواع سؤال در مورد اذیت کردن
تنظیمات در آینده است، اما اغلب مورد علاقه
در حال حاضر دلار است _SESSION.
>> این superglobal، که، مانند دیگران، به شما به طور خودکار توسط PHP دست
هنگامی که شما در حال نوشتن وب سایت های مبتنی بر PHP-
می توانید هر چیزی که می خواهید، رشته ها، اعداد صحیح را ذخیره،
نقاط شناور، ارزش ها، آرایه ها، اشیا،
واقعا هر چیزی را که شما می خواهید، و آن را به شما اجازه می دهد تا آن را در چنین راه ذخیره
که حتی اگر کاربر شما را بار مشاهده شده است در حال حاضر و پس از آن
می آید یک دقیقه از هم اکنون و یا 5 دقیقه از در حال حاضر به دلیل
زمان خود را که قبل از نوشتن مطالب لازم است برخی از لینک های دیگر
PHP اطمینان خواهد داد که هر آنچه که شما در superglobal جلسه ای که قرار داده است
یک دقیقه یا 5 دقیقه پیش هنوز هم وجود خواهد داشت زمانی که کاربر می گرداند.
و در زیر هود این superglobal است از طریق به اجرا
کسانی که همه چیز به نام کوکی ها، اما در حال حاضر، آن را فقط یک انتزاع
به موجب آن این نوع معادل برنامه ریزی شده از سبد خرید.
هر آنچه که شما، برنامه نویس، قرار داده و در آن
superglobal آرایه انجمنی وجود دارد از چند دقیقه بعد خواهد بود
تا زمانی که شما آن را حذف و یا تا زمانی که کاربر واریز مرورگر خود را در دسترس نباشد.
>> بیایید نگاهی به یک نمونه از این چیزی است که در واقع استفاده از.
در counter.php در میان تکه های امروز از کد
ما باید خط زیر است.
در آغاز از این فایل ما دسته از نظر آبی، که در حال حاضر هستند و بی.
اما در خط 13 ما یک خط جدید،
session_start، و این در واقع دقیقا همان چیزی است که آن را می گوید.
شروع جلسه است.
این شما را قادر به استفاده از آن بزرگ superglobal $ _SESSION، و آن را به عنوان ساده به عنوان آن است.
در حال حاضر، اگر ما اقدام به در خط 16 نگاه کنید، اجازه دهید سعی کنید به شکل از آنچه در این صفحه وب در حال رفتن به انجام.
اگر (isset ($ _SESSION [""]) پس از آن پیش بروید
و ذخیره در متغیر شمارنده، شمارنده حروف کوچک،
$ _SESSION [""].
این به نظر می رسد اعلام یک متغیر محلی به نام مبارزه با
در داخل از آن قرار دادن یک کپی از آنچه در داخل superglobal
جلسه در محل به نام "ضد".
دیگری، ظاهرا، این کمی شمارنده متغیر های محلی، به 0 مقداردهی اولیه شده است.
>> اما پس از آن چند خط بعد در 26 اخطار که کپی جلسه کانتر،
کلید آن، واگذار شده ارزش جدید است که ارزش فعلی آن به علاوه 1.
به طور خلاصه، این فایل به نظر می رسد به روز رسانی
شمارنده که در داخل superglobal جلسه ذخیره شده
با افزایش آن 1 است، اما آن را برای اولین بار حفظ یک کپی از مقدار قبلی
با ذخیره آن در یک متغیر محلی به نام $ ضد،
و پس از آن را در اینجا اجازه دهید ببینیم که چه چیزی باقی می ماند.
به نظر می رسد از آن بسیار HTML است.
در پایین این صفحه را در خط 37 که من آن را به بازدید از این سایت
تعداد شمارنده زمان، بنابراین ویژگی های جالب زن و شوهر در اینجا وجود دارد.
یک، این است که به وضوح یک متغیر، اما این کافی نیست که فقط با قرار دادن
دلار شمارنده در بدن از HTML خود را به دلیل البته
اگر آن را فقط در میان PHP خود را در HTML است که فرض کنیم که فقط HTML.
شما به معنای واقعی کلمه می خواهید دلار شمارنده بر روی صفحه چاپ شده است.
>> اما در عوض با انداختن را به حالت PHP
به با این قطعه نحو ما به صورت پویا می تواند یک مقدار را در اینجا درج
در روح بسیار شبیه به آنچه که ما در زمان گذشته با
قرار دادن مقادیر به رشته.
در واقع، این است که فقط یک نماد مختصر برای گفتن چیزی شبیه به این به معنای واقعی کلمه،
چاپ (ضد) و یا حتی چیزی شبیه به printf (٪ S، شمارنده)
یا حتی ممکن است شما را دیده اند، آنلاین و یا در کتاب های درسی،
یک تابع در PHP به نام اکو وجود دارد
که همین کار را، و همه از آن فقط دیگر راه نفس
از گفتن <=
در این مورد شما لازم نیست برای قرار دادن
PHP کلمه بعد از علامت سوال.
این نماد مختصر است، دوباره، چیزی است که ما فقط دیدم یک لحظه قبل
است که انعکاس برخی از ارزش است.
>> اجازه دهید ببینیم که چه چیزی نتیجه نهایی از این واقع شده است.
اجازه دهید من به فایل counter.php،
و خواهیم دید که دیوید فقط یک اشتباه را با بازی با کد وجود دارد ساخته شده است.
بیایید به تعمیر هر چه او خراب،
و خطا به نظر می رسد وجود داشته باشد، رفته، در خط 37.
با توجه به بالا از این صفحه من این سایت 0 بار سفر کرده اند.
خوب، اجازه دهید به جلو بروید در حال حاضر، و در بالای مرورگر کلیک بر روی
بارگذاری مجدد آیکون و من روی Reload کلیک کنید.
و در حال حاضر من به بازدید از سایت 1، 2، 3، 4، 5، 6، 7، 8.
و در واقع، اگر به منبع این صفحه نگاه کنید کد منبع واقعی در حال تغییر است،
و متوجه نبود کامل از هر گونه PHP، و این به دلیل
کد PHP ارزیابی شده است و یا تفسیر سمت سرور،
و به طوری که بدان معنی است که خروجی اسکریپت PHP همان چیزی است که در نهایت به مرورگر فرستاده می شود،
که در این مورد برخی از HTML خام و برخی از متن خام است.
در اینجا چه خبر است؟
>> خوب، به با خطوط نسبتا تعداد کمی از کد من قادر به ذخیره
همواره در طول این دوره از چند ثانیه، و یا اگر به اندازه کافی طولانی، ما منتظر
دقیقه، حتی ساعت، برخی از ارزش در راه است که باعث می شود HTTP
stateful به نظر می رسد به عنوان اینکه ما حفظ کرده ایم
این اتصال به سرور، و آن را فقط به خاطر سپردن آنچه که من آن را به زمان گذشته گفت،
اما در واقعیت، یک دسته کامل از پیچیدگی در رفتن در زیر هود وجود دارد
شامل کوکی هایی که PHP را قادر می سازد به من این توهم را
این سبد خرید مانند ویژگی.
در حال حاضر، به عنوان مثال پیش پا افتاده است که در آن ما فقط به ذخیره سازی یک عدد صحیح،
اما این قابلیت به بازگشت به ارزش بزرگ
زمانی که ما شروع به صحبت کردن در مورد پروژه های پیچیده تر،
در میان آنها، مشکل تنظیم 7.
این آخرین مشکل در CS50 است.
من می دانم، آن را بسیار غم انگیز است، اما چه شما این است که ما قصد داریم به این نتیجه
این بخش در واقع انتقال از ترم
از چهار چوب از C قطعا به زمینه PHP
اما در حالی که با استفاده از برخی از همان اصول
ایم برای برخی از زمان صحبت کرد.
>> هدف با pset 7 به اجرای CS50 بودجه،
است که نسخه خود را از امور مالی یاهو یا گوگل امور مالی
و یا حتی به موجب آن شما باید توانایی Etrade.com
نگاه کردن قیمت سهام برای نمادهای داده می شود، اما حتی بیشتر از آن
شما توانایی به "خرید" و "فروش" سهام
که در بورس های مختلف به دلیل به عنوان صفحه اصلی این داد و ستد
در اینجا نشان می دهد، که واقعا تا چه حد که ایم شروع
مجموعه ای از مشکل را برای شما، شما باید فرم ورود که درخواست نام کاربری و رمز عبور است.
این دکمه submit، اما پس از آن، همانطور که ما در نهایت خواهید دید.
واقعا وجود دارد هیچ چیز در زیر هود این حال به خاطر آن
باقی می ماند را برای شما به پیاده سازی قابلیت ثبت نام کاربران جدید
توانایی خرید سهام، فروش سهام،
در واقع به نگاه قیمت سهام در حال حاضر است.
>> و در واقع، این به عنوان دنیای واقعی که ممکن است از آنجا که ما
شامل یک بیت از کد است که به شما اجازه می دهد تنها با یک تابع
به پرس و جو یاهو امور مالی، که زیبا باعث می شود اطلاعات موجود آزاد
برای دنبال کردن قیمت سهام بر اساس سهام نماد یا سمبل های اخیر،
و شما می توانید قیمت سهام در حال حاضر از روز است.
اطلاعات شما در واقع دیدن در این pset خاص خواهد بود
در مورد جهان واقعی به عنوان آن را به طوری می توانید دریافت کنید که شما در واقع واسط
با سهام دنیای واقعی، قیمت های دنیای واقعی،
و ما باید ببینید که چه مقدار پول شما احتمالا می تواند باعث
بیش از چند روز بعد از بازی با مجموعه ای مشکل خود را.
>> اما اجازه دهید برای اولین بار صحنه را برای چگونه می توان به طراحی چیزی است که قطعا پیچیده تر، تنظیم کنید
از counter.php، که پیچیده تر از هر یک از نمونه انجمن ریاضی جدید الورود تا کنون،
و اجازه دهید سعی کنید به معرفی چند پارادایم در اینجا است که به ما اجازه می دهد
هر دو برای pset 7 و شاید برای پروژه نهایی خود را اگر شما وب چیزی بر اساس
برای نگه داشتن کد خود را به خوبی سازماندهی شده، برای حفظ خود عاقل،
و به یک گام به سوی همکاری، چه در پروژه نهایی CS50
و یا فراتر از آن اگر شما همچنان به برنامه ریزی چیزی در آینده.
این الگوی طراحی به طور کلی وجود دارد
در علم کامپیوتر و در توسعه نرم افزار به طور کلی
شناخته شده به عنوان MVC، مدل کنترل،
و این مخفف احمقانه است که توصیف یک ایده بسیار خوب است،
که جدایی از جنبه های مختلف از یک برنامه است.
به طور خاص نگهداری جداگانه منطق یا منطق کسب و کار یک وب سایت
به طوری که هر چیزی که شامل چیزهایی مثل
فراخوانی توابع و پرس و جو از پایگاه داده و مانند
اتفاق می افتد نه در میان HTML شما
بلکه در فایل های جداگانه، و در واقع، در این فایل وجود دارد
به طور معمول است که شما را به نام کنترل کننده
که واقعا مغز در پشت این عملیات، و ما یک مثال را ببینید
این فقط در یک لحظه.
>> یک مدل است که کد برنامه نویسی وجود دارد
که می کند صحبت کردن به پایگاه داده خود را، که مذاکرات به یاهو امور مالی و مانند آن،
و پس از آن V در MVC، دیدگاه ها وجود دارد،
همه از چیزهای که مربوط به زیبایی شناسی، فایل های که در واقع شامل
HTML شما، شاید CSS و مانند آن.
این ایده در اینجا، به عنوان این تصویر نشان می دهد، این است که کنترل
فایل، به عنوان ما به زودی خواهید دید و به عنوان شما به ویژه خواهید در pset 7،
که جهان صحبت می کند تا از طریق مرورگرهای وب خود را.
که این فایل می شود که بر روی اینترنت عمومی بازدید شده است.
اما کنترل صحبت می کند به طور بالقوه یک مدل،
که یک یا چند فایل دیگر که حاوی کد مربوط به داده ها است،
کد مربوط به پایگاه داده و مانند، و پس از آن حرف
کنترل یک یا بیشتر از سایر فایل های شناخته شده به عنوان نمایش ها
که زیبایی شناسی از یک صفحه وب، قالب های از انواع،
است که ممکن است برخی از داده ها را به عنوان ورودی است، اما در پایان روز
منطق تنها در داخل یک دیدگاه باید رندر از این داده ها،
تکرار بیش از یک حلقه و در واقع تف کردن برخی از
HTML مبتنی بر تفسیر آن و یا حتی چیزی شبیه PDF است.
>> چه خوب در مورد MVC این است که شما می توانید دیدگاه های مختلف
بر اساس نوع دستگاه، بر اساس نوع فرمت فایل است که شما در واقع
می خواهم برای نشان دادن به کاربر است.
بیایید نگاهی به چند مثال به تدریج پیچیده تر و به خوبی طراحی شده
برای اولین بار با نسخه 0 اینجا شروع می کنند.
اجازه دهید من به جلو بروید و باز کردن در دایرکتوری ما MVC امروز
فایل index.php در پوشه 0 نامیده می شود.
توجه کنید این است که یک وب سایت ساده و بسیار underwhelming فوق العاده
که مرتب سازی بر اساس نسخه 0 یک پیام خصوصی به CS50،
و توجه کنید که چگونه ما یک لینک به سخنرانی، ما باید لینک به برنامه درسی،
و اگر من به دنبال این لینک به اطلاع سخنرانی که URL
تا بالا رفتن برای تغییر lectures.php.
اگر من پس از آن لینک به 1 هفته اخطار را دنبال کنید که تغییرات URL به week1.php.
به نظر می رسد به عنوان یک ساختار سلسله مراتبی نسبتا ساده در اینجا وجود دارد.
>> اجازه دهید نگاهی سریع زیر هود چگونه این گذاشته است،
و در واقع، اگر من در فایل index.php را نگاه کنید از آن بسیار ساده است.
در واقع، حتی اگر من این یک فایل PHP به نام هیچ یک از کدهای برنامه نویسی واقعی وجود دارد.
یک نظر است که من در اینجا در پی اچ پی نوشت: خیلی از کاربر می کند پایان ندارد تا دیدن آن وجود دارد.
البته، مانند قبل، هر چیزی را که در بین تگ های PHP
می شود تفسیر، حتی اگر آن را یک «دیدگاه»، و تفسیر
یعنی به دور انداختن آن در پایان روز و در واقع
ارسال آن به مرورگر است، به طوری که همه چیز در اینجا فقط به زیبایی شناسی است.
اگر من باز به همین ترتیب lectures.php این هم فقط یک فایل hard code شده است.
این اتفاق می افتد به نام چیزی شده است. پی اچ پی،
اما واقعا عادلانه است. HTML و week1.php، week2.php
به همین ترتیب فقط نشانه گذاری است، به طوری که یک دسته از کاستی های این طرح وجود دارد.
در یک آن، مقدار زیادی از کپی / چسباندن است.
حتی اگر تنها چیزی که در حال تغییر در بین این فایل ها لیست نامرتب است،
برچسب ها لی، من با وجود این نوع توضیحات، HTML، سر،
عنوان، بدن نزدیک، نزدیک HTML و بیشتر
در هر فایل، به این معنی که اگر همیشه می خواستم بازسازی
این صفحه وب و یا restylize من باید بروم و تغییر
تمامی این فایل ها را به صورت دستی و یا با بعضی از گسترده پیدا و جایگزین.
>> بیایید گام به سوی یک طراحی دقیق، دیگر فکر کردن در نسخه 1 در اینجا
به موجب آن در من است که ما را گنجانده ام به طوری که شما می توانید بازی همراه با
این فراغت خاطر بیشتر در اخطار خانه که ما را در اینجا
خلاصه ای از فایل های موجود در نسخه 1 این سایت،
و آن را به نظر می رسد که من آن را بر خودم را به عامل
برخی از کد مشترک، header.php را و footer.php را.
خوب، اجازه دهید نگاهی به آنچه در داخل برای اولین بار از آن.
header.php که آشنا به نظر می رسد،
اما توجه کنید که در آن آن را دریافت می کند قطع؟
بعد از خط 19، به طوری که هر آنچه را که معمول بود
از فایل index.php فایل ها، lectures.php،
week1 و week2.php از مثال قبلی است.
چه من را کپی کنید و همه چیز را برش بود که به همه کسانی که فایل های مشترک بود،
آن را در یک فایل هدر جداگانه، و به همین ترتیب در فایل footer.php
اصل من اعمال می شود که به موجب آن تنها خطوط جالب
در فایل footer.php آیا این دو، بدن نزدیک و نزدیک HTML.
>> اما این به این معنی در حال حاضر این است که در نسخه جدید
اطلاع index.php را بسیار ساده تر می توان آن را دریافت کنید.
اعطا شده، کمی مرموز به دنبال کمی کمتر بصری
به دنبال بالا به پایین است، اما خدای من، همه از آن افزونگی در حال حاضر از بین رفته اند.
ما نیاز به استفاده از یک تابع PHP به معنای واقعی کلمه به نام نیاز تا بالا،
است که بسیار یادآور، یاد، از C # شامل مکانیسم.
ما نیاز به header.php را در بالای صفحه.
ما نیاز به footer.php را در پایین، و تنها چیزی که متفاوت است.
و یا ویژه در مورد این فایل به این معنی بود که به صورت منحصر به فرد به آن است.
اگر من پس از آن به، بگو، lectures.php، همین اصل صادق است.
باز هم، بعضی از نظرات تا بالا، اما بعد از آن من نیاز به هدر، نیاز به بالا و پایین صفحه،
و در بین آن فقط محتوایی که در واقع تغییر است.
و اگر ما را به 1 هفته و هفته نگاه 2 ما رو میدیدیم
که در اصل همان اعمال شده بود وجود دارد.
خب، ما کاملا انجام نمی شود وجود دارد.
>> بیایید نگاهی به نسخه ی 2، که دارای یک ساختار مشابه،
اما متوجه حال حاضر من چیز دیگری معرفی شده است.
در خط 10 به من معرفی helpers.php
که ظاهرا شامل توابع کمک کننده است.
یک تابع کمکی است به طور کلی عملکرد نسبتا کوتاه
که تو می نویسم برای کمک به شما را در مکان های مختلف،
و اجازه دهید ببینیم که چه چیزی در داخل helpers.php.
در این مورد، به نظر می رسد مانند آن دارای 2 توابع.
به یاد بیاورید از روز دیگر با یک مثال مکعب ما
شما می توانید وظایف خود را در PHP تعریف، و آنچه که من انجام داده ام این است که از من
توابع تعریف شده به نام رندر بالا و پایین صفحه و رندر هدر،
اول طول می کشد که یک پارامتر به نام داده ها،
که به طور پیش فرض مقدار یک آرایه خالی است، به عنوان پیشنهاد وجود دارد،
و ما در واقع می تواند این را حتی بیشتر موجز نوشتن در آخرین نسخه از PHP
گفت براکت مربع باز، بسته براکت.
این بدان معناست که یک آرایه خالی از اندازه 0 است، اما با این وجود یک آرایه.
>> این تابع عصاره کمی خاص است که در آن
آنچه در آن می کند این است که آن را به عنوان آرگومان آن طول می کشد یک آرایه انجمنی
که 0 یا چند جفت ارزش کلیدی دارد، و در صورتی که دارای یک کلید از کفش
و یک مقدار از نوار تابع عصاره
ایجاد یک وضعیت که در آن در حال حاضر، به عنوان خط 11
شما باید یک متغیر محلی به نام دلار صنایع غذایی است که ارزش بار.
و اگر شما کلیدهای بیشتر و مقادیر در آرایه داده بود،
به همین ترتیب آنها را به دامنه های محلی استخراج
یا فضای نام به طوری که فایل footer.php و
اینجا کلیک کنید یا با همان ایده را به طوری که header.php را
دسترسی به آن متغیر است.
در واقع، به من اجازه باز کردن دوباره header.php را
و جلب توجه به در حال حاضر آنچه که آن را مانند در این نسخه به نظر می رسد.
>> به جای سخت و برنامه نویسی CS50 عنوان عنوان برای هر صفحه
توجه به پویایی که ممکن است در حال حاضر.
در خط 5 من انعکاس یک متغیر عنوان،
اما در ابتدا من گذشت که متغیر به عنوان یک تابع به نام htmlspecialchars.
نام احمقانه برای یک تابع، زمانی که در آن است، اما این واقعا چیزی است که آن را می گوید.
این تضمین می کند که هر شخصیت های خاص
در رشته که در منتقل می شده است به درستی فرار HTML.
این است که در واقع یک راه اجتناب از چیزی به نام کراس سایت اسکریپت حمله
به موجب آن کسی می تواند مخرب و یا به طور تصادفی
تزریق HTML خود را به وب سایت شما
با چسباندن را به نوعی، به عنوان مثال،
چیزی است که شما کاملا انتظار، به ویژه کد جاوا اسکریپت،
به عنوان صحبت خواهیم کرد در مورد یک هفته یا دو.
>> این header.php که در حال حاضر، آن را مشاهده
به این معنا که به آن اجازه می دهد تا شما را به نمایش زیبا از محتویات برخی از مجموعه داده است.
اما به طور خاص، آن را به یک الگو است.
این نوع از چاپ اوزالید که برای کپیه نقشه و رسم های فنی بکار میرود و در حال حاضر از آنچه که ما می خواهیم هدر هر صفحه شبیه،
اما برخی از پویایی که در آن ما می خواهیم این عنوان را به صورت پویا قرار داده وجود دارد
بر اساس متغیر عنوان
که استخراج شد، زمانی که ما به نام دوباره،
رندر هدر تابع است.
در حال حاضر، اگر ما در پایین صفحه رندر نگاه کرد، در واقع وجود دارد که حق بسیار استفاده نمی کند در حال حاضر
زیرا در فایل footer.php هیچ پویایی آنچه وجود دارد.
تواند وجود داشته باشد، اما در حال حاضر آن را به یک لیست کد سخت 2 برچسب ها:
اما این ایده همین امر، به طوری که در واقع نشان می دهد که چرا
وقت ما هدر هدر رندر و تابع رندر بالا و پایین صفحه؟
اجازه بدهید من به جای آن در حال حاضر به نسخه 3،
و در نسخه 3 در یاران، تصمیم گرفتم آن را ساده و حتی بیشتر است.
>> اجازه دهید من یک رندر تابع.
اجازه بدهید من آن را یکی دیگر از استدلال، این بار به نام الگو
است که به معنای به نام الگو
و پس از آن من مغرورانه الحاق. پی اچ پی به ارزش این متغیر،
و پس از آن در صورت وجود foo.php، bar.php یا header.php را و footer.php را،
پس از آن من قصد دارم به جلو بروید و استخراج داده های متغیر
و پس از آن این مسیر نیاز دارد.
به عبارت دیگر، استفاده از این در حال حاضر، اگر من باز کردن فایل index.php
توجه کنید که من دیگر هدر رندر را صدا نمی زنم.
من فقط تماس بگیرید ارائه است، اما من در ارزش به نقل از هدر عبور
را آشکار کند که الگو من در واقع می خواهم برای بارگذاری.
>> سپس در اینجا آنچه که من انجام می دهند اطلاع می دهد.
من عبور به صورت پویا در یک کلید از عنوان،
ارزش CS50، و این هم، همانطور که قبلا دیدیم،
می تواند موجز در آخرین نسخه PHP ساخته شده است
جایی که من می توانید از تابع آرایه ای با براکت جایگزین،
که من پیشنهاد می کنم حتی بیشتر قابل خواندن است و قطعا
کمی راحت تر به نوع.
و البته، با تماس رندر بالا و پایین صفحه در پایین،
ما را خسته نکنید عبور در یک آرگومان دوم در همه، هیچ آرایه های انجمنی،
چون داخل هیچ چیز پویا که بالا و پایین وجود دارد.
این فقط به برخی از تگ های نزدیک برای HTML است.
خوب، ما در حال برداشتن گام های واقعا نسبت به تمیز کردن همه چیز در اینجا،
اما به من اجازه باز کردن 2 نمونه نهایی.
توجه کنید که این یکی، شماره 4، من یک تصمیم آگاهانه در حال حاضر ساخته شده است
برای بهبود بر مثال قبلی در نهایت با استفاده از برخی از سلسله مراتب به فایل های من.
>> توجه کنید که در این خلاصه، در این من خواندن، من معرفی
شامل پوشه ها و دایرکتوری قالب
مطالب که در حال رفتن به چیزهایی که من می خواهم به
و از قالب هایی که من می خواهم به ارائه، به ترتیب.
این است که واقعا من رو مقعد و تلاش برای نگه داشتن همه چیز مرتب،
نگه داشتن فایل های مرتبط با هم، اما نتیجه نهایی
این است که ما در حال حاضر نصب کمی tidier، اما ما باید به خاطر داشته باشید در حال حاضر
به عنوان مثال، در فایل index.php
هنگامی که ما نیاز به helpers.php فایل
ما در حال حاضر نیاز به آن را از طریق شامل / helpers.php
به جای تنها گفتن helpers.php چرا که در حال حاضر آن را در واقع در یک دایرکتوری فرعی است.
در حال حاضر، به عنوان یک به کنار، شما در این مثال و بعضی دیگر را ببینید
توابع مانند نیاز به، نیاز به یک بار.
در واقع خود یک تابع به نام وجود دارد، و همه آنها باید رفتار کمی متفاوت است.
در اینجا من می گویند یک بار را فوق العاده روشن است که من فقط می خواهم کسانی که
یاران شامل در پروژه من یک بار.
اما اگر من دقیق و اگر من در واقع از طریق منطق من فکر درستی
کافی بیش از حد فقط می گویند نیاز به بالا
تا زمانی که من خودم به طور تصادفی نیاز است که همان فایل در جای دیگر.
در واقع، این یک راه کمی کارآمد تر از انجام کارها و سپس با استفاده از
نیاز به یک بار، تا من آن را تر و تمیز به فقط نیاز است.
>> بیایید یک قدم بیشتر.
این آخرین عنوان مثال در حال حاضر، نسخه 5، دارای سلسله مراتب پوشه حتی پاک کننده است.
توجه داشته باشید که آنچه که من انجام داده ام اینجا در خواندن در این نسخه نهایی
در حال حاضر من دایرکتوری HTML من، که من تا به حال تمام این مدت،
اما در درون وجود دارد در حال حاضر تنها فایل index.php، lectures.php است،
week1.php و week2.php.
شامل دایرکتوری در حال حاضر در کنار دایرکتوری HTML زندگی می کند،
به طوری که در همان سطح به عنوان یک خواهر و برادر، پس به صحبت می کنند.
بنابراین آیا این پوشه قالب است.
غذای آماده کلیدی در اینجا این است که من به معرفی ساختار کمی بیشتر،
اما ویژگی های کلیدی در حال حاضر که تنها فایل
که نیاز به وب سایت قابل دسترس، عمومی نشانی
URL بر روی اینترنت عمومی را در پوشه HTML من هستند.
>> در همین حال، سایر فایل ها، helpers.php، footer.php را،
header.php را، که مسلما شاید حساس تر هستند،
شاید یاران در واقع برخی از نام کاربر و کلمه عبور و یا برخی از فکری
اموال من، توابع، من واقعا نمی خواهم که دیدن دنیا را، حتی اگر به طور تصادفی.
این تمرین خوبی است برای حفظ از دایرکتوری های عمومی HTML
هر فایل است که خود را به عموم مردم است.
همه شما باید در این مورد انجام دهد زمانی که به دنبال، به عنوان مثال،
فایل index.php راهنمای HTML،
توجه کنید ما فقط باید کمی بیشتر دقت کنید در هنگام نیاز
یا نیاز به یک بار این فایل است.
من نیاز به انجام ... برای رفتن به دایرکتوری پدر و مادر،
پس از آن انجام / شامل / helpers.php
به شیرجه رفتن به پایین در فایلی که من در مورد مراقبت از.
>> هر گونه سؤال و سپس در MVC
این تجسم نسبتا ساده آن است؟
و به من اجازه روشن است که ما متمرکز بسیار کمی در
V در اینجا، دیدگاه ها و مقاطعه از این قالب.
ما واقعا نمی متمایز M از C درست نشده است.
در واقع، واقعا هیچ M در اینجا وجود دارد، و حتی C ما
کنترل کننده، انجام همه که بسیار است، اما شما خیلی بیشتر
آشنا با هر دو از آن 2 نامه از MVC،
یا نه، شما خیلی بیشتر آشنا با C
در MVC برای مجموعه مشکل 7، به طوری که بیشتر از آن در افق وجود دارد.
پرسش و پاسخ؟
در واقع هیچ کس در اینجا وجود دارد.
>> خوب، اجازه دهید در حال حاضر به موضوع دوم و نهایی برای امروز حرکت می کند.
این مقدمه از یک پایگاه داده است.
تا این نقطه، ما تا به حال چند راه از ذخیره سازی داده ها.
ما استفاده کرده ایم متغیر است.
برگشت در فایل C، I / O بحث و گفتگو ما شروع به استفاده از فایل های متنی
و با استفاده از فایل ها مانند fprintf، و پس از آن ما حتی شروع
صحبت کردن در مورد CSV فایل کمی، ارزش کاما از هم جدا،
پس از این به ما اجازه داده های ذخیره شده
یا غیر مداوم و یا مداوم است.
اما حتی CSV ها واقعا منجر به جستجو
و قرار دادن و حذف است.
این واقعا احمقانه یک فایل متنی با کاما جدا شده
سطر سطر سطر سطر، بنابراین اگر شما می خواهید
جستجو که فایل شما می توانید انجام دهید واقعا جستجوی خطی است.
شما باید برای شروع در بالای فایل، خواندن همه چیز در،
و به دنبال برخی از ارزش های مورد علاقه.
اگر شما می خواهید به آن وارد شما را مجبور به انجام کاری مشابه،
تکرار بیش از آن و قرار دادن در یک مکان خاص،
و در واقع، شما باید برای انجام تمام منطق جستجو خود را.
>> شما می توانید الگوی تطبیق هوشمندانه بر روی یک فایل CSV مگر اینکه شما خودتان نوشتن کد نمی کنند.
شما می توانید از یک فایل CSV تصفیه انجام نمی
مگر اینکه شما خودتان نوشتن کد.
آیا آن را نمی شود خوب اگر کسی دیگری را در همه این تلاش
در واقع در جستجوی آسان و درج آسان
و حذف و به روز رسانی و غیره؟
که این دقیقا همان چیزی است که یک پایگاه داده است.
SQL زبان پرس و جوی ساخت یافته است، در عین حال یک زبان دیگر
که ما در حال معرفی امروز در اینجا، اما این بیش از حد است که نسبتا در دسترس
و چیزی است که ما واقعا به انجام این کار فقط از آن شهامت برخی از برجسته ترین
ویژگی به طوری که برای pset 7، و اگر شما وب چیزی بر اساس
پروژه نهایی خود را، شما باید توانایی خود را ابراز
در پرس و جوها داده است.
شما از این توانایی برای ذخیره کمی و یا مقدار زیادی از داده ها
در راه خیلی ساخت یافته تر است که در پایان روز از
زندگی خود را آسان تر چرا که با SQL شما می توانید خود را بیان
بسیار دقیق تر، خیلی بیشتر از متد به منظور
برخی از زیر مجموعه از داده ها از یک مجموعه بزرگتر از اطلاعات است.
>> شما می توانید از یک پایگاه داده فکر می کنم، در این مورد، یک پایگاه داده SQL، واقعا مانند اکسل
و یا شماره ای که در آن یک صفحه گسترده (spreadsheet)،
و یا شاید های متعدد گسترده و گسترده، البته،
دارای سطر و ستون، و این به دلیل
پایگاه های داده SQL، رابطه ای، رابطه ای به این معنا
که آنها ذخیره داده ها در این جدول،
سطر و ستون است.
آنها بالاتر نمایشی از چیزی شبیه به یک صفحه گسترده (spreadsheet)،
و یک صفحه گسترده (spreadsheet) است که به معنای به توسط انسان مورد استفاده قرار گیرد.
یک پایگاه داده به منظور استفاده توسط یک برنامه نویس
نوشتن کد در مقابل آن، به طوری که تجسم یک پایگاه داده
رفتن به صورت خط فرمان.
>> یکی از محبوب ترین پایگاه های داده رابطه ای خارج وجود دارد، باز هم، خروجی،
که زیبا و رایگان است، بسیار بالا انجام، و این چیزی است که
فیس بوک خیلی زود در و تا حدی استفاده می شود، هنوز امروز
برای ذخیره بسیاری از اطلاعات خود را، و ما را در یک لحظه را ببینید
که با استفاده از دستورات نسبتا ساده
ما می توانیم داده ها، داده ها را وارد کنید، اطلاعات به روز رسانی را انتخاب کنید،
حذف داده ها و مانند آن، اما خوشبختانه، رابط کاربر پسند تر وجود دارد
از درست تایپ کردن در اعلان سیاه و سفید در اینجا.
ما می خواهیم برای pset 7 و فراتر از یک ابزار رایگان به نام phpMyAdmin به استفاده کنید.
نام تصادفی است.
این ابزار اتفاق می افتد به در PHP اجرا می شود،
اما اساسا بی ربط است.
چه مفید در مورد phpMyAdmin به این است که آن را به یک ابزار مبتنی بر وب است.
ما آن را در لوازم خانگی برای شما از قبل نصب شده است،
و با آن شما می توانید جداول در یک پایگاه داده ایجاد کنید،
شما می توانید داده ها، وارد کردن حذف داده ها، و به طور کلی
اطلاعات خود را در نسبتا محیط کاربر پسند.
کاربران شما می رویم به استفاده از phpMyAdmin به.
>> این است که واقعا فقط یک ابزار اداری و یا توسعه دهنده
که برای دیدن و بهم زدن در اطراف داده های خود را و بفهمند که چگونه به آن ساختار،
بسیار شبیه به شما به خودتان ممکن است یا اکسل استفاده از اعداد،
اما برای رفتن به یک راه عالی از تجسم آنچه که در زیر هود
به طوری که شما می توانید تمرکز بر روی حل مشکل جالب و نه چندان
دستورات محرمانه است.
بیایید نگاهی به یک نمونه از داده هایی را که ممکن است ذخیره می شود tabularly
در یک پایگاه داده رابطه ای است.
در اینجا یک مثال از جمله.
در حال حاضر، متاسفانه، phpMyAdmin به اشتباه در طرف پرتاب از راه بیش از حد بسیاری از واژه ها
و گرافیک در شما است، اما اگر شما با سنگ تیز کردن فقط در
ستون ID، نام کاربر ستون، و ستون مخلوط،
این است که به طور موثر یک صفحه گسترده (spreadsheet)، اما آن اتفاق می افتد یک قطعه
از داخل جدول از دستگاه
با استفاده از یک فایل است که ما شما را با ارائه در مجموعه مشکل 7.
>> به طور خاص، ما شما را به یک فایل که نشان دهنده
جدول یک کاربر است، به طوری گسترده شامل کاربران با 3 ستون،
که یکی از آنها یک ID منحصر به فرد و با شروع از 1 و در حال افزایش مییابد پس از آن است.
ستون دوم نام کاربری است، و کسانی از شما که هکر ها،
نسخه هکر برای pset 2، ممکن است برخی از این نام کاربری حداقل تشخیص دهد.
در سمت راست کلمه عبور، اما آنها رمزهای عبور تحت اللفظی نیست.
آنها رشته هش آن، پس از آن معلوم
که ذخیره سازی کلمات عبور در یک پایگاه داده، یک ایده واقعا بد است.
همه شما احتمالا در برخی از نقطه از برخی از وب سایت به عنوان خوانده شده
یا پایگاه داده برخی از شرکت های که در معرض خطر است، و سپس شما باید به
تغییر رمز عبور خود را، شما نیاز به بازپرداخت بر روی همه چیز
چرا بعضی از پسر بد در واقع به حساب شما به عنوان یک نتیجه شکست.
>> ذخیره سازی کلمات عبور در متن روشن، تکه تکه کردن در یک پایگاه داده
کاملا نادان است، و در عین حال آن را به شدت سرگرم کننده
سپس به خواندن در مورد برخی از شرکت ها به خوبی شناخته شده است
گاهی اوقات در مطبوعات پایگاه داده که در معرض خطر هستند،
و این قسمت خنده دار نیست، اما واقعیت این است که پایگاه داده های حاوی تکه تکه کردن
کلمه عبور مضحک است، زیرا به معنای واقعی کلمه با یک خط کد
شما می توانید در برابر این تهدید خاص محافظت می کند، و این چیزی است که ما در اینجا انجام داده ام.
حتی برای جعلی ما نسخه کمی CS50 بودجه
رمزنگاری رمزهای عبور فقط برای اندازه گیری خوب، و این واقعیت که
همه از این کلمات عبور شروع با 1 $ $ فقط یک قرارداد است.
این تنها بدان معنی است که آنها در حال رمزگذاری شده و یا واقعا درهم،
است که مانند یک تابع رمزنگاری یک طرفه
به موجب آن شما می توانید اثر خود را با چیزی به نام MD5 معکوس نیست.
>> این واقعیت که 50 است بعد از آن بدان معنی است که یک مقدار نمک
از 50 برای هش کردن همه از این کلمات عبور به جز یک مورد استفاده قرار گرفت.
معدن، البته، همانطور که شما می توانید ببینید، HA،
با استفاده از نمک های مختلف، به طوری که کسانی از شما که کمی افتاد بلند شد
شاید در هکر 2، که ممکن است در نتیجه ما با داشتن استفاده می شود
مخلوط متفاوت از دیگران به دلیل رمز عبور من این است که در واقع همان
به عنوان برخی از کاربر های دیگر وجود دارد.
در واقع، اگر شما شده است در انتظار همه این هفته برای پیدا کردن
چه کسانی کلمه عبور کلمه عبور است که شما به چالش کشیده بودند
به کرک نسخه هکر از مجموعه مشکل 2، به طوری که بیش از حد هیچ مشکل.
در واقع، مالان همان jharvard بود،
اما اگر ما به آنها نگاه متفاوت است.
>> تمرکز بر jharvard در زرشکی، چرا که آنها متفاوت شور شدند.
الگوریتم پرتلاطم در راه است که
هش ارزش، ارزش های رمزگذاری شده به نظر می رسد کمی متفاوت است
چون ورودی کمی متفاوت بود، اما رمز عبور در قسمت پایین هود
هنوز هم در نهایت قرمز بود.
در حال حاضر، که مراقبت در مورد این؟
خب، ما شما را با فراهم کردن کاربران نمونه، نمونه نام کاربر
و رشته هش کلمه عبور خود را به طوری که شما در واقع برخی از
مشتریان برای CS50 مالی زمانی که شما اول از زمین با استفاده از کد شما.
شما باید برای پیاده سازی جداول در داخل خروجی زیر، در داخل پایگاه داده است.
شما باید برای ایجاد صفحات گسترده، به طور موثر است، اما ما تصمیم گرفت تا این یکی را
به شما آغاز شده است، و شما خواهید دید که مشکل خصوصیات مجموعه
پیاده روی شما را از طریق روند واردات این جدول
و همچنین توضیح برخی از ویژگی های،
و شما همچنین می خواهید که ما شما را با ارائه کد
که مسئولیت رسیدگی به رمزنگاری یا رمزگذاری از این کلمات عبور،
بنابراین شما لازم نیست که به نگرانی بیش از حد در مورد MD5 یا مانند است که در واقع همه چیز در مورد.
>> بنابراین، SQL، زبان پرس و جوی ساخت یافته است.
این کاملا به سادگی، از زبان ما در مورد شروع به استفاده از در pset 7
و شاید فراتر از درخواست اطلاعات از برخی از پایگاه داده است.
داده است، دوباره، tabularly در این جداول رابطه ای، ستون ها و ردیف ها ذخیره می شود.
اما با استفاده از برخی از نحو نسبتا ساده مانند حذف،
INSERT، UPDATE را انتخاب کنید و می توانید دقیقا همان است که ما انجام می دهیم.
ما می توانیم از پایگاه داده حذف، درج،
به روز رسانی اطلاعات، و همچنین به عنوان انتخاب کنید، که، بازیابی اطلاعات از پایگاه داده است.
چگونه ما در مورد انجام این کار بروید؟
اجازه بدهید من به جلو بروید به دستگاه.
اجازه دهید من بالا بکشد http://localhost را،
که، باز هم، دستگاه محلی خود است.
که نام کاربری پیش فرض آن است.
و اجازه دهید به من / phpMyAdmin به.
این اتفاق می افتد به عنوان یک URL خاص که دستگاه پیش به درک
که بلافاصله به من دهید نام کاربری و رمز عبور می باشد.
>> طبق معمول، من قصد دارم به نوع jharvard و قرمز،
اما متوجه باشید که حساب کاربری مدیر را بر روی کامپیوتر.
این فقط یک تصادف است که نیز وجود دارد یک jharvard ثبت نام برای CS50 بودجه است.
Jharvard، قرمز، ورود به من می دهد رابط کاربری است که ما شاهد
یک نگاه اجمالی از یک لحظه پیش، و آن را کمی قریب به اتفاق در ابتدا،
اما مطمئن باشید، شما در حال رفتن هرگز به به کلیک بر روی لینک در این ابزار است.
شما در نهایت با استفاده از یک زیر مجموعه کوچک هستند که فوق العاده مفید است.
برای اولین بار که از پایگاه داده است تا در اینجا.
اگر من به به پایگاه های داده، توجه کنید که من را وادار به ایجاد یک پایگاه داده است.
این است که با ایجاد یک فایل جدید اکسل، موثر است.
من قصد دارم به جلو بروید و به این سخنرانی، و من فقط به چشم پوشی از زمینه وجود دارد، تلفیق است.
این است که به نمایندگی از داده ها را در آن،
و من قصد دارم به روی "ایجاد" کلیک کنید، و در حال حاضر متوجه به من اجازه رفتن به ایجاد
در سمت چپ که در آن می گوید: هیچ پایگاه داده ها
من به زودی باید پایگاه داده سخنرانی را ببینید.
>> اگر من در حال حاضر در سمت چپ، پایگاه داده سخنرانی کلیک کنید،
متوجه زبانه من کمی تغییر.
من ساختار، SQL، صادرات، واردات و بعضی چیز های دیگر.
ساختار خیلی خالی است.
بدون جداول موجود در پایگاه داده، به عنوان آن را می گوید،
بنابراین ایجاد یک جدول به شما اجازه می دهد، و اجازه دهید به جلو و ایجاد یک جدول
مانند دانشجویان، و چگونه بسیاری از ستون می خواهیم؟
بیایید این ساده نگه دارید و اجازه دهید برای هر دانش آموز
شماره ID، نام و آدرس ایمیل.
>> ما می خواهیم آن را ساده نگه دارید که می خواهم، به طوری که 3 ستون، به.
فرم است که شما اینجا را ببینید در حال حاضر کمی کثیف و طاقت فرسا،
اما ما فقط باید از طریق آن سطر به سطر، به طوری که واقعا به سرعت اجازه دهید
ستون برای اولین بار در این پایگاه داده به نام ID شناسه منحصر به فرد است.
این یک عدد صحیح خواهد بود. من در واقع می تواند طول و ارزشها را نادیده گرفت.
بین المللی است برای رفتن به 32 بیت بدون توجه به آنچه شما در آن وجود دارد را تایپ کنید، پس اجازه ترک آن را خالی.
مقدار پیش فرض، من می توانم آن را پوچ، به عنوان تعریف شده است.
من قصد دارم به ترک است که به تنهایی. بیایید در مورد مقادیر پیش فرض نگران نباشید.
بیایید حرکت در اینجا به سمت راست، ویژگی های.
این جالب است.
بیایید جلو بروید و تا حدودی خودسرانه می گویند که شناسه باید بدون علامت است.
اجازه دهید که هیچ اعداد منفی هدر ندهید.
>> بیایید پست 0 به 4 میلیارد دلار، دادن و یا گرفتن،
و پس از آن را به هر یک از این زمینه ها را لمس نه تنها هنوز بیش از وجود دارد،
اما بعد از آن اجازه دهید من در نوع نام را در اینجا،
و پس از آن دیگر ایمیل، پس گرفتن ایمیل
و نام، بدیهی است که عدد صحیح نیست، بنابراین تغییر این به حوزه های مختلف.
به نظر می رسد VARCHAR، متغیر طول کاراکتر،
مانند یک رشته در یک پایگاه داده SQL
اما با طول متغیر است، و شما در واقع باید آن را را در پیش
حداکثر طول رشته، بنابراین من قصد دارم تا حدودی خودسرانه
نوع کنوانسیون 255 کاراکتر.
من کاملا می تواند 32 می گویند. من می توانم 1000 می گویند.
شما نوع نیاز به تصمیم گیری برای خود را بر اساس جمعیت شما چیست
نام و نام خانوادگی طولانی ترین دانش آموز و با که عدد یا کمی بزرگتر،
اما چه خوب درباره VARCHAR این است که آن را به هدر
255 کلمه در ادامه متن بر روی نام هر دانش آموز است.
اگر DAVID آن را نمی خواهید به استفاده از کل 255 کلمه در ادامه متن
اما این حد بالا است، به طوری که من با 255 فقط با کنوانسیون برو،
اما ما می تواند موضوع بحثی است که به برخی از ارزش پایین تر، و برای آدرس ایمیل
فقط به سازگار 255، اما باز هم، ما می توانیم بحث همان است.
اما من قصد دارم به یک چیز دیگر در اینجا در سمت راست است.
>> آنچه در مورد یک پایگاه داده قدرتمند است که می تواند بسیاری از بلند کردن اجسام سنگین را انجام دهد
یا کار پیچیده ای را برای شما.
به طور خاص، من واقعا اهمیتی نمی دهند چه تعداد ID های دانشجویان من هستند.
این فقط به معنای به یک شناسه منحصر به فرد را در یک پایگاه داده
بنابراین من باید 32 بیتی نمایندگی موجز که دانش آموز
به طوری که من به برخی از راه های منحصر به فرد آنها را شناسایی
مبادا 2 داویدز، به عنوان مثال، در یک کلاس وجود دارد.
در واقع، من قصد دارم به بررسی این جعبه AI، افزایش خودکار،
به طوری که پایگاه داده، خروجی زیر، چهره های خارج
چه ID هر دانش آموز تازه قرار داده است برای رفتن به.
من حتی نمی دارند که در مورد مراقبت در کد من،
و من هم می خواهم چیزی را انتخاب کنید در زیر منوی اول.
شاخص کشویی اولیه، منحصر به فرد،
فهرست و متن کامل است.
شاید شما می توانید آنچه که یک زن و شوهر از این چیز ها حدس می زنم،
اما به نظر می رسد که در پایگاه داده های رابطه ای
شما برنامه نویس یا مدیر پایگاه داده به preemptively
دادن تذکرات به پایگاه داده به چه زمینه هایی
در یک جدول خاص کمی است.
>> به عنوان مثال، در این مورد من قصد دارم بگویم که ID
است برای رفتن به یک شاخص اولیه، در غیر این صورت به عنوان یک کلید اولیه شناخته شده است.
این بدان معنی است با تعریف این است که ID پس
منحصر به فرد دانش آموزان در این جدول را تشخیص دهد.
هیچ دانشجویی را ID همین دلیل من اعمال این محدودیت و یا این شاخص داشته باشد.
علاوه بر این، آنچه این است که رفتن برای من انجام دهید این است که آن را برای گفتن
خروجی زیر که ID خاص است.
من به خصوص در مورد ID مراقبت، پس جلو بروید و انجام سحر و جادو ساختار داده فانتزی،
ساخت تا به نوعی از درخت است.
به طور معمول آن چیزی به نام B-درخت، که ما در هفته به نظر نمی آید به پیش
اما این یکی دیگر از چنین ساختار داده ها در روح شبیه به درخت دودویی
و تلاش می کند که ما در نگاه کرد، اما آن را برای گفتن
به پایگاه داده این زمینه بسیار مهم است که من احتمالا
می خواهید می شود قادر به جستجو بر روی آن، به جلو و ساخت تا برخی از فانتزی
ساختار داده ها در حافظه برای تسریع جستجو به طوری که در حالت ایده آل
آنها ثابت و یا حداقل به عنوان نزدیک که به عنوان امکان پذیر است
به طوری که آن را به جستجوی خطی واگذاردن است، که نخواهد بود
بالا ترین روش انجام.
در مقابل، آدرس ایمیل می توانست یک کلید اصلی است.
>> در تئوری، آدرس ایمیل هر کس منحصر به فرد است، مگر اینکه شما به اشتراک گذاشتن برخی از حساب،
اما آن را به طور کلی به استفاده از چیزی شبیه به یک رشته خوب نیست
چرا که اگر به عنوان یک کلید اولیه هدف خود را در زندگی این است که منحصر به فرد شناسایی
ردیف در جدول خود هیچ دلیلی برای استفاده از حداکثر 255 کلمه در ادامه متن وجود دارد
منحصر به فرد یک نفر اگر شما می توانید دور با فقط 4 بایت را شناسایی
یا بین المللی 32 بیتی است.
به طور کلی، کلید اصلی باید کوتاه و موجز
و ایده آل چیزی شبیه به یک عدد صحیح و یا بین المللی بزرگ، است که اتفاق می افتد به 64 بیت است.
یک آدرس ایمیل منحصر به فرد، و یکی از ویژگی های یک پایگاه داده بیش از حد
برای اجرای منحصر به فرد برای من است.
با انتخاب منحصر به فرد در اینجا در کنار به ایمیل، حتی اگر خود ایمیل
است میکنین، خاموش کردن صفحه نمایش، به من گفت: به پایگاه داده
به من اعتماد ندارند.
آیا به من اجازه نمی دهد به پایگاه داده وارد
آدرس ایمیل همان دو بار، حتی اگر من ادم سفیه و احمق هستم و نیستم
بسیار خوب با IFS و دیگری IFS و کد PHP واقعی
و من به طور تصادفی کاربر با آدرس ایمیل های موجود برای ثبت نام اینجا را کلیک کنید
پایگاه داده است که در عین حال یکی دیگر از سطح دفاع از صحت
تا اطمینان حاصل شود که آدرس ایمیل های تکراری ختم نمی شود در جدول.
>> در حال حاضر، در مقابل، برای ثبت نام شما احتمالا نمی خواهید را که منحصر به فرد
چرا که پس از آن می تواند وجود داشته باشد هرگز 2 داویدز یا 2 مایک اسمیت، به عنوان مثال،
در پایگاه داده خود، به طوری که یک ما فقط به تنهایی ترک کنید.
من قصد دارم به جلو بروید و ذخیره را کلیک کنید در سمت راست پایین،
و همه چیز خوب به نظر می رسد اما توجه کنید اینجا
این بخشی است که در حال حاضر ما به زمان بیش از حد در صرف نیست
چرا که به نحو کمی پیچیده است، و ما لازم نیست که برای ایجاد جداول
تمام که اغلب، اما SQL خود یک زبان است،
نحو که برای آن مناسب است در اینجا که من برجسته شده است.
phpMyAdmin به واقعا آن را ایجاد یک GUI مبتنی بر وب برای شما
که با آن شما می توانید در زمان صرفه جویی داشته باشند نه به دستی نوع
یک پرس و جوی SQL نسبتا طولانی شبیه به آن.
>> به عبارت دیگر، اگر شما می خواهید به صورت دستی ایجاد این جدول،
یا که در آن سیاه و سفید phpMyAdmin به سریع و یا حتی در
با استفاده از این برگه دیگر، این تب SQL که در آن شما می توانید نوع در هر گونه نمایش داده شد SQL
شما می خواهید، صادقانه بگویم، این را گرفته اند من یک دقیقه
در واقع به نحو کامل، به یاد داشته باشید و حتی پس از آن من احتمالا
ساخته شده برخی از غلط املایی، به طوری که این ابزار بسیار مفید است برای چیزهایی که می خواهم، و آن را نیز آموزنده است.
شما می توانید شروع به استنباط چه نحو است
فقط با رنگ خوب برنامه نویسی است که phpMyAdmin به اضافه کردن
برای راحتی بصری ما.
اما در حال حاضر این کار را به جای بگذارید.
اجازه بدهید من به زبانه Insert در بالا بروید و به من اجازه رفتن به جلو و قرار دادن به عنوان مثال
ID بیایید می گویند در واقع من اهمیتی نمی دهند.
رفتن به افزایش خودکار. من قصد دارم به شما اجازه معامله پایگاه داده با این.
اما من باید دیوید، و ایمیل من را باید malan@harvard.edu.
>> برویم جلو قرار داده و در مایک اسمیت به عنوان یکی دیگر.
من خودم نام خانوادگی را به عنوان خوب،
و ما باید او باشد smith@example.com
و پس از آن جایی که می توانم به آینده؟
خب، به نظر می رسد مانند برو را فشار دهید کلیک کنید، و voila.
توجه داشته باشید که در 2 ردیف بالا قرار داده شده است.
این پرس و جوی SQL واقعی است.
که ابزار phpMyAdmin به اعدام برای من،
اما نتیجه نهایی، اخطار، اگر من در حال حاضر به برگه مرور،
برای دیدن 2 ردیف در این جدول، بسیار یادآور زیبا
از جدول ما قبلا برای کاربران خود از pset 7 را دیدم،
یکی از آنها دیوید مالان، یکی از آنها در حال حاضر مایک اسمیت است.
اما فقط برای روشن، من نیازی به استفاده از phpMyAdmin به
و در واقع، شما در حال رفتن به زودی نوشتن کد برای pset 7
که خودکار فرایند اضافه کردن ردیف ها، حذف ردیف، ردیف های به روز رسانی و مانند آن،
بنابراین من به جای به تب SQL بروید اجازه دهید تا در اینجا
و در نوع SELECT * از دانش آموزان که در آن
ایمیل = "malan@harvard.edu."
>> به عبارت دیگر فرض کنید در حال حاضر شما باید
برخی از فرم های HTML و نوع کاربر در آدرس ایمیل خود را، در میان رشته های دیگر،
و هدف در حال حاضر در PHP کد پایان دادن به عقب
به واقع نگاه به جزئیات دیگر این کاربر
نام و نام خانوادگی شما چیست؟ شماره ID شما چیست؟
شما می توانید یک پرس و جوی SQL مثل این نوشتن، از دانش آموزان را انتخاب کنید *
که در آن ایمیل = "malan@harvard.edu."
و اگر من سپس برو کلیک کنید، توجه کنید که من باید، و در واقع من، به عقب بر گردیم فقط یک ردیف.
مایک از این نتیجه، به عنوان مجموعه ای از ردیف های حذف شده
به طور کلی گفته می شود، چرا که او را به همان آدرس ایمیل را به عنوان من ندارد.
>> در حال حاضر، باز هم در اینجا برای pset 7 شما phpMyAdmin به عنوان یک ابزار مدیریتی استفاده
و یک ابزار آموزشی برای یادگیری راه خود را
در سراسر جهان از SQL، اما در پایان روز
شما در حال رفتن به نوشتن این نمایش داده شد در داخل کد PHP واقعی،
و به همین ترتیب در walkthrough Zamyla به ویژه در ارتباط باشید
که در آن شما می خواهید یک تور از کد توزیع برای این مجموعه مشکل
جایی که ما تو را نه تنها از لحاظ زیبایی شناختی برای ورود به صفحه داده شده است
و آرم خوب سکسی که می گوید CS50 مالی، اما ما همچنین به شما داده می شود
یک دسته از توابع است که زندگی خود را کمی آسانتر می کند.
ما همچنین بخشی از pset برای شما نوشته شده است.
بخش ورود به سیستم از آن به طور خاص، به شما یک حس یک طرح نماینده
است که در واقع با استفاده از یک کنترل کننده، به عنوان مثال، فایل index.php،
login.php و مانند آن، و پس از آن خواهید دید pset همچنین دارای یک دایرکتوری قالب
است که تمام دیدگاههای شما، همه از زیبایی شناسی است.
و به این ترتیب گردش کلی در pset 7 خواهد بود که
کاربران خود را ببینید، یک کنترل کننده از طریق یک URL در مرورگر است.
این کنترل شامل کد PHP که شما نوشت، و در داخل کد PHP خود را
ممکن است برخی از خطوط SQL تو در تو در بین کوتیشن ها
و به یک تابع منتقل می نوشت: پرس و جو نامیده می شود
کمک خواهد کرد که شما را به پایگاه داده بدون استفاده از چیزی شبیه به صحبت
یک ابزار مدیریتی مثل phpMyAdmin به.
>> شما قادر خواهید بود به نوشتن عبارات SQL در کد PHP
و به عقب بر گردیم آرایه PHP از مجموعه نتیجه،
از ردیف است که در واقع بازی که پرس و جو.
و به همین ترتیب شما را قادر به انجام آن درج یا حذف
و یا به روز رسانی و یا مانند نحو است که برای آن نسبتا مشابه،
و شما از برخی منابع آنلاین را مشاهده کنید، از کد توزیع
و از pset خود بسته دقیقا چگونه برای رفتن در مورد انجام این کار است.
درک در نهایت ما واقعا تنها سطح از SQL
و از خروجی، اما قدرت آن واقعا این است که شما آن را آزاد
برای تمرکز بر مشکلاتی که شما می خواهید را حل کند، مورد استفاده شما می خواهید برای به اجرا درآوردن
بدون نیاز به نگرانی کاملا به همان اندازه، حداقل در اوایل،
درباره کجا و چگونه ذخیره و جستجو در پایگاه داده خود را،
و این کاملا به معنای واقعی کلمه است که در آن فیس بوک خود را شروع کردم
با استفاده از MySQL و سپس با استفاده از سرور MySQL و سپس چند سرور خروجی زیر
قبل از مدت طولانی تا زمانی که پس از آن تا به حال واقعا شروع به فکر کردن در مورد چگونه به سخت
ذخیره داده ها، چگونه برای ذخیره چیزها حتی بیشتر موثر،
بنابراین حتی اگر ما را برای اعطا به این واقعیت است که شاخص ها و محدودیت های منحصر به فرد
و به این ترتیب فقط یک مکالمه بسیار جالب وجود دارد کار
که این همه می تواند در نهایت منجر به، به طوری که درک کنند که ما تنها سطح
از آنچه که در نهایت می تواند برای شما و یا پروژه های خود را تبدیل به بسیار کمی از داده های بزرگ است.
>> با که گفت، اجازه بدهید پایان در اینجا، و ما به شما در هفته آینده را ببینید.
[CS50.TV]