1 00:00:00,000 --> 00:00:03,000 [Powered by Google Translate] [Problem Walkthrough Set 7] 2 00:00:03,000 --> 00:00:04,400 [Zamyla Chan] [Harvard University] 3 00:00:04,400 --> 00:00:07,640 [To jest CS50] [CS50.TV] 4 00:00:07,640 --> 00:00:12,090 >> Witam wszystkich i zapraszamy do Walkthrough 7, CS50 Finansów. 5 00:00:12,090 --> 00:00:15,090 Teraz oficjalnie zrobić z wszystkich psets w CS50, 6 00:00:15,090 --> 00:00:19,380 a my tylko jeden z lewej, który będzie realizacja zabawa 7 00:00:19,380 --> 00:00:23,770 strony internetowej, na której użytkownicy mogą zalogować się na CS50 Finansów 8 00:00:23,770 --> 00:00:25,830 i kupować i sprzedawać akcje. 9 00:00:25,830 --> 00:00:32,280 >> Dziś będziemy mieć kilka narzędzi do naszej dyspozycji. 10 00:00:32,280 --> 00:00:34,320 Będziemy mówić o uprawnieniach. 11 00:00:34,320 --> 00:00:36,380 Gdy masz folder WWW, 12 00:00:36,380 --> 00:00:40,800 masz zamiar chcesz pozwolić użytkownikom na wykonanie niektórych plików 13 00:00:40,800 --> 00:00:42,500 ale także po prostu czytać pozostałych, 14 00:00:42,500 --> 00:00:45,150 więc zajmiemy się uprawnieniami i jak można ustawić te. 15 00:00:45,150 --> 00:00:49,630 Potem będziemy patrzeć w PHP, HTML, i kod SQL. 16 00:00:49,630 --> 00:00:51,990 >> Po pierwsze, uprawnienia. 17 00:00:51,990 --> 00:00:56,060 Kiedy jesteś w panelu w danym katalogu, 18 00:00:56,060 --> 00:01:00,430 to co chcesz zrobić, to chcesz uruchomić polecenie chmod. 19 00:01:00,430 --> 00:01:03,750 Który jest następnie albo liter lub cyfr 20 00:01:03,750 --> 00:01:08,100 odpowiadający co w zasadzie chcesz, aby świat zobaczyć, 21 00:01:08,100 --> 00:01:09,830 sam zobaczyć, itp. 22 00:01:09,830 --> 00:01:13,350 Na przykład, gdy masz folder, 23 00:01:13,350 --> 00:01:15,560 to chcesz tego folderu na wykonywalny przez wszystkich, że to widzi, 24 00:01:15,560 --> 00:01:19,500 więc co można zrobić, to można uruchomić polecenia chmod + x 25 00:01:19,500 --> 00:01:21,050 a nazwa folderu. 26 00:01:21,050 --> 00:01:28,110 Kiedy masz plik np. pliki CSS lub plików graficznych - 27 00:01:28,110 --> 00:01:33,060 jak JPEG i bitmapy, takie rzeczy, lub dowolny kod JavaScript - 28 00:01:33,060 --> 00:01:36,440 chcesz, być czytelny przez wszystkich, 29 00:01:36,440 --> 00:01:39,880 tak, to co możesz zrobić, to można użyć symboli wieloznacznych - 30 00:01:39,880 --> 00:01:41,650 które jest gwiazdką - 31 00:01:41,650 --> 00:01:46,190 w zasadzie wskazać w folderze CSS - wszystko w tym folderze - 32 00:01:46,190 --> 00:01:48,740  I powiem, że będzie czytelny dla wszystkich. 33 00:01:48,740 --> 00:01:54,220 Z uprawnieniami, gdy używamy litery, 34 00:01:54,220 --> 00:01:57,610 możemy także używać liczb zamiast. 35 00:01:57,610 --> 00:02:00,900 Więc widzisz, że ostatecznie, kiedy chcesz coś na wykonywalny - 36 00:02:00,900 --> 00:02:02,810 , który jest reprezentowany przez liczbę 1 - 37 00:02:02,810 --> 00:02:08,340 coś być czytelny jest numer 4, a następnie - 38 00:02:08,340 --> 00:02:10,590 zapisu jest numer 2 - 39 00:02:10,590 --> 00:02:13,670 i tak w istocie, kiedy chcesz kombinacji tych, a następnie je dodać. 40 00:02:13,670 --> 00:02:15,860 Jeśli chcesz coś, aby być czytelne, zapisu, a plik wykonywalny, 41 00:02:15,860 --> 00:02:21,970 wtedy można dodać maksymalnie 4, 2 i 1, i że daje 7, 42 00:02:21,970 --> 00:02:26,230 wtedy, gdy masz folder, który będzie wykonywany przez wszystkich - 43 00:02:26,230 --> 00:02:31,380 oraz odczytu i zapisu - wtedy sprawiają, że 7, 1, 1. 44 00:02:31,380 --> 00:02:38,140 To byłoby 7 dla Ciebie, to 1 dla innych ludzi. 45 00:02:38,140 --> 00:02:42,870 Kiedy masz specyfikację, będzie to rzeczywiście określić, które foldery i pliki, które 46 00:02:42,870 --> 00:02:45,040 muszą być specjalnie chmod-ED. 47 00:02:45,040 --> 00:02:47,920 Na przykład, kiedy masz foldery - to 7-1-1 - 48 00:02:47,920 --> 00:02:52,690 jeśli masz zdjęcia lub HTML, CSS, JavaScript, 49 00:02:52,690 --> 00:02:55,870 Następnie te będą 6, 0, 4 - lub 6, 4, 4 - 50 00:02:55,870 --> 00:03:00,030 a następnie pliki PHP będą 6, 0, 0. 51 00:03:00,030 --> 00:03:04,940 Ideą jest to, że użytkownicy nie powinni rzeczywiście zobaczyć swój kod PHP, 52 00:03:04,940 --> 00:03:08,370 ale po prostu być w stanie zobaczyć wyjście. 53 00:03:08,370 --> 00:03:11,030 >> Great! Przeprowadzka do PHP. 54 00:03:11,030 --> 00:03:18,850 Po prostu, kiedy chcesz plik PHP, przyrostek pliku jest. Php. 55 00:03:18,850 --> 00:03:22,000 Można również mieszać HTML z kodu PHP. 56 00:03:22,000 --> 00:03:24,880 Jeśli masz plik HTML, na przykład, 57 00:03:24,880 --> 00:03:32,520 następnie można umieścić ją w lewym kącie, znak zapytania, PHP - 58 00:03:32,520 --> 00:03:39,320 umieścić swój kod php - a potem blisko, że z innym znakiem zapytania i kątem. 59 00:03:39,320 --> 00:03:45,020 Zmienne w PHP są dużo łatwiejsze do zwalczenia niż zmiennych w C 60 00:03:45,020 --> 00:03:50,310 Każda zmienna po prostu zaczyna się znak dolara przed nim, a oni słabo wpisane. 61 00:03:50,310 --> 00:03:53,470 To oznacza, że ​​nie musisz się martwić o ustawienie czegoś 62 00:03:53,470 --> 00:03:55,020 równy ciąg lub liczba całkowita. 63 00:03:55,020 --> 00:03:57,710 Można po prostu powiedzieć, że to jest moja nazwa zmiennej 64 00:03:57,710 --> 00:04:00,390 i to jest jego wartość, 65 00:04:00,390 --> 00:04:03,280 więc to będzie łatwiejsze do czynienia z tam. 66 00:04:03,280 --> 00:04:08,220 >> Inną rzeczą jest to, że PHP pozwala na użycie tablic asocjacyjnych. 67 00:04:08,220 --> 00:04:11,330 Można po prostu zdefiniować tablicę jak chcesz w C 68 00:04:11,330 --> 00:04:14,900 mówiąc dollar sign-nazwa tablicy, równych, 69 00:04:14,900 --> 00:04:22,600 a następnie w nawiasach kwadratowych mają w zasadzie tylko wykaz wartości wszystkich elementów tablicy. 70 00:04:22,600 --> 00:04:27,160 Ale, w PHP, co można również zrobić to podać w zasadzie - 71 00:04:27,160 --> 00:04:31,050 to jest coś w rodzaju funkcji mieszania. 72 00:04:31,050 --> 00:04:34,410 Można określić indeks - co masz zamiar to nazwać - 73 00:04:34,410 --> 00:04:37,030 , a następnie, że wartość odpowiada. 74 00:04:37,030 --> 00:04:42,880 Jeśli rzeczywiście przekazać w = 1, b = 2, c = 3, 75 00:04:42,880 --> 00:04:50,820 wówczas tablicy o indeksie nie daje 1. 76 00:04:50,820 --> 00:04:56,600 Ten zbior rozgrzeje Cię z jakimś PHP w sekcji pytań, 77 00:04:56,600 --> 00:04:59,240 a potem zanurkować CS50 Finansów. 78 00:04:59,240 --> 00:05:02,650 >> Mamy kilka - mamy pewne funkcje, w zasadzie, 79 00:05:02,650 --> 00:05:05,130 wdrożyć na tej stronie. 80 00:05:05,130 --> 00:05:10,440 Chcemy, aby użytkownicy mogli zarejestrować się w naszym serwisie, podając nazwę użytkownika i hasło. 81 00:05:10,440 --> 00:05:13,670 Chcemy, aby mogli wyszukać ofertę, 82 00:05:13,670 --> 00:05:19,330 i wtedy możemy wydrukować nazwę tego cytatem, jak również aktualną cenę, że jest to w. 83 00:05:19,330 --> 00:05:26,830 Chcemy, aby mogli zobaczyć portfela wszystkie akcje, że nabyli dotychczas. 84 00:05:26,830 --> 00:05:34,240 Chcemy również, aby mogły kupować akcje, jak je sprzedać. 85 00:05:34,240 --> 00:05:37,540 I w końcu, chcemy, aby umożliwić im zobaczyć historię 86 00:05:37,540 --> 00:05:39,490 od wszystkich transakcji, które zrobili. 87 00:05:39,490 --> 00:05:41,540 Następnie, w końcu, po tym, jak wdrożyć to wszystko, 88 00:05:41,540 --> 00:05:45,110 wtedy jesteś wolny, aby wdrożyć jedną dodatkową funkcję. 89 00:05:45,110 --> 00:05:46,610 Pójdziemy do nich. 90 00:05:46,610 --> 00:05:51,330 Te mogą być użytkownicy pozwalające uzyskać dodatkową gotówkę przez złożenie dodatkowej gotówki, 91 00:05:51,330 --> 00:05:54,550 lub można pozwolić im zmienić swoje hasło, czy coś takiego, 92 00:05:54,550 --> 00:06:00,590 Wysłać im otrzymanie przy zakupie lub sprzedaży akcji. 93 00:06:00,590 --> 00:06:05,370 Jest ograniczona lista funkcji, które można realizują samodzielnie, 94 00:06:05,370 --> 00:06:08,340 więc to ostatni tam. 95 00:06:08,340 --> 00:06:13,430 >> Ponieważ jest to strona internetowa, wy też dużo swobody, aby dostosować go. 96 00:06:13,430 --> 00:06:20,960 Mamy dostarczyć trochę kodu CSS, ale jesteś zdecydowanie swobodnie dostosować go, 97 00:06:20,960 --> 00:06:26,680 sprawiają, że wygląda ładniej, ale bazowego jest podstawowa funkcjonalność 98 00:06:26,680 --> 00:06:30,310 więc zawsze można znaleźć w specyfikacji o tym, co rzeczywiście trzeba to tam. 99 00:06:30,310 --> 00:06:39,940 Po specyfikacji, będziemy się przy użyciu urządzenia, jak również na serwerze. 100 00:06:39,940 --> 00:06:43,910 To będzie gospodarzem naszej strony dla nas, na serwerze lokalnym. 101 00:06:43,910 --> 00:06:49,750 Jeśli zastosujemy się do tych instrukcji i rozpakuj Pset 7 dystrybucji kodu 102 00:06:49,750 --> 00:06:53,500 do wirtualnego hosta / local folderze przyjmującym 103 00:06:53,500 --> 00:07:02,470  Następnie można po prostu odwiedzić http://localhost/ w Google Chrome w urządzenie, 104 00:07:02,470 --> 00:07:09,120 i wtedy można dotrzeć do kodu, w którym napisałeś Pset 7. 105 00:07:09,120 --> 00:07:14,490 >> Pset 7 pochodzi z bandą kodu dystrybucyjnego, 106 00:07:14,490 --> 00:07:18,330 i miejmy nadzieję, że weszliśmy - przez wszystkie psets przed tym - 107 00:07:18,330 --> 00:07:21,700 przyzwyczaiła nas do czytania kodu dystrybucyjnego, 108 00:07:21,700 --> 00:07:25,650 zrozumienie, jakie funkcje są już przewidziane, i jak możemy być w stanie wykorzystać 109 00:07:25,650 --> 00:07:29,470 te i inne funkcje, które mamy zamiar się realizacji. 110 00:07:29,470 --> 00:07:31,570 W tym przypadku, mamy 3 foldery. 111 00:07:31,570 --> 00:07:36,350 Mamy HTML folderu zawierającego folder i folder szablonów. 112 00:07:36,350 --> 00:07:40,630 Co będziemy robić z tego zbior jest rodzaju oddzielenie myślenia - 113 00:07:40,630 --> 00:07:45,580 myślenie programowania - z kodu PHP z rzeczywistym aspekcie wizualnym. 114 00:07:45,580 --> 00:07:52,690 Będziemy mieć jeden plik PHP, który nie wszystkie myśli, czyta do bazy danych, 115 00:07:52,690 --> 00:07:55,620 wypisuje rzeczy, ma if - rzeczy tak - 116 00:07:55,620 --> 00:08:02,140 , a następnie, że będziemy przekazywać dane do naszego pliku szablonu - lub pliku template.php. 117 00:08:02,140 --> 00:08:05,710 Co to będzie zrobić, to odczytać danych, a następnie będzie go wydrukować. 118 00:08:05,710 --> 00:08:09,550 >> Możemy traktować jako szablony "głupi" w tym tak naprawdę nie chcę ich 119 00:08:09,550 --> 00:08:12,370 się robić dużo pracy przy obliczaniu rzeczy. 120 00:08:12,370 --> 00:08:16,330 Chcemy, aby nasi kontrolerzy to zrobić. 121 00:08:16,330 --> 00:08:21,610 Trochę na ten temat - rzućmy okiem na niektóre z kodu dystrybucyjnego. 122 00:08:21,610 --> 00:08:28,250 Tutaj mamy plik index.html, i to jest całkiem pusty. 123 00:08:28,250 --> 00:08:34,429 Zasadniczo to, co robi - mówi, dobrze, będę wymagać pliku configuration.php. 124 00:08:34,429 --> 00:08:40,120 Nie widzimy, że właśnie tam, ale to po prostu wywołanie pliku configuration.php, 125 00:08:40,120 --> 00:08:42,240 i wykonanie tego. 126 00:08:42,240 --> 00:08:45,130 Po to robi, to się oddać portfel. 127 00:08:45,130 --> 00:08:49,310 Rendering jest funkcją, więc kiedy jesteśmy w kontrolerze, 128 00:08:49,310 --> 00:08:56,490 nazwijmy render, dajemy plik, a następnie dane, które mamy przechodzące w, 129 00:08:56,490 --> 00:09:04,570 tak, że będzie ona wezwać portfolio.php--rodzaju przełęczy tych danych tak, że portfolio może sobie z tym poradzić. 130 00:09:04,570 --> 00:09:10,540 >> A teraz, tutaj, mamy login.php formularz. 131 00:09:10,540 --> 00:09:17,540  Jest to kontroler, który w zasadzie zajmuje się zalogowaniu 132 00:09:17,540 --> 00:09:29,090 Tutaj, to sprawdza, czy formularz został złożony do tego pliku i zajmuje walidacji zgłoszenia. 133 00:09:29,090 --> 00:09:31,990 Przyjrzymy się tej funkcji przeprosić. 134 00:09:31,990 --> 00:09:35,100 Gdy chcemy wydrukować komunikat o błędzie, 135 00:09:35,100 --> 00:09:39,550 używamy przeprosić i będzie przekierować użytkownika do określonej strony 136 00:09:39,550 --> 00:09:42,530 że będzie wydrukować konkretny komunikat o błędzie, że wskazania. 137 00:09:42,530 --> 00:09:47,860 Kontynuując, to zapytanie do bazy danych - we'll dostać się więcej o tym później. 138 00:09:47,860 --> 00:09:54,180 Wtedy zobaczysz, że tu na dole, jeśli formularz nie został złożony, to renderuje formularza. 139 00:09:54,180 --> 00:10:01,360 Oznacza to, że idzie do login_form.php, więc spójrzmy na to. 140 00:10:01,360 --> 00:10:09,400 >> Login.php jest faktycznie gdzie widzimy HTML do czynienia z rzeczywistą aspekt wizualny. 141 00:10:09,400 --> 00:10:15,130 Tutaj mamy tag wejściowy dla nazwy użytkownika, wejście na hasło, 142 00:10:15,130 --> 00:10:16,630 jak również jako przycisk Prześlij. 143 00:10:16,630 --> 00:10:22,660 To właściwie gdzie aspekt wizualny i formularz HTML ma być przechowywane. 144 00:10:22,660 --> 00:10:27,550 Tu jest napisane, że to będzie składać pewnej metodzie, zwanej post. 145 00:10:27,550 --> 00:10:30,190 Zajmiemy się różnic między metodami - 146 00:10:30,190 --> 00:10:33,240 zakładać kontra dostać, jest również coś, co nazywa położyć - 147 00:10:33,240 --> 00:10:36,160 zajmiemy się tymi metodami później, ale na interesie tego PSET, 148 00:10:36,160 --> 00:10:37,810 Gorąco zachęcamy do korzystania z post. 149 00:10:37,810 --> 00:10:42,210 >> Wiemy, że w zasadzie po to formularz jest składany - 150 00:10:42,210 --> 00:10:44,650 od login_form.php-- 151 00:10:44,650 --> 00:10:50,850 następnie będzie przejść do działania - login.php-- 152 00:10:50,850 --> 00:10:56,070 zasadniczo przechodzą w tych wszystkich parametrów z tych form w login.php. 153 00:10:56,070 --> 00:11:04,900 Wyniki tej postaci są zawarte w tym poście asocjacyjnej. 154 00:11:04,900 --> 00:11:11,710 Indeksy z różnych elementów w tablicy postu 155 00:11:11,710 --> 00:11:15,290 to dokładnie to, co można określić tutaj. 156 00:11:15,290 --> 00:11:19,240 Można powiedzieć, że nazwa tego wejścia jest nazwa użytkownika. Nazwa tego jednego jest hasło. 157 00:11:19,240 --> 00:11:26,840 Podobnie, zobaczysz nick jako indeks tablicy asocjacyjnej tam. 158 00:11:26,840 --> 00:11:35,110 Jeśli idziemy do folderu zawierającego mamy ten plik funkcji, które będzie bardzo przydatne. 159 00:11:35,110 --> 00:11:37,570 >> Wszystkie te funkcje są realizowane dla Ciebie. 160 00:11:37,570 --> 00:11:41,870 Nie trzeba się specjalnie realizacji któregokolwiek z tych siebie, 161 00:11:41,870 --> 00:11:43,140 ale oni będą bardzo przydatne. 162 00:11:43,140 --> 00:11:49,450 Mamy przepraszać, który jak już wcześniej powiedziałem, zasadniczo będzie wydrukować komunikat o błędzie 163 00:11:49,450 --> 00:11:52,920 dla Ciebie na konkretnej stronie - apology.php. 164 00:11:52,920 --> 00:11:59,890 Następnie mamy wysypisko, więc jeśli wystarczy zadzwonić zrzutu, a następnie przekazać w zmiennej, 165 00:11:59,890 --> 00:12:04,930 następnie zaprowadzi Cię do strony, która wyświetli tej zmiennej dla Ciebie. 166 00:12:04,930 --> 00:12:09,950 Następnie mamy wylogowania, który w zasadzie kończy pewną sesję użytkownika. 167 00:12:09,950 --> 00:12:12,240 Lookup będzie przydatna. 168 00:12:12,240 --> 00:12:15,870 Ponieważ mamy do czynienia z cytatów i zapasów, będziemy w stanie - 169 00:12:15,870 --> 00:12:17,650 i to jest w zasadzie w czasie rzeczywistym. 170 00:12:17,650 --> 00:12:21,380 Musimy wiedzieć, co te wartości akcji są, 171 00:12:21,380 --> 00:12:28,210 mamy więc funkcja wyszukiwania, która zajmuje się dokumentacją Yahoo zapasów. 172 00:12:28,210 --> 00:12:37,700 Gdy spojrzeć pewien symbol ręki, powróci do was giełdowy 173 00:12:37,700 --> 00:12:41,480 jak również nazwy i bieżącą ceną tego stada. 174 00:12:41,480 --> 00:12:44,330 To jest funkcja wyszukiwania. 175 00:12:44,330 --> 00:12:48,350 >> To mamy do czynienia z MySQL, 176 00:12:48,350 --> 00:12:53,970 więc mamy zamiar być chcąc wykonać pewne zapytania na naszej bazie danych SQL. 177 00:12:53,970 --> 00:12:58,890 Mamy zapytanie do czynienia - do rodzaju streszczenie niektóre z tym obecnie. 178 00:12:58,890 --> 00:13:03,200 Zamierzamy być przechodzącą w cały ciąg naszego zapytania SQL - 179 00:13:03,200 --> 00:13:05,360 i wszystkie zmienne, które go w nim - 180 00:13:05,360 --> 00:13:09,480 i co to robi, to faktycznie wykonuje to za nas. 181 00:13:09,480 --> 00:13:15,070 Zamiast pisać to wszystko z każdej chwili, którą chcesz zapytać - 182 00:13:15,070 --> 00:13:21,740 uzyskując wszystkie wyniki z tego zapytania - 183 00:13:21,740 --> 00:13:24,740 to możesz po prostu zadzwonić do zapytania funkcję i będzie to powrót do Ciebie - 184 00:13:24,740 --> 00:13:28,750 w zależności od tego, co używasz w zapytaniu - 185 00:13:28,750 --> 00:13:33,000 Prawdopodobnie rząd wszystkich wyników, które pasują do zapytania lub podobne. 186 00:13:33,000 --> 00:13:34,690 Więcej o tym później jednak. 187 00:13:34,690 --> 00:13:41,200 >> Wreszcie mamy przekierowanie, które, jak sama nazwa wskazuje, przekierowuje do innej strony. 188 00:13:41,200 --> 00:13:46,280 A potem mamy render, który zamierzamy być wywołanie kilka razy. 189 00:13:46,280 --> 00:13:51,010 Kiedy jesteś w kontrolerze, zadzwoń do renderowania strony szablonu 190 00:13:51,010 --> 00:13:55,390 a następnie przekazać w wartości, że szablon będzie zajmować. 191 00:13:55,390 --> 00:13:59,540 Wartości te są prawdopodobnie będzie mieć do czynienia z typem produkcji, który chcesz 192 00:13:59,540 --> 00:14:01,050 być wyświetlane na stronie szablonu. 193 00:14:01,050 --> 00:14:09,370 Okay. Są to funkcje, a tam jest dużo więcej do tego kodu dystrybucyjnego. 194 00:14:09,370 --> 00:14:12,930 Zachęcam was, aby przejść przez to i zbadać go samodzielnie. 195 00:14:12,930 --> 00:14:17,050 Również specyfikacja prawdopodobnie Cię przez niektórych innych elementów kodu dystrybucyjnego. 196 00:14:17,050 --> 00:14:27,360 Oto podsumowanie funkcji znalezionych w functions.php. 197 00:14:27,360 --> 00:14:31,710 >> Okay. Pierwszym zadaniem jest, aby użytkownicy mogli zarejestrować się na stronie internetowej. 198 00:14:31,710 --> 00:14:34,860 Teraz, nie ma formularza logowania na stronie internetowej, 199 00:14:34,860 --> 00:14:40,080 i to są w kilku użytkowników z hasłami. 200 00:14:40,080 --> 00:14:42,130 Możesz używać tych nazw użytkownika i zaloguj się, 201 00:14:42,130 --> 00:14:45,140 ale chcesz, aby umożliwić ludziom dokonywania własnych nazw użytkowników 202 00:14:45,140 --> 00:14:47,390 i dodaj się na stronie internetowej. 203 00:14:47,390 --> 00:14:53,070 Układ do rejestracji jest bardzo podobny do formularza logowania, 204 00:14:53,070 --> 00:14:56,340 z wyjątkiem nazwy użytkownika nie jest wcześniejsza, 205 00:14:56,340 --> 00:14:59,430 i użytkownik musi również dostarczyć nowe hasło, 206 00:14:59,430 --> 00:15:02,440 i zazwyczaj mamy potwierdzenie hasła. 207 00:15:02,440 --> 00:15:06,580 Gdy użytkownik wprowadzi wszystkie z tych informacji, 208 00:15:06,580 --> 00:15:10,620 chcemy, aby dodać je do naszej bazy danych użytkowników. 209 00:15:10,620 --> 00:15:12,970 Będziemy mieć bazy danych - bazy danych SQL - 210 00:15:12,970 --> 00:15:14,470 że będziemy odwoływać. 211 00:15:14,470 --> 00:15:18,140 W tej bazie będziemy mieć tabelę z wszystkich użytkowników 212 00:15:18,140 --> 00:15:23,850 zawierający jego nazwę, swoje hasło, a także ile pieniędzy mają. 213 00:15:23,850 --> 00:15:28,480 >> W rejestrze, chcemy umożliwić im takie informacje. 214 00:15:28,480 --> 00:15:29,740 Chcemy wyświetlić tego formularza. 215 00:15:29,740 --> 00:15:32,210 Chcemy się upewnić, że ich hasła - 216 00:15:32,210 --> 00:15:37,490 że wszedł w jednego, a potem również, że hasła pasujące po wprowadzeniu go dwukrotnie. 217 00:15:37,490 --> 00:15:42,240 Po tym wszystkim, że jest wykonywana - przy założeniu, że te błędy są sprawdzone - 218 00:15:42,240 --> 00:15:45,120 następnie chcemy dodać tych użytkowników do naszej bazy danych. 219 00:15:45,120 --> 00:15:49,630 Wreszcie, po zarejestrowaniu, to dość wygodne, jeśli nie musisz zalogować się ponownie 220 00:15:49,630 --> 00:15:51,000 po zarejestrowaniu, 221 00:15:51,000 --> 00:15:54,000 więc mamy zamiar zarejestrować je na stronie internetowej, jeśli już zarejestrowany pomyślnie. 222 00:15:54,000 --> 00:16:00,360 >> Pierwszym zadaniem jest, aby wyświetlić formularz, a jest to rzeczywiście będzie - 223 00:16:00,360 --> 00:16:04,920 cały ten proces rejestracji zostanie dość ściśle wzorowany po zalogowaniu 224 00:16:04,920 --> 00:16:10,510 chyba zamiast login.php możesz mieć register.php. 225 00:16:10,510 --> 00:16:14,300 Zamiast login_form.php--co jest szablon - 226 00:16:14,300 --> 00:16:16,030 musisz zarejestrować formularz. 227 00:16:16,030 --> 00:16:19,680 Będziemy chcieli, aby dodać jeszcze jedno pole - pole Potwierdzenie hasła - 228 00:16:19,680 --> 00:16:23,450 zamiast tylko jednej nazwy użytkownika i jednego hasła. 229 00:16:23,450 --> 00:16:28,120 Dalej, chcemy sprawdzić, czy hasła pasują lub są puste. 230 00:16:28,120 --> 00:16:38,560 Mamy kontroler - register.php--który zamierza zająć się robi te kontrole. 231 00:16:38,560 --> 00:16:41,690 Po wysłaniu formularza metodą post, 232 00:16:41,690 --> 00:16:47,050 to wszystko z tych zmiennych zawarte są w tablicy POST. 233 00:16:47,050 --> 00:16:52,280 Chcesz, aby upewnić się, że wartość array post na hasło indeksu 234 00:16:52,280 --> 00:16:58,080 dopasowuje element potwierdzający. 235 00:16:58,080 --> 00:16:59,410 Chcesz się upewnić, że nie są puste, 236 00:16:59,410 --> 00:17:01,650 i chcesz się upewnić, że są one takie same. 237 00:17:01,650 --> 00:17:05,960 >> Jeden wygodny rzeczą PHP jest to, że nie trzeba używać znaków porównać anymore. 238 00:17:05,960 --> 00:17:08,410 Możemy użyć równa-operatora równości 239 00:17:08,410 --> 00:17:11,470  aby sprawdzić, czy ciągi są sobie równe. 240 00:17:11,470 --> 00:17:14,960 Obsługi błędów, będziesz chciał przeprosić. 241 00:17:14,960 --> 00:17:17,150 Przepraszać, wystarczy wywołać funkcję 242 00:17:17,150 --> 00:17:21,910  a następnie określić rodzaj wiadomości, które chcesz wyjście. 243 00:17:21,910 --> 00:17:24,630 Następnie chcesz dodać użytkownika do bazy danych. 244 00:17:24,630 --> 00:17:30,880 Do tej pory wszystko robiliśmy to tylko transakcje lokalnie z wynikami formularza. 245 00:17:30,880 --> 00:17:33,940 Teraz naprawdę chcemy, aby dodać je do naszej bazy danych. 246 00:17:33,940 --> 00:17:38,890 W tym celu, najpierw chcę się upewnić, że nazwa nie jest pusta. 247 00:17:38,890 --> 00:17:44,550 Zrozum, że na stronie internetowej, że nie można mieć wielu użytkowników z tej samej nazwy użytkownika, 248 00:17:44,550 --> 00:17:50,010 więc będziemy chcieli, aby upewnić się, że po włożeniu coś do bazy danych - 249 00:17:50,010 --> 00:17:56,650 wstawić nowego użytkownika - to nie dostaniesz kolizji pomiędzy nazwą użytkownika wcześniej 250 00:17:56,650 --> 00:17:59,150 i nazwa użytkownika, który użytkownik próbuje przedstawić. 251 00:17:59,150 --> 00:18:02,250 W tym celu, po wykonaniu kwerendy - 252 00:18:02,250 --> 00:18:08,760 wstawienie jakiegoś użytkownika z ich hasło i początkowej ilości gotówki - 253 00:18:08,760 --> 00:18:15,140 raz zadzwonić, że zapytanie, wtedy mySQL rzeczywiście zwróci false jeśli nie. 254 00:18:15,140 --> 00:18:21,050 >> Struktura użytkowników jest taka, że ​​użytkownika jest unikalną wartością, 255 00:18:21,050 --> 00:18:22,540 więc nie może mieć więcej niż jeden. 256 00:18:22,540 --> 00:18:30,080 Podczas próby i wstawić nowy wiersz z nazwą użytkownika, które już istnieje, 257 00:18:30,080 --> 00:18:34,470 że zamierza powrócić false - jak Boolean wartość false. 258 00:18:34,470 --> 00:18:45,320 Tricky rzeczą jest to, że będziemy chcieli sprawdzić, czy wynik jest wynikiem zapytania. 259 00:18:45,320 --> 00:18:52,320 Jeśli się nie uda, to będziemy chcieli, aby sprawdzić z triple-równa operatora. 260 00:18:52,320 --> 00:18:55,420 To się naprawdę dzieje, aby sprawdzić, czy nie jest porażką, czy nie, 261 00:18:55,420 --> 00:19:02,760 mając na uwadze, tylko prosty równa-taniej, to byłoby prawdziwe, jeśli wiersz był pusty. 262 00:19:02,760 --> 00:19:06,000 Wynikiem awarii, jeśli nie jest zderzenie nazw użytkowników 263 00:19:06,000 --> 00:19:10,350 jest rzeczywista wartość false. 264 00:19:10,350 --> 00:19:15,230 >> Oto jak można wstawić do bazy danych. 265 00:19:15,230 --> 00:19:19,220 Oto zapytanie, które będziemy uruchamiać wyłącznie w języku SQL. 266 00:19:19,220 --> 00:19:25,750 Jedną rzeczą jest to, że rzeczywiście można przejść do witryny internetowej, który zarządza bazy danych SQL 267 00:19:25,750 --> 00:19:31,070 i bawić się tam, wprowadzając ręcznie albo wartości lub wiersze. 268 00:19:31,070 --> 00:19:34,540 Będzie wysyłać co SQL wyjście. 269 00:19:34,540 --> 00:19:38,870 Można także uruchamiać polecenia SQL w Twojej bazie danych 270 00:19:38,870 --> 00:19:42,200  a następnie sprawdzić, co składnia może być, 271 00:19:42,200 --> 00:19:46,790 a następnie przetłumaczyć na zapytania funkcji, które mamy w Pset 7, 272 00:19:46,790 --> 00:19:51,120 który będzie bardzo podobny do zapytań, które rzeczywiście działają. 273 00:19:51,120 --> 00:19:54,570 >> Jeśli chciałem wstawić nowy wiersz do mojej tabeli użytkowników, 274 00:19:54,570 --> 00:20:01,240 następnie chciałbym określić wkładkę do użytkowników, którym jest nazwa mojego stolika. 275 00:20:01,240 --> 00:20:06,870 Następnie chciałbym określić nazwy kolumn. 276 00:20:06,870 --> 00:20:13,230 Następnie chciałbym dostarczenia wartości wraz z moim hasłem. 277 00:20:13,230 --> 00:20:17,080 Hasła w naszej tabeli użytkowników nie są przechowywane tylko jako ciąg. 278 00:20:17,080 --> 00:20:19,440 Są one przechowywane w zaszyfrowanej wersji 279 00:20:19,440 --> 00:20:24,560 więc będziemy chcieli, aby uruchomić funkcję krypty na rzeczywistej hasło 280 00:20:24,560 --> 00:20:29,680 i to daje właściwy rodzaj pamięci dla tablicy użytkowników. 281 00:20:29,680 --> 00:20:34,960 Bieganie to będzie wstawić nowy wiersz do tabeli users. 282 00:20:34,960 --> 00:20:39,020 >> Aby poradzić sobie z kwerendy funkcji 283 00:20:39,020 --> 00:20:43,100 przed w C użyliśmy znaku procentu jako symbol zastępczy. 284 00:20:43,100 --> 00:20:47,670 Podobnie samo pojęcie zastępczego odnosi się tutaj. 285 00:20:47,670 --> 00:20:50,720 Z kwerendy, można określić całe zapytanie, 286 00:20:50,720 --> 00:20:55,510 z wyjątkiem, gdy ma się do czynienia ze zmiennymi jako wkład do zapytania, 287 00:20:55,510 --> 00:21:00,490 wówczas zamiast faktycznie umieszczenie ich w środku - jak wtedy, gdy mieliśmy printf w C. 288 00:21:00,490 --> 00:21:03,740 Chcemy umieścić napis i wtedy zastępczy tam, a następnie po każdym 289 00:21:03,740 --> 00:21:06,990 przecinek, określić, które zmienne mieliśmy. 290 00:21:06,990 --> 00:21:14,480 Tutaj mamy zamiar użyć znaku ze znakiem zapytania w naszym zastępczym 291 00:21:14,480 --> 00:21:21,670 a następnie przejść w każdej zmiennej, odpowiednio, w celu, dla zastępczych - 292 00:21:21,670 --> 00:21:24,420 gdzie te zmienne powinny iść. 293 00:21:24,420 --> 00:21:29,470 Więc tutaj, pierwszy znak zapytania będzie zastąpiony przez rzeczywistą nazwę użytkownika 294 00:21:29,470 --> 00:21:33,610 potem drugi znak zapytania przez hasło. 295 00:21:33,610 --> 00:21:37,000 >> Wreszcie, po zarejestrowaniu ich i dodaje je do bazy danych, 296 00:21:37,000 --> 00:21:40,510 następnie chcesz zarejestrować je na stronie internetowej. 297 00:21:40,510 --> 00:21:45,320 Mamy coś w rodzaju super-zmiennej globalnej sesji nazywa. 298 00:21:45,320 --> 00:21:48,160 Sesja trwa pewien identyfikator, 299 00:21:48,160 --> 00:21:51,750 i że id odpowiada użytkownik, który jest aktualnie zalogowany 300 00:21:51,750 --> 00:21:56,380 Co będziemy chcieli zrobić, to znaleźć co ich id użytkownika jest 301 00:21:56,380 --> 00:22:03,710 a następnie ustawić ten identyfikator sesji jako tego konkretnego użytkownika id. 302 00:22:03,710 --> 00:22:07,560 Funkcja, która będziemy chcieli używać jest polecenia SQL 303 00:22:07,560 --> 00:22:15,150 że będzie odzyskać ostatnio wstawiony numer id z tabeli. 304 00:22:15,150 --> 00:22:24,560 Następnie wiersze będą dzwonić - it'll wywołać id - it'll przypisać nazwę do numeru, który wraca. 305 00:22:24,560 --> 00:22:27,900 To będzie wywoływać ten identyfikator. 306 00:22:27,900 --> 00:22:33,370 Teraz skończyliśmy rejestracji i możemy przejść do zacytowania. 307 00:22:33,370 --> 00:22:36,610 >> Cytat pozwala użytkownikowi na wejście nazwę pewnej ręki, 308 00:22:36,610 --> 00:22:41,940 i wtedy zwróci cechy tego stada. 309 00:22:41,940 --> 00:22:48,410 Co będziesz chciał zrobić o to masz kontroler i kilka szablonów. 310 00:22:48,410 --> 00:22:53,380 W tym przypadku będziemy mieć kontroler, który ma zamiar zrobić wszystko, z myślenia za nas. 311 00:22:53,380 --> 00:23:01,210 To będzie patrzeć na symbol, a następnie przekazać w wartości do szablonów, które zostaną wydrukowane. 312 00:23:01,210 --> 00:23:03,060 Będziemy mieć 2 szablony tutaj. 313 00:23:03,060 --> 00:23:07,260 Będziemy mieć 1 szablon udostępnia formularz, w którym użytkownicy mają zamiar 314 00:23:07,260 --> 00:23:09,920 Wejście nazwa magazynie - nazwa akcji. 315 00:23:09,920 --> 00:23:16,030 Wtedy jesteśmy również będzie chciał kolejny szablon, który wyświetla te wartości. 316 00:23:16,030 --> 00:23:27,450 Możesz zajrzeć do logowania na przykład, jak można mieć formę, która akceptuje dane wejściowe, 317 00:23:27,450 --> 00:23:30,060 wyjątkiem tutaj, chcemy tylko 1 pole. 318 00:23:30,060 --> 00:23:31,630 Nie chcemy, nazwę użytkownika i pole hasła. 319 00:23:31,630 --> 00:23:37,110 Chcemy tylko 1 tekst pole, które pozwala użytkownikowi na wejście nazwę pewnej ręki. 320 00:23:37,110 --> 00:23:40,110 Potem chcesz wysłać te dane - gdy tylko spojrzał to stado - 321 00:23:40,110 --> 00:23:45,550 do quote_form.php. 322 00:23:45,550 --> 00:23:50,780 Lookup powróci symbol zapasów, nazwę i cenę. 323 00:23:50,780 --> 00:23:53,910 Te, które są zawarte w tablicy asocjacyjnej. 324 00:23:53,910 --> 00:24:01,390 Spójrz w górę funkcję odnośnika wewnątrz functions.php więcej informacji 325 00:24:01,390 --> 00:24:04,010 w sprawie rodzajów powrotów tych. 326 00:24:04,010 --> 00:24:08,520 >> Great! Więc w końcu, będziemy chcieli, aby wyświetlić informacje o akcji. 327 00:24:08,520 --> 00:24:14,110 Będziemy chcieli, aby wyświetlić prawdopodobnie - you'll chcesz uzyskać dostęp do tych zmiennych. 328 00:24:14,110 --> 00:24:17,610 Gdy już masz cenę w zmiennej - 329 00:24:17,610 --> 00:24:20,860 jak również nazwy i symbol - 330 00:24:20,860 --> 00:24:25,550 Następnie będziemy chcieli, aby wyświetlić te na swojej stronie szablonu. 331 00:24:25,550 --> 00:24:31,540 Że szablon strony można nazwać show_quote.php czy coś. 332 00:24:31,540 --> 00:24:39,660 Twoja strona quote.php czyniłoby cytat pokazu, a następnie przekazać do wszystkich tych wartości. 333 00:24:39,660 --> 00:24:47,170 Następnie w stronę PHP, to faktycznie można wydrukować te wartości do HTML aspekcie stronie. 334 00:24:47,170 --> 00:24:53,800 Wystarczy skorzystać z funkcji drukowania i przekazać w cenie. 335 00:24:53,800 --> 00:24:57,990 Istnieją 2 sposoby - możesz łączyć ją z operatorem punktową, 336 00:24:57,990 --> 00:25:02,230 lub użyć zastępczy. 337 00:25:07,580 --> 00:25:12,750 >> Użytkownikom ostatecznie będą kupna i sprzedaży akcji. 338 00:25:12,750 --> 00:25:18,450 Chcemy umożliwić im trochę sposób patrzenia na wszystkich zasobów, które obecnie mają. 339 00:25:18,450 --> 00:25:21,350 Będziemy dzwonić że ich portfolio. 340 00:25:21,350 --> 00:25:26,180 Portfolio będzie, prawdopodobnie dla każdego użytkownika, zawiera kilka rzędów 341 00:25:26,180 --> 00:25:31,760 wymieniając rodzaj akcji, że mają i to jak wielu z tych, co mają. 342 00:25:31,760 --> 00:25:36,500 Nasza istniejąca tabela - teraz mamy tabeli użytkowników w bazie danych. 343 00:25:36,500 --> 00:25:41,780 , Który zawiera nazwy użytkownika, jak również ich hasło i ile pieniędzy mają. 344 00:25:41,780 --> 00:25:50,390 Nie ma prawdziwego sposób przechowywania wszystkich swoich zasobów w ramach tego. 345 00:25:50,390 --> 00:25:58,010 To nie tak, możemy wstawić nowe kolumny dla każdego magazynu. 346 00:25:58,010 --> 00:26:03,650 To byłoby bardzo, bardzo długi wiersz, ponieważ mamy nieskończoną ilość 347 00:26:03,650 --> 00:26:06,200 rodzajów zapasów, które mogą mieć. 348 00:26:06,200 --> 00:26:09,150 Tak więc, zamiast tego, co będziemy robić to w tej samej bazie danych, 349 00:26:09,150 --> 00:26:15,000 będziemy mieć tabeli użytkowników, ale będziemy również mieć tabeli portfelem. 350 00:26:15,000 --> 00:26:18,430 Stół portfolio będzie zdecydowanie związana z tabeli użytkowników, 351 00:26:18,430 --> 00:26:24,600 lecz struktura tabeli portfolio będą mieć informacje o akcjach, 352 00:26:24,600 --> 00:26:27,780 ile akcji z tego zasobu, użytkownik ma 353 00:26:27,780 --> 00:26:31,620 jak również użytkownika szczególności numer id. 354 00:26:31,620 --> 00:26:34,620 Masz tabeli użytkowników, który ma identyfikator, a także nazwę użytkownika, Hash - 355 00:26:34,620 --> 00:26:40,130 co jest hasło zaszyfrowane hasło - 356 00:26:40,130 --> 00:26:42,130 i ilość środków pieniężnych mają. 357 00:26:42,130 --> 00:26:47,900 Numer id byłby połączony z numerem id z portfela. 358 00:26:47,900 --> 00:26:52,490 Portfolio po prostu mają symbol ręki, jak również akcji - 359 00:26:52,490 --> 00:26:55,410 liczba akcji tego stada, które użytkownik posiada. 360 00:26:55,410 --> 00:26:58,520 W tej tabeli portfela trzeba będzie zasadniczo 361 00:26:58,520 --> 00:27:03,760 wszystkich akcji posiadanych przez wszystkich użytkowników w Twojej witrynie. 362 00:27:03,760 --> 00:27:10,550 Później, do określenia tylko niektórych użytkowników w akcji - tylko ich portfolio - 363 00:27:10,550 --> 00:27:15,360 chcesz pobrać wartości z Twojego portfela tabeli takie, że 364 00:27:15,360 --> 00:27:19,930 numer id jest specyficzne dla danego użytkownika. 365 00:27:26,520 --> 00:27:34,890 >> Podczas wyświetlania portfela, warto zgłosić każdy z zasobów w portfelu użytkownika. 366 00:27:34,890 --> 00:27:41,670 Będziemy chcieli, aby o liczbie akcji i bieżącej wartości tych akcji. 367 00:27:41,670 --> 00:27:45,950 Że obecna wartość tych akcji nie jest przechowywany w tabeli portfelem 368 00:27:45,950 --> 00:27:51,640 bo to będzie aktualizacji - co najmniej - codziennie przez Yahoo. 369 00:27:51,640 --> 00:27:58,550 Aby uzyskać te informacje, nie można odwołać, że z zapytania SQL. 370 00:27:58,550 --> 00:28:02,400 Jaką funkcję udostępnia nam do tego? Jaką funkcję będzie uzyskać cenę? 371 00:28:02,400 --> 00:28:09,110 To wyszukiwanie, więc korzystanie z odnośnika na konkretnym symbolu da ci wiele informacji. 372 00:28:09,110 --> 00:28:13,710 To da ci 3 części informacji - nazwę, symbol, a także cena. 373 00:28:13,710 --> 00:28:17,490 Po lookup pewien symbol, a następnie można uzyskać cenę, 374 00:28:17,490 --> 00:28:20,460 a następnie można wykorzystywać ceny mają być wyświetlane w Twoim portfelu. 375 00:28:20,460 --> 00:28:26,190 >> Portfolio należy również wyświetlić użytkownikowi bieżące saldo gotówki. 376 00:28:26,190 --> 00:28:30,310 To pole jest przechowywany w tabeli users. 377 00:28:30,310 --> 00:28:33,400 Więc pamiętając jak jesteśmy w zasadzie konieczności - 378 00:28:33,400 --> 00:28:36,850 jemy różne rodzaje plików PHP. 379 00:28:36,850 --> 00:28:40,160 Będziemy mieć kontrolera, które w zasadzie nie wszystkie myślenie dla ciebie. 380 00:28:40,160 --> 00:28:45,940 A potem mamy szablon, w którym zajmuje się szablon danych transmitują. 381 00:28:45,940 --> 00:28:50,790 Musisz myśleć o tym, co zmienne, kontroler będzie musiał wziąć w. 382 00:28:50,790 --> 00:29:01,630 Jeśli mamy do czynienia z portfela, które wyprowadza każdą nazwę, symbol i numer akcji, 383 00:29:01,630 --> 00:29:03,730 jak również aktualna cena akcji, 384 00:29:03,730 --> 00:29:06,950 Następnie będziemy chcieli, aby znaleźć sposób na zasadzie przekazując - 385 00:29:06,950 --> 00:29:12,070 można przekazać w postaci tablicy wartości, które odpowiadają tym. 386 00:29:15,250 --> 00:29:24,360 >> Chodźmy do przykładu jak można pobrać wszystkie akcje 387 00:29:24,360 --> 00:29:26,210 własnością określonego użytkownika. 388 00:29:26,210 --> 00:29:31,400 To nie ma do czynienia - jeszcze - z ceną akcji. 389 00:29:31,400 --> 00:29:33,520 Co by to zrobić, to uruchomić kwerendę. 390 00:29:33,520 --> 00:29:37,070 Byłoby uzyskać symbol, jak również akcje od - 391 00:29:37,070 --> 00:29:42,770 Dzwonię z tej tabeli, ale w tym przypadku to, co by to było? 392 00:29:42,770 --> 00:29:49,400 Co znajduje się nazwa tabeli, że mamy do czynienia z, który ma symbol i akcji 393 00:29:49,400 --> 00:29:52,280 dla konkretnego użytkownika? 394 00:29:52,280 --> 00:29:56,410 To użytkownicy lub portfolio. 395 00:29:56,410 --> 00:29:57,820 Portfolio. 396 00:29:57,820 --> 00:30:03,220 Co by to zrobić, jest zapytanie portfolio dla symboli i akcji 397 00:30:03,220 --> 00:30:04,920 dla konkretnego użytkownika. 398 00:30:04,920 --> 00:30:09,260 Tutaj, mówię, (symbol SELECT, akcje ZE TBL - 399 00:30:09,260 --> 00:30:12,280 ale zamiast z tabeli, masz zamiar wymienić, że w portfelu. 400 00:30:12,280 --> 00:30:15,220 "Gdzie jest w zasadzie mój stan. 401 00:30:15,220 --> 00:30:21,050 Mówię, tylko chcę, aby te tablice asocjacyjne, które odpowiadają 402 00:30:21,050 --> 00:30:23,850  do tego następujący warunek - id równa. 403 00:30:23,850 --> 00:30:27,600  Następnie Kładę zastępczy tam i id sesji. 404 00:30:27,600 --> 00:30:36,720 Co by to zrobić, to znaczy dla każdego wiersza w rzędach. 405 00:30:36,720 --> 00:30:40,940 Jest to świetny sposób, zamiast faktycznie konieczności ustanawiania dla pętli 406 00:30:40,940 --> 00:30:47,450 że iteruje wszystkie indeksy, a następnie w PHP można mieć for-each pętli. 407 00:30:47,450 --> 00:30:53,520 >> Jeśli masz danej tablicy, wówczas można powiedzieć, mam zamiar zadzwonić każdy kolejny element - 408 00:30:53,520 --> 00:30:57,930 Mam zamiar zadzwonić każdy element to nazwa. 409 00:30:57,930 --> 00:31:02,780 Tak więc, dla każdego z tych elementów, będę ich nazywać tym, 410 00:31:02,780 --> 00:31:04,500 to mogę to zrobić. 411 00:31:04,500 --> 00:31:10,370 W tym dla siebie, masz wiersze jak aktualnej tablicy, a każdy wiersz, który zamierzasz wywołać wiersz. 412 00:31:10,370 --> 00:31:12,420 Za każdym razem wykonuje ciało, 413 00:31:12,420 --> 00:31:16,960 to pójdzie w górę i będzie aktualizować wiersza do następnego elementu w rzędach. 414 00:31:18,900 --> 00:31:25,260 >> Teraz, jeśli chodzi o kupowanie akcji, 415 00:31:25,260 --> 00:31:29,500 co chcemy zrobić, to stada, które użytkownik chce kupić 416 00:31:29,500 --> 00:31:35,300 i ilość akcji, które użytkownik chce kupić, a następnie - jeśli chcą - 417 00:31:35,300 --> 00:31:38,120 dodać, że czas do ich portfela. 418 00:31:38,120 --> 00:31:40,310 Oczywiście, jeśli kupujesz coś, to się dzieje, aby zmniejszyć 419 00:31:40,310 --> 00:31:43,520 ilość pieniędzy, że mają tak, że zamierza zmniejszyć ich gotówki. 420 00:31:43,520 --> 00:31:48,380 Będziemy mieć do czynienia z aktualizacji portfela, jak również tabeli użytkowników, 421 00:31:48,380 --> 00:31:50,300 który zawiera gotówkę. 422 00:31:50,300 --> 00:31:54,920 Ale najpierw trzeba uzyskać rzeczywisty czas i ilość akcji, które użytkownik chce. 423 00:31:54,920 --> 00:32:00,010 Do tego, trzeba formularz HTML, który poprosi o symbolu ręki 424 00:32:00,010 --> 00:32:03,360 które chcesz kupić, a także liczbę akcji. 425 00:32:03,360 --> 00:32:08,300 Następnie będziemy chcieli dodać. 426 00:32:08,300 --> 00:32:13,750 Będziemy chcieli, aby wybrać określone wartości. 427 00:32:13,750 --> 00:32:19,670 Przeszliśmy przez to nieco mało już, ale gdy próbujesz uzyskać niektóre wiersze - 428 00:32:19,670 --> 00:32:22,020 odzyskać niektóre wiersze z tabeli SQL, 429 00:32:22,020 --> 00:32:24,290 jest następująca składnia. 430 00:32:24,290 --> 00:32:28,400 Masz wybrać, a następnie, jeśli określisz gwiazdę, 431 00:32:28,400 --> 00:32:31,830 że będzie w zasadzie zwrotu całości, cały wiersz dla Ciebie. 432 00:32:31,830 --> 00:32:36,890 Potem znowu, masz stan, w którym, a następnie określenia - 433 00:32:36,890 --> 00:32:39,990 Chcę tylko nazwa użytkownika równa mail-in, 434 00:32:39,990 --> 00:32:46,660 więc będzie pobierać tylko wiersz w użytkownikach odpowiadający mail-in. 435 00:32:46,660 --> 00:32:52,860 >> Gdy użytkownik chce dodać akcje do portfela, 436 00:32:52,860 --> 00:32:54,400 trzeba sprawdzić na kilka błędów. 437 00:32:54,400 --> 00:32:57,680 Chcesz się upewnić, że użytkownik może sobie pozwolić na akcje, 438 00:32:57,680 --> 00:33:00,810 więc będziemy chcieli, aby sprawdzić ich gotówki. 439 00:33:00,810 --> 00:33:05,810 Przed użyliśmy gwiazdę odzyskać cały wiersz z tabeli SQL. 440 00:33:05,810 --> 00:33:08,930 Ale tutaj rzeczywiście możemy tylko określić, że chcę tylko 1 wartość - 441 00:33:08,930 --> 00:33:10,080 Chcę tylko gotówkę. 442 00:33:10,080 --> 00:33:17,970 Więc, to zwróci pieniądze dla użytkownika o numerze ID 1. 443 00:33:17,970 --> 00:33:25,940 Jeśli użytkownik już kupił jakiegoś czas, ale potem kupuje więcej z tego stada, 444 00:33:25,940 --> 00:33:30,440 Następnie w swoim portfolio - nie chcesz osobnej linii, 445 00:33:30,440 --> 00:33:34,770 inny wiersz, który zawiera tę nową transakcję. 446 00:33:34,770 --> 00:33:37,950 Rzeczywiście chcesz zaktualizować kwoty. 447 00:33:37,950 --> 00:33:42,530 Wszystko to się zmienia naprawdę to ilość akcji, że użytkownik jest właścicielem. 448 00:33:42,530 --> 00:33:47,730 Jeśli używasz wkładki do zapytania - tak to po prostu wstawić do portfela wszystkich tych wartości - 449 00:33:47,730 --> 00:33:51,710 użytkownika numer id oraz symbol ręki, że kupujesz 450 00:33:51,710 --> 00:33:57,750 i akcji, to będziesz także chcesz określić, dobrze, jeśli napotkasz duplikatu klucza - 451 00:33:57,750 --> 00:34:00,750 w tym przypadku, duplikat klucz jest nie tylko identyfikator użytkownika, ale także symbol magazynie - 452 00:34:00,750 --> 00:34:08,340 bo można mieć tylko - nasze założenie jest, że można mieć tylko 1 wiersz 453 00:34:08,340 --> 00:34:10,699  1, który odpowiada określonej symbolem. 454 00:34:10,699 --> 00:34:13,659 Tak więc, na duplikacie klucza - jeśli napotkasz kolizji tam - 455 00:34:13,659 --> 00:34:18,520 jesteś po prostu zamiar zaktualizować akcji do nowej wartości. 456 00:34:18,520 --> 00:34:23,290 Udziałów wynosi co mieliśmy przed oraz liczby akcji, że użytkownik kupuje. 457 00:34:27,790 --> 00:34:31,090 >> Teraz, gdy już aktualizacja tabeli portfelem 458 00:34:31,090 --> 00:34:34,730 będziemy chcieli zaktualizować użytkownika gotówki. 459 00:34:34,730 --> 00:34:40,300 To jest w tabeli użytkowników, więc mamy zamiar być odjęcie pewnej kwoty od środków pieniężnych. 460 00:34:40,300 --> 00:34:46,270 Przypuszczalnie będzie pieniężne równa minus gotówka - a następnie pewna ilość. 461 00:34:46,270 --> 00:34:50,560 Aby zaktualizować gotówki, byś - 462 00:34:50,560 --> 00:34:55,699 gdybym chciał zabrać pieniądze z mail-in, to chciałbym uruchomić tę kwerendę - 463 00:34:55,699 --> 00:35:00,220 "Użytkownicy aktualizacja", a następnie ustawić kolumny gotówki do gotówki - 464 00:35:00,220 --> 00:35:07,300 >> Chciałbym usunąć 9.999 dolarów tylko wtedy, gdy nazwa użytkownika jest równa mail-in. 465 00:35:07,300 --> 00:35:12,020 Ale w tym przypadku, że nie chcemy, aby odjąć 9.999 specjalnie. 466 00:35:12,020 --> 00:35:17,610 Chcemy określić, cóż, chcemy odjąć bieżącą cenę akcji 467 00:35:17,610 --> 00:35:22,400 pomnożonej przez liczbę akcji, że kupujesz. 468 00:35:25,260 --> 00:35:29,910 >> Teraz mamy pozwolił im zobaczyć wszystkich zasobów, które mają, 469 00:35:29,910 --> 00:35:33,080 jak kupić więcej akcji. 470 00:35:33,080 --> 00:35:37,430 Mamy również wcześniej pozwolił im zajrzeć do bieżącej ceny w stadzie. 471 00:35:37,430 --> 00:35:40,030 Tutaj chcemy pozwolić im je sprzedać. 472 00:35:40,030 --> 00:35:42,160 Najpierw chcemy wyświetlić w zasadzie - 473 00:35:42,160 --> 00:35:45,270 chcemy pozwolić im zobaczyć wszystkie akcje, które mają, 474 00:35:45,270 --> 00:35:53,170 więc chcemy wyświetlić wszystkie wiersze z portfela. 475 00:35:53,170 --> 00:35:56,650 Jeśli zdecydują się sprzedać pewną akcje, 476 00:35:56,650 --> 00:35:59,140 wtedy będziemy zakładać, że chcą sprzedać wszystko. 477 00:35:59,140 --> 00:36:04,350 Nie są one po prostu się sprzedać 50% swoich akcji, że będziemy sprzedawać w 100% to. 478 00:36:04,350 --> 00:36:08,630 Możemy po prostu usunąć cały wiersz z portfela. 479 00:36:08,630 --> 00:36:17,520 Możemy usunąć dany użytkownik w akcji pewnego symbolu. 480 00:36:17,520 --> 00:36:21,410 Jest składnia do tego. 481 00:36:21,410 --> 00:36:22,710 >> Następnie chcemy zaktualizować gotówki. 482 00:36:22,710 --> 00:36:30,930 Mamy zamiar być dodanie w gotówce w wysokości równej liczbie akcji, które sprzedajesz 483 00:36:30,930 --> 00:36:34,640 pomnożona przez bieżącą cenę akcji - 484 00:36:34,640 --> 00:36:38,610 nie cena, za którą kupił ją, ale cena, po której są one - 485 00:36:38,610 --> 00:36:40,500 cena prądu, gdy są one sprzedaży. 486 00:36:40,500 --> 00:36:43,660 Aby odwołać się do bieżącej ceny w stadzie, 487 00:36:43,660 --> 00:36:49,120 można użyć odnośnika, który da Ci cena akcji 488 00:36:50,030 --> 00:36:52,650 w chwili obecnej. 489 00:36:52,650 --> 00:36:55,930 >> Teraz pozostaje nam z historii, 490 00:36:55,930 --> 00:37:00,170 które chcesz zezwolić użytkownikowi na śledzenie wszystkich swoich transakcji - 491 00:37:00,170 --> 00:37:03,040 chce zobaczyć, gdy sprzedali coś, gdy kupili akcje. 492 00:37:03,040 --> 00:37:08,870 Chcemy, aby określić czas, w którym to zrobili, jak również ile kupili 493 00:37:08,870 --> 00:37:11,650 i co stanie było. 494 00:37:11,650 --> 00:37:17,800 Czy mamy jakikolwiek prąd, istniejącą strukturę, która określa, że? 495 00:37:17,800 --> 00:37:25,230 Cóż, mamy portfel, który wyświetla zapasy numer, który użytkownik musi 496 00:37:25,230 --> 00:37:26,470 dla danej akcji. 497 00:37:26,470 --> 00:37:34,060 Ale jesteśmy struktury portfela w sposób, że powiadomienia, kiedy możemy kupić wiele, 498 00:37:34,060 --> 00:37:40,190 natomiast historia powinna - jeśli kupisz jabłko, 10 akcji, a następnie później sprzedania 5, 499 00:37:40,190 --> 00:37:44,040 następnie, co chcesz zobaczyć te oddzielnie jako odrębne działania, wiersze oddzielne. 500 00:37:44,040 --> 00:37:48,520 Mając na uwadze, że działania mające na celu uzmysłowić, że w naszej tabeli portfelem 501 00:37:48,520 --> 00:37:52,540 będzie tylko aktualizacja do danego rzędu 502 00:37:52,540 --> 00:37:55,740  więc pewnie będzie chciał innej tabeli. 503 00:37:55,740 --> 00:38:00,460 W naszej bazie danych mamy tabelę użytkowników, mamy tabelę portfelem 504 00:38:00,460 --> 00:38:04,090 i teraz będziemy prawdopodobnie ma tabeli historii. 505 00:38:04,090 --> 00:38:08,070 Tabela ta historia może śledzić bieżącej daty, 506 00:38:08,070 --> 00:38:12,800 jak również szczególny symbol obrazów, jak również ile akcji, 507 00:38:12,800 --> 00:38:15,410 a jakie działania jest - 508 00:38:15,410 --> 00:38:18,800 czy kupowały te akcje czy byłeś ich sprzedaży. 509 00:38:20,660 --> 00:38:25,720 >> Do czynienia z informacjami, istnieje kilka sposobów, że można to zrobić. 510 00:38:25,720 --> 00:38:28,820 PHP ma sposób na śledzenie daty, które można sprawdzić samodzielnie. 511 00:38:28,820 --> 00:38:33,990 W SQL można również korzystać teraz albo znacznik czasu. To zależy od Ciebie. 512 00:38:33,990 --> 00:38:40,720 Wystarczy upewnić się, że za każdym razem użytkownik kupuje lub sprzedaje, będziesz uaktualniania ich pieniądze 513 00:38:40,720 --> 00:38:46,750 w tabeli użytkowników, będziesz aktualizacji wierszy w tabeli, portfeli, 514 00:38:46,750 --> 00:38:50,900 będziesz również aktualizowanie historii, 515 00:38:50,900 --> 00:38:56,260 więc nie będą 3 oddzielne zapytania SQL, że będziesz nazywając tam. 516 00:38:58,640 --> 00:39:01,530 Mamy kilka funkcjonalności teraz. 517 00:39:01,530 --> 00:39:10,600 >> Wystarczy kilka przypomnień, że w pliku indeksu, będziesz chciał połączyć przynajmniej twoje - 518 00:39:10,600 --> 00:39:15,550 ale ty chcesz pozwolić użytkownikowi na link do buy.php stronie. 519 00:39:15,550 --> 00:39:23,560 To się dzieje, aby umożliwić użytkownikowi - buy.php jest kontroler, więc to będzie albo 520 00:39:23,560 --> 00:39:29,170 posyłam cię do - że zamierza wysłać do formularza, który pozwala spojrzeć rzeczy. 521 00:39:29,170 --> 00:39:34,420 Mamy historię. Mamy wylogowanie, coraz ofertę, a następnie sprzedaży. 522 00:39:34,420 --> 00:39:37,350 To są na minimum, co chcesz pokazać. 523 00:39:37,350 --> 00:39:43,640 W zakresie portfela, portfel jest rzeczywiście pokazany na stronie indeksu. 524 00:39:43,640 --> 00:39:52,050 Jeśli idziemy do indeksu, tutaj widzimy, że to czyni portfolio.php 525 00:39:52,050 --> 00:40:00,050 i przechodzi w tablicy asocjacyjnej - zasadniczo tytułem jest portfel. 526 00:40:00,050 --> 00:40:02,610 Tak więc, jest to sterownik. 527 00:40:02,610 --> 00:40:08,000 Jeśli idziemy do szablonu portfolio.php, 528 00:40:08,000 --> 00:40:18,060 to wszystko ma to - w zasadzie wyświetla obraz, który mówi, och, ta strona jest w budowie. 529 00:40:18,060 --> 00:40:23,810 Później, gdy przejdziesz się - you'll być przekazując informacje w zasadzie bardziej szczegółowym. 530 00:40:23,810 --> 00:40:27,400 A nie tylko tytuł, prawdopodobnie będziesz przekazując więcej rzeczy. 531 00:40:27,400 --> 00:40:32,010 Gdy już masz te wartości, a następnie portfolio.php może zajmować się tymi wartościami 532 00:40:32,010 --> 00:40:34,490 i drukowanie ich w jakiejkolwiek kolejności. 533 00:40:34,490 --> 00:40:41,660 >> Po realizacji wszystkich tych, trzeba także wdrożyć 1 więcej funkcji. 534 00:40:41,660 --> 00:40:44,890 Może to być albo umożliwiając użytkownikowi zmianę hasła, 535 00:40:44,890 --> 00:40:50,110 aby zresetować swoje hasło gdy go zapomnisz - tak do resetowania hasła, następnie 536 00:40:50,110 --> 00:40:54,560 prawdopodobnie będziesz także chcesz edytować rejestr tak, że pozwala im na określenie e-mail, 537 00:40:54,560 --> 00:40:57,910 więc jeśli zapomnisz swojego hasła, a następnie mogą odebrać. 538 00:40:57,910 --> 00:41:02,870 Mogą prawdopodobnie wejdzie w ich nazwy użytkownika, a następnie e-mail zostanie wysłane do nich 539 00:41:02,870 --> 00:41:06,180 z linkiem, aby móc zresetować swoje hasło. 540 00:41:06,180 --> 00:41:10,980 Możesz mieć coś, co pozwala użytkownikom na wpływy 541 00:41:10,980 --> 00:41:12,380 każdym razem, gdy coś kupić lub sprzedać, 542 00:41:12,380 --> 00:41:19,910 i wreszcie, pozwolić im dodawać środki na swoje stronie internetowej. 543 00:41:19,910 --> 00:41:24,970 Wystarczy wrócić do koncepcji kontrolerów i szablonów trochę. 544 00:41:24,970 --> 00:41:31,170 Będziesz miał coś takiego - więc masz kontroler tutaj. 545 00:41:31,170 --> 00:41:35,080 Właśnie teraz, szukamy w login.php przykład. 546 00:41:35,080 --> 00:41:38,220 Kiedy mamy kontroler, w zasadzie to zajmie 2 przypadki. 547 00:41:38,220 --> 00:41:42,090 Kiedy mamy kontrolerów, jesteśmy w tym kawałku, że jesteśmy również do czynienia z rodzajem 548 00:41:42,090 --> 00:41:43,880 kiedy mamy formy, jak również. 549 00:41:43,880 --> 00:41:47,500 Kontroler będzie w zasadzie mają oddzielne działania - 550 00:41:47,500 --> 00:41:53,880 jeden, jeśli formularz został już złożony, a następnie dwa, jeśli użytkownik zbliża się do tej strony 551 00:41:53,880 --> 00:41:56,870 po raz pierwszy, a nadal wymaga wejścia tej formie. 552 00:41:56,870 --> 00:42:02,820 >> Będę skakać do tej sprawy zanim będzie do pierwszego przypadku mającej postać w. 553 00:42:02,820 --> 00:42:12,640 Tutaj możemy powiedzieć, czy formularz został złożony z urzędu metody - 554 00:42:12,640 --> 00:42:13,580 Nie przejmuj się, że trochę. 555 00:42:13,580 --> 00:42:19,780 Nie przejmuj się, że za dużo, ale rozumiem, że w zasadzie ta funkcja dotyczy 556 00:42:19,780 --> 00:42:22,430 czy formularz został złożony, czy nie. 557 00:42:22,430 --> 00:42:25,640 Ten warunek jest spełniony, jeśli użytkownik złożył formularz. 558 00:42:25,640 --> 00:42:45,940 Jeśli nie, to będziemy chcieli zadzwonić login_form.php renderowania, a następnie przekazać w tytule. 559 00:42:45,940 --> 00:42:48,010 Ten tytuł jest po prostu w zasadzie będzie się pojawiać w nagłówku. 560 00:42:48,010 --> 00:42:54,990 Co to znaczy w zasadzie mówi, w porządku - dobrze, jeżeli użytkownik przejdzie do login.php 561 00:42:54,990 --> 00:43:00,310 i faktycznie nie zalogujesz, to chcę, aby wysłać je do strony, która ma tę formę 562 00:43:00,310 --> 00:43:03,160 co pozwala im, aby wprowadzić nazwę użytkownika i hasło. 563 00:43:03,160 --> 00:43:07,590 Potem idę do login_form, a następnie, że ma faktyczną formę. 564 00:43:07,590 --> 00:43:13,750 Następnie, gdy użytkownik twierdzi, że formularz, idą do przedstawienia go do login.php 565 00:43:13,750 --> 00:43:15,840 z metody POST. 566 00:43:15,840 --> 00:43:21,560 Wtedy jestem naprawdę zamiar wprowadzić tę część mojej pętli if-else. 567 00:43:21,560 --> 00:43:29,560 Wtedy to jest tutaj, że mamy do czynienia z wartości wprowadzonych w formularzu. 568 00:43:29,560 --> 00:43:32,800 To tutaj, że mamy do czynienia z tymi. 569 00:43:32,800 --> 00:43:40,860 >> Następnie raz masz do czynienia z tych wartości - jeżeli masz do czynienia z - 570 00:43:40,860 --> 00:43:46,640 powiedzieć, że mamy do czynienia ze stroną quote.php gdzie ktoś może wejść do akcji, które 571 00:43:46,640 --> 00:43:49,950 chcą patrzeć, a potem zobaczyć, że wyświetlacz - 572 00:43:49,950 --> 00:43:52,850 że trochę podobny tutaj. 573 00:43:52,850 --> 00:43:56,070 Tutaj mamy formularz logowania - you'd prawdopodobnie formę cytuję - 574 00:43:56,070 --> 00:44:00,290 , ale następnie, gdy użytkownik rzeczywistości złożony, że informacje, 575 00:44:00,290 --> 00:44:04,810 a następnie będziemy chcieli przekazać kontroler do innego szablonu 576 00:44:04,810 --> 00:44:07,430 który pokaże im, że aktualne informacje. 577 00:44:07,430 --> 00:44:11,250 Więc tuż tutaj, a następnie będziesz prawdopodobnie - 578 00:44:11,250 --> 00:44:18,830 wokół końca swojej choroby tu - jeśli metoda równa post - 579 00:44:18,830 --> 00:44:22,520 wtedy prawdopodobnie będziesz chciał uczynić kolejną stronę - cytuję show - 580 00:44:22,520 --> 00:44:28,040 która wysyła cię do tej strony - show_quote.php-- 581 00:44:28,040 --> 00:44:34,120 a następnie w tym pliku będzie odwoływać tych wartości. 582 00:44:34,120 --> 00:44:36,480 Czy to ma sens? 583 00:44:36,480 --> 00:44:40,390 >> Mamy kontroler, który w zasadzie zajmuje się 2 przypadkach - 584 00:44:40,390 --> 00:44:42,710 czy wpisałeś formularz w lub nie. 585 00:44:42,710 --> 00:44:43,950 Jeśli nie wprowadzono formularz, 586 00:44:43,950 --> 00:44:47,300 to będzie przekierowanie do tej postaci, które następnie można umieścić z powrotem do tej strony. 587 00:44:47,300 --> 00:44:54,020 Potem, gdy już informacje w sterowniku, że ciało będzie sobie z tym poradzić 588 00:44:54,020 --> 00:44:59,750 niezbędnych informacji - albo patrząc w górę wartości zapasów, 589 00:44:59,750 --> 00:45:04,150 , a następnie po jego wzrok tych wartości i ma je w tablicy ładnie sformatowany, 590 00:45:04,150 --> 00:45:08,180 następnie może przekazać tę tablicę do strony szablonu 591 00:45:08,180 --> 00:45:10,330  , która zajmuje się wyprowadzanie tę informację. 592 00:45:10,330 --> 00:45:14,680 >> Ponownie, ponieważ jego sieci, to będzie zabawa. 593 00:45:14,680 --> 00:45:20,310 Jesteśmy poza C, więc nie jesteś ograniczony do ASCII i że wyjście terminala 594 00:45:20,310 --> 00:45:21,800 tak bawić z tym. 595 00:45:21,800 --> 00:45:24,920 Można zrobić to tak wizualny, jak chcesz. 596 00:45:24,920 --> 00:45:31,860 Można zezwolić użytkownikom na miliony dolarów wejściowych naraz, 597 00:45:31,860 --> 00:45:34,730 lub ograniczyć ich i być naprawdę oznacza i pozwoli je tylko wprowadzić 1 grosza na raz 598 00:45:34,730 --> 00:45:36,330 lub coś w tym stylu. 599 00:45:36,330 --> 00:45:38,550 Zdecydowanie należy bawić się z tym. 600 00:45:38,550 --> 00:45:47,030 >> Kod PHP jest nieco prostsza, że ​​jest to nieco łatwiejsze do mapy swoje Pseudokod 601 00:45:47,030 --> 00:45:50,070 do faktycznego wdrożenia. 602 00:45:50,070 --> 00:45:56,320 Tak, na pewno dobrze bawić się z tym, bo to jest rzeczywiście nasz ostatni kawałek w CS50. 603 00:45:56,320 --> 00:46:01,150 Z tym, to był Walkthrough 7. 604 00:46:01,150 --> 00:46:04,640 Po zakończeniu oglądania solucję i zakończeniu PSET, 605 00:46:04,640 --> 00:46:09,590 następnie te były również psets, a teraz jesteśmy na końcowego produktu - 606 00:46:09,590 --> 00:46:12,330 po otrzymaniu przez quizu 1. 607 00:46:12,330 --> 00:46:16,200 Potem mam nadzieję, że można korzystać z narzędzi, które zostały wyciągnięte z psets - 608 00:46:16,200 --> 00:46:21,980 nie tylko składnia, ale bardziej abstrakcyjne pojęcia, jak zabrać pewne - 609 00:46:21,980 --> 00:46:24,950 lubię, chcę, aby to zrobić, a następnie faktycznie wykonywania tego. 610 00:46:24,950 --> 00:46:28,740 Dowiedz się, jak walczyć z składni i kod dystrybucji. 611 00:46:28,740 --> 00:46:33,020 Czytanie kodu innych ludzi, a następnie interpretacji, że przy użyciu wcześniej istniejących funkcji. 612 00:46:33,020 --> 00:46:37,360 >> Więc, powodzenia z ostatnim PSET. 613 00:46:37,360 --> 00:46:39,930 To była przyjemność prowadzić instruktaże. 614 00:46:39,930 --> 00:46:40,940 Mam nadzieję, że było przydatne dla Ciebie. 615 00:46:40,940 --> 00:46:46,560 Były solucje i dziękuje bardzo. 616 00:46:52,580 --> 00:46:56,200 [CS50.TV]