1 00:00:00,000 --> 00:00:03,000 [Powered by Google Translate] [Покрокове керівництво задач 7] 2 00:00:03,000 --> 00:00:04,400 [Zamyla Chan] [Harvard University] 3 00:00:04,400 --> 00:00:07,640 [Це CS50] [CS50.TV] 4 00:00:07,640 --> 00:00:12,090 >> Привіт всім, і ласкаво просимо Проходження 7, CS50 фінансів. 5 00:00:12,090 --> 00:00:15,090 Тепер ми офіційно зробили з усіма psets в CS50, 6 00:00:15,090 --> 00:00:19,380 і ми тільки що вийшли з ще однією, яка збирається бути весело реалізації 7 00:00:19,380 --> 00:00:23,770 веб-сайту, де користувачі можуть увійти в систему CS50 фінанси 8 00:00:23,770 --> 00:00:25,830 і купувати і продавати акції. 9 00:00:25,830 --> 00:00:32,280 >> Сьогодні ми будемо мати кілька інструментів, наявних в нашому розпорядженні. 10 00:00:32,280 --> 00:00:34,320 Ми будемо говорити про дозволи. 11 00:00:34,320 --> 00:00:36,380 Всякий раз, коли у вас є веб-папки, 12 00:00:36,380 --> 00:00:40,800 Ви збираєтеся хочете дозволити користувачам виконувати певні файли 13 00:00:40,800 --> 00:00:42,500 але і просто читати інші, 14 00:00:42,500 --> 00:00:45,150 так що ми будемо дивитися в дозволах і як ви можете встановити ці. 15 00:00:45,150 --> 00:00:49,630 Тоді ми будемо дивитися на PHP, HTML, SQL і код. 16 00:00:49,630 --> 00:00:51,990 >> По-перше, дозволу. 17 00:00:51,990 --> 00:00:56,060 Коли ви перебуваєте в термінал в певній директорії, 18 00:00:56,060 --> 00:01:00,430 те, що ви хочете зробити, ви хочете запустити команду CHMOD. 19 00:01:00,430 --> 00:01:03,750 Це слід або букв або цифр 20 00:01:03,750 --> 00:01:08,100 відповідає тому, що ви в основному хочуть, щоб світ бачив, 21 00:01:08,100 --> 00:01:09,830 Ви самі побачити, і т.д. 22 00:01:09,830 --> 00:01:13,350 Наприклад, всякий раз, коли у вас є папка, 23 00:01:13,350 --> 00:01:15,560 то ви хочете цю папку, щоб бути виконуваним всім, що бачить його, 24 00:01:15,560 --> 00:01:19,500 так що ви могли б зробити це Ви могли б виконати команду CHMOD + х 25 00:01:19,500 --> 00:01:21,050 , А потім ім'я папки. 26 00:01:21,050 --> 00:01:28,110 Якщо у вас є файл, такі як CSS файли або файли зображень - 27 00:01:28,110 --> 00:01:33,060 як у форматі JPEG і растрових зображень, і тому подібне, або будь-який код JavaScript - 28 00:01:33,060 --> 00:01:36,440 Ви хочете, щоб бути доступними для читання всім, 29 00:01:36,440 --> 00:01:39,880 так, то що ви робите це, ви можете використовувати шаблон - 30 00:01:39,880 --> 00:01:41,650 яка є зірочка - 31 00:01:41,650 --> 00:01:46,190 в основному вказують в папці CSS - все в цій папці - 32 00:01:46,190 --> 00:01:48,740  Я хочу сказати, що це збирається бути доступні для читання всім. 33 00:01:48,740 --> 00:01:54,220 З дозволу, коли ми використовуємо літери, 34 00:01:54,220 --> 00:01:57,610 ми можемо також використовувати цифри замість цього. 35 00:01:57,610 --> 00:02:00,900 Таким чином, ви бачите, що в кінцевому рахунку, якщо ви хочете щось бути виконуваним - 36 00:02:00,900 --> 00:02:02,810 яка представлена ​​номер 1 - 37 00:02:02,810 --> 00:02:08,340 щось, щоб бути читаються це число 4, а потім - 38 00:02:08,340 --> 00:02:10,590 запис має номер 2 - 39 00:02:10,590 --> 00:02:13,670 і так істотно, якщо ви хочете поєднання цих, то їх додавання. 40 00:02:13,670 --> 00:02:15,860 Якщо ви хочете щось, щоб бути на читання, запис і виконувані 41 00:02:15,860 --> 00:02:21,970 Потім можна додати до 4, 2 і 1, і що дасть вам 7, 42 00:02:21,970 --> 00:02:26,230 Потім, коли у вас є папка Ви хочете, щоб бути виконуваним все - 43 00:02:26,230 --> 00:02:31,380 а також для читання і запису - те, що ви робите 7, 1, 1. 44 00:02:31,380 --> 00:02:38,140 Це буде 7 для вас, то 1 для інших людей. 45 00:02:38,140 --> 00:02:42,870 Якщо у вас є спекуляція, це буде насправді вказати, які папки і які файли 46 00:02:42,870 --> 00:02:45,040 повинні бути CHMOD-е изд конкретно. 47 00:02:45,040 --> 00:02:47,920 Наприклад, якщо у вас є папки - це ті 7-1-1 - 48 00:02:47,920 --> 00:02:52,690 коли у вас є фотографії або HTML, CSS, JavaScript, 49 00:02:52,690 --> 00:02:55,870 Потім ці збираєтеся бути 6, 0, 4 - або 6, 4, 4 - 50 00:02:55,870 --> 00:03:00,030 і PHP файлів буде 6, 0, 0. 51 00:03:00,030 --> 00:03:04,940 Ідея, що в тому, що користувачі не повинні дійсно побачити ваш PHP код, 52 00:03:04,940 --> 00:03:08,370 але просто бути в змозі бачити на виході. 53 00:03:08,370 --> 00:03:11,030 >> Відмінно! Переїзд в PHP. 54 00:03:11,030 --> 00:03:18,850 Просто, коли ви хочете файлі PHP, файл суфікс. PHP. 55 00:03:18,850 --> 00:03:22,000 Ви можете також змішати з кодом HTML PHP. 56 00:03:22,000 --> 00:03:24,880 Якщо у вас є HTML файл, наприклад, 57 00:03:24,880 --> 00:03:32,520 , То ви можете укласти його з лівого кута, знак питання, PHP - 58 00:03:32,520 --> 00:03:39,320 розмістити PHP код - і закрийте його з іншим знаком питання і під прямим кутом. 59 00:03:39,320 --> 00:03:45,020 Змінні в PHP набагато легше мати справу, ніж змінних у C. 60 00:03:45,020 --> 00:03:50,310 Будь-яка змінна тільки починається із знаку долара перед ним, і вони слабо типізований. 61 00:03:50,310 --> 00:03:53,470 Це означає, що вам не потрібно турбуватися про установку щось 62 00:03:53,470 --> 00:03:55,020 одно рядок або ціле число. 63 00:03:55,020 --> 00:03:57,710 Ви можете просто сказати, це моє ім'я змінної 64 00:03:57,710 --> 00:04:00,390 і то це його значення, 65 00:04:00,390 --> 00:04:03,280 так що це буде легше мати справу з там. 66 00:04:03,280 --> 00:04:08,220 >> Інша справа, що PHP дозволяє використовувати асоціативні масиви. 67 00:04:08,220 --> 00:04:11,330 Ви можете просто визначити масив як це робиться в C 68 00:04:11,330 --> 00:04:14,900 , Кажучи, знак долара, ім'я масиву дорівнюють, 69 00:04:14,900 --> 00:04:22,600 , А потім у квадратних дужках мають в основному тільки список значень всіх елементів в масиві. 70 00:04:22,600 --> 00:04:27,160 Але, в PHP, що ви можете зробити, це вказати в основному - 71 00:04:27,160 --> 00:04:31,050 це ніби як хеш-функції. 72 00:04:31,050 --> 00:04:34,410 Ви можете вказати індекс - що ви збираєтеся назвати його - 73 00:04:34,410 --> 00:04:37,030 а потім, що відповідає значенню. 74 00:04:37,030 --> 00:04:42,880 Якщо ви дійсно переходять в = 1, B = 2, C = 3, 75 00:04:42,880 --> 00:04:50,820 Потім вашому масиві за індексом дасть вам 1. 76 00:04:50,820 --> 00:04:56,600 Це PSET зігріє вас з деякими PHP в секції питань, 77 00:04:56,600 --> 00:04:59,240 і тоді ми зануритися в CS50 фінансів. 78 00:04:59,240 --> 00:05:02,650 >> У нас є пара - у нас є деякі функції, в основному, 79 00:05:02,650 --> 00:05:05,130 для реалізації на цьому сайті. 80 00:05:05,130 --> 00:05:10,440 Ми хочемо, щоб користувачі могли зареєструватися на нашому сайті за допомогою імені користувача та пароля. 81 00:05:10,440 --> 00:05:13,670 Ми хочемо, щоб вони могли знайти цитати, 82 00:05:13,670 --> 00:05:19,330 і тоді ми б надрукувати назву цією цитатою, а також поточні ціни, що воно знаходиться. 83 00:05:19,330 --> 00:05:26,830 Ми хочемо, щоб вони могли бачити портфель всіх акцій, які вони купили досі. 84 00:05:26,830 --> 00:05:34,240 Ми також хочемо, щоб дозволити їм купувати акції, а також продавати їх. 85 00:05:34,240 --> 00:05:37,540 І, нарешті, ми хочемо, щоб дати їм можливість бачити історію 86 00:05:37,540 --> 00:05:39,490 всіх операцій, які вони зробили. 87 00:05:39,490 --> 00:05:41,540 І, нарешті, після того як ви виконали все це, 88 00:05:41,540 --> 00:05:45,110 Потім ви можете вільно реалізувати одну додаткову функцію. 89 00:05:45,110 --> 00:05:46,610 Ми підемо на них. 90 00:05:46,610 --> 00:05:51,330 Це можуть бути або дозволяючи користувачам отримувати додаткові грошові кошти шляхом нанесення додаткових грошових коштів, 91 00:05:51,330 --> 00:05:54,550 або ви могли б дозволити їм змінити свій пароль, або щось на зразок цього, 92 00:05:54,550 --> 00:06:00,590 відправити їх отримання, коли вони купують чи продають акції. 93 00:06:00,590 --> 00:06:05,370 Там дуже обмежений список функцій, які ви могли б реалізувати себе, 94 00:06:05,370 --> 00:06:08,340 так що це останній там. 95 00:06:08,340 --> 00:06:13,430 >> Оскільки це веб-сайт, ви, хлопці, теж є багато свободи, щоб налаштувати його. 96 00:06:13,430 --> 00:06:20,960 Ми надаємо код CSS, але ви безумовно безкоштовно, щоб налаштувати його, 97 00:06:20,960 --> 00:06:26,680 щоб вона виглядала краще, але що лежать в її основі є базовою функціональністю 98 00:06:26,680 --> 00:06:30,310 тому завжди ставляться до специфікації про те, що вам дійсно потрібно, щоб включити туди. 99 00:06:30,310 --> 00:06:39,940 Після специфікації, ми будемо використовувати прилад як і сервер. 100 00:06:39,940 --> 00:06:43,910 Це буде наш веб-сайт хостинг для нас, на своєму локальному сервері. 101 00:06:43,910 --> 00:06:49,750 Якщо ви будете слідувати цим інструкціям і розпакуйте PSET 7 Розподіл код 102 00:06:49,750 --> 00:06:53,500 у вашому віртуальному хості / локальний хост папку, 103 00:06:53,500 --> 00:07:02,470  то ви можете просто відвідати http://localhost/ в Google Chrome в прилад, 104 00:07:02,470 --> 00:07:09,120 і тоді ви б досягти код, в якому ви написали PSET 7. 105 00:07:09,120 --> 00:07:14,490 >> Pset 7 поставляється з купою розподілу коду, 106 00:07:14,490 --> 00:07:18,330 і, сподіваюся, we've - через все psets до цього - 107 00:07:18,330 --> 00:07:21,700 привчили нас до читання через розподіл коду, 108 00:07:21,700 --> 00:07:25,650 розуміння того, що функції вже передбачені, і як ми могли б використовувати 109 00:07:25,650 --> 00:07:29,470 ті, і інші функції, які ми збираємося реалізувати. 110 00:07:29,470 --> 00:07:31,570 У цьому випадку, у нас є 3 папки. 111 00:07:31,570 --> 00:07:36,350 У нас є HTML папки, папки включає в себе і шаблони папки. 112 00:07:36,350 --> 00:07:40,630 Що ми будемо робити з цим PSET це свого роду поділ мислення - 113 00:07:40,630 --> 00:07:45,580 програмування мислення - з PHP коду з фактичним візуального аспекту. 114 00:07:45,580 --> 00:07:52,690 Ми будемо мати один PHP файл, який робить все мислення, говориться в базу даних, 115 00:07:52,690 --> 00:07:55,620 друкує речі, якщо є заяви - такі речі - 116 00:07:55,620 --> 00:08:02,140 а потім, що буду передавати дані в наш файл шаблону - або файл template.php. 117 00:08:02,140 --> 00:08:05,710 Те, що це буде зробити, це прочитати дані, а потім вона буде роздрукувати його. 118 00:08:05,710 --> 00:08:09,550 >> Ми можемо ставитися до шаблонів, як "німий" в тому, що ми дійсно не хочемо, щоб вони 119 00:08:09,550 --> 00:08:12,370 буде робити багато роботи по визначенню речі. 120 00:08:12,370 --> 00:08:16,330 Ми хочемо, щоб наші контролери, щоб зробити це. 121 00:08:16,330 --> 00:08:21,610 Трохи на що - давайте поглянемо на деякі з розподілу коду. 122 00:08:21,610 --> 00:08:28,250 Тут у нас є файл index.html, і це досить порожньо. 123 00:08:28,250 --> 00:08:34,429 По суті, що вона робить - це говорить, добре, я буду вимагати, щоб configuration.php файл. 124 00:08:34,429 --> 00:08:40,120 Ми не бачимо, що прямо тут, але це в основному виклику configuration.php файл, 125 00:08:40,120 --> 00:08:42,240 і виконання цього. 126 00:08:42,240 --> 00:08:45,130 Після того, як це робить, це збирається зробити портфоліо. 127 00:08:45,130 --> 00:08:49,310 Rendering є функцією, тому, коли ми знаходимося в контролер, 128 00:08:49,310 --> 00:08:56,490 ми будемо називати візуалізації, ми дамо йому файл, а потім дані, які ми передаємо в, 129 00:08:56,490 --> 00:09:04,570 так, щоб вона подзвонить в portfolio.php--вид в той даних, так що портфель може з цим впоратися. 130 00:09:04,570 --> 00:09:10,540 >> А тепер, ось, у нас є login.php форми. 131 00:09:10,540 --> 00:09:17,540  Це контролер, який в основному піклується про входу в обліковий запис 132 00:09:17,540 --> 00:09:29,090 Тут він перевіряє, якщо форма була відправлена ​​на цей файл та угод з перевірки подання. 133 00:09:29,090 --> 00:09:31,990 Ми розглянемо в цій вибачення функції. 134 00:09:31,990 --> 00:09:35,100 Коли ми хочемо, щоб роздрукувати повідомлення про помилку, 135 00:09:35,100 --> 00:09:39,550 ми використовуємо вибачення, і що буде перенаправляти користувача на певну сторінку 136 00:09:39,550 --> 00:09:42,530 , Яка буде видавати повідомлення про помилку, що ми вказуємо. 137 00:09:42,530 --> 00:09:47,860 Продовжуючи, він буде запит до бази даних - МИ потрапити в більш про це пізніше. 138 00:09:47,860 --> 00:09:54,180 Тоді ви побачите, що тут, якщо форма не була представлена, то вона робить вигляд. 139 00:09:54,180 --> 00:10:01,360 Це означає, що він йде до login_form.php, так що давайте подивимося на це. 140 00:10:01,360 --> 00:10:09,400 >> Login.php насправді, де ми бачимо HTML справу з фактичним візуального аспекту. 141 00:10:09,400 --> 00:10:15,130 Тут ми маємо введення тегов для імені користувача, введення пароля, 142 00:10:15,130 --> 00:10:16,630 а також кнопки відправки. 143 00:10:16,630 --> 00:10:22,660 Це насправді, де візуальний аспект і форма HTML буде проводитися. 144 00:10:22,660 --> 00:10:27,550 Тут він говорить, що він збирається бути представлений певний метод, званий пост. 145 00:10:27,550 --> 00:10:30,190 Ми увійдемо у відмінностях між методами - 146 00:10:30,190 --> 00:10:33,240 повідомлення порівнянні отримаєте, є також дещо, зване кажучи - 147 00:10:33,240 --> 00:10:36,160 Ми увійдемо в ці методи пізніше, але інтерес цей PSET, 148 00:10:36,160 --> 00:10:37,810 Я б настійно рекомендуємо вам використовувати пошту. 149 00:10:37,810 --> 00:10:42,210 >> Ми знаємо, що в основному тільки ця форма буде відправлена ​​- 150 00:10:42,210 --> 00:10:44,650 від login_form.php-- 151 00:10:44,650 --> 00:10:50,850 то він піде до дії - login.php-- 152 00:10:50,850 --> 00:10:56,070 в основному проходять у всіх цих параметрів від тих форм в login.php. 153 00:10:56,070 --> 00:11:04,900 Результати цієї форми містяться в цій посаді асоціативний масив. 154 00:11:04,900 --> 00:11:11,710 Показники різних елементів у масиві повідомлення 155 00:11:11,710 --> 00:11:15,290 саме те, що ви тут вказати. 156 00:11:15,290 --> 00:11:19,240 Ви кажете, що ім'я цього входу ім'я користувача. Назва це один пароль. 157 00:11:19,240 --> 00:11:26,840 Крім того, ви побачите ім'я користувача в якості індексу асоціативний масив там. 158 00:11:26,840 --> 00:11:35,110 Якщо ми йдемо в папку включає в себе, у нас є ці функції файл, який буде дуже корисний. 159 00:11:35,110 --> 00:11:37,570 >> Всі ці функції реалізовані для вас. 160 00:11:37,570 --> 00:11:41,870 Вам не потрібно спеціально для реалізації будь-якого з цих себе, 161 00:11:41,870 --> 00:11:43,140 але вони будуть вельми корисні. 162 00:11:43,140 --> 00:11:49,450 Ми вибачення, які, як я вже сказав, буде в основному роздрукувати повідомлення про помилку 163 00:11:49,450 --> 00:11:52,920 для вас на конкретну сторінку - apology.php. 164 00:11:52,920 --> 00:11:59,890 Тоді у нас є звалище, так що якщо ви просто подзвоніть звалище, а потім передати в змінну, 165 00:11:59,890 --> 00:12:04,930 Потім він принесе вас на сторінку, яка буде відображати цю змінну для вас. 166 00:12:04,930 --> 00:12:09,950 Потім ми Вихід, який буде в основному закінчити сесію визначених користувачем. 167 00:12:09,950 --> 00:12:12,240 Lookup буде корисно. 168 00:12:12,240 --> 00:12:15,870 Так як ми маємо справу з лапками і запаси, ми збираємося бути в змозі - 169 00:12:15,870 --> 00:12:17,650 і це істотно режимі реального часу. 170 00:12:17,650 --> 00:12:21,380 Ми повинні знати, що ці акції значення, 171 00:12:21,380 --> 00:12:28,210 тому у нас є функція пошуку, яка займається документацією Yahoo, акції. 172 00:12:28,210 --> 00:12:37,700 Як тільки ви помітили певного символу акції, він повернеться до вас символ акції 173 00:12:37,700 --> 00:12:41,480 а також назву і поточну ціну цієї акції. 174 00:12:41,480 --> 00:12:44,330 Це функція пошуку. 175 00:12:44,330 --> 00:12:48,350 >> Тоді ми маємо справу з MySQL, 176 00:12:48,350 --> 00:12:53,970 так що ми збираємося бажаючи виконати певні запити на нашому SQL бази даних. 177 00:12:53,970 --> 00:12:58,890 У нас є запит на угоду - якесь абстрактне деяких це. 178 00:12:58,890 --> 00:13:03,200 Ми збираємося проходять в цілому ряді наш SQL запит - 179 00:13:03,200 --> 00:13:05,360 і всі змінні, які входять до неї - 180 00:13:05,360 --> 00:13:09,480 і що вона робить насправді виконати це для нас. 181 00:13:09,480 --> 00:13:15,070 Замість того, щоб написати все це кожен раз, коли ви хочете, щоб запит - 182 00:13:15,070 --> 00:13:21,740 , Отримуючи всі результати цього запиту - 183 00:13:21,740 --> 00:13:24,740 , То ви можете просто подзвонити функція запиту, і він буде повертатися до вас - 184 00:13:24,740 --> 00:13:28,750 в залежності від того, що ви використовуєте для вашого запиту - 185 00:13:28,750 --> 00:13:33,000 Ймовірно, поряд всі результати, які відповідають запиту або аналогічний. 186 00:13:33,000 --> 00:13:34,690 Докладніше про це пізніше, хоча. 187 00:13:34,690 --> 00:13:41,200 >> Нарешті, ми повинні перенаправити який, як випливає з назви, перенаправляє на іншу сторінку. 188 00:13:41,200 --> 00:13:46,280 А потім ми повинні винести, які ми збираємося виклику пару раз. 189 00:13:46,280 --> 00:13:51,010 Коли ви перебуваєте в контролер, ви телефонуєте зробити в шаблон сторінки 190 00:13:51,010 --> 00:13:55,390 , А потім передати в значеннях, що шаблон буде мати справу. 191 00:13:55,390 --> 00:13:59,540 Ці цінності, ймовірно, буде мати справу з типом виводу, який ви хочете 192 00:13:59,540 --> 00:14:01,050 будуть показані на вашій сторінці шаблону. 193 00:14:01,050 --> 00:14:09,370 Добре. Ті функції, і є набагато більше до цього розподілу код. 194 00:14:09,370 --> 00:14:12,930 Я закликаю вас, щоб пройти через це і досліджувати його самостійно. 195 00:14:12,930 --> 00:14:17,050 Крім того, специфікації, ймовірно, ви пройдете через деякі інші елементи розподілу коду. 196 00:14:17,050 --> 00:14:27,360 Ось коротка інформація про функції знайдено в functions.php. 197 00:14:27,360 --> 00:14:31,710 >> Добре. Перша задача, щоб дозволити користувачам реєструватися на сайті. 198 00:14:31,710 --> 00:14:34,860 Прямо зараз, є форма входу на сайт, 199 00:14:34,860 --> 00:14:40,080 і вам надається декілька користувачів з паролями. 200 00:14:40,080 --> 00:14:42,130 Ви можете використовувати ці імена користувачів і увійти в систему, 201 00:14:42,130 --> 00:14:45,140 але ви хочете, щоб люди могли зробити свої власні імена 202 00:14:45,140 --> 00:14:47,390 і додати собі на сайт. 203 00:14:47,390 --> 00:14:53,070 Макет для реєстрації дуже схожий на форму входу, 204 00:14:53,070 --> 00:14:56,340 крім імені користувача не раніше існуючих, 205 00:14:56,340 --> 00:14:59,430 і користувачеві необхідно також забезпечити новий пароль, 206 00:14:59,430 --> 00:15:02,440 а потім зазвичай у нас є підтвердження пароля. 207 00:15:02,440 --> 00:15:06,580 Як тільки користувач вводить все, що інформація, 208 00:15:06,580 --> 00:15:10,620 Ми хочемо, щоб додати їх до нашої бази даних користувачів. 209 00:15:10,620 --> 00:15:12,970 Ми збираємося, щоб мати базу даних - база даних SQL - 210 00:15:12,970 --> 00:15:14,470 що ми збираємося посилатися. 211 00:15:14,470 --> 00:15:18,140 У цій базі даних, ми матимемо таблицю з усіма користувачами 212 00:15:18,140 --> 00:15:23,850 містять їх ім'я користувача, його пароль, а також, скільки грошей вони мають. 213 00:15:23,850 --> 00:15:28,480 >> У регістрі, ми хочемо, щоб дозволити їм ввести цю інформацію. 214 00:15:28,480 --> 00:15:29,740 Ми хочемо, щоб відобразити цю форму. 215 00:15:29,740 --> 00:15:32,210 Ми хочемо, щоб переконатися, що їх пароль - 216 00:15:32,210 --> 00:15:37,490 що вони увійшли в один, а потім і про те, що паролі збігаються, коли вони ввести його двічі. 217 00:15:37,490 --> 00:15:42,240 Після того як все що не робиться - за умови, що ті помилки, які перевірили - 218 00:15:42,240 --> 00:15:45,120 Потім ми хочемо додати цих користувачів у нашій базі даних. 219 00:15:45,120 --> 00:15:49,630 Нарешті, коли ви зареєструвалися, це досить зручно, якщо вам не потрібно знову увійти в систему 220 00:15:49,630 --> 00:15:51,000 Як тільки Ви зареєструвалися, 221 00:15:51,000 --> 00:15:54,000 так що ми збираємося ввійти в них на сайті, якщо вони зареєстровані в успішно. 222 00:15:54,000 --> 00:16:00,360 >> Перша задача для відображення форми, і це насправді буде - 223 00:16:00,360 --> 00:16:04,920 весь цей процес реєстрації буде змодельовано досить близько після входу в систему 224 00:16:04,920 --> 00:16:10,510 тільки замість login.php ви могли б register.php. 225 00:16:10,510 --> 00:16:14,300 Замість того, щоб login_form.php--який є шаблоном - 226 00:16:14,300 --> 00:16:16,030 Ви будете мати реєстраційну форму. 227 00:16:16,030 --> 00:16:19,680 Ви хочете, щоб додати ще одне поле - поле підтвердження пароля - 228 00:16:19,680 --> 00:16:23,450 , А не тільки одне ім'я користувача і один пароль. 229 00:16:23,450 --> 00:16:28,120 Далі, ми хочемо перевірити, чи є паролі співпадають або є порожніми. 230 00:16:28,120 --> 00:16:38,560 У нас є контролер - register.php--яка дбатиме про виконання цих перевірок. 231 00:16:38,560 --> 00:16:41,690 При відправці форми за допомогою методу повідомленням, 232 00:16:41,690 --> 00:16:47,050 Потім всі ці змінні, що містяться в повідомлення масиву. 233 00:16:47,050 --> 00:16:52,280 Ви хочете, щоб переконатися, що значення посту масиву за індексом пароля 234 00:16:52,280 --> 00:16:58,080 відповідає підтвердження елемент. 235 00:16:58,080 --> 00:16:59,410 Ви хочете, щоб переконатися, що вони не є порожніми, 236 00:16:59,410 --> 00:17:01,650 і ви хочете, щоб переконатися, що вони збігаються. 237 00:17:01,650 --> 00:17:05,960 >> Одна зручна річ про PHP є те, що ми не повинні використовувати порівняння рядків більше. 238 00:17:05,960 --> 00:17:08,410 Ми можемо використовувати дорівнює-одно оператором 239 00:17:08,410 --> 00:17:11,470  для перевірки рядки дорівнюють один одному. 240 00:17:11,470 --> 00:17:14,960 Для обробки помилок, ви хочете, щоб вибачитися. 241 00:17:14,960 --> 00:17:17,150 На жаль, ви просто викличте функцію 242 00:17:17,150 --> 00:17:21,910  а потім вказати тип повідомлення, які ви хочете на виході. 243 00:17:21,910 --> 00:17:24,630 Потім Ви хочете, щоб додати користувача в базі даних. 244 00:17:24,630 --> 00:17:30,880 До цих пір все, що ми робили тільки локально справу з результатами формі. 245 00:17:30,880 --> 00:17:33,940 Тепер ми дійсно хочемо, щоб додати їх до нашої бази даних. 246 00:17:33,940 --> 00:17:38,890 Для цього ми спочатку хочемо, щоб переконатися, що ім'я користувача не є порожнім. 247 00:17:38,890 --> 00:17:44,550 Зрозумійте, що на сайті, ви не можете мати кілька користувачів з однаковим ім'ям користувача, 248 00:17:44,550 --> 00:17:50,010 так що ви хочете, щоб переконатися, що, коли ви вставляєте щось у вашій базі даних - 249 00:17:50,010 --> 00:17:56,650 вставити новий користувач - то ви не отримаєте зіткнення між вже існуючими ім'я користувача 250 00:17:56,650 --> 00:17:59,150 і ім'я користувача, яке користувач намагається представити. 251 00:17:59,150 --> 00:18:02,250 Для цього, як тільки ви виконаєте запит - 252 00:18:02,250 --> 00:18:08,760 вставка певного користувача з паролем і початкова сума грошових коштів - 253 00:18:08,760 --> 00:18:15,140 Після того як ви називаєте це запит, то MySQL буде насправді повернутися помилковим, якщо це не вдається. 254 00:18:15,140 --> 00:18:21,050 >> Структура користувачів така, що ім'я користувача є унікальним значенням, 255 00:18:21,050 --> 00:18:22,540 так що ви не можете мати більше одного. 256 00:18:22,540 --> 00:18:30,080 Коли ви намагаєтеся вставити новий рядок з ім'ям користувача, який вже існує, 257 00:18:30,080 --> 00:18:34,470 що збирається повернутися помилковим - як логічне значення FALSE. 258 00:18:34,470 --> 00:18:45,320 Хитрість тут в тому, що ви хочете, щоб переконатися, що результат є результат вашого запиту. 259 00:18:45,320 --> 00:18:52,320 Якщо це не вдається, то ви будете хотіти, щоб перевірити з потрійним одно оператора. 260 00:18:52,320 --> 00:18:55,420 Що насправді відбувається, щоб перевірити, чи є в аварії чи ні, 261 00:18:55,420 --> 00:19:02,760 , Тоді як в простій одно-одно, це було б вірно, якщо рядок була порожня. 262 00:19:02,760 --> 00:19:06,000 В результаті виходу з ладу, якщо є зіткнення імена 263 00:19:06,000 --> 00:19:10,350 є фактичним помилкові цінності. 264 00:19:10,350 --> 00:19:15,230 >> Ось як ви повинні вставити в базу даних. 265 00:19:15,230 --> 00:19:19,220 Ось запит, який буде працювати строго в SQL. 266 00:19:19,220 --> 00:19:25,750 Одна річ, що ви можете перейти на сайт, який управляє базою даних SQL 267 00:19:25,750 --> 00:19:31,070 і пограти там, ввівши вручну значень або рядків. 268 00:19:31,070 --> 00:19:34,540 Вона буде виводити те, що SQL вихід. 269 00:19:34,540 --> 00:19:38,870 Ви також можете запустити SQL команди в базі даних 270 00:19:38,870 --> 00:19:42,200  , А потім подивитися, що синтаксис може бути, 271 00:19:42,200 --> 00:19:46,790 , А потім перевести це в запиті функції, які ми маємо в PSET 7, 272 00:19:46,790 --> 00:19:51,120 який буде дуже схожий на запити, які ви реально працювати. 273 00:19:51,120 --> 00:19:54,570 >> Якби я хотів, щоб вставити новий рядок в моїй таблиці користувачів, 274 00:19:54,570 --> 00:20:01,240 то я хотів би вказати вставки в користувачів, яким це ім'я мого столу. 275 00:20:01,240 --> 00:20:06,870 Тоді я хотів би вказати імена стовпців. 276 00:20:06,870 --> 00:20:13,230 Тоді я хотів би надати значення разом з моїм паролем. 277 00:20:13,230 --> 00:20:17,080 Паролі в нашій таблиці користувачів зберігаються не тільки як рядок. 278 00:20:17,080 --> 00:20:19,440 Вони зберігаються у вигляді зашифрованих версії, 279 00:20:19,440 --> 00:20:24,560 так що ви хочете, щоб запустити функцію склеп на фактичний пароль, 280 00:20:24,560 --> 00:20:29,680 і що дасть вам правильний тип сховища для масиву користувачів. 281 00:20:29,680 --> 00:20:34,960 Виконання цього буде вставити новий рядок у таблицю користувачів. 282 00:20:34,960 --> 00:20:39,020 >> Щоб справитися з функцією запиту, 283 00:20:39,020 --> 00:20:43,100 раніше в C ми використовували знак відсотка в якості заповнювача. 284 00:20:43,100 --> 00:20:47,670 Крім того, та ж концепція заповнювача застосовується тут. 285 00:20:47,670 --> 00:20:50,720 У запиті необхідно вказати весь запит, 286 00:20:50,720 --> 00:20:55,510 винятком випадків, коли ви маєте справу з змінними, як ваш внесок у запиті, 287 00:20:55,510 --> 00:21:00,490 Потім замість того, щоб дійсно покласти їх усередину - наприклад, коли у нас було Printf заяви в C. 288 00:21:00,490 --> 00:21:03,740 Ми хотіли б поставити рядок, а потім у заповнювач там, а потім після кожного 289 00:21:03,740 --> 00:21:06,990 коми, вказати, які змінні ми мали. 290 00:21:06,990 --> 00:21:14,480 Тут ми збираємося використовувати знак знак питання, як наші заповнювача 291 00:21:14,480 --> 00:21:21,670 , А потім передати по кожній змінної, відповідно, в порядку, для заповнювачів - 292 00:21:21,670 --> 00:21:24,420 де ці змінні повинні йти. 293 00:21:24,420 --> 00:21:29,470 Так от, перший знак питання буде замінений на фактичне ім'я користувача 294 00:21:29,470 --> 00:21:33,610 то другий знак питання пароль. 295 00:21:33,610 --> 00:21:37,000 >> І, нарешті, як тільки ви зареєстрували їх і додали їх в базу даних, 296 00:21:37,000 --> 00:21:40,510 то ви хочете увійти в їх веб-сайті. 297 00:21:40,510 --> 00:21:45,320 У нас є вид супер-глобальних змінних називається сесії. 298 00:21:45,320 --> 00:21:48,160 Сесія вимагає певного ідентифікатора, 299 00:21:48,160 --> 00:21:51,750 і що ідентифікатор відповідає користувачеві, що в даний час пройшли ідентифікацію 300 00:21:51,750 --> 00:21:56,380 Що вам потрібно зробити, це знайти те, що їх ідентифікатор користувача 301 00:21:56,380 --> 00:22:03,710 , А потім встановити, що ідентифікатор сесії, як ідентифікатор конкретного користувача. 302 00:22:03,710 --> 00:22:07,560 Функції, які ви хочете використовувати тут SQL команди 303 00:22:07,560 --> 00:22:15,150 , Який буде витягувати останній вставлений ідентифікатор з таблиці. 304 00:22:15,150 --> 00:22:24,560 Тоді рядки будуть дзвонити - it'll називати ID - it'll призначити ім'я в число, що вона повертає. 305 00:22:24,560 --> 00:22:27,900 Він подзвонить, що ідентифікатор. 306 00:22:27,900 --> 00:22:33,370 Тепер ми закінчили зареєструватися, і ми можемо рухатися далі процитувати. 307 00:22:33,370 --> 00:22:36,610 >> Цитувати дозволяє користувачеві ввести ім'я певного запасу, 308 00:22:36,610 --> 00:22:41,940 а потім повернуся якостей цієї акції. 309 00:22:41,940 --> 00:22:48,410 Що ви хочете, щоб зробити тут є контролер і деякі шаблони. 310 00:22:48,410 --> 00:22:53,380 У цьому випадку ми будемо мати контролер, який буде робити все мислення для нас. 311 00:22:53,380 --> 00:23:01,210 Це буде шукати символ, а потім передати в значеннях до шаблонів, яка буде видавати. 312 00:23:01,210 --> 00:23:03,060 Ми збираємося, щоб мати 2 шаблонів тут. 313 00:23:03,060 --> 00:23:07,260 Ми збираємося мати 1 шаблон, який надає форму, в якій користувачі будуть 314 00:23:07,260 --> 00:23:09,920 Введіть назву акції - назва акції. 315 00:23:09,920 --> 00:23:16,030 Тоді ми також збираємося потрібен інший шаблон, який відображає ці значення. 316 00:23:16,030 --> 00:23:27,450 Ви можете подивитися на вхід для прикладу того, як ви є форма, яка приймає вхідні, 317 00:23:27,450 --> 00:23:30,060 винятком тут, ми тільки хочемо поля 1. 318 00:23:30,060 --> 00:23:31,630 Ми не хочемо, ім'я користувача і пароль полі. 319 00:23:31,630 --> 00:23:37,110 Ми просто хочемо, 1 текстове поле, яке дозволяє користувачеві ввести ім'я певного запасу. 320 00:23:37,110 --> 00:23:40,110 Тоді ви хочете відправити ці дані - як тільки ви подивилися на ці акції - 321 00:23:40,110 --> 00:23:45,550 в quote_form.php. 322 00:23:45,550 --> 00:23:50,780 Lookup повертає символ акції, назва та ціна. 323 00:23:50,780 --> 00:23:53,910 Ті, що містяться в асоціативний масив. 324 00:23:53,910 --> 00:24:01,390 Подивіться функція пошуку всередині functions.php для отримання додаткової інформації 325 00:24:01,390 --> 00:24:04,010 про повернення цих типів. 326 00:24:04,010 --> 00:24:08,520 >> Відмінно! Отже, нарешті, ви хочете, щоб відобразити біржової інформації. 327 00:24:08,520 --> 00:24:14,110 Ви хочете, щоб, ймовірно, відображення - ви будете хотіти отримати доступ до цих змінним. 328 00:24:14,110 --> 00:24:17,610 Якщо у вас є ціна в змінної - 329 00:24:17,610 --> 00:24:20,860 а також ім'я та символ - 330 00:24:20,860 --> 00:24:25,550 то ви хочете, щоб відобразити ті в шаблон сторінки. 331 00:24:25,550 --> 00:24:31,540 Це шаблон сторінки можна було б назвати show_quote.php або щось. 332 00:24:31,540 --> 00:24:39,660 Ваша quote.php сторінки зробить шоу цитати, а потім передати у всіх цих значень. 333 00:24:39,660 --> 00:24:47,170 Тоді у вашому PHP-сторінки, ви насправді роздрукувати ці значення в HTML аспект цій сторінці. 334 00:24:47,170 --> 00:24:53,800 Ви просто використовувати функції друку і передати в ціні. 335 00:24:53,800 --> 00:24:57,990 Є 2 способи - ви можете об'єднати його з оператором точка, 336 00:24:57,990 --> 00:25:02,230 або використовувати заповнювач. 337 00:25:07,580 --> 00:25:12,750 >> Користувачі в кінцевому підсумку будуть купувати і продавати акції. 338 00:25:12,750 --> 00:25:18,450 Ми хочемо, щоб вони якимось чином бачити всі акції, які вони в даний час. 339 00:25:18,450 --> 00:25:21,350 Ми будемо називати це свого портфеля. 340 00:25:21,350 --> 00:25:26,180 Портфоліо б, мабуть, для кожного користувача, містять купу рядків 341 00:25:26,180 --> 00:25:31,760 перераховуючи типу частку, що вони є, і те, як багато хто з тих, які вони мають. 342 00:25:31,760 --> 00:25:36,500 Наші існуючу таблицю - зараз ми маємо таблицю користувачів в нашій базі даних. 343 00:25:36,500 --> 00:25:41,780 Це ім'я користувача містить користувачів, а також їх паролів і скільки грошей вони мають. 344 00:25:41,780 --> 00:25:50,390 Там немає реального способу зберігання всіх своїх запасів у цьому. 345 00:25:50,390 --> 00:25:58,010 Це не те, ми можемо вставити нові стовпці для кожної акції. 346 00:25:58,010 --> 00:26:03,650 Це було б дуже, дуже довгий ряд, тому що у нас є нескінченна кількість 347 00:26:03,650 --> 00:26:06,200 види акцій, які вони могли б мати. 348 00:26:06,200 --> 00:26:09,150 Таким чином, замість того, що ми будемо робити це в одній базі даних, 349 00:26:09,150 --> 00:26:15,000 ми будемо мати таблицю користувачів, але тоді ми будемо мати портфель таблиці. 350 00:26:15,000 --> 00:26:18,430 Портфель таблиця буде визначено пов'язана з таблицею користувачів, 351 00:26:18,430 --> 00:26:24,600 але замість того, структура портфеля таблиця буде мати біржову інформацію, 352 00:26:24,600 --> 00:26:27,780 Скільки акцій цієї акції користувачеві, 353 00:26:27,780 --> 00:26:31,620 а також користувачів Зокрема ідентифікаційний номер. 354 00:26:31,620 --> 00:26:34,620 У вас є користувачі таблицю, яка має свій ідентифікатор, а також ім'я користувача, хеш - 355 00:26:34,620 --> 00:26:40,130 це пароль, зашифрований пароль - 356 00:26:40,130 --> 00:26:42,130 , А потім сума грошових коштів у них є. 357 00:26:42,130 --> 00:26:47,900 Ідентифікаційний номер буде пов'язаний з ідентифікаційним номером з портфеля. 358 00:26:47,900 --> 00:26:52,490 Портфель б просто символ акції, а також акції - 359 00:26:52,490 --> 00:26:55,410 Кількість акцій, що акції, які користувач має. 360 00:26:55,410 --> 00:26:58,520 У цьому портфелі таблиці вам доведеться в основному 361 00:26:58,520 --> 00:27:03,760 всі акції володіють всі користувачі на ваш сайт. 362 00:27:03,760 --> 00:27:10,550 Пізніше, вказати тільки акції визначених користувачем - тільки портфель своїх - 363 00:27:10,550 --> 00:27:15,360 Ви витягання значень з таблиці вашого портфеля таких, що 364 00:27:15,360 --> 00:27:19,930 Ідентифікатор є специфічним для даного користувача. 365 00:27:26,520 --> 00:27:34,890 >> При відображенні портфель, ви хочете повідомити про кожну з акцій, що входять в портфель користувачів. 366 00:27:34,890 --> 00:27:41,670 Ви хочете повідомити про кількість акцій та поточної вартості цих акцій. 367 00:27:41,670 --> 00:27:45,950 Це поточна вартість цих акцій не зберігаються в портфелі стіл 368 00:27:45,950 --> 00:27:51,640 тому що це буде оновлення - як мінімум - кожен день на Yahoo. 369 00:27:51,640 --> 00:27:58,550 Для отримання цієї інформації, ви не можете посилатися на що з вашого запиту. 370 00:27:58,550 --> 00:28:02,400 Яка функція передбачає, що до нас? Які функції буде отримати ціну? 371 00:28:02,400 --> 00:28:09,110 Це пошук, тому використання пошуку на певному символ дасть вам багато інформації. 372 00:28:09,110 --> 00:28:13,710 Це дасть вам 3 штуки інформацію - ім'я, символ, так само як і ціна. 373 00:28:13,710 --> 00:28:17,490 Після пошуку певного символу, то ви можете отримати ціну, 374 00:28:17,490 --> 00:28:20,460 а потім ви можете використовувати ціни, які будуть відображатися у вашому портфелі. 375 00:28:20,460 --> 00:28:26,190 >> Портфель повинен також відображати поточний залишок грошових користувачів. 376 00:28:26,190 --> 00:28:30,310 Це поле зберігається у вашій таблиці користувачів. 377 00:28:30,310 --> 00:28:33,400 І тоді згадавши, як ми в основному необхідності - 378 00:28:33,400 --> 00:28:36,850 Ми з різними типами PHP файлів. 379 00:28:36,850 --> 00:28:40,160 Ми збираємося, щоб мати контролер, який в основному робить все мислення для вас. 380 00:28:40,160 --> 00:28:45,940 І тоді у нас є шаблон, в якій шаблон має справу з виведенням даних. 381 00:28:45,940 --> 00:28:50,790 Ви повинні думати про те, що змінні контролера необхідно буде прийняти дюйма 382 00:28:50,790 --> 00:29:01,630 Якщо ми маємо справу з портфелем, який виводить кожне ім'я, символ, і кількості акцій, 383 00:29:01,630 --> 00:29:03,730 а також поточна ціна акції, 384 00:29:03,730 --> 00:29:06,950 то ви хочете, щоб знайти якийсь спосіб в основному проходять в - 385 00:29:06,950 --> 00:29:12,070 Ви можете передати в масив значень, які відповідають цьому. 386 00:29:15,250 --> 00:29:24,360 >> Давайте як приклад того, як можна отримати всі акції 387 00:29:24,360 --> 00:29:26,210 належать конкретному користувачеві. 388 00:29:26,210 --> 00:29:31,400 Це не справа - ще - з ціною акції. 389 00:29:31,400 --> 00:29:33,520 Що це буде зробити, це запустити запит. 390 00:29:33,520 --> 00:29:37,070 Було б отримати символ, а також акцій - 391 00:29:37,070 --> 00:29:42,770 Я називаю цю таблицю, але в цьому випадку, що б це було? 392 00:29:42,770 --> 00:29:49,400 Що ім'я таблиці, що ми маємо справу з символом, який має і акції 393 00:29:49,400 --> 00:29:52,280 для конкретного користувача? 394 00:29:52,280 --> 00:29:56,410 Це або користувачам або портфель. 395 00:29:56,410 --> 00:29:57,820 Портфоліо. 396 00:29:57,820 --> 00:30:03,220 Що це буде зробити, це запит портфель символи і акції 397 00:30:03,220 --> 00:30:04,920 для конкретного користувача. 398 00:30:04,920 --> 00:30:09,260 Ось, кажу я, (SELECT символ, акцій столова ложка - 399 00:30:09,260 --> 00:30:12,280 але замість столу, ви збираєтеся замінити, що з портфелю. 400 00:30:12,280 --> 00:30:15,220 "Де" в основному мій стан. 401 00:30:15,220 --> 00:30:21,050 Я кажу, я тільки хочу, щоб отримати ці асоціативні масиви, які відповідають 402 00:30:21,050 --> 00:30:23,850  до цього наступне умова - ID рівних. 403 00:30:23,850 --> 00:30:27,600  Тоді я ставлю заповнювача там і тоді ідентифікатор сесії. 404 00:30:27,600 --> 00:30:36,720 Що це буде зробити, це сказати для кожного рядка в рядки. 405 00:30:36,720 --> 00:30:40,940 Це відмінний спосіб, замість того, щоб дійсно створити цикл 406 00:30:40,940 --> 00:30:47,450 , Який перебирає всі індекси, то в PHP ви можете мати в наявності для кожного циклу. 407 00:30:47,450 --> 00:30:53,520 >> Якщо у вас є даний масив, то ви можете сказати, що я буду називати кожний наступний елемент - 408 00:30:53,520 --> 00:30:57,930 Я буду дзвонити кожен елемент цього імені. 409 00:30:57,930 --> 00:31:02,780 Таким чином, для кожного з цих елементів, я буду називати їх, 410 00:31:02,780 --> 00:31:04,500 то я можу це зробити. 411 00:31:04,500 --> 00:31:10,370 У цьому для кожного, у вас є рядки, як ваш фактичний масив, і кожен рядок ви збираєтеся дзвонити поспіль. 412 00:31:10,370 --> 00:31:12,420 Кожного разу, коли він виконує тіло, 413 00:31:12,420 --> 00:31:16,960 він буде йти вгору, і вона буде оновити рядок до наступного елементу в лавах. 414 00:31:18,900 --> 00:31:25,260 >> Тепер, з точки зору купівлі акцій, 415 00:31:25,260 --> 00:31:29,500 що ми хочемо зробити, це отримати акції, які користувач хоче купити 416 00:31:29,500 --> 00:31:35,300 і кількість акцій, які користувач хоче купити, а потім - якщо вони хочуть - 417 00:31:35,300 --> 00:31:38,120 Додамо, що акції в свій портфель. 418 00:31:38,120 --> 00:31:40,310 Очевидно, що якщо вони купують щось, те, що відбувається зниження 419 00:31:40,310 --> 00:31:43,520 Сума грошей, яку вони мають, таким чином, що збирається зменшити свої гроші. 420 00:31:43,520 --> 00:31:48,380 Ми збираємося мати справу з оновленням портфоліо, а також таблиці користувачів, 421 00:31:48,380 --> 00:31:50,300 в якому міститься грошових коштів. 422 00:31:50,300 --> 00:31:54,920 Але спочатку ви повинні отримати фактичний запас і кількість акцій, які користувач хоче. 423 00:31:54,920 --> 00:32:00,010 Для цього вам знадобиться HTML форми, яка буде запитувати символ акції 424 00:32:00,010 --> 00:32:03,360 що ви хочете купити, а також кількість акцій. 425 00:32:03,360 --> 00:32:08,300 Тоді ви хочете додати. 426 00:32:08,300 --> 00:32:13,750 Ви хочете, щоб вибрати певні значення. 427 00:32:13,750 --> 00:32:19,670 Ми пройшли через це трохи вже, але коли ви намагаєтеся отримати певні рядки - 428 00:32:19,670 --> 00:32:22,020 отримати певні рядки з таблиці SQL, 429 00:32:22,020 --> 00:32:24,290 це наступний синтаксис. 430 00:32:24,290 --> 00:32:28,400 Ви обираєте, а потім, якщо ви вкажете зірки, 431 00:32:28,400 --> 00:32:31,830 що буде в основному повертаються в цілому вся рядок для вас. 432 00:32:31,830 --> 00:32:36,890 Знову ж таки, у Вас є стан, коли, а потім вказати - 433 00:32:36,890 --> 00:32:39,990 Я хочу тільки ім'я користувача, рівної поштового, 434 00:32:39,990 --> 00:32:46,660 так що це буде тільки отримати рядок у користувачів, які відповідають пошти в. 435 00:32:46,660 --> 00:32:52,860 >> Коли користувач хоче додати ресурс у портфелі, 436 00:32:52,860 --> 00:32:54,400 Ви повинні перевірити кілька помилок. 437 00:32:54,400 --> 00:32:57,680 Ви хочете, щоб переконатися, що користувач може собі дозволити акцій, 438 00:32:57,680 --> 00:33:00,810 так що ви хочете, щоб перевірити їх грошових коштів. 439 00:33:00,810 --> 00:33:05,810 Раніше ми зірки, щоб витягти всі рядки з таблиці SQL. 440 00:33:05,810 --> 00:33:08,930 Але і тут ми можемо насправді просто вказати, що я хочу тільки 1 значення - 441 00:33:08,930 --> 00:33:10,080 Я хочу тільки готівку. 442 00:33:10,080 --> 00:33:17,970 Так от, це було б повернути грошові кошти для користувача з ID номером 1. 443 00:33:17,970 --> 00:33:25,940 Якщо користувач вже придбав певний запас, але потім купує більше цієї акції, 444 00:33:25,940 --> 00:33:30,440 Потім у вашому портфелі - Ви не хочете окремим рядком, 445 00:33:30,440 --> 00:33:34,770 інша рядок, що містить, що нова транзакція. 446 00:33:34,770 --> 00:33:37,950 Ви насправді хочете оновити суми. 447 00:33:37,950 --> 00:33:42,530 Все, що зміни дійсно є кількість акцій, що користувач володіє. 448 00:33:42,530 --> 00:33:47,730 Якщо ви використовуєте вставки в запиті - так це просто вставити в свій портфель всі ці значення - 449 00:33:47,730 --> 00:33:51,710 ID номер користувача, а також символ акції, які вони купують 450 00:33:51,710 --> 00:33:57,750 і акції, то ви також хочете, щоб вказати, добре, якщо я біжу в дублікат ключа - 451 00:33:57,750 --> 00:34:00,750 У цьому випадку дублікат ключа є не тільки ID користувача, але і символ акції - 452 00:34:00,750 --> 00:34:08,340 тому що ви можете мати тільки - Ми виходимо з того, що ви можете мати тільки 1 рядок 453 00:34:08,340 --> 00:34:10,699  , Що відповідає 1 конкретний символ. 454 00:34:10,699 --> 00:34:13,659 Так, на дублікат ключа - якщо ви зіткнетеся зіткнення там - 455 00:34:13,659 --> 00:34:18,520 ви тільки збираєтеся оновити акції її нове значення. 456 00:34:18,520 --> 00:34:23,290 Акції одно все, що ми мали до плюс кількість акцій, які користувач купує. 457 00:34:27,790 --> 00:34:31,090 >> Тепер, коли ми оновили портфеля стіл, 458 00:34:31,090 --> 00:34:34,730 ми хочемо оновити грошових користувачів. 459 00:34:34,730 --> 00:34:40,300 Ось в таблиці користувачів, тому ми збираємося віднімання певної суми з грошових коштів. 460 00:34:40,300 --> 00:34:46,270 Імовірно, вона буде дорівнює готівкові кошти мінус - а потім певну суму. 461 00:34:46,270 --> 00:34:50,560 Щоб оновити готівкові гроші, ви б - 462 00:34:50,560 --> 00:34:55,699 якби я хотів, щоб забрати гроші з поштового, то я б виконати цей запит - 463 00:34:55,699 --> 00:35:00,220 "Оновлення користувачів, а потім встановити колонку по касі на готівку - 464 00:35:00,220 --> 00:35:07,300 >> Я хотів би видалити 9999 доларів тільки якщо ім'я користувача одно поштою в. 465 00:35:07,300 --> 00:35:12,020 Але, в даному випадку, ми не хочемо, щоб відняти 9999 зокрема. 466 00:35:12,020 --> 00:35:17,610 Ми хочемо, щоб вказати, добре, ми хочемо, щоб відняти поточною ціною акцій 467 00:35:17,610 --> 00:35:22,400 помноженої на кількість акцій, які вони купують. 468 00:35:25,260 --> 00:35:29,910 >> Тепер ми дозволили їм побачити всі запаси, які у них є, 469 00:35:29,910 --> 00:35:33,080 , А також купити більше акцій. 470 00:35:33,080 --> 00:35:37,430 Ми також раніше дозволив їм зазирнути у поточній ціні акцій. 471 00:35:37,430 --> 00:35:40,030 Тут ми хочемо дати їм можливість продати їх. 472 00:35:40,030 --> 00:35:42,160 Спочатку ми хочемо, щоб відобразити в основному - 473 00:35:42,160 --> 00:35:45,270 Ми хочемо, щоб вони могли побачити всі запаси, які у них є, 474 00:35:45,270 --> 00:35:53,170 так що тут ми хочемо, щоб відобразити всі рядки з портфеля. 475 00:35:53,170 --> 00:35:56,650 Якщо вони вирішать продати певний запас, 476 00:35:56,650 --> 00:35:59,140 то ми будемо вважати, що вони хочуть продати все це. 477 00:35:59,140 --> 00:36:04,350 Вони не просто збирається продати 50% своїх акцій, вони збираються продати 100% від неї. 478 00:36:04,350 --> 00:36:08,630 Ми можемо просто видалити всі рядки з портфеля. 479 00:36:08,630 --> 00:36:17,520 Ми можемо видалити акцій даного користувача до певним символом. 480 00:36:17,520 --> 00:36:21,410 Там в синтаксисі для цього. 481 00:36:21,410 --> 00:36:22,710 >> Потім ми хочемо оновити грошових коштів. 482 00:36:22,710 --> 00:36:30,930 Ми збираємося додати у грошовій дорівнює кількості акцій, які вони продають 483 00:36:30,930 --> 00:36:34,640 помноженої на поточну ціну акції - 484 00:36:34,640 --> 00:36:38,610 Не ціні, по якій вони купили його, а ціна, за якою вони є - 485 00:36:38,610 --> 00:36:40,500 поточні ціни, коли вони продають його. 486 00:36:40,500 --> 00:36:43,660 Для посилання на поточну ціну акції, 487 00:36:43,660 --> 00:36:49,120 Ви хочете використовувати пошук, який дасть вам ціна акції 488 00:36:50,030 --> 00:36:52,650 на поточний момент. 489 00:36:52,650 --> 00:36:55,930 >> Тепер ми залишилися з історією, 490 00:36:55,930 --> 00:37:00,170 які ви хочете дозволити користувачеві відслідковувати всі свої операції - 491 00:37:00,170 --> 00:37:03,040 хоче бачити кожного разу, коли вони продавали щось, всякий раз, коли вони купили акції. 492 00:37:03,040 --> 00:37:08,870 Ми хочемо, щоб вказати час, в яке вони зробили це, а також, скільки вони купили 493 00:37:08,870 --> 00:37:11,650 і що це була акція. 494 00:37:11,650 --> 00:37:17,800 Чи є у нас струму, існуюча структура, яка визначає, що? 495 00:37:17,800 --> 00:37:25,230 Ну, у нас є портфель, який відображає кількість акцій, які користувач має 496 00:37:25,230 --> 00:37:26,470 для даної акції. 497 00:37:26,470 --> 00:37:34,060 Але ми структурування портфеля таким чином, що він оновлює, коли ми купуємо кілька, 498 00:37:34,060 --> 00:37:40,190 в той час як історія повинна - якщо ви купуєте Apple, 10 акцій, і потім на продаж 5, 499 00:37:40,190 --> 00:37:44,040 то ви хотіли б бачити тих, окремо, як окремі дії, окремих рядків. 500 00:37:44,040 --> 00:37:48,520 Беручи до уваги, що дії по собі, що в нашому портфелі стіл 501 00:37:48,520 --> 00:37:52,540 буде просто оновлення до цієї конкретної рядки, 502 00:37:52,540 --> 00:37:55,740  так що ми, ймовірно, захочеться іншу таблицю. 503 00:37:55,740 --> 00:38:00,460 В нашій базі даних у нас є таблиця користувачів, у нас є портфель стіл, 504 00:38:00,460 --> 00:38:04,090 і тепер ми, напевно, хочете історію таблиці. 505 00:38:04,090 --> 00:38:08,070 Це історія таблиця може відслідковувати поточну дату, 506 00:38:08,070 --> 00:38:12,800 а також конкретний символ акції, а також про те, як багато акцій, 507 00:38:12,800 --> 00:38:15,410 і які дії він - 508 00:38:15,410 --> 00:38:18,800 були Ви купувати ці акції, або ж ви були продавати їх. 509 00:38:20,660 --> 00:38:25,720 >> Щоб справитися з датою, є кілька способів, які ви можете зробити це. 510 00:38:25,720 --> 00:38:28,820 PHP є спосіб відстеження дати, які ви можете подивитися самі. 511 00:38:28,820 --> 00:38:33,990 У SQL можна також використовувати ні зараз, ні поточний час. Це залежить від вас. 512 00:38:33,990 --> 00:38:40,720 Просто переконайтеся, що кожен раз, коли користувач купує або продає, ви будете оновленні своїх грошових 513 00:38:40,720 --> 00:38:46,750 У таблиці користувачів, ви будете оновлювати рядки в таблиці портфелів, 514 00:38:46,750 --> 00:38:50,900 то ви також будете оновлення історії, 515 00:38:50,900 --> 00:38:56,260 так що збираємося бути 3 окремих SQL запити, які ви будете виклику там. 516 00:38:58,640 --> 00:39:01,530 У нас є купа функціональності зараз. 517 00:39:01,530 --> 00:39:10,600 >> Буквально за пару нагадування, що у вашому індексний файл, ви хочете перейти по посиланню принаймні, ваші - 518 00:39:10,600 --> 00:39:15,550 але ви хочете, щоб дозволити користувачеві перейти по посиланню магазин На рибалку сторінку. 519 00:39:15,550 --> 00:39:23,560 Це відбувається, щоб дозволити користувачеві - Енциклопедія програм є контролер, так що це буде або 520 00:39:23,560 --> 00:39:29,170 відправити вас - що збирається відправити вас у формі, яка дозволяє шукати речі. 521 00:39:29,170 --> 00:39:34,420 У нас є історія. Ми вихід із, отримати цитату, а потім продають. 522 00:39:34,420 --> 00:39:37,350 Це мінімум, що ви хочете показати. 523 00:39:37,350 --> 00:39:43,640 З точки зору портфеля, портфеля, фактично відображаються на сторінці індексу. 524 00:39:43,640 --> 00:39:52,050 Якщо ми йдемо в індекс, то тут ми бачимо, що він робить portfolio.php 525 00:39:52,050 --> 00:40:00,050 і проходить в асоціативний масив - в основному назви дорівнює портфеля. 526 00:40:00,050 --> 00:40:02,610 Таким чином, це контролер. 527 00:40:02,610 --> 00:40:08,000 Якщо ми йдемо в шаблон portfolio.php, 528 00:40:08,000 --> 00:40:18,060 потім все це має, - показує в основному картина, яка говорить, ой, цей сайт знаходиться в розробці. 529 00:40:18,060 --> 00:40:23,810 Пізніше, коли ви передаєте - ви будете проходив в основному більш конкретної інформації. 530 00:40:23,810 --> 00:40:27,400 Замість того щоб просто назва, ви, ймовірно, що проходить в інші речі. 531 00:40:27,400 --> 00:40:32,010 Якщо у вас є тих значень, то portfolio.php можуть впоратися з цими значеннями 532 00:40:32,010 --> 00:40:34,490 і друк їх в будь-яких цілях. 533 00:40:34,490 --> 00:40:41,660 >> Після того як ви виконали всі з них, ви також повинні реалізувати ще 1 функцію. 534 00:40:41,660 --> 00:40:44,890 Це може бути дозволяє користувачеві змінювати свій пароль, 535 00:40:44,890 --> 00:40:50,110 щоб скинути свій пароль, якщо вони забули - так для скидання пароля, то 536 00:40:50,110 --> 00:40:54,560 Ви, ймовірно, також необхідно змінити реєстр так, що це дозволяє їм вказати електронну пошту, 537 00:40:54,560 --> 00:40:57,910 так що якщо вони забули свої паролі, то вони можуть отримати це. 538 00:40:57,910 --> 00:41:02,870 Вони, ймовірно, може ввести в своє ім'я користувача, а потім буде відправлено лист з ними 539 00:41:02,870 --> 00:41:06,180 з посиланнями, щоб мати можливість скинути пароль. 540 00:41:06,180 --> 00:41:10,980 Ви можете їсти те, що дозволяє користувачам отримувати квитанції 541 00:41:10,980 --> 00:41:12,380 кожен раз, коли щось купити чи продати, 542 00:41:12,380 --> 00:41:19,910 і, нарешті, дати їм можливість додати кошти на свій сайт. 543 00:41:19,910 --> 00:41:24,970 Просто, щоб повернутися в поняття контролери та шаблони небагато. 544 00:41:24,970 --> 00:41:31,170 Ви будете мати щось подібне - так ви будете мати контролер тут. 545 00:41:31,170 --> 00:41:35,080 Зараз ми дивимося на login.php приклад. 546 00:41:35,080 --> 00:41:38,220 Коли у нас є контролер, в основному це збирається взяти 2-х випадках. 547 00:41:38,220 --> 00:41:42,090 Коли у нас є контролери, ми в цій частині, що ми також частково справу з 548 00:41:42,090 --> 00:41:43,880 коли у нас є форми, а також. 549 00:41:43,880 --> 00:41:47,500 Контролер буде в основному мають окремі дії - 550 00:41:47,500 --> 00:41:53,880 один, якщо форма вже була представлена, а потім два, якщо користувач приходить на цю сторінку 551 00:41:53,880 --> 00:41:56,870 в перший раз і все ще потребує вводити цю форму. 552 00:41:56,870 --> 00:42:02,820 >> Я збираюся перейти до цієї справи, перш ніж підійти до першим випадком, що мають вид дюйма 553 00:42:02,820 --> 00:42:12,640 От ми говоримо, якщо форма була відправлена ​​з методом пост - 554 00:42:12,640 --> 00:42:13,580 Не турбуйтеся про це небагато. 555 00:42:13,580 --> 00:42:19,780 Не турбуйтеся про те, що занадто багато, але розумію, що в основному ця функція має справу з 556 00:42:19,780 --> 00:42:22,430 Чи форма була представлена ​​чи ні. 557 00:42:22,430 --> 00:42:25,640 Ця умова є істинним, якщо користувач відправив форму. 558 00:42:25,640 --> 00:42:45,940 Якщо ні, то ми збираємося хочете подзвонити візуалізації login_form.php, а потім передати в назві. 559 00:42:45,940 --> 00:42:48,010 Цей титул тільки в основному буде з'являтися в заголовку. 560 00:42:48,010 --> 00:42:54,990 Що це робить в основному говорить, добре - добре, якщо користувач переходить на login.php 561 00:42:54,990 --> 00:43:00,310 і фактично не увійшли в систему, то я хочу, щоб відправити їх на сторінку, яка має цю форму 562 00:43:00,310 --> 00:43:03,160 що дозволяє їм ввести ім'я користувача і пароль. 563 00:43:03,160 --> 00:43:07,590 Тоді я йду до login_form, а потім, що є реальна форма. 564 00:43:07,590 --> 00:43:13,750 Потім, коли користувач стверджує, що форма, вони збираються представити його login.php 565 00:43:13,750 --> 00:43:15,840 з методом пост. 566 00:43:15,840 --> 00:43:21,560 Тоді я насправді збирається увійти в цей розділ мого якщо-інакше цикл. 567 00:43:21,560 --> 00:43:29,560 Тоді це тут, що ми маємо справу з цінностями, введені у форму. 568 00:43:29,560 --> 00:43:32,800 Це тут, що ми маємо справу з тими. 569 00:43:32,800 --> 00:43:40,860 >> Потім, коли ви маєте справу з тими цінностями, - якщо ви маєте справу з - 570 00:43:40,860 --> 00:43:46,640 сказати, що ми маємо справу з quote.php сторінку, де хтось може ввести акцій, які 571 00:43:46,640 --> 00:43:49,950 вони хочуть виглядати, а потім побачити, що дисплей - 572 00:43:49,950 --> 00:43:52,850 це почасти схожі тут. 573 00:43:52,850 --> 00:43:56,070 Тут у нас є форма входу - you'd, ймовірно, цитата формі - 574 00:43:56,070 --> 00:44:00,290 але потім, як тільки користувач фактично стверджується, що інформація, 575 00:44:00,290 --> 00:44:04,810 то ви хочете, контролер переходить в інший шаблон 576 00:44:04,810 --> 00:44:07,430 , Який покаже їм, що фактична інформація. 577 00:44:07,430 --> 00:44:11,250 Отже права тут, то ви, мабуть, - 578 00:44:11,250 --> 00:44:18,830 приблизно в кінці вашого стану тут - якщо метод рівних пост - 579 00:44:18,830 --> 00:44:22,520 то ви, мабуть, хочете, щоб зробити іншу сторінку - шоу цитата - 580 00:44:22,520 --> 00:44:28,040 які посилає вам на цій сторінці - show_quote.php-- 581 00:44:28,040 --> 00:44:34,120 , А потім в тому, що файл буде посилатися на ці значення. 582 00:44:34,120 --> 00:44:36,480 Чи має це сенс? 583 00:44:36,480 --> 00:44:40,390 >> У нас є контролер, який в основному має справу з 2-х випадках - 584 00:44:40,390 --> 00:44:42,710 Чи ви ввели у форму чи ні. 585 00:44:42,710 --> 00:44:43,950 Якщо ви ще не ввійшли в форму, 586 00:44:43,950 --> 00:44:47,300 Потім він буде перенаправляти вас до цієї форми, яка потім повернути вас назад на цю сторінку. 587 00:44:47,300 --> 00:44:54,020 Потім, коли у вас є інформація в контролер, що тіло буде мати справу з цим 588 00:44:54,020 --> 00:44:59,750 інформацію по мірі необхідності - або дивлячись значення для акцій, 589 00:44:59,750 --> 00:45:04,150 , А потім, як тільки це подивився ці цінності і має їх у відформатованої масиву, 590 00:45:04,150 --> 00:45:08,180 Потім можна передати цей масив в шаблон сторінки 591 00:45:08,180 --> 00:45:10,330  , Яка займається виведенням цієї інформації. 592 00:45:10,330 --> 00:45:14,680 >> Знову ж таки, оскільки це веб, це буде весело. 593 00:45:14,680 --> 00:45:20,310 Ми поза C таким чином, ми не обмежені ASCII і вихідний роз'єм, 594 00:45:20,310 --> 00:45:21,800 так весело з цим. 595 00:45:21,800 --> 00:45:24,920 Ви можете зробити це як візуальний, як ви хочете. 596 00:45:24,920 --> 00:45:31,860 Ви можете дозволити користувачам вводити мільйони доларів в той час, 597 00:45:31,860 --> 00:45:34,730 або обмежити їх і бути дійсно означає і дозволить їм лише ввести 1 пенні в той час, 598 00:45:34,730 --> 00:45:36,330 або щось на зразок цього. 599 00:45:36,330 --> 00:45:38,550 Виразно бути впевнені, щоб весело провести час з цим. 600 00:45:38,550 --> 00:45:47,030 >> PHP код трохи простіше в тому, що це трохи легше, щоб намітити ваші псевдокод 601 00:45:47,030 --> 00:45:50,070 у фактичній реалізації. 602 00:45:50,070 --> 00:45:56,320 Так що, безумовно, весело провести час з цим, тому що це насправді наш останній шматок у CS50. 603 00:45:56,320 --> 00:46:01,150 При тому, що це був Покрокове керівництво 7. 604 00:46:01,150 --> 00:46:04,640 Як тільки ви закінчили перегляд керівництва і закінчили PSET, 605 00:46:04,640 --> 00:46:09,590 Потім вони були також psets, і зараз ми знаходимося на кінцевий продукт - 606 00:46:09,590 --> 00:46:12,330 після того, як ми пройдемо тест 1. 607 00:46:12,330 --> 00:46:16,200 Тоді, сподіваюся, ви можете використовувати інструменти, які ви дізналися з psets - 608 00:46:16,200 --> 00:46:21,980 не тільки синтаксис, але більш абстрактного поняття, як прийняти певне - 609 00:46:21,980 --> 00:46:24,950 подобається, я хочу зробити це, а потім насправді здійснення цього. 610 00:46:24,950 --> 00:46:28,740 Навчання, як боротися через синтаксис і розподілу коду. 611 00:46:28,740 --> 00:46:33,020 Читання коду інших людей, а потім інтерпретації, що використання вже існуючих функцій. 612 00:46:33,020 --> 00:46:37,360 >> Так що, удачі в останньому PSET. 613 00:46:37,360 --> 00:46:39,930 Це було приємно вести покрокові керівництва. 614 00:46:39,930 --> 00:46:40,940 Я сподіваюся, що вони були корисними для вас. 615 00:46:40,940 --> 00:46:46,560 Це були проходження, і дякує дуже багато. 616 00:46:52,580 --> 00:46:56,200 [CS50.TV]