1 00:00:00,000 --> 00:00:03,000 [Powered by Google Translate] [Problema Tutorial 7 set] 2 00:00:03,000 --> 00:00:04,400 [Zamyla Chan] [Harvard University] 3 00:00:04,400 --> 00:00:07,640 [Aquesta és CS50] [CS50.TV] 4 00:00:07,640 --> 00:00:12,090 >> Hola a tots i benvinguts a Tutorial 7, CS50 Finances. 5 00:00:12,090 --> 00:00:15,090 Ara estem oficialment acabat amb tots els conjunts de processadors al CS50, 6 00:00:15,090 --> 00:00:19,380 i ens acaba d'anar amb un més que serà una aplicació divertida 7 00:00:19,380 --> 00:00:23,770 d'un lloc web on els usuaris poden iniciar sessió en CS50 Finances 8 00:00:23,770 --> 00:00:25,830 i comprar i vendre accions. 9 00:00:25,830 --> 00:00:32,280 >> Avui en dia, tindrem algunes eines a la nostra disposició. 10 00:00:32,280 --> 00:00:34,320 Estarem parlant de permisos. 11 00:00:34,320 --> 00:00:36,380 Sempre que tingui una carpeta web, 12 00:00:36,380 --> 00:00:40,800 vostè va a voler que els usuaris puguin executar certs arxius 13 00:00:40,800 --> 00:00:42,500 però també acaba de llegir els altres, 14 00:00:42,500 --> 00:00:45,150 així que anem a veure en els permisos i com es poden establir aquests. 15 00:00:45,150 --> 00:00:49,630 A continuació, anem a mirar en PHP, HTML i el codi SQL. 16 00:00:49,630 --> 00:00:51,990 >> Primer, els permisos. 17 00:00:51,990 --> 00:00:56,060 Quan ets al terminal en un directori determinat, 18 00:00:56,060 --> 00:01:00,430 llavors el que vull fer és que vol executar la comanda chmod. 19 00:01:00,430 --> 00:01:03,750 Això és seguit per lletres o números 20 00:01:03,750 --> 00:01:08,100 que correspon al que bàsicament vol que el món vegi, 21 00:01:08,100 --> 00:01:09,830 et a veure, etc 22 00:01:09,830 --> 00:01:13,350 Per exemple, cada vegada que tingui una carpeta, 23 00:01:13,350 --> 00:01:15,560 llavors vostè vol que la carpeta sigui executable per tothom que la veu, 24 00:01:15,560 --> 00:01:19,500 així que el que faria és que es podria executar la comanda chmod a + x 25 00:01:19,500 --> 00:01:21,050 i després el nom de la carpeta. 26 00:01:21,050 --> 00:01:28,110 Quan vostè té un arxiu, com arxius CSS o arxius d'imatge - 27 00:01:28,110 --> 00:01:33,060 com mapes de bits, JPEG i coses per l'estil, o qualsevol altre codi JavaScript - 28 00:01:33,060 --> 00:01:36,440 desitja que pugui ser llegit per tots, 29 00:01:36,440 --> 00:01:39,880 Llavors el que fas és que es podria utilitzar el comodí - 30 00:01:39,880 --> 00:01:41,650 que és un asterisc - 31 00:01:41,650 --> 00:01:46,190 per indicar bàsicament a la carpeta CSS - tot en aquesta carpeta - 32 00:01:46,190 --> 00:01:48,740  Vaig a dir que això serà llegit per tot el món. 33 00:01:48,740 --> 00:01:54,220 Amb els permisos, quan fem servir les lletres, 34 00:01:54,220 --> 00:01:57,610 també podem utilitzar nombres. 35 00:01:57,610 --> 00:02:00,900 Així, es veu que en última instància, quan es vol que alguna cosa sigui executable - 36 00:02:00,900 --> 00:02:02,810 que està representat pel número 1 - 37 00:02:02,810 --> 00:02:08,340 una cosa que sigui llegible és el número 4 i, a continuació - 38 00:02:08,340 --> 00:02:10,590 escriptura és el número 2 - 39 00:02:10,590 --> 00:02:13,670 i tan essencialment quan es desitja una combinació d'ells, després s'agreguen. 40 00:02:13,670 --> 00:02:15,860 Si vols alguna cosa que llegir, escriure i executable, 41 00:02:15,860 --> 00:02:21,970 llavors sumaria 4, 2, i 1 i que li donaria 7, 42 00:02:21,970 --> 00:02:26,230 llavors cada vegada que tingui una carpeta que desitja que sigui executable per tots - 43 00:02:26,230 --> 00:02:31,380 així com de lectura i escriptura - llavors vostè fa que el 7, 1, 1. 44 00:02:31,380 --> 00:02:38,140 Aquest seria el 7 per tu, llavors 1 per les altres persones. 45 00:02:38,140 --> 00:02:42,870 Quan es té l'especificació, que en realitat va a especificar quines carpetes i arxius que 46 00:02:42,870 --> 00:02:45,040 Has de ser chmod-ed específicament. 47 00:02:45,040 --> 00:02:47,920 Per exemple, quan vostè té carpetes - aquests són 7-1-1 - 48 00:02:47,920 --> 00:02:52,690 quan tens imatges o HTML, CSS, JavaScript, 49 00:02:52,690 --> 00:02:55,870 llavors aquests seran 6, 0 4, - o 6, 4, 4 - 50 00:02:55,870 --> 00:03:00,030 i després els arxius PHP serà de 6, 0, 0. 51 00:03:00,030 --> 00:03:04,940 La idea darrere d'això és que els usuaris no realment ha de veure al seu codi PHP, 52 00:03:04,940 --> 00:03:08,370 però només ser capaç de veure la sortida. 53 00:03:08,370 --> 00:03:11,030 >> Great! Entrant en PHP. 54 00:03:11,030 --> 00:03:18,850 Simplement, cada vegada que desitgi un arxiu PHP, el sufix de fitxer és. Php. 55 00:03:18,850 --> 00:03:22,000 També pot barrejar HTML amb codi PHP. 56 00:03:22,000 --> 00:03:24,880 Si vostè té un arxiu HTML, per exemple, 57 00:03:24,880 --> 00:03:32,520 llavors vostè pot presentar juntament amb l'angle esquerre, signe d'interrogació, php - 58 00:03:32,520 --> 00:03:39,320 posar el codi php - i tancament que amb un altre signe d'interrogació i un angle recte. 59 00:03:39,320 --> 00:03:45,020 Variables en PHP són molt més fàcils de tractar que les variables en C. 60 00:03:45,020 --> 00:03:50,310 Qualsevol variable només s'inicia amb un signe de dòlar en front d'ella, i estan escrits amb veu feble. 61 00:03:50,310 --> 00:03:53,470 Això vol dir que vostè no ha de preocupar sobre la configuració d'alguna cosa 62 00:03:53,470 --> 00:03:55,020 igual a una cadena o un enter. 63 00:03:55,020 --> 00:03:57,710 Vostè pot simplement dir que aquest és el meu nom de la variable 64 00:03:57,710 --> 00:04:00,390 i llavors aquest és el seu valor, 65 00:04:00,390 --> 00:04:03,280 així que serà més fàcil de tractar allà. 66 00:04:03,280 --> 00:04:08,220 >> Una altra cosa és que PHP permet utilitzar matrius associatives. 67 00:04:08,220 --> 00:04:11,330 Vostè pot simplement definir un acord com ho faria en C 68 00:04:11,330 --> 00:04:14,900 dient, signe de dòlar, el nom de la matriu-iguals, 69 00:04:14,900 --> 00:04:22,600 i, a continuació entre claudàtors tenen bàsicament només la llista dels valors de tots els elements de la matriu. 70 00:04:22,600 --> 00:04:27,160 Però, pel que PHP també es pot fer és especificar bàsicament - 71 00:04:27,160 --> 00:04:31,050 és una mena de funció hash. 72 00:04:31,050 --> 00:04:34,410 Es pot especificar l'índex - el que anomenarem - 73 00:04:34,410 --> 00:04:37,030 i llavors que correspon a un valor. 74 00:04:37,030 --> 00:04:42,880 Si realment passa en a = 1, b = 2, c = 3, 75 00:04:42,880 --> 00:04:50,820 llavors la seva matriu en un índex li posaries a 1. 76 00:04:50,820 --> 00:04:56,600 Aquest conjunt de processadors d'entrar en calor amb una mica de PHP en una secció de preguntes, 77 00:04:56,600 --> 00:04:59,240 i després submergir-se en CS50 Finances. 78 00:04:59,240 --> 00:05:02,650 >> Tenim un parell de - tenim part de la funcionalitat, en el fons, 79 00:05:02,650 --> 00:05:05,130 d'implementar en aquest lloc web. 80 00:05:05,130 --> 00:05:10,440 Volem que els usuaris puguin registrar a la nostra pàgina web amb un nom d'usuari i una contrasenya. 81 00:05:10,440 --> 00:05:13,670 Volem que els permeti buscar una cita, 82 00:05:13,670 --> 00:05:19,330 i llavors podríem imprimir el nom d'aquesta cita, així com el preu que avui està. 83 00:05:19,330 --> 00:05:26,830 Volem permetre'ls veure un portafoli de totes les accions que han comprat fins ara. 84 00:05:26,830 --> 00:05:34,240 També volem que els permeti comprar accions i vendre-les. 85 00:05:34,240 --> 00:05:37,540 I, finalment, volem que puguin veure la història 86 00:05:37,540 --> 00:05:39,490 de totes les transaccions que s'han realitzat. 87 00:05:39,490 --> 00:05:41,540 Llavors, finalment, després d'haver implementat tot això, 88 00:05:41,540 --> 00:05:45,110 llavors vostè és lliure d'fer la funció extra. 89 00:05:45,110 --> 00:05:46,610 Anem a entrar en això. 90 00:05:46,610 --> 00:05:51,330 Aquests poden ser o bé permetent als usuaris obtenir diners extra mitjançant el dipòsit de diners extra, 91 00:05:51,330 --> 00:05:54,550 o pot permetre que canviïn la seva contrasenya, o alguna cosa així, 92 00:05:54,550 --> 00:06:00,590 enviar per correu electrònic un rebut en comprar o vendre una acció. 93 00:06:00,590 --> 00:06:05,370 Hi ha una llista limitada de característiques que vostè podria aplicar, 94 00:06:05,370 --> 00:06:08,340 així que és l'últim allà. 95 00:06:08,340 --> 00:06:13,430 >> Com es tracta d'un lloc web, vostès també tenen molta llibertat per personalitzar. 96 00:06:13,430 --> 00:06:20,960 Nosaltres oferim una mica de codi CSS, però definitivament ets lliure de modificar, 97 00:06:20,960 --> 00:06:26,680 fer que es vegi més bonic, però per sota és una funcionalitat bàsica 98 00:06:26,680 --> 00:06:30,310 de manera que sempre es refereixen a l'especificació del que realment es necessita per incloure-hi. 99 00:06:30,310 --> 00:06:39,940 Arran de l'especulació, utilitzarem l'aparell com també un servidor. 100 00:06:39,940 --> 00:06:43,910 Serà amfitrions de la nostra pàgina web per a nosaltres, del seu servidor local. 101 00:06:43,910 --> 00:06:49,750 Si vostè segueix aquestes instruccions i descomprimir el codi pset 7 Distribució 102 00:06:49,750 --> 00:06:53,500 en la seva carpeta virtual host host / local, 103 00:06:53,500 --> 00:07:02,470  a continuació, pots visitar http://localhost/ a Google Chrome en l'aparell, 104 00:07:02,470 --> 00:07:09,120 i després aconseguiria el codi en què has escrit pset 7. 105 00:07:09,120 --> 00:07:14,490 >> Pset 7 ve amb un munt de codi de distribució, 106 00:07:14,490 --> 00:07:18,330 i és d'esperar We'veu - a través de tots els conjunts de processadors abans d'això - 107 00:07:18,330 --> 00:07:21,700 ens va acostumar a la lectura per mitjà del codi de distribució, 108 00:07:21,700 --> 00:07:25,650 entendre quines funcions ja estan previstes, i com els podem utilitzar 109 00:07:25,650 --> 00:07:29,470 aquestes i les altres funcions que anem a implementar. 110 00:07:29,470 --> 00:07:31,570 En aquest cas, tenim 3 carpetes. 111 00:07:31,570 --> 00:07:36,350 Tenim una carpeta HTML, inclou una carpeta, i una carpeta de plantilles. 112 00:07:36,350 --> 00:07:40,630 Què farem amb aquest conjunt de processadors és una espècie de separar el pensament - 113 00:07:40,630 --> 00:07:45,580 el pensament de programació - que el codi PHP amb l'aspecte visual actual. 114 00:07:45,580 --> 00:07:52,690 Tindrem un arxiu PHP que fa tot el pensament, es llegeix a la base de dades, 115 00:07:52,690 --> 00:07:55,620 imprimeix les coses, té les sentències if - coses com aquestes - 116 00:07:55,620 --> 00:08:02,140 i després que passarà les dades al nostre fitxer de plantilla - o arxiu template.php. 117 00:08:02,140 --> 00:08:05,710 El que farà és llegir les dades i després ho imprimirà. 118 00:08:05,710 --> 00:08:09,550 >> Podem tractar plantilles com "ximple", ja que en realitat no els volen 119 00:08:09,550 --> 00:08:12,370 a estar fent un munt de treball en el càlcul de les coses. 120 00:08:12,370 --> 00:08:16,330 Volem que els nostres controladors per fer-ho. 121 00:08:16,330 --> 00:08:21,610 Una mica sobre això - anem a fer una ullada a alguns dels codis de distribució. 122 00:08:21,610 --> 00:08:28,250 Aquí tenim el nostre arxiu index.html, i és bastant buida. 123 00:08:28,250 --> 00:08:34,429 Bàsicament el que fa - que diu, bé, vaig a necessitar l'arxiu configuration.php. 124 00:08:34,429 --> 00:08:40,120 No veiem que allà mateix, però és bàsicament una crida a l'arxiu configuration.php, 125 00:08:40,120 --> 00:08:42,240 i executar aquest. 126 00:08:42,240 --> 00:08:45,130 Després que ho fa, farà que la cartera. 127 00:08:45,130 --> 00:08:49,310 El processament és una funció, de manera que cada vegada que estem en un controlador, 128 00:08:49,310 --> 00:08:56,490 anomenarem render, donarem a l'arxiu i després les dades que estem passant a, 129 00:08:56,490 --> 00:09:04,570 pel que dirà portfolio.php--tipus de passada en aquestes dades de manera que la cartera pot lluitar amb això. 130 00:09:04,570 --> 00:09:10,540 >> I ara, aquí, tenim la nostra manera login.php. 131 00:09:10,540 --> 00:09:17,540  Aquest és el controlador que bàsicament s'encarrega de la tala polz 132 00:09:17,540 --> 00:09:29,090 A continuació, comprova si el formulari es va enviar a aquesta imatge i s'ocupa de la validació de la presentació. 133 00:09:29,090 --> 00:09:31,990 Veurem en aquesta funció disculpes. 134 00:09:31,990 --> 00:09:35,100 Quan volem imprimir un missatge d'error, 135 00:09:35,100 --> 00:09:39,550 fem servir disculpes i que es redirigeix ​​l'usuari a una pàgina específica 136 00:09:39,550 --> 00:09:42,530 que s'imprimirà el missatge d'error específic que li indiquem. 137 00:09:42,530 --> 00:09:47,860 Continuant, es consulta la base de dades - ens tornarem a aconseguir més d'això més tard. 138 00:09:47,860 --> 00:09:54,180 Llavors vostè veu que aquí si un formulari no es va presentar, llavors es torna un formulari. 139 00:09:54,180 --> 00:10:01,360 Això vol dir que va a login_form.php, així que donem una ullada a això. 140 00:10:01,360 --> 00:10:09,400 >> Login.php és en realitat on veiem el tracte HTML amb l'aspecte visual actual. 141 00:10:09,400 --> 00:10:15,130 Aquí tenim una etiqueta d'entrada del nom d'usuari, una entrada per a la contrasenya, 142 00:10:15,130 --> 00:10:16,630 així com un botó d'enviament. 143 00:10:16,630 --> 00:10:22,660 Això és en realitat on l'aspecte visual i la forma HTML se celebrarà. 144 00:10:22,660 --> 00:10:27,550 En aquest cas, es diu que serà presentada per un cert mètode, anomenat post. 145 00:10:27,550 --> 00:10:30,190 Entrem a les diferències entre els mètodes - 146 00:10:30,190 --> 00:10:33,240 davant publicar aconseguir, també hi ha alguna cosa que es diu put - 147 00:10:33,240 --> 00:10:36,160 entrarem en aquests mètodes tard, però per l'interès d'aquest conjunt de processadors, 148 00:10:36,160 --> 00:10:37,810 El recomano animem a utilitzar correus. 149 00:10:37,810 --> 00:10:42,210 >> Sabem que, bàsicament, un cop aquest formulari es presenta - 150 00:10:42,210 --> 00:10:44,650 de login_form.php-- 151 00:10:44,650 --> 00:10:50,850 després anirà a l'acció - login.php-- 152 00:10:50,850 --> 00:10:56,070 bàsicament en passar tots els paràmetres de les formes en login.php. 153 00:10:56,070 --> 00:11:04,900 Els resultats d'aquesta manera estan continguts dins d'aquesta matriu associativa post. 154 00:11:04,900 --> 00:11:11,710 Els índexs dels diferents elements de la matriu de missatge 155 00:11:11,710 --> 00:11:15,290 són exactament el que especifiqui aquí. 156 00:11:15,290 --> 00:11:19,240 Vostè diu que el nom d'aquesta entrada és nom d'usuari. El nom d'aquest és password. 157 00:11:19,240 --> 00:11:26,840 De la mateixa manera, veurà el nom d'usuari com l'índex de la matriu associativa allà. 158 00:11:26,840 --> 00:11:35,110 Si ens anem a la carpeta inclou, tenim aquest fitxer funcions que serà molt útil. 159 00:11:35,110 --> 00:11:37,570 >> Totes aquestes funcions es duen a terme per a vostè. 160 00:11:37,570 --> 00:11:41,870 No és necessari el compliment específic de qualsevol d'aquests vostè mateix, 161 00:11:41,870 --> 00:11:43,140 però van a bastant útil. 162 00:11:43,140 --> 00:11:49,450 Hem disculpes, que com he dit abans, bàsicament, s'imprimirà un missatge d'error 163 00:11:49,450 --> 00:11:52,920 per a vostè en una pàgina específica - apology.php. 164 00:11:52,920 --> 00:11:59,890 Llavors tenim abocador, pel que si vostè acaba de cridar dump i després passar a la variable, 165 00:11:59,890 --> 00:12:04,930 a continuació, el portarà a una pàgina que mostrarà aquesta variable per a vostè. 166 00:12:04,930 --> 00:12:09,950 Després hem de tancament de sessió, que bàsicament va a acabar la sessió d'un usuari determinat de. 167 00:12:09,950 --> 00:12:12,240 Lookup serà útil. 168 00:12:12,240 --> 00:12:15,870 Ja que estem tractant amb cites i accions, serem capaços - 169 00:12:15,870 --> 00:12:17,650 i és essencialment temps real. 170 00:12:17,650 --> 00:12:21,380 Hem de saber quins són aquests valors borsaris són, 171 00:12:21,380 --> 00:12:28,210 així que tenim la funció de recerca que tracta de documentació de Yahoo de les existències. 172 00:12:28,210 --> 00:12:37,700 Una vegada de buscar un cert símbol d'una acció, es tornarà a vosaltres el símbol de cotització 173 00:12:37,700 --> 00:12:41,480 així com el nom i el preu actual d'aquesta població. 174 00:12:41,480 --> 00:12:44,330 Aquesta és la funció de cerca. 175 00:12:44,330 --> 00:12:48,350 >> Llavors estem tractant amb mySQL, 176 00:12:48,350 --> 00:12:53,970 així que anem a voler executar algunes consultes a la base de dades SQL. 177 00:12:53,970 --> 00:12:58,890 Hem de tractar de consultes - a algun tipus de resum de compte d'això. 178 00:12:58,890 --> 00:13:03,200 Estarem passant en tota la cadena de la nostra consulta SQL - 179 00:13:03,200 --> 00:13:05,360 i totes les variables que van en ella - 180 00:13:05,360 --> 00:13:09,480 i el que fa en realitat és executar això per a nosaltres. 181 00:13:09,480 --> 00:13:15,070 En lloc d'haver de escriure tot això cada vegada que desitja consultar - 182 00:13:15,070 --> 00:13:21,740 en obtenir tots els resultats d'aquesta consulta - 183 00:13:21,740 --> 00:13:24,740 llavors vostè pot cridar a la funció de consulta, i tornarà a vostè - 184 00:13:24,740 --> 00:13:28,750 depenent del que vostè està utilitzant per a la consulta - 185 00:13:28,750 --> 00:13:33,000 probablement una fila de tots els resultats que coincideixen amb la consulta o similar. 186 00:13:33,000 --> 00:13:34,690 Més sobre això més endavant però. 187 00:13:34,690 --> 00:13:41,200 >> Finalment, hem de reorientar la qual, com el seu nom indica, redirigeix ​​a una pàgina diferent. 188 00:13:41,200 --> 00:13:46,280 I llavors hem de fer, que estarem trucant un parell de vegades. 189 00:13:46,280 --> 00:13:51,010 Quan estàs en un controlador, es diu a fer a la pàgina de la plantilla 190 00:13:51,010 --> 00:13:55,390 i després passar als valors que la plantilla i després es tracten. 191 00:13:55,390 --> 00:13:59,540 Aquests valors són probablement estarà tractant amb el tipus de sortida que voleu 192 00:13:59,540 --> 00:14:01,050 que es mostrarà a la seva pàgina de la plantilla. 193 00:14:01,050 --> 00:14:09,370 Bé. Aquestes són les funcions, i hi ha molt més en aquest codi distribució. 194 00:14:09,370 --> 00:14:12,930 Us animo a passar per això i explorar pel seu compte. 195 00:14:12,930 --> 00:14:17,050 A més, l'especificació probablement explica el procés d'alguns altres elements del codi de distribució. 196 00:14:17,050 --> 00:14:27,360 Heus aquí un resum de les funcions que es troben en functions.php. 197 00:14:27,360 --> 00:14:31,710 >> Bé. La primera tasca és permetre als usuaris registrar-se al lloc web. 198 00:14:31,710 --> 00:14:34,860 En aquests moments, hi ha un formulari d'accés al lloc web, 199 00:14:34,860 --> 00:14:40,080 i està proveït d'uns pocs usuaris amb contrasenyes. 200 00:14:40,080 --> 00:14:42,130 Podeu utilitzar els noms d'usuari i dins, 201 00:14:42,130 --> 00:14:45,140 però vol permetre a la gent fer els seus propis noms d'usuari 202 00:14:45,140 --> 00:14:47,390 i se sumen a la pàgina web. 203 00:14:47,390 --> 00:14:53,070 La disposició per al registre és bastant similar a la forma d'accés, 204 00:14:53,070 --> 00:14:56,340 excepte el nom d'usuari no és preexistent, 205 00:14:56,340 --> 00:14:59,430 i l'usuari també ha de proporcionar una nova contrasenya, 206 00:14:59,430 --> 00:15:02,440 i després en general tenim una confirmació de la contrasenya. 207 00:15:02,440 --> 00:15:06,580 Quan l'usuari introdueix tots els d'aquesta informació, 208 00:15:06,580 --> 00:15:10,620 volem afegir a la nostra base de dades d'usuaris. 209 00:15:10,620 --> 00:15:12,970 Anem a tenir una base de dades - una base de dades SQL - 210 00:15:12,970 --> 00:15:14,470 que farem referència. 211 00:15:14,470 --> 00:15:18,140 En aquesta base de dades, tindrem una taula amb tots els usuaris 212 00:15:18,140 --> 00:15:23,850 que conté el seu nom d'usuari, contrasenya, i també la quantitat de diners que tenen. 213 00:15:23,850 --> 00:15:28,480 >> En el registre, volem permetre que introdueixi la informació. 214 00:15:28,480 --> 00:15:29,740 Volem mostrar que la forma. 215 00:15:29,740 --> 00:15:32,210 Volem assegurar-nos que la contrasenya - 216 00:15:32,210 --> 00:15:37,490 que van entrar en un, i després també que les contrasenyes coincideixen quan l'ingressi dues vegades. 217 00:15:37,490 --> 00:15:42,240 Després de tot el que es fa - si s'assumeix que els errors són revisats - 218 00:15:42,240 --> 00:15:45,120 després volem afegir els usuaris a la nostra base de dades. 219 00:15:45,120 --> 00:15:49,630 Finalment, un cop que s'hagi registrat, és molt convenient si vostè no ha de connectar-se de nou 220 00:15:49,630 --> 00:15:51,000 una vegada que t'hagis registrat, 221 00:15:51,000 --> 00:15:54,000 així que anem a iniciar sessió al lloc web si han registre correcte. 222 00:15:54,000 --> 00:16:00,360 >> La primera tasca és mostrar la forma, i això és en realitat serà - 223 00:16:00,360 --> 00:16:04,920 aquest procés de registre sencer serà modelat molt de prop després d'anunciar-se 224 00:16:04,920 --> 00:16:10,510 però en lloc de login.php és possible que tingui register.php. 225 00:16:10,510 --> 00:16:14,300 En lloc de login_form.php--que és la plantilla - 226 00:16:14,300 --> 00:16:16,030 hauràs formulari de registre. 227 00:16:16,030 --> 00:16:19,680 Vostè voldrà afegir un camp més - un camp de confirmació de contrasenya - 228 00:16:19,680 --> 00:16:23,450 en lloc de només el nom d'usuari i la contrasenya d'un un. 229 00:16:23,450 --> 00:16:28,120 A continuació, volem comprovar si les contrasenyes coincideixen o estan en blanc. 230 00:16:28,120 --> 00:16:38,560 Tenim el controlador - register.php--que es farà càrrec de fer aquestes comprovacions. 231 00:16:38,560 --> 00:16:41,690 Quan s'envia un formulari a través del mètode post, 232 00:16:41,690 --> 00:16:47,050 després, d'aquestes variables estan contingudes dins de la matriu d'entrada. 233 00:16:47,050 --> 00:16:52,280 Vostè vol assegurar-se que el valor de la matriu lloc en índex de contrasenya 234 00:16:52,280 --> 00:16:58,080 coincideix amb l'element de confirmació. 235 00:16:58,080 --> 00:16:59,410 Vostè vol assegurar-se que no estan en blanc, 236 00:16:59,410 --> 00:17:01,650 i vostè voldrà assegurar-se que són el mateix. 237 00:17:01,650 --> 00:17:05,960 >> Una cosa convenient sobre PHP és que no és necessari utilitzar cadenes comparar més. 238 00:17:05,960 --> 00:17:08,410 Podem utilitzar l'operador igual a igual- 239 00:17:08,410 --> 00:17:11,470  per comprovar si les cadenes són iguals una a una altra. 240 00:17:11,470 --> 00:17:14,960 Per al tractament d'errors, et vull demanar disculpes. 241 00:17:14,960 --> 00:17:17,150 Per disculpar, només ha de trucar a la funció 242 00:17:17,150 --> 00:17:21,910  a continuació, especifiqueu un tipus de missatge que voleu enviar el resultat. 243 00:17:21,910 --> 00:17:24,630 A continuació, voleu afegir l'usuari a la base de dades. 244 00:17:24,630 --> 00:17:30,880 Fins ara, tot el que he estat fent és negociant localment amb els resultats de la forma. 245 00:17:30,880 --> 00:17:33,940 Ara, en realitat vol afegir-los a la nostra base de dades. 246 00:17:33,940 --> 00:17:38,890 Per això, el primer que vol assegurar-se que el nom d'usuari no està en blanc. 247 00:17:38,890 --> 00:17:44,550 Entendre que en un lloc web, vostè no pot tenir diversos usuaris amb el mateix nom d'usuari, 248 00:17:44,550 --> 00:17:50,010 pel que vostè vol assegurar-se que en inserir alguna cosa a la base de dades - 249 00:17:50,010 --> 00:17:56,650 inserir un nou usuari - llavors vostè no rep una col · lisió entre un nom d'usuari preexistent 250 00:17:56,650 --> 00:17:59,150 i el nom d'usuari que l'usuari està tractant d'enviar. 251 00:17:59,150 --> 00:18:02,250 Per això, una vegada que s'executa una consulta - 252 00:18:02,250 --> 00:18:08,760 la inserció d'un determinat usuari amb la seva contrasenya i una quantitat inicial de diners en efectiu - 253 00:18:08,760 --> 00:18:15,140 una vegada que es cridi a aquesta consulta, a continuació, en realitat MySQL retornarà false si no. 254 00:18:15,140 --> 00:18:21,050 >> L'estructura dels usuaris és tal que el nom d'usuari és un valor únic, 255 00:18:21,050 --> 00:18:22,540 pel que no pot tenir més d'un. 256 00:18:22,540 --> 00:18:30,080 En tractar d'inserir una nova fila amb un nom que ja existeix, 257 00:18:30,080 --> 00:18:34,470 que tornarà fals - com un fals booleà valor. 258 00:18:34,470 --> 00:18:45,320 Una cosa difícil aquí és que vostè voldrà comprovar si el resultat és el resultat de la consulta. 259 00:18:45,320 --> 00:18:52,320 Si falla, llavors vostè voldrà consultar amb l'operador de triple iguals. 260 00:18:52,320 --> 00:18:55,420 Això és en realitat va a comprovar si es produeix una fallada o no, 261 00:18:55,420 --> 00:19:02,760 mentre que, en tan sols un senzill iguals-iguals, seria cert si la fila era buida. 262 00:19:02,760 --> 00:19:06,000 El resultat d'una fallada si hi ha una col · lisió entre noms d'usuaris 263 00:19:06,000 --> 00:19:10,350 és el valor fals real. 264 00:19:10,350 --> 00:19:15,230 >> Així és com es s'inseriria en una base de dades. 265 00:19:15,230 --> 00:19:19,220 Aquesta és la consulta que s'executa estrictament de SQL. 266 00:19:19,220 --> 00:19:25,750 Una cosa és que vostè pot anar a la pàgina web que administra la base de dades SQL 267 00:19:25,750 --> 00:19:31,070 i jugar allà introduint manualment valors o files. 268 00:19:31,070 --> 00:19:34,540 Es donarà sortida al que la sortida és SQL. 269 00:19:34,540 --> 00:19:38,870 També pot executar ordres SQL a la base de dades 270 00:19:38,870 --> 00:19:42,200  i després veure el que la sintaxi sigui, 271 00:19:42,200 --> 00:19:46,790 i després traduir això en la funció de consulta que tenim en pset 7, 272 00:19:46,790 --> 00:19:51,120 que serà molt similar a les consultes que s'executen realment. 273 00:19:51,120 --> 00:19:54,570 >> Si volgués inserir una nova fila a la meva taula d'usuaris, 274 00:19:54,570 --> 00:20:01,240 llavors m'agradaria especificar inserció en els usuaris, que és el nom de la meva taula. 275 00:20:01,240 --> 00:20:06,870 Llavors vaig tenir desig d'especificar els noms de les columnes. 276 00:20:06,870 --> 00:20:13,230 Llavors em proporcionaria els valors juntament amb la contrasenya. 277 00:20:13,230 --> 00:20:17,080 Les contrasenyes en la nostra taula d'usuaris no s'emmagatzemen com acaba la corda. 278 00:20:17,080 --> 00:20:19,440 S'emmagatzemen com la versió xifrada, 279 00:20:19,440 --> 00:20:24,560 pel que vostè vol executar la cripta funció de la contrasenya actual, 280 00:20:24,560 --> 00:20:29,680 i que li donarà el tipus correcte d'emmagatzematge de la matriu dels usuaris. 281 00:20:29,680 --> 00:20:34,960 L'execució d'aquest s'inserirà una nova fila a la taula d'usuaris. 282 00:20:34,960 --> 00:20:39,020 >> Per fer front a la funció de consulta, 283 00:20:39,020 --> 00:20:43,100 abans en C que utilitza el signe de percentatge com un marcador de posició. 284 00:20:43,100 --> 00:20:47,670 De la mateixa manera, el concepte mateix d'un marcador de posició s'aplica aquí. 285 00:20:47,670 --> 00:20:50,720 Amb consulta, s'especifica tota la consulta, 286 00:20:50,720 --> 00:20:55,510 excepte quan es tracta amb variables com la seva aportació a la consulta, 287 00:20:55,510 --> 00:21:00,490 llavors en comptes de realment posar dins - com quan teníem instruccions printf en C. 288 00:21:00,490 --> 00:21:03,740 Ens agradaria posar la cadena i després tenir un marcador de posició d'allà, i després després de cada 289 00:21:03,740 --> 00:21:06,990 coma, especificar quina variable que teníem. 290 00:21:06,990 --> 00:21:14,480 Aquí, utilitzarem el signe signe d'interrogació com el nostre marcador de posició 291 00:21:14,480 --> 00:21:21,670 i després passar a cada variable, respectivament, en ordre, per als marcadors de posició - 292 00:21:21,670 --> 00:21:24,420 on les variables han d'anar. 293 00:21:24,420 --> 00:21:29,470 Així que aquí, el signe d'interrogació primer es substitueix pel nom d'usuari real 294 00:21:29,470 --> 00:21:33,610 llavors el signe d'interrogació segon per la contrasenya. 295 00:21:33,610 --> 00:21:37,000 >> Llavors, finalment, un cop has registrat i les ha afegit a la base de dades, 296 00:21:37,000 --> 00:21:40,510 llavors vostè desitja per iniciar sessió al lloc web. 297 00:21:40,510 --> 00:21:45,320 Tenim una mena de súper-global variable de sessió anomenada. 298 00:21:45,320 --> 00:21:48,160 Sessió pren un identificador determinat, 299 00:21:48,160 --> 00:21:51,750 i que correspon a la ID d'usuari que està actualment connectat 300 00:21:51,750 --> 00:21:56,380 El que vostè voldrà fer és trobar quin és el seu identificador d'usuari és 301 00:21:56,380 --> 00:22:03,710 i després posant-identificació de la sessió com aquest usuari id particular. 302 00:22:03,710 --> 00:22:07,560 Una funció que vostè vol utilitzar aquí és una ordre SQL 303 00:22:07,560 --> 00:22:15,150 que recuperarà el darrer número introduït id de la taula. 304 00:22:15,150 --> 00:22:24,560 Llavors dirà a files - it'll trucar al id - it'll assignar un nom al nombre que retorna. 305 00:22:24,560 --> 00:22:27,900 Es va a trucar a aquest id. 306 00:22:27,900 --> 00:22:33,370 Ara que hem acabat de registrar, i podem passar a citar. 307 00:22:33,370 --> 00:22:36,610 >> Cita permet a un usuari introduir el nom d'un determinat estoc, 308 00:22:36,610 --> 00:22:41,940 i llavors va a tornar les qualitats d'aquest estoc. 309 00:22:41,940 --> 00:22:48,410 El que vostè voldrà fer és tenir un controlador i algunes plantilles. 310 00:22:48,410 --> 00:22:53,380 En aquest cas, tindrem un controlador que es farà tot el pensament per a nosaltres. 311 00:22:53,380 --> 00:23:01,210 Va a buscar el símbol i després passar valors al templet que s'imprimirà. 312 00:23:01,210 --> 00:23:03,060 Tindrem dues plantilles aquí. 313 00:23:03,060 --> 00:23:07,260 Anem a tenir una plantilla que proporciona la manera com els usuaris van a 314 00:23:07,260 --> 00:23:09,920 introduir el nom de la població - el nom del recurs compartit. 315 00:23:09,920 --> 00:23:16,030 Llavors també voldrem altra plantilla que mostra aquests valors. 316 00:23:16,030 --> 00:23:27,450 Vostè pot mirar inici de sessió per un exemple de com es té un formulari que accepta l'entrada, 317 00:23:27,450 --> 00:23:30,060 excepte aquí, només volem un camp. 318 00:23:30,060 --> 00:23:31,630 No volem un nom d'usuari i un camp de contrasenya. 319 00:23:31,630 --> 00:23:37,110 Només volem un camp de text que permet a l'usuari introduir el nom d'una determinada població. 320 00:23:37,110 --> 00:23:40,110 Llavors vostè vol enviar les dades - una vegada que vostè ha mirat cap amunt d'aquesta població - 321 00:23:40,110 --> 00:23:45,550 a quote_form.php. 322 00:23:45,550 --> 00:23:50,780 Lookup retorna el símbol d'una acció, el nom, i un preu. 323 00:23:50,780 --> 00:23:53,910 Els que estan continguts dins d'una matriu associativa. 324 00:23:53,910 --> 00:24:01,390 Busqueu la funció de cerca dins la functions.php per més informació 325 00:24:01,390 --> 00:24:04,010 en els tipus de devolució d'aquells. 326 00:24:04,010 --> 00:24:08,520 >> Great! Així que, finalment, haurà de mostrar la informació. 327 00:24:08,520 --> 00:24:14,110 Vostè voldrà mostrar probable - vol tenir accés a aquestes variables. 328 00:24:14,110 --> 00:24:17,610 Una vegada que tingui el preu en una variable - 329 00:24:17,610 --> 00:24:20,860 així com el nom i el símbol - 330 00:24:20,860 --> 00:24:25,550 llavors vostè voldrà mostrar a aquells a la seva pàgina de la plantilla. 331 00:24:25,550 --> 00:24:31,540 Aquesta pàgina de la plantilla que es podria anomenar show_quote.php o alguna cosa així. 332 00:24:31,540 --> 00:24:39,660 La seva pàgina quote.php faria cita xou i després passar en tots aquests valors. 333 00:24:39,660 --> 00:24:47,170 Després, a la seva pàgina php, en realitat imprimir aquests valors a l'aspecte HTML de la pàgina. 334 00:24:47,170 --> 00:24:53,800 Vostè només ha d'utilitzar la funció d'impressió i passi el preu. 335 00:24:53,800 --> 00:24:57,990 Hi ha 2 maneres - vostè pot o concatenar amb l'operador punt, 336 00:24:57,990 --> 00:25:02,230 o utilitzar un marcador de posició. 337 00:25:07,580 --> 00:25:12,750 >> Els usuaris amb el temps estaran comprant i venent accions. 338 00:25:12,750 --> 00:25:18,450 Volem permetre alguna forma de veure totes les accions que tenen actualment. 339 00:25:18,450 --> 00:25:21,350 Anem a dir-ho així la seva cartera. 340 00:25:21,350 --> 00:25:26,180 Portfolio, presumiblement per a cada usuari, conté un munt de files 341 00:25:26,180 --> 00:25:31,760 enumerant el tipus de participació que tenen i després quants dels que tenen. 342 00:25:31,760 --> 00:25:36,500 La nostra taula existent - en aquest moment tenim una taula d'usuaris a la base de dades. 343 00:25:36,500 --> 00:25:41,780 Que conté nom d'usuari d'un usuari i la seva contrasenya i la quantitat de diners que tenen. 344 00:25:41,780 --> 00:25:50,390 No hi ha manera real d'emmagatzemar la totalitat de les seves accions que inclou. 345 00:25:50,390 --> 00:25:58,010 No és com podem inserir noves columnes per a cada estoc. 346 00:25:58,010 --> 00:26:03,650 Això seria una fila molt, molt llarg perquè tenim una quantitat infinita 347 00:26:03,650 --> 00:26:06,200 dels tipus d'accions que puguin tenir. 348 00:26:06,200 --> 00:26:09,150 Així, en lloc el que farem és dins de la mateixa base de dades, 349 00:26:09,150 --> 00:26:15,000 tindrem una taula d'usuaris, però també tindrem una taula de cartera. 350 00:26:15,000 --> 00:26:18,430 La taula cartera quedarà definitivament lligat a la taula d'usuaris, 351 00:26:18,430 --> 00:26:24,600 sinó que l'estructura de la taula cartera tindrà la informació, 352 00:26:24,600 --> 00:26:27,780 quantes accions d'aquesta població té l'usuari, 353 00:26:27,780 --> 00:26:31,620 així com un número d'identificació d'usuari particular. 354 00:26:31,620 --> 00:26:34,620 Vostè té la taula d'usuaris que té una identificació així com el nom d'usuari, el hash - 355 00:26:34,620 --> 00:26:40,130 que és la contrasenya, la contrasenya xifrada - 356 00:26:40,130 --> 00:26:42,130 i llavors la quantitat d'efectiu que tenen. 357 00:26:42,130 --> 00:26:47,900 El número d'identificació es vincularien amb el número d'identificació de la cartera. 358 00:26:47,900 --> 00:26:52,490 La cartera només tindria el símbol de les accions, així com les accions - 359 00:26:52,490 --> 00:26:55,410 el nombre d'accions de què les accions que l'usuari té. 360 00:26:55,410 --> 00:26:58,520 En aquesta taula cartera hauria de bàsicament 361 00:26:58,520 --> 00:27:03,760 totes les accions que posseeix tots els usuaris del seu lloc. 362 00:27:03,760 --> 00:27:10,550 Més tard, per especificar només les accions d'un usuari determinat de la seva cartera - només - 363 00:27:10,550 --> 00:27:15,360 podrà recuperar els valors de la taula de la seva cartera de manera que 364 00:27:15,360 --> 00:27:19,930 el número d'identificació és específica d'aquest usuari. 365 00:27:26,520 --> 00:27:34,890 >> Quan es mostra la cartera, haurà de reportar cadascuna de les accions en cartera d'un usuari. 366 00:27:34,890 --> 00:27:41,670 Vostè voldrà informar el nombre d'accions i el valor actual d'aquestes accions. 367 00:27:41,670 --> 00:27:45,950 Aquest valor actual d'aquestes accions no s'emmagatzema a la taula de cartera 368 00:27:45,950 --> 00:27:51,640 perquè això serà la actualització - com a mínim - cada dia per Yahoo. 369 00:27:51,640 --> 00:27:58,550 Per obtenir aquesta informació, no es pot fer referència al fet que a partir de la consulta SQL. 370 00:27:58,550 --> 00:28:02,400 Quina funció li importa a nosaltres? Quina funció tindrà el preu? 371 00:28:02,400 --> 00:28:09,110 Això és de recerca, de manera que utilitzar lookup en un símbol particular li donarà una gran quantitat d'informació. 372 00:28:09,110 --> 00:28:13,710 Et donarà 3 peces d'informació - el nom, el símbol, així com el preu. 373 00:28:13,710 --> 00:28:17,490 Una vegada de buscar un símbol determinat, llavors vostè pot aconseguir el preu, 374 00:28:17,490 --> 00:28:20,460 i llavors vostè pot utilitzar el preu que es mostrarà en la seva cartera. 375 00:28:20,460 --> 00:28:26,190 >> La cartera també ha de mostrar l'equilibri de l'usuari efectiu actual. 376 00:28:26,190 --> 00:28:30,310 Aquest camp s'emmagatzema a la taula d'usuaris. 377 00:28:30,310 --> 00:28:33,400 Així que recordant com estem, bàsicament, haver de - 378 00:28:33,400 --> 00:28:36,850 tindrem diferents tipus d'arxius PHP. 379 00:28:36,850 --> 00:28:40,160 Tindrem un controlador que fa, bàsicament, tot el pensament per a tu. 380 00:28:40,160 --> 00:28:45,940 I després tenim una plantilla en la qual la plantilla s'ocupa de les dades de sortida. 381 00:28:45,940 --> 00:28:50,790 Vostè ha de pensar en el que les variables del controlador haurà de prendre polz 382 00:28:50,790 --> 00:29:01,630 Si estem tractant amb una cartera que emet cada nom, el símbol i el nombre d'accions, 383 00:29:01,630 --> 00:29:03,730 així com el preu actual d'una acció, 384 00:29:03,730 --> 00:29:06,950 llavors vostè haurà de trobar alguna manera de passar bàsicament en - 385 00:29:06,950 --> 00:29:12,070 pot passar una matriu de valors que responen a això. 386 00:29:15,250 --> 00:29:24,360 >> Entrarem en un exemple de com es pot recuperar tots els poblacions 387 00:29:24,360 --> 00:29:26,210 propietat d'un usuari particular. 388 00:29:26,210 --> 00:29:31,400 Això no es tracta - encara - amb el preu de les accions. 389 00:29:31,400 --> 00:29:33,520 El que això faria és executar una consulta. 390 00:29:33,520 --> 00:29:37,070 Seria obtenir el símbol, així com les accions de - 391 00:29:37,070 --> 00:29:42,770 Vaig a trucar a aquesta taula, però en aquest cas, quin seria? 392 00:29:42,770 --> 00:29:49,400 Quin és el nom de la taula que estem tractant que té un símbol i accions 393 00:29:49,400 --> 00:29:52,280 per un usuari particular? 394 00:29:52,280 --> 00:29:56,410 És dels usuaris o de cartera. 395 00:29:56,410 --> 00:29:57,820 Cartera. 396 00:29:57,820 --> 00:30:03,220 El que això faria seria cartera de consulta per als símbols i accions 397 00:30:03,220 --> 00:30:04,920 per un usuari particular. 398 00:30:04,920 --> 00:30:09,260 Aquí, dic, (SELECT, símbol accions de TBL - 399 00:30:09,260 --> 00:30:12,280 però en lloc de la taula, vostè va a reemplaçar que amb la cartera. 400 00:30:12,280 --> 00:30:15,220 'On' és bàsicament la meva condició. 401 00:30:15,220 --> 00:30:21,050 Estic dient que només vol aconseguir aquestes matrius associatives que corresponen 402 00:30:21,050 --> 00:30:23,850  a aquesta condició següent - id iguals. 403 00:30:23,850 --> 00:30:27,600  Llavors em vaig a posar un marcador de posició en l'acte ID de sessió. 404 00:30:27,600 --> 00:30:36,720 El que això faria és a dir per a cada fila en fila. 405 00:30:36,720 --> 00:30:40,940 Aquesta és una clara forma en lloc d'haver de crear un bucle for 406 00:30:40,940 --> 00:30:47,450 que es repeteix en tots els índexs, després en PHP que pot tenir una forma each loop. 407 00:30:47,450 --> 00:30:53,520 >> Si vostè té una matriu determinada, llavors es pot dir que vaig a trucar a cada element successiu - 408 00:30:53,520 --> 00:30:57,930 Vaig a trucar a cada element d'aquest nom. 409 00:30:57,930 --> 00:31:02,780 Així, per a cada un d'aquests elements, vaig a anomenar això, 410 00:31:02,780 --> 00:31:04,500 llavors puc fer això. 411 00:31:04,500 --> 00:31:10,370 En això per a cada un, té la seva matriu de files com a real, i cada fila que es va a cridar a files. 412 00:31:10,370 --> 00:31:12,420 Cada vegada que s'executa el cos, 413 00:31:12,420 --> 00:31:16,960 que pujarà i s'actualitzarà la fila al següent element en files. 414 00:31:18,900 --> 00:31:25,260 >> Ara, en termes de la compra d'accions, 415 00:31:25,260 --> 00:31:29,500 el que volem fer és aconseguir l'acció que l'usuari vol comprar 416 00:31:29,500 --> 00:31:35,300 i la quantitat d'accions que l'usuari vol comprar, i després - si es vol - 417 00:31:35,300 --> 00:31:38,120 afegir que les accions de la seva cartera. 418 00:31:38,120 --> 00:31:40,310 Òbviament, si vas a comprar alguna cosa, llavors això disminuirà 419 00:31:40,310 --> 00:31:43,520 la quantitat de diners que tenen, pel que disminuirà els seus diners. 420 00:31:43,520 --> 00:31:48,380 Tindrem tracte amb l'actualització de la cartera, així com la taula d'usuaris, 421 00:31:48,380 --> 00:31:50,300 que conté la caixa. 422 00:31:50,300 --> 00:31:54,920 Però primer, vostè necessita per obtenir l'estoc actual i la quantitat d'accions que l'usuari desitgi. 423 00:31:54,920 --> 00:32:00,010 Per això, necessitarà un formulari HTML que li demanarà el símbol de les accions 424 00:32:00,010 --> 00:32:03,360 que vol comprar, així com el nombre d'accions. 425 00:32:03,360 --> 00:32:08,300 Llavors vostè desitgi afegir. 426 00:32:08,300 --> 00:32:13,750 Vostè haurà de seleccionar certs valors. 427 00:32:13,750 --> 00:32:19,670 Hem passat per això una mica ja, però quan vostè està tractant d'obtenir certes files - 428 00:32:19,670 --> 00:32:22,020 recuperar certes files de la taula de SQL, 429 00:32:22,020 --> 00:32:24,290 aquesta és la sintaxi següent. 430 00:32:24,290 --> 00:32:28,400 Heu seleccionat, i després, si s'especifica un estel, 431 00:32:28,400 --> 00:32:31,830 que bàsicament va a tornar la fila sencera, tota per a tu. 432 00:32:31,830 --> 00:32:36,890 D'altra banda, té la condició en la qual, a continuació, especifica - 433 00:32:36,890 --> 00:32:39,990 Només vull que el nom d'usuari per a ser igual a per correu, 434 00:32:39,990 --> 00:32:46,660 de manera que només es recupera la fila dels usuaris que correspon al correu. 435 00:32:46,660 --> 00:32:52,860 >> Quan un usuari vol afegir una acció a una cartera, 436 00:32:52,860 --> 00:32:54,400 cal comprovar per uns pocs errors. 437 00:32:54,400 --> 00:32:57,680 Vostè vol assegurar-se que l'usuari realment pot pagar les accions, 438 00:32:57,680 --> 00:33:00,810 pel que vostè vol comprovar el seu efectiu. 439 00:33:00,810 --> 00:33:05,810 Abans, solíem estrella per recuperar tota una fila d'una taula de SQL. 440 00:33:05,810 --> 00:33:08,930 Però aquí, en realitat es pot simplement especificar que només desitja un valor - 441 00:33:08,930 --> 00:33:10,080 Només vull diners. 442 00:33:10,080 --> 00:33:17,970 Així que aquí, tornaria els diners en efectiu per a l'usuari amb número d'identificació 1. 443 00:33:17,970 --> 00:33:25,940 Si un usuari ja ha comprat una acció determinada, però després compra més d'aquesta població, 444 00:33:25,940 --> 00:33:30,440 llavors en la seva cartera - que no desitja una línia separada, 445 00:33:30,440 --> 00:33:34,770 altra fila que conté aquesta nova transacció. 446 00:33:34,770 --> 00:33:37,950 Segur que vol actualitzar la quantitat. 447 00:33:37,950 --> 00:33:42,530 Tot el que realment està canviant és la quantitat d'accions que posseeix aquest usuari. 448 00:33:42,530 --> 00:33:47,730 Si utilitzeu la consulta INSERT INTO - pel que acaba d'inserir en la seva cartera tots aquests valors - 449 00:33:47,730 --> 00:33:51,710 el número d'identificació de l'usuari, així com el símbol de les accions que estan comprant 450 00:33:51,710 --> 00:33:57,750 i les accions, llavors vostè també vol especificar, bé, si em trobo amb un duplicat de la clau - 451 00:33:57,750 --> 00:34:00,750 en aquest cas, la clau duplicada no és només l'ID de l'usuari, sinó també el símbol de l'acció - 452 00:34:00,750 --> 00:34:08,340 perquè només es pot tenir - la nostra premissa és que només es pot tenir una fila 453 00:34:08,340 --> 00:34:10,699  que correspon a 1 símbol específic. 454 00:34:10,699 --> 00:34:13,659 Així, en el duplicat de la clau - si arribes a tenir un accident aquí - 455 00:34:13,659 --> 00:34:18,520 et vas a actualitzar accions al seu nou valor. 456 00:34:18,520 --> 00:34:23,290 Accions igual al que teníem abans, més el nombre d'accions que l'usuari està comprant. 457 00:34:27,790 --> 00:34:31,090 >> Ara que hem actualitzat la taula de la cartera, 458 00:34:31,090 --> 00:34:34,730 anem a voler actualitzar efectiu de l'usuari. 459 00:34:34,730 --> 00:34:40,300 Això és a la taula d'usuaris, de manera que anem a restar una certa quantitat de diners en efectiu. 460 00:34:40,300 --> 00:34:46,270 És de suposar que serà efectiu és igual a menys diners en efectiu - i després de certa quantitat. 461 00:34:46,270 --> 00:34:50,560 Per actualitzar els diners, ho faria - 462 00:34:50,560 --> 00:34:55,699 si volia endur els diners de correu, llavors m'agradaria executar aquesta consulta - 463 00:34:55,699 --> 00:35:00,220 'Actualització dels usuaris ia continuació, estableixi la columna d'efectiu a efectiu - 464 00:35:00,220 --> 00:35:07,300 >> Jo eliminaria 9.999 $ només si el nom d'usuari és igual al correu. 465 00:35:07,300 --> 00:35:12,020 Però, en aquest cas, no volem restar 9.999 específicament. 466 00:35:12,020 --> 00:35:17,610 Volem precisar, a més, volem restar el preu actual de l'acció 467 00:35:17,610 --> 00:35:22,400 multiplicat pel nombre d'accions que estan comprant. 468 00:35:25,260 --> 00:35:29,910 >> Ara que hem permès que vegin totes les accions que tenen, 469 00:35:29,910 --> 00:35:33,080 així com comprar més accions. 470 00:35:33,080 --> 00:35:37,430 També hem prèviament els va permetre buscar el preu actual d'una acció. 471 00:35:37,430 --> 00:35:40,030 Aquí volem permetre que els venen. 472 00:35:40,030 --> 00:35:42,160 En primer lloc volem mostrar bàsicament - 473 00:35:42,160 --> 00:35:45,270 volem que puguin veure totes les accions que tenen, 474 00:35:45,270 --> 00:35:53,170 així que aquí volem mostrar totes les files de la cartera. 475 00:35:53,170 --> 00:35:56,650 Si opten per vendre una acció determinada, 476 00:35:56,650 --> 00:35:59,140 llavors anem a suposar que ells volen vendre tot. 477 00:35:59,140 --> 00:36:04,350 No només es va a vendre el 50% de les seves accions, que van a vendre el 100% d'aquesta. 478 00:36:04,350 --> 00:36:08,630 Només pot eliminar la fila completa de la cartera. 479 00:36:08,630 --> 00:36:17,520 Podem eliminar les accions de l'usuari en particular del símbol determinat. 480 00:36:17,520 --> 00:36:21,410 Aquí està la sintaxi per això. 481 00:36:21,410 --> 00:36:22,710 >> Llavors volem actualitzar l'efectiu. 482 00:36:22,710 --> 00:36:30,930 Anem a afegir en l'efectiu equivalent a l'import de les accions que s'estan venent 483 00:36:30,930 --> 00:36:34,640 multiplicada pel preu actual de l'acció - 484 00:36:34,640 --> 00:36:38,610 no el preu al qual es va comprar, sinó el preu a què estan - 485 00:36:38,610 --> 00:36:40,500 el preu actual quan ho estan venent. 486 00:36:40,500 --> 00:36:43,660 Per fer referència al preu actual d'una acció, 487 00:36:43,660 --> 00:36:49,120 vostè haurà d'utilitzar de recerca, que li donarà el preu d'una acció 488 00:36:50,030 --> 00:36:52,650 en el moment actual. 489 00:36:52,650 --> 00:36:55,930 >> Ara ens queda la història, 490 00:36:55,930 --> 00:37:00,170 la qual desitja permetre a un usuari fer un seguiment de totes les seves operacions - 491 00:37:00,170 --> 00:37:03,040 vol veure cada vegada que es ven alguna cosa, cada vegada que comprem una acció. 492 00:37:03,040 --> 00:37:08,870 Volem especificar l'hora a la que ho van fer i quants van comprar 493 00:37:08,870 --> 00:37:11,650 i quines accions de la mateixa era. 494 00:37:11,650 --> 00:37:17,800 Tenim alguna estructura actual, vigent que estableix que? 495 00:37:17,800 --> 00:37:25,230 Bé, tenim cartera que mostra els estocs de nombres que té un usuari 496 00:37:25,230 --> 00:37:26,470 una proporció donada. 497 00:37:26,470 --> 00:37:34,060 Però estem estructurant cartera en la forma en què s'actualitza quan comprem múltiple, 498 00:37:34,060 --> 00:37:40,190 mentre que la història hauria - si vostè compra 10 accions d'Apple, de la mateixa, i més tard vendre 5, 499 00:37:40,190 --> 00:37:44,040 llavors vostè vol veure a aquells per separat com accions separades, files separades. 500 00:37:44,040 --> 00:37:48,520 Considerant que l'acció de visualitzar que a la nostra taula cartera 501 00:37:48,520 --> 00:37:52,540 només seria una actualització d'aquesta fila en particular, 502 00:37:52,540 --> 00:37:55,740  pel que probablement voldrà altra taula. 503 00:37:55,740 --> 00:38:00,460 En la nostra base de dades, tenim la nostra taula d'usuaris, tenim la nostra taula de la cartera, 504 00:38:00,460 --> 00:38:04,090 i ara és probable que voldrà una taula d'historial. 505 00:38:04,090 --> 00:38:08,070 Aquesta taula d'historial pot realitzar un seguiment de la data actual, 506 00:38:08,070 --> 00:38:12,800 així com el símbol de l'acció particular, així com quantes accions, 507 00:38:12,800 --> 00:38:15,410 i llavors, quina acció és - 508 00:38:15,410 --> 00:38:18,800 si es compra les accions o si se'ls ven. 509 00:38:20,660 --> 00:38:25,720 >> Per fer front a la data, hi ha un parell de maneres que vostè pot fer això. 510 00:38:25,720 --> 00:38:28,820 PHP té una manera de fer el seguiment de la data, que es pot veure a tu mateix. 511 00:38:28,820 --> 00:38:33,990 En SQL també es pot utilitzar ja sigui ara o indicació de l'hora actual. Això depèn de tu. 512 00:38:33,990 --> 00:38:40,720 Només assegureu-vos que cada vegada que un usuari compra o ven, se li actualitza els seus diners 513 00:38:40,720 --> 00:38:46,750 a la taula d'usuaris, se li actualitza les files a la taula de carteres, 514 00:38:46,750 --> 00:38:50,900 llavors també estarem actualitzant la història, 515 00:38:50,900 --> 00:38:56,260 per la qual cosa seran de 3 consultes individuals de SQL que se li diuen allà. 516 00:38:58,640 --> 00:39:01,530 Tenim un munt de funcionalitat ara. 517 00:39:01,530 --> 00:39:10,600 >> Només un parell de recordatoris que en el seu arxiu d'índex, vol establir el vincle almenys seva - 518 00:39:10,600 --> 00:39:15,550 però vostè voldrà permetre a un usuari per accedir a la pàgina buy.php. 519 00:39:15,550 --> 00:39:23,560 Això permetrà a un usuari - buy.php és el controlador, per la qual cosa va a qualsevol dels dos 520 00:39:23,560 --> 00:39:29,170 enviar a vostè - que enviarà a la manera que li permet mirar les coses. 521 00:39:29,170 --> 00:39:34,420 Tenim la història. Hem de tancar la sessió, per aconseguir una cita i després vendre. 522 00:39:34,420 --> 00:39:37,350 Aquests són, com a mínim, el que vol mostrar. 523 00:39:37,350 --> 00:39:43,640 En termes de la cartera, la cartera s'ha de mostrar a la pàgina d'índex. 524 00:39:43,640 --> 00:39:52,050 Si anem a l'índex, aquí veiem que es fa portfolio.php 525 00:39:52,050 --> 00:40:00,050 i passa a la matriu associativa - bàsicament el títol és igual a la cartera. 526 00:40:00,050 --> 00:40:02,610 Per tant, aquest és el controlador. 527 00:40:02,610 --> 00:40:08,000 Si ens anem a la plantilla de portfolio.php, 528 00:40:08,000 --> 00:40:18,060 llavors tot el que té és - bàsicament mostra un quadre que diu, oh, aquest lloc està en construcció. 529 00:40:18,060 --> 00:40:23,810 Més tard, una vegada que passi a - vostè pot passar en la informació, bàsicament, més específic. 530 00:40:23,810 --> 00:40:27,400 En lloc de només el títol, és probable que es passi en més coses. 531 00:40:27,400 --> 00:40:32,010 Una vegada que té aquests valors, llavors portfolio.php pot fer front a aquests valors 532 00:40:32,010 --> 00:40:34,490 i els imprimir en qualsevol tipus d'ordre. 533 00:40:34,490 --> 00:40:41,660 >> Quan hagueu executat la totalitat d'ells, també cal fer la funció més. 534 00:40:41,660 --> 00:40:44,890 Això es pot permetre que un usuari canviar la seva contrasenya, 535 00:40:44,890 --> 00:40:50,110 per restablir la contrasenya si l'ha oblidat - de manera que per al restabliment de la contrasenya, i després 536 00:40:50,110 --> 00:40:54,560 és probable que també voleu editar registrar perquè els permet especificar una adreça de correu electrònic, 537 00:40:54,560 --> 00:40:57,910 pel que si se'ls oblida la contrasenya, llavors es pot aconseguir això. 538 00:40:57,910 --> 00:41:02,870 És probable que pugui entrar en el seu nom d'usuari, i després un correu electrònic serà enviat a ells 539 00:41:02,870 --> 00:41:06,180 amb un enllaç per poder restablir la contrasenya. 540 00:41:06,180 --> 00:41:10,980 Vostè pot tenir alguna cosa que permet als usuaris obtenir ingressos 541 00:41:10,980 --> 00:41:12,380 cada vegada que compren o venen alguna cosa, 542 00:41:12,380 --> 00:41:19,910 i, finalment, els permeten afegir diners a la seva pàgina web. 543 00:41:19,910 --> 00:41:24,970 Només per anar de nou al concepte dels controladors i les plantilles una mica. 544 00:41:24,970 --> 00:41:31,170 Tindràs una mena - de manera que tindrà un controlador d'aquí. 545 00:41:31,170 --> 00:41:35,080 Ara mateix, estem veient l'exemple login.php. 546 00:41:35,080 --> 00:41:38,220 Quan tenim un controlador, bàsicament es va a prendre 2 casos. 547 00:41:38,220 --> 00:41:42,090 Quan tinguem els controladors, que estem en aquesta peça que també estem tractant amb tipus de 548 00:41:42,090 --> 00:41:43,880 quan tenim formes també. 549 00:41:43,880 --> 00:41:47,500 El controlador tindrà bàsicament accions separades - 550 00:41:47,500 --> 00:41:53,880 un si un formulari ja ha estat presentada, i després dos, si l'usuari s'apropa a aquesta pàgina 551 00:41:53,880 --> 00:41:56,870 per primera vegada i encara necessita d'entrada que forma. 552 00:41:56,870 --> 00:42:02,820 >> Vaig a anar a aquest primer cas abans de pujar al primer cas de tenir la forma polz 553 00:42:02,820 --> 00:42:12,640 Aquí diem, si el formulari ha estat enviat amb el mètode post - 554 00:42:12,640 --> 00:42:13,580 no et preocupis per això una mica. 555 00:42:13,580 --> 00:42:19,780 No et preocupis per això molt, però entenc que bàsicament s'ocupa d'aquesta funció 556 00:42:19,780 --> 00:42:22,430 si un formulari ha estat enviat o no. 557 00:42:22,430 --> 00:42:25,640 Aquesta condició es compleix si un usuari ha enviat el formulari. 558 00:42:25,640 --> 00:42:45,940 Si no, llavors anem a voler cridar login_form.php render, i després passar en el títol. 559 00:42:45,940 --> 00:42:48,010 Aquest títol només està bàsicament apareixerà a la capçalera. 560 00:42:48,010 --> 00:42:54,990 El que això fa és, bàsicament, diu, està bé - bé, si un usuari va a login.php 561 00:42:54,990 --> 00:43:00,310 i en realitat no ha iniciat sessió, llavors vull enviar a la pàgina que té aquesta forma 562 00:43:00,310 --> 00:43:03,160 el que els permet introduir el nom d'usuari i la contrasenya. 563 00:43:03,160 --> 00:43:07,590 Després vaig a login_form, a continuació, que té la forma actual. 564 00:43:07,590 --> 00:43:13,750 Després, una vegada que l'usuari envia aquesta manera, presentarem a login.php 565 00:43:13,750 --> 00:43:15,840 amb el mètode post. 566 00:43:15,840 --> 00:43:21,560 Després de fet vaig a entrar en aquesta secció del meu if-else bucle. 567 00:43:21,560 --> 00:43:29,560 Llavors, és aquí que ens ocupem dels valors introduïts en el formulari. 568 00:43:29,560 --> 00:43:32,800 És aquí on ens ocupem d'ells. 569 00:43:32,800 --> 00:43:40,860 >> Llavors una vegada que s'ocupa d'aquests valors - si vostè està tractant amb - 570 00:43:40,860 --> 00:43:46,640 dir que estem tractant amb la pàgina quote.php on algú pot introduir una acció que 571 00:43:46,640 --> 00:43:49,950 que voleu cercar, i després veure que la pantalla - 572 00:43:49,950 --> 00:43:52,850 això és una cosa semblant aquí. 573 00:43:52,850 --> 00:43:56,070 Aquí tenim un formulari d'accés - you'd probablement tingui un formulari de cotització - 574 00:43:56,070 --> 00:44:00,290 però una vegada que l'usuari ha fet que la informació presentada, 575 00:44:00,290 --> 00:44:04,810 llavors vostè desitja que el controlador passi a una altra plantilla 576 00:44:04,810 --> 00:44:07,430 que els mostrarà que la informació real. 577 00:44:07,430 --> 00:44:11,250 Així que per aquí, llavors és probable que - 578 00:44:11,250 --> 00:44:18,830 cap al final de la seva condició aquí - el si el mètode és igual post - 579 00:44:18,830 --> 00:44:22,520 llavors vostè probablement voldrà fer una altra pàgina - la cita show - 580 00:44:22,520 --> 00:44:28,040 que li envia a aquesta pàgina - show_quote.php-- 581 00:44:28,040 --> 00:44:34,120 i després en aquest arxiu farà referència a aquests valors. 582 00:44:34,120 --> 00:44:36,480 Això té sentit? 583 00:44:36,480 --> 00:44:40,390 >> Tenim un controlador que bàsicament s'ocupa dels 2 casos - 584 00:44:40,390 --> 00:44:42,710 si vostè ha entrat en un formulari o no. 585 00:44:42,710 --> 00:44:43,950 Si no s'ha introduït un formulari, 586 00:44:43,950 --> 00:44:47,300 llavors se li redirigirà a aquest formulari, que al seu torn ho ha de posar de nou a la pàgina. 587 00:44:47,300 --> 00:44:54,020 Després, una vegada que tingui la informació al controlador, aquest cos s'ocuparà que 588 00:44:54,020 --> 00:44:59,750 informació necessària - ja sigui mirant cap amunt els valors de les accions, 589 00:44:59,750 --> 00:45:04,150 i després una vegada que es va aixecar la vista i té aquests valors en una matriu amb un format agradable, 590 00:45:04,150 --> 00:45:08,180 A continuació, pot passar la matriu a la pàgina de la plantilla 591 00:45:08,180 --> 00:45:10,330  que tracta de la sortida d'aquesta informació. 592 00:45:10,330 --> 00:45:14,680 >> Un cop més, des de la seva web, que serà divertit. 593 00:45:14,680 --> 00:45:20,310 Estem fora de C, així que no està limitat a la ASCII i que la producció terminal, 594 00:45:20,310 --> 00:45:21,800 així que es diverteix amb això. 595 00:45:21,800 --> 00:45:24,920 Potser és el més visual que vulguis. 596 00:45:24,920 --> 00:45:31,860 Pot permetre als usuaris a milions de dòlars d'entrada al mateix temps, 597 00:45:31,860 --> 00:45:34,730 o limitar-los i ser realment significa i només permetre'ls entrar un cèntim al mateix temps 598 00:45:34,730 --> 00:45:36,330 o alguna cosa per l'estil. 599 00:45:36,330 --> 00:45:38,550 Definitivament, assegureu-vos de tenir diversió amb això. 600 00:45:38,550 --> 00:45:47,030 >> El codi PHP és una mica més simple en que és una mica més fàcil de traçar la seva pseudocodi 601 00:45:47,030 --> 00:45:50,070 en l'aplicació real. 602 00:45:50,070 --> 00:45:56,320 Així que, definitivament es diverteixen amb això perquè és realment la nostra última peça CS50. 603 00:45:56,320 --> 00:46:01,150 Amb això, aquest va ser Tutorial 7. 604 00:46:01,150 --> 00:46:04,640 Quan hagi acabat de veure el tutorial i va acabar el seu conjunt de processadors, 605 00:46:04,640 --> 00:46:09,590 llavors aquests també eren conjunts de processadors, i ara estem en el producte final - 606 00:46:09,590 --> 00:46:12,330 després que rebem a través quiz 1. 607 00:46:12,330 --> 00:46:16,200 Llavors espero que vostè pot utilitzar les eines que he après dels conjunts de processadors - 608 00:46:16,200 --> 00:46:21,980 no només la sintaxi, però més la noció abstracta de com prendre una certa - 609 00:46:21,980 --> 00:46:24,950 agrada, jo vull fer això i després implementar realment això. 610 00:46:24,950 --> 00:46:28,740 Aprendre a lluitar a través de la sintaxi i el codi de distribució. 611 00:46:28,740 --> 00:46:33,020 Lectura de codi d'altres persones, i després la interpretació que l'ús de les funcions ja existents. 612 00:46:33,020 --> 00:46:37,360 >> Per tant, bona sort amb el conjunt de processadors passat. 613 00:46:37,360 --> 00:46:39,930 Ha estat un plaer per conduir les visites guiades. 614 00:46:39,930 --> 00:46:40,940 Espero que hagi estat d'ajuda per a vostè. 615 00:46:40,940 --> 00:46:46,560 Aquests van ser Tutorials i moltes gràcies. 616 00:46:52,580 --> 00:46:56,200 [CS50.TV]