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 что собирается вернуться ложным - как логическое значение ЛОЖЬ. 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]