1 00:00:00,000 --> 00:00:03,000 [Powered by Google Translate] [Walkthrough Problem Postavite 7] 2 00:00:03,000 --> 00:00:04,400 [Zamyla Chan] [Sveučilište Harvard] 3 00:00:04,400 --> 00:00:07,640 [Ovo je CS50] [CS50.TV] 4 00:00:07,640 --> 00:00:12,090 >> Pozdrav svima, i dobrodošli na Walkthrough 7, CS50 financija. 5 00:00:12,090 --> 00:00:15,090 Sada smo i službeno su učinili sa svim psets u CS50, 6 00:00:15,090 --> 00:00:19,380 i mi smo samo s lijeve strane još jedan koji će biti zabavno provođenje 7 00:00:19,380 --> 00:00:23,770 od web stranicu na kojoj korisnici mogu prijaviti na CS50 financija 8 00:00:23,770 --> 00:00:25,830 i kupiti i prodati dionice. 9 00:00:25,830 --> 00:00:32,280 >> Danas ćemo imati nekoliko alata na raspolaganju. 10 00:00:32,280 --> 00:00:34,320 Idemo da se govori o dozvolama. 11 00:00:34,320 --> 00:00:36,380 Kad imate web mapu, 12 00:00:36,380 --> 00:00:40,800 idete da želite omogućiti korisnicima da izvršavaju određene datoteke 13 00:00:40,800 --> 00:00:42,500 ali i samo čitati one druge, 14 00:00:42,500 --> 00:00:45,150 pa ćemo gledati u dozvolama i kako možete postaviti one. 15 00:00:45,150 --> 00:00:49,630 Tada ćemo gledati u PHP, HTML, i SQL koda. 16 00:00:49,630 --> 00:00:51,990 >> Prvo, dozvole. 17 00:00:51,990 --> 00:00:56,060 Kada ste u terminalu u određenom direktoriju, 18 00:00:56,060 --> 00:01:00,430 onda ono što želite učiniti je da želite pokrenuti chmod naredbu. 19 00:01:00,430 --> 00:01:03,750 To je potom bilo slova ili brojeva 20 00:01:03,750 --> 00:01:08,100 odgovara za ono što zapravo želite svijet vidi, 21 00:01:08,100 --> 00:01:09,830 sami vidjeti, itd. 22 00:01:09,830 --> 00:01:13,350 Na primjer, kad imate mapu, 23 00:01:13,350 --> 00:01:15,560 onda želite da mapa biti izvršna po svima da ga vidi, 24 00:01:15,560 --> 00:01:19,500 tako što će učiniti je da bi mogao pokrenuti naredbu chmod + x 25 00:01:19,500 --> 00:01:21,050 , a zatim naziv mape. 26 00:01:21,050 --> 00:01:28,110 Kada imate datoteku, kao što su CSS datoteke ili slikovnih datoteka - 27 00:01:28,110 --> 00:01:33,060 kao JPEG i bitmape, stvari kao što je to, ili bilo koji JavaScript kod - 28 00:01:33,060 --> 00:01:36,440 želite da se čitati sve, 29 00:01:36,440 --> 00:01:39,880 pa onda ono što trebate učiniti je da bi mogao koristiti zamjenski - 30 00:01:39,880 --> 00:01:41,650 što je Zvjezdica - 31 00:01:41,650 --> 00:01:46,190 na osnovi ukazuju na CSS mapu - sve u toj mapi - 32 00:01:46,190 --> 00:01:48,740  Ja ću reći da je to će biti čitljiv svima. 33 00:01:48,740 --> 00:01:54,220 Sa dozvolama, kad smo koristiti slova, 34 00:01:54,220 --> 00:01:57,610 također možemo koristiti brojeve umjesto. 35 00:01:57,610 --> 00:02:00,900 Dakle, vidjet ćete da u konačnici kada želite nešto da se izvršna - 36 00:02:00,900 --> 00:02:02,810 koji je predstavlja broj 1 - 37 00:02:02,810 --> 00:02:08,340 nešto biti čitljiva je broj 4 i zatim - 38 00:02:08,340 --> 00:02:10,590 writable broj 2 - 39 00:02:10,590 --> 00:02:13,670 i tako bitno kada želite kombinaciju onih, onda ih dodati. 40 00:02:13,670 --> 00:02:15,860 Ako želite nešto da bude čitljiva, pisati i izvršna, 41 00:02:15,860 --> 00:02:21,970 onda bi se dodati 4, 2 i 1 i da će vam dati sedam, 42 00:02:21,970 --> 00:02:26,230 onda kad imate mapu želite da se izvršna svima - 43 00:02:26,230 --> 00:02:31,380 kao i čitati i pisati - onda bi taj 7, 1, 1. 44 00:02:31,380 --> 00:02:38,140 To bi bilo 7 za vas, onda jedan za drugim ljudima. 45 00:02:38,140 --> 00:02:42,870 Kada imate spec., zapravo ćete odrediti koje mape i koja slika 46 00:02:42,870 --> 00:02:45,040 trebaju biti chmod-ed posebno. 47 00:02:45,040 --> 00:02:47,920 Na primjer, kada imate mape - to su 7-1-1 - 48 00:02:47,920 --> 00:02:52,690 kada imate slike, ili HTML, CSS, JavaScript, 49 00:02:52,690 --> 00:02:55,870 onda oni će biti 6, 0, 4 - ili 6, 4, 4 - 50 00:02:55,870 --> 00:03:00,030 i onda PHP datoteka će biti 6, 0, 0. 51 00:03:00,030 --> 00:03:04,940 Ideja iza toga je da korisnici zapravo ne bi trebao vidjeti svoj PHP kôd, 52 00:03:04,940 --> 00:03:08,370 ali samo biti u mogućnosti vidjeti izlaz. 53 00:03:08,370 --> 00:03:11,030 >> Sjajno! Preseljenje u PHP. 54 00:03:11,030 --> 00:03:18,850 Jednostavno, kad god želite PHP datoteku, datoteka sufiks je. Php. 55 00:03:18,850 --> 00:03:22,000 Također možete miješati s HTML PHP koda. 56 00:03:22,000 --> 00:03:24,880 Ako imate HTML datoteke, na primjer, 57 00:03:24,880 --> 00:03:32,520 onda možete priložiti lijevog kuta, upitnik, php - 58 00:03:32,520 --> 00:03:39,320 staviti svoj php kod - i zatim zatvorite da se s drugim upitnikom i pod pravim kutom. 59 00:03:39,320 --> 00:03:45,020 Varijable u PHP su puno lakše da se bave od varijabli u C. 60 00:03:45,020 --> 00:03:50,310 Svaka varijabla samo počinje sa znakom dolara ispred njega, a oni slabo ste upisali. 61 00:03:50,310 --> 00:03:53,470 To znači da ne morate brinuti o postavljanju nešto 62 00:03:53,470 --> 00:03:55,020 jednak niz ili cijeli broj. 63 00:03:55,020 --> 00:03:57,710 Možete samo jednostavno reći, ovo je moj naziv varijable 64 00:03:57,710 --> 00:04:00,390 i onda je to njegova vrijednost, 65 00:04:00,390 --> 00:04:03,280 tako da će biti lakše da se bave tamo. 66 00:04:03,280 --> 00:04:08,220 >> Druga stvar je da PHP vam omogućuje da koristite asocijativne polja. 67 00:04:08,220 --> 00:04:11,330 Možete samo jednostavno definirati niz kao što bi u C 68 00:04:11,330 --> 00:04:14,900 govoreći, znak dolara-ime vašeg niz-jednaka, 69 00:04:14,900 --> 00:04:22,600 , a zatim u uglatim zagradama imaju u osnovi samo popis vrijednosti svih elemenata u polju. 70 00:04:22,600 --> 00:04:27,160 No, u PHP što možete učiniti je odrediti osnovi - 71 00:04:27,160 --> 00:04:31,050 to je vrsta kao što su hash funkcije. 72 00:04:31,050 --> 00:04:34,410 Možete odrediti indeks - što ćeš ga nazvati - 73 00:04:34,410 --> 00:04:37,030 , a zatim da se odnosi na vrijednost. 74 00:04:37,030 --> 00:04:42,880 Ako ste zapravo prođe u = 1, b = 2, c = 3, 75 00:04:42,880 --> 00:04:50,820 onda tvoj niz u indeks će vam dati jedan. 76 00:04:50,820 --> 00:04:56,600 Ovo pset će vas zagrijati sa nekim PHP u dijelu pitanja, 77 00:04:56,600 --> 00:04:59,240 i onda smo zaroniti u CS50 financija. 78 00:04:59,240 --> 00:05:02,650 >> Imamo par - imamo neku funkciju, u osnovi, 79 00:05:02,650 --> 00:05:05,130 provesti u ovoj web stranici. 80 00:05:05,130 --> 00:05:10,440 Želimo omogućiti korisnicima da se registrirate na našoj web stranici s korisničkim imenom i lozinkom. 81 00:05:10,440 --> 00:05:13,670 Želimo im omogućiti da pogledate ponudu, 82 00:05:13,670 --> 00:05:19,330 a onda bismo ispisali ime tog citat kao i trenutna cijena da je to u. 83 00:05:19,330 --> 00:05:26,830 Želimo im omogućiti da vide portfelj svih dionica koje su kupili tako daleko. 84 00:05:26,830 --> 00:05:34,240 Također, želimo im omogućiti da kupi dionice te ih prodati. 85 00:05:34,240 --> 00:05:37,540 I onda na kraju, želimo im omogućiti da vide povijest 86 00:05:37,540 --> 00:05:39,490 od svih transakcija koje ste im napravili. 87 00:05:39,490 --> 00:05:41,540 Zatim, na kraju, nakon što ste provesti sve to, 88 00:05:41,540 --> 00:05:45,110 onda ste slobodni provesti jedan dodatni značajku. 89 00:05:45,110 --> 00:05:46,610 Mi ćemo ići u one. 90 00:05:46,610 --> 00:05:51,330 Oni mogu biti ili omogućujući korisnicima da biste dobili dodatne gotovine polaganjem dodatni novac, 91 00:05:51,330 --> 00:05:54,550 ili ste mogli dopustiti im da promijene svoje lozinke, ili nešto slično, 92 00:05:54,550 --> 00:06:00,590 e im potvrdu kad su kupnju ili prodaju dionica. 93 00:06:00,590 --> 00:06:05,370 Tu je ograničen popis značajki koje ste mogli sami provesti, 94 00:06:05,370 --> 00:06:08,340 tako da je zadnji tamo. 95 00:06:08,340 --> 00:06:13,430 >> Budući da je ovo web stranica, vi također imaju mnogo slobode da ga prilagodite. 96 00:06:13,430 --> 00:06:20,960 Mi ne pružaju neke CSS koda, ali ti si definitivno bez da ga uštinuti, 97 00:06:20,960 --> 00:06:26,680 učiniti da izgleda ljepše, ali ga podupire je osnovna funkcionalnost 98 00:06:26,680 --> 00:06:30,310 tako da uvijek se odnose na spec. o tome što vam je zapravo potrebno uključiti postoji. 99 00:06:30,310 --> 00:06:39,940 Nakon spec., idemo se pomoću aparata kao i poslužitelj. 100 00:06:39,940 --> 00:06:43,910 To će biti domaćin našu web stranicu za nas, na svom lokalnom poslužitelju. 101 00:06:43,910 --> 00:06:49,750 Ako slijedite ove upute i raspakirajte pset 7 distribucije kod 102 00:06:49,750 --> 00:06:53,500 u svoj virtualni host / lokalni domaćin mapu, 103 00:06:53,500 --> 00:07:02,470  onda možete jednostavno posjetiti http://localhost/ u Google Chrome u aparatu, 104 00:07:02,470 --> 00:07:09,120 i onda će doći kod u kojem ste pismeni pset 7. 105 00:07:09,120 --> 00:07:14,490 >> Pset 7 dolazi s hrpom distribucije koda, 106 00:07:14,490 --> 00:07:18,330 i nadamo se da smo s - kroz sve psets prije ove - 107 00:07:18,330 --> 00:07:21,700 nas navikli na čitanje kroz distribucijsku koda, 108 00:07:21,700 --> 00:07:25,650 razumijevanje što funkcionira već osigurano, a kako bismo mogli biti u mogućnosti koristiti 109 00:07:25,650 --> 00:07:29,470 one i ostale funkcije koje ćemo se provesti. 110 00:07:29,470 --> 00:07:31,570 U tom slučaju, imamo tri mape. 111 00:07:31,570 --> 00:07:36,350 Imamo HTML mape, uključuje mapu, a mapu Obrasci. 112 00:07:36,350 --> 00:07:40,630 Što ćemo da se radi s ovim pset je vrsta odvajanja razmišljanja - 113 00:07:40,630 --> 00:07:45,580 programiranje razmišljanje - od PHP koda sa stvarnim vizualnog aspekta. 114 00:07:45,580 --> 00:07:52,690 Imat ćemo jedan PHP datoteku koja čini sve razmišljanja, navodi se u bazi podataka, 115 00:07:52,690 --> 00:07:55,620 ispisuje stvari, ima li izvještaji - stvari kao što je to - 116 00:07:55,620 --> 00:08:02,140 i onda da ću proći podatke u našu datoteku predloška - ili template.php datoteku. 117 00:08:02,140 --> 00:08:05,710 Što da će učiniti je čitati podatke, a zatim će ga ispisati. 118 00:08:05,710 --> 00:08:09,550 >> Možemo liječiti predloške kao "glupi" u smislu da mi zapravo ne žele ih 119 00:08:09,550 --> 00:08:12,370 da se radi puno posla u izračunu stvari. 120 00:08:12,370 --> 00:08:16,330 Mi želimo da naši kontrolori to učiniti. 121 00:08:16,330 --> 00:08:21,610 Malo o tome - ajmo pogledati neke od distribucije koda. 122 00:08:21,610 --> 00:08:28,250 Ovdje imamo index.html datoteku, i to je prilično prazna. 123 00:08:28,250 --> 00:08:34,429 U suštini ono što čini - kaže, dobro, ja ću zahtijevati configuration.php datoteku. 124 00:08:34,429 --> 00:08:40,120 Mi ne vidimo da je upravo tamo, ali u osnovi je pozivom configuration.php datoteku, 125 00:08:40,120 --> 00:08:42,240 i izvršavanju toga. 126 00:08:42,240 --> 00:08:45,130 Nakon što to radi, to će donijeti portfelj. 127 00:08:45,130 --> 00:08:49,310 Rendering je funkcija, tako da kad god smo u kontroler, 128 00:08:49,310 --> 00:08:56,490 zvat ćemo uzvratiti, mi ćemo mu dati datoteku, a zatim su podaci koje smo prolaze u, 129 00:08:56,490 --> 00:09:04,570 tako da ću zvati u portfolio.php--vrste proći u tim podacima, tako da portfelj može nositi s tim. 130 00:09:04,570 --> 00:09:10,540 >> A sada, evo, mi imamo login.php obrazac. 131 00:09:10,540 --> 00:09:17,540  To je regulator koji u osnovi brine o sječe u. 132 00:09:17,540 --> 00:09:29,090 Evo, to provjerava ako je oblik bio podnesen na ovu datoteku i bavi potvrđivanju podnesak. 133 00:09:29,090 --> 00:09:31,990 Mi ćemo gledati u ovoj ispričati funkciji. 134 00:09:31,990 --> 00:09:35,100 Kada želimo ispisati poruku o pogrešci, 135 00:09:35,100 --> 00:09:39,550 mi koristimo ispričati i da će se preusmjeriti korisnika na određenu stranicu 136 00:09:39,550 --> 00:09:42,530 koji će ispisati poruku o pogrešci da smo ukazati. 137 00:09:42,530 --> 00:09:47,860 Nastavljajući se na, to će upita baze podataka - hrapavi ući više od toga kasnije. 138 00:09:47,860 --> 00:09:54,180 Tada ćete vidjeti da je ovdje dolje, ako oblik nije podnesen, onda to čini obrazac. 139 00:09:54,180 --> 00:10:01,360 To znači da se ide na login_form.php, pa pogledajmo kako. 140 00:10:01,360 --> 00:10:09,400 >> Login.php je zapravo gdje smo vidjeli HTML bave stvarnim vizualnog aspekta. 141 00:10:09,400 --> 00:10:15,130 Ovdje imamo ulaznog oznaku za korisničko ime, ulaznog za lozinku, 142 00:10:15,130 --> 00:10:16,630 kao i gumb Pošalji. 143 00:10:16,630 --> 00:10:22,660 To je zapravo gdje je vizualni aspekt i HTML oblik će se održati. 144 00:10:22,660 --> 00:10:27,550 Evo, on kaže da će to biti podnesen u određenom metodom, zvanom post. 145 00:10:27,550 --> 00:10:30,190 Mi ćemo ući u razlikama između načina - 146 00:10:30,190 --> 00:10:33,240 postavljati nasuprot dobiti, tu je i nešto što se zove staviti - 147 00:10:33,240 --> 00:10:36,160 ćemo dobiti u tim metodama kasnije, ali za interes ovog pset, 148 00:10:36,160 --> 00:10:37,810 Ja bih visoko savjetujemo vam da koristite post. 149 00:10:37,810 --> 00:10:42,210 >> Mi znamo da je u osnovi se jednom ova obrazac podnosi - 150 00:10:42,210 --> 00:10:44,650 od login_form.php-- 151 00:10:44,650 --> 00:10:50,850 onda će se ići na akciji - login.php-- 152 00:10:50,850 --> 00:10:56,070 osnovi proći u svim tim parametrima iz tih oblika u login.php. 153 00:10:56,070 --> 00:11:04,900 Rezultati iz tog obrasca se nalaze unutar ovaj post asocijativnog niza. 154 00:11:04,900 --> 00:11:11,710 Indeksi od različitih elemenata u poštanskom niz 155 00:11:11,710 --> 00:11:15,290 su upravo ono što ste naveli ovdje. 156 00:11:15,290 --> 00:11:19,240 Možete reći da je ime ovog ulaz je korisničko ime. Ime ovog jednog lozinkom. 157 00:11:19,240 --> 00:11:26,840 Isto tako, možete vidjeti ime kao indeksa asocijativnog niza tamo. 158 00:11:26,840 --> 00:11:35,110 Ako idemo na uključuje mapu, imamo ovu funkcije datoteku koja se događa da se vrlo korisno. 159 00:11:35,110 --> 00:11:37,570 >> Sve ove funkcije se provodi za vas. 160 00:11:37,570 --> 00:11:41,870 Vi ne trebate posebno provesti bilo koji od ovih sebe, 161 00:11:41,870 --> 00:11:43,140 ali oni će vrlo korisno. 162 00:11:43,140 --> 00:11:49,450 Mi smo se ispričavam, koji je kao što sam rekao prije, u osnovi će ispisati poruku o pogrešci 163 00:11:49,450 --> 00:11:52,920 za vas na određenu stranicu - apology.php. 164 00:11:52,920 --> 00:11:59,890 Onda imamo deponij, tako da ako samo zovi dump i onda prođe u varijablu, 165 00:11:59,890 --> 00:12:04,930 onda će vas odvesti na stranicu koja će se prikazati tu varijablu za vas. 166 00:12:04,930 --> 00:12:09,950 Onda smo logout, koji u osnovi će završiti određeni korisnika sjednicu. 167 00:12:09,950 --> 00:12:12,240 Potraži će biti korisna. 168 00:12:12,240 --> 00:12:15,870 Budući da smo se bave citati i zalihe, mi ćemo biti u mogućnosti - 169 00:12:15,870 --> 00:12:17,650 i to je bitno u stvarnom vremenu. 170 00:12:17,650 --> 00:12:21,380 Moramo znati što one vrijednosti dionica su, 171 00:12:21,380 --> 00:12:28,210 tako da imamo pretraživanje funkciju koja se bavi Yahoo dokumentacije dionica. 172 00:12:28,210 --> 00:12:37,700 Nakon što pogledate određeni simbol dionica, vratit će se na vas dioničko simbol 173 00:12:37,700 --> 00:12:41,480 kao i ime i trenutne cijene tog fonda. 174 00:12:41,480 --> 00:12:44,330 To je funkcija pretraživanja. 175 00:12:44,330 --> 00:12:48,350 >> Onda imamo posla s MySQL, 176 00:12:48,350 --> 00:12:53,970 tako da ćemo se žele izvršiti određene upite na našem SQL baze podataka. 177 00:12:53,970 --> 00:12:58,890 Imamo upita za rješavanje - na vrste sažetak nekih od tog izlaza. 178 00:12:58,890 --> 00:13:03,200 Mi ćemo se prolazi u cijelom nizu naših SQL upita - 179 00:13:03,200 --> 00:13:05,360 i sve varijable koje idu u njemu - 180 00:13:05,360 --> 00:13:09,480 i što to znači je zapravo izvršiti da za nas. 181 00:13:09,480 --> 00:13:15,070 Umjesto da pisati sve ovo van svaki put koji želite da upita - 182 00:13:15,070 --> 00:13:21,740 uzimajući sve rezultate iz tog upita - 183 00:13:21,740 --> 00:13:24,740 onda možete samo nazvati upita funkciju, a to ću se vratiti vama - 184 00:13:24,740 --> 00:13:28,750 ovisno o tome što ste koristeći za vaš upit - 185 00:13:28,750 --> 00:13:33,000 Vjerojatno red sve rezultate koji se podudaraju s upitom ili slično. 186 00:13:33,000 --> 00:13:34,690 Više o tome kasnije ipak. 187 00:13:34,690 --> 00:13:41,200 >> Konačno, moramo preusmjeriti koji, kao što ime sugerira, vas preusmjerava na drugu stranicu. 188 00:13:41,200 --> 00:13:46,280 I onda imamo žbuke, što idemo se zove nekoliko puta. 189 00:13:46,280 --> 00:13:51,010 Kada ste u kontroler, zoveš donijeti u predlošku stranicu 190 00:13:51,010 --> 00:13:55,390 a potom proći u vrijednosti koje je predložak onda će se baviti. 191 00:13:55,390 --> 00:13:59,540 Te vrijednosti vjerojatno će se baviti vrsti proizvodnje koji želite 192 00:13:59,540 --> 00:14:01,050 koji će biti prikazan na stranici predloška. 193 00:14:01,050 --> 00:14:09,370 Ok. Oni su funkcije, a tu je i puno više na ovu distribucije koda. 194 00:14:09,370 --> 00:14:12,930 Ohrabrujem vas da ide kroz to i istražite sami. 195 00:14:12,930 --> 00:14:17,050 Također, spec. vjerojatno će vas provesti kroz neke druge elemente distribucije koda. 196 00:14:17,050 --> 00:14:27,360 Ovdje je sažetak funkcije nalaze u functions.php. 197 00:14:27,360 --> 00:14:31,710 >> Ok. Prvi je zadatak omogućiti korisnicima da se registrirate na web stranici. 198 00:14:31,710 --> 00:14:34,860 Upravo sada, postoji prijava oblik na web stranici, 199 00:14:34,860 --> 00:14:40,080 i daje vam se s nekoliko korisnika s lozinkama. 200 00:14:40,080 --> 00:14:42,130 Možete koristiti te korisnička imena i prijavite, 201 00:14:42,130 --> 00:14:45,140 ali želite omogućiti ljudima da svoje korisničko ime 202 00:14:45,140 --> 00:14:47,390 i sami dodati na web stranici. 203 00:14:47,390 --> 00:14:53,070 Raspored za registraciju je prilično sličan prijavu obliku, 204 00:14:53,070 --> 00:14:56,340 osim korisničko ime nije već postojećih, 205 00:14:56,340 --> 00:14:59,430 a korisnik također treba osigurati novu lozinku, 206 00:14:59,430 --> 00:15:02,440 i onda obično imamo lozinku potvrdu. 207 00:15:02,440 --> 00:15:06,580 Nakon što korisnik ulaza sve te informacije, 208 00:15:06,580 --> 00:15:10,620 želimo ih dodati u našu bazu podataka korisnika. 209 00:15:10,620 --> 00:15:12,970 Mi ćemo imati bazu podataka - SQL baze podataka - 210 00:15:12,970 --> 00:15:14,470 da ćemo referencirati. 211 00:15:14,470 --> 00:15:18,140 U toj bazi podataka, mi ćemo imati tablice sa svim korisnicima 212 00:15:18,140 --> 00:15:23,850 sadrži svoje korisničko ime, svoju lozinku, a također i koliko novca imaju. 213 00:15:23,850 --> 00:15:28,480 >> U registar, želimo im omogućiti da unesete te podatke. 214 00:15:28,480 --> 00:15:29,740 Mi želimo prikazati tu formu. 215 00:15:29,740 --> 00:15:32,210 Želimo biti sigurni da njihove lozinke - 216 00:15:32,210 --> 00:15:37,490 da su ušli jednom, a zatim i da su lozinke utakmicu kada su ga otvorili dva puta. 217 00:15:37,490 --> 00:15:42,240 Nakon svega što je učinio - pod pretpostavkom da su one pogreške provjeriti - 218 00:15:42,240 --> 00:15:45,120 onda želimo dodati one korisnike u našu bazu podataka. 219 00:15:45,120 --> 00:15:49,630 Konačno, nakon što ste se registrirali, to je prilično zgodan ako ne morate ponovno prijaviti 220 00:15:49,630 --> 00:15:51,000 Jednom kad ste registrirani, 221 00:15:51,000 --> 00:15:54,000 tako da ćemo ih prijaviti na web stranici ako ste se registrirali na uspješno. 222 00:15:54,000 --> 00:16:00,360 >> Prvi zadatak je prikazati u obliku, a to je zapravo će biti - 223 00:16:00,360 --> 00:16:04,920 cijeli ovaj proces registracije će se po uzoru prilično usko nakon prijave 224 00:16:04,920 --> 00:16:10,510 osim umjesto login.php možda ćete morati register.php. 225 00:16:10,510 --> 00:16:14,300 Umjesto login_form.php--koji je predložak - 226 00:16:14,300 --> 00:16:16,030 imat ćete registrirati obrazac. 227 00:16:16,030 --> 00:16:19,680 Vi ćete želite dodati još jednu polje - polje lozinku potvrda - 228 00:16:19,680 --> 00:16:23,450 umjesto samo jednog korisničkog imena i jedan lozinkom. 229 00:16:23,450 --> 00:16:28,120 Dalje, želimo provjeriti da li su lozinke slagala ili su prazne. 230 00:16:28,120 --> 00:16:38,560 Imamo kontroler - register.php--koji ide brinuti radi ove provjere. 231 00:16:38,560 --> 00:16:41,690 Kada se obrazac podnosi putem pošte metodom, 232 00:16:41,690 --> 00:16:47,050 onda sve one varijable su sadržana u post polju. 233 00:16:47,050 --> 00:16:52,280 Vi želite da biste bili sigurni da je vrijednost nakon niz na indeksu lozinkom 234 00:16:52,280 --> 00:16:58,080 odgovara potvrdom element. 235 00:16:58,080 --> 00:16:59,410 Vi želite da biste bili sigurni da oni nisu prazne, 236 00:16:59,410 --> 00:17:01,650 i želite da biste bili sigurni da su oni isti. 237 00:17:01,650 --> 00:17:05,960 >> Jedan zgodan stvar o PHP je da ne trebamo koristiti string usporediti više. 238 00:17:05,960 --> 00:17:08,410 Možemo koristiti jednako-jednak operatoru 239 00:17:08,410 --> 00:17:11,470  provjeriti jesu li nizovi su jednaki jedan drugom. 240 00:17:11,470 --> 00:17:14,960 Za rukovanje pogreškama, da ćete želite ispričati. 241 00:17:14,960 --> 00:17:17,150 Da se ispričavam, možete jednostavno pozvati funkciju 242 00:17:17,150 --> 00:17:21,910  a zatim odrediti vrstu poruke koju želite čuti. 243 00:17:21,910 --> 00:17:24,630 Tada želite dodati korisnika na bazu podataka. 244 00:17:24,630 --> 00:17:30,880 Do sada, svi smo radili samo se bavi lokalno s rezultatima obliku. 245 00:17:30,880 --> 00:17:33,940 Sada, mi zapravo žele da ih dodati u našu bazu podataka. 246 00:17:33,940 --> 00:17:38,890 Za to, prvo želim da biste bili sigurni da je korisničko ime nije prazno. 247 00:17:38,890 --> 00:17:44,550 Shvatite da na web stranici, ne možete imati više korisnika s istim imenom, 248 00:17:44,550 --> 00:17:50,010 tako da ćete želite biti sigurni da kada umetnete nešto u svoju bazu podataka - 249 00:17:50,010 --> 00:17:56,650 umetanje novog korisnika - onda ne dobijete sudar između postojećeg korisničkog imena 250 00:17:56,650 --> 00:17:59,150 i korisničko ime koje korisnik pokušava podnijeti. 251 00:17:59,150 --> 00:18:02,250 Za to, nakon što izvršite upit - 252 00:18:02,250 --> 00:18:08,760 umetanja određeni korisnik sa svojim lozinkom i početne količine novca - 253 00:18:08,760 --> 00:18:15,140 jednom nazoveš da upita, a zatim mySQL zapravo će se vratiti false ako to ne uspije. 254 00:18:15,140 --> 00:18:21,050 >> Struktura korisnika je takva da je korisničko ime je jedinstvena vrijednost, 255 00:18:21,050 --> 00:18:22,540 tako da se ne može imati više od jednog. 256 00:18:22,540 --> 00:18:30,080 Kada probati i umetnuti novi redak s imenom koji već postoji, 257 00:18:30,080 --> 00:18:34,470 da će se vratiti lažno - kao Booleova vrijednost false. 258 00:18:34,470 --> 00:18:45,320 Lukav stvar ovdje je da ćete želite provjeriti je li rezultat je rezultat Vašeg upita. 259 00:18:45,320 --> 00:18:52,320 Ako to ne uspije, onda ćete želite provjeriti s triple-jednaka operatera. 260 00:18:52,320 --> 00:18:55,420 To se zapravo događa provjeriti da li postoji neuspjeh ili ne, 261 00:18:55,420 --> 00:19:02,760 budući da je, u samo jednostavan jednako-jednaka, to bi bilo istinito, ako je red bio prazan. 262 00:19:02,760 --> 00:19:06,000 Rezultat neuspjeha ako postoji kolizija između korisničkih imena 263 00:19:06,000 --> 00:19:10,350 je stvarna vrijednost false. 264 00:19:10,350 --> 00:19:15,230 >> Ovdje je kako bi umetnuti u bazu podataka. 265 00:19:15,230 --> 00:19:19,220 Ovdje je upit da li će se kandidirati isključivo u SQL. 266 00:19:19,220 --> 00:19:25,750 Jedna stvar je da možete zapravo otići na web stranicu koja upravlja SQL baze podataka 267 00:19:25,750 --> 00:19:31,070 i poigrati se unosom ručno ni vrijednosti ili redaka. 268 00:19:31,070 --> 00:19:34,540 To će se čuti ono SQL izlaz. 269 00:19:34,540 --> 00:19:38,870 Također možete pokrenuti SQL naredbi unutar baze podataka 270 00:19:38,870 --> 00:19:42,200  i onda vidjeti što sintaksa bi moglo biti, 271 00:19:42,200 --> 00:19:46,790 a zatim prevesti u funkciji upita koje imamo u pset 7, 272 00:19:46,790 --> 00:19:51,120 što će biti vrlo sličan na upite da ste zapravo rade. 273 00:19:51,120 --> 00:19:54,570 >> Ako sam htjela umetnuti novi redak u mom tablice korisnika, 274 00:19:54,570 --> 00:20:01,240 onda bih navesti umetak u korisnika, što je ime mog stola. 275 00:20:01,240 --> 00:20:06,870 Onda bih navesti imena stupaca. 276 00:20:06,870 --> 00:20:13,230 Onda bih dati vrijednosti, zajedno s mojim lozinkom. 277 00:20:13,230 --> 00:20:17,080 Lozinke u našoj users tablici se ne pohranjuju samo kao string. 278 00:20:17,080 --> 00:20:19,440 Oni su pohranjeni kao šifrirane verziji, 279 00:20:19,440 --> 00:20:24,560 tako da ćete želite pokrenuti funkcije kriptu na stvarnoj lozinkom, 280 00:20:24,560 --> 00:20:29,680 i da će vam dati ispravnu vrstu pohrane za korisnike niza. 281 00:20:29,680 --> 00:20:34,960 Trčanje ovo će umetnuti novi redak u svoj tablice korisnika. 282 00:20:34,960 --> 00:20:39,020 >> Za rješavanje upita funkcije, 283 00:20:39,020 --> 00:20:43,100 prije u C koristili smo znak za postotak kao rezervirano mjesto. 284 00:20:43,100 --> 00:20:47,670 Isto tako, isti koncept rezervirano vrijedi i ovdje. 285 00:20:47,670 --> 00:20:50,720 S upitu, navedite cijeli upita, 286 00:20:50,720 --> 00:20:55,510 osim kad ste se bave varijabli kao ulaz u upitu, 287 00:20:55,510 --> 00:21:00,490 onda umjesto zapravo stavljajući ih iznutra - kao kad smo imali printf izjave u C. 288 00:21:00,490 --> 00:21:03,740 Mi bi staviti string, a zatim imaju rezervirano mjesto tamo, a onda nakon svakog 289 00:21:03,740 --> 00:21:06,990 zarez, odrediti koje varijable smo imali. 290 00:21:06,990 --> 00:21:14,480 Ovdje ćemo koristiti znak upitnika kao naš rezervirano 291 00:21:14,480 --> 00:21:21,670 a potom proći u svaku varijablu, odnosno kako bi, za rezervirana mjesta - 292 00:21:21,670 --> 00:21:24,420 gdje one varijable treba ići. 293 00:21:24,420 --> 00:21:29,470 Dakle, ovdje, prvo upitnik biti zamijenjen pravom korisničko ime 294 00:21:29,470 --> 00:21:33,610 onda drugi upitnik po lozinkom. 295 00:21:33,610 --> 00:21:37,000 >> Tada je konačno, nakon što ste ih registrira i da ih dodaju u bazu podataka, 296 00:21:37,000 --> 00:21:40,510 onda ih želite prijaviti na web stranici. 297 00:21:40,510 --> 00:21:45,320 Imamo vrstu super-globalnu varijablu sjednici. 298 00:21:45,320 --> 00:21:48,160 Sjednica traje određeni id, 299 00:21:48,160 --> 00:21:51,750 i da id odgovara korisnika koji trenutno prijavljeni 300 00:21:51,750 --> 00:21:56,380 Što ćete želite učiniti je pronaći ono što je njihovo korisnički ID 301 00:21:56,380 --> 00:22:03,710 i onda postaviti toj sjednici id kao da određenog korisnika id. 302 00:22:03,710 --> 00:22:07,560 Funkcija da ćete želite koristiti ovdje je SQL naredba 303 00:22:07,560 --> 00:22:15,150 da će dohvatiti zadnju umetnuta ID broj iz tablice. 304 00:22:15,150 --> 00:22:24,560 Zatim redovi će se zvati - it'll nazvati id - it'll dodijeliti naziv broju da se vraća. 305 00:22:24,560 --> 00:22:27,900 To ću nazvati taj id. 306 00:22:27,900 --> 00:22:33,370 Sada smo završili registraciju, i možemo krenuti dalje citirati. 307 00:22:33,370 --> 00:22:36,610 >> Citat omogućuje korisniku da unesete ime određenog fonda, 308 00:22:36,610 --> 00:22:41,940 a onda ću se vratiti odlike tog fonda. 309 00:22:41,940 --> 00:22:48,410 Što ćete želite učiniti ovdje je imati kontroler i neke predloške. 310 00:22:48,410 --> 00:22:53,380 U tom slučaju, mi ćemo imati kontroler koji će učiniti sve misliti za nas. 311 00:22:53,380 --> 00:23:01,210 To će se pogledati simbol, a zatim proći u vrijednosti do predložaka koji će ispisati. 312 00:23:01,210 --> 00:23:03,060 Mi ćemo imati dva predloške ovdje. 313 00:23:03,060 --> 00:23:07,260 Mi ćemo imati jedan predložak koji pruža formu u kojoj će se korisnici 314 00:23:07,260 --> 00:23:09,920 Ulaz je ime skladištu - ime udjela. 315 00:23:09,920 --> 00:23:16,030 Tada smo također idete da želite još jedan predložak koji prikazuje te vrijednosti. 316 00:23:16,030 --> 00:23:27,450 Možete pogledati u prijavu za primjer kako bi imati obrazac koji prihvaća unos, 317 00:23:27,450 --> 00:23:30,060 osim ovdje, samo želimo jedan polja. 318 00:23:30,060 --> 00:23:31,630 Mi ne želimo korisničko ime i lozinku polje. 319 00:23:31,630 --> 00:23:37,110 Mi samo želimo jedan tekstualno polje koje omogućuje korisniku da unesete naziv određenog fonda. 320 00:23:37,110 --> 00:23:40,110 Tada želite poslati te podatke - nakon što ste gledali gore taj stock - 321 00:23:40,110 --> 00:23:45,550 da quote_form.php. 322 00:23:45,550 --> 00:23:50,780 Potraži će vratiti simbol dionica, ime, i cijenu. 323 00:23:50,780 --> 00:23:53,910 Oni se nalaze unutar asocijativnog niza. 324 00:23:53,910 --> 00:24:01,390 Potražite pregledna funkciju unutar functions.php za više informacija 325 00:24:01,390 --> 00:24:04,010 Na povratku vrste onih. 326 00:24:04,010 --> 00:24:08,520 >> Sjajno! Dakle napokon, da ćete želite prikazati burzovne informacije. 327 00:24:08,520 --> 00:24:14,110 Vi ćete vjerojatno želite prikazati - you'll želite pristupiti tim varijablama. 328 00:24:14,110 --> 00:24:17,610 Nakon što su cijene u varijablu - 329 00:24:17,610 --> 00:24:20,860 kao i ime i simbol - 330 00:24:20,860 --> 00:24:25,550 onda ćete želite prikazati one u vašem stranici predloška. 331 00:24:25,550 --> 00:24:31,540 To predložak stranica bi se moglo nazvati show_quote.php ili nešto. 332 00:24:31,540 --> 00:24:39,660 Vaša stranica quote.php bi donijeti showa citat i onda prođe u svim onim vrijednostima. 333 00:24:39,660 --> 00:24:47,170 Zatim u php stranicu, vi ste zapravo ispisati te vrijednosti u HTML aspekt stranici. 334 00:24:47,170 --> 00:24:53,800 Vi samo koristiti funkciju ispisa i proći u cijenu. 335 00:24:53,800 --> 00:24:57,990 Postoje dva načina - možete ga spojite s dot operatora, 336 00:24:57,990 --> 00:25:02,230 ili koristiti rezervirano mjesto. 337 00:25:07,580 --> 00:25:12,750 >> Korisnici na kraju će se kupuju i prodaju dionice. 338 00:25:12,750 --> 00:25:18,450 Želimo omogućiti im neki način gledanja svih dionica koje su trenutno imaju. 339 00:25:18,450 --> 00:25:21,350 Mi ćemo pozvati da je njihov portfelj. 340 00:25:21,350 --> 00:25:26,180 Portfolio bi, vjerojatno za svakog korisnika, sadrže hrpa redaka 341 00:25:26,180 --> 00:25:31,760 navodeći vrstu dionici koju imaju, a zatim kako su mnogi od onih koje imaju. 342 00:25:31,760 --> 00:25:36,500 Naša postojeća tablica - upravo sada imamo korisnicima tablicu u našoj bazi podataka. 343 00:25:36,500 --> 00:25:41,780 Koji sadrži korisničko ime, kao i njihove lozinke i koliko novca imaju. 344 00:25:41,780 --> 00:25:50,390 Nema pravi način za pohranu svih svojih dionica u to. 345 00:25:50,390 --> 00:25:58,010 To nije kao možemo ubaciti nove stupce za svaku dionicu. 346 00:25:58,010 --> 00:26:03,650 To bi bilo jako, jako dugo red jer imamo beskonačno količinu 347 00:26:03,650 --> 00:26:06,200 vrsta dionica da bi oni mogli imati. 348 00:26:06,200 --> 00:26:09,150 Dakle, umjesto što ćemo učiniti je u istoj bazi podataka, 349 00:26:09,150 --> 00:26:15,000 imat ćemo korisnicima stol, ali onda također ćemo imati portfelja stol. 350 00:26:15,000 --> 00:26:18,430 Portfelj stol će definitivno biti povezan s tablice korisnika, 351 00:26:18,430 --> 00:26:24,600 ali umjesto struktura portfelja stol će imati podatke dionica, 352 00:26:24,600 --> 00:26:27,780 koliko dionica tog fonda korisnik ima, 353 00:26:27,780 --> 00:26:31,620 kao korisnikov posebno id broj. 354 00:26:31,620 --> 00:26:34,620 Imate korisnicima tablicu koja ima ID kao i korisničko ime, ljestve - 355 00:26:34,620 --> 00:26:40,130 koja je lozinka, šifrirana zaporka - 356 00:26:40,130 --> 00:26:42,130 a zatim iznos novca imaju. 357 00:26:42,130 --> 00:26:47,900 ID broj će biti povezan na ID broj iz portfelja. 358 00:26:47,900 --> 00:26:52,490 Portfelj samo bi imati simbol dionica, kao i dionice - 359 00:26:52,490 --> 00:26:55,410 broj dionica te dionica koje korisnik ima. 360 00:26:55,410 --> 00:26:58,520 U tom portfelja tablici koju bi u osnovi 361 00:26:58,520 --> 00:27:03,760 sve dionice posjeduju sve korisnike na svoje stranice. 362 00:27:03,760 --> 00:27:10,550 Kasnije, navesti samo određeni korisnik dionice - samo njihov portfelj - 363 00:27:10,550 --> 00:27:15,360 da bi dohvatili vrijednosti iz svog portfelja stolu, kao da 364 00:27:15,360 --> 00:27:19,930 id broj specifičan je za tog korisnika. 365 00:27:26,520 --> 00:27:34,890 >> Kada prikaz portfelja, da ćete želite prijaviti svaku od dionica u korisničkom portfelju. 366 00:27:34,890 --> 00:27:41,670 Vi ćete želite prijaviti na broj dionica i sadašnje vrijednosti tih dionica. 367 00:27:41,670 --> 00:27:45,950 To trenutna vrijednost tih dionica nije pohranjen u tablici portfelja 368 00:27:45,950 --> 00:27:51,640 jer to će biti ažuriranju - na minimum - svaki dan Yahoo. 369 00:27:51,640 --> 00:27:58,550 Da biste dobili tu informaciju, ne možete referencirati da iz vašeg SQL upita. 370 00:27:58,550 --> 00:28:02,400 Što funkcija omogućuje da za nas? Što funkcija će dobiti cijenu? 371 00:28:02,400 --> 00:28:09,110 To je pregledna, tako da pomoću lookup na određeni simbol će vam dati puno informacija. 372 00:28:09,110 --> 00:28:13,710 To će vam dati tri komada informacije - ime, simbol, kao i cijene. 373 00:28:13,710 --> 00:28:17,490 Nakon što lookup određeni simbol, a zatim možete dobiti cijenu, 374 00:28:17,490 --> 00:28:20,460 i onda možete koristiti cijenu koji će biti prikazani u svom portfelju. 375 00:28:20,460 --> 00:28:26,190 >> Portfelj također treba prikazati korisnikov trenutni saldo gotovine. 376 00:28:26,190 --> 00:28:30,310 To polje je spremljena unutar vašeg tablice korisnika. 377 00:28:30,310 --> 00:28:33,400 Pa onda prisjećajući se kako smo u osnovi nailazite na - 378 00:28:33,400 --> 00:28:36,850 imamo različite vrste PHP datoteka. 379 00:28:36,850 --> 00:28:40,160 Mi ćemo imati kontroler koji u osnovi se sve razmišljanja za vas. 380 00:28:40,160 --> 00:28:45,940 I onda imamo predložak u kojoj je predložak bavi izlaza podataka. 381 00:28:45,940 --> 00:28:50,790 Morate razmišljati o tome što varijabli kontroler će morati poduzeti u. 382 00:28:50,790 --> 00:29:01,630 Ako je riječ o portfelju koji Izlazi svaki naziv, simbol, i podijeliti broj, 383 00:29:01,630 --> 00:29:03,730 kao i trenutna cijena dionica, 384 00:29:03,730 --> 00:29:06,950 onda ćete želite pronaći neki način zapravo prolazi u - 385 00:29:06,950 --> 00:29:12,070 možete proći u niz vrijednosti koje se podudaraju s tim. 386 00:29:15,250 --> 00:29:24,360 >> Idemo u primjer kako biste mogli dohvatiti sve dionice 387 00:29:24,360 --> 00:29:26,210 u vlasništvu pojedinog korisnika. 388 00:29:26,210 --> 00:29:31,400 To se ne bavi - ali - uz cijenu dionica. 389 00:29:31,400 --> 00:29:33,520 Što bi to učiniti je pokrenuti upit. 390 00:29:33,520 --> 00:29:37,070 To bi dobili simbol, kao i dionica od - 391 00:29:37,070 --> 00:29:42,770 Zovem ovu tablicu, ali u ovom slučaju što bi to bilo? 392 00:29:42,770 --> 00:29:49,400 Što je ime od stola da smo se bave koja ima simbol i dionice 393 00:29:49,400 --> 00:29:52,280 za određenog korisnika? 394 00:29:52,280 --> 00:29:56,410 To je bilo korisnici ili portfelj. 395 00:29:56,410 --> 00:29:57,820 Portfolio. 396 00:29:57,820 --> 00:30:03,220 Što bi to učiniti je upita portfelj za simbolima i udjela 397 00:30:03,220 --> 00:30:04,920 za određenog korisnika. 398 00:30:04,920 --> 00:30:09,260 Evo, ja kažem, (SELECT simbol, dionica od tbl - 399 00:30:09,260 --> 00:30:12,280 ali umjesto stola, ideš zamijeniti to s portfelja. 400 00:30:12,280 --> 00:30:15,220 'Gdje je zapravo moje stanje. 401 00:30:15,220 --> 00:30:21,050 Ja govorim samo želim da se one asocijativne polja koja odgovaraju 402 00:30:21,050 --> 00:30:23,850  na ovom sljedećem stanju - id jednakima. 403 00:30:23,850 --> 00:30:27,600  Tada sam stavljajući rezervirano mjesto tamo i tada sjednici id. 404 00:30:27,600 --> 00:30:36,720 Što bi to učiniti je reći za svaki redak u redovima. 405 00:30:36,720 --> 00:30:40,940 To je uredan način, umjesto da zapravo postavili za petlje 406 00:30:40,940 --> 00:30:47,450 da ponovi nad svim indeksa, a zatim u PHP možete imati za-svaki petlju. 407 00:30:47,450 --> 00:30:53,520 >> Ako imate zadani niz, onda možete reći ću nazvati svaki uzastopni elementa - 408 00:30:53,520 --> 00:30:57,930 Idem zvati svaki element to ime. 409 00:30:57,930 --> 00:31:02,780 Dakle, za svaku od tih elemenata, ja ću ih nazvati ovo, 410 00:31:02,780 --> 00:31:04,500 onda ja mogu to učiniti. 411 00:31:04,500 --> 00:31:10,370 U to za svakoga, imate retke kao svoj stvarni niz, i svaki redak idete nazvati red. 412 00:31:10,370 --> 00:31:12,420 Svaki put se izvršava tijelo, 413 00:31:12,420 --> 00:31:16,960 to će ići gore i da će ažurirati red do sljedećeg elementa u redovima. 414 00:31:18,900 --> 00:31:25,260 >> Sada, u smislu kupnje dionica, 415 00:31:25,260 --> 00:31:29,500 ono što želimo učiniti je dobiti dionice koje korisnik želi kupiti 416 00:31:29,500 --> 00:31:35,300 i iznos dionica koje korisnik želi kupiti, a onda - ako žele - 417 00:31:35,300 --> 00:31:38,120 dodati da je zaliha na njihovu portfelju. 418 00:31:38,120 --> 00:31:40,310 Očito, ako oni kupuju nešto, onda to će smanjiti 419 00:31:40,310 --> 00:31:43,520 iznos novca imaju, tako da će se smanjiti njihov novac. 420 00:31:43,520 --> 00:31:48,380 Mi ćemo se baviti ažuriranju portfelja, kao i tablice korisnika, 421 00:31:48,380 --> 00:31:50,300 koji sadrži gotovinu. 422 00:31:50,300 --> 00:31:54,920 Ali prvo, morate dobiti stvarni zaliha i količinu dionica koje korisnik želi. 423 00:31:54,920 --> 00:32:00,010 Za to, morat ćete HTML obrazac koji će tražiti simbol skladištu 424 00:32:00,010 --> 00:32:03,360 koji želite kupiti, kao i broj dionica. 425 00:32:03,360 --> 00:32:08,300 Tada ćete želite dodati. 426 00:32:08,300 --> 00:32:13,750 Vi ćete želite odabrati određene vrijednosti. 427 00:32:13,750 --> 00:32:19,670 Mi smo prošli kroz ovaj malo već, ali kada pokušavate dobiti određene retke - 428 00:32:19,670 --> 00:32:22,020 dohvatiti određene retke iz SQL tablice, 429 00:32:22,020 --> 00:32:24,290 ovo je sljedeća sintaksa. 430 00:32:24,290 --> 00:32:28,400 Vi ste odabrali, a zatim ako navedete zvijezdu, 431 00:32:28,400 --> 00:32:31,830 da je u osnovi će se vratiti cijeli, cijeli red za vas. 432 00:32:31,830 --> 00:32:36,890 Onda opet, imate stanje gdje, a onda ste odredili - 433 00:32:36,890 --> 00:32:39,990 Ja samo želim korisničko ime biti jednaka mail-u, 434 00:32:39,990 --> 00:32:46,660 tako da će dohvatiti redak u korisnike koji odgovara mail-u. 435 00:32:46,660 --> 00:32:52,860 >> Kad korisnik želi dodati udio u portfelju, 436 00:32:52,860 --> 00:32:54,400 trebate provjeriti za nekoliko pogrešaka. 437 00:32:54,400 --> 00:32:57,680 Vi želite da biste bili sigurni da je korisnik zapravo može priuštiti dionice, 438 00:32:57,680 --> 00:33:00,810 tako da ćete želite da provjerite svoj novac. 439 00:33:00,810 --> 00:33:05,810 Prije smo koristili zvijezdu dohvatiti cijeli redak iz SQL tablice. 440 00:33:05,810 --> 00:33:08,930 Ali ovdje, zapravo možemo samo navesti da želim samo jedna vrijednost - 441 00:33:08,930 --> 00:33:10,080 Želim samo gotovinu. 442 00:33:10,080 --> 00:33:17,970 Dakle, ovdje, to bi vratiti novac za korisnika s ID broj jedan. 443 00:33:17,970 --> 00:33:25,940 Ako korisnik već kupio određenu zalihu, ali onda kupuje više od tog fonda, 444 00:33:25,940 --> 00:33:30,440 onda u svom portfelju - ne želite zasebnu liniju, 445 00:33:30,440 --> 00:33:34,770 drugi red koji sadrži tu novu transakciju. 446 00:33:34,770 --> 00:33:37,950 Vi zapravo želite ažurirati iznos. 447 00:33:37,950 --> 00:33:42,530 Sve što se mijenja je stvarno iznos dionica koje da korisnik posjeduje. 448 00:33:42,530 --> 00:33:47,730 Ako koristite umetke u upitu - pa to je samo umetnuti u svoj portfelj svih tih vrijednosti - 449 00:33:47,730 --> 00:33:51,710 korisnikov ID broj kao simbol dionica koje oni kupuju 450 00:33:51,710 --> 00:33:57,750 i dionice, onda ćete također želite navesti, dobro, ako sam utrčati dvostrukom ključu - 451 00:33:57,750 --> 00:34:00,750 u ovom slučaju, duple ključ je ne samo korisnikov ID, ali također je dioničko simbol - 452 00:34:00,750 --> 00:34:08,340 jer možete imati samo - naša pretpostavka je da možete imati samo jedan redak 453 00:34:08,340 --> 00:34:10,699  koji odgovara jednom određenom simbolu. 454 00:34:10,699 --> 00:34:13,659 Dakle, na duple tipke - ako naiđete na sudara postoji - 455 00:34:13,659 --> 00:34:18,520 vi ste samo ide za ažuriranje dionica na novu vrijednost. 456 00:34:18,520 --> 00:34:23,290 Dionice iznosi ono što smo imali prije plus broju dionica koje je korisnik kupuju. 457 00:34:27,790 --> 00:34:31,090 >> Sada kada smo ažurirali portfelja stol, 458 00:34:31,090 --> 00:34:34,730 ćemo želite ažurirati korisnikovu gotovinu. 459 00:34:34,730 --> 00:34:40,300 To je u users tablici, tako da ćemo se oduzimanjem određeni iznos od novca. 460 00:34:40,300 --> 00:34:46,270 Vjerojatno, to će biti novčani iznosi novčanih minus - i onda određeni iznos. 461 00:34:46,270 --> 00:34:50,560 Da biste ažurirali gotovine, što bi - 462 00:34:50,560 --> 00:34:55,699 ako sam htjela oduzeti novac od mail-u, onda bih pokrenuti ovaj upit - 463 00:34:55,699 --> 00:35:00,220 'Promjeni Korisnici', a zatim postavite novčani stupac novcu - 464 00:35:00,220 --> 00:35:07,300 >> Ja bih ukloniti 9.999 dolara samo ako ime je jednak mail-u. 465 00:35:07,300 --> 00:35:12,020 No, u tom slučaju, ne želimo oduzeti 9999 posebno. 466 00:35:12,020 --> 00:35:17,610 Želimo odrediti, dobro, želimo oduzimati trenutnu cijenu dionica 467 00:35:17,610 --> 00:35:22,400 pomnožen s brojem dionica koje oni kupuju. 468 00:35:25,260 --> 00:35:29,910 >> Sada smo im dopustili da vide sve dionice koje imaju, 469 00:35:29,910 --> 00:35:33,080 kao i kupiti više dionica. 470 00:35:33,080 --> 00:35:37,430 Također smo prethodno im je omogućilo da pogledate trenutnu cijenu dionice. 471 00:35:37,430 --> 00:35:40,030 Ovdje želimo im omogućiti da ih proda. 472 00:35:40,030 --> 00:35:42,160 Prvo želimo prikazati u osnovi - 473 00:35:42,160 --> 00:35:45,270 želimo im omogućiti da vidite sve dionice koje imaju, 474 00:35:45,270 --> 00:35:53,170 pa ovdje želimo prikazati sve retke iz portfelja. 475 00:35:53,170 --> 00:35:56,650 Ako se odlučite prodati određenu dionica, 476 00:35:56,650 --> 00:35:59,140 onda ćemo pretpostaviti da oni žele prodati sve to. 477 00:35:59,140 --> 00:36:04,350 Oni nisu samo ide na prodaju 50% svojih dionica, oni će prodati 100% od toga. 478 00:36:04,350 --> 00:36:08,630 Mi samo možemo izbrisati cijeli redak iz portfelja. 479 00:36:08,630 --> 00:36:17,520 Možemo izbrisati danog korisnika dionica određenog simbola. 480 00:36:17,520 --> 00:36:21,410 Tu je sintaksa za to. 481 00:36:21,410 --> 00:36:22,710 >> Tada želimo ažurirati gotovinu. 482 00:36:22,710 --> 00:36:30,930 Mi ćemo biti dodajući u gotovini jednaka količini dionica koje se prodaje 483 00:36:30,930 --> 00:36:34,640 pomnožen trenutne cijene dionica - 484 00:36:34,640 --> 00:36:38,610 ne cijena po kojoj ih je kupio, nego cijena po kojoj su - 485 00:36:38,610 --> 00:36:40,500 trenutna cijena kad su ga prodaju. 486 00:36:40,500 --> 00:36:43,660 Za upućivanje trenutnu cijenu dionice, 487 00:36:43,660 --> 00:36:49,120 ćete želite koristiti lookup, koji će vam dati cijenu dionice 488 00:36:50,030 --> 00:36:52,650 u ovom trenutku. 489 00:36:52,650 --> 00:36:55,930 >> Sada smo s lijeve strane povijesti, 490 00:36:55,930 --> 00:37:00,170 koji želite omogućiti korisniku da pratiti sve njihove transakcije - 491 00:37:00,170 --> 00:37:03,040 želi vidjeti kad su prodali nešto, kad god je kupio dionice. 492 00:37:03,040 --> 00:37:08,870 Želimo da odredite vrijeme u kojem su oni i učinili da, kao i koliko su kupili 493 00:37:08,870 --> 00:37:11,650 i što je to dionica. 494 00:37:11,650 --> 00:37:17,800 Imamo li bilo struje, postojeću strukturu koja određuje da? 495 00:37:17,800 --> 00:37:25,230 Pa, imamo portfolio koji prikazuje broj dionica koje korisnik ima 496 00:37:25,230 --> 00:37:26,470 za određenu dionicu. 497 00:37:26,470 --> 00:37:34,060 Ali mi smo strukturiranju portfelja na način da se aktualizira kad smo kupiti više, 498 00:37:34,060 --> 00:37:40,190 dok povijest trebala - ako kupite jabuka, 10 dionica njega, a potom na prodaju 5, 499 00:37:40,190 --> 00:37:44,040 onda bi željeli vidjeti one odvojeno kao zasebne akcije, odvojeni redaka. 500 00:37:44,040 --> 00:37:48,520 Dok se ta akcija zamišljati da je u našem portfelju tablici 501 00:37:48,520 --> 00:37:52,540 će samo biti promjena na tom određenom retku, 502 00:37:52,540 --> 00:37:55,740  tako da smo vjerojatno idete da želite drugu tablicu. 503 00:37:55,740 --> 00:38:00,460 U našoj bazi podataka, mi imamo korisnicima stol, mi imamo portfelja stol, 504 00:38:00,460 --> 00:38:04,090 i sad ćemo vjerojatno želite stol povijesti. 505 00:38:04,090 --> 00:38:08,070 To stol povijest može pratiti trenutni datum, 506 00:38:08,070 --> 00:38:12,800 kao i posebno dioničko simbol, kao i koliko dionica, 507 00:38:12,800 --> 00:38:15,410 i što onda akcija je - 508 00:38:15,410 --> 00:38:18,800 da li su one kupuju dionice ili da li su ih prodaju. 509 00:38:20,660 --> 00:38:25,720 >> Za rješavanje datuma, postoji nekoliko načina na koje možete to učiniti. 510 00:38:25,720 --> 00:38:28,820 PHP ima način praćenja datuma, koji možete pogledati do sebe. 511 00:38:28,820 --> 00:38:33,990 U SQL možete koristiti bilo sada ili trenutni timestamp. To je do vas. 512 00:38:33,990 --> 00:38:40,720 Samo pazite da svaki put kada korisnik kupuje ili prodaje, vi ćete biti ažuriranju svoj novac 513 00:38:40,720 --> 00:38:46,750 u users tablici, vi ćete biti ažuriranju retke u tablici portfelja, 514 00:38:46,750 --> 00:38:50,900 onda ćete također biti ažuriranju povijest, 515 00:38:50,900 --> 00:38:56,260 tako da će biti tri odvojene SQL upita da ćete se pozivaju tamo. 516 00:38:58,640 --> 00:39:01,530 Imamo hrpu funkcionalnosti sada. 517 00:39:01,530 --> 00:39:10,600 >> Samo par podsjetnik da u datoteci indeksa, da ćete želite povezati s najmanje vaše - 518 00:39:10,600 --> 00:39:15,550 ali ćete želite omogućiti korisniku da link na buy.php stranici. 519 00:39:15,550 --> 00:39:23,560 To će omogućiti korisniku - buy.php je kontroler, tako da će se bilo 520 00:39:23,560 --> 00:39:29,170 vam poslati - to će vas poslati u obliku koji vam omogućuje da gledati stvari. 521 00:39:29,170 --> 00:39:34,420 Imamo povijest. Mi smo se odjaviti, uzimajući citat i onda prodaju. 522 00:39:34,420 --> 00:39:37,350 Oni su na minimum što želite pokazati. 523 00:39:37,350 --> 00:39:43,640 U smislu portfelja, portfelj je zapravo prikazano na index stranici. 524 00:39:43,640 --> 00:39:52,050 Ako idemo na indeksu, ovdje vidimo da to čini portfolio.php 525 00:39:52,050 --> 00:40:00,050 i prolazi u asocijativni niz - u osnovi naslov jednak portfelj. 526 00:40:00,050 --> 00:40:02,610 Dakle, ovo je kontroler. 527 00:40:02,610 --> 00:40:08,000 Ako idemo na predložak portfolio.php, 528 00:40:08,000 --> 00:40:18,060 onda sve to ima je - prikazuje osnovi slika koja kaže, oh, ova stranica je u izradi. 529 00:40:18,060 --> 00:40:23,810 Kasnije, nakon što prođe u - you'll biti prolazi u osnovi više određene informacije. 530 00:40:23,810 --> 00:40:27,400 Umjesto samo naslov, vjerojatno ćete biti prolazi u više stvari. 531 00:40:27,400 --> 00:40:32,010 Nakon što su te vrijednosti, onda portfolio.php može nositi s tim vrijednostima 532 00:40:32,010 --> 00:40:34,490 te ih ispisuje u bilo kakve narudžbe. 533 00:40:34,490 --> 00:40:41,660 >> Nakon što ste provesti sve one, također je potrebno provesti jedan više značajku. 534 00:40:41,660 --> 00:40:44,890 To može biti dopuštajući korisniku da promijeni svoje lozinke, 535 00:40:44,890 --> 00:40:50,110 vratiti svoju lozinku ako ste ga zaboravili - pa za poništavanje lozinke, a zatim 536 00:40:50,110 --> 00:40:54,560 vjerojatno ćete također žele urediti registar, tako da im omogućuje da odredite e-mail, 537 00:40:54,560 --> 00:40:57,910 pa ako oni zaboraviti svoje lozinke, onda oni mogu dobiti taj. 538 00:40:57,910 --> 00:41:02,870 Oni vjerojatno mogu ući u svoje korisničko ime, a zatim e-mail će biti poslan na njih 539 00:41:02,870 --> 00:41:06,180 s vezom biti u mogućnosti vratiti svoje lozinke. 540 00:41:06,180 --> 00:41:10,980 Možete imati nešto što omogućuje korisnicima da biste dobili račune 541 00:41:10,980 --> 00:41:12,380 svaki put kad kupiti ili prodati nešto, 542 00:41:12,380 --> 00:41:19,910 i onda napokon, omogućiti im da dodate novac na svoje web stranice. 543 00:41:19,910 --> 00:41:24,970 Samo da se vrati u koncept kontrolera i predložaka malo. 544 00:41:24,970 --> 00:41:31,170 Imat ćete nešto slično - tako da ćete imati kontroler ovdje. 545 00:41:31,170 --> 00:41:35,080 Upravo sada, mi smo u potrazi na login.php primjer. 546 00:41:35,080 --> 00:41:38,220 Kada imamo kontroler, u osnovi to će potrajati dva slučaja. 547 00:41:38,220 --> 00:41:42,090 Kada smo kontrolere, mi smo u ovom komadu koji smo također vrsta koje se bave 548 00:41:42,090 --> 00:41:43,880 kada imamo oblike kao dobro. 549 00:41:43,880 --> 00:41:47,500 Regulator će u osnovi imaju odvojene akcije - 550 00:41:47,500 --> 00:41:53,880 jednom ako oblik već poslali, a zatim dvije ako korisnik dolazi na toj stranici 551 00:41:53,880 --> 00:41:56,870 po prvi put i još uvijek treba ulaz koji oblik. 552 00:41:56,870 --> 00:42:02,820 >> Ja ću skočiti na tom slučaju prije nego što odete do prvog slučaja ima oblik u. 553 00:42:02,820 --> 00:42:12,640 Ovdje ćemo reći, ako je oblik podnesen s metodom post - 554 00:42:12,640 --> 00:42:13,580 Ne brinite o tome malo. 555 00:42:13,580 --> 00:42:19,780 Ne brinite o tome previše, ali razumijem da je u osnovi ova funkcija bavi 556 00:42:19,780 --> 00:42:22,430 da li oblik podnesen ili ne. 557 00:42:22,430 --> 00:42:25,640 Ovaj uvjet je istina, ako korisnik podnese obrazac. 558 00:42:25,640 --> 00:42:45,940 Ako ne, onda ćemo se želite nazvati Render login_form.php, a potom proći u naslovu. 559 00:42:45,940 --> 00:42:48,010 Ovaj naslov je samo u osnovi će se pojaviti u zaglavlju. 560 00:42:48,010 --> 00:42:54,990 Što to znači je u osnovi kaže, ok - dobro, ako korisnik odlazi login.php 561 00:42:54,990 --> 00:43:00,310 i nije zapravo prijavljeni, onda želim da ih poslati na stranici koja ima tu formu 562 00:43:00,310 --> 00:43:03,160 što im omogućuje da unesete korisničko ime i lozinku. 563 00:43:03,160 --> 00:43:07,590 Tada sam ići na login_form, a zatim da ima stvarni oblik. 564 00:43:07,590 --> 00:43:13,750 Zatim, nakon što korisnik pošalje taj oblik, oni će ga predati login.php 565 00:43:13,750 --> 00:43:15,840 s metodom posta. 566 00:43:15,840 --> 00:43:21,560 Tada sam zapravo ću ući u ovaj dio moje ako-drugo petlje. 567 00:43:21,560 --> 00:43:29,560 Onda je ovdje da se bave vrijednosti unesenih u obrazac. 568 00:43:29,560 --> 00:43:32,800 To je da se ovdje bavimo s onima. 569 00:43:32,800 --> 00:43:40,860 >> Onda kada se bave s tim vrijednostima - ako ste se bave - 570 00:43:40,860 --> 00:43:46,640 recimo imamo posla s quote.php stranici gdje netko može ulaz zalihu da 571 00:43:46,640 --> 00:43:49,950 žele gledati, a onda vidjeti da zaslon - 572 00:43:49,950 --> 00:43:52,850 to je vrsta slična ovdje. 573 00:43:52,850 --> 00:43:56,070 Ovdje imamo prijavu obrazac - you'd vjerojatno imati citat obrazac - 574 00:43:56,070 --> 00:44:00,290 ali onda kada korisnik zapravo je podnio tu informaciju, 575 00:44:00,290 --> 00:44:04,810 onda ćete želite kontroler proći u drugi predložak 576 00:44:04,810 --> 00:44:07,430 koji će im pokazati da stvarne podatke. 577 00:44:07,430 --> 00:44:11,250 Pa onda desno oko ovdje, onda ćete vjerojatno - 578 00:44:11,250 --> 00:44:18,830 oko kraju svoje stanje ovdje - ako je metoda jednako post - 579 00:44:18,830 --> 00:44:22,520 onda ćete vjerojatno želite učiniti drugu stranicu - show citat - 580 00:44:22,520 --> 00:44:28,040 koji vam šalje na tu stranicu - show_quote.php-- 581 00:44:28,040 --> 00:44:34,120 i onda u toj datoteci će referencirati te vrijednosti. 582 00:44:34,120 --> 00:44:36,480 Ima li to smisla? 583 00:44:36,480 --> 00:44:40,390 >> Imamo kontroler koji u osnovi bavi dva slučaja - 584 00:44:40,390 --> 00:44:42,710 da li ste unijeli oblik u ili ne. 585 00:44:42,710 --> 00:44:43,950 Ako niste unijeli oblik, 586 00:44:43,950 --> 00:44:47,300 onda će vas preusmjeriti na tom obrascu, koji će vas vratiti na tu stranicu. 587 00:44:47,300 --> 00:44:54,020 Zatim, nakon što su informacije u kontroleru, to tijelo će se nositi s tim 588 00:44:54,020 --> 00:44:59,750 informacije koliko je potrebno - bilo gledajući vrijednosti dionica, 589 00:44:59,750 --> 00:45:04,150 , a zatim nakon što je pogledao one vrijednosti te ih ima u lijepo oblikovani niz, 590 00:45:04,150 --> 00:45:08,180 onda mogu proći taj niz u predložak stranice 591 00:45:08,180 --> 00:45:10,330  koja se bavi izlaza tu informaciju. 592 00:45:10,330 --> 00:45:14,680 >> Opet, budući da je webu, to će biti zabavno. 593 00:45:14,680 --> 00:45:20,310 Mi smo izvan C, tako da nismo ograničeni na ASCII i tog terminala izlaz, 594 00:45:20,310 --> 00:45:21,800 pa zabavite se s tim. 595 00:45:21,800 --> 00:45:24,920 Možete ga napraviti kao vizualni god želite. 596 00:45:24,920 --> 00:45:31,860 Možete omogućiti korisnicima da unesete milijuna dolara na vrijeme, 597 00:45:31,860 --> 00:45:34,730 ili ih ograničiti i biti stvarno znači i omogućiti im samo unesite jedan peni u isto vrijeme 598 00:45:34,730 --> 00:45:36,330 ili nešto slično. 599 00:45:36,330 --> 00:45:38,550 Definitivno budite sigurni da se zabavite s tim. 600 00:45:38,550 --> 00:45:47,030 >> PHP kod je malo jednostavniji da je malo lakše map svoj pseudocode 601 00:45:47,030 --> 00:45:50,070 u stvarne provedbe. 602 00:45:50,070 --> 00:45:56,320 Dakle, definitivno zabavite se uz to, jer to je zapravo naš zadnji komad u CS50. 603 00:45:56,320 --> 00:46:01,150 Uz to, ovo je bio Walkthrough 7. 604 00:46:01,150 --> 00:46:04,640 Nakon što završite gledajući prohod i završio svoj pset, 605 00:46:04,640 --> 00:46:09,590 onda su to također psets, a sada smo na konačni proizvod - 606 00:46:09,590 --> 00:46:12,330 nakon što smo dobili kroz kvizu 1. 607 00:46:12,330 --> 00:46:16,200 Onda nadamo se možete koristiti alate koje ste naučili iz psets - 608 00:46:16,200 --> 00:46:21,980 ne samo sintaksa, ali više apstraktni pojam kako da se sigurno - 609 00:46:21,980 --> 00:46:24,950 sviđa, želim to učiniti i onda zapravo provedbi toga. 610 00:46:24,950 --> 00:46:28,740 Učenje kako da se bore kroz sintaksu i distribucije koda. 611 00:46:28,740 --> 00:46:33,020 Čitanje tuđih kôd, a zatim tumačenje da koristite postojeće funkcije. 612 00:46:33,020 --> 00:46:37,360 >> Dakle, sretno s posljednjeg pset. 613 00:46:37,360 --> 00:46:39,930 Prošlo je zadovoljstvo voditi Walkthroughs. 614 00:46:39,930 --> 00:46:40,940 Nadam se da sam bila od pomoći za vas. 615 00:46:40,940 --> 00:46:46,560 To su bili Walkthroughs, i hvala puno. 616 00:46:52,580 --> 00:46:56,200 [CS50.TV]