1 00:00:00,000 --> 00:00:03,000 [Powered by Google Translate] [Problema Walkthrough Set 7] 2 00:00:03,000 --> 00:00:04,400 [Zamyla Chan] [Universitatea Harvard] 3 00:00:04,400 --> 00:00:07,640 [Acest lucru este CS50] [CS50.TV] 4 00:00:07,640 --> 00:00:12,090 >> Bună ziua tuturor, si bun venit la Walkthrough 7, CS50 Finante. 5 00:00:12,090 --> 00:00:15,090 Acum suntem oficial terminat cu toate psets în CS50, 6 00:00:15,090 --> 00:00:19,380 și suntem tocmai a plecat cu unul mai mult, care va fi o punere în aplicare distractiv 7 00:00:19,380 --> 00:00:23,770 de un site web unde utilizatorii se pot conecta la CS50 Finanțe 8 00:00:23,770 --> 00:00:25,830 și să cumpere și să vândă stocurile. 9 00:00:25,830 --> 00:00:32,280 >> Astăzi, vom avea câteva instrumente la dispoziția noastră. 10 00:00:32,280 --> 00:00:34,320 Vom vorbi despre permisiuni. 11 00:00:34,320 --> 00:00:36,380 Ori de câte ori aveți un folder Web, 12 00:00:36,380 --> 00:00:40,800 ai de gând să doriți să permiteți utilizatorilor să execute anumite fișiere 13 00:00:40,800 --> 00:00:42,500 dar, de asemenea, citit altele, 14 00:00:42,500 --> 00:00:45,150 asa ca vom privi în permisiunile și cum puteți seta cele. 15 00:00:45,150 --> 00:00:49,630 Apoi ne-am de gând să se uite în PHP, HTML, și codul SQL. 16 00:00:49,630 --> 00:00:51,990 >> În primul rând, permisiuni. 17 00:00:51,990 --> 00:00:56,060 Când ești în terminalul într-un anumit director, 18 00:00:56,060 --> 00:01:00,430 atunci ceea ce vrei sa faci este vreți să rulați comanda chmod. 19 00:01:00,430 --> 00:01:03,750 Asta e urmat fie de litere sau cifre 20 00:01:03,750 --> 00:01:08,100 corespunde cu ceea ce practic vor ca lumea să vadă, 21 00:01:08,100 --> 00:01:09,830 te pentru a vedea, etc 22 00:01:09,830 --> 00:01:13,350 De exemplu, ori de câte ori aveți un folder, 23 00:01:13,350 --> 00:01:15,560 atunci vrei ca dosarul să fie executabil de toată lumea că vede, 24 00:01:15,560 --> 00:01:19,500 Deci, ceea ce ar face este că ar putea rula comanda chmod o + x 25 00:01:19,500 --> 00:01:21,050 și apoi numele folderului. 26 00:01:21,050 --> 00:01:28,110 Când aveți un fișier, cum ar fi fișiere CSS sau fișiere imagine - 27 00:01:28,110 --> 00:01:33,060 cum ar fi JPEG și bitmap-uri, lucruri de genul asta, sau orice cod JavaScript - 28 00:01:33,060 --> 00:01:36,440 vrei ca să fie citite de toată lumea, 29 00:01:36,440 --> 00:01:39,880 astfel încât, atunci ceea ce faci este ai putea folosi wildcard - 30 00:01:39,880 --> 00:01:41,650 care este un asterisc - 31 00:01:41,650 --> 00:01:46,190 pentru a indica în principal în dosarul CSS - tot în acel dosar - 32 00:01:46,190 --> 00:01:48,740  Am de gând să spun că va fi citit de toată lumea. 33 00:01:48,740 --> 00:01:54,220 Cu permisiuni, atunci când vom folosi literele, 34 00:01:54,220 --> 00:01:57,610 putem folosi, de asemenea, numere de schimb. 35 00:01:57,610 --> 00:02:00,900 Deci, veți vedea că în cele din urmă atunci când vrei ceva sa fie executabil - 36 00:02:00,900 --> 00:02:02,810 care este reprezentată de numărul 1 - 37 00:02:02,810 --> 00:02:08,340 ceva să fie ușor de citit este numărul 4 și apoi - 38 00:02:08,340 --> 00:02:10,590 scriere este numărul 2 - 39 00:02:10,590 --> 00:02:13,670 și așa mai departe, în esență atunci când doriți o combinație a celor, apoi adăugați-le. 40 00:02:13,670 --> 00:02:15,860 Daca vrei ca ceva să fie ușor de citit, scriere, și executabil, 41 00:02:15,860 --> 00:02:21,970 atunci s-ar adăuga 4, 2, și 1 și care ar da 7, 42 00:02:21,970 --> 00:02:26,230 apoi ori de câte ori aveți un folder pe care doriți să fie executabil de toată lumea - 43 00:02:26,230 --> 00:02:31,380 precum și ușor de citit si scris - apoi face că 7, 1, 1. 44 00:02:31,380 --> 00:02:38,140 Asta ar fi 7 pentru tine, apoi 1 pentru alte persoane. 45 00:02:38,140 --> 00:02:42,870 Când aveți spec., acesta va specifica de fapt care foldere și fișiere care 46 00:02:42,870 --> 00:02:45,040 Trebuie să fie chmod-ed în mod special. 47 00:02:45,040 --> 00:02:47,920 De exemplu, atunci când aveți foldere - acestea sunt 7-1-1 - 48 00:02:47,920 --> 00:02:52,690 atunci când aveți imagini, sau HTML, CSS, JavaScript, 49 00:02:52,690 --> 00:02:55,870 apoi cei care se vor a fi de 6, 0, 4 - sau 6, 4, 4 - 50 00:02:55,870 --> 00:03:00,030 și apoi fișierele PHP sunt de gând să fie de 6, 0, 0. 51 00:03:00,030 --> 00:03:04,940 Ideea din spatele că este faptul că utilizatorii nu ar trebui să vedeți, de fapt codul PHP, 52 00:03:04,940 --> 00:03:08,370 dar fi doar posibilitatea de a vedea de ieșire. 53 00:03:08,370 --> 00:03:11,030 >> Minunat! Mutarea în PHP. 54 00:03:11,030 --> 00:03:18,850 Pur și simplu, ori de câte ori doriți un fișier PHP, sufixul fișierul este. Php. 55 00:03:18,850 --> 00:03:22,000 De asemenea, puteți amesteca HTML cu cod PHP. 56 00:03:22,000 --> 00:03:24,880 Dacă aveți un fișier HTML, de exemplu, 57 00:03:24,880 --> 00:03:32,520 atunci puteți să-l includeți în unghiul din stânga, semn de întrebare, php - 58 00:03:32,520 --> 00:03:39,320 pune codul php - și apoi închideți care cu o altă semn de întrebare și un unghi drept. 59 00:03:39,320 --> 00:03:45,020 Variabile în PHP sunt mult mai ușor de a face cu mult variabile în C. 60 00:03:45,020 --> 00:03:50,310 Orice variabila doar începe cu un semn dolar în fața ei, și ei slab tastat. 61 00:03:50,310 --> 00:03:53,470 Asta înseamnă că nu aveți nevoie să vă faceți griji cu privire la stabilirea ceva 62 00:03:53,470 --> 00:03:55,020 egală cu un șir sau un număr întreg. 63 00:03:55,020 --> 00:03:57,710 Puteți să spun pur și simplu, acesta este numele meu variabilei 64 00:03:57,710 --> 00:04:00,390 și apoi aceasta este valoarea sa, 65 00:04:00,390 --> 00:04:03,280 așa că va fi mai ușor să se ocupe de acolo. 66 00:04:03,280 --> 00:04:08,220 >> Un alt lucru este că PHP vă permite să utilizați tablouri asociative. 67 00:04:08,220 --> 00:04:11,330 Puteți defini pur și simplu doar un array ca tine ar fi, în C 68 00:04:11,330 --> 00:04:14,900 prin a spune, dolar semn-numele dvs. de matrice-egal, 69 00:04:14,900 --> 00:04:22,600 și apoi în paranteze pătrate au practic doar lista de valori ale tuturor elementelor din matrice. 70 00:04:22,600 --> 00:04:27,160 Dar, în PHP ce se poate face, de asemenea, este specifica practic - 71 00:04:27,160 --> 00:04:31,050 e un fel de funcție hash. 72 00:04:31,050 --> 00:04:34,410 Puteți specifica indexul - ceea ce ai de gând să-l numim - 73 00:04:34,410 --> 00:04:37,030 și apoi care corespunde la o valoare. 74 00:04:37,030 --> 00:04:42,880 Dacă treci de fapt, într-un = 1, b = 2, c = 3, 75 00:04:42,880 --> 00:04:50,820 apoi matrice la o indicele ar da 1. 76 00:04:50,820 --> 00:04:56,600 Acest lucru vă va încălzi PSET cu unele PHP într-o secțiune de întrebări, 77 00:04:56,600 --> 00:04:59,240 și apoi vom arunca cu capul în CS50 Finanțe. 78 00:04:59,240 --> 00:05:02,650 >> Avem un cuplu de - avem unele funcționalități, practic, 79 00:05:02,650 --> 00:05:05,130 să pună în aplicare în acest site. 80 00:05:05,130 --> 00:05:10,440 Dorim pentru a permite utilizatorilor să se înregistreze pe site-ul nostru cu un nume de utilizator și o parolă. 81 00:05:10,440 --> 00:05:13,670 Vrem să le permită să se uite un citat, 82 00:05:13,670 --> 00:05:19,330 și apoi ne-ar imprima numele de acel citat, precum și prețul curent, care este la. 83 00:05:19,330 --> 00:05:26,830 Ne dorim pentru a le permite să vadă un portofoliu de toate acțiunile pe care le-au cumparat pana acum. 84 00:05:26,830 --> 00:05:34,240 De asemenea, dorim să le permită să cumpere acțiuni, precum și să le vândă. 85 00:05:34,240 --> 00:05:37,540 Și apoi în cele din urmă, dorim să le permite să vadă istoria 86 00:05:37,540 --> 00:05:39,490 a tuturor tranzacțiilor pe care le-am făcut. 87 00:05:39,490 --> 00:05:41,540 Apoi, în cele din urmă, după ce ați implementat toate că, 88 00:05:41,540 --> 00:05:45,110 atunci ești liber să pună în aplicare o caracteristică suplimentară. 89 00:05:45,110 --> 00:05:46,610 Vom merge în cele. 90 00:05:46,610 --> 00:05:51,330 Acestea pot fi fie permite utilizatorilor pentru a obține bani în plus prin depunerea de numerar în plus, 91 00:05:51,330 --> 00:05:54,550 sau ai putea permite acestora să schimbe parola, sau ceva de genul asta, 92 00:05:54,550 --> 00:06:00,590 prin e-mail o confirmare de primire atunci când cumpără sau vinde un stoc. 93 00:06:00,590 --> 00:06:05,370 Există o listă limitată de caracteristici pe care le-ar putea pune în aplicare tine, 94 00:06:05,370 --> 00:06:08,340 asa ca asta e ultima acolo. 95 00:06:08,340 --> 00:06:13,430 >> Deoarece acesta este un site web, voi avea, de asemenea, o mulțime de libertatea de a-l personaliza. 96 00:06:13,430 --> 00:06:20,960 Noi facem oferi un cod CSS, dar cu siguranta esti liber să-l tweak, 97 00:06:20,960 --> 00:06:26,680 face sa arate mai frumos, dar care stă la baza este o funcționalitate de bază 98 00:06:26,680 --> 00:06:30,310 astfel încât se referă întotdeauna la spec. despre ceea ce ai de fapt nevoie pentru a include acolo. 99 00:06:30,310 --> 00:06:39,940 În urma spec., vom folosi aparatul ca, de asemenea, un server. 100 00:06:39,940 --> 00:06:43,910 O să fie ce gazduieste site-ul nostru pentru noi, pe serverul local. 101 00:06:43,910 --> 00:06:49,750 Dacă urmați aceste instrucțiuni și dezarhivează codul PSET 7 distribuție 102 00:06:49,750 --> 00:06:53,500 în ta virtuala gazda / locale dosar gazdă, 103 00:06:53,500 --> 00:07:02,470  le puteti vizita doar http://localhost/ în Google Chrome în aparat, 104 00:07:02,470 --> 00:07:09,120 și apoi v-ar ajunge codului în care le-ați scris PSET 7. 105 00:07:09,120 --> 00:07:14,490 >> PSET 7 vine cu o grămadă de cod de distribuție, 106 00:07:14,490 --> 00:07:18,330 și, sperăm, weve - prin toate psets înainte de acest lucru - 107 00:07:18,330 --> 00:07:21,700 obișnuiți să ne citirea prin cod de distribuție, 108 00:07:21,700 --> 00:07:25,650 înțelegerea a ceea ce funcții sunt deja oferite, precum și modul în care am putea fi capabili de a utiliza 109 00:07:25,650 --> 00:07:29,470 acestea și celelalte funcții pe care le vom fi de punere în aplicare. 110 00:07:29,470 --> 00:07:31,570 În acest caz, avem 3 foldere. 111 00:07:31,570 --> 00:07:36,350 Avem un dosar HTML, un dosar include și un dosar șabloane. 112 00:07:36,350 --> 00:07:40,630 Ceea ce am de gând să face cu acest PSET este un fel de separare gândire - 113 00:07:40,630 --> 00:07:45,580 gândirea de programare - de cod PHP cu aspectul vizual real. 114 00:07:45,580 --> 00:07:52,690 Vom avea un singur fișier PHP care face toate gândire, citește în baza de date, 115 00:07:52,690 --> 00:07:55,620 printuri lucruri, are în cazul în care situațiile - lucruri de genul asta - 116 00:07:55,620 --> 00:08:02,140 și apoi faptul că va trece de date într-un fișier șablon nostru - sau fișier template.php. 117 00:08:02,140 --> 00:08:05,710 Ceea ce va face este citit de date și apoi îl va imprima. 118 00:08:05,710 --> 00:08:09,550 >> Noi putem trata template-uri ca "prost", în care nu vrem într-adevăr le 119 00:08:09,550 --> 00:08:12,370 să faci o mulțime de muncă în calculul lucrurile. 120 00:08:12,370 --> 00:08:16,330 Ne dorim ca operatorii nostri pentru a face asta. 121 00:08:16,330 --> 00:08:21,610 Un pic pe care - haideți să aruncăm o privire la unele dintre codului de distribuție. 122 00:08:21,610 --> 00:08:28,250 Aici avem fișierul nostru index.html, si e destul de gol. 123 00:08:28,250 --> 00:08:34,429 În esență, ceea ce face - se spune, ei bine, am de gând să solicite fișierul configuration.php. 124 00:08:34,429 --> 00:08:40,120 Noi nu vedem că acolo, dar sună practic fișierul configuration.php, 125 00:08:40,120 --> 00:08:42,240 și de executare asta. 126 00:08:42,240 --> 00:08:45,130 După ce o face, o să facă portofoliului. 127 00:08:45,130 --> 00:08:49,310 Rendering este o funcție, astfel încât ori de câte ori suntem într-un controler, 128 00:08:49,310 --> 00:08:56,490 vom numi face, vom da fișier și apoi datele pe care ne trec prin, 129 00:08:56,490 --> 00:09:04,570 astfel încât acesta va suna în portfolio.php-un fel de-pass în care datele, astfel încât portofoliul poate face cu asta. 130 00:09:04,570 --> 00:09:10,540 >> Și acum, aici, avem formularul nostru login.php. 131 00:09:10,540 --> 00:09:17,540  Aceasta este operatorul care are practic grija de logare inch 132 00:09:17,540 --> 00:09:29,090 Aici, se verifică dacă un formular a fost transmis acest fișier și se ocupă cu validarea depunere. 133 00:09:29,090 --> 00:09:31,990 Ne vom uita în această funcție mi cer scuze. 134 00:09:31,990 --> 00:09:35,100 Când ne-am dori să imprime un mesaj de eroare, 135 00:09:35,100 --> 00:09:39,550 vom folosi cerem scuze și că va redirecționa utilizatorul la o anumită pagină 136 00:09:39,550 --> 00:09:42,530 care se vor imprima mesajul de eroare specific pe care le indica. 137 00:09:42,530 --> 00:09:47,860 Continuând, acesta va interoga baza de date - Vom ajunge în mai mult de asta mai târziu. 138 00:09:47,860 --> 00:09:54,180 Apoi, veți vedea că aici jos, dacă un formular nu a fost prezentat, apoi face un formular. 139 00:09:54,180 --> 00:10:01,360 Asta înseamnă că se duce la login_form.php, așa că hai să uităm la asta. 140 00:10:01,360 --> 00:10:09,400 >> Login.php este de fapt în cazul în care vom vedea ocupă HTML cu aspectul vizual real. 141 00:10:09,400 --> 00:10:15,130 Aici avem o etichetă de intrare pentru numele de utilizator, o intrare pentru parola, 142 00:10:15,130 --> 00:10:16,630 precum și un buton submit. 143 00:10:16,630 --> 00:10:22,660 Asta e de fapt în cazul în care aspectul vizual și formularul HTML se va desfasura. 144 00:10:22,660 --> 00:10:27,550 Aici, se spune că va fi prezentat printr-o anumită metodă, numit post. 145 00:10:27,550 --> 00:10:30,190 Vom intra în diferențele dintre metodele de - 146 00:10:30,190 --> 00:10:33,240 posta versus ajunge, există, de asemenea ceva numit pus - 147 00:10:33,240 --> 00:10:36,160 vom intra in aceste metode mai târziu, dar pentru interesul acestei PSET, 148 00:10:36,160 --> 00:10:37,810 Mi-ar încuraja foarte să utilizați mesaj. 149 00:10:37,810 --> 00:10:42,210 >> Știm că în principiu o dată pe acest formular este prezentat - 150 00:10:42,210 --> 00:10:44,650 de la login_form.php-- 151 00:10:44,650 --> 00:10:50,850 apoi va merge la acțiune - login.php-- 152 00:10:50,850 --> 00:10:56,070 practic treci în toate aceste parametrii din aceste formulare in login.php. 153 00:10:56,070 --> 00:11:04,900 Rezultatele de la această formă sunt conținute în acest tablou asociativ mesaj. 154 00:11:04,900 --> 00:11:11,710 Indicii ale diferitelor elemente din matrice mesaj 155 00:11:11,710 --> 00:11:15,290 sunt exact ceea ce ai specificați aici. 156 00:11:15,290 --> 00:11:19,240 Tu spui că numele acestui intrare este numele de utilizator. Numele acesta este parola. 157 00:11:19,240 --> 00:11:26,840 În mod similar, veți vedea numele de utilizator ca indicele de tablou asociativ acolo. 158 00:11:26,840 --> 00:11:35,110 Dacă mergem la folderul include, avem acest fișier funcții, care va fi foarte util. 159 00:11:35,110 --> 00:11:37,570 >> Toate aceste funcții sunt puse în aplicare pentru tine. 160 00:11:37,570 --> 00:11:41,870 Nu aveți nevoie de a pune în aplicare în mod special oricare dintre acestea tine, 161 00:11:41,870 --> 00:11:43,140 dar ei vor să destul de util. 162 00:11:43,140 --> 00:11:49,450 Ne-am scuze, care, după cum am spus mai înainte, se va imprima practic din un mesaj de eroare 163 00:11:49,450 --> 00:11:52,920 pentru tine pe o anumită pagină - apology.php. 164 00:11:52,920 --> 00:11:59,890 Apoi, avem benă, asa ca daca ai suna doar benă și apoi trece în variabila, 165 00:11:59,890 --> 00:12:04,930 apoi vă va duce la o pagină care va afișa pe care variabila pentru tine. 166 00:12:04,930 --> 00:12:09,950 Apoi ne-am iesire, care se va încheia, practic sesiune de un anumit utilizator al. 167 00:12:09,950 --> 00:12:12,240 Căutare va fi de folos. 168 00:12:12,240 --> 00:12:15,870 Din moment ce avem de-a face cu citate și a stocurilor, vom fi capabili - 169 00:12:15,870 --> 00:12:17,650 și e în esență, în timp real. 170 00:12:17,650 --> 00:12:21,380 Avem nevoie să știm ce aceste valori sunt în stoc, 171 00:12:21,380 --> 00:12:28,210 deci avem funcția de căutare care se ocupă cu documentația Yahoo a stocurilor. 172 00:12:28,210 --> 00:12:37,700 După ce te uiți în sus un anume simbol al unui stoc, va reveni la tine simbolul de stoc 173 00:12:37,700 --> 00:12:41,480 precum și numele și prețul actual al acestui stoc. 174 00:12:41,480 --> 00:12:44,330 Asta e funcția de căutare. 175 00:12:44,330 --> 00:12:48,350 >> Apoi, avem de a face cu MySQL, 176 00:12:48,350 --> 00:12:53,970 deci vom fi doresc să execute anumite interogări pe baza noastră de date SQL. 177 00:12:53,970 --> 00:12:58,890 Avem de a face interogare - la fel de unele abstracte de asta. 178 00:12:58,890 --> 00:13:03,200 Vom fi trecerea în șir întreg de interogare SQL noastre - 179 00:13:03,200 --> 00:13:05,360 și toate variabilele care merg în ea - 180 00:13:05,360 --> 00:13:09,480 și ce face asta este de fapt executa asta pentru noi. 181 00:13:09,480 --> 00:13:15,070 În loc de a avea pentru a scrie toate acest lucru de fiecare dată când doriți să interogați - 182 00:13:15,070 --> 00:13:21,740 prin obtinerea toate rezultatele din această interogare - 183 00:13:21,740 --> 00:13:24,740 atunci puteți apela pur și simplu funcția de interogare, și se va întoarce la tine - 184 00:13:24,740 --> 00:13:28,750 în funcție de ceea ce îl utilizați pentru interogare - 185 00:13:28,750 --> 00:13:33,000 probabil, un rând de toate rezultatele care se potrivesc interogării sau similar. 186 00:13:33,000 --> 00:13:34,690 Mai multe despre asta mai târziu, deși. 187 00:13:34,690 --> 00:13:41,200 >> În cele din urmă, avem de redirecționare, care, după cum sugerează și numele, vă redirecționează la o altă pagină. 188 00:13:41,200 --> 00:13:46,280 Și apoi ne-am face, pe care vom fi de asteptare de cateva ori. 189 00:13:46,280 --> 00:13:51,010 Când ești într-un controler, te sun face in pagina de șablonul 190 00:13:51,010 --> 00:13:55,390 și să treacă apoi în valorile care se vor ocupa șablonul, apoi cu. 191 00:13:55,390 --> 00:13:59,540 Aceste valori sunt, probabil, va fi a face cu tipul de ieșire pe care doriți 192 00:13:59,540 --> 00:14:01,050 care urmează să fie indicat pe pagina de șablonul. 193 00:14:01,050 --> 00:14:09,370 Bine. Acestea sunt funcțiile, și există o mult mai mult la acest cod de distribuție. 194 00:14:09,370 --> 00:14:12,930 Am să vă încurajez să treci prin asta și de a explora singur. 195 00:14:12,930 --> 00:14:17,050 De asemenea, va merge, probabil, spec. te prin intermediul unor alte elemente ale codului de distribuție. 196 00:14:17,050 --> 00:14:27,360 Aici este un rezumat al funcțiilor găsite în functions.php. 197 00:14:27,360 --> 00:14:31,710 >> Bine. Prima sarcină este de a permite utilizatorilor să se înregistreze pe site-ul web. 198 00:14:31,710 --> 00:14:34,860 Chiar acum, există un formular de logare pe site-ul, 199 00:14:34,860 --> 00:14:40,080 și vă sunt oferite cu câțiva utilizatori cu parole. 200 00:14:40,080 --> 00:14:42,130 Puteți utiliza aceste nume de utilizator și a vă conecta, 201 00:14:42,130 --> 00:14:45,140 dar doriți pentru a permite oamenilor să facă propriile lor nume de utilizator 202 00:14:45,140 --> 00:14:47,390 și s-au adauga la site-ul web. 203 00:14:47,390 --> 00:14:53,070 Aspect de înregistrare este destul de similar cu formularul de logare, 204 00:14:53,070 --> 00:14:56,340 cu excepția numele de utilizator nu este pre-existente, 205 00:14:56,340 --> 00:14:59,430 și, de asemenea, utilizatorul trebuie să furnizeze o parolă nouă, 206 00:14:59,430 --> 00:15:02,440 si apoi de obicei, avem o confirmare parolă. 207 00:15:02,440 --> 00:15:06,580 Odată ce utilizatorul introduce toate aceste informații, 208 00:15:06,580 --> 00:15:10,620 vrem să le adăugați la baza noastră de date de utilizatori. 209 00:15:10,620 --> 00:15:12,970 Vom avea o bază de date - o bază de date SQL - 210 00:15:12,970 --> 00:15:14,470 că vom referință. 211 00:15:14,470 --> 00:15:18,140 În această bază de date, vom avea un tabel cu toți utilizatorii 212 00:15:18,140 --> 00:15:23,850 conținând numele de utilizator, parola, și, de asemenea, cât de mult bani au. 213 00:15:23,850 --> 00:15:28,480 >> În registrul, vrem să le permită să intre aceste informații. 214 00:15:28,480 --> 00:15:29,740 Dorim să afișeze această formă. 215 00:15:29,740 --> 00:15:32,210 Dorim să vă asigurați că lor parola - 216 00:15:32,210 --> 00:15:37,490 că au intrat, și apoi, de asemenea, că parolele potrivesc atunci cand ei intra de două ori. 217 00:15:37,490 --> 00:15:42,240 După toate, care se face - presupunând că aceste erori sunt verificate - 218 00:15:42,240 --> 00:15:45,120 apoi ne-o dorim pentru a adăuga acești utilizatori la baza de date. 219 00:15:45,120 --> 00:15:49,630 În cele din urmă, odată ce v-ați înregistrat, e destul de convenabil, dacă nu aveți nevoie să vă conectați din nou 220 00:15:49,630 --> 00:15:51,000 odată ce v-ați înregistrat, 221 00:15:51,000 --> 00:15:54,000 așa că de gând să le conecta la site-ul în cazul în care ați înregistrat cu succes. 222 00:15:54,000 --> 00:16:00,360 >> Prima sarcină este de a afișa forma, iar acest lucru este, de fapt va fi - 223 00:16:00,360 --> 00:16:04,920 acest proces de înregistrare întreg este de gând să fie modelate destul de strâns, după autentificare 224 00:16:04,920 --> 00:16:10,510 cu excepția loc de login.php ai putea avea register.php. 225 00:16:10,510 --> 00:16:14,300 În loc de login_form.php--care este șablon - 226 00:16:14,300 --> 00:16:16,030 veți fi înregistrați formă. 227 00:16:16,030 --> 00:16:19,680 Veți dori să adăugați un câmp mai mult - o confirmare câmp parolă - 228 00:16:19,680 --> 00:16:23,450 în loc de doar numele de utilizator, și parola de unul. 229 00:16:23,450 --> 00:16:28,120 În continuare, dorim să verifice dacă parolele potrivesc sau sunt goale. 230 00:16:28,120 --> 00:16:38,560 Avem controler - register.php--care este de gând să aibă grijă de a face aceste verificări. 231 00:16:38,560 --> 00:16:41,690 Când un formular este prezentat prin intermediul metodei de post, 232 00:16:41,690 --> 00:16:47,050 atunci toate aceste variabile sunt conținute în matrice post. 233 00:16:47,050 --> 00:16:52,280 Doriți să vă asigurați că matrice valoarea mesaj la indicele parola 234 00:16:52,280 --> 00:16:58,080 Meciuri elementul de confirmare. 235 00:16:58,080 --> 00:16:59,410 Doriți să vă asigurați că acestea nu sunt goale, 236 00:16:59,410 --> 00:17:01,650 și doriți să vă asigurați că acestea sunt la fel. 237 00:17:01,650 --> 00:17:05,960 >> Un lucru convenabil despre PHP este că nu avem nevoie să utilizați șir compara mai. 238 00:17:05,960 --> 00:17:08,410 Putem folosi operatorul egal-egal 239 00:17:08,410 --> 00:17:11,470  pentru a verifica dacă șirurile sunt egale unul de altul. 240 00:17:11,470 --> 00:17:14,960 Pentru eroare de manipulare, veți dori să-mi cer scuze. 241 00:17:14,960 --> 00:17:17,150 Pentru a-mi cer scuze, te sun pur și simplu funcția de 242 00:17:17,150 --> 00:17:21,910  și apoi specificați un tip de mesaj pe care doriți să o ieșire. 243 00:17:21,910 --> 00:17:24,630 Ai apoi doriți să adăugați utilizatorul bazei de date. 244 00:17:24,630 --> 00:17:30,880 Până acum, tot ce am făcut este doar tranzacții pe plan local cu rezultatele formularului. 245 00:17:30,880 --> 00:17:33,940 Acum, avem de fapt nevoie pentru a le adăuga la baza noastra de date. 246 00:17:33,940 --> 00:17:38,890 Pentru aceasta, mai întâi doriți să vă asigurați că numele de utilizator nu este goală. 247 00:17:38,890 --> 00:17:44,550 Înțelegeți că pe un site, nu poți avea mai mulți utilizatori cu același nume de utilizator, 248 00:17:44,550 --> 00:17:50,010 astfel încât veți dori să vă asigurați că, atunci când introduceți ceva în baza de date - 249 00:17:50,010 --> 00:17:56,650 se introduce un nou utilizator -, atunci nu ai o coliziune între un nume de utilizator pre-existente 250 00:17:56,650 --> 00:17:59,150 și numele de utilizator pe care un utilizator încearcă să-și prezinte. 251 00:17:59,150 --> 00:18:02,250 Pentru aceasta, odată ce executa o interogare - 252 00:18:02,250 --> 00:18:08,760 inserarea unui anumit utilizator cu parola lor și o sumă inițială de bani - 253 00:18:08,760 --> 00:18:15,140 Odată ce ați numi asta interogare, atunci MySQL va reveni, de fapt falsă, dacă nu reușește. 254 00:18:15,140 --> 00:18:21,050 >> Structura de utilizatori este de așa natură încât numele de utilizator este o valoare unică, 255 00:18:21,050 --> 00:18:22,540 astfel încât să nu poate avea mai mult de unul. 256 00:18:22,540 --> 00:18:30,080 Când încercați și inserați un rând nou, cu un nume de utilizator care există deja, 257 00:18:30,080 --> 00:18:34,470 care este de gând să se întoarcă fals - ca un fals booleană-valoare. 258 00:18:34,470 --> 00:18:45,320 Un lucru complicat aici este că veți dori să verificați dacă rezultatul este rezultatul interogare. 259 00:18:45,320 --> 00:18:52,320 În cazul în care nu reușește, atunci veți dori să verificați cu operatorul de triplu-egal. 260 00:18:52,320 --> 00:18:55,420 Asta e de fapt de gând pentru a verifica dacă există un eșec sau nu, 261 00:18:55,420 --> 00:19:02,760 întrucât, în doar un simplu egal-egal, ar fi adevărat dacă rând era gol. 262 00:19:02,760 --> 00:19:06,000 Rezultatul unei defecțiuni în cazul în care există o coliziune între utilizatori 263 00:19:06,000 --> 00:19:10,350 este valoarea reală fals. 264 00:19:10,350 --> 00:19:15,230 >> Iată cum ar insera într-o bază de date. 265 00:19:15,230 --> 00:19:19,220 Aici este interogarea care le-ar executa strict în SQL. 266 00:19:19,220 --> 00:19:25,750 Un lucru este ca poti sa te duci de fapt, la site-ul care gestionează baza de date SQL 267 00:19:25,750 --> 00:19:31,070 și să se joace în jurul valorii de acolo prin introducerea manuală, fie valori sau rânduri. 268 00:19:31,070 --> 00:19:34,540 Acesta va afișa ceea ce este de ieșire SQL. 269 00:19:34,540 --> 00:19:38,870 Puteți rula, de asemenea, comenzi SQL în cadrul bazei de date 270 00:19:38,870 --> 00:19:42,200  si vezi apoi ce ar putea fi sintaxa, 271 00:19:42,200 --> 00:19:46,790 și apoi traduce că în funcția de interogare pe care o avem în PSET 7, 272 00:19:46,790 --> 00:19:51,120 care va fi foarte similar cu interogările pe care le conduc, de fapt. 273 00:19:51,120 --> 00:19:54,570 >> Dacă vroiam să inserați un rând nou în tabelul de utilizatori mea, 274 00:19:54,570 --> 00:20:01,240 atunci aș preciza introduce în utilizatori, care este numele de masa mea. 275 00:20:01,240 --> 00:20:06,870 Apoi am să specificați numele coloanelor. 276 00:20:06,870 --> 00:20:13,230 Apoi am va furniza valorile, împreună cu parola. 277 00:20:13,230 --> 00:20:17,080 Parolele din tabelul nostru de utilizatorii nu sunt stocate ca doar șir. 278 00:20:17,080 --> 00:20:19,440 Acestea sunt stocate ca versiunea criptată, 279 00:20:19,440 --> 00:20:24,560 astfel încât veți dori să rulați cripta funcția parola reală, 280 00:20:24,560 --> 00:20:29,680 și care vă va oferi tipul corect de stocare pentru utilizatorii de matrice. 281 00:20:29,680 --> 00:20:34,960 Rularea acest lucru va insera un rând nou în tabel utilizatori. 282 00:20:34,960 --> 00:20:39,020 >> Pentru a face față cu funcția de interogare, 283 00:20:39,020 --> 00:20:43,100 înainte de a în C am folosit semnul procent ca un substituent. 284 00:20:43,100 --> 00:20:47,670 În mod similar, același concept de un înlocuitor se aplică și aici. 285 00:20:47,670 --> 00:20:50,720 Cu interogare, specificați interogarea ansamblu, 286 00:20:50,720 --> 00:20:55,510 cu excepția ori de câte ori ai de a face cu variabile ca mărime de intrare dvs. în interogare, 287 00:20:55,510 --> 00:21:00,490 atunci în loc de fapt, le pune în interiorul - ca atunci când am avut situații în printf C. 288 00:21:00,490 --> 00:21:03,740 Ne-ar pune șir și apoi au un substituent acolo, și apoi după fiecare 289 00:21:03,740 --> 00:21:06,990 virgulă, specificați pe care am avut variabilă. 290 00:21:06,990 --> 00:21:14,480 Aici, vom folosi semnul semn de întrebare ca substituent nostru 291 00:21:14,480 --> 00:21:21,670 și să treacă apoi în fiecare variabilă, respectiv în ordine, pentru substituenți - 292 00:21:21,670 --> 00:21:24,420 în cazul în care aceste variabile ar trebui să meargă. 293 00:21:24,420 --> 00:21:29,470 Deci, aici, semnul prima întrebare ar fi înlocuită cu numele de utilizator real 294 00:21:29,470 --> 00:21:33,610 apoi semn de întrebare doua parola. 295 00:21:33,610 --> 00:21:37,000 >> Apoi, în final, o dată ce le-am înregistrat și le-a adăugat în baza de date, 296 00:21:37,000 --> 00:21:40,510 apoi doriți să le conectați la site-ul web. 297 00:21:40,510 --> 00:21:45,320 Avem un fel de o sesiune super-global variabilă numită. 298 00:21:45,320 --> 00:21:48,160 Sesiunea are o anumită id, 299 00:21:48,160 --> 00:21:51,750 și că ID-ul de utilizator corespunde cu care este în prezent autentificat inch 300 00:21:51,750 --> 00:21:56,380 Ce veți dori să faceți este să găsiți ceea ce ID-ul lor de utilizare este 301 00:21:56,380 --> 00:22:03,710 și a stabilit apoi că id-ul sesiunii ca ID-ul pe care anumit utilizator. 302 00:22:03,710 --> 00:22:07,560 O funcție care veți dori să utilizați aici este o comandă SQL 303 00:22:07,560 --> 00:22:15,150 care va prelua ultimul număr id-ul introdus de la masa ta. 304 00:22:15,150 --> 00:22:24,560 Apoi va apela rânduri - it'll apel id - it'll aloca un nume pentru numărul pe care-l returnează. 305 00:22:24,560 --> 00:22:27,900 Va suna ca id-ul. 306 00:22:27,900 --> 00:22:33,370 Acum am terminat de înregistrare, și putem trece la cita. 307 00:22:33,370 --> 00:22:36,610 >> Citat permite unui utilizator pentru a introduce numele unei anumite stoc, 308 00:22:36,610 --> 00:22:41,940 și apoi vom întoarce calitățile de acest stoc. 309 00:22:41,940 --> 00:22:48,410 Ce veți dori să fac aici este să aibă un controler și unele șabloane. 310 00:22:48,410 --> 00:22:53,380 În acest caz, vom avea un operator, care va face tot gândire pentru noi. 311 00:22:53,380 --> 00:23:01,210 Se va căuta simbolul și apoi trece în valori la șabloanele care se vor imprima. 312 00:23:01,210 --> 00:23:03,060 Vom avea 2 template-uri aici. 313 00:23:03,060 --> 00:23:07,260 Vom avea un șablon care prevede forma în care utilizatorii sunt de gând să 314 00:23:07,260 --> 00:23:09,920 intrare numele stoc - numele parts. 315 00:23:09,920 --> 00:23:16,030 Apoi ne, de asemenea, de gând să doriți un alt șablon, care afișează aceste valori. 316 00:23:16,030 --> 00:23:27,450 Poti sa te uiti intr-autentificare pentru un exemplu de modul în care v-ați putea avea o formă care acceptă intrare, 317 00:23:27,450 --> 00:23:30,060 cu excepția aici, vrem doar 1 domeniu. 318 00:23:30,060 --> 00:23:31,630 Noi nu vrem un nume de utilizator și un câmp parolă. 319 00:23:31,630 --> 00:23:37,110 Ne dorim doar 1 câmp de text care permite utilizatorului să intrare numele unui anumit stoc. 320 00:23:37,110 --> 00:23:40,110 Apoi doriți să trimiteți acele date - odată ce ați uitat în sus acest stoc - 321 00:23:40,110 --> 00:23:45,550 la quote_form.php. 322 00:23:45,550 --> 00:23:50,780 Căutare va returna simbolul unui stoc, numele, și un preț. 323 00:23:50,780 --> 00:23:53,910 Acestea sunt conținute într-un tablou asociativ. 324 00:23:53,910 --> 00:24:01,390 Uită-te în interiorul funcția de căutare functions.php pentru mai multe informații 325 00:24:01,390 --> 00:24:04,010 cu privire la tipurile de returnare ale acestora. 326 00:24:04,010 --> 00:24:08,520 >> Minunat! Deci în cele din urmă, veți dori să afișeze informație de stoc. 327 00:24:08,520 --> 00:24:14,110 Veți dori, probabil, să afișeze - veți avea nevoie pentru a accesa aceste variabile. 328 00:24:14,110 --> 00:24:17,610 Odată ce aveți prețul într-o variabilă - 329 00:24:17,610 --> 00:24:20,860 precum și numele și simbolul - 330 00:24:20,860 --> 00:24:25,550 atunci veți dori să afișeze cele din pagina de șablonul. 331 00:24:25,550 --> 00:24:31,540 Această pagină șablon ar putea fi numit show_quote.php sau ceva de genul. 332 00:24:31,540 --> 00:24:39,660 Pagina dvs. quote.php ar face oferta spectacol și apoi să treacă în toate aceste valori. 333 00:24:39,660 --> 00:24:47,170 Apoi, în pagina dvs. php, să imprimați efectiv aceste valori la aspectul HTML al paginii. 334 00:24:47,170 --> 00:24:53,800 Puteți utiliza doar funcția de imprimare și să treacă în preț. 335 00:24:53,800 --> 00:24:57,990 Există 2 moduri - te poate înlănțui, fie cu operatorul punct, 336 00:24:57,990 --> 00:25:02,230 sau de a folosi un substituent. 337 00:25:07,580 --> 00:25:12,750 >> Utilizatorii în cele din urmă vor fi cumpararea si vanzarea de actiuni. 338 00:25:12,750 --> 00:25:18,450 Vrem să le permită un mod de a vedea toate stocurile pe care le au în prezent. 339 00:25:18,450 --> 00:25:21,350 Vom numi acest portofoliu lor. 340 00:25:21,350 --> 00:25:26,180 Portofoliu ar fi, probabil pentru fiecare utilizator, conțin o grămadă de rânduri 341 00:25:26,180 --> 00:25:31,760 listarea tipul de acțiuni pe care le au și apoi cât de mulți dintre cei care au. 342 00:25:31,760 --> 00:25:36,500 Masa noastră existent - acum avem un tabel de utilizatori în baza noastră de date. 343 00:25:36,500 --> 00:25:41,780 Care conține numele de utilizator al unui utilizator, precum și parola lor și cât de mult bani au. 344 00:25:41,780 --> 00:25:50,390 Nu e nici o cale reală de a stoca toate stocurile lor în cadrul asta. 345 00:25:50,390 --> 00:25:58,010 Nu e ca și cum putem insera coloane noi pentru fiecare stoc. 346 00:25:58,010 --> 00:26:03,650 Asta ar fi un rând foarte, foarte lung, deoarece avem o cantitate infinit 347 00:26:03,650 --> 00:26:06,200 tipurilor de stocuri pe care le-ar putea avea. 348 00:26:06,200 --> 00:26:09,150 Deci, în loc de ceea ce vom face este în aceeași bază de date, 349 00:26:09,150 --> 00:26:15,000 vom avea un tabel de utilizatori, dar apoi vom avea, de asemenea, un tabel de portofoliu. 350 00:26:15,000 --> 00:26:18,430 Tabelul Portofoliul va fi cu siguranta legat de tabelul de utilizatori, 351 00:26:18,430 --> 00:26:24,600 ci structura portofoliului tabelul va avea informație de stoc, 352 00:26:24,600 --> 00:26:27,780 câte acțiuni ale stocul utilizatorul are, 353 00:26:27,780 --> 00:26:31,620 precum și un anumit utilizator ID-ul de număr. 354 00:26:31,620 --> 00:26:34,620 Ai tabelul de utilizatori, care are un id, precum și numele de utilizator, hash - 355 00:26:34,620 --> 00:26:40,130 care este parola, parola criptată - 356 00:26:40,130 --> 00:26:42,130 și apoi suma de bani au. 357 00:26:42,130 --> 00:26:47,900 Numărul id-ar fi legată de numărul de id-ul de portofoliu. 358 00:26:47,900 --> 00:26:52,490 Portofoliul ar avea doar un simbol al stocului, precum și acțiuni - 359 00:26:52,490 --> 00:26:55,410 numărul de acțiuni din stocul că utilizatorul are. 360 00:26:55,410 --> 00:26:58,520 În acest tabel portofoliu le-ar fi practic 361 00:26:58,520 --> 00:27:03,760 toate acțiunile deținute de toți utilizatorii de pe site-ul dvs.. 362 00:27:03,760 --> 00:27:10,550 Ulterior, pentru a specifica doar parts un anumit utilizator al lor - doar de portofoliu - 363 00:27:10,550 --> 00:27:15,360 v-ar regăsi valorile din tabelul portofoliul dumneavoastră, astfel încât 364 00:27:15,360 --> 00:27:19,930 număr de identificare este specifică acestui utilizator. 365 00:27:26,520 --> 00:27:34,890 >> Când afișați portofoliu, veți dori să reclami fiecare dintre rezervele de în portofoliul unui utilizator. 366 00:27:34,890 --> 00:27:41,670 Veți dori să reclami numărul de acțiuni și valoarea actuală a acestor acțiuni. 367 00:27:41,670 --> 00:27:45,950 Faptul că valoarea actuală a acestor acțiuni nu este stocată în tabelul de portofoliu 368 00:27:45,950 --> 00:27:51,640 pentru că va fi actualizarea - la minim - în fiecare zi prin Yahoo. 369 00:27:51,640 --> 00:27:58,550 Pentru a obține aceste informații, nu poți referire la faptul că interogarea SQL. 370 00:27:58,550 --> 00:28:02,400 Ce prevede că funcția de la noi? Ce funcție va primi prețul? 371 00:28:02,400 --> 00:28:09,110 Asta e de căutare, astfel încât utilizarea de căutare pe un anumit simbol vă va oferi o mulțime de informații. 372 00:28:09,110 --> 00:28:13,710 O să vă dau 3 bucăți de informații - numele, simbolul, precum și prețul. 373 00:28:13,710 --> 00:28:17,490 Odată ce ați căutare un anumit simbol, atunci puteți obține preț, 374 00:28:17,490 --> 00:28:20,460 și apoi puteți utiliza prețul care urmează să fie afișat în portofoliul dumneavoastră. 375 00:28:20,460 --> 00:28:26,190 >> Portofoliul trebuie să afișeze, de asemenea, echilibrul utilizatorului numerar curent. 376 00:28:26,190 --> 00:28:30,310 Acest câmp este stocat în tabelul utilizatorilor. 377 00:28:30,310 --> 00:28:33,400 Deci, atunci amintesc cum ne practic în vedere - 378 00:28:33,400 --> 00:28:36,850 avem diferite tipuri de fișiere PHP. 379 00:28:36,850 --> 00:28:40,160 Vom avea un controller care, practic, face tot gândire pentru tine. 380 00:28:40,160 --> 00:28:45,940 Și apoi avem un șablon în care șablonul se ocupă cu date de semnale. 381 00:28:45,940 --> 00:28:50,790 Trebuie să te gândești de ce variabile controlerul va trebui să ia inch 382 00:28:50,790 --> 00:29:01,630 Dacă avem de-a face cu un portofoliu care sa furnizeze orice nume, simbol, și numărul de acțiuni, 383 00:29:01,630 --> 00:29:03,730 precum și prețul actual al unei actiuni, 384 00:29:03,730 --> 00:29:06,950 atunci veți dori să găsească un mod de a trece în esență - 385 00:29:06,950 --> 00:29:12,070 aveți posibilitatea să treci într-o matrice de valori care se potrivesc asta. 386 00:29:15,250 --> 00:29:24,360 >> Să mergem într-un exemplu de modul în care s-ar putea regăsi toate stocurilor 387 00:29:24,360 --> 00:29:26,210 deținută de un anumit utilizator. 388 00:29:26,210 --> 00:29:31,400 Acest lucru nu este de-a face - inca - cu prețul de stoc. 389 00:29:31,400 --> 00:29:33,520 Ce-ar face asta este să rulați o interogare. 390 00:29:33,520 --> 00:29:37,070 Aceasta ar obține simbolul, precum și acțiunile de la - 391 00:29:37,070 --> 00:29:42,770 Am sunat acest tabel, dar în acest caz, ceea ce ar fi? 392 00:29:42,770 --> 00:29:49,400 Care este numele tabelului care am de-a face cu faptul că are simbolul și acțiuni 393 00:29:49,400 --> 00:29:52,280 pentru un anumit utilizator? 394 00:29:52,280 --> 00:29:56,410 E fie utilizatori sau de portofoliu. 395 00:29:56,410 --> 00:29:57,820 Portofoliului. 396 00:29:57,820 --> 00:30:03,220 Ce-ar face este portofoliul de interogare pentru simbolurile și acțiuni 397 00:30:03,220 --> 00:30:04,920 pentru un anumit utilizator. 398 00:30:04,920 --> 00:30:09,260 Iată, Eu spun, (simbol SELECT, actiuni de la TBL - 399 00:30:09,260 --> 00:30:12,280 dar în loc de masa, ai de gând să le înlocuiască cu portofoliu. 400 00:30:12,280 --> 00:30:15,220 "În cazul în care" este de fapt starea mea. 401 00:30:15,220 --> 00:30:21,050 Eu zic că doar doriți să obțineți acele tablouri asociative care corespund 402 00:30:21,050 --> 00:30:23,850  la această condiție text - id egal. 403 00:30:23,850 --> 00:30:27,600  Apoi am pun un substituent acolo și apoi id-ul sesiunii. 404 00:30:27,600 --> 00:30:36,720 Ce este acest lucru ar face este spus pentru fiecare rând în rânduri. 405 00:30:36,720 --> 00:30:40,940 Acesta este un mod elegant de loc de fapt, având de a crea un pentru buclă 406 00:30:40,940 --> 00:30:47,450 reiterează faptul că peste toate a indicilor, apoi în PHP puteți avea o pentru fiecare buclă-. 407 00:30:47,450 --> 00:30:53,520 >> Dacă aveți o matrice dat, atunci pot spune ca am de gând să sun în fiecare element de succesive - 408 00:30:53,520 --> 00:30:57,930 Am de gând să sun în fiecare element de acest nume. 409 00:30:57,930 --> 00:31:02,780 Deci, pentru fiecare dintre aceste elemente, am de gând să le numim acest lucru, 410 00:31:02,780 --> 00:31:04,500 atunci pot face acest lucru. 411 00:31:04,500 --> 00:31:10,370 În acest lucru pentru fiecare, aveți rânduri ca matrice-ul real, și fiecare rând ai de gând să sun rând. 412 00:31:10,370 --> 00:31:12,420 De fiecare dată când execută corpul, 413 00:31:12,420 --> 00:31:16,960 ea va merge în sus și se va actualiza rând la următorul element în rânduri. 414 00:31:18,900 --> 00:31:25,260 >> Acum, în ceea ce privește stocurile de cumpărare, 415 00:31:25,260 --> 00:31:29,500 ceea ce vrem să facem este să stoc pe care utilizatorul dorește să cumpere 416 00:31:29,500 --> 00:31:35,300 și numărul de acțiuni pe care utilizatorul dorește să cumpere, iar apoi - în cazul în care doresc - 417 00:31:35,300 --> 00:31:38,120 adaugă faptul că stocul pentru portofoliul lor. 418 00:31:38,120 --> 00:31:40,310 Evident, în cazul în care sunteți de cumpărare ceva, atunci care va scădea 419 00:31:40,310 --> 00:31:43,520 suma de bani pe care au, astfel că va scădea lor în numerar. 420 00:31:43,520 --> 00:31:48,380 Vom fi a face cu actualizarea portofoliului, precum și tabelul de utilizatori, 421 00:31:48,380 --> 00:31:50,300 care conține numerar. 422 00:31:50,300 --> 00:31:54,920 Dar, mai întâi, aveți nevoie pentru a obține stocul real și numărul de acțiuni pe care utilizatorul dorește. 423 00:31:54,920 --> 00:32:00,010 Pentru că, veți avea nevoie de un formular HTML care va solicita simbol al stocului 424 00:32:00,010 --> 00:32:03,360 pe care doriți să o cumpărați, precum și numărul de acțiuni. 425 00:32:03,360 --> 00:32:08,300 Apoi, veți dori să adăugați. 426 00:32:08,300 --> 00:32:13,750 Veți dori să selectați anumite valori. 427 00:32:13,750 --> 00:32:19,670 Am trecut prin asta un pic pic deja, dar atunci când sunteți încercarea de a obține anumite rânduri - 428 00:32:19,670 --> 00:32:22,020 prelua rânduri anumite din tabelul SQL, 429 00:32:22,020 --> 00:32:24,290 aceasta este următoarea sintaxă. 430 00:32:24,290 --> 00:32:28,400 Ați selectați, și apoi, dacă specificați o stea, 431 00:32:28,400 --> 00:32:31,830 care va reveni în esență rând întreg, întregul pentru tine. 432 00:32:31,830 --> 00:32:36,890 Apoi, din nou, aveți condiție în cazul în care, și apoi specificați - 433 00:32:36,890 --> 00:32:39,990 Vreau doar numele de utilizator să fie egală cu e-mail-in, 434 00:32:39,990 --> 00:32:46,660 așa că va prelua numai în rândul utilizatorilor care corespunde la e-mail-in. 435 00:32:46,660 --> 00:32:52,860 >> Atunci când un utilizator dorește să adauge o cotă într-un portofoliu, 436 00:32:52,860 --> 00:32:54,400 aveți nevoie pentru a verifica câteva erori. 437 00:32:54,400 --> 00:32:57,680 Doriți să vă asigurați că utilizatorul își poate permite de fapt de stoc, 438 00:32:57,680 --> 00:33:00,810 astfel încât veți dori să verificați lor în numerar. 439 00:33:00,810 --> 00:33:05,810 Înainte, am folosit stea pentru a prelua un rând întreg dintr-un tabel SQL. 440 00:33:05,810 --> 00:33:08,930 Dar aici, de fapt, putem specifica doar că vreau doar 1 valoare - 441 00:33:08,930 --> 00:33:10,080 Vreau numai plata în numerar. 442 00:33:10,080 --> 00:33:17,970 Deci, aici, s-ar întoarce în numerar pentru utilizator cu numărul ID 1. 443 00:33:17,970 --> 00:33:25,940 Dacă un utilizator a cumpărat deja un anumit stoc, dar cumpără apoi mai mult de acest stoc, 444 00:33:25,940 --> 00:33:30,440 apoi în portofoliul dumneavoastră - nu vrei o linie separată, 445 00:33:30,440 --> 00:33:34,770 un alt rând care conține această operațiune nouă. 446 00:33:34,770 --> 00:33:37,950 Tu de fapt vrei sa actualizeze suma. 447 00:33:37,950 --> 00:33:42,530 Tot ceea ce se schimbă este într-adevăr numărul de acțiuni pe care acel utilizator deține. 448 00:33:42,530 --> 00:33:47,730 Dacă utilizați introduce în interogarea - așa că pur și simplu introduceți în portofoliul dumneavoastră toate aceste valori - 449 00:33:47,730 --> 00:33:51,710 numărul de ID-ul de utilizator, precum și simbol al stocului pe care ei cumpără 450 00:33:51,710 --> 00:33:57,750 și acțiunile, atunci veți dori, de asemenea, să se precizeze, de asemenea, în cazul în care am rulat într-o cheie duplicat - 451 00:33:57,750 --> 00:34:00,750 în acest caz, cheia duplicat nu este doar ID-ul de utilizator, dar, de asemenea, simbolul de stoc - 452 00:34:00,750 --> 00:34:08,340 pentru ca poti avea doar - premisa noastră este că puteți avea doar 1 rând 453 00:34:08,340 --> 00:34:10,699  care corespunde la 1 simbol specific. 454 00:34:10,699 --> 00:34:13,659 Deci, pe tasta dublură - dacă aveți o într-o coliziune acolo - 455 00:34:13,659 --> 00:34:18,520 esti doar de gând să actualizeze acțiunilor la noua sa valoare. 456 00:34:18,520 --> 00:34:23,290 Actiunile adică orice am avut înainte, plus numărul de acțiuni pe care utilizatorul este de cumpărare. 457 00:34:27,790 --> 00:34:31,090 >> Acum, că ne-am completa tabelul de portofoliu, 458 00:34:31,090 --> 00:34:34,730 vom dori să actualizați numerar utilizatorului. 459 00:34:34,730 --> 00:34:40,300 Asta e în tabelul de utilizatori, deci vom fi scăzând o anumită sumă de bani. 460 00:34:40,300 --> 00:34:46,270 Probabil, o să fie în numerar egal cu minus de numerar - și apoi o anumită sumă. 461 00:34:46,270 --> 00:34:50,560 Pentru a actualiza numerar, ar fi - 462 00:34:50,560 --> 00:34:55,699 în cazul în care am vrut să-i ia bani de la e-mail-in, atunci mi-ar executa această interogare - 463 00:34:55,699 --> 00:35:00,220 "Utilizatori" de actualizare și apoi setați coloana de numerar la numerar - 464 00:35:00,220 --> 00:35:07,300 >> Mi-ar elimina de dolari 9999 numai dacă numele de utilizator este egal cu e-mail-in. 465 00:35:07,300 --> 00:35:12,020 Dar, în acest caz, nu vrem, pentru a scădea în mod specific 9999. 466 00:35:12,020 --> 00:35:17,610 Dorim să precizeze, de asemenea, dorim să scadă prețul actual al stocului 467 00:35:17,610 --> 00:35:22,400 înmulțită cu numărul de acțiuni pe care le cumperi. 468 00:35:25,260 --> 00:35:29,910 >> Acum ne-am le-a permis pentru a vedea toate stocurile care le au, 469 00:35:29,910 --> 00:35:33,080 precum și cumpere ca mai multe stocuri. 470 00:35:33,080 --> 00:35:37,430 De asemenea, am trecut le-a permis să se uite în sus prețul actual al unei actiuni. 471 00:35:37,430 --> 00:35:40,030 Aici vrem să le permită să le vândă. 472 00:35:40,030 --> 00:35:42,160 În primul rând dorim să afișeze practic - 473 00:35:42,160 --> 00:35:45,270 vrem să le permită să vadă toate stocurile pe care le au, 474 00:35:45,270 --> 00:35:53,170 asa ca aici vrem pentru a afișa toate rândurile din portofoliu. 475 00:35:53,170 --> 00:35:56,650 În cazul în care aleg să-și vândă o anumită stoc, 476 00:35:56,650 --> 00:35:59,140 atunci vom presupune că doresc să vândă totul. 477 00:35:59,140 --> 00:36:04,350 Ele nu sunt doar de gând să vândă 50% din acțiunile lor, au de gând să vândă 100% din ea. 478 00:36:04,350 --> 00:36:08,630 Putem șterge doar întregul rând din portofoliu. 479 00:36:08,630 --> 00:36:17,520 Ne puteți șterge acțiunile utilizatorului dat de anumit simbol. 480 00:36:17,520 --> 00:36:21,410 Nu e sintaxa pentru asta. 481 00:36:21,410 --> 00:36:22,710 >> Apoi ne-am dori să actualizați numerar. 482 00:36:22,710 --> 00:36:30,930 Vom adăuga în bani egal cu numarul de actiuni care sunt de vânzare 483 00:36:30,930 --> 00:36:34,640 înmulțită cu prețul actual al stocului - 484 00:36:34,640 --> 00:36:38,610 nu la prețul la care au cumpărat-o, ci mai degrabă prețul la care acestea sunt - 485 00:36:38,610 --> 00:36:40,500 prețul curent atunci când acestea sunt de vânzare-l. 486 00:36:40,500 --> 00:36:43,660 De referință prețul actual al unei actiuni, 487 00:36:43,660 --> 00:36:49,120 veți dori să utilizați de căutare, care vă va oferi pretul unei actiuni 488 00:36:50,030 --> 00:36:52,650 la ora actuală. 489 00:36:52,650 --> 00:36:55,930 >> Acum am rămas cu istoria, 490 00:36:55,930 --> 00:37:00,170 care doriți să permiteți unui utilizator pentru a ține evidența tuturor tranzacțiilor lor - 491 00:37:00,170 --> 00:37:03,040 vrea să vadă ori de câte ori au vandut ceva, ori de câte ori au cumparat un stoc. 492 00:37:03,040 --> 00:37:08,870 Dorim să precizeze data la care au făcut ca, precum și câte au cumpărat 493 00:37:08,870 --> 00:37:11,650 și ceea ce a fost de stoc. 494 00:37:11,650 --> 00:37:17,800 Nu avem nici o structura actuală, existentă care specifică faptul că? 495 00:37:17,800 --> 00:37:25,230 Ei bine, avem portofoliu care afișează numărul de stocurile pe care un utilizator le are 496 00:37:25,230 --> 00:37:26,470 pentru o acțiune dată. 497 00:37:26,470 --> 00:37:34,060 Dar suntem structurarea portofoliului, în modul în care aceasta actualizează atunci când cumpărăm mai multe, 498 00:37:34,060 --> 00:37:40,190 întrucât ar trebui să istoriei - dacă ați cumpărat de mere, 10 acțiuni ale acesteia, și apoi mai târziu în vânzare 5, 499 00:37:40,190 --> 00:37:44,040 atunci ce-ar vrea să vadă pe cei separat ca acțiuni separate, rânduri separate. 500 00:37:44,040 --> 00:37:48,520 Întrucât această acțiune de a vizualiza că, în tabelul portofoliul nostru 501 00:37:48,520 --> 00:37:52,540 ar fi doar o actualizare la rândul special, 502 00:37:52,540 --> 00:37:55,740  așa că, probabil, va dori un alt tabel. 503 00:37:55,740 --> 00:38:00,460 În baza noastră de date, avem masa noastră utilizatori, avem masa noastră de portofoliu, 504 00:38:00,460 --> 00:38:04,090 și acum vom dori, probabil, un tabel de istorie. 505 00:38:04,090 --> 00:38:08,070 Tabelului istorie poate urmări data curentă, 506 00:38:08,070 --> 00:38:12,800 precum și simbolul de stoc special, precum și câte acțiuni, 507 00:38:12,800 --> 00:38:15,410 și apoi ce acțiunea este - 508 00:38:15,410 --> 00:38:18,800 dacă au cumpărat aceste acțiuni sau dacă ați fost pentru a le vinde. 509 00:38:20,660 --> 00:38:25,720 >> Pentru a face față în prezent, există o serie de moduri în care poți face acest lucru. 510 00:38:25,720 --> 00:38:28,820 PHP are un mod de a ține evidența data, pe care poti sa te uiti la tine. 511 00:38:28,820 --> 00:38:33,990 În SQL puteți utiliza, de asemenea, nici acum și nici timestamp-ul actual. Asta depinde de tine. 512 00:38:33,990 --> 00:38:40,720 Doar asigurați-vă că de fiecare dată când un utilizator cumpără sau vinde, veți fi actualizarea lor în numerar 513 00:38:40,720 --> 00:38:46,750 în tabelul de utilizatori, veți fi actualizarea rândurilor în tabel portofolii, 514 00:38:46,750 --> 00:38:50,900 atunci veți fi, de asemenea, actualizarea istorie, 515 00:38:50,900 --> 00:38:56,260 deci nu vor fi de 3 interogări separate SQL care veți fi de asteptare acolo. 516 00:38:58,640 --> 00:39:01,530 Avem o grămadă de funcționalitate acum. 517 00:39:01,530 --> 00:39:10,600 >> Doar un cuplu de memento-uri, care în fișierul index, veți dori să se leagă de cel puțin dumneavoastră - 518 00:39:10,600 --> 00:39:15,550 dar veți dori, pentru a permite unui utilizator pentru a lega la pagina de buy.php. 519 00:39:15,550 --> 00:39:23,560 Asta se întâmplă pentru a permite unui utilizator - buy.php este controlor, astfel încât va fie 520 00:39:23,560 --> 00:39:29,170 trimite să - care este de gând să te trimit la forma care vă permite să căutați lucrurile. 521 00:39:29,170 --> 00:39:34,420 Avem istorie. Ne-am logare afară, obtinerea un citat și apoi de vânzare. 522 00:39:34,420 --> 00:39:37,350 Acestea sunt la minim ceea ce doriți să arate. 523 00:39:37,350 --> 00:39:43,640 În ceea ce privește portofoliul, portofoliul este de fapt prezentată în pagina de index. 524 00:39:43,640 --> 00:39:52,050 Dacă mergem la index, aici vom vedea că acesta face portfolio.php 525 00:39:52,050 --> 00:40:00,050 și trece în tablou asociativ - practic egal cu titlu de portofoliu. 526 00:40:00,050 --> 00:40:02,610 Deci, aceasta este controler. 527 00:40:02,610 --> 00:40:08,000 Dacă mergem la șablonul de portfolio.php, 528 00:40:08,000 --> 00:40:18,060 atunci tot ce are este - în principiu afișează o imagine care spune, oh, acest site este in constructie. 529 00:40:18,060 --> 00:40:23,810 Mai târziu, odată ce treci de la - veți avea fi trece în informații practic mai specifice. 530 00:40:23,810 --> 00:40:27,400 În loc de doar titlul, veți fi, probabil, trece în mai multe lucruri. 531 00:40:27,400 --> 00:40:32,010 Odată ce aveți aceste valori, atunci portfolio.php poate face cu aceste valori 532 00:40:32,010 --> 00:40:34,490 și le imprimarea în orice fel de ordine. 533 00:40:34,490 --> 00:40:41,660 >> După ce ați implementat toate acestea, ai nevoie de asemenea să pună în aplicare facilitate 1 mai. 534 00:40:41,660 --> 00:40:44,890 Acest lucru poate fi fie pentru a permite unui utilizator pentru a schimba parola, 535 00:40:44,890 --> 00:40:50,110 pentru a reseta parola lor, dacă le-am uitat - atât pentru resetare a parolei, apoi 536 00:40:50,110 --> 00:40:54,560 probabil, veți dori, de asemenea, să editați înregistrare, astfel încât le permite să specificați un e-mail, 537 00:40:54,560 --> 00:40:57,910 așa că, dacă au uitat parola, atunci ei pot obține asta. 538 00:40:57,910 --> 00:41:02,870 Ele pot intra, probabil, în numele de utilizator lor, și apoi un e-mail va fi trimis pentru a le 539 00:41:02,870 --> 00:41:06,180 cu un link pentru a putea reseta parola. 540 00:41:06,180 --> 00:41:10,980 Puteți avea ceva care permite utilizatorilor să obțină încasări 541 00:41:10,980 --> 00:41:12,380 de fiecare data cand cumpara sau vinde ceva, 542 00:41:12,380 --> 00:41:19,910 și apoi în cele din urmă, le permite să adăugați în numerar la site-ul lor. 543 00:41:19,910 --> 00:41:24,970 Doar pentru a merge înapoi în conceptul de controlere și șabloane un pic. 544 00:41:24,970 --> 00:41:31,170 Vei avea ceva de genul o - deci vei avea un controler de aici. 545 00:41:31,170 --> 00:41:35,080 Chiar acum, ne uităm la exemplul login.php. 546 00:41:35,080 --> 00:41:38,220 Când vom avea un controler, practic se va lua 2 cazuri. 547 00:41:38,220 --> 00:41:42,090 Când avem controlori, suntem în această piesă pe care suntem, de asemenea, un fel de a face cu 548 00:41:42,090 --> 00:41:43,880 atunci când avem forme, de asemenea. 549 00:41:43,880 --> 00:41:47,500 Operatorul va avea practic acțiuni distincte - 550 00:41:47,500 --> 00:41:53,880 una, dacă un formular a fost deja depusă, iar apoi două, dacă utilizatorul se apropie de acea pagină 551 00:41:53,880 --> 00:41:56,870 pentru prima dată, și încă are nevoie pentru a introduce această formă. 552 00:41:56,870 --> 00:42:02,820 >> Am de gând să sari la primul caz, înainte de a merge până la primul caz de a avea forma inch 553 00:42:02,820 --> 00:42:12,640 Aici spunem, dacă formularul a fost transmis cu postul metoda - 554 00:42:12,640 --> 00:42:13,580 nu vă faceți griji despre asta un pic. 555 00:42:13,580 --> 00:42:19,780 Nu-ți face griji prea mult, dar să înțeleagă că în esență această funcție se ocupă cu 556 00:42:19,780 --> 00:42:22,430 dacă un formular a fost depusă sau nu. 557 00:42:22,430 --> 00:42:25,640 Această condiție este adevărată, dacă un utilizator a trimis formularul. 558 00:42:25,640 --> 00:42:45,940 Dacă nu, atunci vom dori să sun login_form.php face, si apoi treci la titlu. 559 00:42:45,940 --> 00:42:48,010 Acest titlu este doar principiu de gând să apară în antet. 560 00:42:48,010 --> 00:42:54,990 Ceea ce face este practic spune, bine - ei bine, dacă un utilizator se duce la login.php 561 00:42:54,990 --> 00:43:00,310 și nu a efectiv autentificat, atunci vreau să-i trimită la pagina care are această formă 562 00:43:00,310 --> 00:43:03,160 care le permite să introduceți numele de utilizator și parola. 563 00:43:03,160 --> 00:43:07,590 Apoi mă duc la login_form, iar apoi că are forma actuală. 564 00:43:07,590 --> 00:43:13,750 Apoi, odată ce utilizatorul susține că forma, au de gând să-l prezinte la login.php 565 00:43:13,750 --> 00:43:15,840 cu postul metoda. 566 00:43:15,840 --> 00:43:21,560 Atunci voi de fapt de gând să introduceți această secțiune a mea, dacă-bucla altceva. 567 00:43:21,560 --> 00:43:29,560 Apoi, e aici ca avem de a face cu valori introduse în formular. 568 00:43:29,560 --> 00:43:32,800 E aici, că avem de a face cu cei. 569 00:43:32,800 --> 00:43:40,860 >> Apoi, odată ce ați face cu acele valori - în cazul în care ai de a face cu - 570 00:43:40,860 --> 00:43:46,640 spune că de-a face cu pagina de quote.php în cazul în care cineva poate introduce un stoc care 571 00:43:46,640 --> 00:43:49,950 ei vor sa arate în sus, și să vedem apoi că afișare - 572 00:43:49,950 --> 00:43:52,850 asta e un fel de asemănătoare aici. 573 00:43:52,850 --> 00:43:56,070 Aici avem un formular autentificare - you'd avea, probabil, o forma citat - 574 00:43:56,070 --> 00:44:00,290 dar apoi, o dată utilizator a afirmat că informațiile de fapt, 575 00:44:00,290 --> 00:44:04,810 atunci veți dori controlerul de a trece în alt șablon 576 00:44:04,810 --> 00:44:07,430 care le va arăta că informațiile reale. 577 00:44:07,430 --> 00:44:11,250 Deci, apoi la dreapta în jurul valorii de aici, atunci veți, probabil - 578 00:44:11,250 --> 00:44:18,830 în jurul valorii de sfârșitul de starea dumneavoastră de aici - în cazul în care metoda este egal cu post - 579 00:44:18,830 --> 00:44:22,520 atunci veți dori, probabil, să facă o altă pagină - citat spectacol - 580 00:44:22,520 --> 00:44:28,040 care te trimite la acea pagină - show_quote.php-- 581 00:44:28,040 --> 00:44:34,120 și apoi, în acel fișier va referi aceste valori. 582 00:44:34,120 --> 00:44:36,480 Are vreun sens? 583 00:44:36,480 --> 00:44:40,390 >> Avem un controler care se ocupă în principal cu 2 cazuri - 584 00:44:40,390 --> 00:44:42,710 dacă ați intrat într-o formă sau nu. 585 00:44:42,710 --> 00:44:43,950 Dacă nu ați introdus un formular, 586 00:44:43,950 --> 00:44:47,300 atunci vă va redirecționa la această formă, ceea ce va pune apoi înapoi la această pagină. 587 00:44:47,300 --> 00:44:54,020 Apoi, odată ce aveți informații în controler, acest organism se va ocupa cu asta 588 00:44:54,020 --> 00:44:59,750 informațiile necesare - fie cautati la valorile pentru stoc, 589 00:44:59,750 --> 00:45:04,150 și apoi după ce a fost uitat în sus aceste valori și le-a într-o matrice frumos formatat, 590 00:45:04,150 --> 00:45:08,180 atunci poate trece ca matrice în pagina de șablonul 591 00:45:08,180 --> 00:45:10,330  care se ocupă cu aceste informații. scoate 592 00:45:10,330 --> 00:45:14,680 >> Din nou, deoarece web, acesta se va fi distractiv. 593 00:45:14,680 --> 00:45:20,310 Suntem în afara C, asa ca nu te limita la ASCII și că producția terminale, 594 00:45:20,310 --> 00:45:21,800 au atât de distractiv cu asta. 595 00:45:21,800 --> 00:45:24,920 Puteți face ca vizual, după cum doriți. 596 00:45:24,920 --> 00:45:31,860 Puteți permite utilizatorilor să milioane de dolari de intrare la un moment dat, 597 00:45:31,860 --> 00:45:34,730 sau să le limiteze și să fie serios și să le permită să introduci doar 1 Penny, la un moment dat 598 00:45:34,730 --> 00:45:36,330 sau ceva de genul asta. 599 00:45:36,330 --> 00:45:38,550 Categoric asigurați-vă că pentru a se distra cu asta. 600 00:45:38,550 --> 00:45:47,030 >> Cod PHP este un pic mai simplă prin faptul că e un pic mai ușor pentru a mapa pseudocod dvs. 601 00:45:47,030 --> 00:45:50,070 în punerea în aplicare efectivă. 602 00:45:50,070 --> 00:45:56,320 Deci, avea cu siguranta te distrezi cu acest lucru, deoarece ea este de fapt piesa ultima noastră în CS50. 603 00:45:56,320 --> 00:46:01,150 Cu faptul că, aceasta a fost Walkthrough 7. 604 00:46:01,150 --> 00:46:04,640 După ce ați terminat vizionarea pas cu pas și a terminat PSET ta, 605 00:46:04,640 --> 00:46:09,590 apoi acestea au fost, de asemenea, psets, iar acum suntem pe la produsul final - 606 00:46:09,590 --> 00:46:12,330 după ce trecem de test 1. 607 00:46:12,330 --> 00:46:16,200 Apoi, sperăm, puteți utiliza instrumentele pe care le-am învățat de la psets - 608 00:46:16,200 --> 00:46:21,980 nu numai sintaxa, dar mai noțiunea abstractă a modului de a lua o anumită - 609 00:46:21,980 --> 00:46:24,950 ca, eu vreau să fac acest lucru și apoi de fapt, punerea în aplicare a asta. 610 00:46:24,950 --> 00:46:28,740 A învăța cum să lupte prin sintaxă și codul de distribuție. 611 00:46:28,740 --> 00:46:33,020 Citirea codului altor oameni, iar apoi interpretarea că utilizarea pre-existente funcții. 612 00:46:33,020 --> 00:46:37,360 >> Deci, noroc cu PSET ultima. 613 00:46:37,360 --> 00:46:39,930 A fost o plăcere să conducă walkthroughs. 614 00:46:39,930 --> 00:46:40,940 Sper că le-am fost de ajutor pentru tine. 615 00:46:40,940 --> 00:46:46,560 Acestea au fost walkthroughs, și mulțumește foarte mult. 616 00:46:52,580 --> 00:46:56,200 [CS50.TV]