1 00:00:00,000 --> 00:00:05,040 2 00:00:05,040 --> 00:00:08,440 >> SAM LEVATICH: Bine ati venit la secțiune pentru această săptămână. 3 00:00:08,440 --> 00:00:10,040 Eu nu sunt Andi. 4 00:00:10,040 --> 00:00:14,590 Andi a căzut bolnav această zi, și eu au fost un fel de numit în ultimul moment 5 00:00:14,590 --> 00:00:15,700 a prelua. 6 00:00:15,700 --> 00:00:20,920 E sezon de gripa, astfel asigurați-vă că stau curat, spălat mâinile tale, 7 00:00:20,920 --> 00:00:24,800 și mănâncă sănătos, astfel încât tu, de asemenea, nu sunt tintuit la pat. 8 00:00:24,800 --> 00:00:26,870 >> Dar fără alte ADO, să începem. 9 00:00:26,870 --> 00:00:29,970 Astăzi, vom vorbi despre PHP un pic bit-- cum 10 00:00:29,970 --> 00:00:33,900 PHP se referă la HTML, cum se referă la CSS, iar unele dintre web 11 00:00:33,900 --> 00:00:36,100 chestii ai făcut pe ultima alocare. 12 00:00:36,100 --> 00:00:37,930 Vom vorbi pic despre SQL 13 00:00:37,930 --> 00:00:41,360 și modul în care se poate lucra cu baze de date, care este o componentă cheie a P destul de 14 00:00:41,360 --> 00:00:43,650 set 8-- P set 7. 15 00:00:43,650 --> 00:00:44,480 P set 7. 16 00:00:44,480 --> 00:00:48,400 >> Și apoi vom vorbi un pic bit despre cum funcționează vedere controlere 17 00:00:48,400 --> 00:00:54,640 și de ce asta e o filosofie în spatele unele pagini web moderne și design diferit. 18 00:00:54,640 --> 00:00:58,760 Destul de mult, o mulțime de tipuri de aplicații și aplicații s-ar putea livra 19 00:00:58,760 --> 00:01:01,120 folosesc acest model, vedere cadru regulator, 20 00:01:01,120 --> 00:01:02,890 că veți fi utilizați în P set 7, așa că voi 21 00:01:02,890 --> 00:01:05,220 vorbesc un pic despre de ce a devenit 22 00:01:05,220 --> 00:01:07,970 popular, de ce este important și frumos. 23 00:01:07,970 --> 00:01:12,052 Și apoi voi muta în cele din urmă la câteva sfaturi despre abordarea P set 7. 24 00:01:12,052 --> 00:01:13,760 Și dacă avem timp stânga peste la sfârșitul anului, 25 00:01:13,760 --> 00:01:17,320 putem face de fapt, unele lucra la asta împreună. 26 00:01:17,320 --> 00:01:20,380 >> Deci, PHP. 27 00:01:20,380 --> 00:01:23,790 De fapt, este posibil să fi observat asta: nu au avut cu adevărat să se scufunde în it-- 28 00:01:23,790 --> 00:01:27,880 dar P set 6 a avut unele PHP cod care se întâmplă. 29 00:01:27,880 --> 00:01:34,710 Și pentru că PHP este un C-cum ar fi limbă, PHP, spre deosebire de HTML și CSS, 30 00:01:34,710 --> 00:01:39,030 este un limbaj de programare, întrucât HTML si CSS sunt statice. 31 00:01:39,030 --> 00:01:44,050 Sunt limbaje de markup care se ocupă cu stil și aspect vizual. 32 00:01:44,050 --> 00:01:46,230 PHP este o adevarata afacere. 33 00:01:46,230 --> 00:01:51,590 >> PHP are bucle, are conditions-- toate chestiile asta e distractiv despre C. 34 00:01:51,590 --> 00:01:56,190 Ea are o serie de lucruri care sunt un pic pic mai bine decât C, care vom vedea, 35 00:01:56,190 --> 00:01:59,760 dar cred că cel mai simplu mod de a vorbi despre PHP este doar să se scufunde în. 36 00:01:59,760 --> 00:02:04,087 Deci, am de gând să merg dreapta în IDE în acest moment. 37 00:02:04,087 --> 00:02:06,170 Primul lucru pe care vom să faceți este să se uite de fapt 38 00:02:06,170 --> 00:02:10,169 un pic la unele dintre Cod PHP care a fost în P set 6. 39 00:02:10,169 --> 00:02:13,600 Deci felul în care facem that-- înainte, modul în care am fost difuzate 40 00:02:13,600 --> 00:02:18,550 serverul pentru aparat a fost ca ne-ar trebui să type-- 41 00:02:18,550 --> 00:02:21,750 fie utilizați punerea în aplicare dvs. sau punerea în aplicare a personalului 42 00:02:21,750 --> 00:02:27,059 de server.c de a intra în director și să fie difuzate server.c fie cu nici o 43 00:02:27,059 --> 00:02:30,100 arguments-- astfel doar apel la gazdă locală, care este ceea ce, probabil, 44 00:02:30,100 --> 00:02:31,849 a făcut cele mai multe time-- și apoi să le introducă 45 00:02:31,849 --> 00:02:35,380 un directory-- cu care să utilizeze ca root sale 46 00:02:35,380 --> 00:02:38,310 în cazul în care site-ul ar fi rula, practic. 47 00:02:38,310 --> 00:02:42,180 >> În această săptămână pentru P setat 7, ca mare ca codul nostru pentru server.c 48 00:02:42,180 --> 00:02:47,580 este, există oameni care au deja scris aceste lucruri frumoase pe la CS50 49 00:02:47,580 --> 00:02:49,630 care au un pic mai multă funcționalitate, 50 00:02:49,630 --> 00:02:52,920 un program server care este capabil de a face cu un pic mai mult 51 00:02:52,920 --> 00:02:56,350 de complexitatea pe care le vom vezi în ambele P set 7 și P set 8. 52 00:02:56,350 --> 00:03:01,410 Și modul în care ați pornirea server este de doar tastând ", apache50." 53 00:03:01,410 --> 00:03:03,960 >> Și înainte de a face ceva, doriți să vă asigurați 54 00:03:03,960 --> 00:03:06,070 că Apache 50 nu este deja rulează ca este 55 00:03:06,070 --> 00:03:08,130 pe masina mea, pe care am făcut-o pentru ao testa. 56 00:03:08,130 --> 00:03:10,320 Și tu faci asta prin apel apache50. 57 00:03:10,320 --> 00:03:14,070 Opri, și veți vedea că este oprirea serverul de web, dacă vă puteți uita acolo 58 00:03:14,070 --> 00:03:16,340 în partea de jos a ferestrei terminalului. 59 00:03:16,340 --> 00:03:21,090 Și apoi doar pentru a începe, suntem O să sun, "apache50 începe." 60 00:03:21,090 --> 00:03:23,150 Și apoi vom merge să-l hrănească un director. 61 00:03:23,150 --> 00:03:26,950 >> Acum, pentru că vrem să se uite la unele dintre P set 6 cod 62 00:03:26,950 --> 00:03:32,850 că ne-am pus în aplicare, am de fapt copiat un pic de P 63 00:03:32,850 --> 00:03:37,090 set 6 cod în propria mea dosar, pe care o puteți vedea pe stânga acolo. 64 00:03:37,090 --> 00:03:40,170 Se numește "SECTION8" în toate majuscule 65 00:03:40,170 --> 00:03:44,510 pentru că eu sunt doar atat de emotionat să fie sub tensiune transmise-azi. 66 00:03:44,510 --> 00:03:47,330 >> Deci, dacă vom rula aceasta, ar trebui toate lucrează destul de eficient. 67 00:03:47,330 --> 00:03:52,350 Se spune, OK, site-ul nostru este acum disponibil la adresa de IDE, 68 00:03:52,350 --> 00:03:57,710 Practic, care este ceea ce ați folosit exact așa cum a fost în P set 7-- P set 6. 69 00:03:57,710 --> 00:04:00,899 Toate indexurile mele sunt un index astăzi. 70 00:04:00,899 --> 00:04:02,940 Deci, putem merge la acea adresa, dacă îți vei aminti, 71 00:04:02,940 --> 00:04:05,710 doar prin clic pe această mică Butonul din dreapta sus. 72 00:04:05,710 --> 00:04:14,200 >> Și vei aminti acest cod, care sa întâmplat când te-ai dus în hello.php. 73 00:04:14,200 --> 00:04:18,000 Și ce codul este proiectat pentru a faci este atunci când ați tastat un nume 74 00:04:18,000 --> 00:04:20,550 here-- dacă spui Sam pentru că asta e name-- mea 75 00:04:20,550 --> 00:04:23,620 și am faceți clic salut, atunci când ne-am dus la pagina următoare, 76 00:04:23,620 --> 00:04:25,270 acest nume a fost trebuia să fie afișate. 77 00:04:25,270 --> 00:04:28,550 Ar spune, "Bună ziua, Sam" sau "Salut," indiferent ce nume 78 00:04:28,550 --> 00:04:32,470 pus în ea, chiar dacă ne-am dus la o pagină web cu totul nou. 79 00:04:32,470 --> 00:04:36,610 >> Și aceasta este un fel de lucru că PHP poate face pentru tine. 80 00:04:36,610 --> 00:04:42,840 PHP este capabil de a trece de date între două pagini de web. 81 00:04:42,840 --> 00:04:44,390 Aceasta este o pagină cu totul diferit. 82 00:04:44,390 --> 00:04:46,990 Veți vedea titlul este "hello" aici. 83 00:04:46,990 --> 00:04:49,080 De fapt, ei au același titlu, dar am 84 00:04:49,080 --> 00:04:52,560 promit acestea sunt diferite de web Pagini dacă ne uităm la sursa. 85 00:04:52,560 --> 00:04:55,890 Și puteți trece datele care este înscrise la acest câmp de text, 86 00:04:55,890 --> 00:04:59,830 îl prezintă la alta Pagina care fiind chemat, 87 00:04:59,830 --> 00:05:02,490 și apoi că datele sunt în măsură să fi acolo, în forma sa actuală. 88 00:05:02,490 --> 00:05:04,810 >> Acum, nu am încă puse în aplicare acest noi, care 89 00:05:04,810 --> 00:05:08,710 este ceea ce am de gând să faci acum la obține un fel o aromă de cum funcționează PHP, 90 00:05:08,710 --> 00:05:15,070 dar ideea cheie este că puteți PHP-- un fel de cred că de ea ca o funcție. 91 00:05:15,070 --> 00:05:18,570 Ceva ce PHP puteți să vă lăsați nu este poate dura parametri 92 00:05:18,570 --> 00:05:24,710 pe care le de intrare într-o pagină HTML prin utilizarea de PHP și forme, 93 00:05:24,710 --> 00:05:29,960 si se poate trece pe cei ca parametrii la pagina următoare, care se încarcă în sus. 94 00:05:29,960 --> 00:05:35,110 >> În acest caz, vom încărcare de până acest pagina cu butonul "Salută". 95 00:05:35,110 --> 00:05:38,960 Dar pentru acum, am de fapt eliminat o parte din acest cod 96 00:05:38,960 --> 00:05:44,850 în hello.php care era rula care a fost de fapt afișarea "Bună ziua, 97 00:05:44,850 --> 00:05:49,680 lumea "sau" Bună ziua, Sam "sau "Bună ziua," orice a fost doar de intrare. 98 00:05:49,680 --> 00:05:53,620 Deci, pentru moment, suntem de gând să faci asta, de fapt. 99 00:05:53,620 --> 00:05:56,570 Vom recrea că și De asemenea, adăuga unele mai multe funcționalități, 100 00:05:56,570 --> 00:06:00,210 face un pic mai mult cu el, vezi ceea ce este cu adevarat PHP capabil. 101 00:06:00,210 --> 00:06:04,870 >> Deci în primul rând, hai sa vorbim despre acest fișier, hello.php. 102 00:06:04,870 --> 00:06:07,440 Deci, dacă am mări-o puțin bit-- și acum eu sunt 103 00:06:07,440 --> 00:06:10,520 un fel de a încerca pentru a defila toate modul around-- acolo mergem. 104 00:06:10,520 --> 00:06:14,220 Veți vedea se numeste hello.php, dar sintaxa de ea 105 00:06:14,220 --> 00:06:16,880 arata ca un fișier HTML. 106 00:06:16,880 --> 00:06:20,380 Aceasta se datorează faptului că PHP reală în acest dosar 107 00:06:20,380 --> 00:06:25,220 este blocat toate acestea între Intrebare blocuri mark-caret. 108 00:06:25,220 --> 00:06:28,610 Totul aici este considerat cod PHP. 109 00:06:28,610 --> 00:06:32,040 >> Și veți observa că atunci când am făcut un comentariu, 110 00:06:32,040 --> 00:06:35,320 veți vedea familiar două înainte slash. 111 00:06:35,320 --> 00:06:38,440 Și dacă vei aminti, în HTML, dacă aș introduceți un comentariu, 112 00:06:38,440 --> 00:06:42,540 se pare ceva mai aproape de acest, care este un comentariu in HTML. 113 00:06:42,540 --> 00:06:46,570 Deci, într-adevăr tot ceea ce între aceste două paranteze unghiulare 114 00:06:46,570 --> 00:06:50,060 este acum cod PHP, care se reflectă în faptul 115 00:06:50,060 --> 00:06:53,270 că acest mic simbol comentariu este transformat într-un comentariu. 116 00:06:53,270 --> 00:06:58,420 >> Deci de fiecare dată când scrie cod PHP, chiar dacă nu există nici o Codul HTML in afara de ea, 117 00:06:58,420 --> 00:07:02,720 este întotdeauna o să fie închise în aceste paranteze unghiulare 118 00:07:02,720 --> 00:07:04,080 cu semne de întrebare. 119 00:07:04,080 --> 00:07:08,260 Puteți un fel de cred despre it-- cum toate din codul care a fugit în programele dumneavoastră C 120 00:07:08,260 --> 00:07:13,950 a fost închis într-un int principal, void, bretele buclat, scop declarație bretele buclat. 121 00:07:13,950 --> 00:07:17,100 Și veți vedea acolade în PHP, de asemenea, dar acest lucru este un fel de 122 00:07:17,100 --> 00:07:20,490 ca principala metodă de PHP. 123 00:07:20,490 --> 00:07:25,630 >> Deci, acum, cum facem ceva in PHP? 124 00:07:25,630 --> 00:07:29,190 Acum, PHP este un programare limbă pe care este foarte-C cum ar fi, 125 00:07:29,190 --> 00:07:30,970 dar funcționează pe web. 126 00:07:30,970 --> 00:07:33,270 Deci, un lucru pe care vei immediately-- unul 127 00:07:33,270 --> 00:07:38,130 din primele lucruri pe care le făcut într-adevăr cu C a fost ați imprimat lucruri, nu? 128 00:07:38,130 --> 00:07:42,290 Deci, în C am făcut asta cu o funcție printf. 129 00:07:42,290 --> 00:07:46,430 Am dat un șir de caractere, probabil cu o nouă linie, 130 00:07:46,430 --> 00:07:49,850 și apoi ne-am terminat cu punct și virgulă. 131 00:07:49,850 --> 00:07:53,790 >> Deci modul în care vom face acest lucru în PHP-- pentru ca nu este destul de printf. 132 00:07:53,790 --> 00:07:55,940 E un pic de sintaxă diferită. 133 00:07:55,940 --> 00:08:02,580 Modul în care ne imprima lucrurile în PHP este spunem, "ecou salut" 134 00:08:02,580 --> 00:08:04,180 sau "echo" orice cuvânt. 135 00:08:04,180 --> 00:08:09,830 Și că are efectul de a face printf cu un șir de caractere, "salut". 136 00:08:09,830 --> 00:08:11,990 Și se adaugă noua linie la ea. 137 00:08:11,990 --> 00:08:16,000 >> Deci, haideți să chiar acum face sure-- Voi micșora din nou un pic bit-- 138 00:08:16,000 --> 00:08:18,250 să asigurați-vă că codul este de lucru 139 00:08:18,250 --> 00:08:21,030 pentru că nu ar putea foarte bine să fie un bug în acest cod 140 00:08:21,030 --> 00:08:22,880 că va trebui să abordeze. 141 00:08:22,880 --> 00:08:25,860 Deci, serverul este deja în execuție. 142 00:08:25,860 --> 00:08:30,630 Deci, dacă ne-am derulați înapoi la partea de jos, Da, serverul este încă în desfășurare. 143 00:08:30,630 --> 00:08:34,510 Deci, dacă ne-am atingeți acest pic dreapta here-- 144 00:08:34,510 --> 00:08:37,620 welcome-- ar trebui să get-- mare. 145 00:08:37,620 --> 00:08:39,930 >> Noi încă sunt având familiar "Salută" dialog, 146 00:08:39,930 --> 00:08:45,750 dar când am tastați în "hi", vom vedea că textul "Hello" era într-adevăr 147 00:08:45,750 --> 00:08:50,080 imprimate, care este exact ca ne-am așteptat că ecou în PHP 148 00:08:50,080 --> 00:08:53,190 este la fel ca o declarație printf. 149 00:08:53,190 --> 00:09:01,410 Deci, înapoi la codul, cum în P set 6 a facut codul de distribuție vă sunt oferite 150 00:09:01,410 --> 00:09:05,920 face în așa fel încât ar fi PHP ieșire lucru care te 151 00:09:05,920 --> 00:09:07,920 tastat de pe ecranul anterior? 152 00:09:07,920 --> 00:09:10,350 >> Și la fel de a examina de ce se întâmplă acest lucru, suntem 153 00:09:10,350 --> 00:09:15,510 de gând să meargă în index.html, care este fișierul original, fișierul pe care 154 00:09:15,510 --> 00:09:18,710 apare pe acest ecran cu butonul "Salută". 155 00:09:18,710 --> 00:09:20,950 Ai observat că nu există toate lucrurile clasice 156 00:09:20,950 --> 00:09:26,910 am ajuns să ne așteptăm de la HTML, cum ar ca aceste lucruri, aceste tag-uri închise 157 00:09:26,910 --> 00:09:31,080 în paranteze unghiulare, cum ar fi PHP dar fără semnele de întrebare, 158 00:09:31,080 --> 00:09:34,650 ceea ce indică un lucru special pentru HTML. 159 00:09:34,650 --> 00:09:36,895 Avem titlu, care este "Hello". 160 00:09:36,895 --> 00:09:41,010 Și veți observa că așa cum am văzut, titlul este "hello" în ambele cazuri. 161 00:09:41,010 --> 00:09:43,260 Să schimbăm asta la "spune" așa ne-am 162 00:09:43,260 --> 00:09:48,170 ne putem distinge unde suntem. 163 00:09:48,170 --> 00:09:49,600 >> Dar avem un corp. 164 00:09:49,600 --> 00:09:52,690 Și apoi interesant pic, bit care apare în HTML, 165 00:09:52,690 --> 00:09:54,530 este acest element formă. 166 00:09:54,530 --> 00:09:56,370 Și astfel avem o formă. 167 00:09:56,370 --> 00:09:58,330 Și aceasta este cheia. 168 00:09:58,330 --> 00:10:00,530 Acesta este modul în care lucrăm cu PHP. 169 00:10:00,530 --> 00:10:05,790 Parametrul acțiune de Formularul spune că hello.php 170 00:10:05,790 --> 00:10:09,310 este ceea ce am de gând să trimită valorile din acest formular pentru a. 171 00:10:09,310 --> 00:10:13,830 Acest lucru este în cazul în care vom trece parametrii, ca să spunem așa. 172 00:10:13,830 --> 00:10:18,680 >> Veți observa un alt lucru aici este că metoda este "get". 173 00:10:18,680 --> 00:10:24,450 Există două primar metode prin care va 174 00:10:24,450 --> 00:10:28,750 fie folosind PHP pentru a trece de date între paginile web websites--, 175 00:10:28,750 --> 00:10:30,500 rather-- în această misiune. 176 00:10:30,500 --> 00:10:34,070 Și aceste metode sunt "get" și "post." 177 00:10:34,070 --> 00:10:37,010 Există unele subtile diferențele dintre get și post 178 00:10:37,010 --> 00:10:40,520 că vom primi into-- noi va "primi" în, dacă vrei. 179 00:10:40,520 --> 00:10:44,030 >> Dar pentru toate punctele de scopuri, pentru a primi și post 180 00:10:44,030 --> 00:10:47,120 sunt ambele doar moduri care treci parametrii 181 00:10:47,120 --> 00:10:49,500 cu ușor diferite executii. 182 00:10:49,500 --> 00:10:53,500 Pentru moment, vom folosi obține deoarece obține a fost ceea ce a fost folosit inițial 183 00:10:53,500 --> 00:10:57,340 în dosarul PHP P set 6. 184 00:10:57,340 --> 00:11:00,850 Și, de fapt, dacă mergem și uite înainte de a ne-am editat nimic altceva, 185 00:11:00,850 --> 00:11:03,090 Am de gând să te salut sa-- care e numele tău? 186 00:11:03,090 --> 00:11:03,812 >> Audiența: Elliot. 187 00:11:03,812 --> 00:11:04,770 SAM LEVATICH: Oh, Doamne. 188 00:11:04,770 --> 00:11:05,600 Nu știu cum se scrie asta. 189 00:11:05,600 --> 00:11:06,766 Ai putea să scrie asta pentru mine? 190 00:11:06,766 --> 00:11:08,710 Audiența: E-L-L-I-O-T. 191 00:11:08,710 --> 00:11:09,720 >> SAM LEVATICH: I-O-T? 192 00:11:09,720 --> 00:11:10,440 >> Audiența: Da. 193 00:11:10,440 --> 00:11:10,960 >> SAM LEVATICH: Perfect. 194 00:11:10,960 --> 00:11:11,210 BINE. 195 00:11:11,210 --> 00:11:12,751 Cred că am știut cum să scrie asta. 196 00:11:12,751 --> 00:11:13,510 Îmi pare rău pentru asta. 197 00:11:13,510 --> 00:11:16,560 Dar dacă spunem "salut," nu este nu va să apară pe ecran 198 00:11:16,560 --> 00:11:18,476 dar pentru că am modificat codul un pic. 199 00:11:18,476 --> 00:11:21,290 Dar dacă facem "Salută" - OK, deci "salut" este aici. 200 00:11:21,290 --> 00:11:24,137 Dar dacă luăm o mai strânsă uita-te la URL-ul în sine, 201 00:11:24,137 --> 00:11:26,220 vom vedea că se termină cu hello.php? name = Elliot. 202 00:11:26,220 --> 00:11:30,980 203 00:11:30,980 --> 00:11:37,180 >> Deci, aceasta este o modalitate de comunicarea la pagina web următoare 204 00:11:37,180 --> 00:11:39,240 parametrii care le-am trecut. 205 00:11:39,240 --> 00:11:40,870 Am spus name = Elliot. 206 00:11:40,870 --> 00:11:46,290 Și asta e în cele din urmă modul în care P set 6 accesat variabila care am trecut în 207 00:11:46,290 --> 00:11:47,520 prin forma. 208 00:11:47,520 --> 00:11:51,470 Și acest lucru este ceva ce este specific la o cerere get. 209 00:11:51,470 --> 00:11:57,480 O cerere get face parametrii cunoscut în adresa URL a site-ului. 210 00:11:57,480 --> 00:12:01,190 >> Și veți aminti, de asemenea, în P set 6 pe care le 211 00:12:01,190 --> 00:12:04,450 a trebuit să scrie o funcție care sa ocupat de faptul 212 00:12:04,450 --> 00:12:09,700 că acest șir de interogare ar putea exista după un fișier. 213 00:12:09,700 --> 00:12:14,684 S-ar putea fi un semn de întrebare, urmată prin practic orice număr de caractere. 214 00:12:14,684 --> 00:12:16,350 Și asta este exact ceea ce se întâmplă aici. 215 00:12:16,350 --> 00:12:21,280 Și motivul pentru care a trebuit să analiza care în punerea în aplicare a dvs. server.c în P 216 00:12:21,280 --> 00:12:27,570 set 6 este astfel încât ai putea spune codul PHP care name = Elliot. 217 00:12:27,570 --> 00:12:30,460 Trebuia să fie în măsură să analiza că din URL-ul 218 00:12:30,460 --> 00:12:35,900 astfel încât fișierul PHP în cauză știa ce-a face cu. 219 00:12:35,900 --> 00:12:39,350 >> Deci sperăm că acest lucru dă motivația de a server.c 220 00:12:39,350 --> 00:12:43,900 Acum, că ne mișcăm pe in afara de C în PHP. 221 00:12:43,900 --> 00:12:48,240 Deci, haideți să se concentreze de fapt, pe accesarea lucrurile trecut printr-o cerere te acum 222 00:12:48,240 --> 00:12:48,880 in acest punct. 223 00:12:48,880 --> 00:12:50,157 Am de gând pentru a salva acest lucru. 224 00:12:50,157 --> 00:12:51,240 Nu am schimbat nimic. 225 00:12:51,240 --> 00:12:56,080 Se pare că avem un câmp de introducere. 226 00:12:56,080 --> 00:12:58,550 >> Ne stabilirea unor proprietăți, cum putem face o HTML. 227 00:12:58,550 --> 00:12:59,550 Acestea sunt lucruri simple. 228 00:12:59,550 --> 00:13:00,580 Nu avem nevoie de astea. 229 00:13:00,580 --> 00:13:03,750 Dar avem automată off, care, practic, says-- știți, 230 00:13:03,750 --> 00:13:05,710 atunci când tastați lucruri în web, uneori 231 00:13:05,710 --> 00:13:07,355 încearcă să umple că, în pentru tine. 232 00:13:07,355 --> 00:13:08,230 Deci, este un lucru frumos. 233 00:13:08,230 --> 00:13:11,700 Vrem să-l opriți în acest scop. 234 00:13:11,700 --> 00:13:13,970 Asta a fost o decizie CS50. 235 00:13:13,970 --> 00:13:15,640 Deci, putem sterge că, dacă ne-am dorit. 236 00:13:15,640 --> 00:13:19,510 >> Autofocus bastoane doar cursorul în formă dreapta de la început. 237 00:13:19,510 --> 00:13:21,060 Din nou, nu prea important. 238 00:13:21,060 --> 00:13:26,220 >> Dar name = "nume" - e un pic dificil, pentru că numele și numele. 239 00:13:26,220 --> 00:13:28,730 Dar am putea-am schimbat acest lucru altceva. 240 00:13:28,730 --> 00:13:30,563 Și, de fapt, asta e ceea ce vom face acum. 241 00:13:30,563 --> 00:13:34,830 Vom spune "persoană", care este un fel de cum ar fi numele 242 00:13:34,830 --> 00:13:36,790 Dacă o persoană este definită de numele lor. 243 00:13:36,790 --> 00:13:41,480 >> Așa că haideți să închidă acest lucru, redeschide up site-ul nostru 244 00:13:41,480 --> 00:13:46,110 deoarece serverul nostru este încă în desfășurare Apache 50, și vom spune, salut, aici este 245 00:13:46,110 --> 00:13:47,200 Elliot din nou. 246 00:13:47,200 --> 00:13:48,460 De ce nu? 247 00:13:48,460 --> 00:13:49,220 Alo. 248 00:13:49,220 --> 00:13:52,880 Și dacă mergem aici, vom vedea apoi în loc de numele = Elliot, 249 00:13:52,880 --> 00:13:55,200 se spune persoana = Elliot. 250 00:13:55,200 --> 00:14:00,060 Și că este un rezultat direct al faptului că ne-am schimbat doar numele = "persoană." 251 00:14:00,060 --> 00:14:06,840 >> Deci, într-un element de intrare a un formular HTML, câmpul Nume 252 00:14:06,840 --> 00:14:10,590 este identificatorul pentru parametru care a fi trecut. 253 00:14:10,590 --> 00:14:14,250 E ca și cum, dacă sunteți crearea unei funcții "add", care a avut, în două numere întregi 254 00:14:14,250 --> 00:14:16,670 și ai spus Int o și Int b. 255 00:14:16,670 --> 00:14:22,680 Asta ar fi un nume de, și în cazul în care ai vrut o altă formă, care 256 00:14:22,680 --> 00:14:27,800 putem face doar prin copierea și lipire, atunci am avea nume b. 257 00:14:27,800 --> 00:14:31,030 >> Deci, acum vom avea doi parametri care sunt transmise prin 258 00:14:31,030 --> 00:14:36,970 ajunge la website-- următor pagina web următoare, hello.php. 259 00:14:36,970 --> 00:14:39,770 Și putem vedea de fapt, că din nou, dacă vrem. 260 00:14:39,770 --> 00:14:44,830 Acesta este cel mai simplu mod de a face cu codul web în IDE, practic. 261 00:14:44,830 --> 00:14:47,940 Începi serverul, l de funcționare, iar apoi de fiecare dată când 262 00:14:47,940 --> 00:14:50,649 face unele modificări, doar aproape acest fișier doar pentru a fi în siguranță. 263 00:14:50,649 --> 00:14:52,440 Apăsarea butonului din spate este un pic cam complicat 264 00:14:52,440 --> 00:14:55,800 pentru că s-ar putea încărca un mai devreme versiune, nu cel mai actualizat. 265 00:14:55,800 --> 00:14:59,200 >> Și apoi doar să faceți clic butonul din nou, pop dreapta up-- oh, 266 00:14:59,200 --> 00:15:00,510 iar acum există două forme. 267 00:15:00,510 --> 00:15:10,440 Și astfel, dacă tastați un singur lucru în fiecare Unu "Hirshhorn Jason," pentru instance-- 268 00:15:10,440 --> 00:15:11,590 am salut. 269 00:15:11,590 --> 00:15:12,840 Ne uităm în sus la parametrii noastre. 270 00:15:12,840 --> 00:15:18,910 Se pare că avem, ca era de așteptat, a = b = Jason și Hirshhorn, 271 00:15:18,910 --> 00:15:23,760 care reprezintă cei doi parametri că am trecut la această funcție. 272 00:15:23,760 --> 00:15:27,900 >> Deci, acum sa trecem de fapt la punere în aplicare a funcționalitatea pe care le 273 00:15:27,900 --> 00:15:30,840 a avut în P set 6. 274 00:15:30,840 --> 00:15:32,490 Deci, acum suntem doar un ecou salut. 275 00:15:32,490 --> 00:15:34,310 Și asta nu e foarte util. 276 00:15:34,310 --> 00:15:38,530 Vrem să ecou unele variabile care a fost trecut la noi. 277 00:15:38,530 --> 00:15:40,320 Și știm numele acestei variabile. 278 00:15:40,320 --> 00:15:41,770 Avem o și am b. 279 00:15:41,770 --> 00:15:43,500 Deci, am putea alege să ecou nici unul. 280 00:15:43,500 --> 00:15:45,470 >> Dar cum putem accesa? 281 00:15:45,470 --> 00:15:48,820 Ei bine, există anumite variabile globale în PHP. 282 00:15:48,820 --> 00:15:51,240 Și am de gând să scrie le în comentariile de aici. 283 00:15:51,240 --> 00:15:59,910 Cele două cele mai importante sunt get și post pentru scopurile noastre, chiar acum. 284 00:15:59,910 --> 00:16:05,350 Acestea sunt tablouri sau, punct de vedere tehnic, dicționarele 285 00:16:05,350 --> 00:16:10,540 în cazul în care variabilele care suntem trecerea la următoarea pagină web live. 286 00:16:10,540 --> 00:16:14,520 Și vom vedea în curând cum să le folosească. 287 00:16:14,520 --> 00:16:19,720 >> Un alt notă scurtă despre codul PHP și unele specificul it-- în C, 288 00:16:19,720 --> 00:16:23,260 să declare o variabilă sau de a folosi variabile, 289 00:16:23,260 --> 00:16:24,570 ai avut mai întâi să le declare. 290 00:16:24,570 --> 00:16:30,860 Și ceea ce trebuia să faci, atunci când a declarat ei a fost spune int a sau char b. 291 00:16:30,860 --> 00:16:35,630 Trebuia să declare tipurile de acestea variabile înainte de a le crea. 292 00:16:35,630 --> 00:16:38,800 PHP-- nu aveți nevoie pentru a face orice de asta. 293 00:16:38,800 --> 00:16:42,522 PHP nu cere tipul de variabile. 294 00:16:42,522 --> 00:16:44,480 Și modul în care că a crea un variable-- destul de 295 00:16:44,480 --> 00:16:49,930 decât a spune Int, char, string-- care este într-adevăr char *, așa cum am know-- 296 00:16:49,930 --> 00:16:52,180 mai degrabă decât a face toate că, pentru că totul 297 00:16:52,180 --> 00:16:54,620 este de același tip, typeless, putem doar 298 00:16:54,620 --> 00:16:59,210 utiliza un caracter, care este semnul dolar. 299 00:16:59,210 --> 00:17:03,700 Și veți vedea că deja popping up, mici lucruri completare automată. 300 00:17:03,700 --> 00:17:11,380 Și se spune că _GET și _POST sunt două opțiuni pe care le au la dispoziție 301 00:17:11,380 --> 00:17:11,900 mie. 302 00:17:11,900 --> 00:17:16,430 Unele dintre aceste alte lucruri sunt alte variabile globale în PHP 303 00:17:16,430 --> 00:17:18,430 pe care le veți folosi pe cursul P set 7. 304 00:17:18,430 --> 00:17:20,569 Pentru moment vom se concentreze pe get și post. 305 00:17:20,569 --> 00:17:22,910 Dar aceasta este o util lucru pe care nu IDE 306 00:17:22,910 --> 00:17:24,980 în cazul în care odată ce ați tastat în acest semn dolar, 307 00:17:24,980 --> 00:17:28,760 acesta va începe completarea variabile globale sau variabile ai definit deja. 308 00:17:28,760 --> 00:17:34,360 >> Deci, dacă ai vrut să definiți o variabilă numită "string" 309 00:17:34,360 --> 00:17:38,290 ați putea stabili doar egal cu "hi". 310 00:17:38,290 --> 00:17:40,100 Și este practic la fel de simplu ca asta. 311 00:17:40,100 --> 00:17:44,720 Și apoi am putea face ceva de genul "$ string ecou." 312 00:17:44,720 --> 00:17:48,524 IDE ar trebui să fie aruncat unele erori dacă fac ceva greșit, 313 00:17:48,524 --> 00:17:50,190 deci sperăm că fac totul bine. 314 00:17:50,190 --> 00:17:52,060 Dar bug-uri sunt întotdeauna apar. 315 00:17:52,060 --> 00:17:56,670 >> Un alt lucru complicat despre PHP este că nu este compilat. 316 00:17:56,670 --> 00:18:00,640 Deci, cu programe C, v-ar face rutina de zi cu zi de-- practic, 317 00:18:00,640 --> 00:18:02,710 v-ar face modificări la codul, ai o salvați, 318 00:18:02,710 --> 00:18:04,460 și apoi v-ar face, în cazul în care marca a fost 319 00:18:04,460 --> 00:18:08,830 pasul care a chemat compilator, zăngăni, pentru a face codul, acest text 320 00:18:08,830 --> 00:18:10,570 fișier, într-un executabil. 321 00:18:10,570 --> 00:18:15,550 PHP este-C cum ar fi, dar este executat pe zbor de browser-ul Web. 322 00:18:15,550 --> 00:18:17,640 Deci, nu există nici o modalitate de a ști. 323 00:18:17,640 --> 00:18:19,790 >> Asigurați-ar arunca pe cei erori de ajutor, nu? 324 00:18:19,790 --> 00:18:22,190 Ar fi ca și cum, tu nu a declarat această variabilă 325 00:18:22,190 --> 00:18:23,320 înainte de ai încercat să-l folosească. 326 00:18:23,320 --> 00:18:29,120 Ai făcut toate astea segfault stuff-- rău, segfault, toate la fel de bine ori distracție 327 00:18:29,120 --> 00:18:31,000 care a venit cu make. 328 00:18:31,000 --> 00:18:33,920 PHP este un sabie cu două tăișuri pentru că nu va primi aceste erori, 329 00:18:33,920 --> 00:18:37,770 dar asta înseamnă și că nu veți ști într-adevăr ceea ce e în neregulă cu programul 330 00:18:37,770 --> 00:18:39,840 dacă doar a alerga și nu este de lucru. 331 00:18:39,840 --> 00:18:45,130 Dar depanatorul ar trebui să arate unele lucruri sperăm utile mici 332 00:18:45,130 --> 00:18:47,950 sintactic pe care le puteți repara. 333 00:18:47,950 --> 00:18:52,850 >> Deci, acum, dacă vom trece peste sa-- spun, să închide. 334 00:18:52,850 --> 00:18:54,522 Redeschide. 335 00:18:54,522 --> 00:18:55,480 Și ne-am întors aici. 336 00:18:55,480 --> 00:18:57,210 Deci avem o variabilă și o variabilă b. 337 00:18:57,210 --> 00:18:58,626 Și acestea nu vor în cele din urmă conta. 338 00:18:58,626 --> 00:19:01,850 Le vom suna h și g pentru nici un motiv special. 339 00:19:01,850 --> 00:19:03,120 >> Și am salut. 340 00:19:03,120 --> 00:19:07,480 Acum se pare ca șir nostru "hi" este într-adevăr de imprimare. 341 00:19:07,480 --> 00:19:10,460 Am creat o variabilă numită "string", a pus-o egală cu "hi". 342 00:19:10,460 --> 00:19:15,520 Observați că nu au de a face malloc sau să facă o matrice de caractere. 343 00:19:15,520 --> 00:19:19,110 >> În PHP, deoarece variabilele sunt typeless, un șir 344 00:19:19,110 --> 00:19:22,230 este la fel ca un char de toate punctele de vedere. 345 00:19:22,230 --> 00:19:23,570 Acest lucru ar putea fi "hi". 346 00:19:23,570 --> 00:19:26,340 Acest lucru ar putea fi doar caracterul k. 347 00:19:26,340 --> 00:19:29,290 Acest lucru poate fi un număr de 1. 348 00:19:29,290 --> 00:19:30,300 Și nu-i pasă. 349 00:19:30,300 --> 00:19:33,560 PHP nu-i pasă tipul de variabila. 350 00:19:33,560 --> 00:19:34,390 Sau, o face de ingrijire. 351 00:19:34,390 --> 00:19:36,240 Acesta îi pasă atunci când încercați și de a face lucruri cu el, 352 00:19:36,240 --> 00:19:38,790 dar nu-i pasa în etapa declarație. 353 00:19:38,790 --> 00:19:46,960 >> Și la fel ca tine poate în C, puteți declara siruri de caractere pe stiva ca aceasta 354 00:19:46,960 --> 00:19:51,130 deși spune "stack" este un pic bit de un potențial termen impropriu atunci când 355 00:19:51,130 --> 00:19:52,230 vorbim despre PHP. 356 00:19:52,230 --> 00:19:54,020 Dar noi nu trebuie să vă faceți griji despre asta. 357 00:19:54,020 --> 00:19:55,936 Deci ne-am string nostru "hi", și ne-am ecou șir. 358 00:19:55,936 --> 00:19:58,880 Deci, acum am discutat variabile. 359 00:19:58,880 --> 00:20:06,060 Deci, acum trebuie să vorbim despre get și posta și de a efectua lucrul final care este 360 00:20:06,060 --> 00:20:12,660 necesare pentru a obține într-adevăr această înapoi la funcționalitatea P set 6. 361 00:20:12,660 --> 00:20:14,990 Deci, acum suntem ecou șir, dar am 362 00:20:14,990 --> 00:20:17,080 au aceste variabile obține și post. 363 00:20:17,080 --> 00:20:19,430 Și pentru că suntem folosind metoda GET, aceasta 364 00:20:19,430 --> 00:20:24,810 pare firesc ca variabilă noastră că suntem interesati de, atât A și B, 365 00:20:24,810 --> 00:20:29,870 va fi amplasat în matrice sau dicționar, tehnic primi. 366 00:20:29,870 --> 00:20:33,510 >> Deci, dacă am înființat obține ca acest cu groups-- tău am apăsat intra 367 00:20:33,510 --> 00:20:36,770 și nu-i plăcea it-- dar aici avem minim. 368 00:20:36,770 --> 00:20:38,000 Și așa a obține există deja. 369 00:20:38,000 --> 00:20:41,380 Astfel încât să putem începe deja pentru a accesa unele dintre elementele de get. 370 00:20:41,380 --> 00:20:45,000 Dacă vom obține, această sintaxă pentru matrice în PHP este foarte-C cum ar fi. 371 00:20:45,000 --> 00:20:47,900 Avem cele două paranteze pătrate. 372 00:20:47,900 --> 00:20:53,440 >> Deci, dacă spunem obține într-o normală matrice, am putea avea acces la 373 00:20:53,440 --> 00:20:55,600 indicele zero, primul indice. 374 00:20:55,600 --> 00:20:56,840 PHP este indicele zero. 375 00:20:56,840 --> 00:21:00,550 Am putea spune zero, unu, chestii de genul asta two--. 376 00:21:00,550 --> 00:21:03,420 Și am spus că obține este punct de vedere tehnic un dicționar. 377 00:21:03,420 --> 00:21:08,290 Deci, ceea ce PHP face sub capota, care este un pic mai frumos decât C, 378 00:21:08,290 --> 00:21:12,760 este deja este oferindu-vă unele funcționalitate dicționar, care 379 00:21:12,760 --> 00:21:16,240 este într-adevăr tabele de dispersie, sau incearca sa, se presupune. 380 00:21:16,240 --> 00:21:19,360 Sau, punct de vedere tehnic ar putea fi o încercare, de asemenea. 381 00:21:19,360 --> 00:21:25,500 Dar PHP este punerea în aplicare a unui tabel hash, care formează un dicționar eficient. 382 00:21:25,500 --> 00:21:28,400 >> Și astfel noi știm numele variabilei noastre, nu? 383 00:21:28,400 --> 00:21:32,440 Este a fi trecut în șirul de interogare de PHP. 384 00:21:32,440 --> 00:21:37,290 Avem o = h și b = g în cazul în care și b sunt numele variabilelor. 385 00:21:37,290 --> 00:21:41,580 Deci modul în care putem accesa valoare care corespunde cheii 386 00:21:41,580 --> 00:21:45,055 în dicționarul nostru este doar prin a spune _GET_GET ["a"]. 387 00:21:45,055 --> 00:21:48,170 388 00:21:48,170 --> 00:21:51,365 >> Deci, acum avem _GET ["a"]. 389 00:21:51,365 --> 00:21:56,930 Și dacă ne-am înlocui în interiorul ecou nostru, dacă ne-am echo _GET_GET ["a"] - 390 00:21:56,930 --> 00:22:02,410 și vom vedea dacă debugger aruncă orice erori despre asta: 391 00:22:02,410 --> 00:22:05,620 vom salva ca și închideți asta. 392 00:22:05,620 --> 00:22:07,130 Deschide-l. 393 00:22:07,130 --> 00:22:10,390 Deci, vom face doar un drept acum, asa ca nu ar trebui să conteze b. 394 00:22:10,390 --> 00:22:12,980 "ei" și "el" - "zumzet." "ei" și "hum". 395 00:22:12,980 --> 00:22:14,810 Suna bine. 396 00:22:14,810 --> 00:22:18,040 >> Și ea imprimate "ei", care este nebun. 397 00:22:18,040 --> 00:22:21,920 Dar asta este exact ceea ce se întâmpla în P set 6. 398 00:22:21,920 --> 00:22:27,240 Practic, ceea ce P set 6 a fost doing-- ecou salut, 399 00:22:27,240 --> 00:22:31,580 name-- unde a avut o nume de variabilă și doar 400 00:22:31,580 --> 00:22:35,520 vă cere să tastați în pic de text. 401 00:22:35,520 --> 00:22:37,380 Nu a fost, de asemenea, unele Cod adițional în cazul în care 402 00:22:37,380 --> 00:22:40,550 a inclus în cazul în declarații, pe care le putem face acum. 403 00:22:40,550 --> 00:22:50,120 >> Putem spune dacă există, care este o funcționalitate în PHP, 404 00:22:50,120 --> 00:22:55,110 _GET Cu subliniere, "nume" - care este, în principiu spune, 405 00:22:55,110 --> 00:22:58,760 "în cazul în care numele a fost completat", deoarece am fi putut pur și simplu clic pe butonul 406 00:22:58,760 --> 00:23:02,580 să prezinte formularul fără tastând ceva în acest domeniu. 407 00:23:02,580 --> 00:23:07,760 Și noi înveliți că în nostru acolade prietenos. 408 00:23:07,760 --> 00:23:09,175 Putem avea o declarație altceva. 409 00:23:09,175 --> 00:23:13,300 410 00:23:13,300 --> 00:23:18,820 Și asta e tot în unghiul PHP suport, semn de întrebare, suport unghi, 411 00:23:18,820 --> 00:23:20,040 dacă vrei. 412 00:23:20,040 --> 00:23:21,750 >> Și acum vom vedea dacă funcționează. 413 00:23:21,750 --> 00:23:26,300 Tot de așteptare pentru ea pentru a depana și prostiile pe mine, practic, 414 00:23:26,300 --> 00:23:28,410 dar nu a fost încă. 415 00:23:28,410 --> 00:23:30,830 Poate că va acum pentru că am vorbit despre. 416 00:23:30,830 --> 00:23:31,330 Da. 417 00:23:31,330 --> 00:23:32,510 A făcut, de fapt,. 418 00:23:32,510 --> 00:23:34,610 Deci, nimic nu se afișează. 419 00:23:34,610 --> 00:23:38,750 Asta pentru că de ceva în neregulă că am scris în codul PHP. 420 00:23:38,750 --> 00:23:42,844 Și am menționat depanare este dificil, deoarece în PHP, am 421 00:23:42,844 --> 00:23:45,260 nu l-am compila în prealabil iar compilatorul nu a fost ca, 422 00:23:45,260 --> 00:23:46,710 aici e în cazul în care erorile sunt. 423 00:23:46,710 --> 00:23:49,690 >> Dar ce putem face este-- face oamenii isi amintesc 424 00:23:49,690 --> 00:23:57,010 cum sa se uite la diferite rețeaua solicită ca PHP-- sau site-uri web care 425 00:23:57,010 --> 00:23:57,620 trimite? 426 00:23:57,620 --> 00:24:00,290 [? Malin?] A făcut acest lucru în prelegere o dată sau de două ori. 427 00:24:00,290 --> 00:24:05,830 Îți amintești unde mergem pentru a găsi diferite datoriile și 200 OKS, 428 00:24:05,830 --> 00:24:09,780 toate aceste coduri care sunt trimise prin HTTP de pe pagina web la pagina web? 429 00:24:09,780 --> 00:24:12,514 Are cineva aminte în cazul în care mergem să facem asta? 430 00:24:12,514 --> 00:24:13,787 >> Audiența: Page Source. 431 00:24:13,787 --> 00:24:14,870 SAM LEVATICH: sursă Page. 432 00:24:14,870 --> 00:24:15,890 Exact. 433 00:24:15,890 --> 00:24:19,230 Dacă te duci la pagina Source-- perfect. 434 00:24:19,230 --> 00:24:21,630 Deci Page Source trage în sus inspectorul. 435 00:24:21,630 --> 00:24:23,140 >> Și eu sunt, folosind Safari. 436 00:24:23,140 --> 00:24:25,790 O mulțime dintre voi, probabil, va fi fie folosind Chrome sau Firefox. 437 00:24:25,790 --> 00:24:27,750 Dar, atâta timp cât ești în orice browser-- modernă 438 00:24:27,750 --> 00:24:29,500 și nu ezitați să urmeze de-a lungul, dacă doriți. 439 00:24:29,500 --> 00:24:32,560 Aveți posibilitatea să tastați această cod sau doar uita-te in interiorul setului P 6 440 00:24:32,560 --> 00:24:35,820 director pentru unele chestii similare. 441 00:24:35,820 --> 00:24:41,020 hello.php este ceea ce suntem lucrează în prezent la emularea. 442 00:24:41,020 --> 00:24:42,476 >> Deci, există o varietate de file. 443 00:24:42,476 --> 00:24:43,850 Ne putem uita la toate resursele. 444 00:24:43,850 --> 00:24:45,810 Putem vedea codul sursă. 445 00:24:45,810 --> 00:24:49,900 Deci, se pare ca nu a obține corpul trecut în cele din urmă. 446 00:24:49,900 --> 00:24:54,890 Aceasta a constatat o eroare în PHP și oprit încărcarea paginii de web întreg. 447 00:24:54,890 --> 00:24:58,320 Noi nici măcar nu au un scop tag-ul pentru HTML sau ceva. 448 00:24:58,320 --> 00:25:07,189 >> Și dacă ne uităm la rețea, putem vedea că suntem a trimis o cerere. 449 00:25:07,189 --> 00:25:07,980 Acesta este domeniul. 450 00:25:07,980 --> 00:25:09,270 Aceasta este adresa. 451 00:25:09,270 --> 00:25:10,070 Este un document. 452 00:25:10,070 --> 00:25:14,310 Suntem folosind metoda get. 453 00:25:14,310 --> 00:25:15,760 >> Și e roșu. 454 00:25:15,760 --> 00:25:19,030 Sau, a fost roșu atunci când am nu a fost o selecție. 455 00:25:19,030 --> 00:25:22,680 Cum îl deselecta? 456 00:25:22,680 --> 00:25:23,980 Ei bine, a fost roșu. 457 00:25:23,980 --> 00:25:25,201 Lasă-mă să refresh. 458 00:25:25,201 --> 00:25:25,700 Acolo este. 459 00:25:25,700 --> 00:25:26,640 Acum e roșu. 460 00:25:26,640 --> 00:25:30,530 >> Deci e roșu, ceea ce înseamnă nu a reușit, ceea ce este rău. 461 00:25:30,530 --> 00:25:32,280 Așa că haideți să examinăm de ce a eșuat. 462 00:25:32,280 --> 00:25:37,070 Deci tot ce Page source poate practic vă spun este pe placul dvs. 463 00:25:37,070 --> 00:25:38,720 nu au de lucru, pe care putem vedea deja. 464 00:25:38,720 --> 00:25:42,100 Deci, în mod ideal, ar exista fi un instrument mai util. 465 00:25:42,100 --> 00:25:45,710 Și există unele extensii de browser care vă permit pentru a depana PHP, 466 00:25:45,710 --> 00:25:50,490 dar nu suntem de gând să fi scris o tona de PHP, 467 00:25:50,490 --> 00:25:53,190 așa că este, probabil, cel mai bun doar să se uite prin codul 468 00:25:53,190 --> 00:25:56,760 atenție și asigurați-vă doar că nu face nimic altceva. 469 00:25:56,760 --> 00:26:03,876 >> Deci, haideți să vedem dacă formatul acestui if este în cazul în care este problema. 470 00:26:03,876 --> 00:26:07,420 Vreau să încărcați înapoi aici. 471 00:26:07,420 --> 00:26:09,830 Salut bună. 472 00:26:09,830 --> 00:26:11,350 Deci, există o problemă acolo. 473 00:26:11,350 --> 00:26:15,130 >> Deci, pentru sintaxa corectă de PHP, PHP va 474 00:26:15,130 --> 00:26:17,369 să fi-C ca in că veți vedea bucle. 475 00:26:17,369 --> 00:26:18,410 Veți vedea dacă declarațiile. 476 00:26:18,410 --> 00:26:20,920 Veți vedea toate aceste prieteni că ai devenit familiar 477 00:26:20,920 --> 00:26:24,820 cu de-a lungul din acest semestru CS50. 478 00:26:24,820 --> 00:26:29,960 Dar cel mai bun mod de a da seama cum să face ceva în PHP este să-l pe Google 479 00:26:29,960 --> 00:26:33,170 sau să se uite la câteva exemple de cod PHP pentru că știi funcționalitatea. 480 00:26:33,170 --> 00:26:35,080 >> Știi ce poți face cu programul. 481 00:26:35,080 --> 00:26:35,976 Puteți buclă. 482 00:26:35,976 --> 00:26:37,600 Puteți buclă de câte ori doriți. 483 00:26:37,600 --> 00:26:39,433 Puteți buclă în toate felul de moduri diferite. 484 00:26:39,433 --> 00:26:40,700 Puteți crea funcții. 485 00:26:40,700 --> 00:26:43,241 Puteți crea funcții care apel alte funcții, funcții 486 00:26:43,241 --> 00:26:44,150 care se numesc. 487 00:26:44,150 --> 00:26:45,733 Și aveți nume pentru aceste concepte. 488 00:26:45,733 --> 00:26:49,860 Ai recursivitate, bucle, dacă, alte fluxuri de control. 489 00:26:49,860 --> 00:26:51,300 Și așa Google este cel mai bun prieten. 490 00:26:51,300 --> 00:26:53,540 Chiar spune, "în cazul în care PHP declarație "și nu va mai 491 00:26:53,540 --> 00:26:57,740 fi de tone de posturi cu răspunsuri la alte persoane 492 00:26:57,740 --> 00:27:02,090 care au avut întrebări similare cu tine, care sunt doar incepand cu PHP 493 00:27:02,090 --> 00:27:03,820 si sunt curiosi un lucru sintaxă. 494 00:27:03,820 --> 00:27:08,480 >> Pentru că avem luxul de a fi capabil să se uite la codul P set 6, 495 00:27:08,480 --> 00:27:14,980 am de fapt trage în sus și văd că OK, aici e ceva interesant. 496 00:27:14,980 --> 00:27:18,070 Deci, asta este ceea ce este de fapt arăta ca în P set 6. 497 00:27:18,070 --> 00:27:20,340 Deci, dacă trecem prin asta, putem vedea că ne-am 498 00:27:20,340 --> 00:27:27,150 Trebuie mai multe dintre aceste mici -PHP ca biți semn de întrebare. 499 00:27:27,150 --> 00:27:29,050 >> Și nu sunt acolade. 500 00:27:29,050 --> 00:27:30,250 Există două puncte. 501 00:27:30,250 --> 00:27:32,340 Și acolo sunt buclat bretele în PHP, dar acest lucru 502 00:27:32,340 --> 00:27:38,700 este un format și un mod de a face PHP, care funcționează bine cu HTML 503 00:27:38,700 --> 00:27:43,830 pentru că așa cum veți vedea, suntem de închidere off acestea PHP bits-- elses 504 00:27:43,830 --> 00:27:49,770 și IFS și toate that-- și apoi suntem interspersing HTML în interiorul lor 505 00:27:49,770 --> 00:27:54,640 în timp ce încă în urma fluxului de control stabilite de PHP. 506 00:27:54,640 --> 00:27:58,480 >> Deci, eu sunt doar de gând să plimbare rapida prin acest 507 00:27:58,480 --> 00:28:01,740 pentru că este o mulțime de aceeași concepte care făceam înainte. 508 00:28:01,740 --> 00:28:07,280 Avem dacă nu gol, paranteze, _GET_GET ["name"]. 509 00:28:07,280 --> 00:28:08,500 Acest lucru este cu aceleasi lucruri. 510 00:28:08,500 --> 00:28:15,430 Suntem folosind dicționarul _GET care PHP trimite la cerere de forme, 511 00:28:15,430 --> 00:28:20,720 deoarece este parametrii acțiune, iar metoda este minim. 512 00:28:20,720 --> 00:28:22,110 Și apoi care se termină asta. 513 00:28:22,110 --> 00:28:27,420 Colonul este un semnificant de a face acest lucru doar în cazul în care if se evaluează la true. 514 00:28:27,420 --> 00:28:29,490 E ca o acoladă. 515 00:28:29,490 --> 00:28:33,320 Și, de fapt, acesta este un bretele cret în alte limbi, cum ar fi Python, 516 00:28:33,320 --> 00:28:37,070 care s-ar putea întâlni, dacă doar face acest lucru pentru proiectul final. 517 00:28:37,070 --> 00:28:40,170 >> Și apoi această linie, salut. 518 00:28:40,170 --> 00:28:41,510 Apoi ne-am luat chestia asta ciudată. 519 00:28:41,510 --> 00:28:43,190 Avem mai multe paranteze. 520 00:28:43,190 --> 00:28:46,140 Nu e nici HTTP there-- sau PHP, îmi pare rău. 521 00:28:46,140 --> 00:28:47,250 Dar nu e un semn de egalitate. 522 00:28:47,250 --> 00:28:50,625 Și apoi ne-am o funcție, htmlspecialchars (_GEThtmlspecialchars (_GET ["name"]). 523 00:28:50,625 --> 00:28:54,440 524 00:28:54,440 --> 00:28:58,040 Acest lucru este ca un fel de mai versiune avansată de ecou. 525 00:28:58,040 --> 00:29:01,450 Ca și cum am avut ecou, ​​ca o modalitate pentru a imprima lucruri în PHP. 526 00:29:01,450 --> 00:29:03,890 Aceasta este o funcție care este definite în PHP care 527 00:29:03,890 --> 00:29:08,160 se va ocupa de ceva mai mult urât caractere și valori octet 528 00:29:08,160 --> 00:29:09,540 care le-ar putea trece. 529 00:29:09,540 --> 00:29:11,070 Este întotdeauna mai sigur de a utiliza acest lucru. 530 00:29:11,070 --> 00:29:14,930 Dar ecou va face treaba bine dacă nu suntem 531 00:29:14,930 --> 00:29:17,620 care se ocupă cu ceva prea urât. 532 00:29:17,620 --> 00:29:20,340 >> Și așa mai departe acest lucru are același efect de practic, 533 00:29:20,340 --> 00:29:26,360 aceste lucruri în între întrebare mărci este evaluată de PHP. 534 00:29:26,360 --> 00:29:34,490 htmlspecialchars returnează un HTML frumos Valoarea imprimată a _GET_GET ["name"], adică 535 00:29:34,490 --> 00:29:36,010 orice am tastat in forma. 536 00:29:36,010 --> 00:29:40,025 Și apoi o să spun salut, spațiu virgulă, și apoi asta. 537 00:29:40,025 --> 00:29:42,910 Că toată chestia între paranteze unghiulare 538 00:29:42,910 --> 00:29:47,390 va fi înlocuit cu orice htmlspecialchars pune afară. 539 00:29:47,390 --> 00:29:49,390 Deci asta e, practic similare la ceea ce facem. 540 00:29:49,390 --> 00:29:54,760 Și avem o declarație altceva care este Bună ziua lume, ceea ce face sens. 541 00:29:54,760 --> 00:29:58,070 Deci, acum să ne întoarcem la nostru Codul și a vedea exactly-- oh. 542 00:29:58,070 --> 00:30:02,200 Am spus exista, care nu este un lucru pe care am vrut să facem. 543 00:30:02,200 --> 00:30:05,370 Am vrut să spun, nu gol. 544 00:30:05,370 --> 00:30:10,020 >> Și așa ar trebui să funcționeze această un pic pic mai bine, nu _GET_GET gol ["name"]. 545 00:30:10,020 --> 00:30:12,710 Și că bretele creț Meciuri că bretele creț. 546 00:30:12,710 --> 00:30:15,210 Avem acolade noastre buclat aici. 547 00:30:15,210 --> 00:30:17,790 ecou salut _GET ["name"]. 548 00:30:17,790 --> 00:30:19,912 Să vedem dacă funcționează un pic mai bine. 549 00:30:19,912 --> 00:30:21,350 Nu mai avem încă serverul nostru. 550 00:30:21,350 --> 00:30:23,910 Buna ziua Jason. 551 00:30:23,910 --> 00:30:24,780 Buna ziua Jason. 552 00:30:24,780 --> 00:30:25,810 Și a funcționat de data asta. 553 00:30:25,810 --> 00:30:29,860 Și așa că e o dovadă că, într-adevăr puteți 554 00:30:29,860 --> 00:30:35,180 utilizați acolade pe care le cunosc și dragoste în codul PHP în HTML. 555 00:30:35,180 --> 00:30:41,100 Codul PHP furnizate te în PSET 6-- PSET 6-- 556 00:30:41,100 --> 00:30:44,760 prevede o altă modalitate de face același lucru. 557 00:30:44,760 --> 00:30:49,220 >> Deci, acum avem puterea. 558 00:30:49,220 --> 00:30:55,740 Avem o functionalitate a pune în aplicare codul PHP pe care am văzut-o în PSET 6 559 00:30:55,740 --> 00:30:57,390 de noi înșine, de fapt. 560 00:30:57,390 --> 00:31:01,350 Înainte de a muta pe, care sunt unele dintre cele mai întrebări pe care le au în acest moment? 561 00:31:01,350 --> 00:31:02,066 Da [neauzit]. 562 00:31:02,066 --> 00:31:06,512 >> Audiența: Deci, în versiunea în pset6, atunci când îl rulați, există un spațiu. 563 00:31:06,512 --> 00:31:09,330 Și pot vedea în cazul în care spațiul este după virgulă. [Inaudibil] start 564 00:31:09,330 --> 00:31:10,700 suportul deschis. 565 00:31:10,700 --> 00:31:15,420 Cum vă includă spațiul în modul în care a scris propriile coduri? 566 00:31:15,420 --> 00:31:17,910 >> SPEAKER: Aceasta este o întrebare bună. 567 00:31:17,910 --> 00:31:21,650 Și Să dai seama. 568 00:31:21,650 --> 00:31:24,450 Deci asta este o întrebare foarte bună și una care nu am lua în considerare. 569 00:31:24,450 --> 00:31:25,950 Dar să-l facem împreună. 570 00:31:25,950 --> 00:31:30,280 >> Deci primul rând, ceea ce Fac cu ecou 571 00:31:30,280 --> 00:31:33,690 este atunci când ne-am ecou salut, să emită salut. 572 00:31:33,690 --> 00:31:41,310 Dacă am ecou acum această ajunge pe o separat line, să examinăm ceea ce se întâmplă. 573 00:31:41,310 --> 00:31:43,740 Așa că am faceți clic pe acest lucru. 574 00:31:43,740 --> 00:31:45,220 Am tot spun, hi Jason. 575 00:31:45,220 --> 00:31:48,690 Deci, din nou, nu avem acest spațiu. 576 00:31:48,690 --> 00:31:53,090 >> Și asta pentru că, în PHP, atunci când ne-am ecou, 577 00:31:53,090 --> 00:31:55,820 indiferent cât de multe spaces-- nope, nu V-- 578 00:31:55,820 --> 00:32:01,770 indiferent cât de multe locuri de am pus în here-- dacă ne încărca acum că din nou, 579 00:32:01,770 --> 00:32:03,010 hi Jason. 580 00:32:03,010 --> 00:32:05,770 Da, vezi, toți cei spații fost mâncat. 581 00:32:05,770 --> 00:32:08,020 Și asta e ceva care funcția ecou face. 582 00:32:08,020 --> 00:32:11,110 >> Deci, pentru a avea grijă de în spațiul respectiv și acest lucru este 583 00:32:11,110 --> 00:32:14,960 unul dintre motivele de ce nu folosiți echo 584 00:32:14,960 --> 00:32:18,200 și utilizați htmlspecialchars loc. 585 00:32:18,200 --> 00:32:22,140 Sunt curios ce ar fi întâmpla dacă am făcut acest lucru 586 00:32:22,140 --> 00:32:26,700 în cazul în care ne-am închis un spațiu într-un șir. 587 00:32:26,700 --> 00:32:29,720 Nu sunt sigur ce sincer se va întâmpla atunci când fac acest lucru. 588 00:32:29,720 --> 00:32:30,790 >> Deci asta e un fel. 589 00:32:30,790 --> 00:32:32,210 Asta e un mod de a avea grijă de ea. 590 00:32:32,210 --> 00:32:34,840 Dacă ați înfășurați spațiul în un șir, apoi spațiul 591 00:32:34,840 --> 00:32:36,920 va fi redat bine de ecou. 592 00:32:36,920 --> 00:32:41,930 Cel mai sigur lucru de făcut este pentru a face htmlspecialchars. 593 00:32:41,930 --> 00:32:43,800 Asta e întotdeauna pariu sigur. 594 00:32:43,800 --> 00:32:47,050 Dar acum avem un mod de a face cu ecou, ​​dacă este necesar. 595 00:32:47,050 --> 00:32:50,700 Și într-un mod similar, putem ecou noi linii, toate fel 596 00:32:50,700 --> 00:32:53,550 de lucruri esti familiarizat faci în PHP. 597 00:32:53,550 --> 00:32:57,460 >> Oricine altcineva, care sunt mai întrebări pe care alte persoane au 598 00:32:57,460 --> 00:33:01,090 în acest moment despre PHP? 599 00:33:01,090 --> 00:33:04,620 Dacă oamenii au venit un pic mai târziu, Sunt fericit să rămână după un pic 600 00:33:04,620 --> 00:33:06,420 și vorbesc despre unele dintre început. 601 00:33:06,420 --> 00:33:10,380 Și este, de asemenea, toate livestreamed, și arhivate, care este nebun. 602 00:33:10,380 --> 00:33:13,960 >> Oricum, asa ca acum să facem unele mai multe lucruri avansate cu PHP. 603 00:33:13,960 --> 00:33:18,790 Și unul dintre cele mai vechi lucruri pe care le au fost introduse în C a fost pentru bucle. 604 00:33:18,790 --> 00:33:24,060 Și PHP are o mult mai puternic pentru buclă numit bucla foreach. 605 00:33:24,060 --> 00:33:37,940 Si se pare ca asta: pentru fiecare gol ca paranteze goale, buclat, face ceea ce trebuie. 606 00:33:37,940 --> 00:33:41,500 Deci, aceasta este de fapt o prescurtare. 607 00:33:41,500 --> 00:33:45,380 >> Vezi, FOR bucla ca un construcție sintactică 608 00:33:45,380 --> 00:33:50,590 a fost conceput în C și în asamblare limbă și alte lucruri asemănătoare. 609 00:33:50,590 --> 00:33:56,300 Conceput în C, exact, ca o prescurtare pentru o mulțime de tipuri de bucle 610 00:33:56,300 --> 00:33:57,750 că oamenii ar vedea. 611 00:33:57,750 --> 00:34:01,230 Ca atunci când ai scris o buclă, acolo fost de multe ori un pas de inițializare 612 00:34:01,230 --> 00:34:04,700 executat chiar de la început, A stare în care bucla ar stop-- 613 00:34:04,700 --> 00:34:07,030 și asta e caracteristica că e doar într-o buclă în timp ce, 614 00:34:07,030 --> 00:34:10,040 sau că un timp are exact doar că feature-- și apoi 615 00:34:10,040 --> 00:34:12,320 un pas incrementare la sfârșitul anului. 616 00:34:12,320 --> 00:34:16,489 Și așa te-ai găsi de multe ori te scrierea de cod, cum ar fi următoarele. 617 00:34:16,489 --> 00:34:19,780 Am de gând să șteargă o parte din aceasta. 618 00:34:19,780 --> 00:34:23,850 >> Dar dacă suntem iterarea prin caractere într-o matrice, 619 00:34:23,850 --> 00:34:26,960 de exemplu, cum ar fi ne-am primit o serie de caractere. 620 00:34:26,960 --> 00:34:29,400 Îmi pare rău pentru a aduce înapoi C. Știu, ai crezut că ai terminat. 621 00:34:29,400 --> 00:34:31,900 Dar e numai în scopul de PHP învățare, promit. 622 00:34:31,900 --> 00:34:38,880 Deci, dacă ai o Str char de lungime 8, și să 623 00:34:38,880 --> 00:34:46,760 spun că spune Hellooo cu un nul la final. 624 00:34:46,760 --> 00:34:48,270 Mare, așa că e șir nostru. 625 00:34:48,270 --> 00:34:51,469 >> Și apoi am avut o buclă pentru. 626 00:34:51,469 --> 00:34:53,730 Avem int i este egal cu 0. 627 00:34:53,730 --> 00:34:57,960 628 00:34:57,960 --> 00:35:09,110 Și vrem să ieși când str I nu este egal egal cu NULL, 629 00:35:09,110 --> 00:35:11,590 pentru că am ieși atunci când este egal cu zero. 630 00:35:11,590 --> 00:35:19,170 Și apoi vom face i ++ la fiecare punct din bucla for. 631 00:35:19,170 --> 00:35:30,480 A face ceva cu str de i. 632 00:35:30,480 --> 00:35:34,950 >> Deci, formula de bază a fost, am avut această matrice pe care le 633 00:35:34,950 --> 00:35:37,910 a vrut să trateze ca elemente separate. 634 00:35:37,910 --> 00:35:45,170 Dar ceea ce am avut de a face este de a trebuit să de fapt a crea un întreg separat 635 00:35:45,170 --> 00:35:50,530 variabilă care a fost de numărare în fiecare timp am trecut prin bucla. 636 00:35:50,530 --> 00:35:55,240 Și apoi ne-ar trebui apoi să sunați strstr [i], atunci când ceea ce ne vrut să fac 637 00:35:55,240 --> 00:35:57,280 este doar du-te de caractere de caracter, nu? 638 00:35:57,280 --> 00:36:00,185 Noi nu vrem să incrementa un întreg și apoi utilizați ca întreg 639 00:36:00,185 --> 00:36:02,780 pentru a accesa fiecare caracter individual. 640 00:36:02,780 --> 00:36:04,410 Ne dorim cu adevărat caracter cu caracter. 641 00:36:04,410 --> 00:36:08,600 >> Și astfel pentru fiecare inteligent calculează că pentru noi. 642 00:36:08,600 --> 00:36:11,875 Dacă avem o matrice, care putem declara în PHP 643 00:36:11,875 --> 00:36:15,900 ca și doar-- dacă avem o variabilă numit, să o numim matrice. 644 00:36:15,900 --> 00:36:19,840 Miracolele nu dactilografiere, e la fel ca orice altă variabilă. 645 00:36:19,840 --> 00:36:20,730 E doar o serie. 646 00:36:20,730 --> 00:36:26,890 Și avem un pic de [neauzit] ca 1, 2, 3, doar un fel de matrice inițializată. 647 00:36:26,890 --> 00:36:29,680 E în regulă, nu-i place foreach meu. 648 00:36:29,680 --> 00:36:33,120 >> Dar dacă facem foreach-- de fapt Am scris că un pic greșit. 649 00:36:33,120 --> 00:36:34,840 Există două moduri de a face o buclă foreach. 650 00:36:34,840 --> 00:36:37,400 Nu e sintaxa în și ca sintaxa. 651 00:36:37,400 --> 00:36:40,580 Și am de gând să faci în primul sintaxă, nu ca. 652 00:36:40,580 --> 00:36:41,780 Asta e greșeala mea. 653 00:36:41,780 --> 00:36:53,785 >> Num Deci foreach în matrice, ecou num. 654 00:36:53,785 --> 00:36:56,970 655 00:36:56,970 --> 00:36:59,500 Și PHP este striga la mă pentru un motiv oarecare. 656 00:36:59,500 --> 00:37:03,520 E găsirea unui neașteptat în ceva, 657 00:37:03,520 --> 00:37:05,820 care este un pic de o deranjez. 658 00:37:05,820 --> 00:37:09,105 Dar vom da seama de ce este într-un moment. 659 00:37:09,105 --> 00:37:11,960 660 00:37:11,960 --> 00:37:13,610 Deci, nu așa. 661 00:37:13,610 --> 00:37:15,040 Să încercați să utilizați ca. 662 00:37:15,040 --> 00:37:17,310 Preferă SA sintaxa este pare. 663 00:37:17,310 --> 00:37:22,550 Deci, hai sa facem matrice foreach ca num. 664 00:37:22,550 --> 00:37:24,520 >> Deci, un pic explicație de ce sa întâmplat 665 00:37:24,520 --> 00:37:30,670 este ca sintaxa este saying-- bine în primul rând, să ne uităm la ceea ce imprimă asta. 666 00:37:30,670 --> 00:37:32,260 Așa că ne-am deschide IDE nostru. 667 00:37:32,260 --> 00:37:33,110 Mergem aici. 668 00:37:33,110 --> 00:37:35,845 Noi spunem, Buna ziua Jason. 669 00:37:35,845 --> 00:37:41,390 Și a făcut-123, care au fost conținutul din matrice pe care am creat până sus. 670 00:37:41,390 --> 00:37:45,500 >> Deci, scufundări în această buclă foreach, avem o gamă variabilă numită 671 00:37:45,500 --> 00:37:47,470 care este o matrice de trei numere. 672 00:37:47,470 --> 00:37:52,120 Și apoi facem foreach matrice ca num, ecou num. 673 00:37:52,120 --> 00:37:54,990 Și asta e mai mult intuitiv decât un pentru lop. 674 00:37:54,990 --> 00:38:02,380 Noi spunem, tratarea fiecare lucrurile din matrice ca num, 675 00:38:02,380 --> 00:38:05,180 Vreau să-mi dai num. 676 00:38:05,180 --> 00:38:06,640 Și asta e exact ceea ce face. 677 00:38:06,640 --> 00:38:12,000 >> PHP este calcularea atunci când spui foreach matrice, 678 00:38:12,000 --> 00:38:16,080 și ai de a face cu o serie, ce ai de gând să doriți să repeta peste 679 00:38:16,080 --> 00:38:19,950 este personajele din care matrice, este int în care matrice, 680 00:38:19,950 --> 00:38:21,920 este elementele din care matrice. 681 00:38:21,920 --> 00:38:26,110 Și este permițându-vă să stocați aceste variabile ca num, 682 00:38:26,110 --> 00:38:29,360 și num apoi doar de ieșire imediat, mai degrabă decât a spune, 683 00:38:29,360 --> 00:38:34,090 Am o variabilă numită I, și apoi vreau să ieșire strstr [i]. 684 00:38:34,090 --> 00:38:39,130 >> Și pentru ca ne permite de a face lucruri interesante. 685 00:38:39,130 --> 00:38:43,330 Ca practic nu avem de a crea aceste variabile, cum ar fi i lui și de a face toate 686 00:38:43,330 --> 00:38:45,090 chestia asta incrementare la sfârșitul anului. 687 00:38:45,090 --> 00:38:48,290 PHP are grija de toate acestea pentru tine. 688 00:38:48,290 --> 00:38:54,470 >> Deci, acum hai sa vorbim despre foreach ca se aplică dicționarul nostru _GET. 689 00:38:54,470 --> 00:38:57,170 Deci, vom comenta asta repede. 690 00:38:57,170 --> 00:39:02,030 Deci avem oferta noastră _GET. 691 00:39:02,030 --> 00:39:04,361 Avem această variabilă. 692 00:39:04,361 --> 00:39:05,610 Și are niște chestii în ea. 693 00:39:05,610 --> 00:39:10,275 >> Chiar acum, avem doar o variabilă fiind trecut la acesta, care este numele. 694 00:39:10,275 --> 00:39:13,420 Dar dacă ne apăsați Enter, acum putem avea două variabile. 695 00:39:13,420 --> 00:39:17,910 Putem avea nume și vârstă, de exemplu, dacă vrem să ajungem la vârsta și, de asemenea 696 00:39:17,910 --> 00:39:20,960 numele unei persoane, destul de umor. 697 00:39:20,960 --> 00:39:25,690 >> Deci, acum _GET va fi un Dicționar cu două elemente, 698 00:39:25,690 --> 00:39:27,980 cu două perechi de valori-cheie. 699 00:39:27,980 --> 00:39:33,490 Și primul key-- am de gând să scrie aceasta pe placa prea. 700 00:39:33,490 --> 00:39:37,136 Avem dicționarul nostru este _GET. 701 00:39:37,136 --> 00:39:39,520 Îmi pare rău, e un pic mai greu este de a vedea. 702 00:39:39,520 --> 00:39:46,690 Dar în interior dicționarul nostru avem nume, care va fi ceva 703 00:39:46,690 --> 00:39:47,680 că suntem dat. 704 00:39:47,680 --> 00:39:53,040 Și vom avea de vârstă, care este de asemenea O să fie ceva ce ne dat. 705 00:39:53,040 --> 00:39:56,020 Și aceasta este în întregime de dicționarul nostru. 706 00:39:56,020 --> 00:39:57,730 >> Așa că are două elemente în ea. 707 00:39:57,730 --> 00:40:01,310 Și așa că foreach bucle sunt inteligente, ne-am 708 00:40:01,310 --> 00:40:04,900 ar putea crede, și în mod corect ar putea crede că foreach 709 00:40:04,900 --> 00:40:08,080 poate repeta prin această Dicționar, imprimarea 710 00:40:08,080 --> 00:40:10,850 Valorile date de nume și vârstă. 711 00:40:10,850 --> 00:40:14,510 >> Deci, hai sa, de fapt, a face doar asta. 712 00:40:14,510 --> 00:40:17,520 Să construi o buclă foreach. 713 00:40:17,520 --> 00:40:23,351 Și am de gând să fac pentru ca _GET. 714 00:40:23,351 --> 00:40:24,850 Și am de gând să facă următoarele. 715 00:40:24,850 --> 00:40:34,186 Deci, haideți să vedem ce se întâmplă dacă am de tip doar cuvânt, și apoi spuneți cuvântul ecou. 716 00:40:34,186 --> 00:40:40,540 Vom de asemenea, va ecou o nouă linie doar pentru a face un pic mai clar, 717 00:40:40,540 --> 00:40:41,260 ce se intampla. 718 00:40:41,260 --> 00:40:42,890 >> Deci, să vedem. 719 00:40:42,890 --> 00:40:44,390 Nu mă da orice erori. 720 00:40:44,390 --> 00:40:46,810 Și vom închide această. 721 00:40:46,810 --> 00:40:51,020 Pe site-ul nostru, ai de gând să face o mulțime de care pe parcursul pset7. 722 00:40:51,020 --> 00:40:53,890 Deci, noi spunem numele meu este Sam. 723 00:40:53,890 --> 00:40:58,560 Varsta mea este de 45. 724 00:40:58,560 --> 00:41:01,060 Nu e. 725 00:41:01,060 --> 00:41:05,640 Dar se imprimă în, cum era de așteptat, Sam 45. 726 00:41:05,640 --> 00:41:08,930 >> Și așa veți observa că ce bucla foreach did-- aici, 727 00:41:08,930 --> 00:41:12,360 să ne întoarcem la faptul că atât este de până pe board-- ne _GET ca cuvânt. 728 00:41:12,360 --> 00:41:15,130 Și erau patru lucruri în _GET. 729 00:41:15,130 --> 00:41:17,410 Dar imprimate doar două lucruri. 730 00:41:17,410 --> 00:41:21,290 foreach, fiind de sine sa inteligență, presupus că ceea ce ne-am dorit cu adevarat 731 00:41:21,290 --> 00:41:24,100 a fost valorile, nu cheile. 732 00:41:24,100 --> 00:41:27,800 >> Dar există o modalitate pe care am putea imprima în cheile la fel de bine, în cazul în care am vrut să. 733 00:41:27,800 --> 00:41:30,810 Dacă am vrut să știu, de asemenea, ceea ce Aceste variabile au fost numite, 734 00:41:30,810 --> 00:41:33,540 există o cale pe care le pot accesa aceasta, de asemenea. 735 00:41:33,540 --> 00:41:36,840 Și modul de a fel de face acest lucru, astfel încât putem spune, într-adevăr vă permite 736 00:41:36,840 --> 00:41:39,485 împărțit-o în perechi valoare-cheie. 737 00:41:39,485 --> 00:41:42,370 738 00:41:42,370 --> 00:41:47,580 Deci, haideți să vedem ce se întâmplă acum. 739 00:41:47,580 --> 00:41:50,550 >> Deci avem cheie. 740 00:41:50,550 --> 00:41:52,290 Avem valoare. 741 00:41:52,290 --> 00:41:56,650 Avem un alt nou linie pentru lizibilitate. 742 00:41:56,650 --> 00:42:00,540 Și să vedem ce se întâmplă atunci când facem acest lucru acum. 743 00:42:00,540 --> 00:42:04,950 744 00:42:04,950 --> 00:42:06,720 Nu știu câți ani Jason este. 745 00:42:06,720 --> 00:42:09,180 Jason 15. 746 00:42:09,180 --> 00:42:11,650 Deci avem nume Jason, vârsta de 15 ani. 747 00:42:11,650 --> 00:42:15,830 Asa ca am fost capabili de a accesa cheia și perechi de valori al acestui dicționar 748 00:42:15,830 --> 00:42:18,590 doar prin a spune puncte-cheie pentru a valoare. 749 00:42:18,590 --> 00:42:23,350 Și asta e un sintactic foreach bit de zahăr care permite 750 00:42:23,350 --> 00:42:25,960 te pentru a accesa lucrurile în dicționar. 751 00:42:25,960 --> 00:42:31,190 >> Deci sperăm că acest tip de subliniază puterea bucla foreach. 752 00:42:31,190 --> 00:42:35,690 Puteți destul de mult aruncare ceva care iterable pare, 753 00:42:35,690 --> 00:42:38,922 ca ceva care are mai multe elemente precum un tablou, 754 00:42:38,922 --> 00:42:41,880 ca un dictionary-- cele două lucruri primare veți fi de lucru cu 755 00:42:41,880 --> 00:42:45,630 atât în ​​viața și în PSET 7. 756 00:42:45,630 --> 00:42:49,350 Astfel încât să puteți arunca lucrurile care la ea, și va da seama 757 00:42:49,350 --> 00:42:51,030 ceea ce vrei sa faci cu ea. 758 00:42:51,030 --> 00:42:54,250 Va spun, OK, am de gând pentru a obține aceste lucruri de la datele pe care 759 00:42:54,250 --> 00:42:55,680 a fost trecut la mine. 760 00:42:55,680 --> 00:43:02,470 Și asta e ceva ce esti va fi folosind o mulțime de în PSET 7. 761 00:43:02,470 --> 00:43:08,550 >> Am de gând pentru a defila rapid jos doar pentru a vedea în cazul în care eu sunt la. 762 00:43:08,550 --> 00:43:11,410 763 00:43:11,410 --> 00:43:13,070 Oamenii au întrebări în acest moment? 764 00:43:13,070 --> 00:43:13,778 Întrebări la toate? 765 00:43:13,778 --> 00:43:14,400 Da? 766 00:43:14,400 --> 00:43:18,320 >> Audiența: Deci, cu cheia și valoarea, ai putea numi o altceva 767 00:43:18,320 --> 00:43:20,507 și ar lucra în continuare? 768 00:43:20,507 --> 00:43:21,090 Vorbitor: Hopa. 769 00:43:21,090 --> 00:43:22,820 Wow, am șters totul întreaga linie. 770 00:43:22,820 --> 00:43:23,380 Buna treaba. 771 00:43:23,380 --> 00:43:26,502 Deci, un, un. 772 00:43:26,502 --> 00:43:30,109 Cheie și valoare nu este doar o convenție. 773 00:43:30,109 --> 00:43:30,650 Este util. 774 00:43:30,650 --> 00:43:34,010 V-ar lua unele de design puncte, poate unele puncte de stil 775 00:43:34,010 --> 00:43:36,970 pentru a face asta, pentru că transmite într-adevăr intenția. 776 00:43:36,970 --> 00:43:39,650 Dar noi spunem o și yarp. 777 00:43:39,650 --> 00:43:42,476 >> Audiența: Nu trebuie să schimba nimic în fișierul HTML 778 00:43:42,476 --> 00:43:43,607 în scopul de a reflecta faptul că? 779 00:43:43,607 --> 00:43:44,440 Vorbitor: Deloc. 780 00:43:44,440 --> 00:43:47,260 Audiența: Și doar știe că din cauza egali mare than-- 781 00:43:47,260 --> 00:43:47,801 Vorbitor: Da. 782 00:43:47,801 --> 00:43:49,489 Audiența: indicator --that care that's-- 783 00:43:49,489 --> 00:43:50,030 Vorbitor: Da. 784 00:43:50,030 --> 00:43:52,260 Aceasta este o sintaxă foreach, dar da. 785 00:43:52,260 --> 00:43:53,720 >> Audiența: Nu sunt tipuri. 786 00:43:53,720 --> 00:43:57,230 Și ce dacă ai vrut vârstă pentru a fi doar un număr? 787 00:43:57,230 --> 00:43:59,510 Există o modalitate de a face asta? 788 00:43:59,510 --> 00:44:04,550 >> Vorbitor: Există modalități de a verifica dacă variabile sunt conforme cu anumite tipuri. 789 00:44:04,550 --> 00:44:08,482 Deci, PHP solicită un pic mai mult de la vă că nu există tipuri în. 790 00:44:08,482 --> 00:44:09,440 Unele moduri se cere mai puțin. 791 00:44:09,440 --> 00:44:11,070 În unele feluri cere mai mult. 792 00:44:11,070 --> 00:44:13,320 Pentru că, dacă aveți doar ceva într-o variabilă, 793 00:44:13,320 --> 00:44:14,960 nu ai nici o idee despre ce tip este. 794 00:44:14,960 --> 00:44:19,310 Dar dacă sunteți inteligent despre variabilele pe care le atribui tipuri de și asigurați-vă 795 00:44:19,310 --> 00:44:22,750 care funcționează numai tu return-- doresc funcții numai de retur 796 00:44:22,750 --> 00:44:26,210 un singur tip de valoare, astfel pe care le puteți practic 797 00:44:26,210 --> 00:44:31,090 se așteaptă ca variabila te întorci dintr-o funcție va fi de tipul 798 00:44:31,090 --> 00:44:32,780 care credeți că va fi, practic. 799 00:44:32,780 --> 00:44:36,550 >> Dar există unele metode prin care puteți verifica. 800 00:44:36,550 --> 00:44:39,801 Nu-mi amintesc să le pe partea de sus a capului meu. 801 00:44:39,801 --> 00:44:43,300 Sunt de așteptare pentru ea pentru a porni albastru. 802 00:44:43,300 --> 00:44:45,560 isint? 803 00:44:45,560 --> 00:44:48,070 isstr? 804 00:44:48,070 --> 00:44:52,000 Există metode construit în PHP care poate 805 00:44:52,000 --> 00:44:54,440 verificați tipul de variabile pentru tine. 806 00:44:54,440 --> 00:44:58,250 Dar, dacă atribuiți variabile inteligent, nu ar trebui 807 00:44:58,250 --> 00:45:01,330 Trebuie să faci asta prea mult în PSET 7. 808 00:45:01,330 --> 00:45:02,780 Dar există aceste metode. 809 00:45:02,780 --> 00:45:06,704 Și asta e ceva care este în limba sine. 810 00:45:06,704 --> 00:45:08,370 Și nu-mi amintesc sintaxa exactă. 811 00:45:08,370 --> 00:45:09,930 Chiar am putea privi în sus. 812 00:45:09,930 --> 00:45:11,974 Dar timpul este de esenta. 813 00:45:11,974 --> 00:45:13,890 au Are altcineva aveți orice întrebări? 814 00:45:13,890 --> 00:45:14,660 Da. 815 00:45:14,660 --> 00:45:15,951 >> Audiența: Am doar una mai mult. 816 00:45:15,951 --> 00:45:19,050 Deci ați menționat metoda GET, dar nu a menționat metoda POST. 817 00:45:19,050 --> 00:45:20,500 Ne întoarce la asta? 818 00:45:20,500 --> 00:45:21,540 >> Vorbitor: Da, vom se întoarce la asta. 819 00:45:21,540 --> 00:45:24,840 Asta e exact ceea ce căutam la telefonul meu, care acum a adormit, 820 00:45:24,840 --> 00:45:26,960 dar voi găsi. 821 00:45:26,960 --> 00:45:30,680 Doar asigurându-vă am lovit toate notele PHP. 822 00:45:30,680 --> 00:45:35,640 Da, nu e nici o versiune de depanare. 823 00:45:35,640 --> 00:45:41,940 Da, avem câteva mai multe lucruri pe care vrem să facem acum în acest moment. 824 00:45:41,940 --> 00:45:45,980 >> Deci, vorbim despre POST, care le-ați menționat, 825 00:45:45,980 --> 00:45:49,630 singura diferență între GET și POST este 826 00:45:49,630 --> 00:45:53,150 că, atunci când ne-am uitat amintesc la acest URL și am văzut, oh, 827 00:45:53,150 --> 00:45:58,270 Numele este egal cu un egal și de vârstă yarp sunt chiar în URL-ul acolo pentru noi. 828 00:45:58,270 --> 00:46:03,300 POST este un pic mai secretos cu trecerea sa de informații. 829 00:46:03,300 --> 00:46:08,090 >> Deci, dacă nu doriți un utilizator să știe, de exemplu, ai 830 00:46:08,090 --> 00:46:11,160 nu a vrut numele de utilizator și parola persoanei 831 00:46:11,160 --> 00:46:15,080 conectat în prezent în a fi afișate în URL-ul, care este un lucru rezonabil 832 00:46:15,080 --> 00:46:17,770 nu vrea în URL-ul, pentru că cineva poate vedea. 833 00:46:17,770 --> 00:46:21,520 În cazul în care link-ul pe cineva să o pagină, Nu vreau URL lor tencuite acolo, 834 00:46:21,520 --> 00:46:27,850 pentru că ar permite oamenilor să te autentifici doar cu lipire de un URL în loc 835 00:46:27,850 --> 00:46:29,670 de fapt, completarea unui formular. 836 00:46:29,670 --> 00:46:31,710 POST este un pic mai mult secretos. 837 00:46:31,710 --> 00:46:34,150 >> Și singurele lucruri pe care va trebui să se schimbe 838 00:46:34,150 --> 00:46:38,550 sunt această metodă, schimbare de la a ajunge la posta. 839 00:46:38,550 --> 00:46:42,367 Și apoi în interiorul HTTP, în loc de accesare a _GET matrice, 840 00:46:42,367 --> 00:46:43,950 vom accesa _POST matrice. 841 00:46:43,950 --> 00:46:48,600 >> Și vom observa că, în cazul în care ne deschide acest înapoi din nou, 842 00:46:48,600 --> 00:46:51,910 Jason scade încet în vârstă. 843 00:46:51,910 --> 00:46:53,230 nume Jason, varsta de 14 ani. 844 00:46:53,230 --> 00:46:54,280 Aceleasi lucruri apare. 845 00:46:54,280 --> 00:46:57,190 Dar noi mergem la URL-ul și aceste variabile nu sunt acolo. 846 00:46:57,190 --> 00:47:00,540 >> Și modul în care POST passes-- astfel amintesc 847 00:47:00,540 --> 00:47:02,750 cum sa se uite la sursa unei pagini. 848 00:47:02,750 --> 00:47:04,570 Mergem la rețea. 849 00:47:04,570 --> 00:47:06,920 Am refresh. 850 00:47:06,920 --> 00:47:10,690 Și acesta este un alt lucru care POST va da avertismente despre. 851 00:47:10,690 --> 00:47:15,050 S-ar putea fi văzut o cutie, un text caseta așa în browser. 852 00:47:15,050 --> 00:47:18,170 Ești sigur ca vrei pentru a trimite un formular nou? 853 00:47:18,170 --> 00:47:21,170 POST este ce se trimite aceste forme. 854 00:47:21,170 --> 00:47:24,680 >> Pentru că, practic, în cazul în care te-a trimis dvs. informațiile cărții de credit cu cineva, 855 00:47:24,680 --> 00:47:26,350 că nu se va afișa în URL-ul. 856 00:47:26,350 --> 00:47:28,180 Asta va fi o cerere POST. 857 00:47:28,180 --> 00:47:32,905 Deci, atunci când încărcarea paginii, este retrimiterea acestei cereri post. 858 00:47:32,905 --> 00:47:35,530 Deci, acum vrem să trimiteți forma din nou, pentru că nu va 859 00:47:35,530 --> 00:47:37,340 pentru a crea orice achiziții duplicat. 860 00:47:37,340 --> 00:47:41,160 >> Și vom observa că aici, metoda folosim este POST. 861 00:47:41,160 --> 00:47:43,065 Și a făcut-transfere într-adevăr bytes. 862 00:47:43,065 --> 00:47:45,460 Se transferă 401 dintre ele. 863 00:47:45,460 --> 00:47:47,190 Programul destul de mici. 864 00:47:47,190 --> 00:47:51,600 Dar există nicăieri pe care putem vedea valorile care sunt trecute. 865 00:47:51,600 --> 00:47:59,540 Paginile web se pot vedea, dar noi, ca utilizatorii nu sunt capabili de a vedea, 866 00:47:59,540 --> 00:48:01,650 daca nu esti un hacker. 867 00:48:01,650 --> 00:48:05,340 Daca esti un hacker bun, poti sa te uiti. 868 00:48:05,340 --> 00:48:09,360 >> Dacă știți de bază formatul HTML, 869 00:48:09,360 --> 00:48:11,790 valorile vor face cunoscute în paginile. 870 00:48:11,790 --> 00:48:13,160 Veți putea vedea. 871 00:48:13,160 --> 00:48:16,720 Valorile vor fi acolo, sunt doar un pic mai puțin evidente pentru tine 872 00:48:16,720 --> 00:48:19,522 de acces, de fapt. 873 00:48:19,522 --> 00:48:23,620 >> Avem mai întrebări despre GET, POST 874 00:48:23,620 --> 00:48:26,800 before-- ce vom face în continuare este, de fapt uita-te la o parte din codul 875 00:48:26,800 --> 00:48:30,837 pe care le dai în PSET 7, vorbesc despre modul în care folosește unele dintre aceste concepte, 876 00:48:30,837 --> 00:48:32,670 și vorbesc despre lucruri pe care aveți de gând 877 00:48:32,670 --> 00:48:35,090 pentru a avea de a face un pic de PSET 7. 878 00:48:35,090 --> 00:48:36,760 Orice mai multe întrebări înainte de asta? 879 00:48:36,760 --> 00:48:38,047 Mai multe întrebări voi avea? 880 00:48:38,047 --> 00:48:41,250 881 00:48:41,250 --> 00:48:41,840 Grozav. 882 00:48:41,840 --> 00:48:45,370 >> Bine, să ne uităm un pic la PSET 7, 883 00:48:45,370 --> 00:48:49,530 fără îndoială ceea ce ești toate mai entuziasmat. 884 00:48:49,530 --> 00:48:52,126 885 00:48:52,126 --> 00:48:54,750 Adică, acest lucru este ceva care David trece printr-un pic. 886 00:48:54,750 --> 00:49:00,890 Dar vom avea trei directoare de la top, precum și un fișier de configurare. 887 00:49:00,890 --> 00:49:04,650 Asta e pentru baze de date, pe care le vom vorbesc despre în aproximativ cinci minute. 888 00:49:04,650 --> 00:49:07,220 Include, niciodată nu trebuie să se uite în acest director 889 00:49:07,220 --> 00:49:12,480 dacă nu doriți să, dar e frumos să știu că există tot felul de ajutoare. 890 00:49:12,480 --> 00:49:14,210 Helpers este ca funcții utile. 891 00:49:14,210 --> 00:49:18,120 Și apoi ne-am config, care stabilește niște chestii. 892 00:49:18,120 --> 00:49:24,590 >> Există unele funcții care CS50 are scris că sunt în ajutor și de configurare. 893 00:49:24,590 --> 00:49:27,250 Și o parte din PHP care iese deja în fișiere 894 00:49:27,250 --> 00:49:30,880 va face o mulțime de mai fel munca picior de obtuz pentru tine. 895 00:49:30,880 --> 00:49:35,250 Cum ar fi dacă vom merge în publice login.php, care este ceea ce 896 00:49:35,250 --> 00:49:38,350 apare drept atunci când te duci în PSET 7. 897 00:49:38,350 --> 00:49:40,580 Vom vedea că nu există acest necesită declarație. 898 00:49:40,580 --> 00:49:43,420 Și la fel de bine ca un ascuțit includ, hashtag 899 00:49:43,420 --> 00:49:46,850 includ dacă ești dintr-o generație mai nouă. 900 00:49:46,850 --> 00:49:49,740 Dar acest principiu spune că am nevoie de acces 901 00:49:49,740 --> 00:49:52,260 pentru toate funcțiile din config.php. 902 00:49:52,260 --> 00:49:55,290 Și ai putea avea o cere pentru tot felul de alte lucruri. 903 00:49:55,290 --> 00:49:59,670 >> config cere de fapt ajutoare. 904 00:49:59,670 --> 00:50:02,490 Deci ori de câte ori aveți nevoie de config, esti, de asemenea, 905 00:50:02,490 --> 00:50:05,660 inclusiv sau care necesită ajutoare de asemenea. 906 00:50:05,660 --> 00:50:09,590 Deci, care vă oferă acces la toate funcții misto că vom utiliza, de 907 00:50:09,590 --> 00:50:10,420 lucruri ca face. 908 00:50:10,420 --> 00:50:13,490 Sunt de fapt de gând să ușura acest jos un pic. 909 00:50:13,490 --> 00:50:16,280 Deci funcția atunci suntem de gând să meargă prin 910 00:50:16,280 --> 00:50:22,380 chiar înainte de a trece la SQL un pic bit este funcția login.php, doar 911 00:50:22,380 --> 00:50:26,586 deoarece foloseste unele dintre subiectele care tocmai am vorbit despre în PHP. 912 00:50:26,586 --> 00:50:30,840 >> Veți vedea primul lucru este în cazul în care $ _SERVER. 913 00:50:30,840 --> 00:50:34,500 Aceasta este o altă variabilă globală, care ai de gând să se ocupe cu. 914 00:50:34,500 --> 00:50:38,460 E ca si cum _GET și _POST, dar ceea ce serverul conține este aceasta puteți lăsa 915 00:50:38,460 --> 00:50:42,730 știu dacă metoda cerere a fost un GET sau POST un. 916 00:50:42,730 --> 00:50:47,250 Ca anterior ce făceam este doar în codul nostru că am scris, 917 00:50:47,250 --> 00:50:51,880 am fost doar schimbarea să fie GET și POST în funcție de ceea ce are HTML. 918 00:50:51,880 --> 00:50:55,120 Dar există pagini care pot fi accesate cu ambele tipuri de cereri. 919 00:50:55,120 --> 00:50:57,410 Și s-ar putea doriți să faceți lucruri diferite, în funcție 920 00:50:57,410 --> 00:50:59,740 de tipul de solicitare, la fel ca de conectare nu. 921 00:50:59,740 --> 00:51:04,400 >> Astfel încât să puteți verifica această cerere Metoda prin chei accesarea, 922 00:51:04,400 --> 00:51:08,630 prin utilizarea unei chei și obtinerea de Valoarea de ceva în dicționar 923 00:51:08,630 --> 00:51:10,260 _SERVER. 924 00:51:10,260 --> 00:51:13,800 Deci asta e altă global variabila ca _GET și _POST. 925 00:51:13,800 --> 00:51:16,990 >> În cazul în care mergem, vrem să face formularul de conectare. 926 00:51:16,990 --> 00:51:21,920 Render este o funcție care, practic, doar pune până corespunzător HTML 927 00:51:21,920 --> 00:51:24,500 și trece-l unor parametri. 928 00:51:24,500 --> 00:51:28,740 Acest titlu este un parametru care este folosit în afișarea, destul de ciudat, 929 00:51:28,740 --> 00:51:32,670 titlul paginii în întrebare, lucru aici, 930 00:51:32,670 --> 00:51:34,850 spune sau salut în exemplul anterior. 931 00:51:34,850 --> 00:51:36,100 Acum avem un lucru diferit. 932 00:51:36,100 --> 00:51:38,570 Altfel, dacă e POST, am face alte lucruri. 933 00:51:38,570 --> 00:51:40,790 Suntem folosind această metodă gol. 934 00:51:40,790 --> 00:51:42,750 Nu e exista, e gol. 935 00:51:42,750 --> 00:51:45,440 Și am văzut mai înainte, PHP are o valoare justă de construit 936 00:51:45,440 --> 00:51:52,370 în metode care David will--, dacă există sunt metode care sunt utile pentru tine, 937 00:51:52,370 --> 00:51:55,560 acestea vor fi avertizate cu privire la tine în plimbare prin care David 938 00:51:55,560 --> 00:51:59,770 dă la imaginea de ansamblu început, și, de asemenea, de biți utile Zamyla lui. 939 00:51:59,770 --> 00:52:01,040 Sa întors toată lumea. 940 00:52:01,040 --> 00:52:03,100 Ne putem bucura toți. 941 00:52:03,100 --> 00:52:06,530 cer scuze este o funcție bună dreptate numit care tocmai practic imprimă 942 00:52:06,530 --> 00:52:10,130 unele mesaje de eroare, pentru că CS50 este foarte politicos. 943 00:52:10,130 --> 00:52:14,770 >> Și acum aceasta, acest lucru este o pic dificil, deoarece aceasta 944 00:52:14,770 --> 00:52:16,697 este locul unde ne interogarea bazei de date. 945 00:52:16,697 --> 00:52:18,280 Acum, nu am vorbit despre baze de date. 946 00:52:18,280 --> 00:52:22,220 Și vom în următorul cinci minute sau cam asa ceva, maxim. 947 00:52:22,220 --> 00:52:24,980 Dar aceasta este o funcție care a scris CS50 948 00:52:24,980 --> 00:52:38,050 pentru a obține o masă de fapt de la o bază de date că lucrăm cu în PSET 7. 949 00:52:38,050 --> 00:52:40,860 Sunt foarte rău cu meu zero, indexare astăzi. 950 00:52:40,860 --> 00:52:42,060 Dar da, este de 7. 951 00:52:42,060 --> 00:52:46,340 >> Deci interogare se va returna o matrice, practic este bitul cheie. 952 00:52:46,340 --> 00:52:54,130 Și pentru că aceste lucruri nu au dactilografiere, astfel încât rândurile este o serie de tablouri. 953 00:52:54,130 --> 00:52:59,480 Pentru că atunci când ne gândim despre o masă, ceea ce am de gând să faci 954 00:52:59,480 --> 00:53:04,830 este, așa cum ați învățat în psets cum ar fi jocul de 15, oricum 955 00:53:04,830 --> 00:53:06,990 în cazul în care ați avut de a utiliza un dublu matrice, noi practic 956 00:53:06,990 --> 00:53:15,210 au serie de alte matrice face o masă. 957 00:53:15,210 --> 00:53:18,150 Și le-ați luat rânduri și coloane. 958 00:53:18,150 --> 00:53:24,450 Și apoi le puteți accesa ca [0] [1], veți obține [0] [1]. 959 00:53:24,450 --> 00:53:26,900 Chestii de bază de genul asta. 960 00:53:26,900 --> 00:53:29,380 >> Deci ce facem aici, în această funcție, 961 00:53:29,380 --> 00:53:35,070 cerem în baza de date în cazul în care utilizatorul care este 962 00:53:35,070 --> 00:53:40,200 încercând să login, care va fi trimise prin metoda POST. 963 00:53:40,200 --> 00:53:43,950 Vom vedea primim numele de utilizator de la _POST. 964 00:53:43,950 --> 00:53:46,900 Vor au trimis, utilizatorul sau, va trimite o valoare 965 00:53:46,900 --> 00:53:50,750 printr-un formular prin POST, deoarece este numele de utilizator și parola chestii. 966 00:53:50,750 --> 00:53:54,830 Verificăm numele de utilizator pentru a vedea, este acest lucru în masă? 967 00:53:54,830 --> 00:53:58,070 Pentru că dacă un utilizator este de logare în, apoi numele de utilizator 968 00:53:58,070 --> 00:54:03,320 ar trebui să fie stocate în tabelul de Utilizatorii care există pentru site-ul. 969 00:54:03,320 --> 00:54:09,360 Deci, practic, dacă utilizator este în baza de date, 970 00:54:09,360 --> 00:54:16,400 interogare este de gând să se întoarcă că rând, ceea ce este o matrice. 971 00:54:16,400 --> 00:54:24,560 >> Dar partea complicat este că, dacă chiar dacă dublu matrice este doar de un singur rând, 972 00:54:24,560 --> 00:54:31,900 chiar dacă este un rând unul array-- ca ai basically-- 973 00:54:31,900 --> 00:54:36,900 dacă ai o dimensiune un singur element care ține o altă matrice, 974 00:54:36,900 --> 00:54:38,940 sunteți cu adevărat de-a face cu o coloană. 975 00:54:38,940 --> 00:54:41,420 Dar este încă tratată ca o gamă dublu. 976 00:54:41,420 --> 00:54:44,560 >> Și acest lucru este în cazul în care se poate obține uneori complicat, pentru că avem rânduri aici. 977 00:54:44,560 --> 00:54:46,440 Variabila noastră este rânduri. 978 00:54:46,440 --> 00:54:48,590 Și apoi vom crea o variabilă numită nou rând 979 00:54:48,590 --> 00:54:51,450 și stabilirea egală cu primul rând de rânduri. 980 00:54:51,450 --> 00:54:55,150 Și veți observa că în comentariu spune că e prima si singura rând. 981 00:54:55,150 --> 00:54:57,080 >> Deci, acesta este complicat Partea unde acum funcții 982 00:54:57,080 --> 00:54:59,660 poate reveni tablouri foarte usor. 983 00:54:59,660 --> 00:55:01,270 Nu e mallocs. 984 00:55:01,270 --> 00:55:02,280 Nu veți vedea mallocs. 985 00:55:02,280 --> 00:55:03,940 Astfel încât nu veți vedea greșelile SEG. 986 00:55:03,940 --> 00:55:08,380 Dar funcții vor fi în continuare trece în jurul valorii de tablouri și date în grupuri. 987 00:55:08,380 --> 00:55:12,250 Și trebuie să se abtine de la ceea ce exact funcțiile vor reveni. 988 00:55:12,250 --> 00:55:15,160 Și chiar dacă e un coloană de acest fel, interogare 989 00:55:15,160 --> 00:55:17,520 este încă de gând să se întoarcă o gamă dublu. 990 00:55:17,520 --> 00:55:21,390 Deci, pentru a acces pe care column-- sau puteți gândi la toate acestea ca inversat 991 00:55:21,390 --> 00:55:22,870 deoarece vorbim despre rânduri. 992 00:55:22,870 --> 00:55:26,810 Dar pentru a accesa un rând, nu se poate spune doar rânduri. 993 00:55:26,810 --> 00:55:31,540 Chiar dacă este un singur rând, trebuie să Nu rowsrows [0] pentru a elimina acest tip de 994 00:55:31,540 --> 00:55:37,360 bit exterior de matrice și au doar dvs. un rând. 995 00:55:37,360 --> 00:55:38,342 >> Face alte lucruri. 996 00:55:38,342 --> 00:55:40,050 Există o funcție de numit password_verify 997 00:55:40,050 --> 00:55:42,980 care verifică parolă care a fost postat. 998 00:55:42,980 --> 00:55:48,500 Și apoi vom vedea un alt nivel mondial variabilă aici, _SESSION. 999 00:55:48,500 --> 00:55:51,340 Practic id sesiune este modul în care să urmăriți 1000 00:55:51,340 --> 00:55:53,990 de cazul în care cineva este logat sau nu. 1001 00:55:53,990 --> 00:55:58,590 Deci, chiar acum cu login.php, suntem logare utilizator în. 1002 00:55:58,590 --> 00:56:01,920 Deci, ceea ce vrem să facem este să ne-o dorim spune id-ul de sesiune este egal cu rândul 1003 00:56:01,920 --> 00:56:05,890 id, ceea ce face sens, deoarece doar fiecare rând va avea un ID diferit 1004 00:56:05,890 --> 00:56:07,239 Numărul ca parte a mesei. 1005 00:56:07,239 --> 00:56:09,280 Vom intra în SQL într-un în al doilea rând, așa că, dacă toate astea 1006 00:56:09,280 --> 00:56:13,500 pare un pic ca bla, atunci totul va fi clarificat. 1007 00:56:13,500 --> 00:56:18,450 Dar vom pentru a seta ID-ul egal cu lucrul propriu-zis, de logare utilizator în. 1008 00:56:18,450 --> 00:56:20,530 Cer scuze dacă ceva nu merge bine. 1009 00:56:20,530 --> 00:56:27,600 Și acesta este scopul în datele de conectare viata ca profesor Malan ar spune. 1010 00:56:27,600 --> 00:56:29,130 >> Astfel că a fost login.php. 1011 00:56:29,130 --> 00:56:33,750 Și o mulțime de cod PHP a scrie în PSET 7, vor fi un pic. 1012 00:56:33,750 --> 00:56:36,470 Nu uitați să chmod la permisiunile corespunzătoare. 1013 00:56:36,470 --> 00:56:40,180 Nu va fi un pic despre că la începutul spec. 1014 00:56:40,180 --> 00:56:46,382 >> Dar PHP ca esti scris va fi 1015 00:56:46,382 --> 00:56:47,840 face lucruri care este similară cu aceasta. 1016 00:56:47,840 --> 00:56:49,715 Vei fi accesarea unele lucruri care 1017 00:56:49,715 --> 00:56:52,760 sunt date pentru a tine in variabile globale de PHP care 1018 00:56:52,760 --> 00:56:56,105 de-a face cu curent autentificat de utilizare, dacă există 1019 00:56:56,105 --> 00:57:00,460 au cereri fost trimisa la aceasta pagină, lucruri diferite, cum ar fi asta. 1020 00:57:00,460 --> 00:57:05,790 Și va fi, de asemenea, potențial iterarea prin rânduri de chestia asta. 1021 00:57:05,790 --> 00:57:09,010 >> Într-o funcție diferită, de interogare se întoarce această matrice dublu. 1022 00:57:09,010 --> 00:57:11,450 Și dacă există mai multe mult de un rânduri în ea, 1023 00:57:11,450 --> 00:57:15,080 Dacă există are-- Da, dacă există sunt mai mult de un rânduri în ea, 1024 00:57:15,080 --> 00:57:16,870 atunci acesta va fi un tabel. 1025 00:57:16,870 --> 00:57:20,500 Și s-ar putea dori să repeta prin rândurile de această matrice folosind 1026 00:57:20,500 --> 00:57:22,860 bucla foreach care am descris. 1027 00:57:22,860 --> 00:57:30,270 >> Deci, dacă tu a face foreach pe un dublu matrice, ceea ce va word-- aici, 1028 00:57:30,270 --> 00:57:31,909 Voi scrie de fapt. 1029 00:57:31,909 --> 00:57:32,950 Voi scrie repede aici. 1030 00:57:32,950 --> 00:57:44,280 >> Dacă avem o foreach de rânduri ca rând, ceea ce este tipul de rând? 1031 00:57:44,280 --> 00:57:45,390 Stie cineva? 1032 00:57:45,390 --> 00:57:54,000 1033 00:57:54,000 --> 00:57:54,500 Ai inteles? 1034 00:57:54,500 --> 00:57:57,110 Deci rânduri este o matrice dublu. 1035 00:57:57,110 --> 00:58:02,810 Deci, ceea ce se va deduce foreach pe care le doresc de la această matrice dublă 1036 00:58:02,810 --> 00:58:04,280 dacă suntem iterarea peste ea? 1037 00:58:04,280 --> 00:58:07,170 1038 00:58:07,170 --> 00:58:10,770 Putem presupune că practic se va fi fie elemente, 1039 00:58:10,770 --> 00:58:14,970 sau rânduri, sau coloane, practic. 1040 00:58:14,970 --> 00:58:18,740 Și astfel rânduri și coloane noi poate trata ca acelasi lucru. 1041 00:58:18,740 --> 00:58:23,880 >> Practic ceea ce bucla foreach se întâmplă să faci este sa mergi pentru a reveni rânduri. 1042 00:58:23,880 --> 00:58:28,500 rând va fi de tip rând, întrucât rânduri este o matrice dublu. 1043 00:58:28,500 --> 00:58:32,290 Deci, dacă da foreach o gamă dublu, e 1044 00:58:32,290 --> 00:58:35,830 nu se va repeta mai mult de un nivel profund. 1045 00:58:35,830 --> 00:58:44,464 Care este de fapt de a spune dacă există sunt opt ​​celule în acest table-- 1,2, 1046 00:58:44,464 --> 00:58:48,110 3 4, 5, 6, 7, 8-- foreach bucla nu este 1047 00:58:48,110 --> 00:58:51,880 va trece prin fiecare dintre aceste celule. 1048 00:58:51,880 --> 00:58:56,390 Ce bucla foreach va face a fost ea va trece prin acest rând, 1049 00:58:56,390 --> 00:58:57,870 vă dau acest rând întreg. 1050 00:58:57,870 --> 00:58:59,410 Și apoi o să treacă prin acel rând. 1051 00:58:59,410 --> 00:59:01,850 >> Așa că reiterează un singur nivel profund. 1052 00:59:01,850 --> 00:59:05,310 Dacă adăugați un imbricate foreach bucla, atunci 1053 00:59:05,310 --> 00:59:16,280 poate trata fiecare rând sa întors de la rânduri, faceți foreach rând ca element de, 1054 00:59:16,280 --> 00:59:17,640 sa spunem. 1055 00:59:17,640 --> 00:59:22,750 Și atunci ai putea ecou elementul. 1056 00:59:22,750 --> 00:59:24,930 Așa că e un scurt puțin de perfecționare cu privire la modul 1057 00:59:24,930 --> 00:59:30,220 s-ar putea să utilizați foreach buclele în contextul de interogare. 1058 00:59:30,220 --> 00:59:32,840 >> Există întrebări cu privire PHP? 1059 00:59:32,840 --> 00:59:36,520 Orice de la toate înainte de a ne trece la a vorbi despre SQL 1060 00:59:36,520 --> 00:59:37,820 și de distracție de baze de date? 1061 00:59:37,820 --> 00:59:41,480 1062 00:59:41,480 --> 00:59:42,110 Senzație de bine? 1063 00:59:42,110 --> 00:59:42,750 Senzație de bine. 1064 00:59:42,750 --> 00:59:43,470 In regula. 1065 00:59:43,470 --> 00:59:49,130 >> Să trecem mai departe înapoi la PowerPoint, care, probabil, ți-e dor. 1066 00:59:49,130 --> 00:59:51,800 SQL, yay. 1067 00:59:51,800 --> 00:59:57,900 Oamenii care sunt în secțiunea mea de obicei va ști că subpozițiile de acronime 1068 00:59:57,900 --> 01:00:01,220 sunt întotdeauna doar primele cuvinte Cred că de meci care 1069 01:00:01,220 --> 01:00:02,690 algorithm-- că acronim. 1070 01:00:02,690 --> 01:00:04,090 Nu este un algoritm. 1071 01:00:04,090 --> 01:00:08,050 >> Deci, SQL este o bază de date. 1072 01:00:08,050 --> 01:00:11,060 Este un limbaj care lucreaza cu baze de date. 1073 01:00:11,060 --> 01:00:14,440 Și toate bazele de date sunt este mese, cel puțin în modul 1074 01:00:14,440 --> 01:00:17,220 care SQL le reprezintă. 1075 01:00:17,220 --> 01:00:23,610 >> Un alt mod de a gândi despre baze de date este bazele de date sunt un set de chei și valori 1076 01:00:23,610 --> 01:00:24,110 practic. 1077 01:00:24,110 --> 01:00:29,530 Vă puteți gândi la o bază de date ca un dicționar și, de asemenea, ca o masă. 1078 01:00:29,530 --> 01:00:34,300 Practic e un mod de a asocia diferite date cu alte date, 1079 01:00:34,300 --> 01:00:36,270 de multe ori prin rânduri și coloane. 1080 01:00:36,270 --> 01:00:38,470 Și asta este modul în care asta e SQL funcționează cel mai bine. 1081 01:00:38,470 --> 01:00:40,880 >> Deci aceasta este un exemplu de tabelă. 1082 01:00:40,880 --> 01:00:44,610 Am câteva exemple de oameni din secțiunea mea, care 1083 01:00:44,610 --> 01:00:45,970 Nu am avut timp pentru a schimba. 1084 01:00:45,970 --> 01:00:52,020 Dar avem lucruri, cum ar fi ID-ul, Numele, superputere, și orașul natal. 1085 01:00:52,020 --> 01:00:54,100 Nu știu unde e cineva din punctul meu, 1086 01:00:54,100 --> 01:00:56,266 așa că am de gând să-și asume doar toată lumea e de la New York 1087 01:00:56,266 --> 01:00:59,370 Oraș pentru că am o mare statistic probabilitatea de a fi corecte. 1088 01:00:59,370 --> 01:01:04,200 >> SQL va avea în mod automat de îngrijire a coloanei de identitate pentru tine. 1089 01:01:04,200 --> 01:01:07,560 Dacă introduceți un rând nou într-o bază de date SQL, 1090 01:01:07,560 --> 01:01:09,700 se va incrementa că Număr de identificare și doar 1091 01:01:09,700 --> 01:01:14,890 practic lipi ca cinci nume, superputere, orașul natal, oricine 1092 01:01:14,890 --> 01:01:16,430 pe capătul a tabelului. 1093 01:01:16,430 --> 01:01:19,160 Deci, ID este o coloană vei nu trebuie să vă faceți griji cu privire la. 1094 01:01:19,160 --> 01:01:22,770 Dar, ca și în cazul de login.php, atunci când am 1095 01:01:22,770 --> 01:01:26,610 au fost obtinerea de ID-ul de sesiune de la o masă și folosind doar ID-ul, 1096 01:01:26,610 --> 01:01:30,320 ID-ul este o modalitate de a identifica în mod unic un element de o bază de date. 1097 01:01:30,320 --> 01:01:34,980 >> Deci, dacă am avut două Sams, atât de care a învățat CS50, și atât de care 1098 01:01:34,980 --> 01:01:39,370 au fost de la Milwaukee, acestea ar încă mai au numerele de identificare distincte 1099 01:01:39,370 --> 01:01:43,420 și, astfel, să fie distinct în contextul tabelului. 1100 01:01:43,420 --> 01:01:48,700 Deci, asta este ceea ce SQL se ocupă cu, de lucru cu în cele din urmă înapoi. 1101 01:01:48,700 --> 01:01:54,160 >> Acum, acestea sunt cele patru comenzi că veți avea nevoie pentru a lucra cu SQL. 1102 01:01:54,160 --> 01:01:56,390 Și le-am aruncat pe un diapozitiv. 1103 01:01:56,390 --> 01:01:59,530 Dar vom trece prin le pe toate în mod individual. 1104 01:01:59,530 --> 01:02:03,300 >> Prima comandă este UPDATE, care face ceea ce s-ar putea aștepta. 1105 01:02:03,300 --> 01:02:07,240 Să presupunem că aveți unele date în tabelul care este de actualitate. 1106 01:02:07,240 --> 01:02:09,470 Cum ar fi dacă ai ține evidența numele oamenilor 1107 01:02:09,470 --> 01:02:13,350 și vârstele, dacă cineva e creșteri de vârstă, apoi 1108 01:02:13,350 --> 01:02:18,590 ai de gând să vreau să merg în și actualiza vârstă doar acelei persoane. 1109 01:02:18,590 --> 01:02:21,902 Pentru un exemplu, care funcționează cu primul nostru table-- 1110 01:02:21,902 --> 01:02:24,610 nu vă faceți griji despre scris toate aceste comenzi în același timp. 1111 01:02:24,610 --> 01:02:27,640 Dar dacă ai de actualizare jos, care va fi bun pentru această parte, 1112 01:02:27,640 --> 01:02:29,790 pentru că am de gând să du-te înapoi la masa. 1113 01:02:29,790 --> 01:02:33,920 >> Deci, dacă ne întoarcem la masa, să spunem ceva ce sa întâmplat 1114 01:02:33,920 --> 01:02:38,480 a fost a fost un cutremur sau o falie care împărțit în mod direct 1115 01:02:38,480 --> 01:02:39,920 prin New York City. 1116 01:02:39,920 --> 01:02:45,130 Si am vrut sa actualizeze toată lumea care a trăit în New York City. 1117 01:02:45,130 --> 01:02:49,670 Acestea toate au avut să se mute în Pennsylvania. 1118 01:02:49,670 --> 01:02:51,130 Asta nu e un natal. 1119 01:02:51,130 --> 01:02:53,180 Acestea toate au avut să se mute la New Haven. 1120 01:02:53,180 --> 01:02:54,030 Nu mergem. 1121 01:02:54,030 --> 01:02:57,630 Astfel încât toată lumea în New York se mută la New Haven. 1122 01:02:57,630 --> 01:03:01,300 >> Și așa că e ceva care este editarea trei rânduri din acest tabel. 1123 01:03:01,300 --> 01:03:04,716 Dar, în SQL, puteți face că într-o singură declarație. 1124 01:03:04,716 --> 01:03:05,715 Deci ne întoarcem la UPDATE. 1125 01:03:05,715 --> 01:03:09,670 Lasă-mă să ștergeți rapid aceasta placa din nou. 1126 01:03:09,670 --> 01:03:14,570 Când vorbim despre actualizarea, există 1127 01:03:14,570 --> 01:03:17,640 câteva părți ale sintaxa care sunt esențiale. 1128 01:03:17,640 --> 01:03:19,770 Ei bine, toate de sintaxa este cheia. 1129 01:03:19,770 --> 01:03:22,210 Dar lucrurile verde este opțională. 1130 01:03:22,210 --> 01:03:25,680 Sunt necesare alb, nume predefinite, cum ar fi. 1131 01:03:25,680 --> 01:03:30,750 Și albastru de lumină sunt lucruri care variază în funcție de masa. 1132 01:03:30,750 --> 01:03:34,640 Deci, asta e ceea ce se întâmplă cu schema de culori aici, acolo. 1133 01:03:34,640 --> 01:03:40,250 >> Deci, dacă vrem să actualizați doar acele rânduri de oameni care trăiesc în New York, 1134 01:03:40,250 --> 01:03:43,490 Deci, ce ne-ar face dacă am spus UPDATE? 1135 01:03:43,490 --> 01:03:46,320 Deci tabel este locul unde am pus numele masa noastră. 1136 01:03:46,320 --> 01:03:49,170 Să spunem doar numele de masa noastră este de masă unul. 1137 01:03:49,170 --> 01:03:52,515 Deci, vrem să UPDATE masă o. 1138 01:03:52,515 --> 01:03:57,470 Și vrem să set-- ceea ce vrem să setați? 1139 01:03:57,470 --> 01:04:05,160 Ei bine, vrem să spunem, așa PHP column-- tratează rânduri ca identificatori unici. 1140 01:04:05,160 --> 01:04:07,930 Și apoi coloanele sunt diferite domenii 1141 01:04:07,930 --> 01:04:09,940 acelor elemente ale bazei de date. 1142 01:04:09,940 --> 01:04:14,210 >> Deci primul element al bazei de date are un nume de Sam, superputere a CS50, 1143 01:04:14,210 --> 01:04:16,210 și un orașul natal de Milwaukee. 1144 01:04:16,210 --> 01:04:20,710 Deci, dacă ne-am spus stabilit, să ne uităm la parametrii din nou acel set ia. 1145 01:04:20,710 --> 01:04:23,880 Avem coloana este egal cu valoarea. 1146 01:04:23,880 --> 01:04:27,290 Deci, vrem să spunem ceva column-- care amintesc 1147 01:04:27,290 --> 01:04:31,850 este un field-- vrem să vedem o câmp egal cu ceva nou. 1148 01:04:31,850 --> 01:04:42,340 >> Deci, dacă ne-am spus actualizare Tabelul 1, setați numele egal Elliot. 1149 01:04:42,340 --> 01:04:46,310 A lua niște oameni de la noua sectiune pe acest. 1150 01:04:46,310 --> 01:04:51,540 Dar dacă ne-am făcut-o actualizare de masă 1 set nume egal Elliot, ceea ce ar fi 1151 01:04:51,540 --> 01:04:55,530 aspectul de masă ca după asta? 1152 01:04:55,530 --> 01:04:56,410 Oamenii au nici o idee? 1153 01:04:56,410 --> 01:04:59,710 1154 01:04:59,710 --> 01:05:00,210 Da. 1155 01:05:00,210 --> 01:05:03,195 >> Audiența: Totul în care rând ar deveni Elliot. 1156 01:05:03,195 --> 01:05:04,570 Vorbitor: Totul în care rând? 1157 01:05:04,570 --> 01:05:06,067 Audiența: în primul rând. 1158 01:05:06,067 --> 01:05:07,150 Vorbitor: în primul rând? 1159 01:05:07,150 --> 01:05:09,724 De ce primul rând? 1160 01:05:09,724 --> 01:05:10,890 Nu vreau să iau de tine. 1161 01:05:10,890 --> 01:05:13,287 >> Audiența: Poate totul în întreaga masă? 1162 01:05:13,287 --> 01:05:15,120 Vorbitor: Totul în întreaga masă, da. 1163 01:05:15,120 --> 01:05:19,520 Și asta e exact dreptate because-- a fost doar ajutat un pic 1164 01:05:19,520 --> 01:05:22,650 there-- pentru că am omis clauza WHERE opțional. 1165 01:05:22,650 --> 01:05:27,260 Dacă nu aveți WHERE clauză, ceea ce se va face această comandă 1166 01:05:27,260 --> 01:05:32,240 este că va lucra cu fiecare singur rând în tabel. 1167 01:05:32,240 --> 01:05:35,430 Numele tuturor vor devin Elliott, practic, 1168 01:05:35,430 --> 01:05:37,360 care Elliot este foarte fericit despre. 1169 01:05:37,360 --> 01:05:40,070 Sau Yanni, unul dintre cei doi. 1170 01:05:40,070 --> 01:05:42,490 Dar numele tuturor se va schimba. 1171 01:05:42,490 --> 01:05:47,880 >> Deci modul în care folosi WHERE clause-- și acest lucru se aplică la toate Wheres 1172 01:05:47,880 --> 01:05:51,410 care sunt în fiecare din aceste lucruri diferite. 1173 01:05:51,410 --> 01:05:54,380 Deci, veți observa că SET are coloana valoare egală. 1174 01:05:54,380 --> 01:05:55,190 Și așa nu unde. 1175 01:05:55,190 --> 01:06:00,040 Dar acestea sunt diferite tipuri de declarații. 1176 01:06:00,040 --> 01:06:04,400 Deci coloana este egal cu valoarea în SET este în misiune. 1177 01:06:04,400 --> 01:06:08,320 Ca și cum ne-am spunem vrem pentru a seta numele egală cu Elliot. 1178 01:06:08,320 --> 01:06:15,390 Dar, în cazul în care clauzele, acestea sunt declarații de egalitate. 1179 01:06:15,390 --> 01:06:20,410 Deci, să spunem că am vrut doar pentru a schimba numele persoanei de a Elliot 1180 01:06:20,410 --> 01:06:23,940 în cazul în care numele lor a fost Ryan, să spunem. 1181 01:06:23,940 --> 01:06:24,920 >> Asa ca atunci cand spunem 1182 01:06:24,920 --> 01:06:32,700 >> UNDE nume este egal cu Ryan, care ar numai cu succes o schimbare 1183 01:06:32,700 --> 01:06:37,440 name-- aceasta ar fi doar modificați câmpul nume în rânduri 1184 01:06:37,440 --> 01:06:40,770 în cazul în care câmpul nume este egal cu Ryan. 1185 01:06:40,770 --> 01:06:44,430 Deci, dacă am avea mai multe persoane numit Ryan, toate numele lor 1186 01:06:44,430 --> 01:06:45,730 ar schimba la Elliot. 1187 01:06:45,730 --> 01:06:48,169 >> Acest lucru este similar cu exemplul de cazul în care o falie desparte 1188 01:06:48,169 --> 01:06:50,960 New York City și toată lumea trebuie să muta la New Haven, modul în care putem 1189 01:06:50,960 --> 01:06:56,570 face acest lucru într-un afirmație este UPDATE Tabelul 1 SET orașul natal = New Haven 1190 01:06:56,570 --> 01:07:00,210 în cazul în care orașul natal este egal cu New York City. 1191 01:07:00,210 --> 01:07:03,410 Aceasta este puterea de declarația UPDATE. 1192 01:07:03,410 --> 01:07:10,530 Putem selecta orice număr de rânduri prin declarații adevărate 1193 01:07:10,530 --> 01:07:12,860 despre domeniile în aceste rânduri. 1194 01:07:12,860 --> 01:07:19,510 Nu putem spune set UPDATE tabelul 1 name = Elliot WHERE rândul = 1, 1195 01:07:19,510 --> 01:07:24,820 cu excepția faptului că putem, dacă spunem ID = 1. 1196 01:07:24,820 --> 01:07:27,350 1197 01:07:27,350 --> 01:07:29,830 >> Deci vom fi de lucru cu egalitate 1198 01:07:29,830 --> 01:07:32,830 de domenii, de egalitate de coloane. 1199 01:07:32,830 --> 01:07:38,030 Dar, cu ajutorul câmpul ID este o modalitate de a selectați rânduri individuale specific, 1200 01:07:38,030 --> 01:07:43,210 deoarece câmpul ID este o unică identificator într-o bază de date SQL. 1201 01:07:43,210 --> 01:07:45,860 Deci, ca actualizarea rând o, ID este egal cu 1. 1202 01:07:45,860 --> 01:07:49,560 Actualizarea rând două, doar schimba respectivul număr de identificare. 1203 01:07:49,560 --> 01:07:51,610 Dar puterea UNDE declarație este că noi 1204 01:07:51,610 --> 01:07:57,480 pot actualiza lucruri bazat pe ceea ce lor valorile curente de anumite lucruri sunt. 1205 01:07:57,480 --> 01:07:58,155 Da Elliot? 1206 01:07:58,155 --> 01:08:02,678 >> Audiența: Și dacă vrei sa-- din nou, aceasta este o altă întrebare. 1207 01:08:02,678 --> 01:08:07,660 Dar prima mea întrebare a fost, în cazul în care se întâmplă acest lucru? 1208 01:08:07,660 --> 01:08:09,130 Unde mă actualizarea asta? 1209 01:08:09,130 --> 01:08:11,100 Este într-un cod PHP? 1210 01:08:11,100 --> 01:08:13,379 >> Vorbitor: În cazul în care vă actualizați, da. 1211 01:08:13,379 --> 01:08:15,170 Vom vorbi despre unde toate acestea 1212 01:08:15,170 --> 01:08:18,729 se întâmplă fel de dată vom merge prin toate comenzile. 1213 01:08:18,729 --> 01:08:21,130 Dar ceea ce trebuie să știu acum este de fapt 1214 01:08:21,130 --> 01:08:26,279 că baza de date SQL există ca ceva 1215 01:08:26,279 --> 01:08:30,090 să fie accesate prin interogarea funcție, care definește CS50. 1216 01:08:30,090 --> 01:08:33,800 Deci, dacă utilizați funcția de interogare, puteți accesa acest tabel. 1217 01:08:33,800 --> 01:08:39,529 >> Deci, va fi trimiterea de acestea Comenzi la masa dumneavoastră în fișiere PHP 1218 01:08:39,529 --> 01:08:41,420 prin funcția de interogare. 1219 01:08:41,420 --> 01:08:45,410 De asemenea, poți să te joci în jurul valorii de cu masa direct. 1220 01:08:45,410 --> 01:08:49,050 Și asta e cel mai bun mod de a testa aceste tipuri de comenzi. 1221 01:08:49,050 --> 01:08:52,720 Și vom trece prin exact cum a face acest lucru în doar un pic. 1222 01:08:52,720 --> 01:08:54,910 >> Deci asta e comanda UPDATE. 1223 01:08:54,910 --> 01:08:57,939 Și restul comenzilor vor fi un fel de similare, 1224 01:08:57,939 --> 01:08:59,069 de lucru pe lucruri similare. 1225 01:08:59,069 --> 01:09:02,740 INSERT INTO este, probabil, cel mai diferit de UPDATE. 1226 01:09:02,740 --> 01:09:06,170 Am de gând să plece că acolo pentru doar un pic de lucru și aici. 1227 01:09:06,170 --> 01:09:10,215 Deci INSERT INTO, veți vedea acest tabel este în continuare la fel. 1228 01:09:10,215 --> 01:09:17,010 Vrei să INSERT INTO. 1229 01:09:17,010 --> 01:09:20,286 Capitalizarea, SQL este cazul insensibil. 1230 01:09:20,286 --> 01:09:22,160 Deci nu trebuie să valorifica aceste lucruri. 1231 01:09:22,160 --> 01:09:27,960 Prin convenție, cuvintele în alb sunt capitalizate. 1232 01:09:27,960 --> 01:09:31,590 Dar eu, de asemenea, de culoare le codificate. 1233 01:09:31,590 --> 01:09:34,390 Singurul motiv pentru care le valorifica cei atunci când sunteți le tastați 1234 01:09:34,390 --> 01:09:36,609 este doar pentru a sublinia că acestea sunt constante. 1235 01:09:36,609 --> 01:09:39,189 Și astfel încât să puteți fie sa te uiti la valorificarea sau faptul 1236 01:09:39,189 --> 01:09:40,740 care I-am colorat diferit. 1237 01:09:40,740 --> 01:09:44,910 >> Deci avem INSERT INTO, hai să facem din nou tabelul 1. 1238 01:09:44,910 --> 01:09:45,930 Acest lucru este pe o singură linie. 1239 01:09:45,930 --> 01:09:48,609 Eu doar l separă de diferitele declarații. 1240 01:09:48,609 --> 01:09:52,399 Deci, nu vă faceți griji cu privire la faptul că Tabelul 1 a făcut pe a doua linie. 1241 01:09:52,399 --> 01:09:56,130 >> Deci, ne-o dorim pentru a introduce ÎN Tabelul 1 unele valori. 1242 01:09:56,130 --> 01:09:58,922 Și veți observa opțională bit, pe care voi ajunge la un al doilea. 1243 01:09:58,922 --> 01:09:59,755 Deci avem valori. 1244 01:09:59,755 --> 01:10:03,640 1245 01:10:03,640 --> 01:10:08,100 >> Deci, să spunem că vrem să adăugați Andi la masa noastră, pentru că ne e dor Andi. 1246 01:10:08,100 --> 01:10:09,390 Andi este bolnav. 1247 01:10:09,390 --> 01:10:12,490 Deci, haideți să adăugați Andi la masa noastră. 1248 01:10:12,490 --> 01:10:15,150 Amintiți-vă că numărul de identificare este actualizat automat. 1249 01:10:15,150 --> 01:10:17,320 Deci, numai câmpurile noi trebuie să vă faceți griji cu privire la 1250 01:10:17,320 --> 01:10:20,230 sunt nume, superputere, și orașul natal. 1251 01:10:20,230 --> 01:10:23,660 >> Și astfel modul în care facem acest lucru, uita la sintaxa noastră, este ne-am 1252 01:10:23,660 --> 01:10:28,780 tocmai am primit un paranteze, cu virgulă Valorile separate, fiecare dintre acestea 1253 01:10:28,780 --> 01:10:29,890 este o valoare. 1254 01:10:29,890 --> 01:10:35,530 Deci, dacă am vrut să introduceți Andi în nostru masă, tot ce trebuie să facem este corect Andi. 1255 01:10:35,530 --> 01:10:38,630 Ce este superputere Andi lui, oameni in sectiunea Andi lui? 1256 01:10:38,630 --> 01:10:45,406 1257 01:10:45,406 --> 01:10:47,545 Ea place de zbor, sau ca Viteza, sau ceva. 1258 01:10:47,545 --> 01:10:48,920 Ce avem deja acolo? 1259 01:10:48,920 --> 01:10:53,425 Avem CS50, de zbor, viteza, si forta. 1260 01:10:53,425 --> 01:10:54,850 >> Audiența: Călătoria în timp. 1261 01:10:54,850 --> 01:10:56,180 >> Vorbitor: Călătorie în timp, uimitor. 1262 01:10:56,180 --> 01:11:04,280 Deci avem Andi, timp călătorie, și orașul natal. 1263 01:11:04,280 --> 01:11:05,530 Aceasta este o întrebare foarte bună. 1264 01:11:05,530 --> 01:11:09,210 New York City, cu excepția cazului în cineva stie. 1265 01:11:09,210 --> 01:11:13,600 Toată lumea e de la New York este Lecții pentru a ține departe de astăzi. 1266 01:11:13,600 --> 01:11:17,710 >> Deci, această declarație ar fi introduce, ca un rând al cincilea, 1267 01:11:17,710 --> 01:11:21,900 cu timpul de călătorie superputere și un orașul natal din New York City. 1268 01:11:21,900 --> 01:11:25,660 Dar câmpul opțional este de fapt un mod 1269 01:11:25,660 --> 01:11:30,090 pentru a specifica exact care coloane doriți să inserați lucruri în. 1270 01:11:30,090 --> 01:11:33,710 >> Modul în care o facem acum, Andi, calatoria in timp, New York City, 1271 01:11:33,710 --> 01:11:38,150 se întâmplă în ordinea exactă a noastre Numele table--, superputere, orașul natal. 1272 01:11:38,150 --> 01:11:42,290 Și dacă ai vrut să faci altceva decât că, 1273 01:11:42,290 --> 01:11:44,970 ca spun că nu au știut superputere cuiva, 1274 01:11:44,970 --> 01:11:47,660 ca și cum n-am știut de Andi superputere la început. 1275 01:11:47,660 --> 01:11:50,450 Deci, tot ce știam era o numele și orașul său natal. 1276 01:11:50,450 --> 01:11:54,550 Ce am putea face este să pot do-- Voi șterge acest rapid. 1277 01:11:54,550 --> 01:11:57,910 1278 01:11:57,910 --> 01:12:00,090 >> Vreau să actualizeze doar coloanele. 1279 01:12:00,090 --> 01:12:04,100 Și acest lucru este în cazul în care opțional lista pe o coloană intră în joc. 1280 01:12:04,100 --> 01:12:09,185 Vreau doar pentru a actualiza numele și orașul natal. 1281 01:12:09,185 --> 01:12:12,650 1282 01:12:12,650 --> 01:12:16,480 Și atunci voi spune valori. 1283 01:12:16,480 --> 01:12:24,430 Voi face Andi și New York City. 1284 01:12:24,430 --> 01:12:28,980 >> Dacă aș fi omis lista de coloane și doar face aceste două lucruri, 1285 01:12:28,980 --> 01:12:32,450 în cazul în care s-ar New York City au plecat? 1286 01:12:32,450 --> 01:12:35,900 Care ar coloană New York Oras au fost plasate in? 1287 01:12:35,900 --> 01:12:38,950 Oamenii au nici o idee? 1288 01:12:38,950 --> 01:12:40,160 Superputere, exact. 1289 01:12:40,160 --> 01:12:41,890 >> Deci, acest lucru se va merge doar în ordine. 1290 01:12:41,890 --> 01:12:45,530 Și după ce ajunge la sfârșitul fișierului Lista, se va opri doar completarea lucruri. 1291 01:12:45,530 --> 01:12:49,080 Și valorile pe care se va lipi în toate coloanele vor fi doar NULL. 1292 01:12:49,080 --> 01:12:51,840 Deci, pentru că am specificat Numele și orașul natal, 1293 01:12:51,840 --> 01:12:56,110 vom avea ID-ul 5, nume Andi, superputere NULL. 1294 01:12:56,110 --> 01:12:58,750 Deci superputere este o valoare neinitializata. 1295 01:12:58,750 --> 01:13:01,340 Tu nu va obține neapărat aceleași erori Valgrind dacă încercați 1296 01:13:01,340 --> 01:13:01,970 și accesa. 1297 01:13:01,970 --> 01:13:05,160 Totul va fi bine zero , pentru că este o valoare NULL în SQL. 1298 01:13:05,160 --> 01:13:06,780 Aceasta este o constantă. 1299 01:13:06,780 --> 01:13:08,980 Și apoi orașul natal va fi New York City. 1300 01:13:08,980 --> 01:13:11,860 Deci asta e insera în comandă. 1301 01:13:11,860 --> 01:13:13,610 Înainte de a muta, nu e încă două comenzi. 1302 01:13:13,610 --> 01:13:19,060 Nu oamenii au întrebări despre UPDATE, INSERT INTO despre, despre SQL 1303 01:13:19,060 --> 01:13:21,556 în general, înainte de a ne muta pe biți nostru final? 1304 01:13:21,556 --> 01:13:25,500 1305 01:13:25,500 --> 01:13:26,910 Oamenii se simt bine, minunat. 1306 01:13:26,910 --> 01:13:27,410 Iubesc. 1307 01:13:27,410 --> 01:13:29,480 Deci, hai sa vorbim despre SELECT. 1308 01:13:29,480 --> 01:13:33,445 Mergând șanț UPDATE aici. 1309 01:13:33,445 --> 01:13:35,720 >> Și selectați va fi foarte asemănătoare. 1310 01:13:35,720 --> 01:13:38,790 Scopul SELECT, Scopul SELECT în viața 1311 01:13:38,790 --> 01:13:45,910 este de a vă oferi o mulțime de coloane care să îndeplinească anumite condiții. 1312 01:13:45,910 --> 01:13:48,230 Și când spun satisfac anumite condiții, 1313 01:13:48,230 --> 01:13:50,800 mintea ta ar putea imediat du-te înapoi la acea clauza WHERE 1314 01:13:50,800 --> 01:13:52,090 care a venit în UPDATE. 1315 01:13:52,090 --> 01:13:54,880 Și clauza este exact acolo în SELECT. 1316 01:13:54,880 --> 01:14:06,020 >> Dacă nu vom pune WHERE clauză și spunem SELECT nume, 1317 01:14:06,020 --> 01:14:16,490 hometown-- scris că un pic Numele wrong--, orașul natal DIN tabelul 1. 1318 01:14:16,490 --> 01:14:19,690 Dacă spunem doar că, ceea ce SELECT este de gând să ne dea este că e 1319 01:14:19,690 --> 01:14:23,730 O să ne dea un double-- un tabel, mai degrabă. 1320 01:14:23,730 --> 01:14:27,450 O gamă dublu dacă suntem gândesc în PHP simțurile. 1321 01:14:27,450 --> 01:14:33,239 Dar e doar de gând să ne dea un matrice dublă a două nume columns--, 1322 01:14:33,239 --> 01:14:33,780 și orașul natal. 1323 01:14:33,780 --> 01:14:36,400 1324 01:14:36,400 --> 01:14:38,130 Și-l va ignora ID. 1325 01:14:38,130 --> 01:14:41,310 Și-l va ignora superputere. 1326 01:14:41,310 --> 01:14:44,696 Și o să ne dea doar fiecare singur rând din tabel. 1327 01:14:44,696 --> 01:14:46,570 Deci, dacă ne-am introdus Andi, vom avea Andi. 1328 01:14:46,570 --> 01:14:48,605 Și vom avea inițial patru. 1329 01:14:48,605 --> 01:14:53,720 Dacă au fost actualizate, care va să se reflecte, etc, etc.. 1330 01:14:53,720 --> 01:14:56,520 >> Deci acest lucru se datorează faptului că noi nu a utilizat clauza WHERE. 1331 01:14:56,520 --> 01:14:59,200 Dar putem folosi în exact același fel am folosit în UPDATE. 1332 01:14:59,200 --> 01:15:05,310 Dacă vrem doar un tabel de nume și super-puteri de persoane care trăiesc 1333 01:15:05,310 --> 01:15:13,430 în New York, putem executa o declarație ca SELECT nume, superpower-- 1334 01:15:13,430 --> 01:15:27,190 Mă duc să plece that-- DIN Tabelul 1 UNDE orașul natal = New York City. 1335 01:15:27,190 --> 01:15:33,370 >> Deci, acest lucru merge pentru a arăta că puteți obține total diferite coloane, 1336 01:15:33,370 --> 01:15:36,920 și a pus apoi coloanele că nu ești chiar obtinerea înapoi în clauza WHERE. 1337 01:15:36,920 --> 01:15:39,200 Nici măcar nu vreau orașul natal al tuturor. 1338 01:15:39,200 --> 01:15:41,920 Dar vrem numele și superputere de oameni 1339 01:15:41,920 --> 01:15:43,817 a cărui orașul natal este New York City. 1340 01:15:43,817 --> 01:15:45,650 Deci, asta e ceva ce se poate face cu WHERE 1341 01:15:45,650 --> 01:15:49,112 Clauza este că se poate face cu coloane care nu vrem neapărat înapoi. 1342 01:15:49,112 --> 01:15:52,320 În același mod în UPDATE, putem face cu coloane care noi nu neapărat 1343 01:15:52,320 --> 01:15:53,270 doriți să îl actualizați. 1344 01:15:53,270 --> 01:15:58,890 Putem actualiza orașul toată lumea care e numele este Sam, de exemplu. 1345 01:15:58,890 --> 01:16:02,080 Putem actualiza orașul Orice persoană ale cărei ID număr este 2. 1346 01:16:02,080 --> 01:16:04,960 Deci, doar actualiza oraș al doilea rând 1347 01:16:04,960 --> 01:16:08,220 în cazul în care nu avem de a face cu necesar comun întrebare. 1348 01:16:08,220 --> 01:16:13,264 >> Și DELETE este, cum te-ai așteaptă, DELETE FROM tabelul 1. 1349 01:16:13,264 --> 01:16:14,930 Și apoi ne-am luat un alt clauza WHERE. 1350 01:16:14,930 --> 01:16:17,940 Deci, putem spune unde id = 1. 1351 01:16:17,940 --> 01:16:18,950 Șterge primul rând. 1352 01:16:18,950 --> 01:16:23,240 Și șterge va șterge întotdeauna un rând, sau va șterge un numar de rânduri. 1353 01:16:23,240 --> 01:16:26,990 DELETE FROM masa la care orașul natal = New York City 1354 01:16:26,990 --> 01:16:28,740 va șterge toată lumea în New York City. 1355 01:16:28,740 --> 01:16:30,985 Asta e dacă a existat o ciuma bruscă tragic 1356 01:16:30,985 --> 01:16:33,360 și ai vrut doar pentru a elimina toată lumea de la masă care 1357 01:16:33,360 --> 01:16:35,760 a trăit într-un anumit oraș care a fost lovit de ciuma. 1358 01:16:35,760 --> 01:16:38,050 Fie ca ei odihnească în pace. 1359 01:16:38,050 --> 01:16:43,849 >> Acestea sunt cele patru comenzi SQL care va trebui să utilizați. 1360 01:16:43,849 --> 01:16:45,390 Nici nu ar putea avea nevoie să le utilizeze toate. 1361 01:16:45,390 --> 01:16:47,690 Dar acestea sunt cele patru care CS50 te asteapta 1362 01:16:47,690 --> 01:16:53,630 pentru a fi confortabil cu a intra în atât test 1 și, de asemenea, pset7 și pset8. 1363 01:16:53,630 --> 01:16:55,820 >> Există din nou, doar acea masă. 1364 01:16:55,820 --> 01:16:58,930 În aceasta, superputere Roy are fost actualizat la raze laser, care 1365 01:16:58,930 --> 01:17:00,880 este un exemplu nu am folosit. 1366 01:17:00,880 --> 01:17:05,480 Nu știu care dintre Roy preferă, dar puterea. 1367 01:17:05,480 --> 01:17:07,670 Roy are o superputere de putere. 1368 01:17:07,670 --> 01:17:09,090 Katherine nu astăzi face. 1369 01:17:09,090 --> 01:17:10,260 Asta e regretabil. 1370 01:17:10,260 --> 01:17:11,260 Dar ea are super-viteză. 1371 01:17:11,260 --> 01:17:13,780 1372 01:17:13,780 --> 01:17:14,670 >> Ei bine, asta a fost PHP. 1373 01:17:14,670 --> 01:17:19,410 Înainte de a vorbi despre MVC, nu cineva întrebări despre PHP? 1374 01:17:19,410 --> 01:17:23,864 Acum SQL, sau PHP dacă aveți brusc veni cu o întrebare despre PHP? 1375 01:17:23,864 --> 01:17:27,560 1376 01:17:27,560 --> 01:17:28,460 Grozav. 1377 01:17:28,460 --> 01:17:29,920 În regulă, suntem gata atunci. 1378 01:17:29,920 --> 01:17:33,660 >> Deci, vorbim un pic despre vedere modelul controlere, 1379 01:17:33,660 --> 01:17:38,770 să ne întoarcem la unele din lucrurile din pset7. 1380 01:17:38,770 --> 01:17:42,470 Deci, ce model de vedere controler este-- Eu nu sunt 1381 01:17:42,470 --> 01:17:45,660 va pentru a salva modificările mele sa va logati pentru că l-am măcelărit total. 1382 01:17:45,660 --> 01:17:49,220 Dar, practic avem două lucruri separate întâmplă. 1383 01:17:49,220 --> 01:17:52,390 Avem un public director care conține 1384 01:17:52,390 --> 01:17:56,460 codul care va fi executat și paginile web care va fi vizitat. 1385 01:17:56,460 --> 01:17:58,780 Și avem, de asemenea, acest director opinii. 1386 01:17:58,780 --> 01:18:01,780 Și vederi conține template-uri. 1387 01:18:01,780 --> 01:18:04,390 >> Aceasta este ceea ce funcția render-- am văzut randare 1388 01:18:04,390 --> 01:18:08,240 Funcția într-o grămadă de cod PHP care CS50 a scris deja pentru tine, 1389 01:18:08,240 --> 01:18:10,550 care ia în anumiți parametri. 1390 01:18:10,550 --> 01:18:14,510 Ce codul face se se intra în vedere, 1391 01:18:14,510 --> 01:18:18,000 care sunt seturi de ca predefinită Codul HTML, 1392 01:18:18,000 --> 01:18:20,720 și este introducerea valorilor în anumite locuri. 1393 01:18:20,720 --> 01:18:23,990 Acesta este modul în când du-te în CS50 Finanțelor, 1394 01:18:23,990 --> 01:18:25,760 În același antet este pe fiecare pagină. 1395 01:18:25,760 --> 01:18:28,130 Aceeași subsol este pe fiecare pagină. 1396 01:18:28,130 --> 01:18:31,880 Aceasta se datorează faptului că modul că face fapte este că va 1397 01:18:31,880 --> 01:18:36,720 patch-uri în mod automat în antet și viewer care puteți găsi în vedere. 1398 01:18:36,720 --> 01:18:41,400 >> Noi de fapt, pot merge în antet, și uite, e un fișier HTML cu un cap. 1399 01:18:41,400 --> 01:18:43,280 Are niște foi de stil. 1400 01:18:43,280 --> 01:18:48,450 Nu aveți nevoie să se uite la CSS pentru pset7 dacă nu doriți să. 1401 01:18:48,450 --> 01:18:50,560 Dar puteți modifica le, dacă doriți, vă 1402 01:18:50,560 --> 01:18:53,470 Finante sa arate un pic diferit. 1403 01:18:53,470 --> 01:18:57,560 >> Are unele PHP în antetul un pic pentru a vedea 1404 01:18:57,560 --> 01:19:01,240 dacă există un alt titlu aceasta ar trebui să pună în acest antet. 1405 01:19:01,240 --> 01:19:04,300 Dar doar câteva alte scripturi, și link-uri, și alte lucruri. 1406 01:19:04,300 --> 01:19:08,700 Cap se termină, corpul începe, și Oops, avem acest ciudat pic final. 1407 01:19:08,700 --> 01:19:14,730 Și există un div, la fel ca un fel fără formă de element de 1408 01:19:14,730 --> 01:19:17,120 care are o idee de mijloc. 1409 01:19:17,120 --> 01:19:22,450 >> Și apoi, când vom vedea subsol, avem la sfârșitul unui div. 1410 01:19:22,450 --> 01:19:25,000 Avem o de jos, care este în cazul în care textul de subsol este. 1411 01:19:25,000 --> 01:19:26,770 Sfârșitul div, la sfârșitul a corpului, la sfârșitul HTML. 1412 01:19:26,770 --> 01:19:29,070 >> Deci, ceea ce face este a face este face este un fel 1413 01:19:29,070 --> 01:19:33,150 de patching până antet, un diferit fișier PHP care 1414 01:19:33,150 --> 01:19:37,110 va conține lucrurile reale care vei vedea, cum ar fi masa ta de stocuri 1415 01:19:37,110 --> 01:19:39,690 dacă sunteți de cumpărare sau de vânzare a stocurilor. 1416 01:19:39,690 --> 01:19:41,480 Și apoi o să adăugați în subsol. 1417 01:19:41,480 --> 01:19:44,890 Și punctul de vedere modelul Ideea este că noi controler 1418 01:19:44,890 --> 01:19:49,590 doresc să se separe cum lucrurile arata din codul. 1419 01:19:49,590 --> 01:19:53,420 E vrem să separe interfața și backend, în cazul în care este frontend 1420 01:19:53,420 --> 01:20:00,440 lucrurile pe care utilizatorul vede, Nisa visuals-- HTML, CSS, lucruri de genul asta, 1421 01:20:00,440 --> 01:20:02,320 imagini, etc.. 1422 01:20:02,320 --> 01:20:05,780 Și backend este PHP. 1423 01:20:05,780 --> 01:20:07,710 Acesta este cod pe care le scrie. 1424 01:20:07,710 --> 01:20:10,240 Acest lucru este în cazul în care codul care este face operațiuni reale. 1425 01:20:10,240 --> 01:20:12,400 Acest lucru este atunci când adăugați un stoc la masa ta, 1426 01:20:12,400 --> 01:20:14,890 atunci când sunteți de cumpărare și de vânzare, e backend. 1427 01:20:14,890 --> 01:20:20,210 >> Și putem, așa cum ați văzut, inclusiv PHP direct în HTML. 1428 01:20:20,210 --> 01:20:23,210 Deci, ceea ce am fi putut face pentru această sarcină este doar a avut 1429 01:20:23,210 --> 01:20:26,200 un fișier HTML pentru fiecare pagina, ca de autentificare. 1430 01:20:26,200 --> 01:20:30,260 Și apoi pe acea pagină, doar a avut un bloc imens de cod PHP, 1431 01:20:30,260 --> 01:20:33,822 inclusiv toate de cod care pagina specific ar avea nevoie. 1432 01:20:33,822 --> 01:20:35,780 Și apoi am putea avea făcut asta pentru portofoliul. 1433 01:20:35,780 --> 01:20:40,250 Am fi putut face toate de cumpărare și de vânzare în paginile individuale. 1434 01:20:40,250 --> 01:20:43,680 >> Dar, pentru că suntem de redare separat de unde 1435 01:20:43,680 --> 01:20:46,660 suntem scris backend cod, putem cu ușurință 1436 01:20:46,660 --> 01:20:52,660 schimba modul lucrurile arata fără schimbarea fiecare fișier. 1437 01:20:52,660 --> 01:20:55,460 Noi facem lucruri cum ar fi doar să adăugați o nouă div la partea de jos 1438 01:20:55,460 --> 01:21:00,720 de-- Buna ziua modificat subsol. 1439 01:21:00,720 --> 01:21:03,710 Puteți face doar chestii de genul asta. 1440 01:21:03,710 --> 01:21:07,250 Dar, de asemenea, aveți posibilitatea să modificați întreaga aspectul vizual 1441 01:21:07,250 --> 01:21:09,290 fără a afecta ceea ce este merge în backend. 1442 01:21:09,290 --> 01:21:12,000 Și puteți schimba întreaga backend și încă 1443 01:21:12,000 --> 01:21:13,900 l-au arata exact la fel ca înainte. 1444 01:21:13,900 --> 01:21:14,400 Acest 1445 01:21:14,400 --> 01:21:16,170 >> Este ideea de vedere modelul controler. 1446 01:21:16,170 --> 01:21:19,992 Și este de fapt o paradigmă impusă în unele din limbile de programare 1447 01:21:19,992 --> 01:21:21,700 s-ar putea doriți să utilizați pentru proiectele finale. 1448 01:21:21,700 --> 01:21:25,100 Dacă veți face de dezvoltare iOS, ei au opinii, 1449 01:21:25,100 --> 01:21:29,120 care este ceea ce vezi pe iPhone, și apoi backend ca ca un lucru separat. 1450 01:21:29,120 --> 01:21:31,260 >> Vă puteți gândi despre un pic. 1451 01:21:31,260 --> 01:21:35,190 Există o mulțime de binare în informatică, care este amuzant, 1452 01:21:35,190 --> 01:21:37,270 pentru că totul e în binar. 1453 01:21:37,270 --> 01:21:38,550 Nu am de gând asta. 1454 01:21:38,550 --> 01:21:41,590 Asta a fost un joc de cuvinte neintenționat. 1455 01:21:41,590 --> 01:21:43,860 Da, joc de cuvinte care nu sunt destinate. 1456 01:21:43,860 --> 01:21:49,070 >> Dar, ca fișiere .h și fișiere .c, nu e o mulțime de separare de lucruri pe care le 1457 01:21:49,070 --> 01:21:49,900 nu ar putea avea nevoie. 1458 01:21:49,900 --> 01:21:54,330 Astfel încât să putem edita doar fișierele h, sau cineva poate vedea doar un fișier .h și știu 1459 01:21:54,330 --> 01:21:57,650 exact funcțiile care se află în fișier .c fără neapărat să știe 1460 01:21:57,650 --> 01:21:58,870 punerea lor în aplicare. 1461 01:21:58,870 --> 01:22:02,800 Această idee de separare a componentelor care depind unele de altele 1462 01:22:02,800 --> 01:22:06,990 dar poate un fel de acces la unul de altul prin diferite canale, care trece 1463 01:22:06,990 --> 01:22:09,310 de variabile, doar includ declaratii, lucruri 1464 01:22:09,310 --> 01:22:14,440 așa, acest principiu ajută pentru a crea aplicații 1465 01:22:14,440 --> 01:22:17,080 care pot fi mai ușor editat de mai multe persoane, 1466 01:22:17,080 --> 01:22:20,440 poate fi mai ușor schimbată sau modificate pe o scară mare, 1467 01:22:20,440 --> 01:22:24,880 și sunt mai ușor de depanare într-o mulțime de feluri. 1468 01:22:24,880 --> 01:22:28,254 >> Foarte repede, am câteva sfaturi pentru pset7, 1469 01:22:28,254 --> 01:22:31,420 pe care le voi face full screen, astfel încât să nu sa ne uitam la the-- Tippee Sfat Sfat. 1470 01:22:31,420 --> 01:22:33,964 1471 01:22:33,964 --> 01:22:35,130 Nu sunt atât de multe sfaturi. 1472 01:22:35,130 --> 01:22:38,060 >> Dar am menționat PHP este greu de depanare. 1473 01:22:38,060 --> 01:22:39,290 Duble și triple verificați-l. 1474 01:22:39,290 --> 01:22:41,550 În cazul în care codul nu este doar apar pe pagina, 1475 01:22:41,550 --> 01:22:46,240 este, probabil, o eroare de PHP, îmi pare rău. 1476 01:22:46,240 --> 01:22:48,570 >> Niciodată nu trebuie să te uiți la CSS dacă nu vrei să. 1477 01:22:48,570 --> 01:22:52,150 Dar, odată ce ați terminat, acesta poate fi un lucru frumos pic de distracție pentru a merge doar în 1478 01:22:52,150 --> 01:22:54,770 și mizerie cu parametrii CSS. 1479 01:22:54,770 --> 01:22:58,700 CSS și HTML sunt un exemplu de un model vedere stil controler lucru, nu? 1480 01:22:58,700 --> 01:23:02,150 Ai putea avea etichete de stil în interiorul elementelor HTML. 1481 01:23:02,150 --> 01:23:04,800 Dar, dacă un fel de externalizarea le CSS, 1482 01:23:04,800 --> 01:23:08,180 acestea sunt mai ușor de editat, și să se joace în jurul valorii de cu, și să se distreze cu. 1483 01:23:08,180 --> 01:23:10,816 >> Trata CS50 ajutor funcționează ca cutiile negre. 1484 01:23:10,816 --> 01:23:12,940 Nu aveți nevoie să știți exact ceea ce tencuit face, 1485 01:23:12,940 --> 01:23:16,770 dar încredere în ea pentru a face întotdeauna dreptul lucru, în funcție de ceea ce-l treci, 1486 01:23:16,770 --> 01:23:17,690 lucruri de genul asta. 1487 01:23:17,690 --> 01:23:21,040 Și Mi-ar recomanda ma uit la walkthrough lui David, 1488 01:23:21,040 --> 01:23:24,490 trece prin toate Stuff, nu doar todos, 1489 01:23:24,490 --> 01:23:26,960 dar într-adevăr poate trata aceste cutii negre. 1490 01:23:26,960 --> 01:23:29,280 Nu intra în aceste funcții în căutarea pentru bug-uri. 1491 01:23:29,280 --> 01:23:33,510 >> Și salut revenirea de Overlord noastre Zamyla. 1492 01:23:33,510 --> 01:23:34,010 Grozav. 1493 01:23:34,010 --> 01:23:40,430 >> Există întrebări finale înainte am un fel de saritura pentru a doua zi? 1494 01:23:40,430 --> 01:23:42,610 Sunt încă mai trăiesc? 1495 01:23:42,610 --> 01:23:44,700 Grozav. 1496 01:23:44,700 --> 01:23:47,120 Oameni Livestream Bună. 1497 01:23:47,120 --> 01:23:47,620 Grozav. 1498 01:23:47,620 --> 01:23:50,260 Mai sunt acolo întrebări? 1499 01:23:50,260 --> 01:23:50,760 Nu? 1500 01:23:50,760 --> 01:23:52,884 >> Și apoi cred că suntem bun pentru a merge pentru ziua de azi. 1501 01:23:52,884 --> 01:23:55,550 Voi lipi în jurul valorii de un pic după aceea dacă oamenii au avut întrebări 1502 01:23:55,550 --> 01:23:57,480 se temeau să ceară pe fluxul. 1503 01:23:57,480 --> 01:23:59,790 Dar altfel, au o zi buna. 1504 01:23:59,790 --> 01:24:01,933