1 00:00:00,000 --> 00:00:10,393 >> [MUZYKA GRY] 2 00:00:10,393 --> 00:00:11,037 3 00:00:11,037 --> 00:00:12,120 David J. MALAN: Wszystko w porządku. 4 00:00:12,120 --> 00:00:12,830 Witamy z powrotem. 5 00:00:12,830 --> 00:00:13,890 To CS50. 6 00:00:13,890 --> 00:00:15,570 To jest koniec tygodnia 8. 7 00:00:15,570 --> 00:00:18,360 A jak wiadomo, mamy dość regularne godziny pracy w kilku 8 00:00:18,360 --> 00:00:21,090 sal jadalnych, tym Annenberg. 9 00:00:21,090 --> 00:00:23,860 A niektóre z zespołu uprzejmie wziął ostatnio kilka zdjęć. 10 00:00:23,860 --> 00:00:26,230 I na cześć Halloween, myśleliśmy, że 11 00:00:26,230 --> 00:00:30,160 dzielić się jeden, który raczej nas złowione Niespodzianka w Annenberg Hall tylko 12 00:00:30,160 --> 00:00:31,490 drugiej w nocy. 13 00:00:31,490 --> 00:00:36,300 Twój kolega Jakub pozował do to zdjęcie, ale było bardziej zabawne 14 00:00:36,300 --> 00:00:39,760 był na Facebooku, wynikający Rozmowa, która się stało potem. 15 00:00:39,760 --> 00:00:43,020 >> Jego pierwszy post w odpowiedzi Jego zdjęcie było to. 16 00:00:43,020 --> 00:00:46,740 Kilka minut później, zdecydował do jednego się sobie z tym. 17 00:00:46,740 --> 00:00:53,800 Poszło o to, aby przejść do tego, a następnie, jeszcze bardziej zabawnie 18 00:00:53,800 --> 00:00:55,320 jest wtedy, gdy jego mama dzwoniły. 19 00:00:55,320 --> 00:00:59,240 20 00:00:59,240 --> 00:01:01,800 A potem w końcu, wydaje się to tylko 21 00:01:01,800 --> 00:01:04,860 wspaniały wybieg dla grać, że się dzieje. 22 00:01:04,860 --> 00:01:07,080 >> Tak więc, jeśli chcesz zobaczyć Jakuba i innych, 23 00:01:07,080 --> 00:01:10,880 wśród nich Cynthia Meng, który jest kulisy pracowników strefy CS50, 24 00:01:10,880 --> 00:01:13,970 udać się do tego adresu URL i tym grają. 25 00:01:13,970 --> 00:01:18,810 Więc bez zbędnych ceregieli, dziś kontynuować obejrzenia programowania WWW, 26 00:01:18,810 --> 00:01:21,810 i rzeczywiste tworzenie programów które nie działają w linii poleceń, 27 00:01:21,810 --> 00:01:24,080 ale zamiast działać wewnątrz przeglądarki. 28 00:01:24,080 --> 00:01:26,320 >> Prawdopodobnie teraz, albo bardzo krótko, będziesz 29 00:01:26,320 --> 00:01:30,200 się w środku realizacji własny serwer WWW, który 30 00:01:30,200 --> 00:01:31,700 różni się od programowania WWW. 31 00:01:31,700 --> 00:01:36,210 Serwer WWW w pset6 jest o pisanie oprogramowania, które wie, jak zabrać 32 00:01:36,210 --> 00:01:39,300 Żądania HTTP z przeglądarki, lub nawet od ciebie, człowieka, 33 00:01:39,300 --> 00:01:42,340 z programu o nazwie Telnet, oraz następnie odpowiedzieć na te wnioski albo 34 00:01:42,340 --> 00:01:48,600 przez wypluwa plik HTML lub jpeg lub gif, lub nawet .php plik. 35 00:01:48,600 --> 00:01:52,490 >> Ale z serwera WWW, to nie jest ma po prostu otworzyć plik PHP, 36 00:01:52,490 --> 00:01:55,260 coś o rozszerzeniu .php, i następnie wypluć zawartość. 37 00:01:55,260 --> 00:01:58,440 To ma robić co do pierwszej tego pliku? 38 00:01:58,440 --> 00:01:59,390 Że tak powiem. 39 00:01:59,390 --> 00:02:04,060 Nie skompilować go, że powiedział w poniedziałek, ale rather-- więc interpretować. 40 00:02:04,060 --> 00:02:08,070 >> PHP jest językiem interpretowanym, a więc jednym z kluczowych elementów w swojej sieci 41 00:02:08,070 --> 00:02:11,550 Serwer, choć realizowane przez nas, Jest to zdolność do serwera WWW 42 00:02:11,550 --> 00:02:12,490 zauważyć, och. 43 00:02:12,490 --> 00:02:14,580 Jest to plik o rozszerzeniu .php. 44 00:02:14,580 --> 00:02:17,970 Pozwólcie, że nie wystarczy wysłać go do użytkownika jak to jest statyczny, 45 00:02:17,970 --> 00:02:20,970 ale pozwól mi przeczytać wiersz o linia, od lewej do prawej, i zinterpretować go. 46 00:02:20,970 --> 00:02:23,030 >> I zrobić, że Ciebie faceci będą zasadniczo 47 00:02:23,030 --> 00:02:26,520 punt do programu w urządzeniu, i na wielu systemach komputerowych, 48 00:02:26,520 --> 00:02:27,500 tak zwany PHP. 49 00:02:27,500 --> 00:02:30,579 To jest nazwa PHP Język własny interpreter. 50 00:02:30,579 --> 00:02:33,120 Tak, że możemy wprowadzić na kawałek ty, a to, co zostało dla ciebie, 51 00:02:33,120 --> 00:02:35,240 Ostatecznie, to numer sztuk, z których 52 00:02:35,240 --> 00:02:37,960 realizuje wsparcie dla zawartości statycznej. 53 00:02:37,960 --> 00:02:40,180 >> Ale teraz, i Problem ustawić siedem, jesteś 54 00:02:40,180 --> 00:02:43,660 zamierza rozpocząć do przejścia do faktycznie pisania kodu PHP 55 00:02:43,660 --> 00:02:45,970 że dostaje interpretować w rozmowie z tylnego końca 56 00:02:45,970 --> 00:02:47,960 baza danych, która przechowuje informacje. 57 00:02:47,960 --> 00:02:51,020 Więc niech lepiej zrozumieć pierwszy Kilka z tych superglobals 58 00:02:51,020 --> 00:02:53,720 i jak bardzo cię moc wydostać się z pudełka za darmo 59 00:02:53,720 --> 00:02:55,250 w języku jak PHP. 60 00:02:55,250 --> 00:02:57,350 Rzeczy, które nie mają do realizacji siebie. 61 00:02:57,350 --> 00:03:01,700 >> Tak, widzieliśmy w poniedziałek $ _GET, co jest superglobalną, 62 00:03:01,700 --> 00:03:05,496 która jest po prostu PHP mówić za światowy zmiennej można uzyskać dostęp w dowolnym miejscu. 63 00:03:05,496 --> 00:03:06,620 A co jest w środku z $ _GET? 64 00:03:06,620 --> 00:03:09,930 65 00:03:09,930 --> 00:03:12,110 Co znajduje się wewnątrz tego superglobalną że widzimy? 66 00:03:12,110 --> 00:03:15,900 67 00:03:15,900 --> 00:03:19,020 Z pewnością na statystycznie najmniej jedna osoba wie. 68 00:03:19,020 --> 00:03:21,590 Co znajduje się w środku $ _GET? 69 00:03:21,590 --> 00:03:22,426 Tak? 70 00:03:22,426 --> 00:03:24,130 >> Publiczność: To zmienne można umieścić w ciągu kwerendy. 71 00:03:24,130 --> 00:03:24,530 >> David J. MALAN: Idealny. 72 00:03:24,530 --> 00:03:26,488 To te zmienne, umieścić w zapytaniu. 73 00:03:26,488 --> 00:03:29,910 Tak więc, w naszym przykładzie starszych reimplementing Google, kiedy mieliśmy 74 00:03:29,910 --> 00:03:34,130 Adres URL, a następnie znak zapytania, która rozgranicza początek HTTP 75 00:03:34,130 --> 00:03:37,950 parametry, a następnie mieliśmy q równe coś, jak q równa się koty, 76 00:03:37,950 --> 00:03:41,500 co by automatycznie do środka z Super $ _GET, że globalny dla Ciebie, 77 00:03:41,500 --> 00:03:47,430 ponieważ PHP jest kluczem Q i jego kotów wartości. 78 00:03:47,430 --> 00:03:51,250 >> Innymi słowy, $ _GET wszystkich te rzeczy są tablice asocjacyjne, 79 00:03:51,250 --> 00:03:54,530 hash tabele rodzaju, że przechowywać klucze i wartości. 80 00:03:54,530 --> 00:03:57,980 Teraz, z powrotem w pset5, hash Stół może być realizowane, 81 00:03:57,980 --> 00:04:00,220 lub spróbować może Wdrożyliśmy, naprawdę 82 00:04:00,220 --> 00:04:04,010 było skutecznie asocjacyjne tablica, struktura danych 83 00:04:04,010 --> 00:04:07,220 przy czym można skojarzyć klucze z wartościami. 84 00:04:07,220 --> 00:04:09,690 >> Ale w pset5 wartości były banalne. 85 00:04:09,690 --> 00:04:12,430 Wartość była zasadniczo prawdziwe, czy fałszywe. 86 00:04:12,430 --> 00:04:13,900 To słowo w słowniku? 87 00:04:13,900 --> 00:04:18,279 Więc, kiedy zakodowane słowo jak jabłko aby sprawdzić, czy Apple jest w słowniku, 88 00:04:18,279 --> 00:04:21,820 Prawdopodobnie czynność wyboru wrócił prawdziwe lub fałszywe. 89 00:04:21,820 --> 00:04:24,120 Tak, to skutecznie Wartość wracamy. 90 00:04:24,120 --> 00:04:26,456 >> Ale widzieliśmy w poniedziałek krótko, można z pewnością 91 00:04:26,456 --> 00:04:28,830 kojarzy bardziej interesujące wartości niż tylko prawdziwe lub fałszywe 92 00:04:28,830 --> 00:04:30,790 z klawiszy, takich jak jabłka. 93 00:04:30,790 --> 00:04:33,909 Można rzeczywiście powrót arbitralne ciąg, i rzeczywiście, 94 00:04:33,909 --> 00:04:36,200 to właśnie te $ _GET i inne zmienne pozwalają zrobić. 95 00:04:36,200 --> 00:04:40,595 >> Więc $ _POST jest podobny w duchu, ale jeśli przesłać formularz pocztą, 96 00:04:40,595 --> 00:04:44,490 inna metoda HTTP to używane do takich rzeczy jak karty kredytowe, 97 00:04:44,490 --> 00:04:48,410 i prywatne informacje, a nawet binarne informacje jak zdjęcia, 98 00:04:48,410 --> 00:04:51,840 te rzeczy, kończy się wewnątrz $ _POST. 99 00:04:51,840 --> 00:04:53,770 I rzeczywiście plików jak JPEG i etażerka, 100 00:04:53,770 --> 00:04:58,290 jest nawet, że nie jest to kolejny tutaj nazywa $ _FILES również. 101 00:04:58,290 --> 00:05:01,280 >> Tak, serwer nie będzie zatrzymywać się na zbyt dużo, ale daje dostęp 102 00:05:01,280 --> 00:05:04,860 sortowanie niższych poziomie około szczegóły Serwer sam, że używasz. 103 00:05:04,860 --> 00:05:07,430 Cookie i sesji, choć, będziemy skutecznie zobaczyć teraz. 104 00:05:07,430 --> 00:05:10,940 Ostatnim, co używamy do realizacji Pojęcie koszyku. 105 00:05:10,940 --> 00:05:14,480 Bardzo prosty, ale odwołanie że mamy tutaj ten przykład, 106 00:05:14,480 --> 00:05:17,640 liczenie, ile razy wcześniej nie odwiedził tej strony. 107 00:05:17,640 --> 00:05:20,850 >> Ale dziś, a nie tylko patrzeć na Efektem tego, otwórzmy się 108 00:05:20,850 --> 00:05:22,640 Chrome inspektor, które można zwykle 109 00:05:22,640 --> 00:05:25,740 zrobić klikając prawym przyciskiem myszy i Kontroli kliknięcie w dowolnym miejscu na stronie internetowej, 110 00:05:25,740 --> 00:05:27,250 a następnie wybierz sprawdzić element. 111 00:05:27,250 --> 00:05:31,600 Czy można przejść przez menu które opisujemy w specyfikacji pset6 jest. 112 00:05:31,600 --> 00:05:35,020 I idę do karty sieciowej tutaj, i niech na chwilę oglądać 113 00:05:35,020 --> 00:05:37,590 to ruch HTTP tam iz powrotem. 114 00:05:37,590 --> 00:05:40,929 >> Pozwól mi iść do przodu Wyczyść pamięć podręczną i Chrome. 115 00:05:40,929 --> 00:05:43,470 Tak więc niektórzy z was mogą znać z już tej techniki, 116 00:05:43,470 --> 00:05:45,790 i mamy zamiar go używać do celów tutaj debugowania. 117 00:05:45,790 --> 00:05:48,890 118 00:05:48,890 --> 00:05:50,890 Teraz w komputerze Naukowcy zamierzają rozpocząć 119 00:05:50,890 --> 00:05:53,920 ten sposób do debugowania cele, przy czym 120 00:05:53,920 --> 00:05:55,910 będziemy wyczyścić pamięć podręczną, typowo, tak, że 121 00:05:55,910 --> 00:05:57,670 można pozbyć się rzeczy, zwanych ciasteczek. 122 00:05:57,670 --> 00:06:01,700 Więc jesteś prawdopodobnie ogólnie znane co ciastka są lub co najmniej 123 00:06:01,700 --> 00:06:04,370 że istnieją, ale co zrozumienie z nich, 124 00:06:04,370 --> 00:06:06,920 jak tylko użytkownik komputery, co to jest plik cookie? 125 00:06:06,920 --> 00:06:09,490 126 00:06:09,490 --> 00:06:09,990 Tak. 127 00:06:09,990 --> 00:06:14,391 >> Publiczność: To trochę of-- dobrze, nie nieco w perspektywie informatyki. 128 00:06:14,391 --> 00:06:18,303 Jest to fragment danych, które strona internetowa wysyła do ciebie w porządku 129 00:06:18,303 --> 00:06:20,209 aby móc nagrywać statystyki na Ciebie. 130 00:06:20,209 --> 00:06:21,250 David J. MALAN: OK, dobrze. 131 00:06:21,250 --> 00:06:24,980 Więc jest to fragment danych, które Serwer, stawia na komputerze, 132 00:06:24,980 --> 00:06:28,840 i niech to nawet uogólnić więcej, jest to klucz value-- dobrze, 133 00:06:28,840 --> 00:06:30,064 że coraz bardziej precyzyjne. 134 00:06:30,064 --> 00:06:31,980 To jest kawałek informacje, fragment danych, 135 00:06:31,980 --> 00:06:34,430 że serwer może umieścić na komputerze 136 00:06:34,430 --> 00:06:38,592 i bardzo często, serwer nie to tak, aby pamiętać, kim jesteś. 137 00:06:38,592 --> 00:06:40,300 Tak na przykład, kursy to prawdopodobnie jesteś 138 00:06:40,300 --> 00:06:42,982 logowanie do serwisów takich jak Facebook, lub Gmail lub inne przed, 139 00:06:42,982 --> 00:06:44,940 i zaloguj się za pomocą nazwa użytkownika i hasło, 140 00:06:44,940 --> 00:06:49,000 a po że dla pewnej liczby minut lub godzin lub nawet dni, 141 00:06:49,000 --> 00:06:52,970 Pamięta, że ​​serwer można, w rzeczywistości, zalogowany. 142 00:06:52,970 --> 00:06:54,600 Teraz, jak jest, że rzeczywiście dzieje? 143 00:06:54,600 --> 00:06:58,630 Ponieważ nie jesteś na pewno przepisywania Twoja nazwa użytkownika i hasło za każdym razem 144 00:06:58,630 --> 00:07:00,760 poruszanie się inna strona na Facebooku. 145 00:07:00,760 --> 00:07:02,570 Tak więc okazuje się, Ciasteczka są odpowiedzią. 146 00:07:02,570 --> 00:07:05,360 >> Pliki cookie można myśleć jak, Coś jak, cyfrowe rękę 147 00:07:05,360 --> 00:07:09,200 Znaczek, który można dostać na zabawy parku lub klub, który zasadniczo 148 00:07:09,200 --> 00:07:11,740 wskazuje byliście tutaj przed, i już mam 149 00:07:11,740 --> 00:07:16,070 pokazano swój identyfikator do bramkarza, na przypadek, i że klub lub park 150 00:07:16,070 --> 00:07:19,050 Należy założyć, że ty teraz uwierzytelnieniu już. 151 00:07:19,050 --> 00:07:21,270 Zostały już zidentyfikowane przez nią. 152 00:07:21,270 --> 00:07:24,740 >> Tak więc biorąc to pod uwagę, otwórzmy się licznik tutaj. 153 00:07:24,740 --> 00:07:27,220 Pozwólcie mi iść do przodu, po prostu nie, i usunąć wszystkie ciasteczka. 154 00:07:27,220 --> 00:07:29,970 A teraz, co mam zamiar zrobić, to przytrzymaj klawisz Shift, tak na wszelki wypadek, 155 00:07:29,970 --> 00:07:31,740 i siłą odświeżyć stronę. 156 00:07:31,740 --> 00:07:34,170 Shift, wystarczy upewnić się, że nic nie zostanie w pamięci podręcznej. 157 00:07:34,170 --> 00:07:36,850 A oto wniosek który udał się tam iz powrotem. 158 00:07:36,850 --> 00:07:41,560 Więc tutaj mamy prośbę, niech mi przybliżyć się tutaj, i to dużo 159 00:07:41,560 --> 00:07:44,710 jest jakby nieciekawe szczegóły teraz, że przeglądarka ma automatycznie 160 00:07:44,710 --> 00:07:47,800 wysłane, ale niech kliknij przycisk Widok Źródło zobaczyć surowe nagłówki. 161 00:07:47,800 --> 00:07:51,700 >> A jeśli już zanurkował pset6 już, będziesz na pewno rozpoznają rzeczy 162 00:07:51,700 --> 00:07:54,990 tak, i być może niektóre tych innych linii tutaj, 163 00:07:54,990 --> 00:07:59,040 ale co ciekawsze na dzisiaj jeśli przewijać, nie wniosek 164 00:07:59,040 --> 00:08:02,870 jednak do tak zwanych odpowiedzi ta linia prawdopodobnie wygląda znajomo. 165 00:08:02,870 --> 00:08:04,977 To jest dobra rzecz gdy pojawi się 200 OK. 166 00:08:04,977 --> 00:08:07,060 Najwyraźniej jest to data i czas na serwerze 167 00:08:07,060 --> 00:08:08,268 i jest kilka rzeczy. 168 00:08:08,268 --> 00:08:09,290 O, to jest ciekawe. 169 00:08:09,290 --> 00:08:13,430 >> Okazuje się, że przy każdym użyciu PHP, co najmniej w tym serwerze, 170 00:08:13,430 --> 00:08:16,360 serwer wypluwa co wersja PHP używasz. 171 00:08:16,360 --> 00:08:18,962 Które, rzeczywiście, dla bezpieczeństwa cele, nie jest dobrą rzeczą. 172 00:08:18,962 --> 00:08:21,170 Ale wrócimy do tego innym razem może. 173 00:08:21,170 --> 00:08:25,740 Ale teraz jest to soczysty linia dziś i krótko zobaczył niektóre z nich, 174 00:08:25,740 --> 00:08:29,240 Myślę, że z Facebook, gdy szturchnął wokół Inspektora w tym czasie, 175 00:08:29,240 --> 00:08:33,380 Zestaw Cookie jest to, co jest sadzenie że mały kawałek informacji 176 00:08:33,380 --> 00:08:34,890 na komputerze. 177 00:08:34,890 --> 00:08:37,490 >> Jest to nagłówek HTTP to skutecznie 178 00:08:37,490 --> 00:08:39,970 informując przeglądarkę, Chrome, IE, niezależnie, 179 00:08:39,970 --> 00:08:44,480 hej sklep przeglądarkę na użytkownika dysk twardy, lub w pamięci RAM użytkownika, 180 00:08:44,480 --> 00:08:49,680 klucza o nazwie PHPSESSID, co jest skróconym zapisem dla identyfikatora sesji, 181 00:08:49,680 --> 00:08:53,670 i nadać mu wartość 0vlk8t, kropka, kropka, kropka. 182 00:08:53,670 --> 00:08:56,480 Naprawdę długo pseudo losowy ciąg znaków alfanumerycznych. 183 00:08:56,480 --> 00:08:59,480 To jest po prostu bardzo duża liczba, ale to zakodowane z liter i cyfr 184 00:08:59,480 --> 00:09:03,550 tak, że wielkość ta może zostać nawet większe niż liczb sam. 185 00:09:03,550 --> 00:09:06,947 I wtedy, przy okazji, Path = /, że oznacza po prostu, że to powinno być Cookie 186 00:09:06,947 --> 00:09:08,780 wiąże się z Całość na stronie internetowej, 187 00:09:08,780 --> 00:09:11,150 nie tylko specyficzne Strona całość. 188 00:09:11,150 --> 00:09:12,930 Tak to jest, że pieczęć wirtualny dłoń. 189 00:09:12,930 --> 00:09:16,330 To tak, jakby serwer, Facebook, lub w naszym przypadku urządzenia, 190 00:09:16,330 --> 00:09:21,140 ma dosłownie napisane 0vlk8t i tak dalej, na swojej strony. 191 00:09:21,140 --> 00:09:24,360 Zauważ, co serwera, nie robi to nie jest 192 00:09:24,360 --> 00:09:27,730 przechowywania mojej nazwy użytkownika, na pewno nie przechowywać hasła. 193 00:09:27,730 --> 00:09:31,710 >> Zamiast tego, wydaje się, że przechowywania informacji pseudo losową 194 00:09:31,710 --> 00:09:35,010 tak, że nikt nie może odgadnąć, co moja ręka jest znaczek. 195 00:09:35,010 --> 00:09:37,590 Po stronie serwera W międzyczasie serwer 196 00:09:37,590 --> 00:09:40,370 będzie pamiętać, prawdopodobnie w bazie danych, czy coś, 197 00:09:40,370 --> 00:09:46,490 że użytkownik, który w przyszłości prezentuje znaczek ręki 0vlk8t, kropka, 198 00:09:46,490 --> 00:09:51,440 kropka, kropka, powinny być związane z tym szczególności koszyk, tak powiem. 199 00:09:51,440 --> 00:09:55,060 Innymi słowy, jeśli teraz iść tu z powrotem i ponownie załaduj tę stronę, 200 00:09:55,060 --> 00:09:58,020 w jaki sposób serwer wiedzieć że byłem raz? 201 00:09:58,020 --> 00:10:01,730 >> Albo jeśli to zrobię to ponownie, w jaki sposób serwer wiem, że już dwa razy odwiedził go? 202 00:10:01,730 --> 00:10:04,680 Cóż, jeśli pójdę do tego Najnowszy wniosek, który 203 00:10:04,680 --> 00:10:09,150 jest teraz trzeci Wysłałem w sumie zauważyć moją prośbę teraz. 204 00:10:09,150 --> 00:10:11,300 Jest jeszcze ten zwrócić się tutaj, tak samo 205 00:10:11,300 --> 00:10:15,040 jak wcześniej, jest jeszcze cała masa rzeczy, że mamy ignorować jak poprzednio, 206 00:10:15,040 --> 00:10:19,350 ale ostatni nagłówek, to czasu, ponieważ byłem tu wcześniej, 207 00:10:19,350 --> 00:10:21,980 jest prezentacja Znaczek ten wirtualny dłoń. 208 00:10:21,980 --> 00:10:28,957 >> Przy czym ta linia tutaj, nie ustawić ciasteczko ale ciasteczko okrężnicy PHPSESSI = 0vlk8t, 209 00:10:28,957 --> 00:10:32,040 to tylko moja przeglądarce automatyczne Prezentacja tej strony tak, że znaczek 210 00:10:32,040 --> 00:10:37,910 Serwer się tak szybko, jak to ujawnia, och, to jest 0vlk8t użytkownik kropka, kropka, kropka, 211 00:10:37,910 --> 00:10:42,010 Teraz mogę pamiętać, kim jest i ponownie powiązać z użytkownikiem, co 212 00:10:42,010 --> 00:10:46,450 Informacje chcę, a wszystkie że informacje mogą być przechowywane przez Ciebie, 213 00:10:46,450 --> 00:10:50,130 programista, w $ _SESSION. 214 00:10:50,130 --> 00:10:57,170 >> Więc być jasne, jeśli otworzyć bardzo szybko w gedit, że rzeczywisty plik, counter.php, 215 00:10:57,170 --> 00:11:02,340 w moim lokalnego hosta katalogu publicznym jak wcześniej, zauważysz, że, rzeczywiście, 216 00:11:02,340 --> 00:11:06,860 Ja ostatecznie przechowywania w $ _SESSION Cytatu "przeciw" 217 00:11:06,860 --> 00:11:10,110 Wartość licznika, które w poprzednim Uzyskać z tych linii, że my się tutaj 218 00:11:10,110 --> 00:11:13,010 spojrzał na ostatni raz plus jeden. 219 00:11:13,010 --> 00:11:14,980 Tak więc pod maską, to wszystkie ciasteczka są. 220 00:11:14,980 --> 00:11:17,563 To jest po prostu coś w rodzaju cyfrowego Znaczek rękę tam iz powrotem, 221 00:11:17,563 --> 00:11:20,450 i szczerze mówiąc, jeśli otworzyć Chrome Inspektor na każdej stronie 222 00:11:20,450 --> 00:11:22,580 polecamy odwiedzić dzisiaj, z bardzo wysokie prawdopodobieństwo, 223 00:11:22,580 --> 00:11:25,450 masz zamiar zobaczyć, być może jeden, może pół tuzina ciasteczka 224 00:11:25,450 --> 00:11:26,650 jest zapamiętany przez Ciebie. 225 00:11:26,650 --> 00:11:29,500 >> A co gorsza, jeśli te strona Odwiedzasz 226 00:11:29,500 --> 00:11:32,640 wszystkich reklam, które mają jest z pewnością dość powszechne dziś, 227 00:11:32,640 --> 00:11:36,100 i jeśli te reklamy przychodzą z jakiegoś centralnego partii, kogoś 228 00:11:36,100 --> 00:11:39,000 takich jak Google AdWords, jak i zadzwonić do jednego z ich produktów 229 00:11:39,000 --> 00:11:42,880 lub sprzedawców, że inne takie sprzedaży reklam, co ciekawe, 230 00:11:42,880 --> 00:11:46,510 i szczerze mówiąc, co jest mało niepokojące, o tym, jak HTTP działa 231 00:11:46,510 --> 00:11:50,855 jest to, że jeśli masz wbudowany reklamy w Facebook.com i Google.com, 232 00:11:50,855 --> 00:11:54,240 i Harvard.edu, dowolna liczba stron, więc jest to takie 233 00:11:54,240 --> 00:11:58,130 że jest człowiekiem, który jest w średnim służąc się oferty z wszystkich trzech z tych stron, 234 00:11:58,130 --> 00:12:02,110 Okazuje się, że ciasteczka są na domenie. 235 00:12:02,110 --> 00:12:05,910 >> Więc jeśli masz reklam pochodzących z sama firma na różnych stronach internetowych, 236 00:12:05,910 --> 00:12:11,140 że firma może skutecznie śledzić kto jesteś we wszystkich tych stron. 237 00:12:11,140 --> 00:12:13,140 Nie wiem, może z Harvardu Odwiedzasz Facebooka. 238 00:12:13,140 --> 00:12:15,306 Facebook i może nie wiedzieć Odwiedzasz Harvard. 239 00:12:15,306 --> 00:12:18,160 Ale cokolwiek serwis reklam oni używają jeśli jest domeną 240 00:12:18,160 --> 00:12:21,710 obecne zarówno Harvard.edu internecie stron i strony internetowe Facebook.com, 241 00:12:21,710 --> 00:12:26,850 Człowiek ten z pewnością wie, środkowy, który jesteś Ze względu na te ciasteczka są dzielone 242 00:12:26,850 --> 00:12:30,910 w poprzek, albo raczej, że tzw pośrednik. 243 00:12:30,910 --> 00:12:33,820 >> Więc wracamy do tego w ich wpływ na bezpieczeństwo, 244 00:12:33,820 --> 00:12:37,170 ale jest dużo informacji będą przechowywane o tobie każdej chwili 245 00:12:37,170 --> 00:12:40,120 odwiedzić największą na dowolną stronę internetową Internet i to naprawdę 246 00:12:40,120 --> 00:12:42,877 redukuje się do tego bardzo prosty mechanizm. 247 00:12:42,877 --> 00:12:44,710 Co się stanie, wówczas, jeśli jesteś bardzo paranoikiem 248 00:12:44,710 --> 00:12:48,190 i zdecydować, aby przejść do Chrome lub IE lub cokolwiek i wyłączyć pliki cookie? 249 00:12:48,190 --> 00:12:49,365 Co się dzieje? 250 00:12:49,365 --> 00:12:50,790 Tak? 251 00:12:50,790 --> 00:12:53,170 Ty really-- zrobiłeś tego prawa? 252 00:12:53,170 --> 00:12:54,350 OK. 253 00:12:54,350 --> 00:12:55,994 No, śmiało. 254 00:12:55,994 --> 00:12:59,645 >> Publiczność: Niektóre strony internetowe nie mają Funkcja bez niego, takich jak Facebook. 255 00:12:59,645 --> 00:13:00,520 David J. MALAN: Tak! 256 00:13:00,520 --> 00:13:02,311 Tak więc niektóre strony internetowe po prostu przestać działać. 257 00:13:02,311 --> 00:13:05,520 I w większości stron internetowych w tych dniach że zasadniczo polegać na ciasteczka, 258 00:13:05,520 --> 00:13:08,360 szczególnie, jeśli mają się zalogować w, oni po prostu się przełamać. 259 00:13:08,360 --> 00:13:10,360 Ponieważ uważają alternatywą, jeśli strona 260 00:13:10,360 --> 00:13:14,480 nie ma możliwości zapamiętywania, kim jesteś, i dlatego Twoja przeglądarka nie jest 261 00:13:14,480 --> 00:13:16,949 reprezentowanie w każdym HTTP Żądanie tego stempla ręcznego, 262 00:13:16,949 --> 00:13:18,740 skutecznie strona jak będzie Facebooka 263 00:13:18,740 --> 00:13:22,050 mieć z pytaniem o zaloguj się za każdym razem, cerować 264 00:13:22,050 --> 00:13:26,200 Zmiana strony, lub kliknij link, który z pewnością nie jest szczególnie dobra użytkownik 265 00:13:26,200 --> 00:13:26,920 doświadczenie. 266 00:13:26,920 --> 00:13:30,020 >> Tak, że tam też jest wśród kompromisów. 267 00:13:30,020 --> 00:13:34,140 Więc bez zbędnych ceregieli, weźmy za pewnik, że z programowaniem stron internetowych, 268 00:13:34,140 --> 00:13:37,630 w językach takich jak PHP, można zapamiętać Informacje takiego problemu ustawić w 269 00:13:37,630 --> 00:13:41,550 siedem podczas realizacji własnych E * Trade, jak strona, z którą kupić 270 00:13:41,550 --> 00:13:45,710 i sprzedawać akcje, będziesz pamiętam dokładnie co użytkownik kupowane i sprzedawane 271 00:13:45,710 --> 00:13:49,110 i kto jest on Na podstawie tej sesji. 272 00:13:49,110 --> 00:13:51,110 Ale my będziemy potrzebować hodowcy sposób niż e-mail 273 00:13:51,110 --> 00:13:52,640 rozpocząć prowadzenie informacje wokół. 274 00:13:52,640 --> 00:13:53,140 Prawda? 275 00:13:53,140 --> 00:13:56,780 >> W poniedziałek rozmawialiśmy o Frosh IM i jak w jednej z wersji tej strony internetowej, 276 00:13:56,780 --> 00:14:00,250 lat temu, wszystko zrobiliśmy było e-mail, który jest w Proctor 277 00:14:00,250 --> 00:14:04,250 odpowiedzialny za sport stacjonarne Program, imię i płeć, 278 00:14:04,250 --> 00:14:07,330 i czy nie są one kapitan, i akademik z kimś, kto jest 279 00:14:07,330 --> 00:14:10,136 rejestracji na stacjonarne sportu. 280 00:14:10,136 --> 00:14:13,010 Więc to nie jest źle, ale on wtedy musiał troll poprzez ich e-mailem, 281 00:14:13,010 --> 00:14:16,010 zrobić arkusz kalkulacyjny czy coś że, aby utrzymać wszystko zorganizowane. 282 00:14:16,010 --> 00:14:19,750 Więc na pewno my jako programiści Można to zrobić na tej Proctor. 283 00:14:19,750 --> 00:14:22,970 A więc wpisz w SQL, Structured Query Language, 284 00:14:22,970 --> 00:14:26,050 która będzie wyglądać całkiem różni się zarówno C i PHP, 285 00:14:26,050 --> 00:14:30,990 i będziesz nurkować w ręce na znacznie więcej PHP i problem, ale także zestaw siedmiu SQL, 286 00:14:30,990 --> 00:14:35,310 lub SQL, jest to język, który użyć, aby porozmawiać z bazy danych. 287 00:14:35,310 --> 00:14:36,480 >> Ale co to jest baza danych? 288 00:14:36,480 --> 00:14:38,440 Dobrze myślisz bazy danych, przynajmniej na razie, 289 00:14:38,440 --> 00:14:41,750 jak po prostu jak pliku Excel, lub jeśli plik Mac numery użytkownika a, 290 00:14:41,750 --> 00:14:44,400 lub jeśli jesteś z Google Apps użytkownik arkusza kalkulacyjnego Google 291 00:14:44,400 --> 00:14:49,120 to skutecznie w bazie, czy naprawdę specjalnie relacyjnej bazy danych. 292 00:14:49,120 --> 00:14:53,070 Relacyjna baza danych jest tylko coś, co ma wierszy i kolumn, 293 00:14:53,070 --> 00:14:56,440 i można przechowywać dowolny rodzaj Informacje zawarte w tych rzędach lub kolumnach. 294 00:14:56,440 --> 00:15:00,480 >> Ale to, co miłe, o SQL i o rzeczywistych baz danych, a nie tylko 295 00:15:00,480 --> 00:15:04,910 arkusze kalkulacyjne Google, lub jest to, że można używać języka 296 00:15:04,910 --> 00:15:09,000 faktycznie wykonywania zapytań do wstawiania danych, aby usunąć dane, 297 00:15:09,000 --> 00:15:11,620 szukać danych, nawet najważniejsze, a ci 298 00:15:11,620 --> 00:15:16,110 nie trzeba go używać dość ręcznie jak mogłoby zazwyczaj Google 299 00:15:16,110 --> 00:15:17,690 arkusz tak. 300 00:15:17,690 --> 00:15:22,217 >> Więc w SQL, nie ma kilka Oświadczenia lub kawałki podstawowe 301 00:15:22,217 --> 00:15:23,300 funkcjonalność wbudowany. 302 00:15:23,300 --> 00:15:26,450 Jest o wiele więcej niż te, ale można go ogromny dystans 303 00:15:26,450 --> 00:15:28,620 po prostu wiedząc, że język ten nazywa 304 00:15:28,620 --> 00:15:30,840 SQL ma co najmniej cztery oświadczenia można wykorzystać. 305 00:15:30,840 --> 00:15:34,420 >> Usuń, do usuwania danych, Wstaw, do dodawania wierszy, 306 00:15:34,420 --> 00:15:37,340 Update do zmiany wiersze i Wybór, 307 00:15:37,340 --> 00:15:39,860 na powrót wiersze i to jest rzeczywiście to, co robi SQL. 308 00:15:39,860 --> 00:15:43,810 Działa wyłącznie na wierszach tak że po włożeniu lub usunąć, 309 00:15:43,810 --> 00:15:47,470 lub aktualizacji, lub wybierz co masz powrót jako tzw wyniku, 310 00:15:47,470 --> 00:15:49,690 jak tablica rzędów. 311 00:15:49,690 --> 00:15:51,700 Kilka wierszy z tabeli. 312 00:15:51,700 --> 00:15:54,050 >> Więc z powrotem w dzień, a nawet do dnia dzisiejszego, 313 00:15:54,050 --> 00:15:56,560 można wchodzić w interakcje z bazy danych przy użyciu wiersza polecenia, 314 00:15:56,560 --> 00:15:59,691 ale to nie jest szczególnie przyjemny w użyciu okno w stylu czarno-biały 315 00:15:59,691 --> 00:16:02,190 i faktycznie wykonywać polecenia i rozglądamy bazy danych. 316 00:16:02,190 --> 00:16:06,054 Graficzny interfejs użytkownika, lub GUI, jest o wiele bardziej korzystne, prawdopodobnie, 317 00:16:06,054 --> 00:16:08,970 i tak zalecamy i narzędzia preinstalowany na Ciebie na urządzeniu 318 00:16:08,970 --> 00:16:10,580 nazywa phpMyAdmin. 319 00:16:10,580 --> 00:16:14,060 To całkowity przypadek, że nazwę tej rzeczy ma PHP w nim, 320 00:16:14,060 --> 00:16:17,430 to po prostu oznacza, że ​​ludzie, kto napisał ten program się 321 00:16:17,430 --> 00:16:18,670 napisał w PHP. 322 00:16:18,670 --> 00:16:23,740 >> Ale to w końcu o administrowanie serwer bazy danych, jak serwer MySQL 323 00:16:23,740 --> 00:16:26,589 że możesz mieć, jak ci nie, w urządzenia CS50. 324 00:16:26,589 --> 00:16:29,130 Więc nie ma więcej szczegółów tutaj niż musimy dbać o dziś, 325 00:16:29,130 --> 00:16:33,280 ale co to jest to, że klucz po lewej stronie lewa strona jest lista baz danych 326 00:16:33,280 --> 00:16:36,040 że masz na komputerze, na urządzenia CS50, 327 00:16:36,040 --> 00:16:40,090 lub przyjść projektów końcowych, które mogłoby mają na osobę trzecią, spółki 328 00:16:40,090 --> 00:16:43,415 strona lub serwer www, który można płacić za miejsca. 329 00:16:43,415 --> 00:16:45,290 Więc na lewo jest bazy danych, z których jeden 330 00:16:45,290 --> 00:16:48,750 jest pset7 które pożyczyłem od następnego tygodnie pset, a następnie na szczycie 331 00:16:48,750 --> 00:16:51,570 nie zauważysz kilka zakładek, z których jeden 332 00:16:51,570 --> 00:16:55,150 jest baz danych, SQL, stanu, użytkowników, eksport i tak dalej. 333 00:16:55,150 --> 00:16:56,900 Więc możesz iść długo sposób tylko poprzez realizację 334 00:16:56,900 --> 00:16:59,770 że większość interfejsu znajduje się w górnej lewej kolumnie 335 00:16:59,770 --> 00:17:02,650 i na górze aż tam. 336 00:17:02,650 --> 00:17:04,980 Więc co możemy rzeczywiście z tym zrobić? 337 00:17:04,980 --> 00:17:08,609 No cóż, zacznijmy od stworzenia bit informacji w następujący sposób. 338 00:17:08,609 --> 00:17:11,760 >> Załóżmy, że po to przypadek, jak będzie w ciągu kilku dni, 339 00:17:11,760 --> 00:17:14,440 chcesz realizować strona internetowa o nazwie CS50 Finanse, 340 00:17:14,440 --> 00:17:17,328 a ta strona pozwala kupować Koniec cytatu i sprzedawać akcje. 341 00:17:17,328 --> 00:17:19,619 I to będzie dowiedzieć się, cena tych akcji, 342 00:17:19,619 --> 00:17:22,380 ostatecznie, jak zobaczysz, rozmawiając z Yahoo Finance. 343 00:17:22,380 --> 00:17:26,250 Które, cudownie, ma bezpłatny w którym można przekazać w giełdowy 344 00:17:26,250 --> 00:17:29,830 jak GOOG dla Google, i to oddać bieżącej akcji Google 345 00:17:29,830 --> 00:17:32,250 Cena w przeszłości co najmniej kilka minut. 346 00:17:32,250 --> 00:17:35,080 >> Więc będziesz używać, aby ostatecznie udawać, że dla użytkownika 347 00:17:35,080 --> 00:17:37,750 kupować i sprzedawać rzeczywista akcje wykorzystujące wirtualne pieniądze, 348 00:17:37,750 --> 00:17:39,750 ale pierwszą rzeczą użytkownik będzie zobaczyć 349 00:17:39,750 --> 00:17:43,850 Jest to ekran logowania, który je pyta ich nazwy użytkownika i hasła. 350 00:17:43,850 --> 00:17:46,540 I tak, jedna z pierwszą wyzwania dla ciebie w pset7 351 00:17:46,540 --> 00:17:50,460 będzie wdrożyć tylny koniec bazy danych, arkusza kalkulacyjnego, jeśli chcesz, 352 00:17:50,460 --> 00:17:53,369 że idzie do przechowywania Nazwy użytkowników i hasła 353 00:17:53,369 --> 00:17:56,660 i ostatecznie co zapasów są właścicielami, i ile, i ile pieniędzy mają, 354 00:17:56,660 --> 00:18:00,110 tak, kilka innych rzeczy w inne tabele lub arkusze kalkulacyjne. 355 00:18:00,110 --> 00:18:05,020 >> Warto więc przyjrzeć się, jak to może wydawać na pierwszy rzut oka. 356 00:18:05,020 --> 00:18:06,980 Mam zamiar wrócić do urządzenie i jestem 357 00:18:06,980 --> 00:18:14,102 zamiar iść do tego adresu URL tutaj phpMyAdmin localhost / phpmyadmin 358 00:18:14,102 --> 00:18:16,060 a zobaczysz, że zabiera mnie do interfejsu 359 00:18:16,060 --> 00:18:18,520 dokładnie tak, jak widzieliśmy na zrzut ekranu, a ja tu 360 00:18:18,520 --> 00:18:21,560 mają dodatkową bazę danych Wykład na dzisiaj nazywa 361 00:18:21,560 --> 00:18:24,280 i pozwól mi iść do przodu Pierwszy i kliknij pset7. 362 00:18:24,280 --> 00:18:27,940 >> I wydaje się, że kilka opcji, jeden dla nowych, dla tworzenia nowej tabeli, 363 00:18:27,940 --> 00:18:30,770 oraz link do użytkowników, których Tabela jest już utworzony. 364 00:18:30,770 --> 00:18:31,790 Więc co jest stół? 365 00:18:31,790 --> 00:18:33,740 Więc jeśli używane Excel przed, a jeśli już 366 00:18:33,740 --> 00:18:37,110 numerów lub Google Arkusze kalkulacyjne, można otworzyć okno 367 00:18:37,110 --> 00:18:39,350 i masz całą masę wierszy i kolumn 368 00:18:39,350 --> 00:18:43,120 ale wtedy zazwyczaj arkuszy na dole, lub oddzielnych kartach. 369 00:18:43,120 --> 00:18:46,140 Można myśleć o każdym arkusz jako tabela 370 00:18:46,140 --> 00:18:51,150 tak, że baza danych jest w końcu Połączenie z jednym lub więcej tabel, jeden 371 00:18:51,150 --> 00:18:54,064 lub więcej arkuszy, w Świat normalnym arkuszu kalkulacyjnym. 372 00:18:54,064 --> 00:18:55,980 Więc pozwól mi iść do przodu i kliknij na arkuszu 373 00:18:55,980 --> 00:18:59,420 że wstępnie wykonany, zwane użytkowników, a.k.a. 374 00:18:59,420 --> 00:19:00,700 Tabeli bazy danych. 375 00:19:00,700 --> 00:19:04,130 A jeśli przewijać tutaj, pozwól mi oddalić się nieco, 376 00:19:04,130 --> 00:19:08,479 to jest to, co mówi phpMyAdmin nas jest wewnątrz tabeli teraz. 377 00:19:08,479 --> 00:19:11,020 To trochę mylące na początku rzut oka, ponieważ nie jest UI 378 00:19:11,020 --> 00:19:15,140 najładniejsza rzecz na świecie, ale co ciekawe, ta część tutaj. 379 00:19:15,140 --> 00:19:17,970 ID, nazwę użytkownika i mieszania. 380 00:19:17,970 --> 00:19:20,510 >> Z góry, i będziesz ręką to w problemu ustawić siedem, 381 00:19:20,510 --> 00:19:25,050 dajemy Ci plik zawierający super, mała tabela bazy danych, w rzeczywistości pożyczone 382 00:19:25,050 --> 00:19:27,070 z edycji hakerów z problemem ustawić dwa, 383 00:19:27,070 --> 00:19:29,480 wewnątrz której znajduje się sześć wierszy. 384 00:19:29,480 --> 00:19:32,720 Jeden dla Belinda wszystkie droga w dół do jednego dla Zamyla, 385 00:19:32,720 --> 00:19:35,980 i zauważyć na lewo od tych, Identyfikatory są unikalne nazwy użytkowników, jak jeden, 386 00:19:35,980 --> 00:19:39,410 dwa, trzy, cztery, pięć, sześć, całkowitymi, a następnie w prawo, są skróty. 387 00:19:39,410 --> 00:19:42,780 >> A jeśli, kursy są, nie zrobiłeś Problem edycja haker ustawić dwa, 388 00:19:42,780 --> 00:19:46,560 ale skrót jest szyfrowany, tak jak hasło z kilkoma zastrzeżeniami. 389 00:19:46,560 --> 00:19:49,470 I tak, co można zobaczyć tutaj zaszyfrowane wersje wszystkich sześciu 390 00:19:49,470 --> 00:19:52,950 naszych haseł od problemu ustawić dwa edycję hakerów. 391 00:19:52,950 --> 00:19:56,500 Teraz w lewo, to tylko niektóre GUI rzeczy, edytując ten wiersz, kopiując ten wiersz, 392 00:19:56,500 --> 00:19:57,630 usunięcie tego wiersza. 393 00:19:57,630 --> 00:19:59,840 >> Ale co ciekawe Teraz jest następujące. 394 00:19:59,840 --> 00:20:03,810 Mogę zacząć eksperymentować z tej tabeli. 395 00:20:03,810 --> 00:20:07,330 Więc jeśli pójdę i kliknij SQL Zakładka, mam to pole duży tekst. 396 00:20:07,330 --> 00:20:10,190 I nie jest to, jak będziemy zrobić, gdy faktycznie pisania kodu. 397 00:20:10,190 --> 00:20:12,700 Żeby było jasne, phpMyAdmin jest tylko narzędziem, które jest 398 00:20:12,700 --> 00:20:16,450 pozwoli nam grzebać w bazie danych i daj nam eksperymentować z zapytaniami. 399 00:20:16,450 --> 00:20:19,430 >> Tak na przykład, załóżmy, I wykonać dokładnie to. 400 00:20:19,430 --> 00:20:22,820 Select, który jest jednym z tych, słowa kluczowe wspomniałem wcześniej, gwiazda, 401 00:20:22,820 --> 00:20:25,900 który reprezentuje wszystkie kolumny w tabeli. 402 00:20:25,900 --> 00:20:26,820 Z tego, co stół? 403 00:20:26,820 --> 00:20:27,990 Cóż, użytkownicy. 404 00:20:27,990 --> 00:20:29,950 I nie ma to zawiadomienie dziwne konwencja w SQL 405 00:20:29,950 --> 00:20:32,140 gdzie faktycznie używać powrót kleszcze, zwykle, 406 00:20:32,140 --> 00:20:35,940 nie pojedyncze cytaty i nie cudzysłowy kiedy mówisz o nazwach tabel, 407 00:20:35,940 --> 00:20:38,990 więc z powrotem cytat rzeczą na Lewa górna klawiaturze najbardziej 408 00:20:38,990 --> 00:20:39,720 prawdopodobne. 409 00:20:39,720 --> 00:20:41,850 >> Więc pozwól mi iść do przodu teraz i po prostu zostawić to w spokoju 410 00:20:41,850 --> 00:20:46,020 i przewiń w dół i kliknij przycisk Go, a my jesteśmy faktycznie zobaczymy to samo. 411 00:20:46,020 --> 00:20:52,410 Właśnie wykonywane zapytanie SQL mówiąc zaznaczyć wszystko gwiazdę 412 00:20:52,410 --> 00:20:55,610 z tabeli o nazwie użytkowników i co masz z powrotem to. 413 00:20:55,610 --> 00:20:58,400 Ostatecznie, będziemy w stanie zrobić to samo w kodzie, 414 00:20:58,400 --> 00:21:02,109 ale na razie wszystko, co chciałem nie było go zobaczyć w przeglądarce. 415 00:21:02,109 --> 00:21:03,900 Dobrze zróbmy coś trochę inaczej. 416 00:21:03,900 --> 00:21:08,330 Pozwól mi wrócić do zakładki SQL, i powiedzmy, że co? 417 00:21:08,330 --> 00:21:11,520 Zamyla stracił wszystkie jej pieniądze, i dlatego, że to 418 00:21:11,520 --> 00:21:13,190 czas dla nas, aby usunąć ją jako użytkownik. 419 00:21:13,190 --> 00:21:14,630 Ona już nie zalogujesz. 420 00:21:14,630 --> 00:21:18,870 >> Więc mam zamiar powiedzieć usuwać from-- dobrze, utrzymują kapitalizacji 421 00:21:18,870 --> 00:21:23,080 spójność, usuń od użytkowników gdzie. 422 00:21:23,080 --> 00:21:25,430 I tak, możemy mieć te predykaty, czy te 423 00:21:25,430 --> 00:21:31,180 kwalifikacyjne, na koniec moje oświadczenie gdzie iw jaki sposób można usunąć Zamyla? 424 00:21:31,180 --> 00:21:34,190 Jej nazwa Zamyla, więc Kolumna jednej z kolumn 425 00:21:34,190 --> 00:21:37,950 został nazwany, więc gdzie name = "Zamyla". 426 00:21:37,950 --> 00:21:40,000 I tutaj mogę używać podwójne cytaty lub pojedyncze cytaty, 427 00:21:40,000 --> 00:21:42,958 używać tylko z powrotem, gdy kleszcze mówić o nazwach, na przykład, 428 00:21:42,958 --> 00:21:45,130 tabel lub pól. 429 00:21:45,130 --> 00:21:47,440 I niech mi kliknij tutaj. 430 00:21:47,440 --> 00:21:50,400 A teraz strona jest jest trochę spięty. 431 00:21:50,400 --> 00:21:53,620 >> Albo, czy naprawdę chcesz, aby wykonać usuwanie od użytkowników, których nazwa jest równa Zamyla? 432 00:21:53,620 --> 00:21:54,680 Tak. 433 00:21:54,680 --> 00:22:01,900 Więc teraz, jeśli wrócimy do mojego stolika Klikając użytkowników, zauważysz, że Hm. 434 00:22:01,900 --> 00:22:02,530 I goofed. 435 00:22:02,530 --> 00:22:04,070 A w rzeczywistości, rodzaj kliknął się tak szybko 436 00:22:04,070 --> 00:22:06,195 nawet nie zobaczyć czerwony komunikat o błędzie, być może. 437 00:22:06,195 --> 00:22:07,649 Co robię źle? 438 00:22:07,649 --> 00:22:09,690 Publiczność: Nie trzeba wykorzystać jej nazwisko. 439 00:22:09,690 --> 00:22:11,260 David J. MALAN: Tak, kapitalizowane jej imię, 440 00:22:11,260 --> 00:22:13,770 ale faktycznie ja ją username-- się kilka błędów, prawda? 441 00:22:13,770 --> 00:22:16,720 Jeden z nich, jej nazwa jest zamyla, małe litery Z, 442 00:22:16,720 --> 00:22:20,140 i nazwa kolumny jest nazwa użytkownika, nie nazwać, więc zróbmy to jeszcze raz. 443 00:22:20,140 --> 00:22:25,750 Pozwólcie mi iść do przodu i usunąć z użytkowników gdzie 444 00:22:25,750 --> 00:22:28,990 nazwa użytkownika wynosi cytatu "Zamyla". 445 00:22:28,990 --> 00:22:29,490 Wszystko w porządku? 446 00:22:29,490 --> 00:22:32,600 Tak to wygląda trochę lepiej, niech mi iść przewiń w dół i kliknij przycisk Przejdź. 447 00:22:32,600 --> 00:22:34,730 To nadal będzie krzycz na mnie, aby się upewnić. 448 00:22:34,730 --> 00:22:37,500 I kliknij przycisk Tak, a teraz widzimy, szczerze to się stało, naprawdę 449 00:22:37,500 --> 00:22:39,870 szybko, mniej niż jeden Drugi na pewno, to 450 00:22:39,870 --> 00:22:41,720 jest dokładnie to, że dostał wykonane zapytanie. 451 00:22:41,720 --> 00:22:45,617 Aby potwierdzić, pozwól mi kliknąć użytkowników i rzeczywiście teraz Zamyla nie ma. 452 00:22:45,617 --> 00:22:46,700 Teraz nie na odwrót. 453 00:22:46,700 --> 00:22:49,320 Załóżmy, że Gabe chce zarejestrować się na stronie internetowej. 454 00:22:49,320 --> 00:22:52,825 Co znajduje się zapytanie SQL, co jest Komenda mogę wpisać dodać Gabe'a? 455 00:22:52,825 --> 00:22:54,200 Dobrze, że to całkiem proste. 456 00:22:54,200 --> 00:22:58,260 Włóż do użytkowników, a teraz robi się trochę tajemnicze. 457 00:22:58,260 --> 00:23:03,190 Trzeba określić, do serwera, jakie pola chcę przypisać. 458 00:23:03,190 --> 00:23:06,630 I naprawdę nie obchodzi mnie, co Gabe ID liczba, więc mam zamiar pominąć to. 459 00:23:06,630 --> 00:23:11,360 Ja zamiast powiedzieć nazwa, skrót, a następnie 460 00:23:11,360 --> 00:23:14,960 wartości chcę umieścić nie będzie Gabe. 461 00:23:14,960 --> 00:23:16,800 A następnie jego skrótu, nie wiem. 462 00:23:16,800 --> 00:23:19,900 Więc teraz, mam zamiar zostawić, że jak duży to zrobić. 463 00:23:19,900 --> 00:23:21,650 Wrócimy do że ustawienie problemu 464 00:23:21,650 --> 00:23:23,390 specyfikacja, jak faktycznie zrobić. 465 00:23:23,390 --> 00:23:24,630 >> Więc zauważyć, znowu, składnia. 466 00:23:24,630 --> 00:23:28,430 Wstawić do nazwy tabeli, a następnie nawiasach lista pól, 467 00:23:28,430 --> 00:23:30,980 kolumny chcesz dodać wartości do, a następnie po prostu 468 00:23:30,980 --> 00:23:34,495 dokładnie taki sam porządek lewo prawo wartości, które chcesz dodać, 469 00:23:34,495 --> 00:23:36,870 i to tylko dlatego, pakowania tekst jest trochę długi. 470 00:23:36,870 --> 00:23:38,520 Więc teraz pozwól mi kliknij przycisk Przejdź. 471 00:23:38,520 --> 00:23:39,830 Wstawiony jeden wiersz. 472 00:23:39,830 --> 00:23:43,020 A teraz, jeśli wrócę do użytkowników, co ciekawe 473 00:23:43,020 --> 00:23:48,960 jest to, że teraz nie tylko w Gabe bazy danych, co jest najwyraźniej jego ID? 474 00:23:48,960 --> 00:23:49,820 >> Cóż to jest siedem. 475 00:23:49,820 --> 00:23:51,479 Dlaczego jest to siedem, kiedy nie je dodać? 476 00:23:51,479 --> 00:23:54,020 Tak więc też jeden z funkcje można uzyskać z bazy danych. 477 00:23:54,020 --> 00:23:55,750 Wiele zbudowany w funkcjonalności. 478 00:23:55,750 --> 00:23:57,950 Okazuje się, że gdy stworzył tę tabelę, 479 00:23:57,950 --> 00:24:01,390 I to jest skonfigurowane automatycznie przypisanie identyfikatora w taki sposób, 480 00:24:01,390 --> 00:24:02,480 że zwiększa to. 481 00:24:02,480 --> 00:24:05,470 Więc jeśli kiedykolwiek grzebali, i spojrzał na to, co twój Facebook ID 482 00:24:05,470 --> 00:24:09,292 liczba, te dni to naprawdę nie jest rzeczy do zrobienia, ale Facebooka jako API, 483 00:24:09,292 --> 00:24:11,750 Application Programming Interface, w którym można wrócić 484 00:24:11,750 --> 00:24:14,430 cała masa danych o sobie, o swoich znajomych, 485 00:24:14,430 --> 00:24:15,347 i połączeń. 486 00:24:15,347 --> 00:24:17,430 A co było rodzajem fajne, z powrotem w dzień, 487 00:24:17,430 --> 00:24:19,510 było patrzeć, co się Facebook numer ID był. 488 00:24:19,510 --> 00:24:22,390 Mark Zuckerberg na, na przykład, jest trzy 489 00:24:22,390 --> 00:24:23,890 ponieważ był autor strony. 490 00:24:23,890 --> 00:24:27,610 I jak mówi historia, stworzył dwa konta testowe, użytkownicy jeden i dwa, 491 00:24:27,610 --> 00:24:28,690 które następnie usunięte. 492 00:24:28,690 --> 00:24:32,780 I tak, Zuck, jak jego nazwa użytkownika na Facebooku, to ID numer trzy, 493 00:24:32,780 --> 00:24:36,110 i każdy z nas ma wiele numerów większy niż trzy te dni. 494 00:24:36,110 --> 00:24:37,980 W rzeczywistości, w pewnym momencie Facebook odszedł 495 00:24:37,980 --> 00:24:42,410 ze nawet przy użyciu int, który Jest to wartość 32-bitowa, z wykorzystaniem 496 00:24:42,410 --> 00:24:44,480 Następnym krokiem, zasadniczo tak długo długo 497 00:24:44,480 --> 00:24:47,150 że mogą pomieścić nawet więcej użytkowników rejestrujących. 498 00:24:47,150 --> 00:24:49,420 Tak zabawna fakt historyczny. 499 00:24:49,420 --> 00:24:51,660 >> Więc to tylko Podstawowa składnia, z którym 500 00:24:51,660 --> 00:24:54,470 możemy wykonać kilka pytania, ale może rzeczywiście 501 00:24:54,470 --> 00:24:56,744 zrobić kilka innych rzeczy z SQL. 502 00:24:56,744 --> 00:24:58,910 A zobaczysz, ostatecznie, w problem zestaw siedmiu 503 00:24:58,910 --> 00:25:01,034 że trzeba zrobić liczba decyzji projektowych, 504 00:25:01,034 --> 00:25:03,290 wśród nich będzie jakie typy danych do wykorzystania. 505 00:25:03,290 --> 00:25:08,240 Więc tak jak w C, są dane typy w bazie danych, jak MySQL, 506 00:25:08,240 --> 00:25:12,640 i typy danych masz do wyboru ze to te pola tutaj. 507 00:25:12,640 --> 00:25:17,287 Char, varchar, Int, duży int, dziesiętny data i czas, i wiele innych. 508 00:25:17,287 --> 00:25:18,370 Więc rzeczywiście to zrobić. 509 00:25:18,370 --> 00:25:21,060 Załóżmy, że, że nie ręka ci tabela użytkownika 510 00:25:21,060 --> 00:25:25,080 i pozwól mi iść dalej i stworzyć dla ja, w wykładach database-- 511 00:25:25,080 --> 00:25:31,000 rzeczywiście pozwolił mi iść dalej i usuwać Stół mam tu już 512 00:25:31,000 --> 00:25:32,940 tak, że możemy rzeczywiście stworzyć to. 513 00:25:32,940 --> 00:25:33,550 Ups. 514 00:25:33,550 --> 00:25:35,970 Idę do spadku tego stół, a teraz jestem 515 00:25:35,970 --> 00:25:38,337 pójdą ponownie do wykład bazy tutaj, 516 00:25:38,337 --> 00:25:40,420 Mam zamiar utworzyć tabelę zwane użytkowników i LET'S 517 00:25:40,420 --> 00:25:43,010 wystarczy zrobić trzy kolumny początkowo i kliknij przycisk Przejdź. 518 00:25:43,010 --> 00:25:44,990 >> Obecnie, w większości przypadków, Ponownie, jest to po prostu 519 00:25:44,990 --> 00:25:48,570 za pomocą tego narzędzia graficznego o nazwie phpMyAdmin, i co teraz robimy 520 00:25:48,570 --> 00:25:49,600 tworzy tabelę. 521 00:25:49,600 --> 00:25:53,170 Tak to jest jak Plik, Nowy, i tworzenia nowego pliku programu Excel. 522 00:25:53,170 --> 00:25:55,440 Więc pyta mnie kilka pytania, od lewej do prawej, 523 00:25:55,440 --> 00:25:58,620 jaka jest nazwa pierwszej kolumny, a następnie Nazwa drugiej kolumnie 524 00:25:58,620 --> 00:25:59,560 i nazwa trzeciej. 525 00:25:59,560 --> 00:26:00,518 Warto więc odtworzyć to. 526 00:26:00,518 --> 00:26:05,460 ID, a następnie nazwa jest jednym, a następnie hash był inny. 527 00:26:05,460 --> 00:26:08,970 Więc co należy typ danych się teraz na polu, jak ID? 528 00:26:08,970 --> 00:26:14,470 >> Oto cała lista typów danych dostępne w bazie danych, 529 00:26:14,470 --> 00:26:16,070 a teraz niech po prostu iść z int. 530 00:26:16,070 --> 00:26:18,160 Wartość 32-bitowy, nie wiem myśleć realistycznie jestem 531 00:26:18,160 --> 00:26:21,484 będzie mieć ponad 4 mld użytkowników w moim koncie, w mojej służbie, 532 00:26:21,484 --> 00:26:23,650 więc mam zamiar ruszać do następnego pytania. 533 00:26:23,650 --> 00:26:25,490 Nie zamierzam podać długość lub wartości, 534 00:26:25,490 --> 00:26:28,540 to nie dotyczy tutaj int, per se. 535 00:26:28,540 --> 00:26:30,740 I teraz można określić, najwyraźniej, domyślnie 536 00:26:30,740 --> 00:26:33,970 wartość, której nie zamierzam określić. 537 00:26:33,970 --> 00:26:36,050 Sortowania, nie wiem co to jest. 538 00:26:36,050 --> 00:26:37,290 Atrybut. 539 00:26:37,290 --> 00:26:39,455 Teraz faktycznie decyzję w projekt. 540 00:26:39,455 --> 00:26:42,580 Więc jest kilka pól tutaj, nie wszystkie z których są stosowane, ale bez znaku 541 00:26:42,580 --> 00:26:43,380 oznacza po prostu, co? 542 00:26:43,380 --> 00:26:45,400 Że int musi być? 543 00:26:45,400 --> 00:26:46,210 Tylko nieujemne. 544 00:26:46,210 --> 00:26:48,090 Więc to musi być 0 w górę. 545 00:26:48,090 --> 00:26:51,120 Nie, ja nie zamierzam sprawdzić, ponieważ Chcę, aby każdy użytkownik ma identyfikator, 546 00:26:51,120 --> 00:26:52,470 to nie może być null. 547 00:26:52,470 --> 00:26:55,949 A potem dostać się do niektórych bardziej ciekawe decyzje projektowe takie jak ten. 548 00:26:55,949 --> 00:26:58,990 Wrócimy do tego za chwilę, ale co innego cechą bazy 549 00:26:58,990 --> 00:27:04,200 jest to, że można powiedzieć, Serwer bazy danych śmiało 550 00:27:04,200 --> 00:27:07,100 i optymalizacji siebie, swoją Pamięci RAM i miejsca na dysku twardym, 551 00:27:07,100 --> 00:27:11,770 tak, że wybór i wkładki, a usuwa i aktualizacje są bardzo szybko. 552 00:27:11,770 --> 00:27:13,250 Porównajmy to z pset5. 553 00:27:13,250 --> 00:27:16,259 >> Jeśli chcesz wyszukać coś w tabeli mieszania, które 554 00:27:16,259 --> 00:27:18,300 myślisz jak baza danych, który musiał zrobić wszystko 555 00:27:18,300 --> 00:27:21,500 pracować do tworzenia tabela mieszania szybko. 556 00:27:21,500 --> 00:27:22,840 To jak, oczywiście, można. 557 00:27:22,840 --> 00:27:23,060 Prawda? 558 00:27:23,060 --> 00:27:26,080 Trzeba było umieścić w cały czas grzywny strojenie rzeczy, coraz funkcji skrótu 559 00:27:26,080 --> 00:27:27,820 prawo, zastanawianie się, jak wiele wiader mieć. 560 00:27:27,820 --> 00:27:29,611 >> Ale to, co miłe, znowu, o bazy danych 561 00:27:29,611 --> 00:27:31,762 po prostu punt wszystkie to dla innych ludzi 562 00:27:31,762 --> 00:27:33,720 Ten, kto pomyślał, dzięki dla Ciebie, a co 563 00:27:33,720 --> 00:27:37,170 Mam zamiar powiedzieć, pod Strona jest moim polu ID 564 00:27:37,170 --> 00:27:41,149 będzie podstawowym sposobem identyfikacji użytkowników w bazie danych. 565 00:27:41,149 --> 00:27:42,940 Nie zamierzam myśleć z Zamyla jako Zamyla, 566 00:27:42,940 --> 00:27:45,800 Będę myśleć o jej jako numer 6. 567 00:27:45,800 --> 00:27:49,814 >> Dlaczego jest to, być może, lepiej intuicyjnie myśleć i modelu 568 00:27:49,814 --> 00:27:52,480 każdego z poszczególnych rzędach za pomocą liczba a nie coś 569 00:27:52,480 --> 00:27:56,480 jak struna, podobnie jak Zamyla lub Gabe lub dłuższy ciąg jeszcze? 570 00:27:56,480 --> 00:27:57,444 Tak? 571 00:27:57,444 --> 00:28:00,117 >> Publiczność: ID jest unikalny? 572 00:28:00,117 --> 00:28:01,200 David J. MALAN: Powiedz jeszcze raz? 573 00:28:01,200 --> 00:28:02,283 Publiczność: ID jest unikalny? 574 00:28:02,283 --> 00:28:04,400 David J. MALAN: ID jest wyjątkowy, ale suppose-- 575 00:28:04,400 --> 00:28:06,320 w przypadku w ogóle z nazwy użytkowników, załóżmy 576 00:28:06,320 --> 00:28:10,110 Powiedziałem również, że może być tylko jeden Zamyla na świecie, a tylko jeden Gabe. 577 00:28:10,110 --> 00:28:13,730 Mogę nałożyć wyjątkowość ograniczenie na strunach, zbyt, czy chcę. 578 00:28:13,730 --> 00:28:15,550 Tak więc nie jest to zły pomysł. 579 00:28:15,550 --> 00:28:16,500 >> Publiczność: bardziej bezpieczne. 580 00:28:16,500 --> 00:28:17,874 >> David J. MALAN: Bardziej bezpieczne, to dlaczego? 581 00:28:17,874 --> 00:28:20,705 Publiczność: Nie można powiedzieć, która Jest które, jak w użytkownika. 582 00:28:20,705 --> 00:28:22,580 David J. MALAN: OK, ty Nie można powiedzieć, które użytkownik 583 00:28:22,580 --> 00:28:24,380 to, które nie ma więc aspekt prywatności do niego, 584 00:28:24,380 --> 00:28:27,810 zwłaszcza gdy identyfikatory może występujące w adresach URL. 585 00:28:27,810 --> 00:28:29,960 Tak pewien, że mogłem rodzaj pracy, też. 586 00:28:29,960 --> 00:28:30,640 Inne myśli? 587 00:28:30,640 --> 00:28:31,383 Tak? 588 00:28:31,383 --> 00:28:34,316 >> Publiczność: Łatwiej wykonywania operacji na int. 589 00:28:34,316 --> 00:28:35,940 David J. MALAN: To jest prawdziwy kicker. 590 00:28:35,940 --> 00:28:38,850 To tylko bardziej wydajne, lub łatwiej komputera, 591 00:28:38,850 --> 00:28:40,431 do wykonywania operacji na liczbę całkowitą. 592 00:28:40,431 --> 00:28:40,930 Prawda? 593 00:28:40,930 --> 00:28:43,905 Int jest gwarantowane jest 32-bitowy, natomiast Zamyla 594 00:28:43,905 --> 00:28:47,660 jest długa kilka znaków, Gabriel to długo jeszcze kilka znaków, 595 00:28:47,660 --> 00:28:51,930 Davenport jest naprawdę długa, a więc jest to nie jest szczególnie efektywne w użyciu 596 00:28:51,930 --> 00:28:55,860 struny do porównania wartości i spójrz dla pól i pól aktualizacji, 597 00:28:55,860 --> 00:28:57,790 czy można uciec z tylko jedną liczbę całkowitą. 598 00:28:57,790 --> 00:28:59,090 Zaledwie 32 bitów. 599 00:28:59,090 --> 00:29:02,570 Więc nazwy użytkowników, również w ten sposób, nie muszą być unikalne, 600 00:29:02,570 --> 00:29:05,040 choć chyba powinno być, a nawet w ten sposób zbyt 601 00:29:05,040 --> 00:29:07,520 użytkownik może mieć możliwość zmienić swoją nazwę użytkownika. 602 00:29:07,520 --> 00:29:10,810 >> Więc teraz zostawić to jako podstawowym środkiem identyfikacji użytkownika. 603 00:29:10,810 --> 00:29:13,510 Ta baza danych jest mówienie iść do przodu i optymalizacji siebie 604 00:29:13,510 --> 00:29:17,065 tak, że spojrzenie na ID UPS są super szybkie. 605 00:29:17,065 --> 00:29:19,620 AI strasznie nazwie, po prostu Oznacza Auto Przyrost, 606 00:29:19,620 --> 00:29:21,500 i jest sprawdzenie box musimy sprawdzić 607 00:29:21,500 --> 00:29:24,614 aby określić, że do pola ID automatycznie zaktualizowane dla mnie, 608 00:29:24,614 --> 00:29:26,530 i mam zamiar Przewiń w prawo, tutaj 609 00:29:26,530 --> 00:29:29,279 i szczerze mówiąc nie jestem zainteresowany w każdym z tych dziedzin. 610 00:29:29,279 --> 00:29:30,630 Na pewno nie dzisiaj. 611 00:29:30,630 --> 00:29:33,770 >> Więc mam zamiar wrócić tu, na pierwszą kolumnę, gdzie 612 00:29:33,770 --> 00:29:35,830 Muszę podać nazwę użytkownika i hash, i niech 613 00:29:35,830 --> 00:29:38,080 w najmniejszym naciskiem na Drugi na razie. 614 00:29:38,080 --> 00:29:41,498 Int nie jest chyba w porządku połączenie, więc co ma większy sens może? 615 00:29:41,498 --> 00:29:42,741 >> Publiczność: Tekst. 616 00:29:42,741 --> 00:29:43,824 David J. MALAN: Powiedz jeszcze raz? 617 00:29:43,824 --> 00:29:44,710 Publiczność: Tekst. 618 00:29:44,710 --> 00:29:44,980 David J. MALAN: Tekst? 619 00:29:44,980 --> 00:29:45,590 OK, słyszałem tekst. 620 00:29:45,590 --> 00:29:46,090 Co jeszcze? 621 00:29:46,090 --> 00:29:50,520 622 00:29:50,520 --> 00:29:53,860 Mamy rodzaju mają kilka opcji do wyboru że są tekstowy charakter. 623 00:29:53,860 --> 00:29:55,990 Tak więc, kiedy i dlaczego, czy korzystać z niektórych z nich? 624 00:29:55,990 --> 00:29:59,560 Cóż char, w przeciwieństwie do tego, co mogłoby myślę, nie jest pojedynczym znakiem. 625 00:29:59,560 --> 00:30:01,550 Jest to określona liczba znaków. 626 00:30:01,550 --> 00:30:04,600 Tak więc, jeśli wiemy, że wszystkie nazwy użytkowników musi być jak ośmiu znaków, 627 00:30:04,600 --> 00:30:08,490 jak kiedyś powszechne w starszych systemy komputerowe, mogę powiedzieć, char 628 00:30:08,490 --> 00:30:09,830 i wtedy będę mógł powiedzieć 8 tutaj. 629 00:30:09,830 --> 00:30:12,930 To wtedy trzecia kolumna staje się zastosowanie podczas tworzenia tabeli. 630 00:30:12,930 --> 00:30:15,450 >> Ale to trochę denerwujące ponieważ niektórzy ludzie mogą 631 00:30:15,450 --> 00:30:17,660 chcesz mieć dłuższą nazwę użytkownika niż osiem znaków, 632 00:30:17,660 --> 00:30:19,743 niektóre osoby mogą chcieć mają krótszą nazwę użytkownika, 633 00:30:19,743 --> 00:30:22,210 dlaczego więc zobowiązuję się do konkretnej liczby? 634 00:30:22,210 --> 00:30:24,710 Dlaczego nie ma zmienną Liczba znaków i po prostu 635 00:30:24,710 --> 00:30:28,580 powiedzieć, że maksymalna długość nazwy jest, nie wiem, jak 64 znaków. 636 00:30:28,580 --> 00:30:31,780 Nie mogę myśleć o żadnych przyjaciół, którzy mają nazwy dłuższe niż 64 znaków, 637 00:30:31,780 --> 00:30:34,810 a nawet jeśli to jest zbyt krótki mógłbyś pewnością podbić go arbitralnie. 638 00:30:34,810 --> 00:30:37,330 >> Więc jest to zmienna varchar liczba znaków. 639 00:30:37,330 --> 00:30:41,010 Tekst nie jest zły instynkt, i szczerze, że jakby nie to, co mówi, 640 00:30:41,010 --> 00:30:45,460 ale może być pole tekstowe jak co najmniej 65.000 bajtów. 641 00:30:45,460 --> 00:30:50,790 To chyba przesada dla pole, w rzeczywistości, yup, 65535. 642 00:30:50,790 --> 00:30:53,740 To chyba przesada dla wymienić, więc będziemy trzymać, zazwyczaj, 643 00:30:53,740 --> 00:30:56,910 z varchars dla tekstowych pola i hash, też. 644 00:30:56,910 --> 00:30:59,990 Hash, jak się okazuje, nie mogliśmy zrobić varchar oraz czy coś takiego, 645 00:30:59,990 --> 00:31:03,080 ale dzisiaj nie będzie koncentrować się na kryptografia tam i numery 646 00:31:03,080 --> 00:31:05,210 że może faktycznie Aby wykorzystać do jej długości. 647 00:31:05,210 --> 00:31:07,430 >> Ale pozwól mi przewijać w prawo. 648 00:31:07,430 --> 00:31:11,280 Można tylko mieć jeden Wskaźnik podstawowy dla tabeli, 649 00:31:11,280 --> 00:31:16,380 ale chcę mieć zastosowanie któregokolwiek z nich, teraz, aby nazwa użytkownika, można by powiedzieć? 650 00:31:16,380 --> 00:31:21,980 Co należy nazwa użytkownika w oparciu o niejasne zrozumienie tych czterech opcji? 651 00:31:21,980 --> 00:31:23,340 Po prostu po imieniu? 652 00:31:23,340 --> 00:31:24,140 >> Publiczność: Unikalne. 653 00:31:24,140 --> 00:31:25,100 >> David J. MALAN: Tak wyjątkowy, prawda? 654 00:31:25,100 --> 00:31:28,190 Tak więc okazuje się, że nie tylko mógł powiedzieć bazy danych, z góry, 655 00:31:28,190 --> 00:31:30,380 jest podstawowym sposobem identyfikacji pola. 656 00:31:30,380 --> 00:31:32,990 Można również powiedzieć, że to będzie wyjątkowy pola. 657 00:31:32,990 --> 00:31:34,700 To nie będzie rzecz, polegać, 658 00:31:34,700 --> 00:31:38,490 ale chciałbym do bazy danych mają zasadniczo, że jeśli warunek, więc 659 00:31:38,490 --> 00:31:42,340 że jeśli kiedykolwiek próbował zarejestrować dwóch użytkowników o tej samej nazwie, 660 00:31:42,340 --> 00:31:44,360 mieszkanie z bazy danych nie będzie mnie na to. 661 00:31:44,360 --> 00:31:47,490 Może mam jakiś dodatkowy kod w PHP, który zapobiega tyle, 662 00:31:47,490 --> 00:31:50,640 ale baza danych, zbyt, może zapewnić że to się nigdy nie wydarzy. 663 00:31:50,640 --> 00:31:53,370 >> Teraz, jak na bok, zwłaszcza, myślisz o projektów końcowych, 664 00:31:53,370 --> 00:31:57,030 Pamiętaj, to i pełny indeks tekst jest całkiem przydatna. 665 00:31:57,030 --> 00:32:01,080 Jeśli masz większą bazę danych, a nie z dziesiątki, ale setki tysięcy 666 00:32:01,080 --> 00:32:05,270 lub nawet miliony pól, można również powiedzieć bazy danych z góry 667 00:32:05,270 --> 00:32:07,980 jest to pole idę do poszukiwania na wiele. 668 00:32:07,980 --> 00:32:10,520 Być może jego nazwa, może to bio, jeśli jesteś 669 00:32:10,520 --> 00:32:13,750 dokonywania Facebook stronie internetowej, że podobny ma paragrafów, które pozwoliły użytkownika 670 00:32:13,750 --> 00:32:16,799 zapisać, a jeśli chcesz powiedzieć bazy danych z góry 671 00:32:16,799 --> 00:32:20,090 Mam zamiar być na tym polu wyszukiwania Wiele, ale nie jest to koniecznie unikatowy, 672 00:32:20,090 --> 00:32:22,800 można określić, stworzyć mi indeks. 673 00:32:22,800 --> 00:32:27,990 Albo można też powiedzieć, pozwól mi zrobić, rodzaj wyszukiwania, takich jak Komendy arbitralnych 674 00:32:27,990 --> 00:32:30,420 lub sterowania F, jak ty moc w edytorze tekstu, 675 00:32:30,420 --> 00:32:34,184 więc można szukać dowolnych ciągów lub podciągi w tej dziedzinie. 676 00:32:34,184 --> 00:32:36,600 Innymi słowy, jesteśmy coraz do punktu w połowie 677 00:32:36,600 --> 00:32:40,720 gdzie nie trzeba się martwić o jak wdrożyć rzeczy skutecznie. 678 00:32:40,720 --> 00:32:44,540 Trzeba tylko wiedzieć, o co decyzje projektowe, aby tak, że jesteś 679 00:32:44,540 --> 00:32:48,470 przy użyciu odpowiednich narzędzi dla handlu w celu wykorzystania możliwości 680 00:32:48,470 --> 00:32:50,380 że inni ludzie myślą o tobie. 681 00:32:50,380 --> 00:32:54,240 Przypomnę więc, podstawowym powinien tylko mają jeden, może masz tylko jedną, 682 00:32:54,240 --> 00:32:59,630 i jest rzeczą, którą zobowiązuje się do używając do identyfikacji wyjątkowo pola. 683 00:32:59,630 --> 00:33:02,710 Unikalne jest tylko w duchu podobnym, ale można go używać tylko sporadycznie, 684 00:33:02,710 --> 00:33:04,530 ale chcesz go nałożyć bazę danych. 685 00:33:04,530 --> 00:33:08,050 Wskaźnik oznacza tylko zapobiegawczo przyspieszyć w przyszłości 686 00:33:08,050 --> 00:33:10,230 tak, że można szukać rzeczy w tej dziedzinie. 687 00:33:10,230 --> 00:33:13,700 A następnie pełny tekst jest na ogół za akapity lub eseje, albo duże podmioty 688 00:33:13,700 --> 00:33:16,270 tekstu, w którym Warto również mieć 689 00:33:16,270 --> 00:33:19,420 dzikie karty, jak równowartość gwiazdy. 690 00:33:19,420 --> 00:33:19,920 Prawo. 691 00:33:19,920 --> 00:33:22,580 >> Więc to był rodzaj Wiele wszystkich naraz. 692 00:33:22,580 --> 00:33:25,220 Zobaczymy, czy nie możemy destylować Kilka z tych funkcji 693 00:33:25,220 --> 00:33:29,540 a następnie zbudować coś dość proste, ale potężne. 694 00:33:29,540 --> 00:33:31,380 Tak więc wśród innych decyzje projektowe mozesz 695 00:33:31,380 --> 00:33:34,005 w końcu będzie musiał się wraz linie silników składowania. 696 00:33:34,005 --> 00:33:37,370 I niech mi tylko o tym wspominać w oczekiwaniu na ostateczne projekty, 697 00:33:37,370 --> 00:33:42,020 i przewidywanie Miejmy say-- nie zróbmy to. 698 00:33:42,020 --> 00:33:43,820 Zbudujmy ten mały pierwszy wniosek. 699 00:33:43,820 --> 00:33:48,070 Mam zamiar iść do mojego terminalu Okno, a nie jest tutaj 700 00:33:48,070 --> 00:33:52,500 tylko counter.php, które mamy teraz dzieje aby pozbyć się jak nie z tematem, 701 00:33:52,500 --> 00:33:54,570 ale mamy całą masę katalogów i to 702 00:33:54,570 --> 00:33:58,080 będzie bardzo podobne w duchu do tego, co można zobaczyć w problemu ustawić siedem. 703 00:33:58,080 --> 00:34:00,980 >> Więc mamy trzy katalogi obejmuje publiczne i szablony, które 704 00:34:00,980 --> 00:34:05,040 jest dokładnie tam, gdzie skończyliśmy na Poniedziałek z naszego całego MVC paradygmatu. 705 00:34:05,040 --> 00:34:09,290 I podsumowaniem, publicznie pójdzie każdy plik, który chcę, aby użytkownicy faktycznie 706 00:34:09,290 --> 00:34:12,969 v możliwość odwiedzenia w ich przeglądarka poprzez URL. 707 00:34:12,969 --> 00:34:13,502 Szablon. 708 00:34:13,502 --> 00:34:14,710 Co stawiamy w szablonach? 709 00:34:14,710 --> 00:34:17,070 Jakie rzeczy? 710 00:34:17,070 --> 00:34:21,659 Nie było zbyt wiele, ale kilka Pliki przynajmniej w poniedziałek. 711 00:34:21,659 --> 00:34:22,619 Tak. 712 00:34:22,619 --> 00:34:23,100 >> Publiczność: Nagłówek i stopka? 713 00:34:23,100 --> 00:34:24,516 >> David J. MALAN: Nagłówek i stopka. 714 00:34:24,516 --> 00:34:26,679 Więc mamy coś podobnego dziś, też. 715 00:34:26,679 --> 00:34:30,330 Mamy jeszcze kilka plików, ale Stopki widzę, Header widzę, 716 00:34:30,330 --> 00:34:31,909 i kilka innych plików. 717 00:34:31,909 --> 00:34:35,482 Jest to więc odpowiednik których widoku V MVC,, 718 00:34:35,482 --> 00:34:37,690 znowu będzie nieco więcej jasne, w problemu ustawić siedem, 719 00:34:37,690 --> 00:34:40,380 ale to jest tylko folder jestem wprowadzenie wielu moich estetyki. 720 00:34:40,380 --> 00:34:42,840 Wiele moich HTML, wielu moich postaciach. 721 00:34:42,840 --> 00:34:46,899 Tymczasem obejmuje kolejny Katalog, który ma te trzy pliki 722 00:34:46,899 --> 00:34:48,440 i rzućmy okiem na to. 723 00:34:48,440 --> 00:34:51,699 >> Mam zamiar iść do przodu i otworzyć config.php. 724 00:34:51,699 --> 00:34:54,610 Jak się okazuje, wiele jak wcześniej w tym okresie, 725 00:34:54,610 --> 00:34:57,850 Ci ostre zawarte CS50 kropka hz pset7. 726 00:34:57,850 --> 00:35:00,780 W dzisiejszym przykład, idziesz zrobić równowartość że 727 00:35:00,780 --> 00:35:03,600 z oświadczeniem wymagają które skutecznie 728 00:35:03,600 --> 00:35:05,340 zawiera te kilka linii. 729 00:35:05,340 --> 00:35:08,225 Tak aby było jasne, to jest plik o nazwie config.php. 730 00:35:08,225 --> 00:35:09,350 I zauważyć, co robi. 731 00:35:09,350 --> 00:35:11,970 To podobno robi coś tajemnicze, zamieniając się na komunikaty o błędach 732 00:35:11,970 --> 00:35:13,680 tak, że można je zobaczyć w przeglądarce. 733 00:35:13,680 --> 00:35:15,860 To, czym, najwyraźniej wymagając dwa inne pliki 734 00:35:15,860 --> 00:35:19,530 tak to jest jak #include w C, a następnie ten widzieliśmy, 735 00:35:19,530 --> 00:35:22,720 i mamy powoływać, to włącza się że koszyk jak funkcjonalność. 736 00:35:22,720 --> 00:35:25,610 >> Oznacza to wolę ciasteczka być wysyłane tam iz powrotem. 737 00:35:25,610 --> 00:35:27,290 Więc dlaczego jest to interesujące? 738 00:35:27,290 --> 00:35:32,460 Cóż, jeśli wrócimy do tego Katalog i otwarcie, na przykład, 739 00:35:32,460 --> 00:35:33,741 constance.php. 740 00:35:33,741 --> 00:35:38,840 Zauważ, że PHP ma stałe wsparcie, to nie jest całkiem jak #define w C 741 00:35:38,840 --> 00:35:41,290 Zamiast tego dosłownie powiedzieć, zdefiniowane, a informacja 742 00:35:41,290 --> 00:35:44,110 że mam zapisane z góry cztery stałe w tym pliku. 743 00:35:44,110 --> 00:35:47,020 Jeden dla dzisiejszej bazy danych dla hasła, dla mojej nazwie użytkownika, 744 00:35:47,020 --> 00:35:48,690 i nazwy serwera. 745 00:35:48,690 --> 00:35:51,644 Tak więc są to rzeczywiście będzie dość podobny problemu ustawić siedem. 746 00:35:51,644 --> 00:35:54,560 I wreszcie, i to, gdzie jestem dostanie kilka ciekawych funkcjonalności 747 00:35:54,560 --> 00:35:59,000 od pracowników, w functions.php jest kilka kod pisaliśmy, 748 00:35:59,000 --> 00:36:01,040 i ukradł część tego zestaw siedmiu z problemem 749 00:36:01,040 --> 00:36:05,920 na dzień dzisiejszy, że robi kilka rzeczy i niech to wystarczy spojrzeć na jednego z nich 750 00:36:05,920 --> 00:36:07,270 w szczególności. 751 00:36:07,270 --> 00:36:09,720 Funkcja ta tutaj, zapytanie, będzie 752 00:36:09,720 --> 00:36:13,600 Funkcja PHP nazywamy w celu realizacji SQL. 753 00:36:13,600 --> 00:36:16,070 Chwilę temu byliśmy przy użyciu phpMyAdmin, ale to tylko 754 00:36:16,070 --> 00:36:18,720 do rodzaju celów kształcenia i diagnostycznych 755 00:36:18,720 --> 00:36:20,494 i zapominając zestawu bazy danych. 756 00:36:20,494 --> 00:36:22,660 Podczas korzystania z urządzenia w rzeczywistości bazy danych, to ludzki, 757 00:36:22,660 --> 00:36:24,100 Oczywiście nie dzieje się do podciągania w internecie 758 00:36:24,100 --> 00:36:25,740 Strona każdym razem ktoś rejestruje. 759 00:36:25,740 --> 00:36:29,870 Masz zamiar napisać kod, który wkładki i usuwa użytkowników na żądanie, 760 00:36:29,870 --> 00:36:32,490 i mamy zamiar to zrobić tytułem opcji zapytań. 761 00:36:32,490 --> 00:36:35,360 Gdybym teraz przewijać, nie będzie jeszcze kilka cech. 762 00:36:35,360 --> 00:36:37,170 Przekierowanie będzie będzie funkcję pisaliśmy 763 00:36:37,170 --> 00:36:40,160 dla Ciebie, który pozwala na wysłać użytkownika na inny adres URL, 764 00:36:40,160 --> 00:36:43,780 i czyni to funkcja, zupełnie jak widzieliśmy w poniedziałek, że w rzeczywistości czyni 765 00:36:43,780 --> 00:36:48,000 szablon, ale o nich w forma pset7 własnej spacer. 766 00:36:48,000 --> 00:36:50,500 Teraz idziemy do przodu i to zrobić. 767 00:36:50,500 --> 00:36:54,860 >> Pozwólcie mi iść do mojego stolika i wykładów zobaczyć, że nie ma obecnie nic 768 00:36:54,860 --> 00:36:59,640 tutaj tylko jeszcze, i daj mi też przejść do mojego katalogu publicznym, gdzie 769 00:36:59,640 --> 00:37:02,780 jest tylko jeden plik index.php. 770 00:37:02,780 --> 00:37:06,920 Ten plik wydaje się być bardzo prosta w tej chwili, to wygląda tak jak ten. 771 00:37:06,920 --> 00:37:09,110 Bardzo podobnie jak my skończył w poniedziałek. 772 00:37:09,110 --> 00:37:11,945 Jestem wymagająca tego pliku, config.php, co jest 773 00:37:11,945 --> 00:37:15,160 zawiera katalog, który jest kropka kropki, moi rodzice, 774 00:37:15,160 --> 00:37:17,650 a potem to tylko renderowanie tego pliku. 775 00:37:17,650 --> 00:37:18,960 Więc co to za plik? 776 00:37:18,960 --> 00:37:24,700 >> Otwórzmy się w moich szablonów form.php, a my zobaczymy to. 777 00:37:24,700 --> 00:37:28,500 Super proste, najwyraźniej ta forma jest zamierza złożyć poprzez $ _GET lub $ _POST. 778 00:37:28,500 --> 00:37:29,320 Szybka kontrola poprawności. 779 00:37:29,320 --> 00:37:33,760 780 00:37:33,760 --> 00:37:35,690 Dosłownie wizualnie wyszukać plik. 781 00:37:35,690 --> 00:37:36,610 Metoda równa post. 782 00:37:36,610 --> 00:37:39,280 Więc to nie będzie używać adresu URL, jak Google robi, to będzie coś w rodzaju skóry 783 00:37:39,280 --> 00:37:41,030 Informacje za sceny i to 784 00:37:41,030 --> 00:37:43,580 zamierza przedstawić plik o nazwie register.php, 785 00:37:43,580 --> 00:37:45,660 i to jest plik jeszcze nie napisane 786 00:37:45,660 --> 00:37:47,610 ale co to będzie wyglądać jak to jest. 787 00:37:47,610 --> 00:37:52,670 >> Jeśli pójdę do oddzielnej stronie To jest co localhost / index.php wygląda. 788 00:37:52,670 --> 00:37:56,930 I znowu, serwera tylko przy założeniu, że index.php. 789 00:37:56,930 --> 00:37:57,910 Enter. 790 00:37:57,910 --> 00:37:59,870 Tak więc to, gdzie jesteśmy na, i to, co chcę robić 791 00:37:59,870 --> 00:38:02,450 jest w stanie wpisać rzeczy jak Dawid, a następnie 792 00:38:02,450 --> 00:38:08,050 mój numer telefonu, który powie 617-555-1212 teraz, zarejestruj 793 00:38:08,050 --> 00:38:09,910 a teraz register.php nie został znaleziony. 794 00:38:09,910 --> 00:38:11,440 Więc muszę wdrożyć to. 795 00:38:11,440 --> 00:38:13,320 Więc szybko wzbudzać coś takiego jak to. 796 00:38:13,320 --> 00:38:18,640 Pozwólcie mi iść do mojego katalogu publicznym i zrobić gedit z register.php, 797 00:38:18,640 --> 00:38:22,300 i teraz mam zamiar iść do przodu i uruchomić tryb PHP, tak jak to robiliśmy w poniedziałek, 798 00:38:22,300 --> 00:38:25,430 i tag zamkn PHP i zróbmy kilka rzeczy. 799 00:38:25,430 --> 00:38:28,336 >> Tak jeden, wiem, ze po napisaniu tego formularza, 800 00:38:28,336 --> 00:38:29,960 że chcę sprawdzić poniżej. 801 00:38:29,960 --> 00:38:35,670 Jeśli jest pusta, co użytkownik wpisany do pola Nazwa, a następnie 802 00:38:35,670 --> 00:38:39,860 Mam zamiar coś powiedzieć jak przeprosić brakuje nazwy. 803 00:38:39,860 --> 00:38:42,380 Przepraszam, w międzyczasie, jest nie zbudowany w PHP rzeczy, 804 00:38:42,380 --> 00:38:45,970 to funkcja pisaliśmy w functions.php dla pset7 805 00:38:45,970 --> 00:38:47,940 tak, że masz do niego dostęp. 806 00:38:47,940 --> 00:38:53,830 Inny, jeśli inne pola jest pusta, numer, to ja jestem 807 00:38:53,830 --> 00:38:58,370 zamiar przeprosić Numer użytkownika i powiedzieć brakujący. 808 00:38:58,370 --> 00:38:59,320 Zapisz ten plik. 809 00:38:59,320 --> 00:39:02,640 >> Teraz wróćmy do mojej przeglądarce, wróć do forum spróbuj ponownie. 810 00:39:02,640 --> 00:39:04,070 Zarejestruj. 811 00:39:04,070 --> 00:39:05,090 OK. 812 00:39:05,090 --> 00:39:06,730 Nic się nie stało, co jest dobre. 813 00:39:06,730 --> 00:39:08,120 Nie pojawia się komunikat o błędzie. 814 00:39:08,120 --> 00:39:11,651 Ale jeśli zamiast tego, niech Przeładuj strona, i nie zapewniają niczego. 815 00:39:11,651 --> 00:39:12,150 Cholera. 816 00:39:12,150 --> 00:39:15,350 817 00:39:15,350 --> 00:39:17,140 Zrobić. 818 00:39:17,140 --> 00:39:18,810 Zarejestruj. 819 00:39:18,810 --> 00:39:20,350 Co robię źle? 820 00:39:20,350 --> 00:39:24,860 Jeśli puste, nazwa $ _POST. 821 00:39:24,860 --> 00:39:26,350 Powiedz jeszcze raz? 822 00:39:26,350 --> 00:39:27,670 >> Och, oczywiście. 823 00:39:27,670 --> 00:39:30,919 Zapomniałem najważniejszą część, która to wymaga ("includes / config.php ../."). 824 00:39:30,919 --> 00:39:34,210 825 00:39:34,210 --> 00:39:36,460 Muszę mieć dostęp do funkcję przeprosić, które 826 00:39:36,460 --> 00:39:37,770 Dlatego nic się nie działo. 827 00:39:37,770 --> 00:39:39,460 Funkcja nie istnieje. 828 00:39:39,460 --> 00:39:40,640 Warto więc spróbować ponownie. 829 00:39:40,640 --> 00:39:42,350 Miejmy odświeżyć stronę, kliknij przycisk Zarejestruj. 830 00:39:42,350 --> 00:39:43,060 OK. 831 00:39:43,060 --> 00:39:43,770 Nie jest. 832 00:39:43,770 --> 00:39:45,700 Tak, wyjście jesteśmy widząc tutaj jest wynikiem 833 00:39:45,700 --> 00:39:47,685 wywoływania przeprosić funkcja, bardzo proste, 834 00:39:47,685 --> 00:39:50,060 i po prostu wypisuje cokolwiek Daję go jako argumentu. 835 00:39:50,060 --> 00:39:51,370 >> W porządku, więc niech współpracują. 836 00:39:51,370 --> 00:39:54,240 Miejmy dostarczyć moje imię jak Dawid, zarejestruj, 837 00:39:54,240 --> 00:39:56,890 brakuje numeru OK Miejmy zapewnić, że zbyt. 838 00:39:56,890 --> 00:39:58,650 617-555-1212. 839 00:39:58,650 --> 00:39:59,250 Zarejestruj. 840 00:39:59,250 --> 00:39:59,750 OK. 841 00:39:59,750 --> 00:40:02,760 Więc teraz wszystko jest w porządku, po prostu nic ciekawe dzieje. 842 00:40:02,760 --> 00:40:06,000 Więc teraz zróbmy coś więcej ciekawe jak to się stało. 843 00:40:06,000 --> 00:40:09,980 Pozwól mi wejść do phpMyAdmin, i niech rzeczywiście utworzyć tabelę o nazwie użytkowników, 844 00:40:09,980 --> 00:40:12,330 Mam zamiar dać mu trzy kolumny i będę szybko 845 00:40:12,330 --> 00:40:16,250 stworzyć identyfikator, a następnie Nazwa, a następnie numer, 846 00:40:16,250 --> 00:40:18,832 a pole ID jestem zostawię jako int. 847 00:40:18,832 --> 00:40:20,790 Pole nazwy Idę pozostawić jako varchar, 848 00:40:20,790 --> 00:40:23,257 i powiemy 64, nieco arbitralnie. 849 00:40:23,257 --> 00:40:25,090 Liczba idę zrobić, wiesz co? 850 00:40:25,090 --> 00:40:27,350 Jedziemy do obsługują numery nas tutaj 851 00:40:27,350 --> 00:40:31,510 tak mam zamiar zrobić coś jak char, a następnie 10 znaków 852 00:40:31,510 --> 00:40:34,540 max za numerem kierunkowym i siedem cyfr. 853 00:40:34,540 --> 00:40:37,870 A potem tutaj, mam zamiar określenie auto przyrost tego pola, 854 00:40:37,870 --> 00:40:40,550 uczynić to klucz podstawowy, a Mam zamiar iść do przodu i nie 855 00:40:40,550 --> 00:40:42,240 sprawdzić każdy z tych innych polach. 856 00:40:42,240 --> 00:40:48,030 >> Więc kiedy wreszcie kliknij przycisk Zapisz, i wrócę do mojej tabeli użytkowników, 857 00:40:48,030 --> 00:40:52,270 jest to, jak to wygląda, jeśli Teraz kliknij strukturę nowej karcie. 858 00:40:52,270 --> 00:40:54,550 Więc to, aby być jasne, phpMyAdmin jest po prostu sposobem na 859 00:40:54,550 --> 00:40:58,570 mówić tabelę bazy danych ma identyfikator, nazwę i numer 860 00:40:58,570 --> 00:41:02,040 z tych konkretnych konfiguracji i będziemy ignorować pozostałe pola 861 00:41:02,040 --> 00:41:03,140 nie teraz. 862 00:41:03,140 --> 00:41:04,810 >> Więc teraz, co chcę zrobić? 863 00:41:04,810 --> 00:41:09,060 Więc jeśli pójdę teraz do mojego kod źródłowy, jeśli wszystko jest w porządku 864 00:41:09,060 --> 00:41:11,190 Chcę wykonać następujące zapytanie. 865 00:41:11,190 --> 00:41:14,970 Wstawić do, i mogę tylko mówią użytkownicy nie mam ściśle 866 00:41:14,970 --> 00:41:18,620 trzeba ci wrócić kleszcze czy to nie niebezpieczne słowo jak użytkowników. 867 00:41:18,620 --> 00:41:22,810 Mam zamiar powiedzieć imię, numer, a następnie tu jestem 868 00:41:22,810 --> 00:41:24,960 Nie będzie ciężko kodem cyfra wartości jeszcze. 869 00:41:24,960 --> 00:41:26,760 Mam zamiar umieścić dwa znaki zapytania. 870 00:41:26,760 --> 00:41:29,320 I to jest konwencja w wielu językach 871 00:41:29,320 --> 00:41:31,730 zgodnie z którym, jeśli chcesz mieć zastępczy ciąg 872 00:41:31,730 --> 00:41:34,105 masz zamiar użyć pytanie Znaki powodów my będziemy 873 00:41:34,105 --> 00:41:36,370 wrócić do rozmowy o bezpieczeństwa, a tutaj 874 00:41:36,370 --> 00:41:39,420 Zamierzam przekazać w tych dwa pola pisać nazwę, 875 00:41:39,420 --> 00:41:44,850 a następnie po numer a teraz zapisać plik. 876 00:41:44,850 --> 00:41:47,090 >> A teraz mam zamiar zejść tu jest super 877 00:41:47,090 --> 00:41:55,690 po prostu powiedzieć rendersuccess.php, który będzie inny szablon. 878 00:41:55,690 --> 00:41:57,380 Mam zamiar stworzyć naprawdę szybko. 879 00:41:57,380 --> 00:42:06,270 Geditsuccess.php a ja po prostu się powiedzieć sukces H1 w tym pliku. 880 00:42:06,270 --> 00:42:06,990 Dobrze. 881 00:42:06,990 --> 00:42:11,312 Więc teraz, wróćmy do Przeglądarka, gdzie byłem przed. 882 00:42:11,312 --> 00:42:14,270 Idziemy dalej i potwierdzić napisałem Dawida, pisałem w numerze telefonu, 883 00:42:14,270 --> 00:42:15,390 zarejestruj. 884 00:42:15,390 --> 00:42:16,100 Cholera. 885 00:42:16,100 --> 00:42:17,420 Co robię źle? 886 00:42:17,420 --> 00:42:20,850 Więc widzę błąd Tutaj mieć błąd w składni SQL. 887 00:42:20,850 --> 00:42:24,900 Pozwól mi wrócić do gedit, niech mi wrócić do register.php, 888 00:42:24,900 --> 00:42:28,830 i co ja pominąć, że Ostatni raz było ważne? 889 00:42:28,830 --> 00:42:29,722 Potrzebuję tego. 890 00:42:29,722 --> 00:42:32,930 Chcesz wiedzieć, że inne niż z o zauważyłem wcześniej, ale potrzebuję tego. 891 00:42:32,930 --> 00:42:35,596 >> Więc teraz wróćmy, a to był pomocny, aby zobaczyć w przeglądarce 892 00:42:35,596 --> 00:42:37,680 i dlatego w config.php my wypluć błędy. 893 00:42:37,680 --> 00:42:41,770 Idziemy dalej i przeładować, kliknij Kontynuuj, sukces. 894 00:42:41,770 --> 00:42:47,060 Więc teraz pozwól mi iść do mojego bazy danych i kliknij tutaj użytkowników, 895 00:42:47,060 --> 00:42:51,680 i przeglądać, a zauważysz, I teraz mieć Davida w mojej bazy danych tutaj. 896 00:42:51,680 --> 00:42:55,810 Teraz ta strona jest technicznie jeszcze nie na publicznym internecie 897 00:42:55,810 --> 00:42:57,890 więc nie mogę mieć inne ludzie umieszczenie tutaj, 898 00:42:57,890 --> 00:43:01,120 ale gdybym teraz chciał, na Instancja, wysyłać sobie wiadomości tekstowych. 899 00:43:01,120 --> 00:43:03,920 Chodźmy w opałach tutaj i sprawdzić, czy to faktycznie działa. 900 00:43:03,920 --> 00:43:07,331 Mam zamiar iść do przodu i usunąć tego wiersza 901 00:43:07,331 --> 00:43:09,080 a my w tym rozmycia w filmie później 902 00:43:09,080 --> 00:43:11,900 więc nie mamy Cały www tekstylny mnie 903 00:43:11,900 --> 00:43:17,270 a my teraz przejść do Przeglądarka i pójdziemy na wykład 904 00:43:17,270 --> 00:43:22,040 a my wpisać inny Numer tutaj, zarejestruj, sukces. 905 00:43:22,040 --> 00:43:25,550 >> Więc teraz, mój numer to prawdopodobnie w bazy danych, a teraz część zabawy. 906 00:43:25,550 --> 00:43:28,774 Miejmy faktycznie korzystać z PHP zrobić coś programowo, 907 00:43:28,774 --> 00:43:30,940 albo z polecenia linii lub z innego miejsca, 908 00:43:30,940 --> 00:43:32,773 a teraz jestem po prostu zamierza utrzymać proste 909 00:43:32,773 --> 00:43:36,230 i mam zamiar iść do mojego Katalog tutaj i wykonaj następujące czynności. 910 00:43:36,230 --> 00:43:44,920 Skrypt gedit powiedzmy, będziemy Nazywamy to tekst, #! / user / bin / env PHP 911 00:43:44,920 --> 00:43:46,700 jak widzieliśmy ostatnio. 912 00:43:46,700 --> 00:43:47,950 PHP. 913 00:43:47,950 --> 00:43:55,055 >> Teraz mam zamiar wymagają obejmuje config.php, 914 00:43:55,055 --> 00:43:57,360 chociaż może to wywołują niewielki błąd. 915 00:43:57,360 --> 00:44:03,960 A teraz mam zamiar iść dalej i powiedzieć, wierszy, zapytania, wybierz gwiazda z użytkowników, 916 00:44:03,960 --> 00:44:08,149 a teraz mam zamiar zrobić technikę z ostatniej chwili dla każdego wierszy jak rzędu. 917 00:44:08,149 --> 00:44:09,690 I mam zamiar zrobić coś prostego. 918 00:44:09,690 --> 00:44:19,090 Printf powiedzmy, że jest to nazwa, i jest to liczba, backslash n. 919 00:44:19,090 --> 00:44:23,320 A teraz mam zamiar przejść w wierszu cytatu nazwę, 920 00:44:23,320 --> 00:44:28,140 i numer wiersza cytatu, a teraz idziemy do przodu 921 00:44:28,140 --> 00:44:31,430 i moje okno terminalu chmod + x to zrobić 922 00:44:31,430 --> 00:44:33,970 ten skrypt o nazwie wykonywalny tekst. 923 00:44:33,970 --> 00:44:36,080 A teraz uruchom tekst. 924 00:44:36,080 --> 00:44:37,590 >> OK, więc postęp. 925 00:44:37,590 --> 00:44:39,960 Więc teraz mam napisane Linia skrypt poleceń, 926 00:44:39,960 --> 00:44:43,300 zwanym w języku PHP, że z tego powodu wymagają linię 927 00:44:43,300 --> 00:44:46,380 ma dostęp do tych wszystkich konfiguracji Stałe, że określone. 928 00:44:46,380 --> 00:44:48,177 Nazwa bazy danych, i tak dalej. 929 00:44:48,177 --> 00:44:50,260 W rzeczywistości, po prostu być jasne że to nie jest fuks, 930 00:44:50,260 --> 00:44:54,730 pozwól mi iść dalej i zarejestrować, bardzo szybko, ktoś inny jak Rob 931 00:44:54,730 --> 00:44:58,890 i daje mu numer 555-1212. 932 00:44:58,890 --> 00:45:01,557 >> A teraz, jeśli uruchomić skrypt ponownie, zauważysz moc 933 00:45:01,557 --> 00:45:03,140 z tego, co robimy z bazy danych. 934 00:45:03,140 --> 00:45:07,680 Teraz już widać, co natychmiast pozostałe dwa wiersze są w mojej bazy danych. 935 00:45:07,680 --> 00:45:10,699 Teraz spróbujmy zrobić coś nawet hodowcy wewnątrz, 936 00:45:10,699 --> 00:45:12,740 i to jest część mamy nie badano z góry, 937 00:45:12,740 --> 00:45:15,910 tak ostatni raz zrobiłem to wszystko poszło strasznie krzywo, 938 00:45:15,910 --> 00:45:17,120 mamy wideo w tym celu. 939 00:45:17,120 --> 00:45:18,286 >> Właściwie, tak, zabawny bok. 940 00:45:18,286 --> 00:45:20,480 Więc po raz ostatni, w wykład, jak dwa lata temu, 941 00:45:20,480 --> 00:45:23,230 zdecydowaliśmy, postanowiłem, aby być wszystko to będzie świetny pomysł 942 00:45:23,230 --> 00:45:28,150 do dynamicznego generowania wiadomości w klasa, przy użyciu bazy danych całego CS50 943 00:45:28,150 --> 00:45:33,390 studentów, którzy dali nam ich numery Telefon komórkowy i ich nośniki, które Cię 944 00:45:33,390 --> 00:45:36,290 może przywołać z pset0, jak rozumieć, okazuje się, 945 00:45:36,290 --> 00:45:40,650 Miałem drobny błąd w moim programie i zrobiłem kilka błędów w 2012, myślę. 946 00:45:40,650 --> 00:45:43,997 >> Przy czym jeden miałem do pętli, która zrobiłem dokładnie tego typu rzeczy, 947 00:45:43,997 --> 00:45:46,580 iteracji nad bazą danych, się nazwę z bazy danych, 948 00:45:46,580 --> 00:45:49,940 nazwy z bazy danych, a następnie na każdy iteracja pętli wysłałem e-mail. 949 00:45:49,940 --> 00:45:54,130 Ale zamiast wysłanie wiadomości e-mail, ja wysłał jeden e-mail pierwszej iteracji, 950 00:45:54,130 --> 00:45:58,200 i dwa e-maile drugiej iteracji, wysłany trzy maile drugiej iteracji, które 951 00:45:58,200 --> 00:46:01,230 jak może pamiętacie z naszego dyskusja notacji asymptotycznej 952 00:46:01,230 --> 00:46:06,400 O z tego wielki zły, jak n do kwadratu to ile wiadomości wysłałem, 953 00:46:06,400 --> 00:46:08,560 ale to nie było nawet e-maile było to wiadomości tekstowe. 954 00:46:08,560 --> 00:46:12,070 >> A jak wiadomo, nie jest frekwencja bardzo wysoki pod koniec semestru 955 00:46:12,070 --> 00:46:15,360 i tak myślałem, że będzie to ładny na czas, aby powiedzieć: "Dlaczego nie jesteś klasy?" 956 00:46:15,360 --> 00:46:17,880 W Wiadomość I wysyłane do całej klasie 957 00:46:17,880 --> 00:46:22,140 i to było śmieszne jak 50% klasa, ale pozostałe 50%, z których część 958 00:46:22,140 --> 00:46:26,102 pstry, i wysłał niezwykle apologetic słodkie nuty 959 00:46:26,102 --> 00:46:28,560 aby personel przepraszać po prostu brakowało wykład 960 00:46:28,560 --> 00:46:29,530 ten jeden raz, prawda? 961 00:46:29,530 --> 00:46:32,790 962 00:46:32,790 --> 00:46:34,030 >> Tak, że będzie strasznie krzywo. 963 00:46:34,030 --> 00:46:37,030 Tak więc w tym duchu, spróbujmy to ponownie, ale tylko z moim numerem. 964 00:46:37,030 --> 00:46:41,940 Z góry, w functions.php, Napisałem tę funkcję tutaj. 965 00:46:41,940 --> 00:46:44,250 To się nazywa tekst, i to odbywa się w trzech argumentów. 966 00:46:44,250 --> 00:46:46,360 Numer, przewoźnik, a komunikat. 967 00:46:46,360 --> 00:46:50,390 >> Używam instrukcji switch, która cudownie PHP wziąć ciągi, a nie tylko 968 00:46:50,390 --> 00:46:53,350 liczby całkowite, a nie realizacji wszystkim wsparcie dla tego jeszcze, 969 00:46:53,350 --> 00:46:55,370 Właśnie odbywa się AT & T i Verizon. 970 00:46:55,370 --> 00:46:57,610 Ponieważ okazało że z tych przewoźników 971 00:46:57,610 --> 00:47:00,570 mają e-mail do bramki SMS, w którym można naprawdę 972 00:47:00,570 --> 00:47:05,529 wyślij e-mail na adres jak numer telefonu na vtext.com 973 00:47:05,529 --> 00:47:08,070 i jeżeli użytkownik nie zablokował wiadomości, to będzie przejść przez 974 00:47:08,070 --> 00:47:09,340 jest tekst wiadomości. 975 00:47:09,340 --> 00:47:13,270 >> Teraz, aby to zrobić, mam zamiar dodać jedno pole bardzo szybko do mojej bazy danych. 976 00:47:13,270 --> 00:47:15,470 Mam zamiar iść do moja konstrukcja, a ja jestem 977 00:47:15,470 --> 00:47:21,880 zamiar iść dalej i dodać Pole na końcu tabeli. 978 00:47:21,880 --> 00:47:25,227 Załóżmy, kliknij przycisk Go, a ja jestem Zadzwonię do tego przewoźnika 979 00:47:25,227 --> 00:47:27,310 i teraz mam zamiar zostawić to jako tekst bar, 980 00:47:27,310 --> 00:47:29,320 ale możemy być hodowcy w przyszłości. 981 00:47:29,320 --> 00:47:31,961 Mam zamiar szybko przejść na moim stole, a ja jestem 982 00:47:31,961 --> 00:47:34,210 zamierza pozbyć się Rob, bo to liczba fałszywych, 983 00:47:34,210 --> 00:47:38,540 Mam zamiar iść do edycji tutaj, a ja jestem będzie ręcznie zmienić przewoźnika 984 00:47:38,540 --> 00:47:43,410 być Verizon, które go jest, a teraz tutaj. 985 00:47:43,410 --> 00:47:44,980 >> Zróbmy szybki testow. 986 00:47:44,980 --> 00:47:52,730 Otwórzmy nasze skrypt tekst, który wygląda tak, przewoźnik jest% s. 987 00:47:52,730 --> 00:47:58,230 Robimy dużo więcej błędów sprawdzanie niż ja w 2012, przewoźnika. 988 00:47:58,230 --> 00:48:01,160 A teraz, mam zamiar iść do przodu i ponownie uruchomić skrypt. 989 00:48:01,160 --> 00:48:01,660 OK. 990 00:48:01,660 --> 00:48:06,100 Przewoźnik Verizon, co oznacza, Teraz mam nadzieję, że mogę zrobić tylko to. 991 00:48:06,100 --> 00:48:08,360 Właściwie w tym roku, miejmy nadzieję, że jedziemy. 992 00:48:08,360 --> 00:48:12,200 >> Więc to na środku pętli, jestem będzie nie tylko to printf, 993 00:48:12,200 --> 00:48:15,990 Mam również zamiar zadzwonić tekst i Wykorzystanie tej funkcji przywołania 994 00:48:15,990 --> 00:48:19,670 był potrzebny numer, przewoźnik i wiadomości. 995 00:48:19,670 --> 00:48:23,310 Zobaczmy więc, liczba będzie być wiersz cytatu "numer" 996 00:48:23,310 --> 00:48:31,660 wiersz cytatu "nośnik" i ostatni był komunikat. 997 00:48:31,660 --> 00:48:36,250 Nie zepsuć tego roku, średnik. 998 00:48:36,250 --> 00:48:36,780 >> OK. 999 00:48:36,780 --> 00:48:38,280 Kciuki. 1000 00:48:38,280 --> 00:48:39,970 Zobaczymy, czy to działa. 1001 00:48:39,970 --> 00:48:41,720 Dobrze, więc. 1002 00:48:41,720 --> 00:48:43,000 No to jedziemy. 1003 00:48:43,000 --> 00:48:47,380 Załóżmy, odblokować telefon, trzymaj kciuki, do cholery. 1004 00:48:47,380 --> 00:48:50,300 Niezdefiniowana zmienna may-- oh czekaj, czekaj, czekaj, naprawdę szybko. 1005 00:48:50,300 --> 00:48:51,340 Bardzo szybko, naprawdę szybko. 1006 00:48:51,340 --> 00:48:53,380 To jest całkowicie warto. 1007 00:48:53,380 --> 00:48:57,710 Pozwól mi złapać, pozwól mi chwycić, uh-oh. 1008 00:48:57,710 --> 00:48:59,965 Dziękuję, teksty mają Zaczęło się od kogoś innego. 1009 00:48:59,965 --> 00:49:04,770 1010 00:49:04,770 --> 00:49:11,650 Pozwólcie mi iść do przodu i otworzyć prawdziwe szybko, dropbox.php / mail tutaj. 1011 00:49:11,650 --> 00:49:12,660 Czuwania. 1012 00:49:12,660 --> 00:49:14,455 Całkowicie warto. 1013 00:49:14,455 --> 00:49:17,430 Pliki do pobrania. 1014 00:49:17,430 --> 00:49:18,560 OK, źródło src8m. 1015 00:49:18,560 --> 00:49:19,700 OK. 1016 00:49:19,700 --> 00:49:21,380 >> Potrzebujesz jeszcze jedną linię tutaj. 1017 00:49:21,380 --> 00:49:24,530 Och, nie jest to, to jest w Frosh IM, to w rejestrze na trzech. 1018 00:49:24,530 --> 00:49:28,820 Ach witam, Margo, dziękuję bardzo. 1019 00:49:28,820 --> 00:49:31,130 OK, a mi brakuje tej linii tutaj. 1020 00:49:31,130 --> 00:49:33,010 Więc pozwól mi szybko złapać ta linia kodu, 1021 00:49:33,010 --> 00:49:36,200 który obejmuje mail lub bibliotekę że rzeczywiście chcesz użyć, 1022 00:49:36,200 --> 00:49:38,300 Mam zamiar szybko wrócić do funkcji, 1023 00:49:38,300 --> 00:49:42,337 Mam zamiar iść na górę to złożyć i wymagają tego pliku, jak również, 1024 00:49:42,337 --> 00:49:45,420 a teraz mam zamiar naprawdę krzyż mój palce, gdy wrócę do polecenia 1025 00:49:45,420 --> 00:49:49,530 Skrypt linia, która jest w środku dzisiejszy lokalny katalog hosta. 1026 00:49:49,530 --> 00:49:50,610 Uruchom tekst. 1027 00:49:50,610 --> 00:49:52,720 Enter. 1028 00:49:52,720 --> 00:49:53,220 Poczta. 1029 00:49:53,220 --> 00:49:53,719 Czuwania. 1030 00:49:53,719 --> 00:49:58,850 1031 00:49:58,850 --> 00:49:59,600 Czuwania. 1032 00:49:59,600 --> 00:50:01,680 Poczta. 1033 00:50:01,680 --> 00:50:02,290 Och, OK. 1034 00:50:02,290 --> 00:50:03,870 No to jedziemy. 1035 00:50:03,870 --> 00:50:06,880 >> Poczta dostaje nowy PHP pocztowego. 1036 00:50:06,880 --> 00:50:09,970 Czy zrobić to prawo? 1037 00:50:09,970 --> 00:50:11,067 Cholera. 1038 00:50:11,067 --> 00:50:12,150 To-- Och, czekaj, czekaj, czekaj. 1039 00:50:12,150 --> 00:50:12,649 Stand by. 1040 00:50:12,649 --> 00:50:15,820 1041 00:50:15,820 --> 00:50:18,630 Obiecuję, to jest będzie więc warto. 1042 00:50:18,630 --> 00:50:20,340 Adres. 1043 00:50:20,340 --> 00:50:24,390 Dlatego nie robię przykłady tuż przed klasą. 1044 00:50:24,390 --> 00:50:26,350 Fuj. 1045 00:50:26,350 --> 00:50:27,910 Następujące odbiorcy nie powiodło się. 1046 00:50:27,910 --> 00:50:31,500 1047 00:50:31,500 --> 00:50:33,040 Spróbujmy jeszcze jedną rzecz. 1048 00:50:33,040 --> 00:50:40,660 SMTP ustawić od, dodać adres, Adres jest rzeczywiście to. 1049 00:50:40,660 --> 00:50:43,980 Spróbujmy tę ostatnią rolę w adresie. 1050 00:50:43,980 --> 00:50:47,210 Och, jestem bardzo smutny teraz. 1051 00:50:47,210 --> 00:50:47,854 Dziękuję. 1052 00:50:47,854 --> 00:50:50,270 Ale ja naprawdę doceniam wszystko teksty byłeś wysyłania. 1053 00:50:50,270 --> 00:50:53,130 1054 00:50:53,130 --> 00:50:56,320 Masz to David. 1055 00:50:56,320 --> 00:50:59,310 Jesteś dmuchanie go. 1056 00:50:59,310 --> 00:51:01,720 Zostawmy go tam i będziemy naprawić w poniedziałek. 1057 00:51:01,720 --> 00:51:04,290 Do zobaczenia. 1058 00:51:04,290 --> 00:51:08,090 >> Daven FARNHAM: A teraz Głębokie Myśli przez Daven Farnham. 1059 00:51:08,090 --> 00:51:11,340 1060 00:51:11,340 --> 00:51:17,590 Jeżeli drzewo binarne spadnie w lesie i nikt nie jest wokół do C it-- [chichocze]. 1061 00:51:17,590 --> 00:51:18,998