1 00:00:00,000 --> 00:00:11,470 2 00:00:11,470 --> 00:00:12,764 >> SPEAKER 1: Toate, chiar bun venit înapoi. 3 00:00:12,764 --> 00:00:14,140 Aceasta este CS50. 4 00:00:14,140 --> 00:00:16,800 Și acesta este începutul săptămânii nouă. 5 00:00:16,800 --> 00:00:19,960 Și acest lucru este începutul de restul timp în CS50, în care am 6 00:00:19,960 --> 00:00:23,170 tranziție acum, în cele din urmă, la web aspect al cursului, unde veți 7 00:00:23,170 --> 00:00:26,200 găsi că o mulțime de fundamentale pe care am fost exportatori de săptămâni 8 00:00:26,200 --> 00:00:29,270 încă mai vin înapoi pentru a vizita, sau ne bântuie,. 9 00:00:29,270 --> 00:00:33,440 Dar acum, veți găsi că este un ordin de mărime mai ușor de 10 00:00:33,440 --> 00:00:36,540 îndeplini anumite sarcini și rezolve anumite probleme - 11 00:00:36,540 --> 00:00:41,050 atât de mult încât, chiar dacă te-ai gandit anumite seturi de probleme au fost distracție în lor 12 00:00:41,050 --> 00:00:44,200 felul, cred că veți găsi care p set 7, p. stabilit 8, și apoi, 13 00:00:44,200 --> 00:00:47,990 în cele din urmă, proiectul final va fi cu atât mai plăcută, deoarece veți 14 00:00:47,990 --> 00:00:51,830 găsi pe care vom începe să ia de la sine acum lucruri precum managementul memoriei, și 15 00:00:51,830 --> 00:00:54,190 indicii, și ce se întâmplă pe sub capota. 16 00:00:54,190 --> 00:00:57,310 Și din nou, tematice, pe tot parcursul semestru a fost de această stratificare 17 00:00:57,310 --> 00:00:58,030 și stratificare. 18 00:00:58,030 --> 00:01:00,530 Și acum suntem un fel de sus aici, în picioare pe 19 00:01:00,530 --> 00:01:01,930 umerii ultimele saptamani. 20 00:01:01,930 --> 00:01:05,360 >> Acum, amintesc de ultima oară când am a vorbit despre modul în care internetul a lucrat. 21 00:01:05,360 --> 00:01:08,120 Și acest lucru a fost, probabil, un simplificare, dar amintiți-vă că 22 00:01:08,120 --> 00:01:12,960 fiecare computer din lume are un IP adresa, deși e un pic de o 23 00:01:12,960 --> 00:01:14,570 simplificare încă. 24 00:01:14,570 --> 00:01:18,180 Și acele adrese sunt folosite pentru a unic identifica mașinile astfel încât 25 00:01:18,180 --> 00:01:22,010 Atunci când trimiteți informații, sau pachete, ca să spunem așa, ele pot avea o origine 26 00:01:22,010 --> 00:01:24,000 adresa și o adresa de destinație. 27 00:01:24,000 --> 00:01:27,830 Și aceste adrese IP Același lucru poate fi utilizat atât de bun și, de asemenea, de rău, 28 00:01:27,830 --> 00:01:29,270 să vă urmărească, de exemplu. 29 00:01:29,270 --> 00:01:32,200 De fapt, fiecare dintre voi cu un laptop deschide acum, sau un telefon în dvs. 30 00:01:32,200 --> 00:01:35,070 de buzunar, are o adresă IP pe rețeaua de la Harvard. 31 00:01:35,070 --> 00:01:39,120 Și asta nu e tot atât de dificil de corela că la cine și unde 32 00:01:39,120 --> 00:01:40,180 sunt în aceste zile. 33 00:01:40,180 --> 00:01:42,090 Dar mai mult pe care, probabil, în viitor. 34 00:01:42,090 --> 00:01:46,510 >> Acum m-am gândit aduce înapoi unele amintiri din [? spori?] și vă va oferi 35 00:01:46,510 --> 00:01:49,360 un alt clip de la un spectacol pe care s-ar putea găsi familiar. 36 00:01:49,360 --> 00:01:52,710 Dacă am putea dim lumina pentru doar câteva secunde. 37 00:01:52,710 --> 00:01:53,960 Spectacolul Numb3rs. 38 00:01:53,960 --> 00:01:57,510 39 00:01:57,510 --> 00:02:00,540 >> DIFUZOR 2: Este o adresă IPP4 pe 32 de biți. 40 00:02:00,540 --> 00:02:01,610 >> SPEAKER 3: IPP, la fel ca în Internet? 41 00:02:01,610 --> 00:02:02,968 >> DIFUZOR 2: rețea privată. 42 00:02:02,968 --> 00:02:04,960 Pentru a rețea privată Amita lui. 43 00:02:04,960 --> 00:02:16,930 44 00:02:16,930 --> 00:02:19,602 Ea este atât de uimitor. 45 00:02:19,602 --> 00:02:21,030 >> SPEAKER 3: Haide, Charlie. 46 00:02:21,030 --> 00:02:21,490 >> DIFUZOR 2: Este. 47 00:02:21,490 --> 00:02:22,470 O adresă IP oglindă. 48 00:02:22,470 --> 00:02:27,680 Ea ne lasă să ma uit la ceea ce se face în timp real. 49 00:02:27,680 --> 00:02:30,930 >> SPEAKER 1: Ok, deci o serie de lucruri neregulă cu această imagine. 50 00:02:30,930 --> 00:02:32,920 Deci, și aceasta este acceptabilă, aceasta este de fapt 51 00:02:32,920 --> 00:02:34,400 Nu o adresă IP validă. 52 00:02:34,400 --> 00:02:38,190 O adresă IP valabilă trebuie să fie numere a forma w.x.y.z, în cazul în care fiecare dintre 53 00:02:38,190 --> 00:02:40,000 aceste scrisori este de 0 la 255. 54 00:02:40,000 --> 00:02:42,330 Dar asta e bine pentru că la fel ca filme în care acestea numere de telefon false, 55 00:02:42,330 --> 00:02:43,520 ei fals adrese IP. 56 00:02:43,520 --> 00:02:45,230 Nu a lovit, de fapt servere reale. 57 00:02:45,230 --> 00:02:46,760 >> Dar tine minte, acest lucru este un browser. 58 00:02:46,760 --> 00:02:50,760 Și browsere nu începe afișarea de cod de computer ca aceasta. 59 00:02:50,760 --> 00:02:54,230 Și dacă ne uităm un pic mai profund, observa că limba pe care o vedem 60 00:02:54,230 --> 00:02:57,040 pe ecran este un limbaj numit Objective C, care este limba în 61 00:02:57,040 --> 00:02:59,520 care aplicații pentru iPhone sunt scrise, în special cele care implică 62 00:02:59,520 --> 00:03:03,540 creioane colorate, după cum puteți vedea din codul sursă aici. 63 00:03:03,540 --> 00:03:06,600 64 00:03:06,600 --> 00:03:07,560 >> OK, am crezut că acest lucru a fost amuzant. 65 00:03:07,560 --> 00:03:12,240 Deci, acest fragment de cod are absolut nimic de-a face cu tot acest 66 00:03:12,240 --> 00:03:13,940 special episod a fost de aproximativ. 67 00:03:13,940 --> 00:03:17,590 Deci, este un fel de glumă pe cei luând pentru aceasta acordat. 68 00:03:17,590 --> 00:03:20,220 Dar aceasta nu este tot atât de greu pentru a obține aceste detalii tehnice corecte. 69 00:03:20,220 --> 00:03:21,980 Și v-aș încuraja. 70 00:03:21,980 --> 00:03:25,530 Și, de fapt, 50 s-ar putea foarte bine strica o mulțime de emisiuni TV și filme sau puteți 71 00:03:25,530 --> 00:03:27,320 pentru că veți găsi că este doar nu este posibil ceea ce sunt 72 00:03:27,320 --> 00:03:28,630 face pe ecran. 73 00:03:28,630 --> 00:03:31,750 Dar, într-adevăr, acesta este codul care vă s-ar putea vedea într-o aplicație pentru iPhone 74 00:03:31,750 --> 00:03:33,640 sau Mac OS aplicare. 75 00:03:33,640 --> 00:03:35,685 Ea nu are nimic de la toate de a face cu securitatea. 76 00:03:35,685 --> 00:03:38,610 Deci, ține un ochi pentru mai mult astfel de lucruri amuzante de genul asta. 77 00:03:38,610 --> 00:03:42,720 >> Dar astăzi vom începe să se scufunde în adevăr profund la o gamă largă de limbi. 78 00:03:42,720 --> 00:03:45,410 O, într-adevăr, una dintre primordial takeaways de această porțiune 79 00:03:45,410 --> 00:03:51,815 desigur, nu este de a învăța cum să program in PHP, pentru a nu învăța SQL în sine, nu 80 00:03:51,815 --> 00:03:58,100 pentru a afla JavaScript în sine, ci mai degrabă să te învețe cum să învețe 81 00:03:58,100 --> 00:04:02,030 yourself noi limbi, deoarece, într-adevăr, vom începe să ia acum 82 00:04:02,030 --> 00:04:06,020 roți de formare pe astfel încât, după sfârșitul cursului, nu te aștepta la un 20 83 00:04:06,020 --> 00:04:08,890 caietul de sarcini pagină să-ți spun cât de să pună în aplicare un program. 84 00:04:08,890 --> 00:04:12,970 Aveți destule ingrediente în dvs. minte, și suficiente instrumente instrument de 85 00:04:12,970 --> 00:04:15,750 kit, cu care să înceapă construirea soluții la problemele de interes pentru 86 00:04:15,750 --> 00:04:19,130 te pentru un grup de studenti, pentru unii proiect de cercetare, sau nimic 87 00:04:19,130 --> 00:04:20,140 de interes pentru tine. 88 00:04:20,140 --> 00:04:24,150 >> Astfel spre acest scop, amintim că aceasta a fost imaginea am tras-o ultima oară. 89 00:04:24,150 --> 00:04:27,620 Și acest lucru este de două computere, client și Sever, vorbind unul cu altul. 90 00:04:27,620 --> 00:04:31,130 Și protocolul, limba, astfel încât să vorbesc, că aceste două calculatoare întâmpla 91 00:04:31,130 --> 00:04:33,220 să fie vorbind este numit HTTP. 92 00:04:33,220 --> 00:04:37,730 Și asta e doar protocolul utilizat de către computere pentru a transfera informații pe 93 00:04:37,730 --> 00:04:38,710 World Wide Web. 94 00:04:38,710 --> 00:04:41,770 Web-ul, desigur, este doar un serviciu care rulează pe partea de sus a 95 00:04:41,770 --> 00:04:43,000 așa-numita internet. 96 00:04:43,000 --> 00:04:48,660 Ceea ce este un alt serviciu disponibil pe partea de sus a internetului in aceste zile? 97 00:04:48,660 --> 00:04:51,600 Un alt protocol sau - ce-i asta? 98 00:04:51,600 --> 00:04:52,300 >> Audiența: FTP. 99 00:04:52,300 --> 00:04:52,790 >> SPEAKER 1: FTP. 100 00:04:52,790 --> 00:04:54,630 Deci, File Transfer Protocol este un alt. 101 00:04:54,630 --> 00:04:56,050 Cei mai mulți dintre voi, probabil, nu l-au folosit. 102 00:04:56,050 --> 00:04:58,830 Dar cele mai multe dintre voi probabil s-au folosit lucruri cum ar fi Gchat, sau instant 103 00:04:58,830 --> 00:05:00,970 mesaje în general, cu siguranță e-mail. 104 00:05:00,970 --> 00:05:04,470 Și cei care, de asemenea, sunt serviciile care se execută pe superioară internet, deoarece, la 105 00:05:04,470 --> 00:05:08,180 sfârșitul zilei, internet în sine într-adevăr obține doar datele de la punctul A la 106 00:05:08,180 --> 00:05:12,480 punctul B. Și folosește un număr de particule de sine, una dintre ele sau două 107 00:05:12,480 --> 00:05:17,340 dintre acestea cele mai multe, în general, numit TCP / IP, ceea ce înseamnă că un calculator pe 108 00:05:17,340 --> 00:05:19,960 Internetul poate fi de fapt face lucruri diferite, e-mail, 109 00:05:19,960 --> 00:05:20,980 și web, și așa mai departe. 110 00:05:20,980 --> 00:05:22,220 Google are o mulțime de acest lucru. 111 00:05:22,220 --> 00:05:26,310 Deci, cum sunt aceste servicii unic identificat, am spus, pe un calculator 112 00:05:26,310 --> 00:05:29,080 care ar putea fi de fapt face mai multe lucruri? 113 00:05:29,080 --> 00:05:29,860 >> Numărul de port. 114 00:05:29,860 --> 00:05:34,180 Și acestea sunt doar om arbitrare convenții, cum ar fi 80 este de web, 443 este 115 00:05:34,180 --> 00:05:36,580 criptat web, 25 este de e-mail. 116 00:05:36,580 --> 00:05:38,230 Și există un buchete de alții. 117 00:05:38,230 --> 00:05:41,860 Și aceste numere sunt pur și simplu incluse în aceste pachete de informații, aceste 118 00:05:41,860 --> 00:05:46,230 plic virtuale, care de fapt conținea o cerere sau un răspuns. 119 00:05:46,230 --> 00:05:51,300 >> Așa că atunci când te întorci un răspuns din partea web, de obicei, tu nu vezi nici o 120 00:05:51,300 --> 00:05:54,780 Numerele de orice fel în ceea ce privește Codul de stare a răspuns. 121 00:05:54,780 --> 00:05:56,770 Tu nu vezi de fapt, functionarea interna a 122 00:05:56,770 --> 00:05:58,090 pachetele care vin din spate. 123 00:05:58,090 --> 00:05:59,860 Dar 200 nu într-adevăr înseamnă OK. 124 00:05:59,860 --> 00:06:01,530 Și asta înseamnă că totul este bine. 125 00:06:01,530 --> 00:06:02,870 Este posibil să fi văzut o grămadă de acestea. 126 00:06:02,870 --> 00:06:05,710 Care este probabil cel mai comun le-ați văzut pe web? 127 00:06:05,710 --> 00:06:05,980 >> 404. 128 00:06:05,980 --> 00:06:07,330 Înseamnă doar că fișierul nu a fost găsit. 129 00:06:07,330 --> 00:06:08,270 Aceasta înseamnă că cineva a dat-on bară. 130 00:06:08,270 --> 00:06:11,450 Te-ai descurcat de mistyping URL-ul, sau pe cineva altcineva a făcut de către oferindu-vă o 131 00:06:11,450 --> 00:06:15,100 URL-ul invalid, sau au șters fișiere și URL-ul este încă 132 00:06:15,100 --> 00:06:16,130 fiind utilizat de oameni. 133 00:06:16,130 --> 00:06:19,670 Deci, orice număr de motive pot explica de ce un fișier nu este găsit. 134 00:06:19,670 --> 00:06:22,990 Și veți vedea, în următoarele săptămâni, aceste alte coduri de eroare, și veți 135 00:06:22,990 --> 00:06:24,195 profita de unele dintre ele. 136 00:06:24,195 --> 00:06:25,760 Cel mai rău este de 500. 137 00:06:25,760 --> 00:06:29,820 Dacă primiți o eroare 500 din Codul ați scris, cred că de asta ca un fel de 138 00:06:29,820 --> 00:06:33,290 analog de defecte SEG din Lumea de programare web. 139 00:06:33,290 --> 00:06:34,560 Nu e la fel de cumplite. 140 00:06:34,560 --> 00:06:36,660 Dar aceasta înseamnă doar că, undeva, ai greșit. 141 00:06:36,660 --> 00:06:38,260 Deci, aștept cu nerăbdare la cele. 142 00:06:38,260 --> 00:06:39,910 >> Dar să vedem dacă putem vezi acestea în context. 143 00:06:39,910 --> 00:06:43,460 Lasă-mă să merg la un browser aici și efectuați următoarele. 144 00:06:43,460 --> 00:06:45,710 Deci, aceasta este Chrome, care se întâmplă să fi instalat în aparat. 145 00:06:45,710 --> 00:06:49,410 Dar cele mai multe fiecare browser-ul în aceste zile are unele funcționalități echivalente. 146 00:06:49,410 --> 00:06:52,610 Am de gând să meargă în sus meniul Chrome, și du-te la Tools, și am de gând să merg 147 00:06:52,610 --> 00:06:53,990 pentru Instrumente de dezvoltare. 148 00:06:53,990 --> 00:06:57,040 Și veți vedea că acest panou mic se deschide în partea de jos a ferestrei. 149 00:06:57,040 --> 00:07:00,190 O altă comandă rapidă, să fiu sincer, că am De obicei folosesc eu este să faceți clic dreapta 150 00:07:00,190 --> 00:07:04,370 sau de control faceți clic oriunde pe web pagina și du-te la Inspect Element. 151 00:07:04,370 --> 00:07:07,440 Și asta nu numai că va deschide aceasta avea pentru tine. 152 00:07:07,440 --> 00:07:10,230 Aceasta va deschide, de asemenea, în mod special, Elemente pe porțiunea 153 00:07:10,230 --> 00:07:11,430 în partea stângă. 154 00:07:11,430 --> 00:07:12,460 >> Deci, suntem desigur vedea Google. 155 00:07:12,460 --> 00:07:13,930 Ei au schimbat logo-ul lor de astăzi. 156 00:07:13,930 --> 00:07:20,200 Dar pe dacă am defila în jos până aici, observa că în Elemente, veți vedea 157 00:07:20,200 --> 00:07:23,460 ceea ce se numește HTML, HyperText Markup Limbă, iar acest lucru este limba 158 00:07:23,460 --> 00:07:26,000 că aceasta și toate paginile web, într-adevăr, sunt scrise inch 159 00:07:26,000 --> 00:07:28,950 Dar este de fapt formatat pentru ne atât de mult mai mult readably 160 00:07:28,950 --> 00:07:29,970 decât în ​​mod normal este. 161 00:07:29,970 --> 00:07:34,810 De fapt, dacă am micșora, și eu în schimb doar să faceți clic sau de control Faceți clic dreapta 162 00:07:34,810 --> 00:07:39,630 faceți clic pe pagina, și apoi mergeți la View Sursa paginii, aceasta este literalmente ceea ce 163 00:07:39,630 --> 00:07:42,150 Google a trimis la browser-ul meu. 164 00:07:42,150 --> 00:07:46,480 >> Deci, o persoană sau de persoane a scris Google.com folosind acest cod sursă. 165 00:07:46,480 --> 00:07:47,790 Cea mai mare parte acest lucru nu este HTML. 166 00:07:47,790 --> 00:07:49,340 Este de fapt un limbaj numit JavaScript, care 167 00:07:49,340 --> 00:07:50,880 vom veni la miercuri. 168 00:07:50,880 --> 00:07:55,580 Dar ceea ce Chrome, și ceea ce fiecare browser se poate face pentru noi, este un fel de a vedea 169 00:07:55,580 --> 00:07:59,610 trecut toate distragerile sintaxa nebun, și reintroduceți spațiu alb 170 00:07:59,610 --> 00:08:02,940 pentru noi, și chiar a evidenția sintaxa, sau Colorați lucruri pentru noi. 171 00:08:02,940 --> 00:08:06,470 Deci, veți găsi că aceste așa-numitele instrumente de dezvoltare construit în browsere 172 00:08:06,470 --> 00:08:10,830 va face viața atât de, atât de mult mai ușor pentru că puteți explora, prin intermediul acestui meniu 173 00:08:10,830 --> 00:08:13,940 interfață, exact ceea ce stau la baza Codul sursă este pentru 174 00:08:13,940 --> 00:08:15,750 orice pagină de pe internet. 175 00:08:15,750 --> 00:08:19,070 Și într-adevăr, aceasta este una dintre cele mai modalități eficiente de a învăța cum să facă 176 00:08:19,070 --> 00:08:22,860 ceva nou, cel puțin în cazul în care pagina nu este atât de complex încât să copleșească, este 177 00:08:22,860 --> 00:08:26,700 pentru a începe poking în jurul e HTML, uite la așa-numitul CSS, pe care vom veni 178 00:08:26,700 --> 00:08:30,310 pentru un pic, de asemenea, pentru a obține o intelegerea modului in care programator 179 00:08:30,310 --> 00:08:33,480 Implementarea unor special caracteristică a paginii. 180 00:08:33,480 --> 00:08:36,530 >> Dar mai tehnic drept interesant acum va fi aceasta. 181 00:08:36,530 --> 00:08:39,429 Dacă mă duc la fila rețea, Să clar acum acest lucru. 182 00:08:39,429 --> 00:08:43,429 Am de gând să faceți clic pe puțin cruce simbol aici, și apoi 183 00:08:43,429 --> 00:08:45,630 du-te la un alt site. 184 00:08:45,630 --> 00:08:48,430 Și am de gând doar să tastați în Facebook.com. 185 00:08:48,430 --> 00:08:51,940 Nu HTTP, HTTPS nu, nu www. 186 00:08:51,940 --> 00:08:53,850 Să vedem de fapt ce se întâmplă aici. 187 00:08:53,850 --> 00:08:55,030 >> Enter. 188 00:08:55,030 --> 00:08:58,480 Acum observa o grămadă de lucruri doar a apărut în acest panoul de jos, în 189 00:08:58,480 --> 00:09:00,285 plus față de pagina de web care apare în partea de sus. 190 00:09:00,285 --> 00:09:04,890 Mă duc pentru a derula înapoi în Tab-ul de rețea aici, și am de gând să 191 00:09:04,890 --> 00:09:06,080 faceți clic pe primul rând. 192 00:09:06,080 --> 00:09:10,580 Ce acest instrument este de gând să ne dezvăluie este fiecare dintre cererile HTTP 193 00:09:10,580 --> 00:09:13,550 că rapid, la fel s-au întors și mai departe între browser-ul meu 194 00:09:13,550 --> 00:09:14,930 și server de Facebook. 195 00:09:14,930 --> 00:09:17,830 Și astfel fiecare dintre aceste rânduri reprezintă o astfel de cerere sau 196 00:09:17,830 --> 00:09:20,970 reacție, una sau mai multe dintre cei plic virtuale. 197 00:09:20,970 --> 00:09:24,080 Sau mai mult la întâmplare, e ca o persoană cum ar fi o persoană, un client într-un 198 00:09:24,080 --> 00:09:26,710 restaurant, cere ceva din nou, și din nou, și din nou. 199 00:09:26,710 --> 00:09:29,400 Și chelnerul aduce mereu l înapoi unul la un moment dat. 200 00:09:29,400 --> 00:09:33,850 >> Deci, acum, dacă am zoom in pe această, observa și acest lucru va fi un fel de lucru 201 00:09:33,850 --> 00:09:36,600 că ești binevenit la și încurajat să se joace cu pe cont propriu, pentru că noi 202 00:09:36,600 --> 00:09:38,150 nu va trece prin tot în detaliu. 203 00:09:38,150 --> 00:09:40,070 Dar observa există o câteva file sub aici - 204 00:09:40,070 --> 00:09:43,700 Antete, previzualizare, raspuns, Cookie-uri, și de sincronizare. 205 00:09:43,700 --> 00:09:48,280 Mă duc să se uite la anteturile pentru acum, deoarece acestea sunt puțin 206 00:09:48,280 --> 00:09:53,600 ingrediente interiorul plicului care ajuta date a ajunge la și de la locurile. 207 00:09:53,600 --> 00:09:57,590 >> Deci, în primul rând, permiteți-mi să faceți clic pe acest lucru, Vizualizare Sursa lângă titlurile cererii. 208 00:09:57,590 --> 00:10:01,910 Nu este cererea pe care browser-ul meu, Crom, în acest caz, a trimis interiorul 209 00:10:01,910 --> 00:10:02,910 că plicul virtuale. 210 00:10:02,910 --> 00:10:04,800 Veți amintesc săptămâna trecută am ea în timp ce scris manual 211 00:10:04,800 --> 00:10:06,380 pretinde a fi un browser. 212 00:10:06,380 --> 00:10:09,980 Apoi, ea a amintit serverul care este caută gazdă numit 213 00:10:09,980 --> 00:10:10,835 Facebook.com. 214 00:10:10,835 --> 00:10:13,630 Și apoi există un pic mai mult Arcane informații că vom val 215 00:10:13,630 --> 00:10:14,830 mâinile noastre de acum. 216 00:10:14,830 --> 00:10:18,640 >> Dar dacă încep pentru a defila în jos acum în această fereastră, lasă-mă să ajung la 217 00:10:18,640 --> 00:10:19,980 antetelor de răspuns. 218 00:10:19,980 --> 00:10:23,270 Acest lucru a fost ceea ce este in virtuală plic care s-au întors de la 219 00:10:23,270 --> 00:10:24,095 Facebook.com. 220 00:10:24,095 --> 00:10:27,390 Și dacă eu pe Vizualizare sursă doar pentru a vedea textul brut de ea, 221 00:10:27,390 --> 00:10:28,400 observa câteva lucruri. 222 00:10:28,400 --> 00:10:32,130 Unul, Facebook, de asemenea, vorbește la fel protocol, versiunea 1.1 a acestuia. 223 00:10:32,130 --> 00:10:33,390 Așa că e frumos. 224 00:10:33,390 --> 00:10:36,820 Dar cod de stare 301, sa mutat definitiv. 225 00:10:36,820 --> 00:10:38,880 >> Ei bine, unde naiba sa dus pe Facebook? 226 00:10:38,880 --> 00:10:40,430 Ce-i asta incearca sa transmita la noi? 227 00:10:40,430 --> 00:10:44,310 Ei bine, observa aici există o altă antet numit Locație. 228 00:10:44,310 --> 00:10:51,050 Deci, de ce este Facebook-mi spune că ei sa mutat permanent la acest URL 229 00:10:51,050 --> 00:10:53,580 lângă Locatie? 230 00:10:53,580 --> 00:10:54,962 Am uitat www. 231 00:10:54,962 --> 00:10:56,250 >> Astfel că a fost alegerea mea. 232 00:10:56,250 --> 00:11:00,450 De fapt, cele mai multe dintre noi rareori, probabil, tastați www.whatever.com aceste zile. 233 00:11:00,450 --> 00:11:03,390 Dar se pare că un administrator de sistem, ca de Facebook, se poate 234 00:11:03,390 --> 00:11:06,800 configureze serverele lor în așa fel fie că Facebook.com funcționează, sau 235 00:11:06,800 --> 00:11:12,450 www.Facebook.com funcționează, sau, într-adevăr, orice astfel de prefix în fața lor 236 00:11:12,450 --> 00:11:13,210 nume de domeniu. 237 00:11:13,210 --> 00:11:14,500 Așa că au făcut asta pentru noi. 238 00:11:14,500 --> 00:11:16,910 Și ei ne redirecționează, probabil, pentru unii tehnică, 239 00:11:16,910 --> 00:11:18,100 unele motive de marketing. 240 00:11:18,100 --> 00:11:21,570 Ei doresc doar să canonic pe www.Facebook.com. 241 00:11:21,570 --> 00:11:24,040 >> Dar asta nu e destul de ea. 242 00:11:24,040 --> 00:11:28,560 Dacă aș derula în jos aici, să vezi ce se întâmplă. 243 00:11:28,560 --> 00:11:30,810 Acest lucru este de a spune-mi că mutat permanent la 244 00:11:30,810 --> 00:11:33,450 http://www.Facebook.com. 245 00:11:33,450 --> 00:11:36,620 Deci să ne uităm la a doua cerere ca browser-ul meu trimite. 246 00:11:36,620 --> 00:11:40,070 Din păcate, se pare ca Facebook a mutat din nou, deoarece a doua 247 00:11:40,070 --> 00:11:44,420 cerere, prin selectarea că URL-ul în schimb, spune că, de asemenea, sa mutat 248 00:11:44,420 --> 00:11:45,010 permanent. 249 00:11:45,010 --> 00:11:48,140 Și lasă-mă să defilați în jos aici la antetelor de răspuns. 250 00:11:48,140 --> 00:11:51,530 Unde a Facebook plecat acum? 251 00:11:51,530 --> 00:11:52,680 >> Deci, HTTPS. 252 00:11:52,680 --> 00:11:56,130 Deci, acum, Facebook a început, în special în lumina de curent 253 00:11:56,130 --> 00:11:59,750 Evenimentele din ultimele luni, în special și De asemenea, în ultimii ani, 254 00:11:59,750 --> 00:12:03,670 pentru a obliga toți utilizatorii lor, într-o bună mod, de a folosi HTTPS, care este mai mult 255 00:12:03,670 --> 00:12:06,210 sigur, deși nu în totalitate sigur. 256 00:12:06,210 --> 00:12:10,000 Iar acum pagina mea, browser-ul meu este va solicita acest al treilea adresă URL. 257 00:12:10,000 --> 00:12:14,710 Și acum, în sfârșit, vom obține altfel nevăzut 200 OK. 258 00:12:14,710 --> 00:12:18,830 >> Deci, ceea ce în lumea sau toate aceste alte rânduri aici. 259 00:12:18,830 --> 00:12:22,630 Am scris literalmente un singur lucru, și meu Browser-ul pare să fi solicitat ca 260 00:12:22,630 --> 00:12:23,840 20 de unele lucruri ciudate. 261 00:12:23,840 --> 00:12:24,640 Ce este asta? 262 00:12:24,640 --> 00:12:25,810 >> Audiența: Scripturi? 263 00:12:25,810 --> 00:12:28,460 >> SPEAKER 1: Scripturi, asa alte fișiere scris într-un limbaj numit 264 00:12:28,460 --> 00:12:30,780 JavaScript, care, din nou, vom a se vedea un pic de miercuri. 265 00:12:30,780 --> 00:12:32,760 Ce altceva? 266 00:12:32,760 --> 00:12:33,390 Style Sheets. 267 00:12:33,390 --> 00:12:36,350 Așa ceva într-o limbă numită CSS, care vom vedea într-un pic. 268 00:12:36,350 --> 00:12:40,690 Gif-uri, și JPEG, și PNG, și imagini, și fișiere de film - ceea ce o pagina web 269 00:12:40,690 --> 00:12:43,280 a este cel mai probabil în forma unui fișier. 270 00:12:43,280 --> 00:12:46,750 Și deci ce vedem pe partea stângă partea dreaptă există toate fișierele 271 00:12:46,750 --> 00:12:50,280 că Chrome a avut pentru a descărca, recursiv, dacă vreți, în scopul de a 272 00:12:50,280 --> 00:12:52,430 compune în întregime a paginii. 273 00:12:52,430 --> 00:12:56,210 >> Deci, ceea ce am văzut în urmă cu un moment cu Google, dacă faceți clic pe elementele 274 00:12:56,210 --> 00:13:00,470 fila, aceasta, sigur, este HTML, limbaj care compune această pagină. 275 00:13:00,470 --> 00:13:01,890 Dar există buchete de alte lucruri. 276 00:13:01,890 --> 00:13:02,640 Există un logo. 277 00:13:02,640 --> 00:13:04,680 Există cei albastru-ish icoane acolo. 278 00:13:04,680 --> 00:13:07,610 Și nu există alte elemente încă pe pagina de pe care s-au ar putea fi 279 00:13:07,610 --> 00:13:08,610 fișiere separate. 280 00:13:08,610 --> 00:13:11,860 >> Deci, ce este frumos despre un browser este ca se pare la limba mergem 281 00:13:11,860 --> 00:13:14,690 să înceapă să scrie, sau ați deja scris a început în P set 7, cifre 282 00:13:14,690 --> 00:13:17,970 în cazul în care aceste imagini vii, și merge și le prinde, de asemenea. 283 00:13:17,970 --> 00:13:21,010 Și eu nu pot sublinia suficient, chiar deși o parte din aceasta ar putea arata un pic 284 00:13:21,010 --> 00:13:24,820 arcane sau coplesitoare la prima vedere, Învățarea cum să program 285 00:13:24,820 --> 00:13:28,500 aplicatii pentru web, e neprețuit pentru a înțelege modul în care aceste 286 00:13:28,500 --> 00:13:29,410 Instrumente pic de lucru. 287 00:13:29,410 --> 00:13:33,830 Acestea sunt un fel de GDB cum ar fi instrumente, dar mult mai simplu, în cele din urmă, de a folosi - 288 00:13:33,830 --> 00:13:37,690 și într-adevăr vă oferă ochii în ceea ce ne-am luat pentru a acordat pentru 289 00:13:37,690 --> 00:13:39,170 de ceva timp acum. 290 00:13:39,170 --> 00:13:42,270 >> Deci, ce putem face acum cu aceste informații? 291 00:13:42,270 --> 00:13:44,875 Ei bine, haideți să aruncăm o privire la de fapt, conceptele care stau la baza HTML. 292 00:13:44,875 --> 00:13:49,025 Și vom amâna, așa cum le avem deja, să secțiuni în această săptămână, la problema 293 00:13:49,025 --> 00:13:53,260 set 7 caietul de sarcini, la unele dintre cele mai datele din aceste limbi. 294 00:13:53,260 --> 00:13:57,020 Dar să vedem dacă nu putem picta un imagine a ceea ce ar trebui să înțeleagă 295 00:13:57,020 --> 00:13:57,940 de ansamblu aici. 296 00:13:57,940 --> 00:14:02,280 >> Deci, HTML, Hypertext Markup Language, nu este un limbaj de programare. 297 00:14:02,280 --> 00:14:03,520 Ce înseamnă asta cu adevărat? 298 00:14:03,520 --> 00:14:05,690 Deci, HTML arata ca aceasta. 299 00:14:05,690 --> 00:14:06,810 Și unii dintre voi știți deja acest lucru. 300 00:14:06,810 --> 00:14:08,130 Unii dintre voi au făcut acest lucru de ceva timp. 301 00:14:08,130 --> 00:14:10,270 Dar să vedem dacă nu putem umple în unele spații libere, de asemenea. 302 00:14:10,270 --> 00:14:11,760 Deci observa câteva lucruri aici. 303 00:14:11,760 --> 00:14:13,030 O, e doar text. 304 00:14:13,030 --> 00:14:15,960 Deci, e la fel ca codul sursă în C, sau o altă limbă. 305 00:14:15,960 --> 00:14:17,750 >> Observați că se pare că există pentru a fi un model aici. 306 00:14:17,750 --> 00:14:20,870 Există indentare, dar punct de vedere tehnic indentare este doar uman 307 00:14:20,870 --> 00:14:21,205 convenție. 308 00:14:21,205 --> 00:14:24,980 A browsere nu-i pasă dacă nu e nou Liniile și file ca vom vedea acolo. 309 00:14:24,980 --> 00:14:27,410 Dar observați că există simetrii aici. 310 00:14:27,410 --> 00:14:31,180 Nu e ceea ce eu numesc, în partea de sus a acest fișier, tag-ul deschis, sau de pornire 311 00:14:31,180 --> 00:14:33,030 tag-ul, numit HTML. 312 00:14:33,030 --> 00:14:36,800 Și apoi, mai jos, perfect aliniate up, la fel ca facem cu acolade, 313 00:14:36,800 --> 00:14:40,910 vom vedea suport deschis, înainte slash, HTML, suport aproape. 314 00:14:40,910 --> 00:14:44,610 Astfel că e aproape corespunzătoare tag-ul, sau la sfârșitul tag-ul, pentru chestia aia. 315 00:14:44,610 --> 00:14:47,990 >> Împreună, totul în interiorul așa-numita tag-ul deschis și tag aproape 316 00:14:47,990 --> 00:14:50,440 compune ceea ce vom numi un element. 317 00:14:50,440 --> 00:14:53,910 Și vom vedea, într-o clipă, e place foarte mult un nod într-un copaci. 318 00:14:53,910 --> 00:14:57,470 Pentru că dacă te gândești acum indentare care este implicat aici, te 319 00:14:57,470 --> 00:15:00,780 au un fel de, ca, un bunic nodul numit HTML. 320 00:15:00,780 --> 00:15:06,870 Câți copii s-ar putea spune, pe baza pe această imagine, elementul HTML are? 321 00:15:06,870 --> 00:15:07,720 >> Deci, probabil, două. 322 00:15:07,720 --> 00:15:10,240 Una este elementul cap, aparent. 323 00:15:10,240 --> 00:15:11,710 Și unul este elementul organism. 324 00:15:11,710 --> 00:15:12,555 Și de ce doi copii? 325 00:15:12,555 --> 00:15:15,840 Ei bine, eu sunt doar un fel de deducere că, dacă Am o etichetă de cap deschis și apoi o 326 00:15:15,840 --> 00:15:17,820 tag-ul cap de aproape, că este un element. 327 00:15:17,820 --> 00:15:21,200 Și apoi, dacă există un alt organism deschis tag-ul și o etichetă aproape de corp, e ca și cum 328 00:15:21,200 --> 00:15:22,340 un alt element. 329 00:15:22,340 --> 00:15:26,000 Deci, în sensul că, dacă am un fel de rotire imaginea de pe partea sa, este 330 00:15:26,000 --> 00:15:29,910 ca având un tag-ul HTML, și apoi o tag-ul cap, și apoi un tag-ul body, și 331 00:15:29,910 --> 00:15:34,290 apoi un text, lumea Bună ziua, suspendate pe de tag-ul body în sine. 332 00:15:34,290 --> 00:15:36,620 >> Deci, putem trage o imagine care s-ar putea arata ca aceasta. 333 00:15:36,620 --> 00:15:38,020 Formele sunt arbitrare. 334 00:15:38,020 --> 00:15:40,870 Dar observați că am folosit un fel de elipsă în partea de sus a reprezenta 335 00:15:40,870 --> 00:15:41,860 documentul propriu-zis. 336 00:15:41,860 --> 00:15:45,980 Se pare că nu pot fi alte lucruri in interiorul unei pagini web pe care nu l-am 337 00:15:45,980 --> 00:15:46,940 trase aici. 338 00:15:46,940 --> 00:15:50,800 Așa că am de gând să stea chiar și HTML off nod de așa-zisul nod document. 339 00:15:50,800 --> 00:15:53,730 Și apoi ne-am cap și corp și titlu, notificare, 340 00:15:53,730 --> 00:15:55,360 care este imbricat în continuare. 341 00:15:55,360 --> 00:15:58,650 Nu m-am obosit punerea linii suplimentare pauze în interiorul tag-ul titlu. 342 00:15:58,650 --> 00:16:02,710 Doar simtit ca a fost obtinerea un pic prea detaliat. 343 00:16:02,710 --> 00:16:07,000 Așa că am lăsat-o într-o singură linie de acolo, cu Titlul deschis, salut lume, aproape de titlu. 344 00:16:07,000 --> 00:16:09,380 Și apoi ne-am un text marionetă off de aici. 345 00:16:09,380 --> 00:16:12,200 >> Deci, această imagine va reveni la noi atunci când am arunca cu capul în JavaScript. 346 00:16:12,200 --> 00:16:15,110 Și înțelegerea că, atunci când a scrie HTML ca aceasta, ceea ce 347 00:16:15,110 --> 00:16:16,250 este de a face un browser? 348 00:16:16,250 --> 00:16:19,290 Ei bine, nu trebuie să vă faceți griji cu privire la cum se face acest lucru, sau cu ceea ce 349 00:16:19,290 --> 00:16:23,090 algoritm, dar la sfârșitul zilei, atunci când un browser primește HTML ca 350 00:16:23,090 --> 00:16:27,510 că, de la Facebook sau Google, acesta analizează l, ca să spunem așa, îl citește, 351 00:16:27,510 --> 00:16:31,160 cu ceva de genul fread, partea de sus a partea de jos, de la stânga la dreapta, și așa cum se 352 00:16:31,160 --> 00:16:36,300 își dă seama, oh, tag-ul deschis, și apoi închideți tag-ul, începe să malloc, ca să spunem așa, 353 00:16:36,300 --> 00:16:37,800 un nod într-un copac. 354 00:16:37,800 --> 00:16:41,130 Și atunci când întâlnește, așa cum ne-am implicat aici, cu indentare, un 355 00:16:41,130 --> 00:16:45,400 nodul copil, acesta mallocs un nod pentru care și atașat ca la copac. 356 00:16:45,400 --> 00:16:49,150 >> Deci, structurile de arbori, arbori binari, copaci ternare, și copaci mari, care 357 00:16:49,150 --> 00:16:53,380 am uitat la o săptămână sau două în urmă, notificare că același principiu este 358 00:16:53,380 --> 00:16:54,220 vin înapoi la noi. 359 00:16:54,220 --> 00:16:57,590 Și oricine implementat, Chrome indiferent de Echipa a făcut asta, probabil a avut 360 00:16:57,590 --> 00:17:00,800 să pună în aplicare un fel de structură arborescentă sub capota. 361 00:17:00,800 --> 00:17:05,329 Și că ea însăși este, probabil, într-o limbaj cum ar fi C sau C + +, sau o mică 362 00:17:05,329 --> 00:17:08,540 limbaj de nivel pe care o vom folosesc acum deasupra web. 363 00:17:08,540 --> 00:17:11,200 >> Deci, acum, poate, acest lucru va face mai mult sens. 364 00:17:11,200 --> 00:17:15,420 Tatuaj real de la un tip care ar putea regreta în cele din urmă, un fel de. 365 00:17:15,420 --> 00:17:17,359 Bine, bine, astfel încât o mulțime de umor web. 366 00:17:17,359 --> 00:17:18,599 Nu se întâmplă cu adevărat peste atât de bine azi. 367 00:17:18,599 --> 00:17:19,560 Deci, ne vom muta pe. 368 00:17:19,560 --> 00:17:20,180 Bine. 369 00:17:20,180 --> 00:17:22,760 >> Deci, haideți să aruncăm o privire acum la câteva exemple. 370 00:17:22,760 --> 00:17:24,660 Cea mai simplă posibil lucru ar putea fi aceasta. 371 00:17:24,660 --> 00:17:29,170 Am de gând să merg mai departe și să se deschidă în gedit un fișier numit hello.php. 372 00:17:29,170 --> 00:17:31,730 373 00:17:31,730 --> 00:17:36,330 Și interior de aici, am de gând să rapid doar face acest lucru, printf, cita 374 00:17:36,330 --> 00:17:38,590 citatul, "Hello World." 375 00:17:38,590 --> 00:17:42,460 >> Deci notificare, și voi face meu backslash n, Eu nu am deranjat să declare principal. 376 00:17:42,460 --> 00:17:45,310 Se pare, în PHP, și o mulțime de limbi, nu aveți nevoie de un principal 377 00:17:45,310 --> 00:17:46,090 Funcția per se. 378 00:17:46,090 --> 00:17:47,720 Puteți începe chiar scris programul tău. 379 00:17:47,720 --> 00:17:51,210 Acum, când am salva acest fișier, observa eu ​​sunt Va trebui să faceți următoarele. 380 00:17:51,210 --> 00:17:55,360 Eu nu am de gând să utilizeze face, și eu nu sunt va folosi zăngănit, deoarece PHP, spre deosebire de 381 00:17:55,360 --> 00:17:57,400 C, nu este un limbaj compilat. 382 00:17:57,400 --> 00:18:01,400 Este ceea ce se numește o interpretare limbă, ceea ce înseamnă că îl rulați 383 00:18:01,400 --> 00:18:04,650 ca o intrare prin alt program numit un interpret. 384 00:18:04,650 --> 00:18:08,150 Și că programul se citește, partea de sus a partea de jos, de la stânga la dreapta, și nu 385 00:18:08,150 --> 00:18:09,290 tot ce se spune să faci. 386 00:18:09,290 --> 00:18:12,920 >> Deci, în acest caz, aici am o linie care spune printf. 387 00:18:12,920 --> 00:18:17,990 Așa că atunci când am rula acest cod sursă, hello.php, deși un program care 388 00:18:17,990 --> 00:18:22,830 întâmplă, convenabil, să fie numit PHP, că programul PHP se va citi 389 00:18:22,830 --> 00:18:26,120 acest fișier, de sus în jos, la stânga la dreapta, și-l va face ceea ce am 390 00:18:26,120 --> 00:18:30,110 spune-o să facă - executarea cod, și în cazul în care ea nu recunoaște ceva, doar 391 00:18:30,110 --> 00:18:31,320 scuipa-l. 392 00:18:31,320 --> 00:18:34,940 Așa că am de gând să merg mai departe și rula PHP de hello.php. 393 00:18:34,940 --> 00:18:37,110 Enter. 394 00:18:37,110 --> 00:18:39,690 >> Și asta nu e chiar ceea ce am vrut. 395 00:18:39,690 --> 00:18:40,530 Ei bine, de ce este asta? 396 00:18:40,530 --> 00:18:43,910 Ei bine, PHP este un limbaj care, de fapt, conceput pentru a fi destul de 397 00:18:43,910 --> 00:18:46,150 însoțit de web. 398 00:18:46,150 --> 00:18:50,460 Atunci când se face pagini web cu acest limbaj PHP, așa cum vom vedea în curând, vom 399 00:18:50,460 --> 00:18:54,560 vrei sa faci ceva de genul imprimare de linii de genul asta. 400 00:18:54,560 --> 00:18:55,940 >> Așa că am de gând să fac asta. 401 00:18:55,940 --> 00:19:00,810 Deschis suport, semn de întrebare, PHP, și Acum Mă duc liniuță doar pentru a menține 402 00:19:00,810 --> 00:19:01,960 lucruri frumoase. 403 00:19:01,960 --> 00:19:04,910 Și acum am de gând să fac o întrebare marca suport aproape. 404 00:19:04,910 --> 00:19:06,270 Deci, există un pic de asimetrie aici. 405 00:19:06,270 --> 00:19:07,490 Tu nu faci acest lucru. 406 00:19:07,490 --> 00:19:10,530 Și tu nu faci un slash, astfel PHP este un pic diferit. 407 00:19:10,530 --> 00:19:14,610 >> Dar acum, dacă am reluare acest program, PHP hello.php, acum am 408 00:19:14,610 --> 00:19:16,090 obține de fapt Hello World. 409 00:19:16,090 --> 00:19:17,750 Și vom vedea de ce acest lucru este valoros. 410 00:19:17,750 --> 00:19:20,960 Unul, îmi permite să specificați, foarte explicit, acest lucru este 411 00:19:20,960 --> 00:19:22,480 cod, executa aceasta. 412 00:19:22,480 --> 00:19:25,480 Și asta e într-adevăr ceea ce acestea etichete speciale implică aici. 413 00:19:25,480 --> 00:19:30,330 >> Dar aceasta înseamnă, de asemenea, că, dacă am face ceva de genul am scopul de aici, că 414 00:19:30,330 --> 00:19:34,000 înseamnă că, literalmente, care vor doar fi imprimate fără a fi nevoie de a 415 00:19:34,000 --> 00:19:36,850 de fapt apel printf, sau de imprimare, sau orice funcție similară. 416 00:19:36,850 --> 00:19:39,445 Deci, să ne întoarcem la care într-o clipă. 417 00:19:39,445 --> 00:19:40,470 >> În primul rând, haideți să facem acest lucru. 418 00:19:40,470 --> 00:19:43,950 Interiorul aparatului, avem un director numit Naționala, pentru virtuale 419 00:19:43,950 --> 00:19:47,000 gazde, slash gazdă locală, slash publice. 420 00:19:47,000 --> 00:19:50,240 Deci, este un pic verbose, dar poveste lungă scurt, aparatul nu este proiectat 421 00:19:50,240 --> 00:19:53,770 doar pentru a sprijini C. Este, de asemenea, concepute pentru a sprijini PHP. 422 00:19:53,770 --> 00:19:57,440 Dar este, de asemenea, conceput pentru a fi un web server și un server de baze de date. 423 00:19:57,440 --> 00:20:00,230 Și este proiectat, și cu adevărat configurat, să fie o reminiscență a oricărei 424 00:20:00,230 --> 00:20:04,230 comerciale companie de web hosting care s-ar putea plăti 5 dolari pe lună pentru, 425 00:20:04,230 --> 00:20:05,040 100 de dolari pe lună pentru. 426 00:20:05,040 --> 00:20:08,200 Indiferent de serviciu este, este configurat a fi foarte asemănătoare cu o 427 00:20:08,200 --> 00:20:10,170 reală serverul de producție mondială. 428 00:20:10,170 --> 00:20:13,485 >> Și ce înseamnă că este că rulează pe aparatul este software-ul de server web. 429 00:20:13,485 --> 00:20:15,060 Se întâmplă să fie numit Apache. 430 00:20:15,060 --> 00:20:17,790 E doar gratuit, și open source, și foarte popular. 431 00:20:17,790 --> 00:20:23,260 Și ne-am configurat Apache să știe că dacă am vizita o anumită adresă URL, cu 432 00:20:23,260 --> 00:20:28,060 Crom sau orice browser interiorul aparat, să se uite în acest director 433 00:20:28,060 --> 00:20:31,030 pentru fișierele pe care utilizatorul cere. 434 00:20:31,030 --> 00:20:32,790 >> Cu alte cuvinte, lasă-mă să mergeți mai departe și de a face acest lucru. 435 00:20:32,790 --> 00:20:36,890 În interiorul directorul meu public, am de gând pentru a merge mai departe și de a crea un fișier 436 00:20:36,890 --> 00:20:39,580 numit index.html. 437 00:20:39,580 --> 00:20:41,000 Asta îmi dă fila aici. 438 00:20:41,000 --> 00:20:44,210 Și am de gând să merg foarte repede și mergeți mai departe și bang 439 00:20:44,210 --> 00:20:45,010 acest program aici. 440 00:20:45,010 --> 00:20:48,410 DOCTYPE HTML, care de acum, doar Presupun că trebuie să tastați. 441 00:20:48,410 --> 00:20:53,490 E doar o etichetă de arcane, care nu este cu adevărat un tag HTML, care specifică faptul că 442 00:20:53,490 --> 00:20:55,050 aici vine unele HTML. 443 00:20:55,050 --> 00:20:57,400 >> Am de gând să merg mai departe și de a recrea ceea ce am văzut acum o clipă. 444 00:20:57,400 --> 00:20:58,650 Aici e capul paginii. 445 00:20:58,650 --> 00:21:01,170 În interiorul capului a fost - 446 00:21:01,170 --> 00:21:01,890 astfel titlu. 447 00:21:01,890 --> 00:21:04,340 Deci, vom saluta, lume. 448 00:21:04,340 --> 00:21:06,570 Și apoi aici a fost tag-ul body. 449 00:21:06,570 --> 00:21:08,580 Permiteți-mi să închideți tag-ul body. 450 00:21:08,580 --> 00:21:12,280 Și apoi aici, voi spune, de asemenea, doar pentru claritate, salut lume. 451 00:21:12,280 --> 00:21:14,770 >> Deci, aceasta este, fără îndoială, cea mai simplă posibil, pagina web pe care 452 00:21:14,770 --> 00:21:15,770 poate face asta e valabil. 453 00:21:15,770 --> 00:21:17,030 Este sintactic valabil. 454 00:21:17,030 --> 00:21:18,620 Tot ceea ce a deschis este închis. 455 00:21:18,620 --> 00:21:20,910 Totul este frumos în stil și alin. 456 00:21:20,910 --> 00:21:23,600 Să vedem acum cum am pot avea acces la acest fisier. 457 00:21:23,600 --> 00:21:25,540 >> Ei bine, lasă-mă să merg la Chrome aici. 458 00:21:25,540 --> 00:21:35,050 Și lasă-mă să merg la http://localhost/index.html. 459 00:21:35,050 --> 00:21:36,200 Deci, ce e local host? 460 00:21:36,200 --> 00:21:39,400 Ei bine, cele mai multe orice computer din lume, Linux, Mac OS, Windows, are o porecla 461 00:21:39,400 --> 00:21:40,680 numit local host. 462 00:21:40,680 --> 00:21:42,900 Deci, dacă vrei vreodată să vorbești la propriul computer - 463 00:21:42,900 --> 00:21:45,140 deși, ciudat reflex - 464 00:21:45,140 --> 00:21:47,080 te gazda locala apel. 465 00:21:47,080 --> 00:21:50,390 Indiferent de ceea ce computerul este real numit, fie că este vorba MacBook lui David 466 00:21:50,390 --> 00:21:52,490 Aer, sau ceva mai mult detaliată de genul asta. 467 00:21:52,490 --> 00:21:57,760 >> Deci, acest URL este aparent de gând să utilizeze HTTP pentru a vorbi la gazdă locale, 468 00:21:57,760 --> 00:22:00,800 același calculator, aparatul, și se va cere, să ia doar o 469 00:22:00,800 --> 00:22:02,570 ghici, ce dosar? 470 00:22:02,570 --> 00:22:04,460 Index.html. 471 00:22:04,460 --> 00:22:08,650 Deci, aparatul a fost configurat în avansa să știe că dacă îți cer 472 00:22:08,650 --> 00:22:13,460 pentru ceva de genul index.html, uita-te pentru într-un folder numit Naționala, într-o 473 00:22:13,460 --> 00:22:17,950 folder numit localhost, într-un folder acestea numite publice. 474 00:22:17,950 --> 00:22:20,400 Asta în cazul în tot a mea publică fișierele vor fi. 475 00:22:20,400 --> 00:22:22,610 Deci, eu sunt acum de gând să lovi Enter. 476 00:22:22,610 --> 00:22:27,100 >> Și la naiba, este că interzis mesaj, altfel cunoscut sub numele 403, 477 00:22:27,100 --> 00:22:28,490 cod numeric pentru ea. 478 00:22:28,490 --> 00:22:30,130 Deci, ce sa întâmplat aici? 479 00:22:30,130 --> 00:22:33,210 Ei bine, nu este suficient pentru a pune doar fișierul interiorul dosarul meu. 480 00:22:33,210 --> 00:22:35,790 Am nevoie pentru a face de fapt următoarele. 481 00:22:35,790 --> 00:22:40,210 >> Dă-mi drumul în directorul meu Naționala, în localhost, în publice, și să 482 00:22:40,210 --> 00:22:41,680 mi fac LS liniuță L. 483 00:22:41,680 --> 00:22:44,510 Și există câteva alte lucruri în aici pentru scopuri de azi. 484 00:22:44,510 --> 00:22:50,540 Dar observa pe partea stângă, lângă la index.html, vedem doar unul RW. 485 00:22:50,540 --> 00:22:53,560 Și în trecut, ceea ce RW a fost pentru? 486 00:22:53,560 --> 00:22:54,240 >> Doar citi sau scrie. 487 00:22:54,240 --> 00:22:58,000 Faptul că se spune RW pe stânga înseamnă că, proprietarul acestui fișier, poate 488 00:22:58,000 --> 00:22:59,020 citeasca sau sa scrie. 489 00:22:59,020 --> 00:23:05,010 Dar am nevoie pentru a permite tuturor persoanelor din lume citit acest lucru, deși nu-l scrie. 490 00:23:05,010 --> 00:23:09,650 Așa că am de gând să schimbe modul de fișier, chmod, toate plus R pentru a da 491 00:23:09,650 --> 00:23:13,910 toată lumea permisiuni de citire pe fișier numit index.html. 492 00:23:13,910 --> 00:23:18,040 >> Și dacă acum Rescrie LS liniuță L, notificare că, aici, ceva mai mult 493 00:23:18,040 --> 00:23:19,160 De R s-au apărut. 494 00:23:19,160 --> 00:23:21,090 Și de acum, spec. merge în mai multe detalii. 495 00:23:21,090 --> 00:23:24,450 Pentru P set de 7, ceea ce înseamnă doar toată lumea se poate citi acum acest fișier. 496 00:23:24,450 --> 00:23:27,790 Dacă mă întorc la browser-ul meu acum și reîncărcați, Voila. 497 00:23:27,790 --> 00:23:28,750 Bună ziua lume. 498 00:23:28,750 --> 00:23:32,260 >> Și eu pot deschide chiar uneltele Chrome și a vedea, la fel ca și cu Google și 499 00:23:32,260 --> 00:23:34,590 Facebook că nu există HTML meu, formatat un pic 500 00:23:34,590 --> 00:23:35,930 diferit și colorized. 501 00:23:35,930 --> 00:23:40,450 Dacă mă duc la tab-ul de rețea și reîncărcați pagina, observa că există obtine 502 00:23:40,450 --> 00:23:42,900 solicita ca Chrome este de a trimite a aparatului. 503 00:23:42,900 --> 00:23:46,020 Nu e de 200 pentru că anumit fișier. 504 00:23:46,020 --> 00:23:49,340 Deci, pe scurt, acest lucru este modul în care toate aceste diverse piese vin împreună. 505 00:23:49,340 --> 00:23:53,530 Pur și simplu așa se întâmplă că serverul de web folosim acum este nu de la distanță, 506 00:23:53,530 --> 00:23:54,210 cum ar fi Facebook. 507 00:23:54,210 --> 00:23:58,330 Este literalmente pe același computer, care este perfect OK. 508 00:23:58,330 --> 00:24:00,590 >> Deci, ce mai putem face într-o pagină web? 509 00:24:00,590 --> 00:24:03,110 Ei bine, pur și simplu, să briza prin o pereche de aceste lucruri. 510 00:24:03,110 --> 00:24:07,860 Dar lasă-mă să merg mai departe și să redeschideți Gedit cu index.html. 511 00:24:07,860 --> 00:24:13,980 Și lasă-mă să merg mai departe și spun salut CS50, salvați acest fișier, du-te înapoi la 512 00:24:13,980 --> 00:24:16,260 browser-ul, schimba cu adevarat underwhelming. 513 00:24:16,260 --> 00:24:19,130 >> Dar ce se întâmplă dacă vrem să efectiv link-ul pentru ceva acum? 514 00:24:19,130 --> 00:24:23,480 Deci, se dovedește că putem avea link-uri în HTML, care sunt doar etichete 515 00:24:23,480 --> 00:24:24,140 înșiși. 516 00:24:24,140 --> 00:24:27,320 Se întâmplă să fie numit tag-ul ancora. a href egal 517 00:24:27,320 --> 00:24:33,190 https://www.cs50.net, www.cs50.net Citat de aproape, suport aproape. 518 00:24:33,190 --> 00:24:35,230 Și acum să vedem ce mai urmeaza. 519 00:24:35,230 --> 00:24:36,500 >> Am deschis tag-ul. 520 00:24:36,500 --> 00:24:38,990 Acum am nevoie să-l dea o fraza de genul CS50. 521 00:24:38,990 --> 00:24:40,600 Permiteți-mi să închideți tag-ul. 522 00:24:40,600 --> 00:24:42,010 Și observa câteva lucruri. 523 00:24:42,010 --> 00:24:45,270 Chiar dacă există acest lucru criptic aici, nu l-am repetat atunci când 524 00:24:45,270 --> 00:24:46,010 închide tag-ul. 525 00:24:46,010 --> 00:24:48,230 Tu pur și simplu închideți tag-ul cu numele singur. 526 00:24:48,230 --> 00:24:50,940 Și aceasta este ceea ce este cunoscut sub numele de un atribut cu o valoare. 527 00:24:50,940 --> 00:24:56,070 Atribute modifica doar comportamentul a unor tag-ul in interiorul unei pagini. 528 00:24:56,070 --> 00:24:59,150 >> Deci, acest lucru se specifică faptul că hiper de referință, mod fantezist de a spune 529 00:24:59,150 --> 00:25:03,660 URL pentru această ancoră, pentru această link-ul, ar trebui să fie CS50.net. 530 00:25:03,660 --> 00:25:07,440 Și textul pe care vrem să arătăm Utilizatorul nu este că URL-ul crud, ci mai degrabă 531 00:25:07,440 --> 00:25:08,730 CS50 cuvânt. 532 00:25:08,730 --> 00:25:13,710 >> Așa că, dacă acum am reincarca, lasă-mă să zoom in pentru claritate, permiteți-mi să reîncărcați pagina, 533 00:25:13,710 --> 00:25:16,460 observa că avem această școală veche albastru subliniat link. 534 00:25:16,460 --> 00:25:20,000 Și dacă treceți peste el, și va să fie greu pentru a vedea, în partea din stânga jos 535 00:25:20,000 --> 00:25:23,690 colț mâna a ecranului, observa care se spune URL-ul la care 536 00:25:23,690 --> 00:25:24,430 Am de gând să merg. 537 00:25:24,430 --> 00:25:27,940 Și dacă fac clic pe acolo, Voila, acum am face pagini web. 538 00:25:27,940 --> 00:25:30,140 Și ne-am dus noi la pagina de start. 539 00:25:30,140 --> 00:25:32,670 >> Dar observa ce potențial Acest lucru ne oferă. 540 00:25:32,670 --> 00:25:34,890 Securitatea este foarte mult în vogă în aceste zile. 541 00:25:34,890 --> 00:25:41,210 Ce se întâmplă dacă în loc să spun ceva de genul acest lucru, și eu în schimb merge la, să zicem, să 542 00:25:41,210 --> 00:25:42,460 a se vedea, fakeCS50.net. 543 00:25:42,460 --> 00:25:44,660 544 00:25:44,660 --> 00:25:46,360 Reîncarcă această pagină. 545 00:25:46,360 --> 00:25:50,180 >> OK, deci observa încă arată ca și cum am O să CS50, cu excepția cazului în ochi viclean 546 00:25:50,180 --> 00:25:51,560 va observa am de gând să CS50 fals. 547 00:25:51,560 --> 00:25:54,550 Cred că acest domeniu nu este luată. 548 00:25:54,550 --> 00:25:55,960 OK, deci nu este disponibil. 549 00:25:55,960 --> 00:25:56,600 Așa că e bine. 550 00:25:56,600 --> 00:25:57,900 Nimeni nu are de fapt acest domeniu. 551 00:25:57,900 --> 00:26:00,380 >> Dar să fim un pic mai rău pentru că e un fel de stupid. 552 00:26:00,380 --> 00:26:02,240 Ce se întâmplă dacă vom schimba acest lucru la Paypal. 553 00:26:02,240 --> 00:26:09,960 Și ce dacă noi numim acest lucru, ca, www.paypal.badguy.com, 554 00:26:09,960 --> 00:26:12,070 indiferent de domeniu este. 555 00:26:12,070 --> 00:26:13,700 Asta, probabil, există. 556 00:26:13,700 --> 00:26:16,260 Deci, acum lasă-mă să reîncărcați pagina. 557 00:26:16,260 --> 00:26:22,890 Și aici avem un fel de phishing atac, P-H-I-S-H-I-N-G, care este 558 00:26:22,890 --> 00:26:26,760 cuvânt prostesc dat pentru un atac care încearcă să informații de pește, sau, mai bine 559 00:26:26,760 --> 00:26:30,450 totuși, bani, din oameni prin pacalirea i în furnizarea de informații care 560 00:26:30,450 --> 00:26:31,990 care altfel nu s-ar putea face. 561 00:26:31,990 --> 00:26:33,500 Acest lucru pare cu totul legal, corect? 562 00:26:33,500 --> 00:26:34,930 Trebuie să am un link aici pentru a Paypal.com. 563 00:26:34,930 --> 00:26:37,700 564 00:26:37,700 --> 00:26:40,430 În corectitudine, dacă l-am sexuate cu unele grafica, putem face să arate 565 00:26:40,430 --> 00:26:41,310 mai mult ca PayPal. 566 00:26:41,310 --> 00:26:41,510 Dreapta? 567 00:26:41,510 --> 00:26:43,815 Pentru ca am putut, ca o paranteza, Am putea merge la Paypal.com. 568 00:26:43,815 --> 00:26:47,110 Și tocmai am văzut cum i se poate vezi toate HTML lor. 569 00:26:47,110 --> 00:26:50,560 Am putut copia pur și simplu și de a recrea estetica Paypal, mai degrabă decât merge 570 00:26:50,560 --> 00:26:51,490 vechi de școală aici. 571 00:26:51,490 --> 00:26:55,010 Dar observa, desigur, și e un pic mic încă, numai în partea de jos 572 00:26:55,010 --> 00:26:59,190 colțul din stânga, la fel ca un punct 10 font, vezi ce URL esti 573 00:26:59,190 --> 00:27:01,310 de fapt, va fi condus la. 574 00:27:01,310 --> 00:27:06,580 >> Și dacă ați primit vreodată de spam spunând merge mai departe, și tu ești contul 575 00:27:06,580 --> 00:27:07,420 a fost compromisă. 576 00:27:07,420 --> 00:27:10,615 Vă rugăm să faceți clic pe acest link și să ne anunțați parola, astfel încât să putem asigura că ești 577 00:27:10,615 --> 00:27:13,010 tu, nu face asta. 578 00:27:13,010 --> 00:27:14,180 Aceste lucruri ar trebui să meargă de la sine. 579 00:27:14,180 --> 00:27:17,670 Dar e minunat amuzant, și tragic, cum în fiecare an acest lucru pare să 580 00:27:17,670 --> 00:27:19,660 întâmpla cu unele de zero numărul de persoane. 581 00:27:19,660 --> 00:27:21,400 >> Și asta e frumusețea de atacuri de tip phishing. 582 00:27:21,400 --> 00:27:23,160 Puteți trimite un milion de e-mailuri. 583 00:27:23,160 --> 00:27:27,720 Și chiar dacă 0,01% din oameni de fapt, faceți clic pe Paypal și vă va oferi dvs. 584 00:27:27,720 --> 00:27:31,040 parolă, care este încă un număr diferit de zero de oameni care au doar oferindu 585 00:27:31,040 --> 00:27:32,200 bani lor. 586 00:27:32,200 --> 00:27:36,170 Și trimiterea de email-uri, desigur, este destul de ușor și, în esență, gratuit 587 00:27:36,170 --> 00:27:36,970 în aceste zile. 588 00:27:36,970 --> 00:27:40,410 >> Deci, pe scurt, minunat ideea de frumos, nu? 589 00:27:40,410 --> 00:27:44,620 Cu ani în urmă, acest lucru a fost mai devreme web, care să permită o rețea de 590 00:27:44,620 --> 00:27:46,330 hyperlink-uri la resurse. 591 00:27:46,330 --> 00:27:49,520 Dar atât de repede ar putea fi utilizate în scopuri bolnave. 592 00:27:49,520 --> 00:27:54,100 Și e-mail, este suficient să spun, aceste zile, s-au încorporat în interiorul HTML. 593 00:27:54,100 --> 00:27:55,410 >> Ei bine, lasă-mă doar un alt lucru. 594 00:27:55,410 --> 00:27:58,640 Și vom amâna în mare măsură la secțiunea în Problema stabilit șapte pentru a vă permite să 595 00:27:58,640 --> 00:28:00,000 explora datele. 596 00:28:00,000 --> 00:28:01,990 Dar lasă-mă să merg mai departe și faceți câteva lucruri aici. 597 00:28:01,990 --> 00:28:04,840 Am de gând să meargă în și să declare ceea ce se numește un div, sau 598 00:28:04,840 --> 00:28:06,080 divizie, a paginii. 599 00:28:06,080 --> 00:28:07,770 Permiteți-mi să închei că tag-ul div. 600 00:28:07,770 --> 00:28:11,460 >> Și am de gând să spun în sus aici de sus a paginii. 601 00:28:11,460 --> 00:28:14,940 Și apoi mai jos acest lucru, am de gând să fac ceva de genul un alt div, închideți acest 602 00:28:14,940 --> 00:28:17,800 tag-ul, și de a face partea de jos a paginii. 603 00:28:17,800 --> 00:28:18,840 Și să-l salveze. 604 00:28:18,840 --> 00:28:21,040 >> Deci, acum, să ne întoarcem la dosarul meu. 605 00:28:21,040 --> 00:28:22,120 Foarte underwhelming. 606 00:28:22,120 --> 00:28:25,520 Dar ceea ce divizie este utilizat pentru, sub capota, este de fapt 607 00:28:25,520 --> 00:28:26,920 un element structural frumos. 608 00:28:26,920 --> 00:28:30,300 Ea nu are nici estetica măsura putem vedea, altele decât, aparent, 609 00:28:30,300 --> 00:28:31,890 a pune lucrurile pe linii noi. 610 00:28:31,890 --> 00:28:36,290 >> Dar observați, ca o paranteza, doar lovind Intră nu-l taie în HTML ca ea 611 00:28:36,290 --> 00:28:39,840 se în C. Ai putea crede că este O să pun un decalaj mare între frumos 612 00:28:39,840 --> 00:28:41,300 în partea de sus și de jos a paginii. 613 00:28:41,300 --> 00:28:43,420 Dar este ignorat. 614 00:28:43,420 --> 00:28:48,040 Spațiul alb este în esență, ignorat în pagini web, altele decât prima 615 00:28:48,040 --> 00:28:51,530 bar caracter spațiu, sau retur de car, care te-a lovit pe tastatură. 616 00:28:51,530 --> 00:28:55,370 Dacă doriți mai multe pauze de linie, te Trebuie să se precizeze tine. 617 00:28:55,370 --> 00:28:59,080 >> Așa că am de gând să fac câteva lucruri aici pentru a arăta ceea ce se întâmplă. 618 00:28:59,080 --> 00:29:02,700 Am de gând să adăugați un atribut care există și din nou, modul in care invata 619 00:29:02,700 --> 00:29:07,110 ce atribute exista, ceea ce exista tag-uri, într-adevăr, este referinte on-line. 620 00:29:07,110 --> 00:29:09,750 HTML este un fel de limbaj - e nu un limbaj de programare. 621 00:29:09,750 --> 00:29:12,460 Este un limbaj de markup - care, după o bună jumătate de oră, poate, o oră cu 622 00:29:12,460 --> 00:29:15,930 ea, veți descoperi cu siguranță, cel mai probabil, ideea de bază. 623 00:29:15,930 --> 00:29:20,350 Și apoi o căutare Google este de departe tot posibile tag-uri pe care le-ar putea fi 624 00:29:20,350 --> 00:29:21,170 interesat 625 00:29:21,170 --> 00:29:24,290 Și pe spec., care este destul bun venit și încurajat aici. 626 00:29:24,290 --> 00:29:26,120 >> Deci, acum lasă-mă să merg mai departe și face ceva de genul asta. 627 00:29:26,120 --> 00:29:28,690 Culoare de fundal. 628 00:29:28,690 --> 00:29:32,060 Și acum, am de gând să facă ceva cum ar fi rosu, punct și virgulă. 629 00:29:32,060 --> 00:29:33,970 Și puteți face acest lucru în câteva moduri diferite. 630 00:29:33,970 --> 00:29:36,770 Sunt doar un fel de introduci ca super- explicit cu putință. 631 00:29:36,770 --> 00:29:41,960 >> Dar se pare că această valoare aici este ceea ce se numește CSS, Cascading Style 632 00:29:41,960 --> 00:29:43,700 Foi, care este un alt limbă cu totul. 633 00:29:43,700 --> 00:29:46,770 CSS nu are nimic de-a face cu deschide tag-uri și tag-uri apropiate. 634 00:29:46,770 --> 00:29:48,230 Ea are de a face cu proprietăți. 635 00:29:48,230 --> 00:29:52,660 >> Și proprietăți sunt o valoare pur și simplu cheie perechi, ceea ce înseamnă doar un cuvânt, 636 00:29:52,660 --> 00:29:54,680 colon, iar apoi un alt cuvânt. 637 00:29:54,680 --> 00:29:57,940 Și dacă aveți cele mai multe, sau doar de aici, puteți să-l termina cu un 638 00:29:57,940 --> 00:29:59,390 punct și virgulă, doar pentru claritate. 639 00:29:59,390 --> 00:30:01,370 Dar care, de asemenea, va lucra aici. 640 00:30:01,370 --> 00:30:02,500 >> Acum, ce-i asta de gând să faci? 641 00:30:02,500 --> 00:30:03,610 Puteți ghici, probabil. 642 00:30:03,610 --> 00:30:05,930 Lasă-mă să merg mai departe si sa reincarci aceasta pagina. 643 00:30:05,930 --> 00:30:07,300 Și acum este într-adevăr vine de-a lungul. 644 00:30:07,300 --> 00:30:09,150 Astfel încât partea de sus a paginii mea este de culoare roșie. 645 00:30:09,150 --> 00:30:12,380 Dar ceea ce este esențial aici este că, am menționat mai devreme, că div vă oferă 646 00:30:12,380 --> 00:30:13,220 o divizie a paginii. 647 00:30:13,220 --> 00:30:14,410 Și asta e într-adevăr ceea ce face. 648 00:30:14,410 --> 00:30:17,920 Se împarte în esență, pagina în un dreptunghi care puteți apoi 649 00:30:17,920 --> 00:30:18,720 manipula. 650 00:30:18,720 --> 00:30:22,330 >> Și această noțiune de dreptunghiuri este un fel de convingătoare în care, dacă te gândești de 651 00:30:22,330 --> 00:30:26,410 cele mai multe orice site web, există, probabil, unii structură să-l. 652 00:30:26,410 --> 00:30:29,620 Cele mai multe dintre voi au, probabil, foarte rar văzut Pagina de Facebook, dacă sunteți conectat 653 00:30:29,620 --> 00:30:30,440 în tot timpul. 654 00:30:30,440 --> 00:30:33,920 >> Dar pe pagina de start Facebook, există un fel de div-a lungul partea de sus. 655 00:30:33,920 --> 00:30:36,140 Și nu s-ar putea fi la fel de simplu ca un div, dar există o 656 00:30:36,140 --> 00:30:37,560 regiune dreptunghiulară acolo. 657 00:30:37,560 --> 00:30:40,290 Restul paginii este ca un div imens, ca o mult 658 00:30:40,290 --> 00:30:41,910 regiune dreptunghiulară mare. 659 00:30:41,910 --> 00:30:44,540 Deci, pe scurt, doar prin faptul aceste blocuri mici, de 660 00:30:44,540 --> 00:30:49,250 abilitatea de a modela lucruri ca dreptunghiuri, dacă larg sau îngust, puteți, de asemenea, 661 00:30:49,250 --> 00:30:53,680 face coloane potențial, vă permite să pune de pagini, într-adevăr, cu toate acestea te 662 00:30:53,680 --> 00:30:54,100 ar dori. 663 00:30:54,100 --> 00:30:56,170 Suntem într-adevăr doar începutul suprafața aici. 664 00:30:56,170 --> 00:30:59,820 >> Într-adevăr, dacă am face o alta, lasă-mă să merg mai departe și de a face stil, 665 00:30:59,820 --> 00:31:05,410 culoare de fundal, vom face ceva cum ar fi, citate albastru apropiate. 666 00:31:05,410 --> 00:31:06,620 Hai să reîncărcați. 667 00:31:06,620 --> 00:31:08,260 Deci, acum este din ce in ce mai urât. 668 00:31:08,260 --> 00:31:11,520 Dar acum pot să fel de a scoate în evidență mi P set cinci competențe, nu? 669 00:31:11,520 --> 00:31:12,690 Roșu. 670 00:31:12,690 --> 00:31:15,640 Aceasta îmi amintește de RGB, Rosu Verde Albastru triple. 671 00:31:15,640 --> 00:31:19,330 Ei bine, se pare că în programare web, sau web design, care este aceasta, ne-am 672 00:31:19,330 --> 00:31:21,650 nu a programat încă nimic în sine, te poate de fapt, 673 00:31:21,650 --> 00:31:22,880 au cod hexazecimal. 674 00:31:22,880 --> 00:31:26,480 Deci ceva ceva, ceva ceva, ceva ceva. 675 00:31:26,480 --> 00:31:30,650 Astfel încât să puteți avea șase hexazecimal caractere sau trei, în unele cazuri, 676 00:31:30,650 --> 00:31:33,480 și fiecare dintre aceste semne de întrebare trebuie să fie un cifre hexazecimale, 677 00:31:33,480 --> 00:31:34,985 zero, prin f.. 678 00:31:34,985 --> 00:31:41,000 >> Dacă vreau să am o mulțime de roșu, și nu verde, și nici albastru, ceea ce este 679 00:31:41,000 --> 00:31:43,740 vizavi de zero, atunci când se utilizează hex? 680 00:31:43,740 --> 00:31:44,480 Este f. 681 00:31:44,480 --> 00:31:51,130 Deci, eu pot face FF, de zero la zero, zero, zero a salva acest, iar acum vin aici. 682 00:31:51,130 --> 00:31:52,700 Și nu văd de fapt, o schimbare. 683 00:31:52,700 --> 00:31:56,230 Deci, citat citatul "roșu" este aparent sinonim pentru toate roșu, 684 00:31:56,230 --> 00:31:57,610 nu verde, nu albastru. 685 00:31:57,610 --> 00:31:59,960 Între timp, hai să schimbăm în mod deliberat aceasta să fie ceva 686 00:31:59,960 --> 00:32:01,210 aleatoriu, ca ABCDF. 687 00:32:01,210 --> 00:32:03,790 688 00:32:03,790 --> 00:32:05,860 >> Să vedem ce este. 689 00:32:05,860 --> 00:32:08,530 Este un albastru foarte frumos, de fapt, albastru copil. 690 00:32:08,530 --> 00:32:11,820 În regulă, deci acestea sunt doar acum combinații oarecum aleatorii ale 691 00:32:11,820 --> 00:32:12,210 caractere. 692 00:32:12,210 --> 00:32:13,410 Așa că nu vor fi împotmolit aici. 693 00:32:13,410 --> 00:32:15,930 Dar, din nou, acest lucru vorbește de precizie pe care le puteți începe să 694 00:32:15,930 --> 00:32:19,090 se aplică - chiar dacă sunteți foarte copleșit de la estetica. 695 00:32:19,090 --> 00:32:21,750 De fapt, dacă vrei cu adevărat să fie impresionat, lasă-mă să merg mai departe și să modificați 696 00:32:21,750 --> 00:32:23,500 dimensiunea fontului, de exemplu. 697 00:32:23,500 --> 00:32:25,960 Și observați punct și virgulă, care Este necesar acolo. 698 00:32:25,960 --> 00:32:29,570 >> Dimensiunea fontului, putem fi pur și simplu ridicol aici, 96 puncte. 699 00:32:29,570 --> 00:32:31,280 Salvare ca. 700 00:32:31,280 --> 00:32:33,670 Wow, asta-i o dimensiune de font mare. 701 00:32:33,670 --> 00:32:35,490 În regulă, deci e foarte ușor. 702 00:32:35,490 --> 00:32:38,260 Și, de fapt, ești în esență, vezi pagina de web foarte primul-am făcut 703 00:32:38,260 --> 00:32:40,060 ani în urmă, când am învățat chestia asta. 704 00:32:40,060 --> 00:32:42,190 Este foarte ușor de a face foarte lucrurile hidoase rapid. 705 00:32:42,190 --> 00:32:46,115 >> Și dacă sunteți familiarizați cu Wayback Masina de pe archive.org, te 706 00:32:46,115 --> 00:32:48,210 Puteți găsi toate hidos meu student pagini web. 707 00:32:48,210 --> 00:32:50,090 Unul a avut Kermit Broscoiul pe front. 708 00:32:50,090 --> 00:32:53,150 Am trecut printr-o fază în care am crezut a fost misto de a lua fondul de 709 00:32:53,150 --> 00:32:56,320 o perdea roșie, atunci când am învățat cum te Poate imagini Placi din nou, și din nou, și 710 00:32:56,320 --> 00:32:59,540 din nou, pentru a umple o pagină cu o mare perdea roșu lipicios. 711 00:32:59,540 --> 00:33:03,120 Și apoi, pe partea de sus a acestui fapt, a fost o pictogramă care a trebuit să faceți clic pentru a intra în casa mea 712 00:33:03,120 --> 00:33:04,960 pagina pentru că a fost foarte mult în vogă. 713 00:33:04,960 --> 00:33:08,870 >> Și apoi primul meu program de l-am scris vreodată nu a fost în PHP, dar într-o limbă 714 00:33:08,870 --> 00:33:12,260 numit Pearl, a scris o carte de oaspeti, care este un lucru foarte cool că un 715 00:33:12,260 --> 00:33:14,250 mulțime de oameni vă așteptați pentru a avea pe o pagina de start. 716 00:33:14,250 --> 00:33:17,510 Când ajungi la pagina, care vrei să semneze în, și spun cine ești, 717 00:33:17,510 --> 00:33:18,720 și de ce ești acolo. 718 00:33:18,720 --> 00:33:21,320 Acest lucru este foarte anilor 1990, stilul de web design. 719 00:33:21,320 --> 00:33:24,130 >> Dar aceste zile, cu siguranță, ne-am ajuns mult mai departe. 720 00:33:24,130 --> 00:33:27,560 Și veți vedea, în secțiunea, și chiar în problema stabilit șapte, prin 721 00:33:27,560 --> 00:33:31,570 pârghie biblioteci în aceste zile, E mult mai ușor să facă 722 00:33:31,570 --> 00:33:33,400 lucruri mai frumoase rapid. 723 00:33:33,400 --> 00:33:36,550 Într-adevăr aici, suntem doar zgarierea pe suprafața de ceea ce poate face 724 00:33:36,550 --> 00:33:37,400 stilistic. 725 00:33:37,400 --> 00:33:41,660 >> Și, de fapt, deja, permiteți-mi să subliniez că acest lucru este deja devine urât, nu 726 00:33:41,660 --> 00:33:46,030 doar estetic, dar din punct de vedere de stilul de codul meu, sau 727 00:33:46,030 --> 00:33:47,260 Design de codul meu. 728 00:33:47,260 --> 00:33:52,350 Am comingled în prezent, HTML, care este verzui tag-uri deschise acolo, cu 729 00:33:52,350 --> 00:33:55,160 CSS, care este complet legal. 730 00:33:55,160 --> 00:33:57,200 Acest lucru este adevărat în cazul în care limba a avut originile sale. 731 00:33:57,200 --> 00:34:01,030 >> Dar în interesul design curat, mult ca am inceput lucruri de factoring 732 00:34:01,030 --> 00:34:05,370 de la fișiere C în fișiere ore., să mi practica de fapt acest tip de 733 00:34:05,370 --> 00:34:07,990 Principiul și începe să faci acest loc. 734 00:34:07,990 --> 00:34:13,280 Permiteți-mi pune o etichetă de stil aici, care De asemenea, există în HTML, și lasă-mă să 735 00:34:13,280 --> 00:34:15,330 precizează următoarele. 736 00:34:15,330 --> 00:34:16,360 Lasă-mă să ștergeți acest. 737 00:34:16,360 --> 00:34:18,110 Culoarea de fundal va fi de culoare roșie. 738 00:34:18,110 --> 00:34:19,800 Am de gând pentru a șterge acest întregime. 739 00:34:19,800 --> 00:34:22,580 Am de gând să scape de stil atribuie, și am de gând să unic 740 00:34:22,580 --> 00:34:24,620 identifica acest div cu un cuvant - 741 00:34:24,620 --> 00:34:28,750 arbitrar, dar rezonabil, citat citez "de top." Și ID-ul este un special 742 00:34:28,750 --> 00:34:32,530 atribut care defineste unic un anumit element HTML 743 00:34:32,530 --> 00:34:33,850 ca având acel ID. 744 00:34:33,850 --> 00:34:37,969 >> Dacă eu acum vreau să-l stilizat, aici, în capul pagina mea, în interiorul 745 00:34:37,969 --> 00:34:41,730 tag-stil, observăm că Eu pot face sus hash. 746 00:34:41,730 --> 00:34:45,300 Și apoi pot pune o pereche de cret bretele, amintind de C, și apoi să 747 00:34:45,300 --> 00:34:47,130 ma paste in care stilizare. 748 00:34:47,130 --> 00:34:49,929 Și lasă-mă să merg mai departe aici și să anticipeze unde mă duc cu asta. 749 00:34:49,929 --> 00:34:53,380 Permiteți-mi, de asemenea, crea o pentru div jos. 750 00:34:53,380 --> 00:34:58,010 Permiteți-mi să iau acest cod hidos de jos aici, pune-l aici, iar eu voi fi 751 00:34:58,010 --> 00:35:00,770 un pic mai mult anal acum și stilizat o doar prin a pune lucrurile pe cont propriu 752 00:35:00,770 --> 00:35:02,540 linie, se termină cu punct și virgulă. 753 00:35:02,540 --> 00:35:04,430 Lasă-mă să scap de eticheta de stil. 754 00:35:04,430 --> 00:35:05,320 >> Dar eu nu am terminat încă. 755 00:35:05,320 --> 00:35:07,406 Am nevoie pentru a face un alt lucru. 756 00:35:07,406 --> 00:35:10,070 Da, ID-ul este egal cu citatul citat, "de jos" sau ce ID vreau să 757 00:35:10,070 --> 00:35:11,740 da acel element. 758 00:35:11,740 --> 00:35:13,420 Acum, lasă-mă să mă întorc aici. 759 00:35:13,420 --> 00:35:14,360 Și acest lucru este atroce. 760 00:35:14,360 --> 00:35:15,805 Eu nu pot face cu 96 puncte. 761 00:35:15,805 --> 00:35:16,960 Să facem 24 de puncte. 762 00:35:16,960 --> 00:35:18,320 Sau ai putea fi mai precis. 763 00:35:18,320 --> 00:35:21,800 Puteți folosi de fapt pixeli, px, așa pe care le obține cu adevărat de cereale fine 764 00:35:21,800 --> 00:35:23,220 controlul asupra paginii. 765 00:35:23,220 --> 00:35:26,860 >> Ca o paranteza, care nu este neapărat cel mai bun lucru în cazul în care utilizatorii, pentru 766 00:35:26,860 --> 00:35:29,650 Din motive de accesibilitate, doresc să putea crește dimensiuni. 767 00:35:29,650 --> 00:35:32,650 Astfel seama că există modalități de a face lucruri care nu sunt neapărat 768 00:35:32,650 --> 00:35:34,230 greu codul totul. 769 00:35:34,230 --> 00:35:37,220 >> În regulă, deci e mai mare, de 24 puncte, decât oricare implicit este. 770 00:35:37,220 --> 00:35:38,630 Dar acum e un pic mai curat. 771 00:35:38,630 --> 00:35:40,230 Și lasă-mă să ia un pas mai departe. 772 00:35:40,230 --> 00:35:47,220 La fel ca ideea de fișiere antet, observă că suntem cu un pas mai aproape de acest lucru. 773 00:35:47,220 --> 00:35:52,000 Eu am de luat, dar a plecat, interiorul pagina mea, aceste reguli CSS. 774 00:35:52,000 --> 00:35:56,200 De ce aș putea dori să ia acest pas o în plus, elimina acest totul, și 775 00:35:56,200 --> 00:35:59,860 pune-l într-un fișier separat? 776 00:35:59,860 --> 00:36:01,070 >> Deci, eu pot reutiliza, corect? 777 00:36:01,070 --> 00:36:03,155 Acesta este doar un fel de intuiție chiar acum. 778 00:36:03,155 --> 00:36:06,340 Înainte, am susținut că a fost doar obtinerea urât cu stil 779 00:36:06,340 --> 00:36:08,480 atribute interiorul divs ei înșiși. 780 00:36:08,480 --> 00:36:09,750 Ci doar un fel de cred că prin. 781 00:36:09,750 --> 00:36:13,560 Ca pagina dvs. devine mai mult și mai mult, în cazul în care te pune aici, și aici, și 782 00:36:13,560 --> 00:36:18,350 aici, și aici, toate aceste diferite culori, si dimensiuni de fonturi, și alte astfel de 783 00:36:18,350 --> 00:36:22,550 atribute, pagina dvs. este foarte rapid va deveni greu de gestionat pentru tine. 784 00:36:22,550 --> 00:36:24,570 >> Dacă cineva vine la tine și spune, oh, stii ce? 785 00:36:24,570 --> 00:36:28,070 Mi-ar place foarte mult pentru a schimba dimensiunea fontului prin două puncte suplimentare, vă 786 00:36:28,070 --> 00:36:31,275 ar putea avea de a merge și de a găsi și înlocui un număr mare de linii de cod. 787 00:36:31,275 --> 00:36:35,170 Este mult mai convingătoare pentru a centraliza toate aceste estetica aici. 788 00:36:35,170 --> 00:36:38,850 Dar dacă doriți să reutilizați acele estetica din mai multe pagini web, toate 789 00:36:38,850 --> 00:36:41,100 mai convingătoare a, pentru exemplu, creați un fișier 790 00:36:41,100 --> 00:36:45,290 numit cu acest conținut. 791 00:36:45,290 --> 00:36:46,680 >> Și lasă-mă să fac asta. 792 00:36:46,680 --> 00:36:51,150 793 00:36:51,150 --> 00:36:51,920 Salvați acest fișier. 794 00:36:51,920 --> 00:36:55,580 Eu spun styles.css, arbitrar, dar convenționale. 795 00:36:55,580 --> 00:36:58,770 O să-l pun în casa John Harvard Anuarul acum pentru simplitate. 796 00:36:58,770 --> 00:37:03,880 Și ce pot face în pagina mea de web este de a lua scăpa de eticheta de stil cu totul, 797 00:37:03,880 --> 00:37:08,270 și oarecum unintuitively, folosiți o legătură tag-ul, care nu vă dau un link la 798 00:37:08,270 --> 00:37:13,140 hyperlink, sens poate face clic, dar unde am spus legătură, href egal 799 00:37:13,140 --> 00:37:15,120 styles.css. 800 00:37:15,120 --> 00:37:20,050 Și relația că acest element a cu pagina de web este de a servi drept 801 00:37:20,050 --> 00:37:21,280 foaie de stil. 802 00:37:21,280 --> 00:37:22,670 >> Deci, cum am știu acest lucru? 803 00:37:22,670 --> 00:37:25,950 Unul, ai citit doar manual, sau Google jurul, și tu 804 00:37:25,950 --> 00:37:27,000 uita-te la diferite resurse. 805 00:37:27,000 --> 00:37:30,520 Vreau să spun, că într-adevăr este modul în care te ridica tehnici, cum ar fi acest lucru, și, în concordanță 806 00:37:30,520 --> 00:37:34,720 cu această idee de a preda sine noi limbi, din nou, veți găsi că 807 00:37:34,720 --> 00:37:38,830 există doar un număr finit de lucruri în orice limbă pe care, odată ce te 808 00:37:38,830 --> 00:37:41,310 le, veți găsi că acesta devine mai repede și mai repede pentru a scrie. 809 00:37:41,310 --> 00:37:44,180 Într-adevăr, învățarea unei noi programări limbajul este atât de mult mai repede decât o nouă 810 00:37:44,180 --> 00:37:47,380 limba vorbită pentru că aceste lucruri sunt mult mai mici și mult mai mult 811 00:37:47,380 --> 00:37:48,820 definite cu precizie. 812 00:37:48,820 --> 00:37:51,590 >> Dar am subliniat un pic de o anomalie aici. 813 00:37:51,590 --> 00:37:57,750 De ce am subliniat acest lucru slash aici? 814 00:37:57,750 --> 00:37:59,420 Pentru că am pentru a închide tag-ul. 815 00:37:59,420 --> 00:38:00,530 Eu ar trebui să închidă tag-ul. 816 00:38:00,530 --> 00:38:02,750 Și veți găsi resurse nenumărate online, care nu face 817 00:38:02,750 --> 00:38:04,080 neapărat tag-uri apropiate. 818 00:38:04,080 --> 00:38:08,770 Și realist, nu este strict necesar pentru tehnică și există 819 00:38:08,770 --> 00:38:11,950 Din motive de realitate, browsere sunt doar destul de tolerantă de greșeli în web 820 00:38:11,950 --> 00:38:14,360 pagini, pentru o mai bună sau pentru mai rău, dar cea mai mare parte rău. 821 00:38:14,360 --> 00:38:18,830 >> Deci, asta de aici este doar un mod curat de spune o prostie ca asta, 822 00:38:18,830 --> 00:38:22,330 în cazul în care, dacă doriți să deschideți tag-ul link-ul dar aproape de ea, nu există cu adevărat nici o noțiune 823 00:38:22,330 --> 00:38:23,720 de conținut pentru o etichetă link. 824 00:38:23,720 --> 00:38:26,000 Aceasta înseamnă doar încărca acest dosar și a pus-o aici. 825 00:38:26,000 --> 00:38:30,610 E ca și cum includ ascuțite în C. Puteți deschide și închide o etichetă dintr-o dată 826 00:38:30,610 --> 00:38:31,660 în aceeași etichetă. 827 00:38:31,660 --> 00:38:33,520 Și nu există alte exemple de acest lucru. 828 00:38:33,520 --> 00:38:37,280 Acest lucru nu este modul de a face acest lucru, dar tag-ul BR, pentru sfârșiturile de linie, dacă am 829 00:38:37,280 --> 00:38:41,780 într-adevăr a vrut să realizeze ceea ce a fost incearca sa înainte de apăsarea Enter, dacă 830 00:38:41,780 --> 00:38:45,380 Eu spun în mod explicit sfârșit de linie, sfârșitul de linie, sfârșit de linie, sfârșitul de linie, și 831 00:38:45,380 --> 00:38:49,100 apoi reîncărcați această pagină, acum veți observa că partea de jos a paginii este, 832 00:38:49,100 --> 00:38:51,940 într-adevăr, mult mai departe în partea de jos a paginii. 833 00:38:51,940 --> 00:38:55,840 Dar chiar și că se poate face mult mai curat cu CSS, și cu margini, 834 00:38:55,840 --> 00:38:58,120 și cu alte astfel de estetică tehnici. 835 00:38:58,120 --> 00:38:59,940 >> Deci, pentru moment, în takeaways sunt acest lucru. 836 00:38:59,940 --> 00:39:02,320 In HTML, avem aceste lucruri numite tag-uri. 837 00:39:02,320 --> 00:39:04,830 In CSS, avem aceste lucruri numit proprietăți. 838 00:39:04,830 --> 00:39:08,700 Putem comingle aceste două limbi, fie folosind atributul style, 839 00:39:08,700 --> 00:39:14,240 sau tag-ul stil, sau cel mai bine încă, factoring l cu totul, așa cum facem noi 840 00:39:14,240 --> 00:39:17,270 în problema set 7. 841 00:39:17,270 --> 00:39:23,820 Întrebări, apoi, cu privire la Bazele conceptuale aici? 842 00:39:23,820 --> 00:39:24,740 >> Audiența: Am o întrebare. 843 00:39:24,740 --> 00:39:25,630 >> SPEAKER 1: Oh, îmi pare rău. 844 00:39:25,630 --> 00:39:28,880 >> Audiența: De ce nu a fost colorat - 845 00:39:28,880 --> 00:39:31,410 >> SPEAKER 1: Oh, în fila Alta? 846 00:39:31,410 --> 00:39:32,232 Acest lucru aici? 847 00:39:32,232 --> 00:39:33,482 >> Audiența: Nu, e ca - 848 00:39:33,482 --> 00:39:35,330 849 00:39:35,330 --> 00:39:39,480 >> SPEAKER 1: Oh, asta pentru ca Am fost neglijent. 850 00:39:39,480 --> 00:39:41,350 Am pus dosarul în locul greșit. 851 00:39:41,350 --> 00:39:47,840 Deci, dacă de fapt am pus aici, și eu chmod pentru acesta, tot + R pentru styles.css, și 852 00:39:47,840 --> 00:39:52,050 reîncărcați acum pagina, acum suntem obține stilizare înapoi. 853 00:39:52,050 --> 00:39:54,530 Si pentru ca dimensiuni de font sunt altfel, nu vedem la fel de mult 854 00:39:54,530 --> 00:39:55,010 spațiu alb. 855 00:39:55,010 --> 00:39:58,240 Noi în loc să vedem ce-i implicit este în schimb. 856 00:39:58,240 --> 00:40:00,050 Bună întrebare. 857 00:40:00,050 --> 00:40:00,846 Da? 858 00:40:00,846 --> 00:40:02,630 >> Audiența: De ce este link-ul tag-ul în interiorul antetul? 859 00:40:02,630 --> 00:40:06,270 >> SPEAKER 1: De ce este de link-uri tag-ul interiorul antet - 860 00:40:06,270 --> 00:40:07,650 Raspunsul scurt, doar pentru că. 861 00:40:07,650 --> 00:40:08,930 Asta este ceea ce a fost hotărât. 862 00:40:08,930 --> 00:40:10,720 Asta în cazul în tag-uri link-ul merge, atunci când aveți ceea ce se numește un 863 00:40:10,720 --> 00:40:13,650 foaie de stil extern. 864 00:40:13,650 --> 00:40:16,430 Alte intrebari? 865 00:40:16,430 --> 00:40:17,770 >> Bine, bine hai sa facem acest lucru. 866 00:40:17,770 --> 00:40:20,500 Avem atât de distractiv în fața noastră astăzi. 867 00:40:20,500 --> 00:40:22,480 Asta e doar începutul suprafata de CSS. 868 00:40:22,480 --> 00:40:23,010 Să facem asta. 869 00:40:23,010 --> 00:40:25,980 Să luăm o pauză de cinci minute aici deoarece, pe e-mail meu, să stea în 870 00:40:25,980 --> 00:40:27,200 acolo până la 02:30-ish azi. 871 00:40:27,200 --> 00:40:28,540 Dar, dacă aveți de a lasă, că e bine. 872 00:40:28,540 --> 00:40:30,380 Dar vom merge înainte după o pauză de cinci minute. 873 00:40:30,380 --> 00:40:35,930 Și vom afla ceva despre PHP, MySQL, și mai mult. 874 00:40:35,930 --> 00:40:44,520 >> În regulă, deci hai să încercăm, acum, pentru a lega un câteva dintre aceste idei împreună și de a face, 875 00:40:44,520 --> 00:40:46,180 spune, motorul nostru de cautare propriu. 876 00:40:46,180 --> 00:40:48,570 Am observat, destul de curios, următor. 877 00:40:48,570 --> 00:40:52,610 Când sunteți la Google.com, esti de obicei, la o adresă URL ca aceasta aici 878 00:40:52,610 --> 00:40:54,870 cu nimic, după dot com. 879 00:40:54,870 --> 00:40:59,760 Dar, dacă am căuta ceva stupid ca pisici, și apăsați Enter, vom ajunge - nu 880 00:40:59,760 --> 00:41:01,300 prost, dar tu știi. 881 00:41:01,300 --> 00:41:05,410 >> OK, deci observa, în partea de sus a paginii, acum, URL-ul este, desigur, sa schimbat. 882 00:41:05,410 --> 00:41:07,190 Și acest lucru nu este nimic nou pentru oricare dintre noi. 883 00:41:07,190 --> 00:41:09,290 Faceți clic pe link-uri si alte chestii se intampla pe web. 884 00:41:09,290 --> 00:41:11,420 Dar ceea ce este interesant aici este următorul. 885 00:41:11,420 --> 00:41:14,500 Există o mulțime de dezordine, dar să ma arunc lucruri pe care eu nu fac 886 00:41:14,500 --> 00:41:16,600 destul de înțeles sau nu arata foarte relevant. 887 00:41:16,600 --> 00:41:18,490 >> Lasă-mă să scap de asta. 888 00:41:18,490 --> 00:41:20,030 Lasă-mă să scap de asta. 889 00:41:20,030 --> 00:41:22,630 Și lasă-mă să scap de toate acestea. 890 00:41:22,630 --> 00:41:28,840 Și acum observați că pisicile sunt în URL-ul, urmat de un q, apoi un egal 891 00:41:28,840 --> 00:41:29,710 semn în fața ei. 892 00:41:29,710 --> 00:41:32,110 Deci, se pare că acest lucru este modul în care modul în care funcționează atunci când este vorba 893 00:41:32,110 --> 00:41:33,360 la intrare și ieșire. 894 00:41:33,360 --> 00:41:37,510 >> Am mult timp vorbit despre cutii negre, nu? 895 00:41:37,510 --> 00:41:41,650 Deci, dacă acest lucru este o funcție implementată aici, ca o cutie neagră, este nevoie de intrare 896 00:41:41,650 --> 00:41:45,290 și produce de ieșire, ei bine, mijloacele prin care vă oferă intrare la un 897 00:41:45,290 --> 00:41:49,270 Site-ul este pe cale, de multe ori, de URL-uri sa. 898 00:41:49,270 --> 00:41:52,850 Ai pus pur și simplu un semn de întrebare și apoi o cheie este egală valoare. 899 00:41:52,850 --> 00:41:56,740 Și poate un ampersand, și apoi o altă cheie este egal cu valoarea, atunci poate 900 00:41:56,740 --> 00:41:58,810 un alt ampersand, cheia este egal cu valoare. 901 00:41:58,810 --> 00:42:03,030 Asta e modul în care trece de la chei și valori, perechi de intrări. 902 00:42:03,030 --> 00:42:07,050 >> Deci, dacă am lovit Intră acum, ceea ce este interesant despre Google este că toate 903 00:42:07,050 --> 00:42:10,420 că dezordine Am șters nu apare pentru a fi strict necesară. 904 00:42:10,420 --> 00:42:15,120 Tot ce am nevoie pentru a trimite la Google este întrebarea marca Q este egală pisici pentru a obține 905 00:42:15,120 --> 00:42:16,160 înapoi unele pisici. 906 00:42:16,160 --> 00:42:20,160 Ei bine, implicarea de care, apoi, este dacă am trage gedit, am început să 907 00:42:20,160 --> 00:42:24,360 Efectuarea motorul meu de căutare propriu aici într-un fișier numit seach0.html. 908 00:42:24,360 --> 00:42:26,750 >> Și lasă-mă să merg mai departe și a șterge o linie mai mult ca tine 909 00:42:26,750 --> 00:42:27,910 nu ar fi trebuit să vadă. 910 00:42:27,910 --> 00:42:31,070 Și acum, lasă-mă să merg în propriul browser-ul meu, astfel încât să nu Google, și du-te la 911 00:42:31,070 --> 00:42:34,900 http://localhost. 912 00:42:34,900 --> 00:42:36,220 Și că va obține în mod. 913 00:42:36,220 --> 00:42:43,240 Așa că am de gând să trebuie să spun la revedere de la că de acum, trece peste asta aici, 914 00:42:43,240 --> 00:42:46,270 Oh, acum am de gând să trebuie să spune la revedere de la acel fișier. 915 00:42:46,270 --> 00:42:51,700 >> Ori de câte ori aveți un fișier denumit index.html index.php sau într-o 916 00:42:51,700 --> 00:42:54,980 director, dacă serverul web este configurat în acest fel, ceea ce veți 917 00:42:54,980 --> 00:42:59,600 a se vedea, în mod implicit, este conținutul pe care fișier, mai degrabă decât o listă de 918 00:42:59,600 --> 00:43:02,330 director, așa cum mi-am dorit aici. 919 00:43:02,330 --> 00:43:03,750 Mai multe despre aceasta în spec.. 920 00:43:03,750 --> 00:43:04,610 Tu nu vezi asta. 921 00:43:04,610 --> 00:43:06,360 >> Deci, aceasta este ceea ce am vrut de fapt. 922 00:43:06,360 --> 00:43:08,810 Dar acum un moment, a existat o fișierul în acest folder numit 923 00:43:08,810 --> 00:43:11,290 index.html și index.php. 924 00:43:11,290 --> 00:43:13,380 Și astfel serverul de web a fost mi arate aceste fișiere. 925 00:43:13,380 --> 00:43:15,900 În schimb, eu vreau acest director enumerând aici. 926 00:43:15,900 --> 00:43:18,340 >> Așa că am de gând să merg în CSS și du-te la search0. 927 00:43:18,340 --> 00:43:21,770 Și eu susțin că acest lucru este de gând să fie începutul propriei mele competitiv 928 00:43:21,770 --> 00:43:22,490 motor de căutare. 929 00:43:22,490 --> 00:43:27,630 Si pentru a face acest lucru, am de gând să meargă în aici, în CSS și deschide cu 930 00:43:27,630 --> 00:43:30,190 gedit, căutare 0. 931 00:43:30,190 --> 00:43:32,280 Dar, din păcate, nu există nu de mult se întâmplă aici. 932 00:43:32,280 --> 00:43:35,690 Tot ce am făcut a fost să folosesc o etichetă de poziție, care se întâmplă să fie numit h1, care 933 00:43:35,690 --> 00:43:38,180 în esență, înseamnă mare și îndrăzneț, și că este. 934 00:43:38,180 --> 00:43:40,810 Dar mijloacele prin care putem furniza informații sunt prin aceste 935 00:43:40,810 --> 00:43:42,180 lucruri numite forme. 936 00:43:42,180 --> 00:43:46,040 >> Așa că lasă-mă să merg mai departe și deschide și închide, preventiv, o etichetă de forma acolo. 937 00:43:46,040 --> 00:43:48,060 Și lasă-mă să merg mai departe și face ceva de genul asta. 938 00:43:48,060 --> 00:43:51,430 Intrare, de tip egal cu textul. 939 00:43:51,430 --> 00:43:56,320 Și apoi să închideți tag-ul în parantezele înșiși. 940 00:43:56,320 --> 00:43:58,800 Nu am nevoie pentru a începe un câmp de text și opri un câmp de text. 941 00:43:58,800 --> 00:44:01,080 Este doar de gând să fie acolo sau nu. 942 00:44:01,080 --> 00:44:06,210 >> Și apoi mai jos, care, hai să facem tip de intrare este egal cu prezenta. 943 00:44:06,210 --> 00:44:06,870 Salvați acest lucru. 944 00:44:06,870 --> 00:44:08,630 Și acum să facem doar o verifică bun-simț rapid. 945 00:44:08,630 --> 00:44:09,820 Să reincarca. 946 00:44:09,820 --> 00:44:10,890 >> OK, deci nu e rău. 947 00:44:10,890 --> 00:44:13,260 Nu e stilul Google, dar e destul de aproape. 948 00:44:13,260 --> 00:44:13,920 Există un câmp de text. 949 00:44:13,920 --> 00:44:17,190 Am posibilitatea să tastați unele lucruri în, apăsați Enter, dar nu se întâmplă nimic încă. 950 00:44:17,190 --> 00:44:21,090 Și asta pentru că nu am specificat o acțiune de acest formular, ca să spunem așa. 951 00:44:21,090 --> 00:44:23,860 Deci, dacă mă întorc la elementul de formular, se pare, și eu știu acest lucru doar 952 00:44:23,860 --> 00:44:27,460 de a avea citiți documentația, că tag-ul formularul are un atribut 953 00:44:27,460 --> 00:44:31,880 numita acțiune care este URL-ul a site-ului la care vă 954 00:44:31,880 --> 00:44:34,790 doriți să trimiteți formularul. 955 00:44:34,790 --> 00:44:37,610 >> Nu cred că într-adevăr avem timp să pun în aplicare întreaga capătul din spate pentru o 956 00:44:37,610 --> 00:44:38,570 motor de căutare de azi. 957 00:44:38,570 --> 00:44:41,900 Deci, noi suntem doar de gând să spun, nu-i așa, du-te la google.com / search. 958 00:44:41,900 --> 00:44:43,450 Și acum să-mi închide citatele mele. 959 00:44:43,450 --> 00:44:46,070 Și permiteți-mi să mai precizeze că metoda de a utiliza se întâmplă 960 00:44:46,070 --> 00:44:47,120 să fie numit obține. 961 00:44:47,120 --> 00:44:50,650 >> Pe scurt, există două moduri, la cel puțin, că puteți trimite informații 962 00:44:50,650 --> 00:44:51,880 de la browser la server. 963 00:44:51,880 --> 00:44:55,340 Unul se obține, și, în scopul de azi, Asta înseamnă că în URL-ul. 964 00:44:55,340 --> 00:44:58,730 Veți vedea exact semne de întrebare, în este egal cu semne, și and-urile care 965 00:44:58,730 --> 00:44:59,780 am văzut mai devreme. 966 00:44:59,780 --> 00:45:02,890 Sau există o alternativă numit mesaj. 967 00:45:02,890 --> 00:45:06,490 De acum, știu că postul este adesea folosit atunci când doriți să încărcați fișiere, cum ar fi 968 00:45:06,490 --> 00:45:09,820 imagini și așa mai departe, sau atunci când doriți să să prezinte informațiile cărții de credit, sau 969 00:45:09,820 --> 00:45:13,810 parole, ceva care nu se face cu adevărat sens, conceptual, sau 970 00:45:13,810 --> 00:45:18,020 securitate înțelept, pentru a ajunge în URL-ul de browser-ul dvs., în cazul în care părinții snooping, 971 00:45:18,020 --> 00:45:21,520 sau colegi de camera, sau oricine are acces pentru calculatorul dvs. ar putea vedea. 972 00:45:21,520 --> 00:45:23,110 >> Deci, haideți să salveze aici. 973 00:45:23,110 --> 00:45:24,480 Și am nevoie pentru a face un alt lucru. 974 00:45:24,480 --> 00:45:27,250 Nu este suficient doar să spune-mi dai un câmp de text. 975 00:45:27,250 --> 00:45:29,850 Trebuie să dau acel câmp o valoare nume. 976 00:45:29,850 --> 00:45:34,500 Deci, lasă-mă să împrumute alegerea Google de nume, Q, și să precizeze că a doua 977 00:45:34,500 --> 00:45:38,150 atribuie Nu-mi pasă cu adevărat despre numele butonul Submit. 978 00:45:38,150 --> 00:45:40,890 Tot ce mă interesează este depunerea ceea ce utilizatorul tastează inch 979 00:45:40,890 --> 00:45:41,940 >> Iar acum acest lucru este un fel de urât. 980 00:45:41,940 --> 00:45:42,820 Se spune doar prezenta. 981 00:45:42,820 --> 00:45:46,350 Se pare, și eu știu acest lucru de la documentație, pot să spun de fapt 982 00:45:46,350 --> 00:45:51,710 valoare este egală cu citat încheiat citatul "CS50 Seach ", citat de aproape. 983 00:45:51,710 --> 00:45:53,030 Atunci hai să reîncărcați din nou. 984 00:45:53,030 --> 00:45:57,020 Așa că am ține lovind Command-R, sau Control-R de pe tastatura mea pentru a reîncărca. 985 00:45:57,020 --> 00:45:58,605 >> Acum avem o mult mai interesant motor de căutare. 986 00:45:58,605 --> 00:46:00,340 Nu prea arata ca Google încă, totuși. 987 00:46:00,340 --> 00:46:04,100 Deci, haideți să mergem mai departe în aici și face o pauză mică linie. 988 00:46:04,100 --> 00:46:06,066 >> OK, deci acum avem Google. 989 00:46:06,066 --> 00:46:08,260 Noi de fapt, aproape avem Google. 990 00:46:08,260 --> 00:46:10,460 Deci, acum ce se va întâmpla? 991 00:46:10,460 --> 00:46:12,220 Am de gând să tastați în ceva plac pisicile. 992 00:46:12,220 --> 00:46:16,570 Și browser-ul se va analiza că forma pe care am definit. 993 00:46:16,570 --> 00:46:19,470 Și se va trimite utilizatorul la acel URL. 994 00:46:19,470 --> 00:46:23,420 Deci, de data aceasta, pentru un motiv oarecare curios, Am primit mai multe informații despre stocuri 995 00:46:23,420 --> 00:46:24,410 decât despre pisici reale. 996 00:46:24,410 --> 00:46:30,580 Dar asta e bine pentru că am observat încă ajuns aici, q este egal cu pisici. 997 00:46:30,580 --> 00:46:35,200 >> Poveste atât de lungă scurt, se pare destul de trivial pentru a obține de intrare de la utilizator. 998 00:46:35,200 --> 00:46:38,190 Și pentru a fi corect, nu e buchete de alte tipuri de câmpuri de formular. 999 00:46:38,190 --> 00:46:41,510 Există casete de selectare, și puțin reciproc butoane radio exclusive, și 1000 00:46:41,510 --> 00:46:42,960 drop jos meniuri, și mai mult. 1001 00:46:42,960 --> 00:46:46,160 Dar toate acestea sunt la fel de relativ ușor de implementat ca 1002 00:46:46,160 --> 00:46:48,040 acest câmp de text a fost. 1003 00:46:48,040 --> 00:46:52,050 Și în cele din urmă, trebuie doar să facă sigur că cineva este de a asculta pe de altă parte 1004 00:46:52,050 --> 00:46:56,490 capăt de linie, în scopul de a obține că informațiilor prelucrate, într-un fel, și 1005 00:46:56,490 --> 00:46:58,440 să ne dea înapoi pisicile noastre. 1006 00:46:58,440 --> 00:47:00,840 >> Să ne uităm la un ușor implice mai mult exemplu. 1007 00:47:00,840 --> 00:47:06,020 Dă-mi drumul în directorul vhost meu, în gazdă locale, publice, și unde am 1008 00:47:06,020 --> 00:47:06,980 pune codul sursă de astăzi. 1009 00:47:06,980 --> 00:47:09,800 Toate acestea vor fi în curs de site-ul pentru tine să se joace cu. 1010 00:47:09,800 --> 00:47:15,420 Și dacă mă duc în froshims, lasă-mă să deschid la acest fișier acum, froshim0.php. 1011 00:47:15,420 --> 00:47:18,460 Asta e un pic mai detaliată, așa nu vom scrie asta de la zero. 1012 00:47:18,460 --> 00:47:21,970 Dar doar observa acum câteva oarecum caracteristici familiare. 1013 00:47:21,970 --> 00:47:24,550 >> Unul, tag-ul formă, acțiune diferit. 1014 00:47:24,550 --> 00:47:25,670 Nu este un URL complet. 1015 00:47:25,670 --> 00:47:29,930 Acum, e aparent de fișier numit register0.php pentru că, într-o clipă, 1016 00:47:29,930 --> 00:47:32,660 Am de gând să mă învețe un pic ceva despre PHP, o programare 1017 00:47:32,660 --> 00:47:37,360 limbă, deoarece PHP poate fi folosit pentru a punerea în aplicare a ceea ce Google implementate ca 1018 00:47:37,360 --> 00:47:39,650 capătul din spate a motoarelor de căutare. 1019 00:47:39,650 --> 00:47:42,890 >> Google, în realitate, probabil folosește unele Python, unele C + +, și 1020 00:47:42,890 --> 00:47:44,230 buchete de alte limbi. 1021 00:47:44,230 --> 00:47:48,230 Dar am putea implementa cu siguranță căutare Rezultatele folosind PHP dacă ne-am dorit. 1022 00:47:48,230 --> 00:47:49,610 Dar pentru acum, vom păstrați-l simplu. 1023 00:47:49,610 --> 00:47:53,320 Și aceasta este de fapt o reminiscență a unui din alte primele site-uri I 1024 00:47:53,320 --> 00:47:54,490 a făcut cu ani în urmă. 1025 00:47:54,490 --> 00:47:58,160 >> Înapoi în ziua mea, te-ai înregistrat pentru sport intramural ca un boboc de 1026 00:47:58,160 --> 00:48:00,880 completarea o bucată de hârtie, mersul pe jos prin curte, și o scădere în 1027 00:48:00,880 --> 00:48:04,890 cutia poștală a unui Proctor în Wigglesworth, și că a fost modul în care 1028 00:48:04,890 --> 00:48:05,460 înregistrate. 1029 00:48:05,460 --> 00:48:09,650 Și astfel proiectul meu la scurt timp după CS50, a fost de a pune că, ceea ce face perfect 1030 00:48:09,650 --> 00:48:13,460 sens, pe web, care nu a fost ca și în vogă atunci cum este acum. 1031 00:48:13,460 --> 00:48:17,510 Dar tot ce am avut de făcut a fost crearea, în esență, un formular HTML. 1032 00:48:17,510 --> 00:48:19,640 >> Și că forma sa uitat cam așa. 1033 00:48:19,640 --> 00:48:22,480 Am avut o intrare pentru Numele bobocilor. 1034 00:48:22,480 --> 00:48:27,780 Am avut o casetă de selectare pentru sau sau nu au vrut să fie căpitan, ceea ce 1035 00:48:27,780 --> 00:48:30,400 sex era, și ceea ce a fost dormitorul lor. 1036 00:48:30,400 --> 00:48:33,370 Și apoi m-am greu codificate în lucrurile ca Apley Curte, și Canaday, 1037 00:48:33,370 --> 00:48:34,880 Griuri, și așa mai departe. 1038 00:48:34,880 --> 00:48:36,300 >> Deci, din nou, tag-uri noi. 1039 00:48:36,300 --> 00:48:39,820 Nu am văzut aceste înainte, noi atribute, dar destul de accesibil. 1040 00:48:39,820 --> 00:48:42,360 Odată ce ați vedea un exemplu, puteți fel a împrumuta ideea și să facă o picătură 1041 00:48:42,360 --> 00:48:43,820 Meniul pentru mai nimic în jos. 1042 00:48:43,820 --> 00:48:46,350 Dar ceea ce este esențial este că fiecare dintre aceste lucruri au nume. 1043 00:48:46,350 --> 00:48:49,720 Și în partea de jos a acestui formular, există un buton de submit a cărui etichetă, 1044 00:48:49,720 --> 00:48:51,510 sau o valoare, este de registru. 1045 00:48:51,510 --> 00:48:52,670 >> Deci să mergem la această pagină. 1046 00:48:52,670 --> 00:48:55,050 Lasă-mă să mă întorc în listare director. 1047 00:48:55,050 --> 00:48:59,410 Lasă-mă să merg în froshims, și du-te la froshim0.php. 1048 00:48:59,410 --> 00:49:01,150 Deci, este hidos, pentru a fi corect. 1049 00:49:01,150 --> 00:49:03,950 Așa că am putut stiliza cu siguranta acest cu unele CSS, am putea face ceva 1050 00:49:03,950 --> 00:49:06,890 grafica, poate adăuga unele culori, și să facă acest lucru mai frumoasa. 1051 00:49:06,890 --> 00:49:10,530 Dar funcțional, aș spune că acest este, de fapt destul de complet. 1052 00:49:10,530 --> 00:49:15,190 >> Din păcate, când am umple asta, David, căpitane, Femeie, vom alege, 1053 00:49:15,190 --> 00:49:20,510 să spunem Matthews, Inregistrare, tot ceea ce se întâmplă este aceasta. 1054 00:49:20,510 --> 00:49:21,910 Dar observa o pereche de takeaways. 1055 00:49:21,910 --> 00:49:27,130 O, ce dosar a revenit celor rezultate, aparent? 1056 00:49:27,130 --> 00:49:29,470 Deci, este, într-adevăr, register0.php. 1057 00:49:29,470 --> 00:49:34,570 Deci, faptul că am văzut că acțiunea Valoarea acum un moment pentru register0, acest 1058 00:49:34,570 --> 00:49:37,500 confirmă că am ajuns într-adevăr până la acel fișier special. 1059 00:49:37,500 --> 00:49:39,040 >> Acum, acest lucru este doar un text urât. 1060 00:49:39,040 --> 00:49:42,810 Dar observa că acest text este vine de la gazdă locale, 1061 00:49:42,810 --> 00:49:44,170 care este de la aparat. 1062 00:49:44,170 --> 00:49:46,350 Gândiți-vă la aparat acum ca doar un server de web care ar putea fi în 1063 00:49:46,350 --> 00:49:46,910 Science Center. 1064 00:49:46,910 --> 00:49:48,060 Ar putea fi pe real web. 1065 00:49:48,060 --> 00:49:49,850 Deci, este accesibil publicului. 1066 00:49:49,850 --> 00:49:55,480 >> Deci, în mod clar, există o cale de a trece formează intrări de câmp la un server 1067 00:49:55,480 --> 00:49:56,840 astfel încât să poată face ceva cu ele. 1068 00:49:56,840 --> 00:49:59,020 Din păcate, register0 este destul de stupid. 1069 00:49:59,020 --> 00:50:01,870 Tot ce face este să imprimați o matrice care arata ca aceasta. 1070 00:50:01,870 --> 00:50:04,790 Și nu este o matrice în sensul în care o știm. 1071 00:50:04,790 --> 00:50:08,760 Se pare că PHP, și o mulțime de limbi, au nu numai numeric 1072 00:50:08,760 --> 00:50:12,350 tablouri indexate a căror indice este zero, atunci unul, apoi doi, apoi punct, 1073 00:50:12,350 --> 00:50:13,780 dot, dot, n minus 1. 1074 00:50:13,780 --> 00:50:16,400 >> Aceasta este ceea ce se numește un tablou asociativ. 1075 00:50:16,400 --> 00:50:21,150 Un tablou asociativ este unul în care puteți stoca perechi de valori-cheie în care 1076 00:50:21,150 --> 00:50:23,160 cheia nu este neapărat un număr. 1077 00:50:23,160 --> 00:50:25,580 Ar putea fi de fapt un șir, un cuvânt. 1078 00:50:25,580 --> 00:50:28,230 Și astfel încât aceasta poate fi pusă în aplicare, sub capota, se pare, 1079 00:50:28,230 --> 00:50:31,896 folosind o structura de date cunoscut ca un? 1080 00:50:31,896 --> 00:50:33,600 Credeam că ceva dramatic era pe cale să se întâmple - 1081 00:50:33,600 --> 00:50:34,840 tabela de dispersie. 1082 00:50:34,840 --> 00:50:38,955 >> Deci, un tabel hash, amintesc, cei care a făcut-o pentru setul P 6, sau chiar amintesc 1083 00:50:38,955 --> 00:50:44,110 aceasta, cel puțin, chiar dacă ai făcut o încercare, un tabelul de dispersie, în utilizare noastre, a fost folosit pentru a 1084 00:50:44,110 --> 00:50:45,090 stoca doar cuvinte. 1085 00:50:45,090 --> 00:50:47,980 Dar, de fapt, ai fost stocarea chei și valori. 1086 00:50:47,980 --> 00:50:51,940 Dacă ați implementat un tabel hash pentru P set 6 dicționar, cheile au fost 1087 00:50:51,940 --> 00:50:56,890 Cuvintele în sine, și valorile au fost efectiv adevărat sau fals. 1088 00:50:56,890 --> 00:51:00,190 Da, aici, sau implicit, Nu, nu aici. 1089 00:51:00,190 --> 00:51:02,140 >> Ei bine, putem generaliza ideea asta. 1090 00:51:02,140 --> 00:51:06,230 Și am putea folosi de date foarte similare Structura a stoca nu șirul 1091 00:51:06,230 --> 00:51:10,180 se singur în tabel hash, dar să presupunem că în fiecare dintre hash dvs. 1092 00:51:10,180 --> 00:51:11,130 noduri tabelului. 1093 00:51:11,130 --> 00:51:14,210 Și ai putea face acest lucru chiar într-o încercare mai degrabă decât au doar o bool. 1094 00:51:14,210 --> 00:51:15,350 Ai putea avea altceva. 1095 00:51:15,350 --> 00:51:19,590 Ce se întâmplă dacă cheia nu a fost Maxwell, pentru exemplu, dar citat citatul "nume", sau 1096 00:51:19,590 --> 00:51:22,900 cita încheiat citatul "căpitan". Și interioară structura de date C, ai pus-o 1097 00:51:22,900 --> 00:51:26,170 valoare, nu doar un Boolean, dar de valoare cum ar fi citat citatul "David", sau 1098 00:51:26,170 --> 00:51:28,690 "M" sau "Matthews," și așa mai departe. 1099 00:51:28,690 --> 00:51:33,170 >> Deci, aceste structuri aceleași date am folosit se pare că există în alte limbi. 1100 00:51:33,170 --> 00:51:37,650 Și aș spune că sunt de fapt mult, mult mai simplu de a accesa aici. 1101 00:51:37,650 --> 00:51:40,300 Să ne, de fapt, să aruncăm o privire acum la un astfel de sintaxă. 1102 00:51:40,300 --> 00:51:43,120 >> Am de gând să merg într-un director PHP. 1103 00:51:43,120 --> 00:51:48,390 Și am de gând să deschidă o mai bună Versiunea de salut-0 de la înainte. 1104 00:51:48,390 --> 00:51:50,270 Observați că tot ce am făcut a fost adăuga unele comentarii. 1105 00:51:50,270 --> 00:51:52,530 Deci, putem scăpa de faptul că distragere a atenției. 1106 00:51:52,530 --> 00:51:57,610 >> Și acest program are, într-adevăr imprimă salut pentru că am specificat între 1107 00:51:57,610 --> 00:52:01,420 tag-uri care doresc să execute cod. 1108 00:52:01,420 --> 00:52:03,380 Acum, vom vedea într-o clipă de ce acest lucru este util. 1109 00:52:03,380 --> 00:52:05,630 Dar să ne deschidă un alt exemplu aici. 1110 00:52:05,630 --> 00:52:10,430 Lasă-mă să merg mai departe și să se deschidă spune, gedit condițiilor unul. 1111 00:52:10,430 --> 00:52:12,970 >> Acest lucru este cale de întoarcere în timp acum. 1112 00:52:12,970 --> 00:52:16,320 Dar, acum câteva săptămâni, cred, într-o saptamana sau două săptămâni, am avut un exemplu numit 1113 00:52:16,320 --> 00:52:18,470 conditions1.c. 1114 00:52:18,470 --> 00:52:22,050 Și am decis să-l reimplementa în PHP, doar la fel de subliniat că 1115 00:52:22,050 --> 00:52:26,500 PHP, sintactic, este aproape identic a C. Acesta nu este un salt imens 1116 00:52:26,500 --> 00:52:27,840 de săptămâna trecută la aceasta. 1117 00:52:27,840 --> 00:52:31,230 >> Observați în partea de sus a acestui program, care începe, ca și mai înainte, cu unele 1118 00:52:31,230 --> 00:52:34,260 comentarii, pe care voi scăpa ca o distragere a atenției. 1119 00:52:34,260 --> 00:52:37,410 Observați că eu sunt în PHP Modul în acest dosar. 1120 00:52:37,410 --> 00:52:40,160 Deci acest cod, vom vedea, va fi executat. 1121 00:52:40,160 --> 00:52:42,670 Observați că există readline, care este probabil 1122 00:52:42,670 --> 00:52:46,230 analog în PHP de getstring. 1123 00:52:46,230 --> 00:52:47,390 Observați că este un pic diferit. 1124 00:52:47,390 --> 00:52:51,410 Trebuie sa specificati de fapt o solicitare de Funcția numit linia de citit, și că este 1125 00:52:51,410 --> 00:52:52,180 ceea ce vede utilizatorul. 1126 00:52:52,180 --> 00:52:53,520 Deci, nu trebuie să printf manual. 1127 00:52:53,520 --> 00:52:54,860 Dar asta nu e mare lucru. 1128 00:52:54,860 --> 00:52:59,150 Am de gând pentru a stoca, în interiorul de $ n, returna valoarea de acest lucru, astfel încât indiferent de 1129 00:52:59,150 --> 00:53:00,490 Tipuri de utilizatori în este int lor. 1130 00:53:00,490 --> 00:53:01,660 Și aici este o altă curiozitate. 1131 00:53:01,660 --> 00:53:05,810 Se pare, în PHP, orice variabilă doar trebuie să fi precedat 1132 00:53:05,810 --> 00:53:06,970 cu un semn dolar. 1133 00:53:06,970 --> 00:53:08,110 Este un pic enervant. 1134 00:53:08,110 --> 00:53:10,870 Dar observa ceea ce nu am făcut în PHP. 1135 00:53:10,870 --> 00:53:13,980 Ceea ce lipsește de la mâna stângă partea de semnul egal? 1136 00:53:13,980 --> 00:53:15,430 >> Nici o mentiune de tip. 1137 00:53:15,430 --> 00:53:19,400 Deci, acest lucru este diferit de C. Pentru o mai bună sau pentru mai rău, PHP este un vag 1138 00:53:19,400 --> 00:53:20,550 limba tastat. 1139 00:53:20,550 --> 00:53:22,010 Ea are numere. 1140 00:53:22,010 --> 00:53:23,240 Ea are siruri de caractere. 1141 00:53:23,240 --> 00:53:24,015 Ea are Booleans. 1142 00:53:24,015 --> 00:53:26,220 Și ea are câteva alte tipuri de date. 1143 00:53:26,220 --> 00:53:30,570 Dar tu, programator, de obicei, Nu trebuie să aibă grijă de ei. 1144 00:53:30,570 --> 00:53:34,010 Cu susul în acest sens este faptul că face un pic mai ușor de programat. 1145 00:53:34,010 --> 00:53:35,380 Poți să te gândești un pic mai puțin. 1146 00:53:35,380 --> 00:53:39,840 Dezavantajul este, de asemenea, vă deschide până la potențiale bug-uri, dacă accidental 1147 00:53:39,840 --> 00:53:43,080 trata un număr ca un șir de caractere, un șir ca un număr, potențial, dar chiar 1148 00:53:43,080 --> 00:53:46,150 apoi, PHP, și o mulțime de limbi, sunt destul de tolerant. 1149 00:53:46,150 --> 00:53:49,050 Ei vor folosi ceea ce se numește turnare implicit. 1150 00:53:49,050 --> 00:53:55,220 Și dacă încercați să utilizați n în contextul de o situație numeric, se va 1151 00:53:55,220 --> 00:53:58,040 converti ce aici va fi o șir, pentru că în cazul în care utilizatorul tastează 1152 00:53:58,040 --> 00:54:01,570 ceva în, și veți obține rezultatul, Ca și în cazul readline, sau se string, 1153 00:54:01,570 --> 00:54:02,910 care va returna un șir. 1154 00:54:02,910 --> 00:54:07,360 >> Dar observați, câteva linii mai târziu, am verifica dacă n este mai mare decât zero. 1155 00:54:07,360 --> 00:54:13,370 Deci, PHP este de gând să arunce implicit meu "String" 123, sau orice utilizator 1156 00:54:13,370 --> 00:54:14,860 tipurile din, într-un int. 1157 00:54:14,860 --> 00:54:18,730 Deci, pe scurt, lucrurile pur și simplu funcționează mult mai intuitiv. 1158 00:54:18,730 --> 00:54:23,410 Așa că am acum începe să se relaxeze câteva dintre lucruri pe care le-am făcut în trecut. 1159 00:54:23,410 --> 00:54:24,780 >> O mulțime de aceste lucruri este la fel, deși. 1160 00:54:24,780 --> 00:54:26,340 Încă au egal egal. 1161 00:54:26,340 --> 00:54:30,350 Ca o PHP deoparte de asemenea, a este egal cu egal este egal, dar mai mult pe care, probabil, în 1162 00:54:30,350 --> 00:54:30,850 viitor. 1163 00:54:30,850 --> 00:54:31,150 Asta a fost o. 1164 00:54:31,150 --> 00:54:35,660 Typo dar doi este egal cu semne înseamnă același lucru lucru ca și mai înainte, pentru comparație. 1165 00:54:35,660 --> 00:54:37,060 înseamnă printf același lucru ca și mai înainte. 1166 00:54:37,060 --> 00:54:39,160 Backslash n înseamnă același lucru lucru ca înainte. 1167 00:54:39,160 --> 00:54:40,390 >> Deci, cum pot rula acest program? 1168 00:54:40,390 --> 00:54:44,400 Ei bine, la fel ca înainte, dacă fac PHP, conditions1.php, și de tip în 1169 00:54:44,400 --> 00:54:46,560 un număr ca 123. 1170 00:54:46,560 --> 00:54:47,720 Asta e un număr pozitiv. 1171 00:54:47,720 --> 00:54:49,510 Dacă am tastați 0, aleg 0. 1172 00:54:49,510 --> 00:54:53,700 Și dacă tastați în 123 negativ, primesc susțină un număr negativ, care este doar 1173 00:54:53,700 --> 00:54:59,050 să spunem, sintactic, PHP este super, super-similare. 1174 00:54:59,050 --> 00:55:03,250 >> Deci, de ce este acest lucru acum util într-un context de web? 1175 00:55:03,250 --> 00:55:06,710 Ei bine, hai să ne întoarcem la acest froshims de exemplu, care a analizat, 1176 00:55:06,710 --> 00:55:08,600 din nou, ca aceasta aici. 1177 00:55:08,600 --> 00:55:11,580 Și să trage de fapt, pagina de web din nou, care arata ca aceasta. 1178 00:55:11,580 --> 00:55:14,930 Ce putem face cu datele care au depus? 1179 00:55:14,930 --> 00:55:18,770 >> Ei bine, lasă-mă să deschid o nouă versiune a acestui. 1180 00:55:18,770 --> 00:55:20,920 Și veți vedea că problema caietul de sarcini seturi voi merge 1181 00:55:20,920 --> 00:55:22,850 prin câteva dintre acestea. 1182 00:55:22,850 --> 00:55:29,610 Mai degrabă decât a începe de la zero, să ne uităm la froshims3, 1183 00:55:29,610 --> 00:55:31,410 care face un pic mai mult. 1184 00:55:31,410 --> 00:55:34,780 >> Observați în primul rând, de fapt, să deschideți la ceea ce a fost 0, astfel încât veți vedea 1185 00:55:34,780 --> 00:55:37,170 Ce registru a fost 0. 1186 00:55:37,170 --> 00:55:40,040 Observați ce registru 0 făcut. 1187 00:55:40,040 --> 00:55:41,730 O, am comentarii de la partea de sus. 1188 00:55:41,730 --> 00:55:43,900 Ștergeți aceste și să se concentreze doar pe aceasta. 1189 00:55:43,900 --> 00:55:48,730 Cele mai multe dintre conținutul register0.php sunt, în mod evident, în ce limbă? 1190 00:55:48,730 --> 00:55:49,980 Doar PHP prime. 1191 00:55:49,980 --> 00:55:53,430 >> Deci notificare, acest fisier nu pornește cu, în acest moment, suportul deschis, 1192 00:55:53,430 --> 00:55:54,970 semn de întrebare, PHP. 1193 00:55:54,970 --> 00:55:59,800 PHP vă permite să amestece Codul PHP cu tag-uri HTML. 1194 00:55:59,800 --> 00:56:04,130 Dar am făcut-o aici în interiorul a paginii pe aici. 1195 00:56:04,130 --> 00:56:08,180 >> Acum, din nou, ai ști numai acest din au uitat la manual. print_r, 1196 00:56:08,180 --> 00:56:13,410 se pare, este print_recursive. _recursive Și aceasta este doar o la îndemână 1197 00:56:13,410 --> 00:56:16,780 Funcția de utilitate care doar imprimă, recursiv, indiferent ce-l mana. 1198 00:56:16,780 --> 00:56:18,760 Dacă vă predați-l o matrice, va imprima o matrice. 1199 00:56:18,760 --> 00:56:20,180 Dacă vă predați-l un număr, va imprima un număr. 1200 00:56:20,180 --> 00:56:21,570 Dă-mi un șir, acesta va imprima un șir. 1201 00:56:21,570 --> 00:56:24,500 Dacă vă predați-l unui tabel hash, ea va imprima un tabel hash. 1202 00:56:24,500 --> 00:56:26,730 Nu trebuie să scrie toate de codul tine. 1203 00:56:26,730 --> 00:56:29,490 >> Acum observă că eu intru Mod de PHP pe aici. 1204 00:56:29,490 --> 00:56:32,070 Sunt ieșirea din modul PHP pe aici. 1205 00:56:32,070 --> 00:56:35,950 Deci, atunci când serverul de web citește acest fișier de sus în jos, la stânga la dreapta, deoarece 1206 00:56:35,950 --> 00:56:40,750 se termină într-un fișier numit. PHP, ceea ce nu este în interiorul de tag-uri PHP este 1207 00:56:40,750 --> 00:56:42,820 doar de gând să fie scuipat afară, cum ar fi HTML crud. 1208 00:56:42,820 --> 00:56:43,630 Nu e mare lucru. 1209 00:56:43,630 --> 00:56:49,280 Dar, de îndată ce observă serverul de web acest lucru, o să spun, eu nu ar trebui să 1210 00:56:49,280 --> 00:56:51,850 scuipă, literalmente, print_r post. 1211 00:56:51,850 --> 00:56:54,910 Eu ar trebui să execute următoarele linie de cod. 1212 00:56:54,910 --> 00:56:59,850 >> Deci, ultima întrebare, atunci, de acest fișier este, ei bine, ce naiba e asta? 1213 00:56:59,850 --> 00:57:00,530 Ia-o presupunere. 1214 00:57:00,530 --> 00:57:04,230 Ce este de $ _POST, probabil? 1215 00:57:04,230 --> 00:57:07,070 >> Audiența: [inaudibil] 1216 00:57:07,070 --> 00:57:08,830 >> SPEAKER 1: Da, datele postate. 1217 00:57:08,830 --> 00:57:11,350 Amintiți-vă, să derulați înapoi în timp pentru doar o clipă. 1218 00:57:11,350 --> 00:57:13,165 froshim0, din nou, arata ca aceasta. 1219 00:57:13,165 --> 00:57:15,640 O majoritate super-a este doar HTML. 1220 00:57:15,640 --> 00:57:18,410 Din nou, unele etichete nu au văzut încă, sau cu care 1221 00:57:18,410 --> 00:57:19,360 vă sunt deja familiare. 1222 00:57:19,360 --> 00:57:21,990 Dar cel mai interesant lucru a fost aceasta. 1223 00:57:21,990 --> 00:57:27,270 Această linie unul este ceea ce leagă cu adevărat l la dosarul nostru register0.php. 1224 00:57:27,270 --> 00:57:29,200 Am depunerea prin poștă metodă. 1225 00:57:29,200 --> 00:57:33,130 Și înseamnă că parametrii tipurile de utilizatori din nu sunt 1226 00:57:33,130 --> 00:57:35,150 O să ajung unde. 1227 00:57:35,150 --> 00:57:36,175 >> Ei nu vor să arată în adresa URL. 1228 00:57:36,175 --> 00:57:39,020 Ele sunt încă de gând să fie trimise de la client, din browser, pentru a 1229 00:57:39,020 --> 00:57:42,080 server, ci doar prin intermediul unor alte Mecanismul că vom renunța la mâinile noastre 1230 00:57:42,080 --> 00:57:44,330 la pentru ziua de azi, dar nu este în URL-ul. 1231 00:57:44,330 --> 00:57:47,630 Dar observa relația acum cu mesaj, care, prin convenție, este 1232 00:57:47,630 --> 00:57:49,160 minuscule aici. 1233 00:57:49,160 --> 00:57:54,090 >> Dar dacă am deschide register0.php, Sunt aparent imprimarea aceasta. 1234 00:57:54,090 --> 00:57:56,450 Deci, aceasta este un fel de ciudat convenție de denumire. 1235 00:57:56,450 --> 00:58:01,430 Dar ceea ce e frumos în PHP este că, atunci când folosind PHP într-un context web, nu la un 1236 00:58:01,430 --> 00:58:04,480 linie de comandă, cum am făcut acum o clipă, atunci când de fapt acesta este utilizat într-un web 1237 00:58:04,480 --> 00:58:10,580 pagină, într-un director vhost ca noi, automat va umple PHP această 1238 00:58:10,580 --> 00:58:15,560 lucru, care este un tablou asociativ, ca să spunem așa, un tabel hash, cu 1239 00:58:15,560 --> 00:58:17,290 tot ceea ce utilizatorul tastat inch 1240 00:58:17,290 --> 00:58:22,000 >> Pe scurt $ _POST, în toate capace este un variabilă globală care PHP doar 1241 00:58:22,000 --> 00:58:25,050 magic creează pentru tine atunci când folosind PHP într-un context web. 1242 00:58:25,050 --> 00:58:29,160 Și se pune în interiorul tot de nume de parametri în forma în care 1243 00:58:29,160 --> 00:58:33,200 a fost prezentat în acest dosar și toate de valorile pe care utilizatorul tastat inch 1244 00:58:33,200 --> 00:58:37,790 Deci, se întinde la tine ceea ce utilizatorul tastat în la această formă. 1245 00:58:37,790 --> 00:58:42,210 >> Deci, înainte, avem ieșire foarte prost a doar vedea acest lucru pentru că tot ce am făcut 1246 00:58:42,210 --> 00:58:44,400 a fost recursiv imprima această matrice. 1247 00:58:44,400 --> 00:58:46,060 Cheia este numele, valoarea este David. 1248 00:58:46,060 --> 00:58:46,980 Cheia este căpitanul. 1249 00:58:46,980 --> 00:58:47,970 Valoarea este pornit. 1250 00:58:47,970 --> 00:58:52,300 Și săgeată dublă și unghiul suport acolo, aceasta este doar arbitrar. 1251 00:58:52,300 --> 00:58:53,270 Acest lucru nu este cod. 1252 00:58:53,270 --> 00:58:57,690 Aceasta este doar modul de PHP de care vă arată ce valoarea unora cheie este. 1253 00:58:57,690 --> 00:59:03,000 >> Dar acum, permiteți-mi să propun ca, în froshIMs3, este aproape identic 1254 00:59:03,000 --> 00:59:04,950 cu excepția faptului că se supune acest fișier. 1255 00:59:04,950 --> 00:59:08,570 Și, din nou, vom fel de doar privire la aceasta, doar pentru a vedea unele 1256 00:59:08,570 --> 00:59:12,040 sintaxa, dar observați ce acest fișier nu. 1257 00:59:12,040 --> 00:59:14,930 Ia-o ghici doar pe liniile de Codul, care, probabil, nu arata ca 1258 00:59:14,930 --> 00:59:17,410 Greacă, într-o oarecare măsură, se pare că face. 1259 00:59:17,410 --> 00:59:20,580 1260 00:59:20,580 --> 00:59:23,110 >> Acest fișier este oarecum legată la e-mail, e-mail. 1261 00:59:23,110 --> 00:59:24,770 Deci, ce este acest program faci? 1262 00:59:24,770 --> 00:59:28,740 În această versiune, dacă ar fi să de fapt, completați acest formular - și lasă-mă să merg la 1263 00:59:28,740 --> 00:59:30,760 froshIMs3, nu froshIMs0 - 1264 00:59:30,760 --> 00:59:33,280 1265 00:59:33,280 --> 00:59:34,540 forma arată la fel. 1266 00:59:34,540 --> 00:59:37,980 David, căpitanul, de sex masculin, cămin, Matthews. 1267 00:59:37,980 --> 00:59:42,980 Dar dacă am prezenta acest, acest fisier este merge la register3.php. 1268 00:59:42,980 --> 00:59:46,330 >> Și eu susțin, uitandu-se la e codul sursă, se va 1269 00:59:46,330 --> 00:59:47,650 implica într-un fel de e-mail. 1270 00:59:47,650 --> 00:59:49,620 Lasă-mă să merg mai departe și deschide acest într-o fereastră mai mare, așa că 1271 00:59:49,620 --> 00:59:51,030 se poate vedea mai curat. 1272 00:59:51,030 --> 00:59:57,220 Suntem în vhosts, gazdă locale, publice, froshims. 1273 00:59:57,220 --> 00:59:58,680 Am de gând să deschidă un alt Programul, doar așa ne 1274 00:59:58,680 --> 01:00:00,160 Puteți vedea mai multe la o dată. 1275 01:00:00,160 --> 01:00:03,100 >> Deci, acum, aici, observa câteva lucruri. 1276 01:00:03,100 --> 01:00:06,530 În partea de sus a fișierului este deschis suport, semn de întrebare, PHP. 1277 01:00:06,530 --> 01:00:08,920 Apoi, există o grămadă de comentarii, pe care le putem ignora, este 1278 01:00:08,920 --> 01:00:10,450 neinteresante pentru acum. 1279 01:00:10,450 --> 01:00:11,300 >> Acum, nu e asta. 1280 01:00:11,300 --> 01:00:14,200 Se pare PHP are o mulțime de cod numit nevoie. 1281 01:00:14,200 --> 01:00:19,110 Este foarte similare în spirit lui C includ, hash includ, pe care 1282 01:00:19,110 --> 01:00:21,980 apucă esență conținutul unele alt fișier și doar le plops aici, 1283 01:00:21,980 --> 01:00:22,930 astfel încât să le puteți folosi. 1284 01:00:22,930 --> 01:00:27,060 În acest caz, aparatul are, pre-instalat, o bibliotecă, gratuit și 1285 01:00:27,060 --> 01:00:29,900 bibliotecă open source numit PHP mailer care oricine o poate 1286 01:00:29,900 --> 01:00:30,770 descărca de pe internet. 1287 01:00:30,770 --> 01:00:32,000 Tocmai am făcut-o pentru tine. 1288 01:00:32,000 --> 01:00:36,130 Iar acest lucru înseamnă că acum e-mail functionalitate la dispoziția mea. 1289 01:00:36,130 --> 01:00:38,170 >> Acum, observa câteva lucruri. 1290 01:00:38,170 --> 01:00:41,120 Am de gând să valideze depunerea formularului. 1291 01:00:41,120 --> 01:00:45,980 Se pare PHP, unul, are exclamare puncte pentru care nu operatorului, la fel ca 1292 01:00:45,980 --> 01:00:49,810 C. Dar PHP are de asemenea o funcție de numit gol. 1293 01:00:49,810 --> 01:00:53,920 >> Gol doar returneaza true daca valoarea de lucru pe care o predau la 1294 01:00:53,920 --> 01:00:57,190 paranteze este gol, la fel ca Utilizatorul nu tastați nimic inch 1295 01:00:57,190 --> 01:01:02,680 Deci, acest lucru este de a spune, și observați sintaxa, foarte amintește de C, în cazul în care 1296 01:01:02,680 --> 01:01:07,730 cheie nume, astfel încât câmpul nume în formă, care a fost depusă prin poștă, cu 1297 01:01:07,730 --> 01:01:13,010 utilizatorului, nu este de a goli, și lor gen nu este gol în forma 1298 01:01:13,010 --> 01:01:15,980 bine, iar dormitorul lor nu este gol - 1299 01:01:15,980 --> 01:01:19,980 dar observa Nu-mi pasă de căpitan, atunci ce vom face? 1300 01:01:19,980 --> 01:01:21,990 >> Am de gând să execute această linie de cod. 1301 01:01:21,990 --> 01:01:24,100 Și vă puteți gândi la acest tip de ca malloc, dar e un pic 1302 01:01:24,100 --> 01:01:24,800 crescator decât atât. 1303 01:01:24,800 --> 01:01:29,200 Dar pentru moment acest lucru îmi dă o deosebită struct de tip PHP Mailer. 1304 01:01:29,200 --> 01:01:31,410 Dar ignora cuvântul cheie nou pentru ziua de azi. 1305 01:01:31,410 --> 01:01:35,670 >> Acum am de gând pentru a apela o funcție numită IsSMTP, care spune, utilizați SMTP. 1306 01:01:35,670 --> 01:01:39,380 Acesta este portul 25, la fel ca video săptămâna trecută, atunci când lucru a fost aruncat 1307 01:01:39,380 --> 01:01:40,710 e-mailuri în firewall. 1308 01:01:40,710 --> 01:01:42,440 Portul 25 este SMTP. 1309 01:01:42,440 --> 01:01:44,410 SMTP înseamnă folosi serverul de mail. 1310 01:01:44,410 --> 01:01:46,215 Pe care o putem folosi de la Harvard SMTP.fas.harvard.edu. 1311 01:01:46,215 --> 01:01:48,850 1312 01:01:48,850 --> 01:01:51,590 >> Putem stabili la adresa pentru a fi John Harvard. 1313 01:01:51,590 --> 01:01:55,090 Dacă aș derula în jos în continuare, pot stabili adresa destinatarului, doar 1314 01:01:55,090 --> 01:01:56,840 arbitrar, să fie John Harvard, precum. 1315 01:01:56,840 --> 01:01:59,210 Deci, el va fi email-uri însuși. 1316 01:01:59,210 --> 01:02:01,600 >> Acum pot seta subiectul să fie înregistrare. 1317 01:02:01,600 --> 01:02:03,700 Și eu pot seta corp de e-mail, după cum urmează. 1318 01:02:03,700 --> 01:02:06,500 Această linie arată un pic mai criptic, dar asta e doar pentru că există o mulțime 1319 01:02:06,500 --> 01:02:07,450 de informații în ea. 1320 01:02:07,450 --> 01:02:10,670 Unul, există un operator de punct. 1321 01:02:10,670 --> 01:02:14,510 Cineva trebuie să știe deja ce operatorul punct nu. 1322 01:02:14,510 --> 01:02:15,436 Este concatenare. 1323 01:02:15,436 --> 01:02:19,240 Deci, dacă doriți să luați un șir în PHP, și-l adăugați, sau se adauge, să 1324 01:02:19,240 --> 01:02:23,500 un alt șir în PHP, vă mulțumesc lui Dumnezeu Nu trebuie să utilizeze strcopy și malloc, 1325 01:02:23,500 --> 01:02:25,490 și tot de asta. 1326 01:02:25,490 --> 01:02:28,765 >> Dacă doriți să înlănțui două șiruri, care îi pasă de memorie. 1327 01:02:28,765 --> 01:02:30,850 Să figura PHP asta pentru tine. 1328 01:02:30,850 --> 01:02:35,200 Ce PHP va face cu operatorul punct aici se face doar o propoziție mare de 1329 01:02:35,200 --> 01:02:37,900 din această linie, această linie, această linie, această linie. 1330 01:02:37,900 --> 01:02:40,460 Și acum notificare, se va să fie conectând valori. 1331 01:02:40,460 --> 01:02:43,680 Deci, e-mail pe care John Harvard va de a primi este literalmente de gând să spun 1332 01:02:43,680 --> 01:02:49,450 nume, colon, ceva, mai degrabă, atunci vom închide șirul și înlănțui pe 1333 01:02:49,450 --> 01:02:52,220 indiferent de utilizatorul tastat în, apoi o nouă linie. 1334 01:02:52,220 --> 01:02:54,570 >> Apoi, pe următoarea linie de John Harvard e-mail, se va spune 1335 01:02:54,570 --> 01:02:55,910 Căpitan, pe sau nimic. 1336 01:02:55,910 --> 01:02:57,810 O să spun gen, masculin sau feminin. 1337 01:02:57,810 --> 01:02:59,680 Dorm va fi Matthews în cazul meu. 1338 01:02:59,680 --> 01:03:03,400 Și apoi observați punct și virgulă familiar la sfârșit. 1339 01:03:03,400 --> 01:03:07,830 Și apoi, aici, notificare, oarecum criptice încă, dar din nou, ca urmare a unei 1340 01:03:07,830 --> 01:03:12,730 model care va deveni mai familiar după P set 7, în cazul în trimiterea de e-mail 1341 01:03:12,730 --> 01:03:16,610 returneaza false, atunci mergeți mai departe și să moară. 1342 01:03:16,610 --> 01:03:19,610 >> Deci, PHP are o funcție numită mor, care, literalmente, doar ucide 1343 01:03:19,610 --> 01:03:22,830 site-ul web și doar imprimă indiferent de ați spune - sa este pe moarte 1344 01:03:22,830 --> 01:03:24,280 cuvinte, ca să spunem așa. 1345 01:03:24,280 --> 01:03:28,310 Și că, în acest caz, se va imprima ce info eroare este de 1346 01:03:28,310 --> 01:03:29,860 ce sa întâmplat să meargă greșit. 1347 01:03:29,860 --> 01:03:34,490 Deci, pe scurt aici, ce avem este un exemplu în cazul în care atunci când utilizatorul 1348 01:03:34,490 --> 01:03:39,150 trimite formularul, froshim0, froshims3.php, se duce la 1349 01:03:39,150 --> 01:03:40,760 register3.php. 1350 01:03:40,760 --> 01:03:45,290 Dar register3.php purcede apoi să execute toate aceste linii. 1351 01:03:45,290 --> 01:03:46,620 >> Deci, există câteva Cadouri le iau aici. 1352 01:03:46,620 --> 01:03:50,380 Unul, este aparent destul de ușor, programatic, pentru a trimite e-mailuri, 1353 01:03:50,380 --> 01:03:50,830 care este bun. 1354 01:03:50,830 --> 01:03:53,500 Atunci când utilizatorii înregistrați pentru site-ul dvs., în acest caz, cand se inregistreaza pentru dvs. 1355 01:03:53,500 --> 01:03:56,220 sport, puteți trimite boboc Proctor, sau John 1356 01:03:56,220 --> 01:03:57,650 Harvard, în acest caz. 1357 01:03:57,650 --> 01:04:01,630 >> Dar aceasta înseamnă, de asemenea, poți să faci ce? 1358 01:04:01,630 --> 01:04:03,970 Trimite e-mailuri de la cineva pentru oricine. 1359 01:04:03,970 --> 01:04:05,430 Și acest lucru este foarte adevărat. 1360 01:04:05,430 --> 01:04:08,580 Acest lucru nu este la fel de usor de facut în cazul în care esti folosit pentru utilizarea Gmail. 1361 01:04:08,580 --> 01:04:11,310 Dar, dacă ați folosit vreodată Eudora sau Outlook, vă pot spune destul de mult o 1362 01:04:11,310 --> 01:04:13,720 server de mail pe care îl oricine vrei. 1363 01:04:13,720 --> 01:04:16,450 Și acest lucru este în cazul în care am nevoie pentru a pune pe că pălăria și spune, nu face asta. 1364 01:04:16,450 --> 01:04:21,140 Dar acest lucru este o dovadă a cât de ușor este de a efectua atacuri phishing, și 1365 01:04:21,140 --> 01:04:24,310 trimite email-uri anonime, și spam-ul, în general. 1366 01:04:24,310 --> 01:04:27,330 Și într-adevăr se reduce la Faptul că tot ce ai nevoie este un 1367 01:04:27,330 --> 01:04:28,500 accesul programatic. 1368 01:04:28,500 --> 01:04:31,940 >> Ca o paranteza, cel mai apropiat întâlnirea mea cu Consiliul anunțul, propria mea în primul an, 1369 01:04:31,940 --> 01:04:34,320 a fost când am descoperit această rece truc pe care, wow, puteți 1370 01:04:34,320 --> 01:04:36,850 trimite e-mailuri de la cineva. 1371 01:04:36,850 --> 01:04:39,770 Și noi am fost cu ceva stupid argument, literalmente, în Matthews, 1372 01:04:39,770 --> 01:04:40,790 printre grupul meu Proctor. 1373 01:04:40,790 --> 01:04:42,470 Nici măcar nu-mi amintesc ceea ce a fost problema. 1374 01:04:42,470 --> 01:04:44,970 Dar am vrut să încerc să pun un capăt acestei dezbateri prost. 1375 01:04:44,970 --> 01:04:48,580 >> Asa ca am decis, voi trimite doar un e-mail pentru grupul meu Proctor, pretinzând că ar fi 1376 01:04:48,580 --> 01:04:52,000 celălalt tip, cu a cărui opinie I nu sunt de acord, și să-l accepte oferta 1377 01:04:52,000 --> 01:04:54,680 Oricare ar fi părerea mea a fost în această dezbatere special. 1378 01:04:54,680 --> 01:04:59,320 Și așa mi-am făcut acest e-mail folosind o tehnică similară în spirit la acest. 1379 01:04:59,320 --> 01:05:01,256 Dar a fost de fapt mai ușor la momentul respectiv. 1380 01:05:01,256 --> 01:05:02,435 Lovit trimite. 1381 01:05:02,435 --> 01:05:06,660 El nu a fost mulțumit, nici nu ar au fost Consiliul de anunțuri. 1382 01:05:06,660 --> 01:05:10,280 >> Și am fost prins foarte repede în secunde pentru că, după cum știți, am semnat 1383 01:05:10,280 --> 01:05:11,420 e-mailurile mele într-un anumit mod. 1384 01:05:11,420 --> 01:05:14,200 Și chiar dacă o fac manual, în mare parte, 15 ani mai târziu, pentru că am fost 1385 01:05:14,200 --> 01:05:15,080 traumatizat de asta. 1386 01:05:15,080 --> 01:05:16,960 Nu am o semnătură pe email-ul meu acum. 1387 01:05:16,960 --> 01:05:20,440 Dar, în 1995, am avut doar o sig, o semnătură în e-mail meu. 1388 01:05:20,440 --> 01:05:24,630 Deci nu a fost acest bilet pe care scria, Stimati Grup Proctor, am consimtă opinia mea 1389 01:05:24,630 --> 01:05:31,240 și sunt de acord cu David, a semnat astfel și astfel, linie noua, noua linie, DJM. 1390 01:05:31,240 --> 01:05:36,220 >> Deci, nu face asta sau, în general, să ia Avantajul acestei tehnici. 1391 01:05:36,220 --> 01:05:39,950 Dar atunci când se face un site, cum ar fi pentru proiectul final, atunci când se face o 1392 01:05:39,950 --> 01:05:43,460 site-ul de ceva antreprenoriale, acest lucru este modul în care, pragmatic, puteți 1393 01:05:43,460 --> 01:05:47,000 pârghie alte servicii de pe internet cum ar fi e-mail și apoi de fapt, 1394 01:05:47,000 --> 01:05:49,440 trimite lucruri folosind cod. 1395 01:05:49,440 --> 01:05:51,240 >> Deci, cum putem îmbunătăți la asta? 1396 01:05:51,240 --> 01:05:54,370 Ei bine, în primul rând să ia un tur rapid de unele din lucrurile pe care le veți vedea, 1397 01:05:54,370 --> 01:05:56,170 și apoi să ia o privire la câteva exemple. 1398 01:05:56,170 --> 01:05:59,500 Deci unul, pentru a liniști, deoarece ne zboară prin PHP. 1399 01:05:59,500 --> 01:06:02,470 Și știu că, la un moment dat, veți avea pentru a începe de fapt scris acest lucru, dacă 1400 01:06:02,470 --> 01:06:03,460 nu au deja. 1401 01:06:03,460 --> 01:06:06,220 Seama că, o, principal este un fel de pe fereastră cu PHP. 1402 01:06:06,220 --> 01:06:09,420 Dacă doriți să scrie cod care devine executat, chiar de a începe scris-o în 1403 01:06:09,420 --> 01:06:13,970 un fișier numit. PHP, atât timp cât aveți suportul deschis 1404 01:06:13,970 --> 01:06:15,620 semn de întrebare PHP tag-ul. 1405 01:06:15,620 --> 01:06:19,730 >> Dar observați acestea sunt Condițiile în PHP. 1406 01:06:19,730 --> 01:06:22,610 Observați, acesta este același diapozitiv exactă am avut într-o săptămână când am avut 1407 01:06:22,610 --> 01:06:25,670 Condițiile în C. Condițiile în PHP sunt structural și 1408 01:06:25,670 --> 01:06:27,140 sintactic la fel. 1409 01:06:27,140 --> 01:06:30,290 Singura diferență reală este dacă ai variabile implicate, ai celor 1410 01:06:30,290 --> 01:06:31,600 semne dolar. 1411 01:06:31,600 --> 01:06:33,970 >> Între timp, expresii booleene arata exact ca acest lucru pentru 1412 01:06:33,970 --> 01:06:35,725 sau-ING sau și-ING împreună. 1413 01:06:35,725 --> 01:06:37,780 Întreruperi arata exact la fel. 1414 01:06:37,780 --> 01:06:42,180 Ce e frumos în PHP, în timp ce în C, întrerupătoare trebuie să fie cazuri privind 1415 01:06:42,180 --> 01:06:46,380 primitive cum ar fi int sau de caractere, în PHP declarațiile de caz poate fi de fapt 1416 01:06:46,380 --> 01:06:48,430 pe un șiruri întregi, care este de fapt, un fel de frumos. 1417 01:06:48,430 --> 01:06:49,480 Vă economisește timp. 1418 01:06:49,480 --> 01:06:50,820 Nu putea face asta în C. 1419 01:06:50,820 --> 01:06:52,880 >> Iată o buclă în PHP. 1420 01:06:52,880 --> 01:06:53,740 Este identic. 1421 01:06:53,740 --> 01:06:55,400 S-ar putea avea unele semne de dolari pentru variabilele. 1422 01:06:55,400 --> 01:06:57,530 Nu trebuie să menționăm că ceva este un int. 1423 01:06:57,530 --> 01:07:00,580 Trebuie doar să declare, cu un semn de dolar și numele variabilei. 1424 01:07:00,580 --> 01:07:01,430 Dar pentru o buclă este aceeași. 1425 01:07:01,430 --> 01:07:02,760 O buclă în timp ce este același. 1426 01:07:02,760 --> 01:07:04,870 O face în timp ce buclă este același. 1427 01:07:04,870 --> 01:07:06,170 >> Acesta este un pic diferit. 1428 01:07:06,170 --> 01:07:12,410 Deci, cu PHP, cu o matrice, puteți declara un tablou static, la fel ca în C, 1429 01:07:12,410 --> 01:07:14,420 dar le utilizați paranteze pătrate. 1430 01:07:14,420 --> 01:07:17,060 În C, ar trebui să utilizați acolade, Dacă ați chiar știa asta. 1431 01:07:17,060 --> 01:07:20,910 Dar acest lucru este de fapt foarte frecvente în PHP pentru a declara o matrice, în acest caz, 1432 01:07:20,910 --> 01:07:23,640 de numere, și de apel Numerele variabile. 1433 01:07:23,640 --> 01:07:25,300 >> Variabile sine arata ca aceasta. 1434 01:07:25,300 --> 01:07:28,710 Aici este un șir, citat citatul "Bună ziua lume. "Ai putea avea un backslash n. 1435 01:07:28,710 --> 01:07:30,950 Eu pur și simplu nu în acest caz. 1436 01:07:30,950 --> 01:07:32,640 >> Acum, aceasta este un construct interesantă. 1437 01:07:32,640 --> 01:07:33,700 C nu are aceasta. 1438 01:07:33,700 --> 01:07:34,700 Dar acest lucru este foarte util. 1439 01:07:34,700 --> 01:07:38,160 Și veți vedea acest lucru în setul P 7 spec. - o pentru fiecare construct. 1440 01:07:38,160 --> 01:07:41,800 Dacă doriți să reitereze peste tot din elemente de o matrice, nu aveți 1441 01:07:41,800 --> 01:07:45,500 să se ocupe de $ i $ si n, si + +, și tot ce. 1442 01:07:45,500 --> 01:07:47,640 Puteți spune literalmente, în PHP, acest lucru - 1443 01:07:47,640 --> 01:07:51,890 pentru fiecare numere ca număr, așa Sunt presupunând că numerele de $ 1444 01:07:51,890 --> 01:07:53,380 este o serie de numere. 1445 01:07:53,380 --> 01:07:56,460 Și când spun pentru fiecare număr ca număr, acest lucru se va 1446 01:07:56,460 --> 01:08:00,505 în mod automat, ca bucla mea execută, actualiza, pe fiecare iterație, valoarea 1447 01:08:00,505 --> 01:08:03,260 în interiorul numărului de semnul dolar - 1448 01:08:03,260 --> 01:08:07,730 din nou, și din nou, și din nou mersul pe jos pentru mine, peste care matrice. 1449 01:08:07,730 --> 01:08:08,735 Deci, doar ne salvează cod. 1450 01:08:08,735 --> 01:08:12,250 Nu punct și virgulă, nici + + "s, i nu e, nu de n, e doar frumos. 1451 01:08:12,250 --> 01:08:13,700 >> Dar, PHP are, de asemenea, acest lucru. 1452 01:08:13,700 --> 01:08:14,830 Și acest lucru este foarte puternic. 1453 01:08:14,830 --> 01:08:17,410 Și vei folosi asta, mâini pe, în P set 7. 1454 01:08:17,410 --> 01:08:21,990 Și tablou asociativ este, de asemenea, declarat cu paranteze pătrate. 1455 01:08:21,990 --> 01:08:23,569 Dar observați sintaxa acum. 1456 01:08:23,569 --> 01:08:26,880 Este o reminiscență a ceea ce am văzut cu print_r acum o clipă. 1457 01:08:26,880 --> 01:08:31,810 Cât de multe chei, ca un cec bun-simț puțin, nu acest tablou pare să aibă. 1458 01:08:31,810 --> 01:08:32,689 >> Deci are două. 1459 01:08:32,689 --> 01:08:33,830 Și eu numesc aceasta o matrice. 1460 01:08:33,830 --> 01:08:36,760 Dar dacă-l ajută, vă puteți gândi din acest tabel ca hash, sau ca 1461 01:08:36,760 --> 01:08:37,930 un tablou asociativ. 1462 01:08:37,930 --> 01:08:39,580 Dar este doar un alt tip de matrice. 1463 01:08:39,580 --> 01:08:41,080 Și din nou, limbi diferite au acestea. 1464 01:08:41,080 --> 01:08:43,810 Vom vedea ceva similar în JavaScript de asemenea. 1465 01:08:43,810 --> 01:08:44,609 Există două chei. 1466 01:08:44,609 --> 01:08:48,390 Una este citatul citat, "simbol", unul este cita încheiat citatul "preț." Și aceste chei 1467 01:08:48,390 --> 01:08:49,250 au fiecare o valoare. 1468 01:08:49,250 --> 01:08:54,420 În acest caz valoarea simbol este FB, pentru Valoarea Facebook, iar pretul este 49, 26, 1469 01:08:54,420 --> 01:08:56,899 care era stoc Facebook Prețul din această dimineață. 1470 01:08:56,899 --> 01:09:00,170 >> Deci, ceea ce este util despre un tablou asociativ. 1471 01:09:00,170 --> 01:09:02,620 Am fi putut avea o numeric matrice indexate cu doar 1472 01:09:02,620 --> 01:09:04,120 paranteze pătrate simple. 1473 01:09:04,120 --> 01:09:09,380 Și am fi putut avea semnul dolar citat este egal cu doar acest lucru. 1474 01:09:09,380 --> 01:09:10,529 Permiteți-mi să fac acest lucru. 1475 01:09:10,529 --> 01:09:14,796 Presupun că în loc doar declarată această matrice de genul asta. 1476 01:09:14,796 --> 01:09:17,590 Care este perfect valabil, sintactic. 1477 01:09:17,590 --> 01:09:20,569 Ea nu pierde nici o informație, per se. 1478 01:09:20,569 --> 01:09:24,760 Încă văd că simbolul este FB, și că prețul este de 49, 26. 1479 01:09:24,760 --> 01:09:28,939 Deci, de ce sunt asociative matrice convingătoare? 1480 01:09:28,939 --> 01:09:30,189 >> Audiența: Nu trebuie să vă amintiți unde ai pus lucrurile. 1481 01:09:30,189 --> 01:09:32,050 1482 01:09:32,050 --> 01:09:34,130 >> SPEAKER 1: Exact, nu aveți să vă amintiți unde ați pus lucrurile. 1483 01:09:34,130 --> 01:09:37,670 Nu trebuie să ne amintim arbitrar ca simbol de acțiuni este în suport de zero, 1484 01:09:37,670 --> 01:09:41,479 și prețurile de vînzare este în suport unul, care este deosebit de periculos dacă 1485 01:09:41,479 --> 01:09:43,220 schimba lucrurile, în cele din urmă. 1486 01:09:43,220 --> 01:09:46,399 Este mult mai frumos de a se asocia ceea ce vom numi metadate 1487 01:09:46,399 --> 01:09:48,340 cu datele reale. 1488 01:09:48,340 --> 01:09:52,399 Aș spune că ceea ce ne pasă cu adevărat despre aici este FB si 49, 26. 1489 01:09:52,399 --> 01:09:57,020 Simbolul și prețul este de metadate care descrie datele noi 1490 01:09:57,020 --> 01:09:58,180 pasă de fapt despre. 1491 01:09:58,180 --> 01:10:01,910 Dar aceasta este doar atât de mult mai ușor de accesat. 1492 01:10:01,910 --> 01:10:04,090 >> Acum, ca o parte ce-i prețul pe care îl plătesc? 1493 01:10:04,090 --> 01:10:06,600 Am făcut acest lucru în CS50 pentru săptămâni. 1494 01:10:06,600 --> 01:10:10,740 Această caracteristică trebuie să vină la unele costuri. 1495 01:10:10,740 --> 01:10:11,350 Memorie. 1496 01:10:11,350 --> 01:10:13,830 Deci, nu doar stocarea un 32-bit număr întreg, de exemplu. 1497 01:10:13,830 --> 01:10:17,980 Te stocarea simbol / 0, probabil. 1498 01:10:17,980 --> 01:10:19,160 Astfel încât să utilizați mai multă memorie. 1499 01:10:19,160 --> 01:10:22,540 >> Si ceea ce este performanța caută ceva într-un 1500 01:10:22,540 --> 01:10:24,822 tablou asociativ, probabil? 1501 01:10:24,822 --> 01:10:26,590 Este, probabil, mai lent. 1502 01:10:26,590 --> 01:10:29,670 Cu acces aleator este frumos, mai ales când poți să faci Caută binar. 1503 01:10:29,670 --> 01:10:33,380 Dar dacă sunteți de fapt, acum nu caută pentru numere, dar pentru șiruri, această 1504 01:10:33,380 --> 01:10:37,630 adevărat este implementat sub capota, probabil, ca un tabel hash, unde 1505 01:10:37,630 --> 01:10:42,950 folosiți fie un tabel hash cu înlănțuirea separată. 1506 01:10:42,950 --> 01:10:46,040 Sau să utilizați o încercare de fapt, stoca valorile. 1507 01:10:46,040 --> 01:10:50,550 Deci, poate că puteți face timp constant, dar tot trebuie să te uiți la S-Y-M-B-O-L, 1508 01:10:50,550 --> 01:10:54,510 potențial, în loc de doar 32 biți pentru a căuta ceva. 1509 01:10:54,510 --> 01:10:58,430 Deci, din nou, aceleași idei vin copii de a se repeta în acest context. 1510 01:10:58,430 --> 01:11:02,120 >> Dar, din nou, PHP are acum un super- globals că, se pare, sunt 1511 01:11:02,120 --> 01:11:02,900 tablouri asociative. 1512 01:11:02,900 --> 01:11:05,590 Am văzut unul acum un moment, $ _POST. 1513 01:11:05,590 --> 01:11:08,400 Și că super-global are cheile și valorile. 1514 01:11:08,400 --> 01:11:10,550 În special, tastele alinia cu ce? 1515 01:11:10,550 --> 01:11:14,520 În cazul în care cheile de la $ _POST provin de la? 1516 01:11:14,520 --> 01:11:15,380 Doar pentru a recapitulare? 1517 01:11:15,380 --> 01:11:16,480 >> Audiența: Name. 1518 01:11:16,480 --> 01:11:17,900 >> SPEAKER 1: Nume, unde? 1519 01:11:17,900 --> 01:11:19,860 >> Audiența: [inaudibil] 1520 01:11:19,860 --> 01:11:20,750 >> SPEAKER 1: Numele este atributul. 1521 01:11:20,750 --> 01:11:23,480 Pai unde, în cazul în care au făcut proveneau? 1522 01:11:23,480 --> 01:11:24,120 Formularul. 1523 01:11:24,120 --> 01:11:30,140 Deci, dacă o pagină HTML are o etichetă de formă, din care interior sunt unele intrări, cum ar fi 1524 01:11:30,140 --> 01:11:34,760 verifica cutii, casete de text, verticală meniuri, fiecare dintre care are un nume, aceste 1525 01:11:34,760 --> 01:11:40,260 nume se termină ca cheile de la $ _POST, și, sincer, pentru care contează, $ _GET. 1526 01:11:40,260 --> 01:11:42,130 În cazul în care metoda este de a lua, aceeași idee. 1527 01:11:42,130 --> 01:11:43,830 E doar într-un alt super-global. 1528 01:11:43,830 --> 01:11:47,620 Și valorile, desigur, provin de la indiferent de utilizatorul tastat în la lui sau 1529 01:11:47,620 --> 01:11:48,890 Browser-ul ei. 1530 01:11:48,890 --> 01:11:49,830 >> Dar există alte câteva. 1531 01:11:49,830 --> 01:11:52,140 Există cookie, pe care le vom vin înapoi la cele din urmă. 1532 01:11:52,140 --> 01:11:56,050 Dar acestea sunt lucrurile pe care le stii web foloseste pentru ceva bun sau rău. 1533 01:11:56,050 --> 01:11:57,420 Dar vom reveni la asta. 1534 01:11:57,420 --> 01:12:01,720 Server și sesiune, iar cei doi au o utilitate deosebită. 1535 01:12:01,720 --> 01:12:03,940 >> Dar haideți să aruncăm o privire la asta. 1536 01:12:03,940 --> 01:12:13,330 Lasă-mă să merg mai departe și de a deschide un exemplu numit mvc0.php Deci MVC 1537 01:12:13,330 --> 01:12:14,900 reprezintă următorul. 1538 01:12:14,900 --> 01:12:19,390 Și vom introduce acest lucru mai devreme decât este tipic, într-adevăr, pentru a te proiectarea 1539 01:12:19,390 --> 01:12:22,180 Set problema 7, și, de asemenea, proiecte finale, într-un fel de industrie 1540 01:12:22,180 --> 01:12:23,670 modul standard, și mod curat. 1541 01:12:23,670 --> 01:12:24,820 Este bun design. 1542 01:12:24,820 --> 01:12:29,090 >> Deci, esti pe cale de a vedea, și veți experienta, in P set 7, paradigma, un fel 1543 01:12:29,090 --> 01:12:32,260 de o stare de spirit de programare, care arată ceva ca asta. 1544 01:12:32,260 --> 01:12:35,570 M pentru modelul, C pentru controler, V pentru vizualizare. 1545 01:12:35,570 --> 01:12:39,690 Pe scurt, MVC este doar un fel unei metodologii, o modalitate de a face 1546 01:12:39,690 --> 01:12:43,360 site-uri web, în ​​special, prin care pune toate dvs. de fraza, stupid - 1547 01:12:43,360 --> 01:12:44,970 logica de afaceri - 1548 01:12:44,970 --> 01:12:49,710 toate de proprietatea intelectuală în ceea ce se numește un controlor, un fișier 1549 01:12:49,710 --> 01:12:54,840 ca index.php, sau vom vedea, quote.php, sau buy.php. 1550 01:12:54,840 --> 01:12:59,570 >> În contextul setului Problema 7, dvs. Modelele conțin de obicei datele, 1551 01:12:59,570 --> 01:13:03,860 nimic legat de o bază de date, cum vom a se vedea în cele din urmă, precum și opinia dvs. 1552 01:13:03,860 --> 01:13:07,510 conțin estetica dvs. site-ul, HTML, CSS. 1553 01:13:07,510 --> 01:13:10,420 Așa că am văzut deja acest lucru în C un pic bit prin utilizarea fișierelor ore.. 1554 01:13:10,420 --> 01:13:15,010 Am într-adevăr a văzut un moment în urmă cu CSS, de factoring stilizare CSS 1555 01:13:15,010 --> 01:13:16,520 chestii din HTML noastre. 1556 01:13:16,520 --> 01:13:20,730 >> Deci, MVC este de fapt doar despre desen linii în nisip și spunând, 1557 01:13:20,730 --> 01:13:25,400 interesant codul de programare pentru dvs. site-ul face parte din ceea ce vom numi 1558 01:13:25,400 --> 01:13:26,400 controler. 1559 01:13:26,400 --> 01:13:29,280 Lucruri legate de baze de date de obicei, ajunge într-un model. 1560 01:13:29,280 --> 01:13:33,070 Dar veți vedea, în set Problema 7, am fuziona C și M să-l păstrați simplu. 1561 01:13:33,070 --> 01:13:37,630 Dar punct de vedere este în cazul în care toate HTML și estetică merge de obicei. 1562 01:13:37,630 --> 01:13:39,160 >> Deci, ce inseamna acest lucru in termeni reali? 1563 01:13:39,160 --> 01:13:45,980 Ei bine, lasă-mă să merg în MVC nostru director, după cum urmează. 1564 01:13:45,980 --> 01:13:48,880 Și veți vedea mai multe din aceste turneu prin în spec.. 1565 01:13:48,880 --> 01:13:53,200 Deci, în mvc0, eu susțin că acest lucru este, cum ar fi, 0 versiune a site-CS50 lui. 1566 01:13:53,200 --> 01:13:56,670 >> Tot ce avem este un HTML, cum ar fi o etichetă H1 mare, aparent. 1567 01:13:56,670 --> 01:13:57,800 Și apoi o listă cu marcatori. 1568 01:13:57,800 --> 01:13:59,860 Nu am văzut niciodată o listă cu marcatori înainte, dar nu e mare lucru. 1569 01:13:59,860 --> 01:14:01,590 Să repede uita la codul sursă. 1570 01:14:01,590 --> 01:14:06,610 Se pare ca o lista neordonata cu gloanțe este ul suport deschis cu unul sau 1571 01:14:06,610 --> 01:14:09,065 mai multe elemente din listă, li. 1572 01:14:09,065 --> 01:14:10,650 Deci Observații Aici este o etichetă ancoră. 1573 01:14:10,650 --> 01:14:12,130 Am văzut că în urmă cu o clipă. 1574 01:14:12,130 --> 01:14:13,810 >> Deci, acesta este modul în care am pus în aplicare această pagină. 1575 01:14:13,810 --> 01:14:18,460 Am două link-uri, doua elemente de listă, unul ul pentru lista neordonata, iar la sfârșitul 1576 01:14:18,460 --> 01:14:22,700 urmare, estetic, este acest foarte site-ul destul de, versiunea 0 aici. 1577 01:14:22,700 --> 01:14:26,840 Dar ceea ce este interesant acum este modul în care această este implementat sub capota. 1578 01:14:26,840 --> 01:14:33,590 >> Lasă-mă să intru în Gedit și deschidă această Primul exemplu a picta un tablou. 1579 01:14:33,590 --> 01:14:37,070 Și ne vom uita la ceea ce este greșit, potențial, în aici. 1580 01:14:37,070 --> 01:14:43,260 Acum, dacă mă duc la localhost, publică, MVC, observa câteva fișiere. 1581 01:14:43,260 --> 01:14:45,780 Am de gând să numesc aceste, pentru clipă, toate controlerele. 1582 01:14:45,780 --> 01:14:48,640 Dar asta e un pic de un abuz, deoarece veți vedea totul amestecate 1583 01:14:48,640 --> 01:14:49,620 în interiorul lor. 1584 01:14:49,620 --> 01:14:52,330 >> Și lasă-mă să merg în interiorul index.php. 1585 01:14:52,330 --> 01:14:54,700 Și vom vedea, la propriu, la fel HTML. 1586 01:14:54,700 --> 01:14:57,970 Deci, chiar dacă acest fișier se termină în . PHP, nu înseamnă că trebuie să 1587 01:14:57,970 --> 01:14:59,500 nici un cod PHP. 1588 01:14:59,500 --> 01:15:02,290 Acesta poate fi doar HTML crud, deși asta e un fel de prostie. 1589 01:15:02,290 --> 01:15:07,650 Dar observa nu exista nici o deschis suport PHP tag-ul, cu excepția pentru aceasta, care, sincer, 1590 01:15:07,650 --> 01:15:09,160 este doar acolo pentru a servi ca un comentariu. 1591 01:15:09,160 --> 01:15:12,080 Dar că nu este funcțional chiar interesant. 1592 01:15:12,080 --> 01:15:12,960 >> Dar observa acest lucru. 1593 01:15:12,960 --> 01:15:15,400 Ceea ce este interesant este acum ceea ce schimbările de pe aceasta pagina. 1594 01:15:15,400 --> 01:15:16,650 Lasă-mă să faceți clic pe curs. 1595 01:15:16,650 --> 01:15:18,560 Și observați URL-ul este pe cale să se schimbe. 1596 01:15:18,560 --> 01:15:20,930 Acum sunt la lectures.php. 1597 01:15:20,930 --> 01:15:22,630 Lasă-mă să faceți clic pe zero. 1598 01:15:22,630 --> 01:15:27,200 Acum sunt la week0.php Și acum să mi deschide aceste fișiere în gedit. 1599 01:15:27,200 --> 01:15:30,120 Nu doar index, dar să mi deschid prelegeri. 1600 01:15:30,120 --> 01:15:33,900 Și lasă-mă să scap de comentarii să se concentreze doar pe această parte. 1601 01:15:33,900 --> 01:15:37,680 >> Și acum să-mi deschid doar una mai mult, week0.php, arunca comentarii, 1602 01:15:37,680 --> 01:15:39,910 doar pentru a curăța asta. 1603 01:15:39,910 --> 01:15:41,720 Si observa acum următoarele. 1604 01:15:41,720 --> 01:15:47,340 Gândire într-adevăr un fel de atent cu privire la proiectare, și să facem o linie 1605 01:15:47,340 --> 01:15:52,013 până la fel, ceea ce ar putea fi făcut mai bine aici, nu crezi? 1606 01:15:52,013 --> 01:15:56,450 1607 01:15:56,450 --> 01:15:57,780 >> Cum am face o saptamana? 1608 01:15:57,780 --> 01:15:58,480 Ce zici de asta. 1609 01:15:58,480 --> 01:16:00,450 Deci, acesta este modul în care am făcut o saptamana. 1610 01:16:00,450 --> 01:16:08,290 M-am dus până la Fișier, Nou, Paste, Salvare, week1.php, și apoi m-am dus aici. 1611 01:16:08,290 --> 01:16:09,875 Și am schimbat unul - 1612 01:16:09,875 --> 01:16:11,646 ceea ce a fost aceasta, o până vineri. 1613 01:16:11,646 --> 01:16:14,430 1614 01:16:14,430 --> 01:16:15,810 Am schimbat zerouri pentru unul. 1615 01:16:15,810 --> 01:16:17,150 Am schimbat acest lucru la una. 1616 01:16:17,150 --> 01:16:20,350 >> OK, asa ca uite acum la dosarele mele. 1617 01:16:20,350 --> 01:16:22,100 Ce s-ar fi făcut altfel? 1618 01:16:22,100 --> 01:16:25,310 Unde-i posibilitatea, poate? 1619 01:16:25,310 --> 01:16:28,330 Deci, există posibilitatea de a începe factoring chestiile astea. 1620 01:16:28,330 --> 01:16:32,950 Permiteți-mi deschid, ca un spoiler, pentru ceea ce veți vedea în setul P 7. 1621 01:16:32,950 --> 01:16:38,750 Dacă am deschide, acum, index.php în versiunea cinci dintre acestea, se pare fel 1622 01:16:38,750 --> 01:16:40,730 mai criptic, desigur. 1623 01:16:40,730 --> 01:16:43,710 >> Dar acest lucru, acum, este ceea ce voi numi un controler care este controlul 1624 01:16:43,710 --> 01:16:44,770 logica pagina mea. 1625 01:16:44,770 --> 01:16:48,510 Și puteți fel de reconstrui, intuitiv, probabil, ceea ce se întâmplă. 1626 01:16:48,510 --> 01:16:50,630 Pe prima linie, este un pic criptic. 1627 01:16:50,630 --> 01:16:54,040 Dar observa eu ​​necesită, ca și cu includ ascuțit, un fișier numit 1628 01:16:54,040 --> 01:16:55,930 helpers.php. 1629 01:16:55,930 --> 01:16:59,980 Și apoi am sunat, aparent, un funcție, numit de randare, trece în 1630 01:16:59,980 --> 01:17:00,850 două argumente. 1631 01:17:00,850 --> 01:17:02,440 >> Una dintre ele este citat încheiat citatul, antet. 1632 01:17:02,440 --> 01:17:04,800 Iar celălalt este, ce fel de tipul de date este aceasta, pe baza 1633 01:17:04,800 --> 01:17:07,180 pe sintaxa de mai devreme? 1634 01:17:07,180 --> 01:17:08,160 Este o matrice asociat. 1635 01:17:08,160 --> 01:17:11,730 Concret, se trece la titlu cu unele metadate care amintește 1636 01:17:11,730 --> 01:17:13,430 mi ce este și valoarea sa. 1637 01:17:13,430 --> 01:17:16,340 Apoi am văzut un hard codificate ul, astfel încât unele HTML crud. 1638 01:17:16,340 --> 01:17:20,020 Dar apoi m-am întors în modul PHP apelarea o randare funcție. 1639 01:17:20,020 --> 01:17:24,390 Deci, chiar dacă nu ați mai folosit HTML sau PHP înainte, și chiar dacă acest lucru pare 1640 01:17:24,390 --> 01:17:27,480 infricosator, de ce este acest lucru, probabil, design mai bun? 1641 01:17:27,480 --> 01:17:31,310 Ce e mai bine despre ea, bazat pe deducție? 1642 01:17:31,310 --> 01:17:32,130 >> Audiența: [inaudibil] 1643 01:17:32,130 --> 01:17:35,750 >> SPEAKER 1: Mai puțin redundant în care nu e nici o eticheta mai mult HTML, nu mai 1644 01:17:35,750 --> 01:17:38,410 capete de tag-ul, nu mai mult tag-ul body în fiecare fișier naibii. 1645 01:17:38,410 --> 01:17:41,860 În schimb, am luat în comune și, probabil, le-a pus 1646 01:17:41,860 --> 01:17:45,150 într-un fișier într-un fel legate de la un antet. 1647 01:17:45,150 --> 01:17:48,500 Și același lucru pentru corpul de aproape tag-ul, tag-ul HTML aproape. 1648 01:17:48,500 --> 01:17:52,165 Asta e, probabil, aici în interiorul de undeva subsol. 1649 01:17:52,165 --> 01:17:57,050 Și veți vedea, în set Problema 7, un mic tur prin aceasta. 1650 01:17:57,050 --> 01:17:58,070 >> Deci, ce se află în fața? 1651 01:17:58,070 --> 01:18:03,390 Singurul lucru pe care nu au capacitatea de încă pentru este de a stoca date de fapt. 1652 01:18:03,390 --> 01:18:06,110 Și ce vom începe să vedem Miercuri, de exemplu, este ca ta 1653 01:18:06,110 --> 01:18:08,450 vechi prieten Excel, sau numere, vă permite să stoca o mulțime de 1654 01:18:08,450 --> 01:18:10,060 date în rânduri și coloane. 1655 01:18:10,060 --> 01:18:12,570 Se pare că puteți face acest lucru în ceea ce-i numit-o bază de date, programatic. 1656 01:18:12,570 --> 01:18:16,620 maniacale si se dovedește, după care, vom fi capabili de a stoca lucruri cum ar fi 1657 01:18:16,620 --> 01:18:20,550 acest lucru, ceea ce veți vedea din nou în setul P 7, o grămadă de nume de utilizator și 1658 01:18:20,550 --> 01:18:23,690 parole, din care acestea din urmă sunt de fapt criptate, la fel ca ei 1659 01:18:23,690 --> 01:18:25,550 au fost în ediția hacker P set 2 este. 1660 01:18:25,550 --> 01:18:29,600 Și în cele din urmă, veți pune în aplicare acest lucru, propriul site-ul eTrade, cum ar fi faptul că 1661 01:18:29,600 --> 01:18:32,220 implementează colectiv CS50 finanțe. 1662 01:18:32,220 --> 01:18:36,000 >> În cele din urmă, din moment ce a stat aici atât de târziu Astăzi, dacă te întorci la această parte 1663 01:18:36,000 --> 01:18:41,120 de campus, la 4:00 astăzi, vom da nu numai sfaturi, la SCES 1664 01:18:41,120 --> 01:18:44,200 Consilierea Fair, la 16:00, în Maxwell-Dworkin, vă vom oferi câteva 1665 01:18:44,200 --> 01:18:47,470 Visul Americone, Cherry Garcia, Chocolate Fudge Brownie, Chocolate 1666 01:18:47,470 --> 01:18:50,840 Aluat Cookie cip, și, atunci când Google Chunky Monkey, ai asta. 1667 01:18:50,840 --> 01:18:53,620 Deci, tot de ce așteaptă de la 04:00 PM în Maxwell-Dworkin. 1668 01:18:53,620 --> 01:18:56,736 Ne vedem miercuri, la fel de bine. 1669 01:18:56,736 --> 01:18:59,960 >> DIFUZOR 2: La următoarea CS50, RJ doarme inch 1670 01:18:59,960 --> 01:19:03,656 1671 01:19:03,656 --> 01:19:04,906 >> JF: secțiunea meu! 1672 01:19:04,906 --> 01:19:07,727 1673 01:19:07,727 --> 01:19:08,977 Ha! 1674 01:19:08,977 --> 01:19:12,056 1675 01:19:12,056 --> 01:19:13,306 Oh, 1676 01:19:13,306 --> 01:19:16,374