1 00:00:00,000 --> 00:00:10,393 >> [Музика, яка грає] 2 00:00:10,393 --> 00:00:11,037 3 00:00:11,037 --> 00:00:12,120 Девід Дж Маланій: Гаразд. 4 00:00:12,120 --> 00:00:12,830 З поверненням. 5 00:00:12,830 --> 00:00:13,890 Це CS50. 6 00:00:13,890 --> 00:00:15,570 Це кінець тижня 8. 7 00:00:15,570 --> 00:00:18,360 І, як ви знаєте, у нас є досить регулярні робочі години в декілька 8 00:00:18,360 --> 00:00:21,090 з їдалень, в тому числі Annenberg. 9 00:00:21,090 --> 00:00:23,860 І деякі команди люб'язно взяв кілька фотографій в останній час. 10 00:00:23,860 --> 00:00:26,230 І в честь Хеллоуїн, ми думали, що ми 11 00:00:26,230 --> 00:00:30,160 поділитися одним, що швидше спіймали нас сюрприз тут в Annenberg залі просто 12 00:00:30,160 --> 00:00:31,490 в ту ніч. 13 00:00:31,490 --> 00:00:36,300 Ваш однокласник Яків позувала це фото, але був більш забавним 14 00:00:36,300 --> 00:00:39,760 був на Facebook, подальший Розмова, що сталося потім. 15 00:00:39,760 --> 00:00:43,020 >> Його перша посада в відповідь щоб його фото було це. 16 00:00:43,020 --> 00:00:46,740 Через кілька хвилин, він вирішив до одного до себе з цим. 17 00:00:46,740 --> 00:00:53,800 Він пішов на те, щоб піти на це, а потім, ще більш кумедно 18 00:00:53,800 --> 00:00:55,320 це коли його мама підхопила. 19 00:00:55,320 --> 00:00:59,240 20 00:00:59,240 --> 00:01:01,800 І тоді, в кінцевому рахунку, здається, що це було просто 21 00:01:01,800 --> 00:01:04,860 чудовий виверт для грати, що відбувається. 22 00:01:04,860 --> 00:01:07,080 >> Так що, якщо ви хочете щоб побачити Джейкоба та інші, 23 00:01:07,080 --> 00:01:10,880 серед них Синтія Мен, хто за лаштунками персоналу CS50 зони, 24 00:01:10,880 --> 00:01:13,970 попрямувати в цьому URL і цій грі тут. 25 00:01:13,970 --> 00:01:18,810 Так що без зайвих слів, сьогодні ми продовжити цей погляд на веб-програмування, 26 00:01:18,810 --> 00:01:21,810 і фактичне створення програм що не працюють в командному рядку, 27 00:01:21,810 --> 00:01:24,080 але замість цього працювати всередині браузера. 28 00:01:24,080 --> 00:01:26,320 >> Імовірно зараз, або дуже найближчим часом, ви йдете 29 00:01:26,320 --> 00:01:30,200 бути в розпал реалізації Ваш власний веб-сервер, який 30 00:01:30,200 --> 00:01:31,700 відрізняється від веб-програмування. 31 00:01:31,700 --> 00:01:36,210 Веб-сервер в pset6 це все про написання програмного забезпечення, який знає, як взяти 32 00:01:36,210 --> 00:01:39,300 HTTP запити від браузера, або навіть від вас, людина, 33 00:01:39,300 --> 00:01:42,340 з програмою, яка називається Telnet, і потім на них відповідати або 34 00:01:42,340 --> 00:01:48,600 по впливів на HTML файл, або JPEG, GIF або, або навіть .php файл. 35 00:01:48,600 --> 00:01:52,490 >> Але з веб-сервером, це не Передбачається, просто відкрити файл PHP, 36 00:01:52,490 --> 00:01:55,260 щось закінчується на .php, а потім виплюнути вміст. 37 00:01:55,260 --> 00:01:58,440 Це повинен робити що для цього файлу в першу чергу? 38 00:01:58,440 --> 00:01:59,390 Так що говорити. 39 00:01:59,390 --> 00:02:04,060 Чи не скомпілювати його, ми сказали в понеділок, але rather-- Так, інтерпретувати його. 40 00:02:04,060 --> 00:02:08,070 >> PHP це інтерпретована мова, і тому один з ключових особливостей вашої мережі 41 00:02:08,070 --> 00:02:11,550 Сервер, хоча і реалізується нами, ця здатність для вашого веб-сервера 42 00:02:11,550 --> 00:02:12,490 помітити, о. 43 00:02:12,490 --> 00:02:14,580 Це файл, який закінчується на .php. 44 00:02:14,580 --> 00:02:17,970 Дозвольте мені не просто відправити його на Користувач, як це статичний контент, 45 00:02:17,970 --> 00:02:20,970 а дайте мені прочитати його лінія по лінія, зліва направо, і інтерпретувати його. 46 00:02:20,970 --> 00:02:23,030 >> І робити, що вам Хлопці будуть істотно 47 00:02:23,030 --> 00:02:26,520 Пунт на програму в приладі, і на багато комп'ютерних систем, 48 00:02:26,520 --> 00:02:27,500 щойно подзвонив PHP. 49 00:02:27,500 --> 00:02:30,579 Тобто назва PHP в власний інтерпретатор мови. 50 00:02:30,579 --> 00:02:33,120 Так, що частину ми реалізуємо для Ви, і те, що залишилося для вас, 51 00:02:33,120 --> 00:02:35,240 в кінцевому рахунку, це число штук, серед яких 52 00:02:35,240 --> 00:02:37,960 здійснює підтримку для статичного контенту. 53 00:02:37,960 --> 00:02:40,180 >> Але тепер, і з Проблема установки сім, ти 54 00:02:40,180 --> 00:02:43,660 збирається почати перехід до насправді написання коду PHP 55 00:02:43,660 --> 00:02:45,970 що отримує інтерпретувати в розмові з задньої частини 56 00:02:45,970 --> 00:02:47,960 База даних, яка зберігає інформацію. 57 00:02:47,960 --> 00:02:51,020 Так давайте краще зрозуміти спочатку пару цих суперглобальних 58 00:02:51,020 --> 00:02:53,720 і як багато влада вас отримати з коробки безкоштовно 59 00:02:53,720 --> 00:02:55,250 з мови, як PHP. 60 00:02:55,250 --> 00:02:57,350 Те, що ви не мають реалізувати себе. 61 00:02:57,350 --> 00:03:01,700 >> Так, ми бачили в понеділок $ _GET, який є суперглобального, 62 00:03:01,700 --> 00:03:05,496 який просто PHP говорити за глобальним Мінлива ви можете отримати доступ в будь-якому місці. 63 00:03:05,496 --> 00:03:06,620 І що всередині $ _GET? 64 00:03:06,620 --> 00:03:09,930 65 00:03:09,930 --> 00:03:12,110 Що всередині цього суперглобального що ми бачимо? 66 00:03:12,110 --> 00:03:15,900 67 00:03:15,900 --> 00:03:19,020 Звичайно статистично на хоча б одна людина знає. 68 00:03:19,020 --> 00:03:21,590 Що всередині $ _GET? 69 00:03:21,590 --> 00:03:22,426 Да? 70 00:03:22,426 --> 00:03:24,130 >> АУДИТОРІЯ: Це змінні Ви ставите в рядку запиту. 71 00:03:24,130 --> 00:03:24,530 >> Девід Дж Маланій: Прекрасно. 72 00:03:24,530 --> 00:03:26,488 Це змінні, покласти в рядку запиту. 73 00:03:26,488 --> 00:03:29,910 Так, в нашій старій прикладі реалізувавши Google, коли ми були 74 00:03:29,910 --> 00:03:34,130 URL, а потім знак питання, яка розмежовує початок HTTP 75 00:03:34,130 --> 00:03:37,950 Параметри, потім ми повинні були д рівну щось, як д дорівнює кішок, 76 00:03:37,950 --> 00:03:41,500 що б автоматично перейти в того, що $ _GET супер глобальний для вас, 77 00:03:41,500 --> 00:03:47,430 через РНР, є ключовим з Q, і його кішок значення. 78 00:03:47,430 --> 00:03:51,250 >> Іншими словами, $ _GET і все ці речі асоціативні масиви, 79 00:03:51,250 --> 00:03:54,530 хеш-таблиці з сортів, що зберігання ключів і цінностей. 80 00:03:54,530 --> 00:03:57,980 Тепер повернемося в pset5, хеш Таблиця ви, можливо, реалізується, 81 00:03:57,980 --> 00:04:00,220 або вам спробувати може реалізували, дійсно 82 00:04:00,220 --> 00:04:04,010 ефективно було асоціативним Масив, структура даних, 83 00:04:04,010 --> 00:04:07,220 в якому ви можете пов'язати ключі зі значеннями. 84 00:04:07,220 --> 00:04:09,690 >> Але в pset5, значення були тривіально. 85 00:04:09,690 --> 00:04:12,430 Значення по суті істинним або хибним. 86 00:04:12,430 --> 00:04:13,900 Чи є слово в словнику? 87 00:04:13,900 --> 00:04:18,279 Отже, коли ви хешіруется таке слово, як яблуко щоб побачити, якщо яблуко в словнику, 88 00:04:18,279 --> 00:04:21,820 ваша функція перевірки імовірно повернувся істинним або хибним. 89 00:04:21,820 --> 00:04:24,120 Отже, ось ефективно Значення ми отримуємо назад. 90 00:04:24,120 --> 00:04:26,456 >> Але ми бачили в понеділок Стисло, ви можете, звичайно, 91 00:04:26,456 --> 00:04:28,830 пов'язати цікавішим значення, ніж просто істинним або хибним 92 00:04:28,830 --> 00:04:30,790 з ключами, як яблуко. 93 00:04:30,790 --> 00:04:33,909 Ви могли фактично повернутися довільна рядок, і справді, 94 00:04:33,909 --> 00:04:36,200 це те, що $ _GET і ці інші змінні дозволяють зробити. 95 00:04:36,200 --> 00:04:40,595 >> Так $ _POST схожий по духу, але якщо ви відправити форму поштою, 96 00:04:40,595 --> 00:04:44,490 Інший метод HTTP це використовується для таких речей, як кредитні картки, 97 00:04:44,490 --> 00:04:48,410 і особиста інформація, і навіть двійкові дані, як фотографії, 98 00:04:48,410 --> 00:04:51,840 ці речі в кінцевому підсумку всередині $ _POST. 99 00:04:51,840 --> 00:04:53,770 А насправді для файлів як у форматі JPEG і ще багато чого, 100 00:04:53,770 --> 00:04:58,290 є навіть інший, що ні тут називається $ _FILES, а також. 101 00:04:58,290 --> 00:05:01,280 >> Так, сервер ми не будемо зупинятися на занадто багато, але це дає вам доступ 102 00:05:01,280 --> 00:05:04,860 сортувати нижніх деталі рівня близько сам сервер, що ви використовуєте. 103 00:05:04,860 --> 00:05:07,430 Cookie та сесії, при тому, що, ми ефективно бачимо зараз. 104 00:05:07,430 --> 00:05:10,940 Останнє, що ми використовуємо для реалізації Поняття кошику. 105 00:05:10,940 --> 00:05:14,480 Супер простий, але нагадаємо, що у нас був цей приклад тут, 106 00:05:14,480 --> 00:05:17,640 вважаючи, скільки разів ви що перед відвідав цю сторінку. 107 00:05:17,640 --> 00:05:20,850 >> Але сьогодні, а не просто дивитися на Ефект від цього, давайте відкриємо 108 00:05:20,850 --> 00:05:22,640 Хрому інспектор, які ви можете зазвичай 109 00:05:22,640 --> 00:05:25,740 зробити, клацнувши правою кнопкою або контролю клацнувши в будь-якому місці на веб-сторінці, 110 00:05:25,740 --> 00:05:27,250 а потім вибрати огляньте елемент. 111 00:05:27,250 --> 00:05:31,600 Або ви можете піти через меню що ми описуємо в специфікації pset6 в. 112 00:05:31,600 --> 00:05:35,020 І я збираюся вкладці Мережа тут, і давайте дивитися на мить 113 00:05:35,020 --> 00:05:37,590 HTTP трафік це йти вперед і назад. 114 00:05:37,590 --> 00:05:40,929 >> Дозвольте мені спочатку йти вперед і кеш Очищення Хрома. 115 00:05:40,929 --> 00:05:43,470 Таким чином, деякі з вас можуть бути знайомі з уже цієї техніки, 116 00:05:43,470 --> 00:05:45,790 і ми збираємося його використовувати для налагодження тут. 117 00:05:45,790 --> 00:05:48,890 118 00:05:48,890 --> 00:05:50,890 Тепер ми, як комп'ютер Вчені мають намір почати 119 00:05:50,890 --> 00:05:53,920 Роблячи це для налагодження Цілі, в результаті чого 120 00:05:53,920 --> 00:05:55,910 ми очистити кеш, Зазвичай, таким чином, що ми 121 00:05:55,910 --> 00:05:57,670 може позбутися речей, які називаються печиво. 122 00:05:57,670 --> 00:06:01,700 Таким чином, ви, ймовірно, взагалі знайомі з тим, що печиво, або, принаймні, 123 00:06:01,700 --> 00:06:04,370 що вони існують, але те, що Ваше розуміння них, 124 00:06:04,370 --> 00:06:06,920 як тільки користувач з комп'ютери, що таке куки? 125 00:06:06,920 --> 00:06:09,490 126 00:06:09,490 --> 00:06:09,990 Так. 127 00:06:09,990 --> 00:06:14,391 >> АУДИТОРІЯ: Це трохи of-- добре, не трохи в термін інформатики. 128 00:06:14,391 --> 00:06:18,303 Це частина даних, які сайт відправляє вам для того, 129 00:06:18,303 --> 00:06:20,209 щоб мати можливість записувати статистику на вас. 130 00:06:20,209 --> 00:06:21,250 Девід Дж Маланій: ОК, добре. 131 00:06:21,250 --> 00:06:24,980 Так що це частина даних, які Сервер, ставить на свій комп'ютер, 132 00:06:24,980 --> 00:06:28,840 і давайте узагальнимо її навіть Більш того, це є ключовим value-- добре, 133 00:06:28,840 --> 00:06:30,064 що стає більш точним. 134 00:06:30,064 --> 00:06:31,980 Це шматок Інформація, частина даних, 135 00:06:31,980 --> 00:06:34,430 що сервер може для розміщення на вашому комп'ютері 136 00:06:34,430 --> 00:06:38,592 і дуже часто, сервер робить це для того, щоб згадати, хто ви є. 137 00:06:38,592 --> 00:06:40,300 Так, наприклад, шанси Ви, напевно, 138 00:06:40,300 --> 00:06:42,982 увійшли в таких сайтах, як Facebook, або Gmail, або інші, перш ніж, 139 00:06:42,982 --> 00:06:44,940 і ви увійдіть з Вашим ім'я користувача і пароль, 140 00:06:44,940 --> 00:06:49,000 а потім після цього, протягом деякого кількості хвилин або годин або навіть днів, 141 00:06:49,000 --> 00:06:52,970 сервер пам'ятає, що ви, справді, зайшли. 142 00:06:52,970 --> 00:06:54,600 Тепер, як в тому, що насправді відбувається? 143 00:06:54,600 --> 00:06:58,630 Тому що ви, звичайно, не передруковувати Ваше ім'я користувача та пароль щоразу, 144 00:06:58,630 --> 00:07:00,760 переході до інша сторінка на Facebook. 145 00:07:00,760 --> 00:07:02,570 Ось і виходить, печиво відповідь. 146 00:07:02,570 --> 00:07:05,360 >> Печиво можна придумати, як, ніби як, цифровий руку 147 00:07:05,360 --> 00:07:09,200 штамп, що ви могли б отримати на розваги парк або клуб, який по суті 148 00:07:09,200 --> 00:07:11,740 вказує на наявність тут до, і ви вже 149 00:07:11,740 --> 00:07:16,070 показано свій ідентифікатор в вишибали, для Примірник, і що клуб або парк 150 00:07:16,070 --> 00:07:19,050 Тепер слід вважати, що вас аутентифицироваться вже. 151 00:07:19,050 --> 00:07:21,270 Ви вже були визначені за допомогою нього. 152 00:07:21,270 --> 00:07:24,740 >> Так що з урахуванням цього, давайте відкриємо лічильник тут. 153 00:07:24,740 --> 00:07:27,220 Дозвольте мені йти вперед, я тільки що зробив, і очистити всі мої печива. 154 00:07:27,220 --> 00:07:29,970 А тепер те, що я збираюся зробити, це тримати Shift, просто на всякий випадок, 155 00:07:29,970 --> 00:07:31,740 і насильно перезавантажте сторінку. 156 00:07:31,740 --> 00:07:34,170 Зрушення просто переконайтеся, що що ніщо не кешируются. 157 00:07:34,170 --> 00:07:36,850 А ось запит що пішли вперед і назад. 158 00:07:36,850 --> 00:07:41,560 Так ось тут у нас є запит, і нехай мені збільшити тут, і багато що з цього 159 00:07:41,560 --> 00:07:44,710 є свого роду нецікаві деталі для Тепер про те, що браузер має автоматично 160 00:07:44,710 --> 00:07:47,800 відправлено, але давайте натисніть View Джерело бачити необроблені заголовки. 161 00:07:47,800 --> 00:07:51,700 >> І якщо ви пірнули в pset6 вже, ви, звичайно, визнати те, 162 00:07:51,700 --> 00:07:54,990 як це, і, можливо, деякі з цих інших ліній тут, 163 00:07:54,990 --> 00:07:59,040 але що більш цікаво на сьогодні якщо я прокрутите вниз, не з проханням, 164 00:07:59,040 --> 00:08:02,870 але в так званій реакції, ця лінія, ймовірно, виглядає знайомим. 165 00:08:02,870 --> 00:08:04,977 Це гарна річ, коли ви бачите 200 OK. 166 00:08:04,977 --> 00:08:07,060 Мабуть, це Дата і час на сервері 167 00:08:07,060 --> 00:08:08,268 і є купа речей. 168 00:08:08,268 --> 00:08:09,290 О, це цікаво. 169 00:08:09,290 --> 00:08:13,430 >> Виявляється, коли ви використовуєте PHP, принаймні, в цьому сервері, 170 00:08:13,430 --> 00:08:16,360 сервер випльовує те, що версія PHP ви використовуєте. 171 00:08:16,360 --> 00:08:18,962 Що, насправді, для безпеки Цілі, це не дуже хороша річ. 172 00:08:18,962 --> 00:08:21,170 Але ми повернемося до того, що іншим разом, можливо. 173 00:08:21,170 --> 00:08:25,740 Але тепер це соковиті лінії сьогодні, і ми коротко бачили деякі з них, 174 00:08:25,740 --> 00:08:29,240 Я думаю, що з Facebook, коли ми тикали навколо інспектора в той час, 175 00:08:29,240 --> 00:08:33,380 Набір печива є те, що посадка що маленький шматочок інформації 176 00:08:33,380 --> 00:08:34,890 на ваш комп'ютер. 177 00:08:34,890 --> 00:08:37,490 >> Це заголовка HTTP це ефективно 178 00:08:37,490 --> 00:08:39,970 каже ваш браузер, Chrome, IE, все, 179 00:08:39,970 --> 00:08:44,480 агов браузера магазин на користувача жорсткий диск, або в пам'яті користувача, 180 00:08:44,480 --> 00:08:49,680 Ключ називається PHPSESSID, який являє собою скорочене позначення для ідентифікатора сесії, 181 00:08:49,680 --> 00:08:53,670 і дати йому значення 0vlk8t, точка, точка, точка. 182 00:08:53,670 --> 00:08:56,480 Дійсно довго псевдо випадковий буквено-цифрову рядок. 183 00:08:56,480 --> 00:08:59,480 Це просто насправді велика кількість, але це закодовані за букв і цифр 184 00:08:59,480 --> 00:09:03,550 таким чином, щоб розмір його може бути навіть більше, ніж тільки числа. 185 00:09:03,550 --> 00:09:06,947 І тоді, до речі, Path = /, що просто означає, що це печиво має бути 186 00:09:06,947 --> 00:09:08,780 пов'язані з Сукупність сайті, 187 00:09:08,780 --> 00:09:11,150 а не просто конкретної Сторінка все це. 188 00:09:11,150 --> 00:09:12,930 Так що це, що віртуальна рука штамп. 189 00:09:12,930 --> 00:09:16,330 Це неначебто сервер, Facebook, або в нашому випадку прилад, 190 00:09:16,330 --> 00:09:21,140 Тобто буквально письмове 0vlk8t і так далі, на вашій руці. 191 00:09:21,140 --> 00:09:24,360 Зверніть увагу, що сервер-х, не чинить це не 192 00:09:24,360 --> 00:09:27,730 зберігання моє ім'я, звісно, не зберігати свій пароль. 193 00:09:27,730 --> 00:09:31,710 >> Замість цього, він мабуть, зберігання псевдо випадкової інформації 194 00:09:31,710 --> 00:09:35,010 так, що ніхто не може здогадатися, що моя рука штамп. 195 00:09:35,010 --> 00:09:37,590 На стороні сервера, Між тим, сервер 196 00:09:37,590 --> 00:09:40,370 пам'ятатиме, напевно, в базі даних або щось, 197 00:09:40,370 --> 00:09:46,490 що користувач, який в майбутньому представляє ручну друк 0vlk8t, точка, 198 00:09:46,490 --> 00:09:51,440 точка, точка, повинна бути пов'язана з цим Зокрема корзина, так сказати. 199 00:09:51,440 --> 00:09:55,060 Іншими словами, якщо зараз я йду сюди та оновити цю сторінку, 200 00:09:55,060 --> 00:09:58,020 як знає сервер що я відвідав один раз? 201 00:09:58,020 --> 00:10:01,730 >> Або, якщо я зроблю це знову, як робить сервер знаю, що я відвідав його двічі? 202 00:10:01,730 --> 00:10:04,680 Ну, якщо я зійду в цьому Останній запит, який 203 00:10:04,680 --> 00:10:09,150 вже в третій, що я послав в загальній складності, помітили моє прохання зараз. 204 00:10:09,150 --> 00:10:11,300 Існує ще це запросити тут, же 205 00:10:11,300 --> 00:10:15,040 як і раніше, є ще ціла купа речі, які ми ігнорували, як і колись, 206 00:10:15,040 --> 00:10:19,350 але в самий останній заголовок, це Час, бо я був тут раніше, 207 00:10:19,350 --> 00:10:21,980 є презентація це віртуальна рука штамп. 208 00:10:21,980 --> 00:10:28,957 >> Причому ця лінія тут, не встановлено печива але печиво товстої кишки PHPSESSI = 0vlk8t, 209 00:10:28,957 --> 00:10:32,040 це тільки моя браузера автоматичне Презентація цієї руки друк, так що 210 00:10:32,040 --> 00:10:37,910 Тепер сервер, як тільки він розуміє ,, ох, це користувач 0vlk8t точка, точка, точка, 211 00:10:37,910 --> 00:10:42,010 Я зараз можу пригадати, хто він чи вона і реассоцііруют з цим користувачем все 212 00:10:42,010 --> 00:10:46,450 інформація, яку я хочу, і все що інформація може зберігатися на вас, 213 00:10:46,450 --> 00:10:50,130 програміст, в $ _SESSION. 214 00:10:50,130 --> 00:10:57,170 >> Таким чином, щоб було ясно, якщо я відкриваю реальний швидкий в Gedit, що сам файл, counter.php, 215 00:10:57,170 --> 00:11:02,340 в моїй місцевій приймаючої загальний каталог як і колись, зверніть увагу, що, справді, 216 00:11:02,340 --> 00:11:06,860 Я в кінцевому підсумку зберігання в $ _SESSION Цитата кінець цитати "лічильник" 217 00:11:06,860 --> 00:11:10,110 значення попереднього лічильника, який Я отримую від цих ліній тут, що ми 218 00:11:10,110 --> 00:11:13,010 подивився на останній раз плюс один. 219 00:11:13,010 --> 00:11:14,980 Так під капотом, це все печиво. 220 00:11:14,980 --> 00:11:17,563 Це якраз те, цифровий ручної штамп ходить взад і вперед, 221 00:11:17,563 --> 00:11:20,450 і, чесно кажучи, якщо ви відкриваєте в Chrome Інспектор на будь-якому сайті 222 00:11:20,450 --> 00:11:22,580 Ви відвідаєте сьогодні, з супер висока ймовірність, 223 00:11:22,580 --> 00:11:25,450 Ви будете бачити, може бути, один, може бути, півдюжини печиво 224 00:11:25,450 --> 00:11:26,650 час пам'ятати вас. 225 00:11:26,650 --> 00:11:29,500 >> І що ще гірше, якщо ті, сайт ви відвідуєте 226 00:11:29,500 --> 00:11:32,640 у всіх є рекламні оголошення, які звичайно досить поширені сьогодні, 227 00:11:32,640 --> 00:11:36,100 і якщо ці оголошення приходять від якийсь центральний партії, хтось 228 00:11:36,100 --> 00:11:39,000 як Google або AdWords, як вони зателефонуйте по одному зі своїх продуктів 229 00:11:39,000 --> 00:11:42,880 або інші подібні постачальники, продавати рекламу, що цікаво, 230 00:11:42,880 --> 00:11:46,510 і, чесно кажучи, що це трохи тривожна, про те, як HTTP працює, 231 00:11:46,510 --> 00:11:50,855 є те, що якщо у вас є оголошення вбудовані в Facebook.com і Google.com, 232 00:11:50,855 --> 00:11:54,240 і Harvard.edu, будь-яку кількість сайтів, так що це такі 233 00:11:54,240 --> 00:11:58,130 що є середня людина, який відбуває до оголошення всіх трьох цих сайтів, 234 00:11:58,130 --> 00:12:02,110 виходить, що печиво на домен. 235 00:12:02,110 --> 00:12:05,910 >> Так що якщо у вас є оголошення виходить від ж компанія на різних веб-сайтах, 236 00:12:05,910 --> 00:12:11,140 що компанія може ефективно відслідковувати хто ви в усіх цих сайтів. 237 00:12:11,140 --> 00:12:13,140 Гарвардський може не знати, Ви відвідуєте Facebook. 238 00:12:13,140 --> 00:12:15,306 Facebook не може знати і Ви відвідин Гарварда. 239 00:12:15,306 --> 00:12:18,160 Але те, що оголошення обслуговування вони використовують, якщо той домен 240 00:12:18,160 --> 00:12:21,710 присутній в обох Harvard.edu Мережі сторінок і Facebook.com веб-сторінок, 241 00:12:21,710 --> 00:12:26,850 це середня людина, звичайно, знає, хто ти через ці печиво будучи поділився 242 00:12:26,850 --> 00:12:30,910 по, або, скоріше ,, що так званий посередник. 243 00:12:30,910 --> 00:12:33,820 >> Таким чином, ми ще повернемося до цього питання в наслідки для безпеки їх, 244 00:12:33,820 --> 00:12:37,170 але є багато інформації зберігається про вас в будь-який час 245 00:12:37,170 --> 00:12:40,120 відвідати практично будь-яку веб-сторінку на Інтернет, і це дійсно 246 00:12:40,120 --> 00:12:42,877 зводиться до цього дуже простий механізм. 247 00:12:42,877 --> 00:12:44,710 Що відбувається, то, якщо ви параноїк 248 00:12:44,710 --> 00:12:48,190 і ви вирішите піти в Chrome або IE або щось і відключити кукі? 249 00:12:48,190 --> 00:12:49,365 Що трапилося? 250 00:12:49,365 --> 00:12:50,790 Да? 251 00:12:50,790 --> 00:12:53,170 Ви really-- ви зробили це правильно? 252 00:12:53,170 --> 00:12:54,350 Добре. 253 00:12:54,350 --> 00:12:55,994 Ні, йти вперед. 254 00:12:55,994 --> 00:12:59,645 >> АУДИТОРІЯ: Деякі веб-сайти не мають Функція без нього подобається Facebook. 255 00:12:59,645 --> 00:13:00,520 Девід Дж Маланій: Так! 256 00:13:00,520 --> 00:13:02,311 Таким чином, деякі веб-сайти може просто перестати працювати. 257 00:13:02,311 --> 00:13:05,520 І в більшості веб-сайтів в ці дні що принципово покладатися на печиво, 258 00:13:05,520 --> 00:13:08,360 особливо якщо у них є ви увійти в, вони просто зламає. 259 00:13:08,360 --> 00:13:10,360 Бо вважають альтернатива, якщо веб-сайт 260 00:13:10,360 --> 00:13:14,480 не має можливості запам'ятовування, які ви, і, отже, ваш браузер не 261 00:13:14,480 --> 00:13:16,949 представляючи з кожним HTTP Запит цього руки друк, 262 00:13:16,949 --> 00:13:18,740 ефективно сайт як збирається Facebook, 263 00:13:18,740 --> 00:13:22,050 мати запит на увійти кожен штопати час 264 00:13:22,050 --> 00:13:26,200 Ви зміни сторінок, або натисніть на посилання, яка це, звичайно, не особливо хороший користувач 265 00:13:26,200 --> 00:13:26,920 досвід. 266 00:13:26,920 --> 00:13:30,020 >> Так що там теж є серед компромісів. 267 00:13:30,020 --> 00:13:34,140 Так що без зайвих слів, давайте зрозумілим, що з веб-програмування, 268 00:13:34,140 --> 00:13:37,630 в таких мовах, як PHP, ви можете пам'ятати, Інформація, як, що в проблемі установки 269 00:13:37,630 --> 00:13:41,550 сім, коли ви реалізуєте самостійно E * Trade, як веб-сайт, з яким, щоб купити 270 00:13:41,550 --> 00:13:45,710 і продавати акції, як ви пам'ятаєте, саме що користувач купив і продав 271 00:13:45,710 --> 00:13:49,110 і хто він чи вона шляхом цієї сесії. 272 00:13:49,110 --> 00:13:51,110 Але ми збираємося потрібно любитель шлях, ніж електронною поштою 273 00:13:51,110 --> 00:13:52,640 почати схоронність інформації навколо. 274 00:13:52,640 --> 00:13:53,140 Чи не так? 275 00:13:53,140 --> 00:13:56,780 >> В понеділок, ми говорили про Фрош чати і як у версії одного з цього веб-сайту, 276 00:13:56,780 --> 00:14:00,250 років тому, всі ми робили, було по електронній пошті Проктор хто 277 00:14:00,250 --> 00:14:04,250 відповідає за очною спорту Програма, назва, і підлогу, 278 00:14:04,250 --> 00:14:07,330 і чи дійсно ви їх капітана, і гуртожиток когось, хто це 279 00:14:07,330 --> 00:14:10,136 реєстрації для очної спорту. 280 00:14:10,136 --> 00:14:13,010 Так що це не погано, але він чи вона довелося троль через їх електронну пошту, 281 00:14:13,010 --> 00:14:16,010 зробити таблицю або щось на зразок що, щоб тримати все організовано. 282 00:14:16,010 --> 00:14:19,750 Так, звичайно, ми, як програмістів може зробити це для того Проктор. 283 00:14:19,750 --> 00:14:22,970 І так введіть в SQL, Structured Query Language, 284 00:14:22,970 --> 00:14:26,050 який буде виглядати досить відрізняється як C і PHP, 285 00:14:26,050 --> 00:14:30,990 і ви будете занурюватися в набагато більше рук на PHP і проблема встановити сім, а й SQL, 286 00:14:30,990 --> 00:14:35,310 або SQL, це мова, яка Ви використовуєте, щоб поговорити з базою даних. 287 00:14:35,310 --> 00:14:36,480 >> Але те, що база даних? 288 00:14:36,480 --> 00:14:38,440 Ну ви думаєте про бази даних, принаймні зараз, 289 00:14:38,440 --> 00:14:41,750 як просто бути як файл Excel, або якщо ви Mac файлу користувач через числа, 290 00:14:41,750 --> 00:14:44,400 або якщо ви Служби Google Користувач електронних таблиць Google, 291 00:14:44,400 --> 00:14:49,120 це ефективно бази даних, або дійсно спеціально реляційна база даних. 292 00:14:49,120 --> 00:14:53,070 Реляційна база даних є просто щось, що має рядків і стовпців, 293 00:14:53,070 --> 00:14:56,440 і ви можете зберігати будь-який вид Інформація, що міститься в цих рядків або стовпців. 294 00:14:56,440 --> 00:15:00,480 >> Але те, що приємно про SQL, і про фактичні баз даних, а не тільки 295 00:15:00,480 --> 00:15:04,910 електронні таблиці або таблиці Google, є те, що ви можете використовувати мову 296 00:15:04,910 --> 00:15:09,000 насправді виконувати запити до вставити дані, видалити дані, 297 00:15:09,000 --> 00:15:11,620 шукати дані, навіть найголовніше, і вам 298 00:15:11,620 --> 00:15:16,110 не повинні використовувати його досить вручну як Ви могли б, як правило, Google 299 00:15:16,110 --> 00:15:17,690 таблиця, як це. 300 00:15:17,690 --> 00:15:22,217 >> Таким чином, в SQL, є купа фундаментальні заяви або частини 301 00:15:22,217 --> 00:15:23,300 функціональності вбудованої в. 302 00:15:23,300 --> 00:15:26,450 Там в багато більше, ніж ці, але ви можете пройти величезну відстань 303 00:15:26,450 --> 00:15:28,620 просто знаючи, що цю мову називається 304 00:15:28,620 --> 00:15:30,840 SQL має принаймні чотири заяви ви можете використовувати. 305 00:15:30,840 --> 00:15:34,420 >> Видалити, для видалення даних, Вставте, для додавання рядків, 306 00:15:34,420 --> 00:15:37,340 Оновлення, для зміни Рядки і Вибір, 307 00:15:37,340 --> 00:15:39,860 для повернення рядків і це дійсно те, що SQL робить. 308 00:15:39,860 --> 00:15:43,810 Він працює виключно на рядків так що, коли ви вставляєте або видалити, 309 00:15:43,810 --> 00:15:47,470 або оновлення, або вибрати те, що ви повернення в якості так званого набору результатів, 310 00:15:47,470 --> 00:15:49,690 як масив рядків. 311 00:15:49,690 --> 00:15:51,700 Зв'язка рядків з таблиці. 312 00:15:51,700 --> 00:15:54,050 >> Отже, повернемося в день, і донині, 313 00:15:54,050 --> 00:15:56,560 Ви можете взаємодіяти з У базі за допомогою командного рядка, 314 00:15:56,560 --> 00:15:59,691 але це не особливо цікаво використовувати це вікно чорно-білий стиль 315 00:15:59,691 --> 00:16:02,190 і насправді виконувати команди і копатися в базу даних. 316 00:16:02,190 --> 00:16:06,054 Графічний інтерфейс користувача, або GUI, набагато переважніше, мабуть, 317 00:16:06,054 --> 00:16:08,970 і так інструмент, який ми рекомендуємо і предустановлена ​​для вас на приладі 318 00:16:08,970 --> 00:16:10,580 називається PhpMyAdmin. 319 00:16:10,580 --> 00:16:14,060 Це загальна випадково Назва цієї речі є PHP в ньому, 320 00:16:14,060 --> 00:16:17,430 це просто означає, що люди, хто написав цю програму самі 321 00:16:17,430 --> 00:16:18,670 написав в PHP. 322 00:16:18,670 --> 00:16:23,740 >> Але це, в кінцевому рахунку про введення Сервер бази даних, як MySQL сервер 323 00:16:23,740 --> 00:16:26,589 що у вас може бути, як вам зробити, в CS50 приладу. 324 00:16:26,589 --> 00:16:29,130 Так це ще не всі деталі тут, ніж ми повинні дбати про сьогодення, 325 00:16:29,130 --> 00:16:33,280 але що ключ є те, що зліва сторона список баз даних 326 00:16:33,280 --> 00:16:36,040 що у вас є на вашому комп'ютері, на CS50 приладу, 327 00:16:36,040 --> 00:16:40,090 або прийти остаточні проекти, які ви, можливо, є на третій стороні, компанії 328 00:16:40,090 --> 00:16:43,415 сайт або веб-сервер, який Ви могли б платити за місце. 329 00:16:43,415 --> 00:16:45,290 Так на лівій є бази даних, один з яких 330 00:16:45,290 --> 00:16:48,750 є pset7 які я запозичив з наступного тижні PSET, а потім на верхній 331 00:16:48,750 --> 00:16:51,570 там помітили, що є купа вкладок, один з яких 332 00:16:51,570 --> 00:16:55,150 це бази даних, SQL, статус, користувачі, експорт і так далі. 333 00:16:55,150 --> 00:16:56,900 Таким чином, ви можете піти довгий спосіб просто розуміючи, 334 00:16:56,900 --> 00:16:59,770 що більша частина користувацького інтерфейсу знаходиться у верхній лівій колонці 335 00:16:59,770 --> 00:17:02,650 і у верхній аж там. 336 00:17:02,650 --> 00:17:04,980 Так що ми можемо насправді з цим робити? 337 00:17:04,980 --> 00:17:08,609 Ну, давайте почнемо створювати біт інформації таким чином. 338 00:17:08,609 --> 00:17:11,760 >> Припустимо наступне справа йде так, як буде протягом декількох днів, 339 00:17:11,760 --> 00:17:14,440 Ви хочете, щоб реалізувати сайт, називається CS50 Фінанси, 340 00:17:14,440 --> 00:17:17,328 і цей сайт дозволяє купити цитувати кінець цитати і продавати акції. 341 00:17:17,328 --> 00:17:19,619 І він збирається з'ясувати Вартість цих запасів, 342 00:17:19,619 --> 00:17:22,380 в кінцевому рахунку, як ви побачите, поговоривши з Yahoo Finance. 343 00:17:22,380 --> 00:17:26,250 Який, дивно, має безкоштовну послугу в якому ви можете пройти в біржових зведень 344 00:17:26,250 --> 00:17:29,830 як GOOG для Google, і це буде повернути вам поточний запас від Google 345 00:17:29,830 --> 00:17:32,250 Ціна в минулому Кілька хвилин, принаймні. 346 00:17:32,250 --> 00:17:35,080 >> Таким чином, ви будете використовувати, що, в підсумку, прикидатися для користувача 347 00:17:35,080 --> 00:17:37,750 купувати і продавати фактична запаси, використовуючи віртуальні гроші, 348 00:17:37,750 --> 00:17:39,750 але найперше, що користувач побачить 349 00:17:39,750 --> 00:17:43,850 це Увійти екрані, який просить їх для їх ім'я користувача і пароль. 350 00:17:43,850 --> 00:17:46,540 І так, одним з перших виклики для вас в pset7 351 00:17:46,540 --> 00:17:50,460 здійснюватиме зворотний кінець бази даних, електронні таблиці, якщо хочете, 352 00:17:50,460 --> 00:17:53,369 що збирається зберігати користувачі імена і паролі 353 00:17:53,369 --> 00:17:56,660 і, в кінцевому рахунку те, що запаси вони володіють, і скільки, і скільки грошей у них, 354 00:17:56,660 --> 00:18:00,110 так купа інших речей в інші таблиці або таблиць. 355 00:18:00,110 --> 00:18:05,020 >> Отже, давайте подивимося, як це може здатися на перший погляд. 356 00:18:05,020 --> 00:18:06,980 Я збираюся повернутися до прилад і я 357 00:18:06,980 --> 00:18:14,102 збираюся йти до цього URL тут PhpMyAdmin локальний / PHPMyAdmin 358 00:18:14,102 --> 00:18:16,060 і ви побачите, що це бере мене до інтерфейсу 359 00:18:16,060 --> 00:18:18,520 саме так, як ми бачили на знімок екрана, і тут я 360 00:18:18,520 --> 00:18:21,560 є додаткову базу даних називається лекція на сьогоднішній день 361 00:18:21,560 --> 00:18:24,280 і дозвольте мені йти вперед Перший і натисніть на pset7. 362 00:18:24,280 --> 00:18:27,940 >> Я, здається, є кілька варіантів, один для нового, для створення нової таблиці, 363 00:18:27,940 --> 00:18:30,770 і посилання на користувачів, які являє собою таблицю, я вже створив. 364 00:18:30,770 --> 00:18:31,790 Так що стіл? 365 00:18:31,790 --> 00:18:33,740 Так що, якщо ви використовували Excel до, і якщо у вас є 366 00:18:33,740 --> 00:18:37,110 використовувані номера або Google Електронні таблиці, ви відкриєте вікно 367 00:18:37,110 --> 00:18:39,350 і ви отримаєте цілий букет з рядків і стовпців, 368 00:18:39,350 --> 00:18:43,120 але тоді ви, як правило, мають листи по дну, або окремих вкладках. 369 00:18:43,120 --> 00:18:46,140 Ви можете думати про кожного лист у вигляді таблиці 370 00:18:46,140 --> 00:18:51,150 таким чином, щоб база даних, в кінцевому рахунку, є комбінацію одного або декількох таблиць, одна 371 00:18:51,150 --> 00:18:54,064 або більше листів, в Мир нормальної таблиці. 372 00:18:54,064 --> 00:18:55,980 Отже, дозвольте мені йти вперед і натисніть на цю таблицю 373 00:18:55,980 --> 00:18:59,420 що я Premade, звані користувачі, також відоме, 374 00:18:59,420 --> 00:19:00,700 Таблиця бази даних. 375 00:19:00,700 --> 00:19:04,130 І якщо я прокрутите вниз тут, дайте мені зменшити небагато, 376 00:19:04,130 --> 00:19:08,479 це те, що PhpMyAdmin каже нам всередині цієї таблиці прямо зараз. 377 00:19:08,479 --> 00:19:11,020 Це трохи заплутаним на перший Погляд з-за інтерфейс не 378 00:19:11,020 --> 00:19:15,140 найкрасивіша річ у світі, але що цікаво, ця частина тут. 379 00:19:15,140 --> 00:19:17,970 ID, ім'я користувача і хеш. 380 00:19:17,970 --> 00:19:20,510 >> Заздалегідь, і ви будете руками це в проблему встановити сім, 381 00:19:20,510 --> 00:19:25,050 ми даємо вам файл, що містить супер невеликої таблиці бази даних, запозичені насправді 382 00:19:25,050 --> 00:19:27,070 від хакерської видання з проблем встановити два, 383 00:19:27,070 --> 00:19:29,480 всередині якого є шість рядів. 384 00:19:29,480 --> 00:19:32,720 Один для Белінди все в аж до одного для Zamyla, 385 00:19:32,720 --> 00:19:35,980 і помітити, зліва від тих, імена користувачів унікальні ідентифікатори, такі як один, 386 00:19:35,980 --> 00:19:39,410 два, три, чотири, п'ять, шість, цілі числа, а потім вправо хеші. 387 00:19:39,410 --> 00:19:42,780 >> І якщо, шанси, що ви не робите проблема хакер видання встановити два, 388 00:19:42,780 --> 00:19:46,560 але хеш, як зашифрований пароль з деякими застереженнями. 389 00:19:46,560 --> 00:19:49,470 І так, що ви бачите тут зашифровані версії всі шість 390 00:19:49,470 --> 00:19:52,950 наші паролі від проблеми встановити два в хакерській видання. 391 00:19:52,950 --> 00:19:56,500 Тепер зліва знаходиться лише деякі GUI речі, редагування цей рядок, копіюючи цей рядок, 392 00:19:56,500 --> 00:19:57,630 видалення цей рядок. 393 00:19:57,630 --> 00:19:59,840 >> Але, що цікаво Тепер полягає в наступному. 394 00:19:59,840 --> 00:20:03,810 Я можу насправді почати експериментувати з цією таблицею. 395 00:20:03,810 --> 00:20:07,330 Так що, якщо я йду і натисніть SQL Вкладка, я отримую цю велику текстове поле. 396 00:20:07,330 --> 00:20:10,190 І це не те, як ми збираємося зробити це, коли насправді написання коду. 397 00:20:10,190 --> 00:20:12,700 Щоб було ясно, PhpMyAdmin це всього лише інструмент, це 398 00:20:12,700 --> 00:20:16,450 збирається давайте копатися в базі даних і давайте експериментувати із запитами. 399 00:20:16,450 --> 00:20:19,430 >> Так, наприклад, припустимо, Я виконати саме це. 400 00:20:19,430 --> 00:20:22,820 Вибір, який є одним з тих, ключові слова я згадував раніше, зірка, 401 00:20:22,820 --> 00:20:25,900 який представляє всі стовпці в таблиці. 402 00:20:25,900 --> 00:20:26,820 З того, що таблиця? 403 00:20:26,820 --> 00:20:27,990 Ну, користувачі. 404 00:20:27,990 --> 00:20:29,950 І зверніть увагу, є в цьому дивно конвенції в SQL 405 00:20:29,950 --> 00:20:32,140 де ви насправді використовувати назад кліщів, як правило ,, 406 00:20:32,140 --> 00:20:35,940 НЕ одинарні лапки і не подвійні лапки коли ви говорите про таблиці імен, 407 00:20:35,940 --> 00:20:38,990 так назад цитата річ на топ ліва рука на клавіатурі найбільш 408 00:20:38,990 --> 00:20:39,720 швидше за все. 409 00:20:39,720 --> 00:20:41,850 >> Отже, дозвольте мені йти вперед зараз і просто залишити, що поодинці 410 00:20:41,850 --> 00:20:46,020 і перейдіть вниз і натисніть кнопку Перейти, і ми насправді відбувається, щоб побачити те ж саме. 411 00:20:46,020 --> 00:20:52,410 Ми щойно виконали SQL запит кажучи виділити всі зірки 412 00:20:52,410 --> 00:20:55,610 від столу називається користувачів, і то, що ви отримуєте назад це. 413 00:20:55,610 --> 00:20:58,400 В кінцевому рахунку, ми зможемо зробити що те ж саме в коді, 414 00:20:58,400 --> 00:21:02,109 але зараз все, що я хотів у було бачити його у своєму браузері. 415 00:21:02,109 --> 00:21:03,900 Ну давайте щось робити трохи відрізняється. 416 00:21:03,900 --> 00:21:08,330 Дозвольте мені повернутися до закладки SQL, і давайте просто скажемо, що, що? 417 00:21:08,330 --> 00:21:11,520 Zamyla втратив все про неї гроші, і, отже, це 418 00:21:11,520 --> 00:21:13,190 Час для нас, щоб видалити її, як користувач. 419 00:21:13,190 --> 00:21:14,630 НЕ Вона більше не увійшовши в. 420 00:21:14,630 --> 00:21:18,870 >> Так що я збираюся сказати, видаляти із-- добре, підтримувати капіталізацію 421 00:21:18,870 --> 00:21:23,080 для консистенції, видалення з користувачів, де. 422 00:21:23,080 --> 00:21:25,430 І так, ми можемо мати ці предикати, або це 423 00:21:25,430 --> 00:21:31,180 класифікатори, в кінці свого виступу де і як я міг видалити Zamyla? 424 00:21:31,180 --> 00:21:34,190 За її ім'я Zamyla, так колонка, один із стовпців 425 00:21:34,190 --> 00:21:37,950 був названий, так де ім'я = "Zamyla". 426 00:21:37,950 --> 00:21:40,000 І тут я використовую подвійний котирування одиничні лапки, 427 00:21:40,000 --> 00:21:42,958 Ви використовуєте тільки задня кліщів, коли говорити про імена, наприклад, 428 00:21:42,958 --> 00:21:45,130 таблиць або полів. 429 00:21:45,130 --> 00:21:47,440 І дозвольте мені натисніть Go тут. 430 00:21:47,440 --> 00:21:50,400 А тепер, веб-сторінка будучи трохи стривожений. 431 00:21:50,400 --> 00:21:53,620 >> Або, ви дійсно хочете, щоб виконати видалення з користувачів, де ім'я рівнозначно Zamyla? 432 00:21:53,620 --> 00:21:54,680 Так. 433 00:21:54,680 --> 00:22:01,900 Так що тепер, якщо ми повернемося до мого столу клацнувши мишкою користувачів, зверніть увагу, що Hm. 434 00:22:01,900 --> 00:22:02,530 Я потрапив в халепу. 435 00:22:02,530 --> 00:22:04,070 І справді, я ніби натиснув геть так швидко 436 00:22:04,070 --> 00:22:06,195 Ви навіть не бачили Повідомлення червоний помилку, можливо. 437 00:22:06,195 --> 00:22:07,649 Що я зробив не так? 438 00:22:07,649 --> 00:22:09,690 АУДИТОРІЯ: Ви не повинні капіталізувати її ім'я. 439 00:22:09,690 --> 00:22:11,260 Девід Дж Маланій: Так, я капіталізуються її ім'я, 440 00:22:11,260 --> 00:22:13,770 але їй username-- насправді я зробив пару помилок, чи не так? 441 00:22:13,770 --> 00:22:16,720 Один з них, її ім'я користувача є zamyla, в нижньому регістрі Z, 442 00:22:16,720 --> 00:22:20,140 та ім'я стовпця ім'я користувача, не назвати, так що давайте зробимо це знову. 443 00:22:20,140 --> 00:22:25,750 Дозвольте мені йти вперед і видалити з користувачів, де 444 00:22:25,750 --> 00:22:28,990 Ім'я користувача дорівнює цитата кінець цитати "Zamyla". 445 00:22:28,990 --> 00:22:29,490 Добре? 446 00:22:29,490 --> 00:22:32,600 Так що це виглядає трохи краще, нехай мені йти перейдіть вниз і натисніть кнопку Перейти. 447 00:22:32,600 --> 00:22:34,730 Він як і раніше збирається кричати на мене, щоб бути впевненим. 448 00:22:34,730 --> 00:22:37,500 Я натискаю Так, і зараз ми бачимо, відверто це сталося, насправді 449 00:22:37,500 --> 00:22:39,870 швидко, менш ніж за один Другий, звичайно, це 450 00:22:39,870 --> 00:22:41,720 саме запит, який був виконаний. 451 00:22:41,720 --> 00:22:45,617 Щоб підтвердити, дозвольте мені натисніть користувачів і справді тепер Zamyla пішов. 452 00:22:45,617 --> 00:22:46,700 Тепер давайте робити протилежне. 453 00:22:46,700 --> 00:22:49,320 Припустимо, що Гейб хоче зареєструватися на сайті. 454 00:22:49,320 --> 00:22:52,825 Що SQL запитів, що Команда, яку я міг би ввести, щоб додати Гейб? 455 00:22:52,825 --> 00:22:54,200 Ну, це досить просто. 456 00:22:54,200 --> 00:22:58,260 Вставте в користувачів, і тепер це стає трохи загадковим. 457 00:22:58,260 --> 00:23:03,190 Мені потрібно, щоб вказати, щоб сервер, які поля я хочу призначити. 458 00:23:03,190 --> 00:23:06,630 Я насправді не хвилює, що Гейба ID число, так що я збираюся пропустити це. 459 00:23:06,630 --> 00:23:11,360 Я замість збирався сказати Ім'я користувача, хеш, а потім 460 00:23:11,360 --> 00:23:14,960 значення я хочу поставити там буде Гейб. 461 00:23:14,960 --> 00:23:16,800 А потім його хеш, я не знаю. 462 00:23:16,800 --> 00:23:19,900 Так зараз я збираюся Залишимо це велика робити. 463 00:23:19,900 --> 00:23:21,650 Ми повернемося до що в набір проблема 464 00:23:21,650 --> 00:23:23,390 спец, як ви насправді зробити це. 465 00:23:23,390 --> 00:23:24,630 >> Так помітити, знову ж таки, синтаксис. 466 00:23:24,630 --> 00:23:28,430 Вставте в імені таблиці, а потім дужки список полів, 467 00:23:28,430 --> 00:23:30,980 стовпці ви хочете додати Значення в і потім просто 468 00:23:30,980 --> 00:23:34,495 точно такий же порядок зліва Право значень, які ви хочете додати, 469 00:23:34,495 --> 00:23:36,870 і це просто упаковка, бо текст трохи довго. 470 00:23:36,870 --> 00:23:38,520 Так що тепер дозвольте мені натисніть кнопку Перейти. 471 00:23:38,520 --> 00:23:39,830 Один рядок вставляється. 472 00:23:39,830 --> 00:23:43,020 І тепер, якщо я повернуся в користувачі, що цікаво 473 00:23:43,020 --> 00:23:48,960 є те, що не тільки є Гейб зараз в бази даних, що, мабуть його ID? 474 00:23:48,960 --> 00:23:49,820 >> Ну, це сім. 475 00:23:49,820 --> 00:23:51,479 Чому це сім років, коли я не додати його? 476 00:23:51,479 --> 00:23:54,020 Так що це теж є одним з особливості ви отримуєте в базі даних. 477 00:23:54,020 --> 00:23:55,750 Багато побудовано в функціональності. 478 00:23:55,750 --> 00:23:57,950 Виходить, що коли ця таблиця створена, 479 00:23:57,950 --> 00:24:01,390 Я попередньо налаштований це автоматично призначити ідентифікатор таким чином, 480 00:24:01,390 --> 00:24:02,480 що він збільшує. 481 00:24:02,480 --> 00:24:05,470 Так що, якщо ви коли-небудь заглядав, і подивився на те, що ваш Facebook ID 482 00:24:05,470 --> 00:24:09,292 число, в ці дні, це не реально річ зробити, але Facebook в якості API, 483 00:24:09,292 --> 00:24:11,750 Інтерфейс прикладного програмування, в якому ви можете повернутися 484 00:24:11,750 --> 00:24:14,430 ціла купа даних про самі, про своїх друзів, 485 00:24:14,430 --> 00:24:15,347 і ваші з'єднання. 486 00:24:15,347 --> 00:24:17,430 І те, що раніше було начебто круто, ще в день, 487 00:24:17,430 --> 00:24:19,510 було дивитися на те, що ваш Facebook ID номер був. 488 00:24:19,510 --> 00:24:22,390 Марк Цукерберг, Наприклад, це три 489 00:24:22,390 --> 00:24:23,890 так як він був автором сайту. 490 00:24:23,890 --> 00:24:27,610 І як свідчить історія, він створив два тестових облікових записів, користувачі однієї і двома, 491 00:24:27,610 --> 00:24:28,690 який він потім видаляються. 492 00:24:28,690 --> 00:24:32,780 І так, Зак, як і його ім'я користувача на Facebook, це ID номер три, 493 00:24:32,780 --> 00:24:36,110 і у всіх нас є цифри набагато більше, ніж три ці дні. 494 00:24:36,110 --> 00:24:37,980 Справді, в деякій точці Facebook відійшли 495 00:24:37,980 --> 00:24:42,410 від навіть за допомогою INT, який це 32-бітове значення, щоб за допомогою 496 00:24:42,410 --> 00:24:44,480 наступний крок, по суті довго довго так 497 00:24:44,480 --> 00:24:47,150 що вони могли розмістити навіть більше користувачів при реєстрації. 498 00:24:47,150 --> 00:24:49,420 Так весело невеликий історичний факт. 499 00:24:49,420 --> 00:24:51,660 >> Так що це просто Основною синтаксис, з якою 500 00:24:51,660 --> 00:24:54,470 ми можемо виконати кілька запити, але ми можемо насправді 501 00:24:54,470 --> 00:24:56,744 зробити купу більше речей з SQL. 502 00:24:56,744 --> 00:24:58,910 І ви побачите, в підсумку, в задачі встановити сім 503 00:24:58,910 --> 00:25:01,034 що ви повинні зробити Ряд конструктивних рішень, 504 00:25:01,034 --> 00:25:03,290 серед них буде які типи даних, щоб використовувати. 505 00:25:03,290 --> 00:25:08,240 Так само, як в C, є дані типи в базі даних, як MySQL, 506 00:25:08,240 --> 00:25:12,640 і типи даних, ви повинні вибрати від включають ці поля тут. 507 00:25:12,640 --> 00:25:17,287 Чар, VARCHAR, Int, великий інтервал, в десяткового і дата час, і багато інших. 508 00:25:17,287 --> 00:25:18,370 Так що давайте насправді зробити це. 509 00:25:18,370 --> 00:25:21,060 Давайте уявимо, що ми не зробили Рука ви столу учасника 510 00:25:21,060 --> 00:25:25,080 і дозвольте мені йти вперед і створювати, для я, в лекціях database-- 511 00:25:25,080 --> 00:25:31,000 насправді, дайте мені йти вперед і видалити таблиця у мене тут вже 512 00:25:31,000 --> 00:25:32,940 так що ми можемо насправді створити цей. 513 00:25:32,940 --> 00:25:33,550 Упс. 514 00:25:33,550 --> 00:25:35,970 Я збираюся відмовитися від цього стіл, і тепер я 515 00:25:35,970 --> 00:25:38,337 збираюся йти знову до лекції базу даних тут, 516 00:25:38,337 --> 00:25:40,420 Я збираюся створити таблицю звані користувачів і давайте 517 00:25:40,420 --> 00:25:43,010 просто зробити три колонки спочатку і натисніть кнопку Перейти. 518 00:25:43,010 --> 00:25:44,990 >> Тепер, здебільшого, знову ж, це просто 519 00:25:44,990 --> 00:25:48,570 за допомогою цього графічного інструменту під назвою PhpMyAdmin, і що ми робимо зараз 520 00:25:48,570 --> 00:25:49,600 створює таблицю. 521 00:25:49,600 --> 00:25:53,170 Так що це як йти Файл, Новий, і створення нового файлу Excel. 522 00:25:53,170 --> 00:25:55,440 Так що це ставити мені мало питання, зліва направо, 523 00:25:55,440 --> 00:25:58,620 що ім'я першого шпальти, а потім ім'я другого шпальти, 524 00:25:58,620 --> 00:25:59,560 та ім'я третього. 525 00:25:59,560 --> 00:26:00,518 Так що давайте відтворити це. 526 00:26:00,518 --> 00:26:05,460 ID, а потім ім'я користувача було одне, а потім хеш був інший. 527 00:26:05,460 --> 00:26:08,970 Отже слід тип даних бути зараз на поле, як ID? 528 00:26:08,970 --> 00:26:14,470 >> Ось весь перелік типів даних доступні для вас в базі даних, 529 00:26:14,470 --> 00:26:16,070 і зараз давайте просто піти з міжнар. 530 00:26:16,070 --> 00:26:18,160 32-бітове значення, я не думаю реально я 531 00:26:18,160 --> 00:26:21,484 матиме більш 4 млрд користувачі в моєму рахунку, в моїй службі, 532 00:26:21,484 --> 00:26:23,650 так що я збираюся продовжувати рухатися до наступного питання. 533 00:26:23,650 --> 00:26:25,490 Я не збираюся вказувати Довжина або значення, 534 00:26:25,490 --> 00:26:28,540 це не застосовно тут для междунар, як такої. 535 00:26:28,540 --> 00:26:30,740 І тепер я можу вказати, мабуть, за замовчуванням 536 00:26:30,740 --> 00:26:33,970 Значення, яке я не буду вказувати. 537 00:26:33,970 --> 00:26:36,050 Сортування, я не знаю, що це таке. 538 00:26:36,050 --> 00:26:37,290 Атрибут. 539 00:26:37,290 --> 00:26:39,455 Тепер ми насправді є проектне рішення. 540 00:26:39,455 --> 00:26:42,580 Таким чином, є кілька полів тут не все з яких застосовні, але без знака 541 00:26:42,580 --> 00:26:43,380 просто означає, що? 542 00:26:43,380 --> 00:26:45,400 Це інтервал повинен бути? 543 00:26:45,400 --> 00:26:46,210 Просто невід'ємним. 544 00:26:46,210 --> 00:26:48,090 Тому він повинен бути 0 на експлуатацію. 545 00:26:48,090 --> 00:26:51,120 Ні, я не збираюся перевірити, бо Я хочу, щоб кожен користувач мав ідентифікатор, 546 00:26:51,120 --> 00:26:52,470 вона не може бути порожнім. 547 00:26:52,470 --> 00:26:55,949 А потім, ми отримуємо ще трохи цікаві дизайнерські рішення, як це. 548 00:26:55,949 --> 00:26:58,990 Ми повернемося до цього трохи пізніше, але те, що ще однією особливістю даних 549 00:26:58,990 --> 00:27:04,200 є, те, що ви можете сказати сервер баз даних йти вперед 550 00:27:04,200 --> 00:27:07,100 та оптимізувати себе, свою RAM і дискового простору, 551 00:27:07,100 --> 00:27:11,770 так, що вибирає, і вставки, і видаляє і поновлення дуже швидко. 552 00:27:11,770 --> 00:27:13,250 Порівняйте це з pset5. 553 00:27:13,250 --> 00:27:16,259 >> Якщо ви хотіли подивитися щось в хеш-таблиці, яка 554 00:27:16,259 --> 00:27:18,300 Ви думаєте про якість бази даних, хто повинен був зробити все 555 00:27:18,300 --> 00:27:21,500 працювати для прийняття ваш хеш-таблиці швидко. 556 00:27:21,500 --> 00:27:22,840 Це як, очевидно, ви. 557 00:27:22,840 --> 00:27:23,060 Чи не так? 558 00:27:23,060 --> 00:27:26,080 Ви повинні були покласти в усі час штрафу настройка речі, отримуючи хеш-функцію 559 00:27:26,080 --> 00:27:27,820 Право, з'ясовуючи, як багато відра мати. 560 00:27:27,820 --> 00:27:29,611 >> Але те, що добре, знову, про база даних 561 00:27:29,611 --> 00:27:31,762 Ви просто Пунт все це з іншими людьми 562 00:27:31,762 --> 00:27:33,720 хто думав, що це через вас, і те, що 563 00:27:33,720 --> 00:27:37,170 Я збираюся сказати тут під Індекс є те, що мій ID поля 564 00:27:37,170 --> 00:27:41,149 буде основним способом ідентифікації користувачів в цій базі даних. 565 00:27:41,149 --> 00:27:42,940 Я не збираюся думати з Zamyla як Zamyla, 566 00:27:42,940 --> 00:27:45,800 Я збираюся думати про їй, як число 6. 567 00:27:45,800 --> 00:27:49,814 >> Чому це, мабуть, краще інтуїтивно думати і моделі 568 00:27:49,814 --> 00:27:52,480 кожен з ваших індивідуальних рядків, використовуючи число замість чогось 569 00:27:52,480 --> 00:27:56,480 як струна, як в Zamyla або Гейб або більше рядків і раніше? 570 00:27:56,480 --> 00:27:57,444 Да? 571 00:27:57,444 --> 00:28:00,117 >> АУДИТОРІЯ: ID унікальний? 572 00:28:00,117 --> 00:28:01,200 Девід Дж Маланій: знову сказати? 573 00:28:01,200 --> 00:28:02,283 АУДИТОРІЯ: ID унікальний? 574 00:28:02,283 --> 00:28:04,400 Девід Дж Маланій: ID є унікальним, але suppose-- 575 00:28:04,400 --> 00:28:06,320 як у випадку в цілому з іменами користувачів, припускаю, 576 00:28:06,320 --> 00:28:10,110 Я також сказав, що може бути тільки один Zamyla в світі, і тільки один Гейб. 577 00:28:10,110 --> 00:28:13,730 Я міг накласти унікальність обмеження на рядки, теж, якщо я хотів. 578 00:28:13,730 --> 00:28:15,550 Так не погана думка. 579 00:28:15,550 --> 00:28:16,500 >> АУДИТОРІЯ: Більш безпечний. 580 00:28:16,500 --> 00:28:17,874 >> Девід Дж Маланій: Більш безпечний, чому? 581 00:28:17,874 --> 00:28:20,705 АУДИТОРІЯ: Ви не можете сказати, які це який, як і в користувачем. 582 00:28:20,705 --> 00:28:22,580 Девід Дж Маланій: ОК, ви не можу сказати, який користувач 583 00:28:22,580 --> 00:28:24,380 є що таким чином є Конфіденційність аспект до нього, 584 00:28:24,380 --> 00:28:27,810 особливо, якщо ідентифікатори можливо з'являючись в URL. 585 00:28:27,810 --> 00:28:29,960 Так, що, що міг, яку роботу, теж. 586 00:28:29,960 --> 00:28:30,640 Інші думки? 587 00:28:30,640 --> 00:28:31,383 Да? 588 00:28:31,383 --> 00:28:34,316 >> АУДИТОРІЯ: Легше виконувати операції на междунар. 589 00:28:34,316 --> 00:28:35,940 Девід Дж Маланій: Це реальний футболіст. 590 00:28:35,940 --> 00:28:38,850 Це просто більш ефективним, або простіше для комп'ютера, 591 00:28:38,850 --> 00:28:40,431 для виконання операцій на ціле число. 592 00:28:40,431 --> 00:28:40,930 Чи не так? 593 00:28:40,930 --> 00:28:43,905 INT гарантовано бути 32-бітним, в той час як Zamyla 594 00:28:43,905 --> 00:28:47,660 довга кілька символів, Габріель довго ще кілька персонажів, 595 00:28:47,660 --> 00:28:51,930 Девенпорт дійсно довго, і тому не дуже ефективно використовувати 596 00:28:51,930 --> 00:28:55,860 Рядки для порівняння значень і дивитися для полів та оновлення полів, 597 00:28:55,860 --> 00:28:57,790 якщо ви можете піти за допомогою тільки одного цілого. 598 00:28:57,790 --> 00:28:59,090 Всього 32 біт. 599 00:28:59,090 --> 00:29:02,570 Так імена користувачів, теж так, не повинні бути унікальними, 600 00:29:02,570 --> 00:29:05,040 хоча вони, ймовірно, слід бути, і навіть у цьому випадку теж 601 00:29:05,040 --> 00:29:07,520 користувач може бути дозволено змінити своє ім'я користувача. 602 00:29:07,520 --> 00:29:10,810 >> Отже, давайте тепер залишити це як Основним засобом ідентифікації користувача. 603 00:29:10,810 --> 00:29:13,510 Це говорить базу даних йти вперед і оптимізувати себе 604 00:29:13,510 --> 00:29:17,065 так що погляд піднімаю на ID супер швидко. 605 00:29:17,065 --> 00:29:19,620 AI, жахливо по імені, просто означає автоматичне прирощення, 606 00:29:19,620 --> 00:29:21,500 і це перевірка коробка нам потрібно перевірити 607 00:29:21,500 --> 00:29:24,614 вказати, що поле ID, щоб автоматично оновлюватися для мене, 608 00:29:24,614 --> 00:29:26,530 а потім я збираюся прокрутки вправо тут 609 00:29:26,530 --> 00:29:29,279 і, чесно кажучи, я не дуже зацікавлений в будь-який більш з цих полів. 610 00:29:29,279 --> 00:29:30,630 Звичайно, не сьогодні. 611 00:29:30,630 --> 00:29:33,770 >> Так що я збираюся повернутися сюди, в першу колону, де 612 00:29:33,770 --> 00:29:35,830 Мені потрібно вказати ім'я користувача та хеш, і давайте 613 00:29:35,830 --> 00:29:38,080 принаймні, уваги Другий зараз. 614 00:29:38,080 --> 00:29:41,498 Int, ймовірно, не правильний виклик, так що має сенс, можливо? 615 00:29:41,498 --> 00:29:42,741 >> АУДИТОРІЯ: Текст. 616 00:29:42,741 --> 00:29:43,824 Девід Дж Маланій: знову сказати? 617 00:29:43,824 --> 00:29:44,710 АУДИТОРІЯ: Текст. 618 00:29:44,710 --> 00:29:44,980 Девід Дж Маланій: Текст? 619 00:29:44,980 --> 00:29:45,590 ОК, я почув текст. 620 00:29:45,590 --> 00:29:46,090 Що ще? 621 00:29:46,090 --> 00:29:50,520 622 00:29:50,520 --> 00:29:53,860 Ми начебто є купа варіантів які є текстові в природі. 623 00:29:53,860 --> 00:29:55,990 Так що, коли, і чому, зробити Ви використовуєте деякі з них? 624 00:29:55,990 --> 00:29:59,560 Ну голець, всупереч тому, що ви могли б думаю, не один символ. 625 00:29:59,560 --> 00:30:01,550 Це певна кількість символів. 626 00:30:01,550 --> 00:30:04,600 Так що, якщо ми знаємо, що всі імена користувачів повинні бути, як вісім персонажів, 627 00:30:04,600 --> 00:30:08,490 як раніше часто зустрічається у літніх комп'ютерні системи, я міг би сказати символ 628 00:30:08,490 --> 00:30:09,830 і тоді я міг сказати 8 тут. 629 00:30:09,830 --> 00:30:12,930 Ось коли третя колонка стає застосовно при створенні таблиці. 630 00:30:12,930 --> 00:30:15,450 >> Але це вид дратує тому що деякі люди могли б 631 00:30:15,450 --> 00:30:17,660 хочете мати більш тривалий ім'я користувача ніж з восьми символів, 632 00:30:17,660 --> 00:30:19,743 деякі люди, можливо, захочете мають коротший логін, 633 00:30:19,743 --> 00:30:22,210 так чому зобов'язуюся на певний номер? 634 00:30:22,210 --> 00:30:24,710 Чому б не змінну кількість символів і просто 635 00:30:24,710 --> 00:30:28,580 сказати, що максимальна довжина імені це, я не знаю, начебто 64 символів. 636 00:30:28,580 --> 00:30:31,780 Я не можу думати ні про які друзів, які є імена довше 64 символів, 637 00:30:31,780 --> 00:30:34,810 і навіть якщо це занадто короткий, то ви могли б звичайно підняти його вгору довільно. 638 00:30:34,810 --> 00:30:37,330 >> Так VARCHAR є змінною кількість символів. 639 00:30:37,330 --> 00:30:41,010 Текст не поганий інстинкт, і відверто, щось робить те, що він каже, 640 00:30:41,010 --> 00:30:45,460 але текстове поле може бути як 65000 байт, принаймні. 641 00:30:45,460 --> 00:30:50,790 Це, ймовірно, занадто для поле, а насправді, так, 65535. 642 00:30:50,790 --> 00:30:53,740 Це, ймовірно, занадто для назвати, тому ми будемо дотримуватися, як правило ,, 643 00:30:53,740 --> 00:30:56,910 з типу VARCHAR для текстової поле та хеш теж. 644 00:30:56,910 --> 00:30:59,990 Hash, виявляється, ми могли б зробити VARCHAR а чи щось подібне, 645 00:30:59,990 --> 00:31:03,080 але ми не будемо фокусуватися сьогодні на криптографія там і цифри 646 00:31:03,080 --> 00:31:05,210 що ми могли б насправді хочете використовувати для його довжини. 647 00:31:05,210 --> 00:31:07,430 >> Але дозвольте мені прокрутите вниз вправо. 648 00:31:07,430 --> 00:31:11,280 Ви можете мати тільки один Основний індекс для таблиці, 649 00:31:11,280 --> 00:31:16,380 але я хочу, щоб застосувати будь-який з них, Тепер, щоб ім'я користувача, ви скажете? 650 00:31:16,380 --> 00:31:21,980 Що слід ім'я користувача ґрунтуватися на невизначене Розуміння цих чотирьох варіантів? 651 00:31:21,980 --> 00:31:23,340 Просто своїми іменами? 652 00:31:23,340 --> 00:31:24,140 >> АУДИТОРІЯ: Унікальний. 653 00:31:24,140 --> 00:31:25,100 >> Девід Дж Маланій: Так унікальний, чи не так? 654 00:31:25,100 --> 00:31:28,190 Ось і виходить, що не тільки міг Ви скажіть базу даних, заздалегідь, 655 00:31:28,190 --> 00:31:30,380 це є основним способом виявлення полів. 656 00:31:30,380 --> 00:31:32,990 Ви також можете сказати, що це буде унікальна поле. 657 00:31:32,990 --> 00:31:34,700 Це не збирається бути річ Я покладаюся на, 658 00:31:34,700 --> 00:31:38,490 але я хотів би базу даних в по суті є що, якщо умова, так 659 00:31:38,490 --> 00:31:42,340 що якщо я коли-небудь намагалися зареєструйтесь два користувача з тим же ім'ям, 660 00:31:42,340 --> 00:31:44,360 база даних тоншають не збирається дозволити мені. 661 00:31:44,360 --> 00:31:47,490 Я, можливо, додатковий код в PHP, який запобігає стільки, 662 00:31:47,490 --> 00:31:50,640 але база даних теж може забезпечити що це ніколи не трапиться. 663 00:31:50,640 --> 00:31:53,370 >> Тепер, як в сторону, тим більше, що Ви думаєте про кінцевих проектів, 664 00:31:53,370 --> 00:31:57,030 мати на увазі індексацію і повний Текст насправді досить корисно. 665 00:31:57,030 --> 00:32:01,080 Якщо у вас є великі бази даних, а не з десятки, але з сотнями або тисячами 666 00:32:01,080 --> 00:32:05,270 або навіть мільйони полів, ви можете Також скажу базу даних в заздалегідь 667 00:32:05,270 --> 00:32:07,980 це поле я збираюся щоб бути пошук на багато. 668 00:32:07,980 --> 00:32:10,520 Може бути, його ім'я користувача, може бути, це біо, якщо ви 669 00:32:10,520 --> 00:32:13,750 роблячи Facebook-як сайт, який є пункти про те, що користувач дозволили 670 00:32:13,750 --> 00:32:16,799 щоб зберегти, і якщо ви хочете, щоб Чесно базу даних заздалегідь 671 00:32:16,799 --> 00:32:20,090 Я збираюся бути пошук по цьому полю багато, але це не обов'язково унікальні, 672 00:32:20,090 --> 00:32:22,800 Ви можете вказати створити мені індексу. 673 00:32:22,800 --> 00:32:27,990 Або, можна сказати також дозволяє мені зробити роду довільних обшуків, як Command 674 00:32:27,990 --> 00:32:30,420 або управління F, як і ви могли б в текстовий процесор, 675 00:32:30,420 --> 00:32:34,184 так що ви могли б виглядати довільні рядки або підрядка в цій галузі. 676 00:32:34,184 --> 00:32:36,600 Іншими словами, ми отримуємо до точки в семестрі 677 00:32:36,600 --> 00:32:40,720 де ви не повинні турбуватися про як ефективно реалізувати речі. 678 00:32:40,720 --> 00:32:44,540 Вам просто потрібно знати, про те, що проектні рішення, щоб зробити так, щоб ви 679 00:32:44,540 --> 00:32:48,470 використовуючи правильні інструменти для торгівля, щоб максимально задіяти можливості 680 00:32:48,470 --> 00:32:50,380 що інші люди будували для вас. 681 00:32:50,380 --> 00:32:54,240 Таким чином, щоб резюмувати, первинна повинні тільки є один, ви можете мати тільки один, 682 00:32:54,240 --> 00:32:59,630 і це-то й річ ви вчиненням використовуючи для ідентифікації поля однозначно. 683 00:32:59,630 --> 00:33:02,710 Унікальним є просто близькі по духу, але Ви могли б тільки час від часу використовувати його, 684 00:33:02,710 --> 00:33:04,530 але ви хочете база даних нав'язати його. 685 00:33:04,530 --> 00:33:08,050 Індекс просто означає, превентивно прискорити в майбутньому 686 00:33:08,050 --> 00:33:10,230 так що я можу шукати речі в цій галузі. 687 00:33:10,230 --> 00:33:13,700 А потім повний текст, як правило, для пункти, або есе, або великі тіла 688 00:33:13,700 --> 00:33:16,270 тексту, де вас Крім того, можна їсти 689 00:33:16,270 --> 00:33:19,420 дикі карти як еквівалент зірки. 690 00:33:19,420 --> 00:33:19,920 Право. 691 00:33:19,920 --> 00:33:22,580 >> Так що було частково багато, щоб все відразу. 692 00:33:22,580 --> 00:33:25,220 Давайте подивимося, якщо ми не можемо переганяти пару з цих функцій 693 00:33:25,220 --> 00:33:29,540 а потім щось побудувати досить просто, але потужний. 694 00:33:29,540 --> 00:33:31,380 Так серед інших проектні рішення ви знаходитесь 695 00:33:31,380 --> 00:33:34,005 в кінцевому рахунку, буде мати на разом лінії механізмів зберігання. 696 00:33:34,005 --> 00:33:37,370 І дозвольте мені згадати про це в очікуванні остаточних проектів, 697 00:33:37,370 --> 00:33:42,020 і передчуття давайте say-- не давайте зробимо це. 698 00:33:42,020 --> 00:33:43,820 Давайте будувати це мало Спочатку додаток. 699 00:33:43,820 --> 00:33:48,070 Я збираюся піти в моєму терміналі вікно, і тут не 700 00:33:48,070 --> 00:33:52,500 тільки counter.php, які ми зараз збираємося щоб позбутися від уже як недоречні, 701 00:33:52,500 --> 00:33:54,570 але у нас є цілий букет довідників і це 702 00:33:54,570 --> 00:33:58,080 буде дуже близькі по духу до того, що ви побачите в проблемі встановити сім. 703 00:33:58,080 --> 00:34:00,980 >> Таким чином, ми маємо три каталогу включає в себе громадський і шаблони, які 704 00:34:00,980 --> 00:34:05,040 це точно, де ми зупинилися на Понеділок з нашої всієї MVC парадигми. 705 00:34:05,040 --> 00:34:09,290 І Нагадаємо, на публіці буде йти будь-який файл, який я хочу, щоб користувачі насправді 706 00:34:09,290 --> 00:34:12,969 v зможуть відвідати в їх браузер через URL. 707 00:34:12,969 --> 00:34:13,502 Шаблон. 708 00:34:13,502 --> 00:34:14,710 Що ми вкладаємо в шаблонах? 709 00:34:14,710 --> 00:34:17,070 Які речі? 710 00:34:17,070 --> 00:34:21,659 Там було не так багато, але пару Файли принаймні, в понеділок. 711 00:34:21,659 --> 00:34:22,619 Так. 712 00:34:22,619 --> 00:34:23,100 >> АУДИТОРІЯ: Колонтитули? 713 00:34:23,100 --> 00:34:24,516 >> Девід Дж Маланій: Колонтитули. 714 00:34:24,516 --> 00:34:26,679 Тому у нас є щось подібне і сьогодні. 715 00:34:26,679 --> 00:34:30,330 У нас є ще кілька файлів, але Footer я бачу, заголовок, я бачу, 716 00:34:30,330 --> 00:34:31,909 а потім купу інших файлів. 717 00:34:31,909 --> 00:34:35,482 Так що це еквівалентно думку про V MVC, який, 718 00:34:35,482 --> 00:34:37,690 знову, буде трохи більше ясно в проблемі встановити сім, 719 00:34:37,690 --> 00:34:40,380 але це всього лише папка Я покласти багато моїх естетики. 720 00:34:40,380 --> 00:34:42,840 Багато моїх HTML, багато моїх форм. 721 00:34:42,840 --> 00:34:46,899 Між тим, включає в себе, є ще одним Каталог, який має ці три файли 722 00:34:46,899 --> 00:34:48,440 і давайте кинемо швидкий погляд на них. 723 00:34:48,440 --> 00:34:51,699 >> Я збираюся йти вперед і відкрити config.php. 724 00:34:51,699 --> 00:34:54,610 Як з'ясовується, багато як раніше в перспективі, 725 00:34:54,610 --> 00:34:57,850 Ви різке включені CS50 точка ч з pset7. 726 00:34:57,850 --> 00:35:00,780 У сучасному Наприклад, ви йдете зробити еквівалент, що 727 00:35:00,780 --> 00:35:03,600 з вимагають заяви які ефективно 728 00:35:03,600 --> 00:35:05,340 включає в себе ці кілька рядків. 729 00:35:05,340 --> 00:35:08,225 Таким чином, щоб було ясно, що це файл з ім'ям config.php. 730 00:35:08,225 --> 00:35:09,350 І зверніть увагу, що він робить. 731 00:35:09,350 --> 00:35:11,970 Це, мабуть щось робити загадкові, що включення повідомлення про помилки 732 00:35:11,970 --> 00:35:13,680 так що ви можете побачити їх в браузері. 733 00:35:13,680 --> 00:35:15,860 Це, то, мабуть, вимагаючи двох інших файлів 734 00:35:15,860 --> 00:35:19,530 так що це як #include в C, і то це одне ми бачимо, 735 00:35:19,530 --> 00:35:22,720 і ми покладалися на це включається що кошик як функціональність. 736 00:35:22,720 --> 00:35:25,610 >> Це означає, печиво волю направляється назад і вперед. 737 00:35:25,610 --> 00:35:27,290 Так чому це цікаво? 738 00:35:27,290 --> 00:35:32,460 Ну, якщо ми повернемося до цього каталог і відкрити, наприклад, 739 00:35:32,460 --> 00:35:33,741 constance.php. 740 00:35:33,741 --> 00:35:38,840 Зверніть увагу, що PHP робить підтримки константи, це не зовсім так #define в C, 741 00:35:38,840 --> 00:35:41,290 Замість цього, ви в буквальному сенсі кажуть визначені, і повідомлення 742 00:35:41,290 --> 00:35:44,110 що я збережені заздалегідь чотири константи в цьому файлі. 743 00:35:44,110 --> 00:35:47,020 Один для сьогоднішньої базі даних, для мій пароль, для своїм ім'ям, 744 00:35:47,020 --> 00:35:48,690 і для імені сервера. 745 00:35:48,690 --> 00:35:51,644 Так вони насправді відбувається, щоб бути дуже схожі на проблеми встановіть сім. 746 00:35:51,644 --> 00:35:54,560 І, нарешті, і це те, де я знаходжусь збирається отримати деякі цікаві функції 747 00:35:54,560 --> 00:35:59,000 від персоналу, в functions.php це купа коду ми написали, 748 00:35:59,000 --> 00:36:01,040 і я вкрав частину цього від проблем встановити сім 749 00:36:01,040 --> 00:36:05,920 на сьогоднішній день, що робить купу речей і давайте просто подивимося на один з них 750 00:36:05,920 --> 00:36:07,270 зокрема. 751 00:36:07,270 --> 00:36:09,720 Ця функція тут, запит, буде 752 00:36:09,720 --> 00:36:13,600 Функція PHP ми називаємо для виконання SQL. 753 00:36:13,600 --> 00:36:16,070 Хвилину тому ми були з допомогою PhpMyAdmin, але це тільки 754 00:36:16,070 --> 00:36:18,720 для роду навчальних цілях і діагностичних цілях 755 00:36:18,720 --> 00:36:20,494 і забуваючи свій набір баз даних. 756 00:36:20,494 --> 00:36:22,660 Коли ви насправді використовувати ваш бази даних, ви, людина, 757 00:36:22,660 --> 00:36:24,100 явно не збирається щоб бути підтягування павутину 758 00:36:24,100 --> 00:36:25,740 сторінка щоразу хтось реєструється. 759 00:36:25,740 --> 00:36:29,870 Ви збираєтеся писати код, який Вставки і видаляє користувачів на вимогу, 760 00:36:29,870 --> 00:36:32,490 і ми збираємося це зробити шляхом функції запиту. 761 00:36:32,490 --> 00:36:35,360 Якщо я зараз прокрутите вниз, є буде ще кілька функцій. 762 00:36:35,360 --> 00:36:37,170 Перенаправлення збирається бути функцією, яку ми написали 763 00:36:37,170 --> 00:36:40,160 для вас, що дозволяє відправити користувача на інший URL, 764 00:36:40,160 --> 00:36:43,780 і надавати є функцією, зовсім як ми бачили в понеділок, що насправді робить 765 00:36:43,780 --> 00:36:48,000 Шаблон, але більше на них в форма власного ходьби pset7 через. 766 00:36:48,000 --> 00:36:50,500 Зараз, давайте йти вперед і робити це. 767 00:36:50,500 --> 00:36:54,860 >> Відпусти мене в моїй лекції таблиці і бачити, що немає в даний час нічого 768 00:36:54,860 --> 00:36:59,640 тут прямо зараз, і дозвольте мені також піти в моєму загальному каталозі, де 769 00:36:59,640 --> 00:37:02,780 є тільки один файл, index.php. 770 00:37:02,780 --> 00:37:06,920 Цей файл, як видається, супер просто на даний момент, це виглядає так само, як це. 771 00:37:06,920 --> 00:37:09,110 Дуже подобається, як ми зупинилися в понеділок. 772 00:37:09,110 --> 00:37:11,945 Я вимагаючи цей файл, config.php, який знаходиться в 773 00:37:11,945 --> 00:37:15,160 включає в себе каталог, в якому в дві точки, мої батьки, 774 00:37:15,160 --> 00:37:17,650 а потім він просто надання цей файл. 775 00:37:17,650 --> 00:37:18,960 Так що ж таке цей файл? 776 00:37:18,960 --> 00:37:24,700 >> Відкриємо в моїх шаблонів form.php, і ми побачимо, це. 777 00:37:24,700 --> 00:37:28,500 Супер просто, мабуть, ця форма збирається представити на $ _GET або $ _POST. 778 00:37:28,500 --> 00:37:29,320 Швидка перевірка розсудливість. 779 00:37:29,320 --> 00:37:33,760 780 00:37:33,760 --> 00:37:35,690 Буквально візуально шукати файл. 781 00:37:35,690 --> 00:37:36,610 Метод дорівнює пост. 782 00:37:36,610 --> 00:37:39,280 Так що не збирається використовувати URL, як Google робить, він збирається розібратися в хованки 783 00:37:39,280 --> 00:37:41,030 Інформація позаду сцени і це 784 00:37:41,030 --> 00:37:43,580 збирається представити Файл називається register.php, 785 00:37:43,580 --> 00:37:45,660 і ось файл ми ще не написана 786 00:37:45,660 --> 00:37:47,610 але те, що це буде щоб виглядати це. 787 00:37:47,610 --> 00:37:52,670 >> Якщо я йду на окрему сторінку Це що локальний / index.php виглядає. 788 00:37:52,670 --> 00:37:56,930 І знову, сервера просто припускаючи index.php. 789 00:37:56,930 --> 00:37:57,910 Enter. 790 00:37:57,910 --> 00:37:59,870 Так ось де ми на, і те, що я хочу зробити, 791 00:37:59,870 --> 00:38:02,450 матиме можливість ввести речі як Давид, а потім 792 00:38:02,450 --> 00:38:08,050 мій номер телефону, який буде говорити, 617-555-1212 зараз, зареєструйтесь 793 00:38:08,050 --> 00:38:09,910 і тепер register.php не був знайдений. 794 00:38:09,910 --> 00:38:11,440 Тому мені потрібно, щоб реалізувати це. 795 00:38:11,440 --> 00:38:13,320 Так що давайте швидко збити щось на зразок цього вгору. 796 00:38:13,320 --> 00:38:18,640 Відпусти мене в мій загальний каталог і зробити Gedit з register.php, 797 00:38:18,640 --> 00:38:22,300 і тепер я збираюся йти вперед і почати режим PHP, як ми це робили в понеділок, 798 00:38:22,300 --> 00:38:25,430 і тег близького РНР, і давайте робити кілька речей. 799 00:38:25,430 --> 00:38:28,336 >> Так що, мені відомо, від написавши цю форму, 800 00:38:28,336 --> 00:38:29,960 що я хочу, щоб перевірити на наступному. 801 00:38:29,960 --> 00:38:35,670 Якщо він порожній, то, що користувач набрали в в поле імені, то 802 00:38:35,670 --> 00:38:39,860 Я збираюся щось сказати як вибачитися відсутній ім'я. 803 00:38:39,860 --> 00:38:42,380 Вибачаюся, тим часом, невбудованої в PHP речі, 804 00:38:42,380 --> 00:38:45,970 це функція, яку ми написали в functions.php для pset7 805 00:38:45,970 --> 00:38:47,940 так що у вас є доступ до нього. 806 00:38:47,940 --> 00:38:53,830 Інакше, якщо інше поле порожній, номер, то я 807 00:38:53,830 --> 00:38:58,370 збирається вибачатися перед Користувач і сказати відсутнє число. 808 00:38:58,370 --> 00:38:59,320 Збережіть цей файл. 809 00:38:59,320 --> 00:39:02,640 >> Тепер давайте повернемося до мого браузері повернутися на форум, спробуйте ще раз. 810 00:39:02,640 --> 00:39:04,070 Реєстрація. 811 00:39:04,070 --> 00:39:05,090 Добре. 812 00:39:05,090 --> 00:39:06,730 Нічого не сталося, і це добре. 813 00:39:06,730 --> 00:39:08,120 Я не отримаєте повідомлення про помилку. 814 00:39:08,120 --> 00:39:11,651 Але якщо замість цього, давайте Перезавантажити сторінка, а не надавати нічого. 815 00:39:11,651 --> 00:39:12,150 Чорт візьми. 816 00:39:12,150 --> 00:39:15,350 817 00:39:15,350 --> 00:39:17,140 Зробіть це. 818 00:39:17,140 --> 00:39:18,810 Реєстрація. 819 00:39:18,810 --> 00:39:20,350 Що я зробив не так? 820 00:39:20,350 --> 00:39:24,860 Якщо порожньо, ім'я $ _POST. 821 00:39:24,860 --> 00:39:26,350 Знову сказати? 822 00:39:26,350 --> 00:39:27,670 >> О, звичайно. 823 00:39:27,670 --> 00:39:30,919 Я забув найважливішу частину, яка це вимагає ("../ включає / config.php."). 824 00:39:30,919 --> 00:39:34,210 825 00:39:34,210 --> 00:39:36,460 Мені потрібно, щоб мати доступ до вибачитися функцію, яка 826 00:39:36,460 --> 00:39:37,770 Тому нічого не відбувається. 827 00:39:37,770 --> 00:39:39,460 Функція насправді не існує. 828 00:39:39,460 --> 00:39:40,640 Отже, давайте спробуємо це знову. 829 00:39:40,640 --> 00:39:42,350 Давайте перезавантажте сторінку, натисніть Реєстрація. 830 00:39:42,350 --> 00:39:43,060 Добре. 831 00:39:43,060 --> 00:39:43,770 Там це. 832 00:39:43,770 --> 00:39:45,700 Так, на виході ми знаходимося бачачи ось результат 833 00:39:45,700 --> 00:39:47,685 виклику вибачитися Функція, супер просто, 834 00:39:47,685 --> 00:39:50,060 і це просто виводить все Я даю його як аргумент. 835 00:39:50,060 --> 00:39:51,370 >> Гаразд, так що давайте співпрацювати. 836 00:39:51,370 --> 00:39:54,240 Давайте забезпечити моє ім'я як Давид, зареєструйтесь, 837 00:39:54,240 --> 00:39:56,890 відсутній номер ОК давайте передбачають, що теж. 838 00:39:56,890 --> 00:39:58,650 617-555-1212. 839 00:39:58,650 --> 00:39:59,250 Реєстрація. 840 00:39:59,250 --> 00:39:59,750 Добре. 841 00:39:59,750 --> 00:40:02,760 Так все добре зараз, просто нічого Цікаво, що відбувається. 842 00:40:02,760 --> 00:40:06,000 Так що тепер давайте зробимо щось більш Цікаво трапитися, як це. 843 00:40:06,000 --> 00:40:09,980 Пусти в PhpMyAdmin, і давайте насправді створити таблицю з іменем користувачів, 844 00:40:09,980 --> 00:40:12,330 Я збираюся дати йому три колони, і я буду швидко 845 00:40:12,330 --> 00:40:16,250 створити ідентифікатор, а потім назвати, а потім номер, 846 00:40:16,250 --> 00:40:18,832 і поле ID я збирається залишати якості междунар. 847 00:40:18,832 --> 00:40:20,790 Поле імені я збираюся залишити як VARCHAR, 848 00:40:20,790 --> 00:40:23,257 і ми скажемо 64, кілька умовно. 849 00:40:23,257 --> 00:40:25,090 Я збираюся номер зробити, ви знаєте, що? 850 00:40:25,090 --> 00:40:27,350 Ми збираємося в Підтримайте нас цифри тут, 851 00:40:27,350 --> 00:40:31,510 так що я збираюся зробити щось як гольця, а потім 10 символів 852 00:40:31,510 --> 00:40:34,540 макс для коду міста а потім сім цифр. 853 00:40:34,540 --> 00:40:37,870 А потім сюди, я збираюся вказати автоматичне прирощення цій області, 854 00:40:37,870 --> 00:40:40,550 зробити це первинний ключ, і Я збираюся йти вперед і не 855 00:40:40,550 --> 00:40:42,240 перевірити будь-який з цих інших ящиків. 856 00:40:42,240 --> 00:40:48,030 >> Тому, коли я тепер, нарешті, натисніть кнопку Зберегти, і я повертаюся до мого столу користувачів, 857 00:40:48,030 --> 00:40:52,270 це те, що він виглядає як якби я Тепер натисніть структуру новій вкладці. 858 00:40:52,270 --> 00:40:54,550 Так що це, щоб бути ясно, це просто спосіб PhpMyAdmin в 859 00:40:54,550 --> 00:40:58,570 сказати своє таблицю бази даних має ідентифікатор, ім'я та номер 860 00:40:58,570 --> 00:41:02,040 з цих конкретних конфігурацій і ми будемо ігнорувати інші поля 861 00:41:02,040 --> 00:41:03,140 є на даний момент. 862 00:41:03,140 --> 00:41:04,810 >> Так що тепер я хочу зробити? 863 00:41:04,810 --> 00:41:09,060 Так що, якщо я йду зараз у моїй Вихідний код, якщо все добре 864 00:41:09,060 --> 00:41:11,190 Я хочу, щоб виконати наступний запит. 865 00:41:11,190 --> 00:41:14,970 Вставте в, і я можу тільки кажуть користувачі я не строго 866 00:41:14,970 --> 00:41:18,620 потрібні ті назад кліщів, якщо це безпечне слово як користувачів. 867 00:41:18,620 --> 00:41:22,810 Я збираюся сказати ім'я, число, а потім тут я 868 00:41:22,810 --> 00:41:24,960 не збирається жорсткий код цифра значень ще. 869 00:41:24,960 --> 00:41:26,760 Я збираюся поставити два знаки питання. 870 00:41:26,760 --> 00:41:29,320 І ця угода на багатьох мовах 871 00:41:29,320 --> 00:41:31,730 в результаті чого, якщо ви хочете мати заповнювач для рядка 872 00:41:31,730 --> 00:41:34,105 Ви збираєтеся використовувати питання знаки, з причин, ми будемо 873 00:41:34,105 --> 00:41:36,370 повернутися, щоб поговорити про безпеки, і тут 874 00:41:36,370 --> 00:41:39,420 Я збираюся пройти в ті два поля прикріплювати ім'я, 875 00:41:39,420 --> 00:41:44,850 а потім розмістити ряд, і зараз зберегти файл. 876 00:41:44,850 --> 00:41:47,090 >> А тепер я збираюся спуститися тут супер 877 00:41:47,090 --> 00:41:55,690 просто сказати rendersuccess.php, який буде ще один шаблон. 878 00:41:55,690 --> 00:41:57,380 Я збираюся створити дуже швидко. 879 00:41:57,380 --> 00:42:06,270 Geditsuccess.php і я просто хочу, сказати H1 успіху в цьому файлі. 880 00:42:06,270 --> 00:42:06,990 Добре. 881 00:42:06,990 --> 00:42:11,312 Так що тепер, давайте повернемося до Браузер, де я побував раніше. 882 00:42:11,312 --> 00:42:14,270 Давайте підемо далі і підтвердити я написав Давида, я написав в номер телефону, 883 00:42:14,270 --> 00:42:15,390 зареєструйтесь. 884 00:42:15,390 --> 00:42:16,100 Чорт візьми. 885 00:42:16,100 --> 00:42:17,420 Що я зробив не так? 886 00:42:17,420 --> 00:42:20,850 Так я бачу помилку тут, вам є помилка в вашому синтаксисі SQL. 887 00:42:20,850 --> 00:42:24,900 Дозвольте мені перейти до Gedit, нехай мені повернутися до register.php, 888 00:42:24,900 --> 00:42:28,830 і що ж я пропустити що було важливо в останній раз? 889 00:42:28,830 --> 00:42:29,722 Мені потрібно це. 890 00:42:29,722 --> 00:42:32,930 Ви хочете знати, що крім від помітивши раніше, але мені потрібно це. 891 00:42:32,930 --> 00:42:35,596 >> Так що тепер давайте повернемося, і це було корисно побачити в браузері 892 00:42:35,596 --> 00:42:37,680 і ось чому в config.php ми плювати на помилки. 893 00:42:37,680 --> 00:42:41,770 Давайте підемо далі і перезавантажте, натисніть кнопку Продовжити, успіх. 894 00:42:41,770 --> 00:42:47,060 Так що тепер дозвольте мені перейти до моїх У базі тут і натисніть на користувачів, 895 00:42:47,060 --> 00:42:51,680 і переглядати, і зверніть увагу, я зараз є Давида в моїй базі даних тут. 896 00:42:51,680 --> 00:42:55,810 Тепер технічно цей сайт ще не в громадському Інтернеті, 897 00:42:55,810 --> 00:42:57,890 так що я не можу мати друга люди в покласти тут, 898 00:42:57,890 --> 00:43:01,120 але якщо я зараз хотів, для Примірник, відправити собі текстове повідомлення. 899 00:43:01,120 --> 00:43:03,920 Давайте виходити на кінцівки тут і подивитися, якщо це насправді працює. 900 00:43:03,920 --> 00:43:07,331 Я збираюся йти вперед і видалити цей рядок 901 00:43:07,331 --> 00:43:09,080 і ми будемо розмивати цей в відео пізніше 902 00:43:09,080 --> 00:43:11,900 таким чином, ми не повинні Весь Інтернет текстових мене, 903 00:43:11,900 --> 00:43:17,270 і ми тепер будемо йти до Браузер і ми будемо переходити на лекції 904 00:43:17,270 --> 00:43:22,040 і ми будемо вводити в різні Кількість тут, зареєструйтесь, успіх. 905 00:43:22,040 --> 00:43:25,550 >> Так що тепер, мій власний номер це імовірно в база даних, і тепер найцікавіше. 906 00:43:25,550 --> 00:43:28,774 Давайте реально використовувати PHP, щоб зробити щось програмно, 907 00:43:28,774 --> 00:43:30,940 або за допомогою команди лінія або звідкись ще, 908 00:43:30,940 --> 00:43:32,773 і на даний момент я просто збираюся тримати його просто 909 00:43:32,773 --> 00:43:36,230 і я збираюся йти в мій каталог тут і зробити наступне. 910 00:43:36,230 --> 00:43:44,920 Gedit скрипт скажімо, ми будемо називають його текст, #! / користувач / бен / ENV PHP, 911 00:43:44,920 --> 00:43:46,700 як ми бачили востаннє. 912 00:43:46,700 --> 00:43:47,950 PHP. 913 00:43:47,950 --> 00:43:55,055 >> Тепер я збираюся вимагають включає config.php, 914 00:43:55,055 --> 00:43:57,360 хоча це може викликати невелику помилку. 915 00:43:57,360 --> 00:44:03,960 А тепер я збираюся йти вперед і сказати, Рядки, запит, виберіть зірка від користувачів, 916 00:44:03,960 --> 00:44:08,149 а тепер ось я збираюся зробити техніку з минулого разу на кожні рядків як підряд. 917 00:44:08,149 --> 00:44:09,690 І я збираюся зробити щось просте. 918 00:44:09,690 --> 00:44:19,090 PRINTF скажімо звуть це, і число це, зворотний слеш н. 919 00:44:19,090 --> 00:44:23,320 А тепер я збираюся пройти в рядку цитувати кінець цитати ім'я, 920 00:44:23,320 --> 00:44:28,140 і номер рядка цитата кінець цитати, а тепер давайте йти вперед 921 00:44:28,140 --> 00:44:31,430 і моя вікно терміналу CHMOD це + х, щоб зробити 922 00:44:31,430 --> 00:44:33,970 цей сценарій називається текст виконуваний. 923 00:44:33,970 --> 00:44:36,080 А тепер давайте запустимо текст. 924 00:44:36,080 --> 00:44:37,590 >> Отже, прогрес. 925 00:44:37,590 --> 00:44:39,960 Так що я тепер написано Сценарій командного рядка, 926 00:44:39,960 --> 00:44:43,300 на мові, званому PHP, що, через це вимагають лінії, 927 00:44:43,300 --> 00:44:46,380 має доступ до всіх цих конфігурації константи, які я обмовляються. 928 00:44:46,380 --> 00:44:48,177 Ім'я бази даних і так далі. 929 00:44:48,177 --> 00:44:50,260 Справді, лише б бути ясно, що це не випадковість, 930 00:44:50,260 --> 00:44:54,730 дозвольте мені йти вперед і зареєструватися, дуже швидко, хтось ще, як Роб 931 00:44:54,730 --> 00:44:58,890 і дасть йому номер 555-1212. 932 00:44:58,890 --> 00:45:01,557 >> І тепер, якщо я запустити скрипт знову, зверніть увагу на харчування 933 00:45:01,557 --> 00:45:03,140 про те, що ми робимо з базою даних. 934 00:45:03,140 --> 00:45:07,680 Тепер я відразу видно, що Два інших рядків в моїй базі даних. 935 00:45:07,680 --> 00:45:10,699 Так що тепер давайте спробуємо щось зробити навіть любитель всередині, 936 00:45:10,699 --> 00:45:12,740 і це частина ми в не перевіряв заздалегідь, 937 00:45:12,740 --> 00:45:15,910 так востаннє я зробив це справи пішли жахливо криво, 938 00:45:15,910 --> 00:45:17,120 у нас є відео з цією метою. 939 00:45:17,120 --> 00:45:18,286 >> Насправді, так, смішно сторону. 940 00:45:18,286 --> 00:45:20,480 Так востаннє, в лекції, як два роки тому, 941 00:45:20,480 --> 00:45:23,230 ми вирішили, я вирішив, щоб бути Все це було б прекрасною ідеєю 942 00:45:23,230 --> 00:45:28,150 динамічно генерувати повідомлення в Клас, використовуючи весь CS50 бази даних 943 00:45:28,150 --> 00:45:33,390 Студенти, які дали нам їх номери та їх носії для мобільників, які вам 944 00:45:33,390 --> 00:45:36,290 може пригадати з pset0, як міркувати, то виходить, 945 00:45:36,290 --> 00:45:40,650 У мене був недолік в моїй програмі і зробив пару помилок в 2012 році, я думаю. 946 00:45:40,650 --> 00:45:43,997 >> Причому, один у мене був цикл, що зробив саме такого роду речі, 947 00:45:43,997 --> 00:45:46,580 ітерації по базі даних, отримувати ім'я з бази даних, 948 00:45:46,580 --> 00:45:49,940 назвати з бази даних, а потім на кожен ітерація цього циклу я послав електронного листа. 949 00:45:49,940 --> 00:45:54,130 Але замість того щоб відправити одну електронну пошту, я відправлено одну електронну пошту першої ітерації, 950 00:45:54,130 --> 00:45:58,200 і два листи друга ітерація, послав три листи друга ітерація, яка 951 00:45:58,200 --> 00:46:01,230 як ви, можливо, пам'ятаєте з нашого обговорення асимптотической записи 952 00:46:01,230 --> 00:46:06,400 це великий виведення погано, як п в квадраті це скільки повідомлень я послав, 953 00:46:06,400 --> 00:46:08,560 але це не було навіть листи це було текстові повідомлення. 954 00:46:08,560 --> 00:46:12,070 >> І, як ви знаєте, відвідуваність НЕ супер високою до кінця семестру 955 00:46:12,070 --> 00:46:15,360 і тому я думав, що це було б мило на Пора сказати, "Чому ти не клас?" 956 00:46:15,360 --> 00:46:17,880 В текстовому повідомленні I відправлено на весь клас, 957 00:46:17,880 --> 00:46:22,140 і це було забавно, подобається 50% клас, але інші 50%, деякі з яких 958 00:46:22,140 --> 00:46:26,102 хвилювався, я послав неймовірно апологетичні солодкі ноти 959 00:46:26,102 --> 00:46:28,560 щоб співробітники вибачаючись за пропустивши лекцію просто 960 00:46:28,560 --> 00:46:29,530 цього разу, чи не так? 961 00:46:29,530 --> 00:46:32,790 962 00:46:32,790 --> 00:46:34,030 >> Так що б жахливо криво. 963 00:46:34,030 --> 00:46:37,030 Так що в цьому дусі, давайте спробуємо це знову, але тільки з моїм номером. 964 00:46:37,030 --> 00:46:41,940 Заздалегідь, в functions.php, Я написав цю функцію тут. 965 00:46:41,940 --> 00:46:44,250 Це називається текст, і це приймає три аргументи. 966 00:46:44,250 --> 00:46:46,360 Ряд, перевізник, і повідомлення. 967 00:46:46,360 --> 00:46:50,390 >> Я використовую перемикача заяву, в якій чудесно PHP прийняти рядків, а не тільки 968 00:46:50,390 --> 00:46:53,350 цілі числа, і я не реалізували вся підтримка для цього ще, 969 00:46:53,350 --> 00:46:55,370 Я тільки що зробив AT & T і Verizon. 970 00:46:55,370 --> 00:46:57,610 Бо виходить, що з цих носіїв 971 00:46:57,610 --> 00:47:00,570 у них є лист, в SMS-шлюзів, в якому ви можете насправді 972 00:47:00,570 --> 00:47:05,529 Надіслати електронною поштою на адресу як номер телефону в vtext.com 973 00:47:05,529 --> 00:47:08,070 і якщо користувач не заблокований повідомлення, він буде йти через 974 00:47:08,070 --> 00:47:09,340 є текстовим повідомленням. 975 00:47:09,340 --> 00:47:13,270 >> Тепер, щоб зробити це, я буду мати, щоб додати одне поле дуже швидко в свою базу даних. 976 00:47:13,270 --> 00:47:15,470 Я збираюся піти в моя структура, і я 977 00:47:15,470 --> 00:47:21,880 збираюся йти вперед і додати поле в кінці таблиці. 978 00:47:21,880 --> 00:47:25,227 Давайте натисніть Go, і я буду називати цю носій 979 00:47:25,227 --> 00:47:27,310 і на даний момент я збираюся залишити це як бар тексту, 980 00:47:27,310 --> 00:47:29,320 але ми можемо бути незвичайним в майбутньому. 981 00:47:29,320 --> 00:47:31,961 Я збираюся йти швидко в моєму столі, і я 982 00:47:31,961 --> 00:47:34,210 збирається позбутися Роба, бо це підробка номер, 983 00:47:34,210 --> 00:47:38,540 Я збираюся піти в режим редагування тут, і я збираюся міняти свій носій вручну 984 00:47:38,540 --> 00:47:43,410 бути Verizon, який його є, і зараз тут. 985 00:47:43,410 --> 00:47:44,980 >> Давайте робити швидку перевірку осудності. 986 00:47:44,980 --> 00:47:52,730 Давайте відкриємо наш текстовий сценарій, який виглядає таким чином, перевізник% с. 987 00:47:52,730 --> 00:47:58,230 Ми робимо набагато більше помилку перевірки, ніж я зробив у 2012 році, носій. 988 00:47:58,230 --> 00:48:01,160 А тепер, я збираюся піти вперед і повторно запустити скрипт. 989 00:48:01,160 --> 00:48:01,660 Добре. 990 00:48:01,660 --> 00:48:06,100 Перевізник Verizon, а це означає, Тепер, сподіваюся, що я можу зробити тільки це. 991 00:48:06,100 --> 00:48:08,360 Правильно цього року, будемо сподіватися, тут ми йдемо. 992 00:48:08,360 --> 00:48:12,200 >> Так всередині цього цикл, я збирається не тільки мати цю Printf, 993 00:48:12,200 --> 00:48:15,990 Я також буду називати текст і Використання цієї функції виклику 994 00:48:15,990 --> 00:48:19,670 був він приймає ряд, Носій, і повідомлення. 995 00:48:19,670 --> 00:48:23,310 Отже, давайте подивимося, кількість збирається бути рядка кошторису кінець цитати "номер" 996 00:48:23,310 --> 00:48:31,660 ряд цитата кінець цитати "Перевізник", і останній був повідомлень. 997 00:48:31,660 --> 00:48:36,250 Не зіпсувати цього року, крапку з комою. 998 00:48:36,250 --> 00:48:36,780 >> Добре. 999 00:48:36,780 --> 00:48:38,280 Пальці схрещені. 1000 00:48:38,280 --> 00:48:39,970 Давайте подивимося, якщо це працює. 1001 00:48:39,970 --> 00:48:41,720 Гаразд, так. 1002 00:48:41,720 --> 00:48:43,000 Тут ми йдемо. 1003 00:48:43,000 --> 00:48:47,380 Давайте розблокувати телефон, схрестіть пальці, чорт забирай. 1004 00:48:47,380 --> 00:48:50,300 Невизначена змінна may-- про чекати, чекати, чекати, дуже швидко. 1005 00:48:50,300 --> 00:48:51,340 Дуже швидко, дуже швидко. 1006 00:48:51,340 --> 00:48:53,380 Це повністю стоїть. 1007 00:48:53,380 --> 00:48:57,710 Дозвольте мені взяти, дозвольте мені захопити, е-е-о. 1008 00:48:57,710 --> 00:48:59,965 Спасибі, тексти є почав з кимось ще. 1009 00:48:59,965 --> 00:49:04,770 1010 00:49:04,770 --> 00:49:11,650 Дозвольте мені йти вперед і відкрити реальний швидко, dropbox.php / пошти тут. 1011 00:49:11,650 --> 00:49:12,660 В режимі очікування. 1012 00:49:12,660 --> 00:49:14,455 Варто того. 1013 00:49:14,455 --> 00:49:17,430 Завантаження. 1014 00:49:17,430 --> 00:49:18,560 ОК, джерело src8m. 1015 00:49:18,560 --> 00:49:19,700 Добре. 1016 00:49:19,700 --> 00:49:21,380 >> Вам потрібно більше одного рядка тут. 1017 00:49:21,380 --> 00:49:24,530 Про ось вона, це в Фрош Чати, це в реєстрі в три. 1018 00:49:24,530 --> 00:49:28,820 О, привіт, Марго, спасибі Вам велике. 1019 00:49:28,820 --> 00:49:31,130 ОК, і я пропускав цю лінію. 1020 00:49:31,130 --> 00:49:33,010 Отже, дозвольте мені швидко захопити цей рядок коду, 1021 00:49:33,010 --> 00:49:36,200 який включає в пошту або бібліотеку що я насправді хочу використовувати, 1022 00:49:36,200 --> 00:49:38,300 Я швидко збирається повернутися у функції, 1023 00:49:38,300 --> 00:49:42,337 Я збираюся поїхати в верхній частині цього подати і вимагають цей файл, а, 1024 00:49:42,337 --> 00:49:45,420 і тепер я збираюся дійсно перетнути мій пальці, коли я повернуся в команду 1025 00:49:45,420 --> 00:49:49,530 Лінія скрипт, який знаходиться всередині сьогодні локальний каталог господар. 1026 00:49:49,530 --> 00:49:50,610 Запустіть текст. 1027 00:49:50,610 --> 00:49:52,720 Enter. 1028 00:49:52,720 --> 00:49:53,220 Пошта. 1029 00:49:53,220 --> 00:49:53,719 В режимі очікування. 1030 00:49:53,719 --> 00:49:58,850 1031 00:49:58,850 --> 00:49:59,600 В режимі очікування. 1032 00:49:59,600 --> 00:50:01,680 Пошта. 1033 00:50:01,680 --> 00:50:02,290 О, добре. 1034 00:50:02,290 --> 00:50:03,870 Тут ми йдемо. 1035 00:50:03,870 --> 00:50:06,880 >> Пошта отримує новий PHP поштової програми. 1036 00:50:06,880 --> 00:50:09,970 Я зробив це право? 1037 00:50:09,970 --> 00:50:11,067 Чорт візьми. 1038 00:50:11,067 --> 00:50:12,150 To-- ой, почекайте, почекайте, почекайте. 1039 00:50:12,150 --> 00:50:12,649 Очікування. 1040 00:50:12,649 --> 00:50:15,820 1041 00:50:15,820 --> 00:50:18,630 Я обіцяю, що це буде так стоїть. 1042 00:50:18,630 --> 00:50:20,340 Адреса. 1043 00:50:20,340 --> 00:50:24,390 Ось чому я не роблю приклади прямо перед класом. 1044 00:50:24,390 --> 00:50:26,350 Тьху. 1045 00:50:26,350 --> 00:50:27,910 Наступні одержувачі не вдалося. 1046 00:50:27,910 --> 00:50:31,500 1047 00:50:31,500 --> 00:50:33,040 Давайте спробуємо одну річ. 1048 00:50:33,040 --> 00:50:40,660 SMTP встановлено с, додати адресу, адреса, який насправді. 1049 00:50:40,660 --> 00:50:43,980 Давайте спробуємо цю останню частину в адресі. 1050 00:50:43,980 --> 00:50:47,210 Ой, я дійсно сумно зараз. 1051 00:50:47,210 --> 00:50:47,854 Спасибо. 1052 00:50:47,854 --> 00:50:50,270 Але я дуже ціную все тексти ви посилали. 1053 00:50:50,270 --> 00:50:53,130 1054 00:50:53,130 --> 00:50:56,320 У вас є цей Давида. 1055 00:50:56,320 --> 00:50:59,310 Ти підірвати його. 1056 00:50:59,310 --> 00:51:01,720 Залишимо його там і ми виправимо в понеділок. 1057 00:51:01,720 --> 00:51:04,290 Побачимося. 1058 00:51:04,290 --> 00:51:08,090 >> Daven Фарнхем: А тепер Deep Думки по Daven Фарнем. 1059 00:51:08,090 --> 00:51:11,340 1060 00:51:11,340 --> 00:51:17,590 Якщо бінарне дерево падає в лісі і ніхто не навколо, щоб C it-- [посміюючись]. 1061 00:51:17,590 --> 00:51:18,998