1 00:00:00,000 --> 00:00:05,040 2 00:00:05,040 --> 00:00:08,440 >> SAM LEVATICH: Welcome to gedeelte voor deze week. 3 00:00:08,440 --> 00:00:10,040 Ik ben niet Andi. 4 00:00:10,040 --> 00:00:14,590 Andi is ziek geworden op de dag, en ik zijn soort genoemd in de laatste minuut 5 00:00:14,590 --> 00:00:15,700 overnemen. 6 00:00:15,700 --> 00:00:20,920 Is het griepseizoen, dus zorg ervoor dat je verblijft schoon, het wassen van je handen, 7 00:00:20,920 --> 00:00:24,800 en het eten van gezonde, zodat jij ook niet bedlegerig. 8 00:00:24,800 --> 00:00:26,870 >> Maar zonder verdere omhaal, laten we beginnen. 9 00:00:26,870 --> 00:00:29,970 Vandaag gaan we praten over PHP een beetje bit-- hoe 10 00:00:29,970 --> 00:00:33,900 PHP heeft betrekking op HTML, hoe het betreft CSS, en sommige van de baan 11 00:00:33,900 --> 00:00:36,100 dingen die je deed op de laatste opdracht. 12 00:00:36,100 --> 00:00:37,930 We gaan naar een praten beetje over SQL 13 00:00:37,930 --> 00:00:41,360 en hoe je kunt werken met databases, dat is een vrij belangrijk onderdeel van P 14 00:00:41,360 --> 00:00:43,650 set 8-- P set 7. 15 00:00:43,650 --> 00:00:44,480 P set 7. 16 00:00:44,480 --> 00:00:48,400 >> En dan gaan we een beetje praten beetje over hoe view controllers werken 17 00:00:48,400 --> 00:00:54,640 en waarom dat is een filosofie achter een aantal moderne webpagina's en ander design. 18 00:00:54,640 --> 00:00:58,760 Vrij veel een heleboel soorten apps en toepassingen die u zou kunnen verzenden 19 00:00:58,760 --> 00:01:01,120 worden met behulp van dit model, view controller kader 20 00:01:01,120 --> 00:01:02,890 dat u zal worden met behulp in P plaats 7, dus ik zal 21 00:01:02,890 --> 00:01:05,220 praten een beetje over waarom dat is geworden 22 00:01:05,220 --> 00:01:07,970 populair, waarom het belangrijk is en mooi. 23 00:01:07,970 --> 00:01:12,052 En dan zal ik eindelijk overgaan tot enkele tips over de aanpak van P set 7. 24 00:01:12,052 --> 00:01:13,760 En als we tijd hebben overblijft aan het einde, 25 00:01:13,760 --> 00:01:17,320 kunnen we eigenlijk een aantal doen werken samen aan. 26 00:01:17,320 --> 00:01:20,380 >> Dus, PHP. 27 00:01:20,380 --> 00:01:23,790 In feite kan je zijn opgevallen dit-- je niet echt in te duiken het-- 28 00:01:23,790 --> 00:01:27,880 maar P set 6 had een aantal PHP code die aan de hand was. 29 00:01:27,880 --> 00:01:34,710 En omdat PHP is een C-achtige taal, PHP, in tegenstelling tot HTML en CSS, 30 00:01:34,710 --> 00:01:39,030 is een programmeertaal, terwijl HTML en CSS zijn statisch. 31 00:01:39,030 --> 00:01:44,050 Ze zijn opmaaktalen omgaan met stijl en visuele lay-out. 32 00:01:44,050 --> 00:01:46,230 PHP is de real deal. 33 00:01:46,230 --> 00:01:51,590 >> PHP heeft loops, het heeft conditions-- al dat spul dat is leuk over C. 34 00:01:51,590 --> 00:01:56,190 Het heeft een paar dingen die een beetje zijn beetje beter dan C, die we zullen zien, 35 00:01:56,190 --> 00:01:59,760 maar ik denk dat de makkelijkste manier om te praten over de PHP is gewoon om te duiken in. 36 00:01:59,760 --> 00:02:04,087 Dus ik ga naar rechts gaan in de IDE op dit punt. 37 00:02:04,087 --> 00:02:06,170 Het eerste wat we gaan te doen is eigenlijk kijken 38 00:02:06,170 --> 00:02:10,169 een beetje op een aantal van de PHP-code die in P set 6. 39 00:02:10,169 --> 00:02:13,600 Dus de manier waarop we dat-- doen vóór, de manier waarop we liepen 40 00:02:13,600 --> 00:02:18,550 de server van het toestel was dat we zouden moeten Motortype- 41 00:02:18,550 --> 00:02:21,750 gebruik maken van uw implementatie of de uitvoering van het personeel 42 00:02:21,750 --> 00:02:27,059 van server.c door in directory en actief server.c met ofwel zonder 43 00:02:27,059 --> 00:02:30,100 arguments-- dus noem het op de lokale host, dat is wat je waarschijnlijk 44 00:02:30,100 --> 00:02:31,849 heeft het merendeel van de tijd-- en dan voeden 45 00:02:31,849 --> 00:02:35,380 een directory-- met om als zijn wortel 46 00:02:35,380 --> 00:02:38,310 waar de website zouden worden uitgevoerd, in principe. 47 00:02:38,310 --> 00:02:42,180 >> Deze week P set 7, zoals groot als onze code voor server.c 48 00:02:42,180 --> 00:02:47,580 is, zijn er mensen die al schriftelijke deze fijne dingen over ten CS50 49 00:02:47,580 --> 00:02:49,630 die hebben een beetje meer functionaliteit, 50 00:02:49,630 --> 00:02:52,920 een server programma dat in staat is om met een beetje 51 00:02:52,920 --> 00:02:56,350 van de fijne kneepjes dat we zien in zowel P set 7 en P set 8. 52 00:02:56,350 --> 00:03:01,410 En de manier waarop je het opstarten van de server is door gewoon te typen, "apache50." 53 00:03:01,410 --> 00:03:03,960 >> En voordat je iets doet, wilt u ervoor zorgen 54 00:03:03,960 --> 00:03:06,070 dat Apache 50 niet al uitgevoerd als het 55 00:03:06,070 --> 00:03:08,130 op mijn machine, wat ik deed om het te testen. 56 00:03:08,130 --> 00:03:10,320 En je dat doen door te bellen apache50. 57 00:03:10,320 --> 00:03:14,070 Stoppen, en je zult zien dat het stoppen de webserver, als je kunt er kijken 58 00:03:14,070 --> 00:03:16,340 onderin de terminal-venster. 59 00:03:16,340 --> 00:03:21,090 En dan gewoon te beginnen, we zijn gaan roepen, "apache50 starten." 60 00:03:21,090 --> 00:03:23,150 En dan gaan we te voeden een directory. 61 00:03:23,150 --> 00:03:26,950 >> Nu, omdat we willen kijken bij enkele van de P set 6 code 62 00:03:26,950 --> 00:03:32,850 dat wij, ik eigenlijk had uitgevoerd gekopieerd een beetje van de P 63 00:03:32,850 --> 00:03:37,090 set 6 code in mijn eigen map, die je kunt zien aan de linkerkant. 64 00:03:37,090 --> 00:03:40,170 Het heet "SECTION8" in hoofdletters 65 00:03:40,170 --> 00:03:44,510 want ik ben net zo opgewonden zijn vandaag live gestreamd. 66 00:03:44,510 --> 00:03:47,330 >> Dus als we dit uitvoeren, het hoort werken allemaal erg effectief. 67 00:03:47,330 --> 00:03:52,350 Het zegt, OK, onze site is nu verkrijgbaar op het adres van de IDE, 68 00:03:52,350 --> 00:03:57,710 principe, dat is wat je met behulp precies zoals het was in P ingesteld 7-- P set 6. 69 00:03:57,710 --> 00:04:00,899 Al mijn indexen zijn een index vandaag. 70 00:04:00,899 --> 00:04:02,940 Dus we kunnen gaan naar die adres, als u zult herinneren, 71 00:04:02,940 --> 00:04:05,710 door gewoon deze kleine klikken knop in de rechterbovenhoek. 72 00:04:05,710 --> 00:04:14,200 >> En je zult deze code, die herinneren gebeurde toen je ging naar hello.php. 73 00:04:14,200 --> 00:04:18,000 En wat de code is ontworpen om doen is wanneer je een naam hebt getypt 74 00:04:18,000 --> 00:04:20,550 hier-- als je zegt Sam want dat is mijn name-- 75 00:04:20,550 --> 00:04:23,620 en ik klik Say Hello, wanneer gingen we naar de volgende pagina, 76 00:04:23,620 --> 00:04:25,270 die naam moest worden weergegeven. 77 00:04:25,270 --> 00:04:28,550 Het zou zeggen: "Hallo, Sam" of "Hallo," wat je naam 78 00:04:28,550 --> 00:04:32,470 gestoken hoewel we gingen om een ​​geheel nieuwe webpagina. 79 00:04:32,470 --> 00:04:36,610 >> En dit is het soort dingen dat PHP voor u kan doen. 80 00:04:36,610 --> 00:04:42,840 PHP is in staat om gegevens te passeren tussen twee webpagina's. 81 00:04:42,840 --> 00:04:44,390 Dit is een totaal andere pagina. 82 00:04:44,390 --> 00:04:46,990 Zie je de titel "hallo" hier. 83 00:04:46,990 --> 00:04:49,080 Eigenlijk hebben ze dezelfde titel, maar ik 84 00:04:49,080 --> 00:04:52,560 beloven ze zijn verschillende web pagina's als we kijken naar de bron. 85 00:04:52,560 --> 00:04:55,890 En je kunt de gegevens dat is voorbij op dit gebied ingevoerde tekst, 86 00:04:55,890 --> 00:04:59,830 u ze naar de volgende pagina die wordt up heet, 87 00:04:59,830 --> 00:05:02,490 en dat data kan zijn er in de huidige vorm. 88 00:05:02,490 --> 00:05:04,810 >> Nu hebben we nog niet geïmplementeerd dit onszelf, die 89 00:05:04,810 --> 00:05:08,710 is wat we gaan nu om te doen soort krijgt een smaak van hoe PHP werkt, 90 00:05:08,710 --> 00:05:15,070 maar het belangrijkste idee is dat je kunt PHP-- soort van denken van het als een functie. 91 00:05:15,070 --> 00:05:18,570 Iets dat PHP je kunt laten do is kan de parameters te nemen 92 00:05:18,570 --> 00:05:24,710 die u invoert in een HTML-pagina met behulp van PHP en vormen, 93 00:05:24,710 --> 00:05:29,960 en het kan deze als parameters doorgeven naar de volgende pagina die het laadt op. 94 00:05:29,960 --> 00:05:35,110 >> In dit geval zijn we het laden van deze pagina met de knop "Zeg hallo". 95 00:05:35,110 --> 00:05:38,960 Maar voor nu, ik eigenlijk verwijderde sommige van die code 96 00:05:38,960 --> 00:05:44,850 in de hello.php die werd gerund dat was eigenlijk de weergave van de "hallo, 97 00:05:44,850 --> 00:05:49,680 wereld "of" hallo, Sam "of "Hallo," wat was net ingevoerd. 98 00:05:49,680 --> 00:05:53,620 Dus voor nu, we zijn gaan om dat te doen, in principe. 99 00:05:53,620 --> 00:05:56,570 We gaan opnieuw dat en Ook voeg wat meer functionaliteit, 100 00:05:56,570 --> 00:06:00,210 doe een beetje meer met het, zie wat PHP is werkelijk in staat. 101 00:06:00,210 --> 00:06:04,870 >> Dus laten we eerst eens praten over dit bestand, hello.php. 102 00:06:04,870 --> 00:06:07,440 Dus als we in een te zoomen weinig bit-- en nu ben ik 103 00:06:07,440 --> 00:06:10,520 soort proberen om alle bladeren de manier waarop around-- daar gaan we. 104 00:06:10,520 --> 00:06:14,220 Je zult zien dat heet hello.php, maar de syntax ervan 105 00:06:14,220 --> 00:06:16,880 ziet eruit als een HTML-bestand. 106 00:06:16,880 --> 00:06:20,380 Dit is omdat de werkelijke PHP in dit bestand 107 00:06:20,380 --> 00:06:25,220 is al vast tussen deze vraagteken-dakje blokken. 108 00:06:25,220 --> 00:06:28,610 Alles hier wordt beschouwd als PHP-code. 109 00:06:28,610 --> 00:06:32,040 >> En je zult merken dat toen ik een reactie, 110 00:06:32,040 --> 00:06:35,320 zie je de bekende twee slashes. 111 00:06:35,320 --> 00:06:38,440 En als u zult herinneren, in HTML, als ik typ een commentaar, 112 00:06:38,440 --> 00:06:42,540 het ziet er iets dichter bij Dit, dat is een commentaar in HTML. 113 00:06:42,540 --> 00:06:46,570 Dus echt alles tussen deze twee punthaken 114 00:06:46,570 --> 00:06:50,060 is nu PHP-code, die blijkt uit het feit 115 00:06:50,060 --> 00:06:53,270 dat deze kleine commentaarsymbool wordt omgezet in een reactie. 116 00:06:53,270 --> 00:06:58,420 >> Dus elke keer dat u schrijft PHP-code, zelfs als er geen HTML-code daarbuiten, 117 00:06:58,420 --> 00:07:02,720 het altijd gaat worden ingesloten in deze punthaken 118 00:07:02,720 --> 00:07:04,080 met vraagtekens. 119 00:07:04,080 --> 00:07:08,260 Je kunt een soort van denken over hoe al het-- van de code die liep in uw C-programma's 120 00:07:08,260 --> 00:07:13,950 werd ingesloten in een int main, leegte, accolade, eind accolade verklaring. 121 00:07:13,950 --> 00:07:17,100 En je zult zien accolades in PHP, ook, maar dit is een soort van 122 00:07:17,100 --> 00:07:20,490 als de belangrijkste methode van PHP. 123 00:07:20,490 --> 00:07:25,630 >> Dus nu, hoe kunnen we iets in PHP doen? 124 00:07:25,630 --> 00:07:29,190 Nu, PHP is een programmeertaal taal, dat is zeer C-achtige, 125 00:07:29,190 --> 00:07:30,970 maar het werkt op het web. 126 00:07:30,970 --> 00:07:33,270 Dus een ding dat je immediately-- één 127 00:07:33,270 --> 00:07:38,130 van de eerste dingen die je echt deed met C werd u gedrukt spullen uit, toch? 128 00:07:38,130 --> 00:07:42,290 Dus in C we dat deden met een printf functie. 129 00:07:42,290 --> 00:07:46,430 We gaven het een string, waarschijnlijk met een nieuwe lijn, 130 00:07:46,430 --> 00:07:49,850 en dan beëindigd we het met een puntkomma. 131 00:07:49,850 --> 00:07:53,790 >> Dus de manier waarop we gaan dat doen in PHP-- want het is niet helemaal printf. 132 00:07:53,790 --> 00:07:55,940 Het is een beetje anders syntax. 133 00:07:55,940 --> 00:08:02,580 De manier waarop we dingen uit te printen in PHP is dat we zeggen: "echo hallo" 134 00:08:02,580 --> 00:08:04,180 of "echo" een woord. 135 00:08:04,180 --> 00:08:09,830 Dat heeft het effect van het doen printf met een string, "hallo." 136 00:08:09,830 --> 00:08:11,990 En het voegt de nieuwe lijn aan. 137 00:08:11,990 --> 00:08:16,000 >> Dus laten we nu te maken sure-- Ik zal er weer een beetje zoomen bit-- 138 00:08:16,000 --> 00:08:18,250 Laten we ervoor zorgen dat die code werkt 139 00:08:18,250 --> 00:08:21,030 want er zou heel wel een bug in de code 140 00:08:21,030 --> 00:08:22,880 dat we zullen moeten aanpakken. 141 00:08:22,880 --> 00:08:25,860 Zodat de server wordt al uitgevoerd. 142 00:08:25,860 --> 00:08:30,630 Dus als we scroll naar beneden naar de bodem, yup, de server is nog steeds actief. 143 00:08:30,630 --> 00:08:34,510 Dus als we tikt u gewoon op deze beetje gelijk hier-- 144 00:08:34,510 --> 00:08:37,620 welcome-- we moeten grote get--. 145 00:08:37,620 --> 00:08:39,930 >> We hebben nog steeds hebben de vertrouwde "Zeg hallo" dialoog, 146 00:08:39,930 --> 00:08:45,750 maar als ik typ in "hallo," we zullen zien dat de tekst "hello" was inderdaad 147 00:08:45,750 --> 00:08:50,080 afgedrukt, dat is precies zoals we hadden verwacht, omdat echo in PHP 148 00:08:50,080 --> 00:08:53,190 is net als een printf statement. 149 00:08:53,190 --> 00:09:01,410 Dus terug naar de code, hoe in P set 6 gedaan de verdeelsleutel die u verstrekt 150 00:09:01,410 --> 00:09:05,920 maken het zo dat PHP zou uitgang van het ding dat je 151 00:09:05,920 --> 00:09:07,920 getypt in op het vorige scherm? 152 00:09:07,920 --> 00:09:10,350 >> En soort onderzoeken waarom dat gebeurt, zijn we 153 00:09:10,350 --> 00:09:15,510 ga naar index.html, waarin is het oorspronkelijke bestand, het bestand dat 154 00:09:15,510 --> 00:09:18,710 verschijnt op het scherm met de knop "Zeg hallo". 155 00:09:18,710 --> 00:09:20,950 Je merkt dat er alle klassieke dingen 156 00:09:20,950 --> 00:09:26,910 we zijn gaan verwachten van HTML zoals als deze dingen, deze tags ingesloten 157 00:09:26,910 --> 00:09:31,080 in de hoek tussen haakjes, zoals PHP maar zonder vraagtekens, 158 00:09:31,080 --> 00:09:34,650 die wijst op een speciale ding naar HTML. 159 00:09:34,650 --> 00:09:36,895 We hebben de titel, dat is "hallo." 160 00:09:36,895 --> 00:09:41,010 En je zult merken dat als we zagen, de titel is "hello" in beide gevallen. 161 00:09:41,010 --> 00:09:43,260 Laten we dit veranderen om "te zeggen" zodat we 162 00:09:43,260 --> 00:09:48,170 kan ons te onderscheiden waar we zijn. 163 00:09:48,170 --> 00:09:49,600 >> Maar we hebben een lichaam gekregen. 164 00:09:49,600 --> 00:09:52,690 En dan is het interessante bit, de bit die verschijnt in de HTML, 165 00:09:52,690 --> 00:09:54,530 is dit formulier element. 166 00:09:54,530 --> 00:09:56,370 En dus hebben we een formulier. 167 00:09:56,370 --> 00:09:58,330 En dit is de sleutel. 168 00:09:58,330 --> 00:10:00,530 Dit is hoe we werken met PHP. 169 00:10:00,530 --> 00:10:05,790 De actie parameter van formulier zegt dat hello.php 170 00:10:05,790 --> 00:10:09,310 is wat we gaan sturen de waarden in dit formulier. 171 00:10:09,310 --> 00:10:13,830 Dit is waar we passeren de parameters, om zo te zeggen. 172 00:10:13,830 --> 00:10:18,680 >> U zult een ander ding hier opmerken is dat de methode "te krijgen." 173 00:10:18,680 --> 00:10:24,450 Er zijn twee primaire methoden waarmee zal 174 00:10:24,450 --> 00:10:28,750 worden met behulp van PHP om gegevens te passeren tussen websites-- webpagina's, 175 00:10:28,750 --> 00:10:30,500 rather-- in deze opdracht. 176 00:10:30,500 --> 00:10:34,070 En deze methoden zijn "krijgen" en "post." 177 00:10:34,070 --> 00:10:37,010 Er zijn een aantal subtiele verschillen tussen GET en POST 178 00:10:37,010 --> 00:10:40,520 die we zullen krijgen into-- we zal "komen" in, als je wil. 179 00:10:40,520 --> 00:10:44,030 >> Maar voor alle opzichten doeleinden, krijgen en post 180 00:10:44,030 --> 00:10:47,120 zijn beide slechts een manier die u parameters doorgeven 181 00:10:47,120 --> 00:10:49,500 met een iets verschillende uitvoeringen. 182 00:10:49,500 --> 00:10:53,500 Voor nu, we gaan krijgen, omdat gebruik krijgen was wat oorspronkelijk werd gebruikt 183 00:10:53,500 --> 00:10:57,340 in het PHP-bestand van P set 6. 184 00:10:57,340 --> 00:11:00,850 En eigenlijk, als we naar binnen gaan en kijken voordat we iets anders heeft bewerkt, 185 00:11:00,850 --> 00:11:03,090 Ik ga om te zeggen hallo to-- wat is uw naam? 186 00:11:03,090 --> 00:11:03,812 >> Publiek: Elliot. 187 00:11:03,812 --> 00:11:04,770 SAM LEVATICH: Oh, jeetje. 188 00:11:04,770 --> 00:11:05,600 Ik weet niet hoe te spellen dat. 189 00:11:05,600 --> 00:11:06,766 Kunt u dat spellen voor mij? 190 00:11:06,766 --> 00:11:08,710 AUDIENCE: E-L-L-I-O-T. 191 00:11:08,710 --> 00:11:09,720 >> SAM LEVATICH: I-O-T? 192 00:11:09,720 --> 00:11:10,440 >> Publiek: Ja. 193 00:11:10,440 --> 00:11:10,960 >> SAM LEVATICH: Perfect. 194 00:11:10,960 --> 00:11:11,210 OK. 195 00:11:11,210 --> 00:11:12,751 Ik denk dat ik wel weet hoe te spellen dat. 196 00:11:12,751 --> 00:11:13,510 Sorry daarvoor. 197 00:11:13,510 --> 00:11:16,560 Maar als we zeggen: "Zeg hallo," het is niet het is niet van plan te laten zien op het scherm 198 00:11:16,560 --> 00:11:18,476 maar omdat we gewijzigd de code een beetje. 199 00:11:18,476 --> 00:11:21,290 Maar als we "Zeg hallo" - OK, dus "hallo" is hier. 200 00:11:21,290 --> 00:11:24,137 Maar als we dichterbij kijken naar de URL zelf, 201 00:11:24,137 --> 00:11:26,220 we zullen zien dat het eindigt met hello.php? name = Elliot. 202 00:11:26,220 --> 00:11:30,980 203 00:11:30,980 --> 00:11:37,180 >> Dus, dit is een manier communiceren naar de volgende webpagina 204 00:11:37,180 --> 00:11:39,240 de parameters die we hebben gepasseerd. 205 00:11:39,240 --> 00:11:40,870 We zeiden name = Elliot. 206 00:11:40,870 --> 00:11:46,290 En dat is uiteindelijk hoe P set 6 toegankelijk de variabele die we doorgegeven 207 00:11:46,290 --> 00:11:47,520 door middel van het formulier. 208 00:11:47,520 --> 00:11:51,470 En dit is iets dat is eigen aan een get aanvraag. 209 00:11:51,470 --> 00:11:57,480 Een get verzoek maakt de parameters bekend in de URL van de website. 210 00:11:57,480 --> 00:12:01,190 >> En je zult herinneren, ook, in P set 6 dat u 211 00:12:01,190 --> 00:12:04,450 had om een ​​functie te schrijven dat zich bezighield met het feit 212 00:12:04,450 --> 00:12:09,700 dat deze query string na een bestand zou kunnen bestaan. 213 00:12:09,700 --> 00:12:14,684 Er kon een vraagteken gevolgd worden door in principe een willekeurig aantal tekens. 214 00:12:14,684 --> 00:12:16,350 En dat is precies wat er aan de hand hier. 215 00:12:16,350 --> 00:12:21,280 En de reden dat je moest ontleden dat in de uitvoering van server.c in P 216 00:12:21,280 --> 00:12:27,570 set 6 is, zodat je kon vertellen de PHP-code die naam = Elliot. 217 00:12:27,570 --> 00:12:30,460 Je moest kunnen ontleden, dat uit de URL 218 00:12:30,460 --> 00:12:35,900 zodat de PHP-bestand in kwestie wist wat het te maken had. 219 00:12:35,900 --> 00:12:39,350 >> Dus hopelijk geeft dit de motivatie om server.c 220 00:12:39,350 --> 00:12:43,900 Nu dat we bewegen op buiten C in PHP. 221 00:12:43,900 --> 00:12:48,240 Dus laten we de blik te richten op de toegang tot dingen door een get verzoek nu 222 00:12:48,240 --> 00:12:48,880 Op dit moment. 223 00:12:48,880 --> 00:12:50,157 Ik ga dit redden. 224 00:12:50,157 --> 00:12:51,240 We hebben niets te veranderen. 225 00:12:51,240 --> 00:12:56,080 Het lijkt erop dat we een invoerveld hebt. 226 00:12:56,080 --> 00:12:58,550 >> We zijn het instellen van een aantal eigenschappen, als we een HTML kunnen doen. 227 00:12:58,550 --> 00:12:59,550 Dit zijn eenvoudige dingen. 228 00:12:59,550 --> 00:13:00,580 We niet deze. 229 00:13:00,580 --> 00:13:03,750 Maar we hebben autocomplete uit, die in feite says-- u weet, 230 00:13:03,750 --> 00:13:05,710 als je dingen typt in het web, soms 231 00:13:05,710 --> 00:13:07,355 het probeert op te vullen dat voor u. 232 00:13:07,355 --> 00:13:08,230 Dus het is een mooi ding. 233 00:13:08,230 --> 00:13:11,700 We willen het uit te zetten voor dit doel. 234 00:13:11,700 --> 00:13:13,970 Dat was een CS50 beslissing. 235 00:13:13,970 --> 00:13:15,640 Dus we kunnen verwijderen dat als we wilden. 236 00:13:15,640 --> 00:13:19,510 >> Autofocus steekt gewoon de cursor in de vorm meteen aan het begin. 237 00:13:19,510 --> 00:13:21,060 Nogmaals, niet te belangrijk. 238 00:13:21,060 --> 00:13:26,220 >> Maar name = "naam" - het is een beetje lastig, want het is de naam en de naam. 239 00:13:26,220 --> 00:13:28,730 Maar we konden hebben veranderd dit iets anders. 240 00:13:28,730 --> 00:13:30,563 En in feite, dat is wat we nu gaan doen. 241 00:13:30,563 --> 00:13:34,830 We zullen zeggen: "persoon", die is een soort van zoals naam 242 00:13:34,830 --> 00:13:36,790 Als een persoon wordt bepaald door hun naam. 243 00:13:36,790 --> 00:13:41,480 >> Dus laten we sluiten dit, heropenen onze website 244 00:13:41,480 --> 00:13:46,110 aangezien onze server loopt nog Apache 50, en we zullen zeggen: hallo, hier is 245 00:13:46,110 --> 00:13:47,200 Elliot weer. 246 00:13:47,200 --> 00:13:48,460 Waarom niet? 247 00:13:48,460 --> 00:13:49,220 Hallo. 248 00:13:49,220 --> 00:13:52,880 En als we hier gaan, we zullen zien dan in plaats van de naam = Elliot, 249 00:13:52,880 --> 00:13:55,200 het zegt persoon = Elliot. 250 00:13:55,200 --> 00:14:00,060 En dat is een direct gevolg van het feit dat we net veranderd name = "persoon." 251 00:14:00,060 --> 00:14:06,840 >> Dus een ingangselement van een HTML-formulier, de veldnaam 252 00:14:06,840 --> 00:14:10,590 is de identificatiecode voor de parameter dat wordt doorgegeven. 253 00:14:10,590 --> 00:14:14,250 Het is alsof je het creëren van een functie "add", dat in twee getallen namen 254 00:14:14,250 --> 00:14:16,670 en je zei int a en b int. 255 00:14:16,670 --> 00:14:22,680 Dat zou de naam van een, en als u een andere vorm, wilde die 256 00:14:22,680 --> 00:14:27,800 kunnen we gewoon doen door te kopiëren en plakken, dan zouden we de naam b hebben. 257 00:14:27,800 --> 00:14:31,030 >> Dus nu we moeten twee parameters die via zijn doorgegeven 258 00:14:31,030 --> 00:14:36,970 naar het volgende website-- de volgende webpagina, hello.php. 259 00:14:36,970 --> 00:14:39,770 En we kunnen eigenlijk zien dat opnieuw als we willen. 260 00:14:39,770 --> 00:14:44,830 Dit is de makkelijkste manier om te gaan met het web code in de IDE, in principe. 261 00:14:44,830 --> 00:14:47,940 U start de server, krijgen hardlopen, en dan elke keer dat u 262 00:14:47,940 --> 00:14:50,649 een aantal wijzigingen, gewoon dicht dat bestand alleen maar om veilig te zijn. 263 00:14:50,649 --> 00:14:52,440 Door op de back-knop is een beetje lastig 264 00:14:52,440 --> 00:14:55,800 omdat het een eerder zou laden versie, niet de meest recente is. 265 00:14:55,800 --> 00:14:59,200 >> En dan moet je gewoon op uw toets opnieuw, pop recht up-- oh, 266 00:14:59,200 --> 00:15:00,510 en nu zijn er twee vormen. 267 00:15:00,510 --> 00:15:10,440 En dus als we het type één ding in elkaar een-- "jason Hirshhorn," voor instance-- 268 00:15:10,440 --> 00:15:11,590 we gedag zeggen. 269 00:15:11,590 --> 00:15:12,840 We kijken naar onze parameters. 270 00:15:12,840 --> 00:15:18,910 Het lijkt erop dat we hebben, zoals verwacht, a = jason en b = Hirshhorn, 271 00:15:18,910 --> 00:15:23,760 de twee parameters vertegenwoordigt wij doorgegeven aan deze functie. 272 00:15:23,760 --> 00:15:27,900 >> Dus laten we nu eigenlijk naar uitvoering van die functionaliteit die we 273 00:15:27,900 --> 00:15:30,840 had P ingesteld 6. 274 00:15:30,840 --> 00:15:32,490 Dus nu zijn we alleen het melden hallo. 275 00:15:32,490 --> 00:15:34,310 En dat is niet erg handig. 276 00:15:34,310 --> 00:15:38,530 We willen een aantal variabele echo die werd doorgegeven aan ons. 277 00:15:38,530 --> 00:15:40,320 En we weten dat de naam van deze variabele. 278 00:15:40,320 --> 00:15:41,770 We hebben een en we hebben b. 279 00:15:41,770 --> 00:15:43,500 Dus we konden kiezen om een ​​echo. 280 00:15:43,500 --> 00:15:45,470 >> Maar hoe kunnen we toegang toe? 281 00:15:45,470 --> 00:15:48,820 Nou, er zijn bepaalde globale variabelen in PHP. 282 00:15:48,820 --> 00:15:51,240 En ik ga schrijven ze hier reacties. 283 00:15:51,240 --> 00:15:59,910 De twee belangrijkste zijn get en post voor ons doel nu. 284 00:15:59,910 --> 00:16:05,350 Dit zijn de arrays of, technisch, de woordenboeken 285 00:16:05,350 --> 00:16:10,540 waar onze variabelen die we overgaan naar de volgende webpagina voor live. 286 00:16:10,540 --> 00:16:14,520 En we zullen snel zien hoe ze te gebruiken. 287 00:16:14,520 --> 00:16:19,720 >> Een andere korte notitie over PHP-code en enkele details van het-- in C, 288 00:16:19,720 --> 00:16:23,260 een variabele declareren of variabelen, 289 00:16:23,260 --> 00:16:24,570 je eerst moest ze verklaren. 290 00:16:24,570 --> 00:16:30,860 En wat je moest doen als je verklaarde ze was zeggen int a of b char. 291 00:16:30,860 --> 00:16:35,630 Je moest de soorten van deze verklaren variabelen voordat je hen geschapen. 292 00:16:35,630 --> 00:16:38,800 PHP-- je niet nodig om een ​​van die te doen. 293 00:16:38,800 --> 00:16:42,522 PHP vraagt ​​niet om het type variabele. 294 00:16:42,522 --> 00:16:44,480 En de manier waarop u maak een variable-- plaats 295 00:16:44,480 --> 00:16:49,930 dan zeggen int, char, string-- dat is echt char *, zoals we weten-- 296 00:16:49,930 --> 00:16:52,180 in plaats van alle doen dat, omdat alles 297 00:16:52,180 --> 00:16:54,620 is van hetzelfde type, typeless, kunnen we net 298 00:16:54,620 --> 00:16:59,210 gebruik maken van een karakter, dat is het dollarteken. 299 00:16:59,210 --> 00:17:03,700 En je zult zien dat het al popping up, kleine autocomplete dingen. 300 00:17:03,700 --> 00:17:11,380 En het is te zeggen dat _GET en _POST zijn twee opties die ik beschikbaar 301 00:17:11,380 --> 00:17:11,900 aan mij. 302 00:17:11,900 --> 00:17:16,430 Sommige andere dingen andere globale variabelen in PHP 303 00:17:16,430 --> 00:17:18,430 dat je zult gebruiken dan de loop van P set 7. 304 00:17:18,430 --> 00:17:20,569 Voor nu gaan we concentreren op krijgen en post. 305 00:17:20,569 --> 00:17:22,910 Maar dit is een nuttig ding dat de IDE doet 306 00:17:22,910 --> 00:17:24,980 waar je ooit hebt getypt in die dollarteken, 307 00:17:24,980 --> 00:17:28,760 het zal beginnen met het invullen van globale variabelen of variabelen die u al hebt gedefinieerd. 308 00:17:28,760 --> 00:17:34,360 >> Dus als je wilde om te bepalen een variabele genaamd "string" 309 00:17:34,360 --> 00:17:38,290 je kon gewoon stel het gelijk aan "hallo." 310 00:17:38,290 --> 00:17:40,100 En het is eigenlijk zo simpel als dat. 311 00:17:40,100 --> 00:17:44,720 En dan kunnen we doen iets als "echo $ string." 312 00:17:44,720 --> 00:17:48,524 De IDE moet gooien sommige fouten als ik doe niets verkeerd, 313 00:17:48,524 --> 00:17:50,190 dus hopelijk ben ik alles goed doen. 314 00:17:50,190 --> 00:17:52,060 Maar bugs altijd doen ontstaan. 315 00:17:52,060 --> 00:17:56,670 >> Een ander lastig ding over PHP is dat het niet is gecompileerd. 316 00:17:56,670 --> 00:18:00,640 Dus met C-programma's, zou je doen de dagelijkse routine van-- principe, 317 00:18:00,640 --> 00:18:02,710 zou je bewerkingen te maken uw code, zou je het op te slaan, 318 00:18:02,710 --> 00:18:04,460 en dan zou je maakt het, waar make was 319 00:18:04,460 --> 00:18:08,830 de stap die de compiler genoemd, kletteren, om uw code te maken, deze tekst 320 00:18:08,830 --> 00:18:10,570 file, in een uitvoerbaar. 321 00:18:10,570 --> 00:18:15,550 PHP is C-achtig, maar het is uitgevoerd on the fly door uw browser. 322 00:18:15,550 --> 00:18:17,640 Dus er is geen manier om te weten. 323 00:18:17,640 --> 00:18:19,790 >> Maak zou gooien die behulpzaam fouten, toch? 324 00:18:19,790 --> 00:18:22,190 Het zou zijn, je heeft deze variabele niet verklaren 325 00:18:22,190 --> 00:18:23,320 voordat je probeert om het te gebruiken. 326 00:18:23,320 --> 00:18:29,120 Je deed al dit slechte stuff-- segfault, segfault, al dat soort leuke tijden 327 00:18:29,120 --> 00:18:31,000 die kwam met make. 328 00:18:31,000 --> 00:18:33,920 PHP is een tweesnijdend zwaard omdat u niet die fouten te krijgen, 329 00:18:33,920 --> 00:18:37,770 maar dat betekent ook dat je niet weet echt wat is er mis met je programma 330 00:18:37,770 --> 00:18:39,840 als je gewoon draaien en het werkt niet. 331 00:18:39,840 --> 00:18:45,130 Maar de debugger moeten wijzen wat hopelijk nuttige kleine dingen 332 00:18:45,130 --> 00:18:47,950 syntactisch die u kunt repareren. 333 00:18:47,950 --> 00:18:52,850 >> Dus nu als we gaan over to-- zeggen, laten we sluiten dat. 334 00:18:52,850 --> 00:18:54,522 Heropenen. 335 00:18:54,522 --> 00:18:55,480 En we zijn terug naar hier. 336 00:18:55,480 --> 00:18:57,210 Dus hebben we een variabele kregen en een variabele b. 337 00:18:57,210 --> 00:18:58,626 En deze zullen uiteindelijk niet uit. 338 00:18:58,626 --> 00:19:01,850 We zullen ze h en g bellen voor geen bijzondere reden. 339 00:19:01,850 --> 00:19:03,120 >> En wij zeggen hallo. 340 00:19:03,120 --> 00:19:07,480 Nu lijkt het alsof onze reeks "hallo" is inderdaad afdrukken. 341 00:19:07,480 --> 00:19:10,460 We hebben een variabele genaamd "string," stel deze gelijk aan "hallo." 342 00:19:10,460 --> 00:19:15,520 Merk op dat we niet moeten doen malloc of een karakter array. 343 00:19:15,520 --> 00:19:19,110 >> In PHP, omdat variabelen zijn typeless, een string 344 00:19:19,110 --> 00:19:22,230 is hetzelfde als voor char alle doeleinden. 345 00:19:22,230 --> 00:19:23,570 Dit zou kunnen worden "hallo." 346 00:19:23,570 --> 00:19:26,340 Dit kon gewoon het karakter k. 347 00:19:26,340 --> 00:19:29,290 Dit kan een nummer 1 zijn. 348 00:19:29,290 --> 00:19:30,300 En het maakt niet uit. 349 00:19:30,300 --> 00:19:33,560 PHP niet schelen het type variabele. 350 00:19:33,560 --> 00:19:34,390 Of, het doet zorg. 351 00:19:34,390 --> 00:19:36,240 Het geeft wanneer u probeert en dingen doen, 352 00:19:36,240 --> 00:19:38,790 maar het maakt niet uit in de verklaring stap. 353 00:19:38,790 --> 00:19:46,960 >> En net als je kunt in C, kunt u verklaren snaren op de stapel als dit 354 00:19:46,960 --> 00:19:51,130 maar zeggen "stack" is een beetje beetje een mogelijke verkeerde benaming als 355 00:19:51,130 --> 00:19:52,230 we praten over PHP. 356 00:19:52,230 --> 00:19:54,020 Maar we hebben geen zorgen over te maken. 357 00:19:54,020 --> 00:19:55,936 Dus kregen we onze reeks "Hallo," en we echo string. 358 00:19:55,936 --> 00:19:58,880 Dus nu hebben we besproken variabelen. 359 00:19:58,880 --> 00:20:06,060 Dus nu moeten we praten over krijgen en posten en voer de laatste ding dat is 360 00:20:06,060 --> 00:20:12,660 nodig om echt deze back-up de functionaliteit van de P stellen 6. 361 00:20:12,660 --> 00:20:14,990 Dus nu zijn we in navolging van de string, maar we 362 00:20:14,990 --> 00:20:17,080 hebben deze variabelen krijgen en post. 363 00:20:17,080 --> 00:20:19,430 En omdat we gebruiken de werkwijze krijgt, 364 00:20:19,430 --> 00:20:24,810 lijkt het logisch dat onze variabele die We zijn geïnteresseerd in zowel a en b, 365 00:20:24,810 --> 00:20:29,870 wordt in de matrix of woordenboek, technisch te krijgen. 366 00:20:29,870 --> 00:20:33,510 >> Dus als we het opzetten van krijgen als deze met je groups-- Ik drukte voeren 367 00:20:33,510 --> 00:20:36,770 en het hield niet het-- maar hier hebben we te krijgen. 368 00:20:36,770 --> 00:20:38,000 En zo krijgen al bestaat. 369 00:20:38,000 --> 00:20:41,380 Dus we kunnen nu al beginnen om de toegang sommige elementen van nemen. 370 00:20:41,380 --> 00:20:45,000 Als we krijgen, deze syntaxis voor arrays in PHP is zeer C-achtige. 371 00:20:45,000 --> 00:20:47,900 We hebben onze twee vierkante haakjes. 372 00:20:47,900 --> 00:20:53,440 >> Dus als we zeggen krijgen in een normale array, kunnen we toegang 373 00:20:53,440 --> 00:20:55,600 de nulde index, de eerste index. 374 00:20:55,600 --> 00:20:56,840 PHP nul index. 375 00:20:56,840 --> 00:21:00,550 We zouden kunnen zeggen nul, één, two-- dingen zoals dit. 376 00:21:00,550 --> 00:21:03,420 En ik heb gezegd dat krijgen is technisch een woordenboek. 377 00:21:03,420 --> 00:21:08,290 Dus wat PHP doet onder de motorkap, dat is een beetje mooier dan C, 378 00:21:08,290 --> 00:21:12,760 is het al geeft u een aantal woordenboek functionaliteit die 379 00:21:12,760 --> 00:21:16,240 is echt hash tabellen, of probeert, vermoedelijk. 380 00:21:16,240 --> 00:21:19,360 Of, technisch gezien kan een proberen zo goed. 381 00:21:19,360 --> 00:21:25,500 Maar PHP is de uitvoering van een hash-tabel, welke een effectieve woordenboek. 382 00:21:25,500 --> 00:21:28,400 >> En dus we weten de naam van onze variabele, toch? 383 00:21:28,400 --> 00:21:32,440 Het wordt doorgegeven de query string door PHP. 384 00:21:32,440 --> 00:21:37,290 We hebben = h en b = g waar en b de namen van de variabelen. 385 00:21:37,290 --> 00:21:41,580 Dus de manier waarop we toegang hebben tot de waarde die overeenkomt met de sleutel 386 00:21:41,580 --> 00:21:45,055 in ons woordenboek is gewoon door te zeggen _GET_GET ["a"]. 387 00:21:45,055 --> 00:21:48,170 388 00:21:48,170 --> 00:21:51,365 >> Dus nu hebben we _GET ["a"]. 389 00:21:51,365 --> 00:21:56,930 En als we vervangen net binnen onze echo, als we echo _GET_GET ["a"] - 390 00:21:56,930 --> 00:22:02,410 en we zullen zien of de debugger gooit eventuele fouten over dit-- 391 00:22:02,410 --> 00:22:05,620 dat bewaren we en sluit dit uit. 392 00:22:05,620 --> 00:22:07,130 Open het. 393 00:22:07,130 --> 00:22:10,390 Dus we gewoon een goed doen , zodat b mag er niet toe. 394 00:22:10,390 --> 00:22:12,980 "haar" en "hem" - "neuriën." "haar" en "hum." 395 00:22:12,980 --> 00:22:14,810 Klinkt goed. 396 00:22:14,810 --> 00:22:18,040 >> En het uitgeprint "haar", die is gek. 397 00:22:18,040 --> 00:22:21,920 Maar dat is precies wat werd er in P set 6. 398 00:22:21,920 --> 00:22:27,240 Kortom, wat P set 6 was doing-- echo hello, 399 00:22:27,240 --> 00:22:31,580 name-- waar het had een variabele naam en het gewoon 400 00:22:31,580 --> 00:22:35,520 vraagt ​​u te typen in dat stukje tekst. 401 00:22:35,520 --> 00:22:37,380 Er was ook enige aanvullende code waar de 402 00:22:37,380 --> 00:22:40,550 Het opgenomen indien statements, die kunnen we nu doen. 403 00:22:40,550 --> 00:22:50,120 >> We kunnen zeggen als deze bestaat, die een functionaliteit in PHP, 404 00:22:50,120 --> 00:22:55,110 _GET Met de underscore, "naam" - die in feite zegt, 405 00:22:55,110 --> 00:22:58,760 "als de naam is ingevuld", omdat we konden hebben geklikt op de knop 406 00:22:58,760 --> 00:23:02,580 Gebruik het formulier om zonder iets in die veld te typen. 407 00:23:02,580 --> 00:23:07,760 En we wrap dat in onze vriendelijke accolades. 408 00:23:07,760 --> 00:23:09,175 We kunnen een andere verklaring. 409 00:23:09,175 --> 00:23:13,300 410 00:23:13,300 --> 00:23:18,820 En dat is alles binnen de PHP-hoek beugel, vraagteken, hoekijzer, 411 00:23:18,820 --> 00:23:20,040 als je wil. 412 00:23:20,040 --> 00:23:21,750 >> En nu zullen we zien of dit werkt. 413 00:23:21,750 --> 00:23:26,300 Ik blijf wachten tot het debuggen en onzin op mij, eigenlijk, 414 00:23:26,300 --> 00:23:28,410 maar het is nog niet. 415 00:23:28,410 --> 00:23:30,830 Misschien gaat het nu want ik had het over. 416 00:23:30,830 --> 00:23:31,330 Ja. 417 00:23:31,330 --> 00:23:32,510 Het deed, in feite. 418 00:23:32,510 --> 00:23:34,610 Dus, is er niets opdagen. 419 00:23:34,610 --> 00:23:38,750 Dat komt door iets mis die ik schreef in de PHP-code. 420 00:23:38,750 --> 00:23:42,844 En ik hebben het debuggen is lastig omdat in PHP, we 421 00:23:42,844 --> 00:23:45,260 niet op voorhand compileren en de compiler is niet leuk, 422 00:23:45,260 --> 00:23:46,710 hier is waar je fouten. 423 00:23:46,710 --> 00:23:49,690 >> Maar wat we kunnen doen is-- doen mensen herinneren 424 00:23:49,690 --> 00:23:57,010 hoe om te kijken naar de verschillende netwerk vraagt ​​dat PHP-- of dat websites 425 00:23:57,010 --> 00:23:57,620 stuur? 426 00:23:57,620 --> 00:24:00,290 [? Malin?] Deed dit in lezing of twee keer. 427 00:24:00,290 --> 00:24:05,830 Herinnert u zich waar we naar zoeken de verschillende schulden en 200 OKs, 428 00:24:05,830 --> 00:24:09,780 al deze codes die worden verzonden via HTTP van webpagina naar webpagina? 429 00:24:09,780 --> 00:24:12,514 Heeft iemand herinneren waar we gaan om dat te doen? 430 00:24:12,514 --> 00:24:13,787 >> Publiek: Pagina Bron. 431 00:24:13,787 --> 00:24:14,870 SAM LEVATICH: Pagina bron. 432 00:24:14,870 --> 00:24:15,890 Precies. 433 00:24:15,890 --> 00:24:19,230 Als je naar Pagina Source-- perfect. 434 00:24:19,230 --> 00:24:21,630 Dus Pagina Bron trekt de inspecteur. 435 00:24:21,630 --> 00:24:23,140 >> En ik ben met behulp van Safari. 436 00:24:23,140 --> 00:24:25,790 Veel van jullie zullen waarschijnlijk worden met behulp van Chrome of Firefox. 437 00:24:25,790 --> 00:24:27,750 Maar zolang je bent in elke moderne browser-- 438 00:24:27,750 --> 00:24:29,500 en voel je vrij om te volgen mee als je wilt. 439 00:24:29,500 --> 00:24:32,560 U kunt typen op deze code of kijk maar in de P set 6 440 00:24:32,560 --> 00:24:35,820 directory voor een aantal soortgelijke dingen. 441 00:24:35,820 --> 00:24:41,020 hello.php is wat we zijn momenteel aan emuleren. 442 00:24:41,020 --> 00:24:42,476 >> Er zijn dus verschillende tabs. 443 00:24:42,476 --> 00:24:43,850 We kunnen kijken naar alle middelen. 444 00:24:43,850 --> 00:24:45,810 We kunnen de broncode te zien. 445 00:24:45,810 --> 00:24:49,900 Zodat het lijkt alsof het niet voorbij lichaam in het einde. 446 00:24:49,900 --> 00:24:54,890 Het vond een fout in PHP en het stopte het laden van de hele webpagina. 447 00:24:54,890 --> 00:24:58,320 We hebben niet eens een einde tag voor HTML of wat dan ook. 448 00:24:58,320 --> 00:25:07,189 >> En als we kijken naar het netwerk, kunnen we zien dat we worden een verzoek gestuurd. 449 00:25:07,189 --> 00:25:07,980 Dit is het domein. 450 00:25:07,980 --> 00:25:09,270 Dit is het adres. 451 00:25:09,270 --> 00:25:10,070 Het is een document. 452 00:25:10,070 --> 00:25:14,310 We gebruiken de methode get. 453 00:25:14,310 --> 00:25:15,760 >> En het is rood. 454 00:25:15,760 --> 00:25:19,030 Of werd rood toen ik niet te selecteren. 455 00:25:19,030 --> 00:25:22,680 Hoe kan ik dit ongedaan? 456 00:25:22,680 --> 00:25:23,980 Nou, het was rood. 457 00:25:23,980 --> 00:25:25,201 Laat me opfrissen. 458 00:25:25,201 --> 00:25:25,700 Daar is het. 459 00:25:25,700 --> 00:25:26,640 Nu is het rood. 460 00:25:26,640 --> 00:25:30,530 >> Dus het is rood, hetgeen betekent is mislukt, dat is slecht. 461 00:25:30,530 --> 00:25:32,280 Dus laten we eens onderzoeken waarom het mislukken. 462 00:25:32,280 --> 00:25:37,070 Dus alles wat de pagina bron kan eigenlijk vertellen is uw ding 463 00:25:37,070 --> 00:25:38,720 werkte niet, die we al kunnen zien. 464 00:25:38,720 --> 00:25:42,100 Dus idealiter zou er zijn een handig hulpmiddel. 465 00:25:42,100 --> 00:25:45,710 En er zijn enkele browser-extensies die u in staat te debuggen PHP, 466 00:25:45,710 --> 00:25:50,490 maar we zijn niet van plan om het schrijven van een ton van PHP, 467 00:25:50,490 --> 00:25:53,190 dus het is waarschijnlijk gewoon het beste om te kijken door de code 468 00:25:53,190 --> 00:25:56,760 zorgvuldig en gewoon ervoor zorgen dat het is niet iets anders te doen. 469 00:25:56,760 --> 00:26:03,876 >> Dus laten we zien als de indeling van deze Als verklaring is waar het probleem zit. 470 00:26:03,876 --> 00:26:07,420 Ik wil laden die hier terug. 471 00:26:07,420 --> 00:26:09,830 Hallo Hoi. 472 00:26:09,830 --> 00:26:11,350 Dus er is een probleem. 473 00:26:11,350 --> 00:26:15,130 >> Dus voor de juiste syntaxis van PHP, PHP gaat 474 00:26:15,130 --> 00:26:17,369 C-achtige in dat je lussen zien. 475 00:26:17,369 --> 00:26:18,410 Je zult zien of verklaringen. 476 00:26:18,410 --> 00:26:20,920 Je zult al deze vrienden te zien dat u bekend bent geworden 477 00:26:20,920 --> 00:26:24,820 met in de loop van deze CS50 semester. 478 00:26:24,820 --> 00:26:29,960 Maar de beste manier om erachter te komen hoe doe iets in PHP is Google het 479 00:26:29,960 --> 00:26:33,170 of om te kijken naar enkele voorbeelden van PHP-code omdat je weet dat de functionaliteit. 480 00:26:33,170 --> 00:26:35,080 >> Je weet wat je kunt met het programma. 481 00:26:35,080 --> 00:26:35,976 U kunt lus. 482 00:26:35,976 --> 00:26:37,600 U kunt loop zo vaak als je wilt. 483 00:26:37,600 --> 00:26:39,433 U kunt loop in alle allerlei verschillende manieren. 484 00:26:39,433 --> 00:26:40,700 U kunt functies creëren. 485 00:26:40,700 --> 00:26:43,241 U kunt functies te creëren dat noemen andere functies, functies 486 00:26:43,241 --> 00:26:44,150 die zichzelf noemen. 487 00:26:44,150 --> 00:26:45,733 En je hebt namen voor deze concepten. 488 00:26:45,733 --> 00:26:49,860 Je hebt recursie, lussen, Als andere besturingsstromen. 489 00:26:49,860 --> 00:26:51,300 En dus Google is je beste vriend. 490 00:26:51,300 --> 00:26:53,540 Zelfs zeggen, "PHP als statement "en daar zult 491 00:26:53,540 --> 00:26:57,740 zijn tonnen van berichten met antwoorden anderen 492 00:26:57,740 --> 00:27:02,090 die dezelfde vragen die je hebt gehad, die net beginnen met PHP 493 00:27:02,090 --> 00:27:03,820 en zijn nieuwsgierig naar een syntax ding. 494 00:27:03,820 --> 00:27:08,480 >> Want we hebben de luxe van het in staat om te kijken naar de code in P set 6, 495 00:27:08,480 --> 00:27:14,980 we eigenlijk trek hem omhoog en zie dat Oké, hier is iets interessant. 496 00:27:14,980 --> 00:27:18,070 Dus dit is wat het eigenlijk leek in P set 6. 497 00:27:18,070 --> 00:27:20,340 Dus als we gaan door dit, kunnen we zien dat we hebben 498 00:27:20,340 --> 00:27:27,150 kreeg een aantal van deze kleine PHP-achtige vraagteken bits. 499 00:27:27,150 --> 00:27:29,050 >> En er zijn geen accolades. 500 00:27:29,050 --> 00:27:30,250 Er zijn dubbele punten. 501 00:27:30,250 --> 00:27:32,340 En er zijn krullend bretels in PHP, maar dit 502 00:27:32,340 --> 00:27:38,700 is een formaat en een manier van doen PHP die goed werkt met HTML 503 00:27:38,700 --> 00:27:43,830 want zoals u zult zien, we sluiten off deze PHP bits-- de elses 504 00:27:43,830 --> 00:27:49,770 en de mitsen en alle dat-- en dan we her en HTML binnen hen 505 00:27:49,770 --> 00:27:54,640 terwijl na control flow door PHP uiteengezet. 506 00:27:54,640 --> 00:27:58,480 >> Dus ik ga gewoon korte wandeling door dit 507 00:27:58,480 --> 00:28:01,740 want het is een groot deel van de dezelfde concepten die we eerder deden. 508 00:28:01,740 --> 00:28:07,280 We hebben zo niet leeg is, haakjes, _GET_GET ['naam']. 509 00:28:07,280 --> 00:28:08,500 Dit is allemaal dezelfde dingen. 510 00:28:08,500 --> 00:28:15,430 We gebruiken de _GET woordenboek dat PHP stuurt op verzoek van de formulieren, 511 00:28:15,430 --> 00:28:20,720 omdat het de parameters van actie, en de methode is te krijgen. 512 00:28:20,720 --> 00:28:22,110 En dan die eindigt dat. 513 00:28:22,110 --> 00:28:27,420 De dikke darm is een betekenaar om dit gewoon doen als de if true. 514 00:28:27,420 --> 00:28:29,490 Het is als een accolade. 515 00:28:29,490 --> 00:28:33,320 En in feite is het een accolade in andere talen als Python, 516 00:28:33,320 --> 00:28:37,070 die u kunt tegenkomen als je gewoon dat doen voor je afstudeerproject. 517 00:28:37,070 --> 00:28:40,170 >> En dan is deze lijn, hallo. 518 00:28:40,170 --> 00:28:41,510 Dan hebben we deze bizarre zaak. 519 00:28:41,510 --> 00:28:43,190 We hebben meer haken. 520 00:28:43,190 --> 00:28:46,140 Er is geen HTTP er-- of PHP, sorry. 521 00:28:46,140 --> 00:28:47,250 Maar er is een gelijk-teken. 522 00:28:47,250 --> 00:28:50,625 En dan hebben we een functie, htmlspecialchars (_GEThtmlspecialchars (_GET ["naam"]). 523 00:28:50,625 --> 00:28:54,440 524 00:28:54,440 --> 00:28:58,040 Dit is een soort van als een meer geavanceerde versie van echo. 525 00:28:58,040 --> 00:29:01,450 Als wij als een manier had echo om dingen uit te printen in PHP. 526 00:29:01,450 --> 00:29:03,890 Dit is een functie die gedefinieerd in PHP dat 527 00:29:03,890 --> 00:29:08,160 zal zich bezighouden met wat meer vervelende personages en bytewaarden 528 00:29:08,160 --> 00:29:09,540 dat je zou kunnen doorgeven. 529 00:29:09,540 --> 00:29:11,070 Het is altijd het veiligst om dit te gebruiken. 530 00:29:11,070 --> 00:29:14,930 Maar echo zal het werk doen prima als we niet 531 00:29:14,930 --> 00:29:17,620 omgaan met iets te smerig. 532 00:29:17,620 --> 00:29:20,340 >> En dus heeft dit hetzelfde effect principe, 533 00:29:20,340 --> 00:29:26,360 dit spul tussen de vraag merken wordt geëvalueerd door PHP. 534 00:29:26,360 --> 00:29:34,490 htmlspecialchars geeft een aardige HTML gedrukte waarde van _GET_GET ["naam"], dat wil zeggen 535 00:29:34,490 --> 00:29:36,010 wat we getypt in de vorm. 536 00:29:36,010 --> 00:29:40,025 En dan zal het gedag zeggen, komma ruimte, en dan dat. 537 00:29:40,025 --> 00:29:42,910 Dat hele ding tussen de punthaken 538 00:29:42,910 --> 00:29:47,390 worden vervangen door welke htmlspecialchars steekt. 539 00:29:47,390 --> 00:29:49,390 Dus dat is in principe gelijk om wat we doen. 540 00:29:49,390 --> 00:29:54,760 En we hebben een andere verklaring is dat hello wereld, wat logisch is. 541 00:29:54,760 --> 00:29:58,070 Dus laten we nu teruggaan naar onze code en zie exactly-- oh. 542 00:29:58,070 --> 00:30:02,200 Ik zei bestaat, die niet een ding dat we wilden doen. 543 00:30:02,200 --> 00:30:05,370 We wilden niet leeg te zeggen. 544 00:30:05,370 --> 00:30:10,020 >> En dus zou dit een beetje te werken beetje beter, niet leeg _GET_GET ['naam']. 545 00:30:10,020 --> 00:30:12,710 En dat accolade overeenkomt met dat accolade. 546 00:30:12,710 --> 00:30:15,210 We hebben ons accolades kreeg hier. 547 00:30:15,210 --> 00:30:17,790 echo hello _GET ['naam']. 548 00:30:17,790 --> 00:30:19,912 Laten we eens zien of dit werkt een beetje beter. 549 00:30:19,912 --> 00:30:21,350 We zijn nog steeds het uitvoeren van onze server. 550 00:30:21,350 --> 00:30:23,910 Hallo Jason. 551 00:30:23,910 --> 00:30:24,780 Hallo Jason. 552 00:30:24,780 --> 00:30:25,810 En het werkte deze keer. 553 00:30:25,810 --> 00:30:29,860 En dus dat is een bewijs dat je kunt inderdaad 554 00:30:29,860 --> 00:30:35,180 Gebruik de accolades die u kennen en liefhebben in PHP code in HTML. 555 00:30:35,180 --> 00:30:41,100 De PHP-code die aan u PSET 6-- PSET 6-- 556 00:30:41,100 --> 00:30:44,760 geeft een andere manier om dat te doen hetzelfde. 557 00:30:44,760 --> 00:30:49,220 >> Dus nu hebben we de kracht. 558 00:30:49,220 --> 00:30:55,740 Wij hebben de functionaliteit te implementeren de PHP-code die we zagen in PSET 6 559 00:30:55,740 --> 00:30:57,390 door onszelf, in principe. 560 00:30:57,390 --> 00:31:01,350 Voordat ik verder gaan, wat zijn sommige van de vragen die je hebt op dit punt? 561 00:31:01,350 --> 00:31:02,066 Ja [onverstaanbaar]. 562 00:31:02,066 --> 00:31:06,512 >> Publiek: Dus in de versie pset6, wanneer je het uit te voeren, is er een ruimte. 563 00:31:06,512 --> 00:31:09,330 En ik kan zien waar de ruimte na de komma. [Onverstaanbaar] start 564 00:31:09,330 --> 00:31:10,700 de open beugel. 565 00:31:10,700 --> 00:31:15,420 Hoe ziet u de ruimte op te nemen in de manier waarop je je eigen codes schreef? 566 00:31:15,420 --> 00:31:17,910 >> SPEAKER: Dat is een goede vraag. 567 00:31:17,910 --> 00:31:21,650 En dus laten we dat uit. 568 00:31:21,650 --> 00:31:24,450 Dus dat is een heel goede vraag en een die ik niet overwegen. 569 00:31:24,450 --> 00:31:25,950 Maar laten we het samen doen. 570 00:31:25,950 --> 00:31:30,280 >> Dus allereerst, wat Ik ben bezig met echo 571 00:31:30,280 --> 00:31:33,690 is wanneer we net echo hello, hello is uitgangen. 572 00:31:33,690 --> 00:31:41,310 Als we nu echo dit te krijgen op een afzonderlijke lijn, laten we eens kijken wat er gebeurt. 573 00:31:41,310 --> 00:31:43,740 Dus we hierop klikt. 574 00:31:43,740 --> 00:31:45,220 We blijven zeggen, hi Jason. 575 00:31:45,220 --> 00:31:48,690 Dus nogmaals, we hebben niet deze ruimte. 576 00:31:48,690 --> 00:31:53,090 >> En dat komt omdat, in PHP, toen we hebben echo, 577 00:31:53,090 --> 00:31:55,820 ongeacht hoeveel spaces-- nope, niet de V-- 578 00:31:55,820 --> 00:32:01,770 ongeacht hoeveel ruimte we in hier-- als we nu laden dat weer omhoog, 579 00:32:01,770 --> 00:32:03,010 hi Jason. 580 00:32:03,010 --> 00:32:05,770 Ja, zie, al die ruimten werd opgegeten. 581 00:32:05,770 --> 00:32:08,020 En dat is iets dat de echo functie doet. 582 00:32:08,020 --> 00:32:11,110 >> Zo te verzorgen die ruimte en dit is 583 00:32:11,110 --> 00:32:14,960 een van de redenen waarom je niet gebruik maken van echo 584 00:32:14,960 --> 00:32:18,200 en u htmlspecialchars gebruiken in plaats. 585 00:32:18,200 --> 00:32:22,140 Ik ben benieuwd wat zou er gebeuren als we dit deden 586 00:32:22,140 --> 00:32:26,700 waar we een omsloten ruimte in een string. 587 00:32:26,700 --> 00:32:29,720 Ik ben eerlijk gezegd niet zeker wat zal gebeuren als ik dit doe. 588 00:32:29,720 --> 00:32:30,790 >> Dus dat is een manier. 589 00:32:30,790 --> 00:32:32,210 Dat is een manier om te zorgen voor het. 590 00:32:32,210 --> 00:32:34,840 Als u de ruimte in te wikkelen een tekenreeks, dan de ruimte 591 00:32:34,840 --> 00:32:36,920 uitgestuurd mooi zijn door echo. 592 00:32:36,920 --> 00:32:41,930 De veiligste om te doen is htmlspecialchars te doen. 593 00:32:41,930 --> 00:32:43,800 Dat is altijd de veilige gok. 594 00:32:43,800 --> 00:32:47,050 Maar nu hebben we een manier om te doen met echo indien nodig. 595 00:32:47,050 --> 00:32:50,700 En op dezelfde wijze kunnen we echo nieuwe lijnen, al het soort 596 00:32:50,700 --> 00:32:53,550 dingen die je bent vertrouwd te doen in PHP. 597 00:32:53,550 --> 00:32:57,460 >> Iemand anders, wat zijn meer vragen dat andere mensen 598 00:32:57,460 --> 00:33:01,090 op dit moment over PHP? 599 00:33:01,090 --> 00:33:04,620 Als mensen kwamen een beetje laat, Ik ben blij om te verblijven na een beetje 600 00:33:04,620 --> 00:33:06,420 en praten over een aantal van het begin. 601 00:33:06,420 --> 00:33:10,380 En het is ook alle livestreamed, en gearchiveerd, dat is gek. 602 00:33:10,380 --> 00:33:13,960 >> Hoe dan ook, dus laten we nu doen wat meer geavanceerde dingen met PHP. 603 00:33:13,960 --> 00:33:18,790 En een van de eerste dingen die je werden geïntroduceerd in C was loops. 604 00:33:18,790 --> 00:33:24,060 PHP en heeft een krachtiger voor lus noemde de foreach lus. 605 00:33:24,060 --> 00:33:37,940 En het lijkt erop dat dit-- voor elk leeg als leeg, accolades, doe het ding. 606 00:33:37,940 --> 00:33:41,500 Dus dit is eigenlijk een afkorting. 607 00:33:41,500 --> 00:33:45,380 >> Zie, de lus als een syntactische bouw 608 00:33:45,380 --> 00:33:50,590 is in C en assemblage ontwikkeld taal en dingen willen. 609 00:33:50,590 --> 00:33:56,300 Ontwikkeld in C, precies, een afkorting voor veel van de soorten lussen 610 00:33:56,300 --> 00:33:57,750 dat mensen zouden zien. 611 00:33:57,750 --> 00:34:01,230 Zoals wanneer je schreef een lus, is er was vaak een initialisatie stap 612 00:34:01,230 --> 00:34:04,700 geëxecuteerd meteen aan het begin, een aandoening waarbij de lus stop-- 613 00:34:04,700 --> 00:34:07,030 en dat is de functie dat is gewoon een tijdje loop, 614 00:34:07,030 --> 00:34:10,040 of dat een tijdje heeft precies alleen dat feature-- en dan 615 00:34:10,040 --> 00:34:12,320 Een incrementeringsstap eind. 616 00:34:12,320 --> 00:34:16,489 En dus zou je vaak jezelf het schrijven van code zoals het volgende. 617 00:34:16,489 --> 00:34:19,780 Ik ga een aantal van deze te wissen. 618 00:34:19,780 --> 00:34:23,850 >> Maar als we itereren door middel van karakters in een array, 619 00:34:23,850 --> 00:34:26,960 bijvoorbeeld, zoals we hebben kreeg een array van karakters. 620 00:34:26,960 --> 00:34:29,400 Sorry dat C. Ik weet terug te brengen, je dacht dat je klaar waren. 621 00:34:29,400 --> 00:34:31,900 Maar het is alleen voor het doel van het leren van PHP, dat beloof ik. 622 00:34:31,900 --> 00:34:38,880 Dus als je een char str met een lengte van 8, en laten 623 00:34:38,880 --> 00:34:46,760 zeg het zegt Hellooo met een trailing null. 624 00:34:46,760 --> 00:34:48,270 Groot, dus dat is onze string. 625 00:34:48,270 --> 00:34:51,469 >> En dan hadden we een lus. 626 00:34:51,469 --> 00:34:53,730 We hebben int i gelijk is aan 0. 627 00:34:53,730 --> 00:34:57,960 628 00:34:57,960 --> 00:35:09,110 En we willen om af te sluiten bij het str van i gelijk niet gelijk is aan nul, 629 00:35:09,110 --> 00:35:11,590 omdat we te verlaten wanneer het gelijk is aan nul. 630 00:35:11,590 --> 00:35:19,170 En dan doen we i ++ bij elke punt in de lus. 631 00:35:19,170 --> 00:35:30,480 Sportief met str i. 632 00:35:30,480 --> 00:35:34,950 >> Dus de basisformule was, we hadden deze array dat we 633 00:35:34,950 --> 00:35:37,910 wilde als afzonderlijke elementen te behandelen. 634 00:35:37,910 --> 00:35:45,170 Maar wat we moesten doen is dat we moesten eigenlijk een apart integer 635 00:35:45,170 --> 00:35:50,530 variabele die telde elke keer dat we gingen door de lus. 636 00:35:50,530 --> 00:35:55,240 En dan zouden we dan bellen strstr [i] als wat we echt wilden doen 637 00:35:55,240 --> 00:35:57,280 is gewoon gaan karakter van karakter, toch? 638 00:35:57,280 --> 00:36:00,185 We willen niet een hogen integer en dan dat getal 639 00:36:00,185 --> 00:36:02,780 individueel toegang tot elk karakter. 640 00:36:02,780 --> 00:36:04,410 We willen echt teken voor teken. 641 00:36:04,410 --> 00:36:08,600 >> En dus voor elk intelligent berekent dat voor ons. 642 00:36:08,600 --> 00:36:11,875 Als we een array, die kunnen we verklaren in PHP 643 00:36:11,875 --> 00:36:15,900 als gewoon-- als we een variabele genoemd, laten we noemen het array. 644 00:36:15,900 --> 00:36:19,840 De wonderen geen typen, het is net als elke andere variabele. 645 00:36:19,840 --> 00:36:20,730 Het is gewoon een array. 646 00:36:20,730 --> 00:36:26,890 En we hebben een beetje [onverstaanbaar], zoals 1, 2, 3, maar een soort van geïnitialiseerd array. 647 00:36:26,890 --> 00:36:29,680 Het is OK, is het niet van mijn foreach. 648 00:36:29,680 --> 00:36:33,120 >> Maar als we foreach-- eigenlijk Ik typte dat een beetje verkeerd. 649 00:36:33,120 --> 00:36:34,840 Er zijn twee manieren om een ​​foreach lus doen. 650 00:36:34,840 --> 00:36:37,400 Er is in de syntax en de als syntax. 651 00:36:37,400 --> 00:36:40,580 En we gaan doen in de eerste syntax, niet zo. 652 00:36:40,580 --> 00:36:41,780 Dat is mijn fout. 653 00:36:41,780 --> 00:36:53,785 >> Dus foreach num in array, echo num. 654 00:36:53,785 --> 00:36:56,970 655 00:36:56,970 --> 00:36:59,500 En PHP is schreeuwen tegen me om wat voor reden. 656 00:36:59,500 --> 00:37:03,520 Het vinden van een onverwachte in in iets, 657 00:37:03,520 --> 00:37:05,820 dat is een beetje een last. 658 00:37:05,820 --> 00:37:09,105 Maar we zullen uitzoeken waarom dat in een moment. 659 00:37:09,105 --> 00:37:11,960 660 00:37:11,960 --> 00:37:13,610 Dus niet zo. 661 00:37:13,610 --> 00:37:15,040 Laten we proberen met behulp van de als. 662 00:37:15,040 --> 00:37:17,310 Het geeft de voorkeur aan als syntax is lijkt. 663 00:37:17,310 --> 00:37:22,550 Dus laten we doen foreach array num. 664 00:37:22,550 --> 00:37:24,520 >> Dus een beetje uitleg van wat er net gebeurd 665 00:37:24,520 --> 00:37:30,670 wordt het als syntax goed saying-- eerste, laten we eens kijken naar wat deze afgedrukt. 666 00:37:30,670 --> 00:37:32,260 Zo openen we onze IDE. 667 00:37:32,260 --> 00:37:33,110 Wij gaan hier. 668 00:37:33,110 --> 00:37:35,845 Wij zeggen, Hallo Jason. 669 00:37:35,845 --> 00:37:41,390 En het deed 123, waarvan de inhoud was van de array die we gemaakt boven. 670 00:37:41,390 --> 00:37:45,500 >> Dus duiken in deze foreach lus, hebben we een reeks variabele genaamd 671 00:37:45,500 --> 00:37:47,470 die een matrix van drie getallen. 672 00:37:47,470 --> 00:37:52,120 En dan zijn we foreach doen array num, echo num. 673 00:37:52,120 --> 00:37:54,990 En dat is meer intuïtiever dan een voor lop. 674 00:37:54,990 --> 00:38:02,380 We zeggen, de behandeling van elk van de dingen die in de array als num, 675 00:38:02,380 --> 00:38:05,180 Ik wil dat je me num geven. 676 00:38:05,180 --> 00:38:06,640 En dat is precies wat het doet. 677 00:38:06,640 --> 00:38:12,000 >> PHP is de berekening van die wanneer u foreach scala zeggen, 678 00:38:12,000 --> 00:38:16,080 en je te maken hebt met een array, wat je gaat te willen dan herhalen 679 00:38:16,080 --> 00:38:19,950 de tekens in die array, is de ints in die array, 680 00:38:19,950 --> 00:38:21,920 de elementen die array. 681 00:38:21,920 --> 00:38:26,110 En het is u te laten slaan deze variabelen als num, 682 00:38:26,110 --> 00:38:29,360 en dan gewoon uitgang num meteen in plaats van te zeggen, 683 00:38:29,360 --> 00:38:34,090 Ik heb een variabele genaamd i, en dan wil ik de uitgang strstr [i]. 684 00:38:34,090 --> 00:38:39,130 >> En zo dat ons toelaat om leuke dingen te doen. 685 00:38:39,130 --> 00:38:43,330 Net als in principe hebben we niet te maken deze variabelen zoals ik en doe alles 686 00:38:43,330 --> 00:38:45,090 Dit incrementering spul aan het einde. 687 00:38:45,090 --> 00:38:48,290 PHP zorgt dat alles voor je. 688 00:38:48,290 --> 00:38:54,470 >> Dus nu laten we praten over foreach als dit geldt voor onze _GET woordenboek. 689 00:38:54,470 --> 00:38:57,170 Dus we zullen dit snel te reageren op. 690 00:38:57,170 --> 00:39:02,030 Dus hebben we onze _GET array. 691 00:39:02,030 --> 00:39:04,361 We hebben deze variabele. 692 00:39:04,361 --> 00:39:05,610 En het heeft een aantal dingen in. 693 00:39:05,610 --> 00:39:10,275 >> Op dit moment hebben we slechts één variabele doorgegeven aan, die naam. 694 00:39:10,275 --> 00:39:13,420 Maar als we op Enter, nu kunnen we twee variabelen. 695 00:39:13,420 --> 00:39:17,910 We kunnen naam en leeftijd zijn bijvoorbeeld als we willen de leeftijd te krijgen en ook 696 00:39:17,910 --> 00:39:20,960 de naam van een persoon, grappig genoeg. 697 00:39:20,960 --> 00:39:25,690 >> Dus nu _GET gaat om een ​​te zijn woordenboek met twee elementen, 698 00:39:25,690 --> 00:39:27,980 met twee belangrijke waarde paren. 699 00:39:27,980 --> 00:39:33,490 En de eerste key-- ik ga schrijf deze op het bord ook. 700 00:39:33,490 --> 00:39:37,136 We hebben ons woordenboek is _GET. 701 00:39:37,136 --> 00:39:39,520 Sorry, het is een beetje moeilijk te zien. 702 00:39:39,520 --> 00:39:46,690 Maar binnen ons woordenboek hebben we te noemen, die zal iets zijn 703 00:39:46,690 --> 00:39:47,680 dat we krijgen. 704 00:39:47,680 --> 00:39:53,040 En we zullen leeftijd hebben, die ook is gaat om iets dat we krijgen zijn. 705 00:39:53,040 --> 00:39:56,020 En dit is het geheel van ons woordenboek. 706 00:39:56,020 --> 00:39:57,730 >> Dus het heeft twee elementen in. 707 00:39:57,730 --> 00:40:01,310 En omdat foreach loops zijn slim, we 708 00:40:01,310 --> 00:40:04,900 zou kunnen denken, en correct zou kunnen denken dat foreach 709 00:40:04,900 --> 00:40:08,080 kan doorlopen deze woordenboek, uit te printen 710 00:40:08,080 --> 00:40:10,850 de waarden van naam en leeftijd. 711 00:40:10,850 --> 00:40:14,510 >> Dus laten we in het feit dat ook te doen. 712 00:40:14,510 --> 00:40:17,520 Laten we de bouw van een foreach lus. 713 00:40:17,520 --> 00:40:23,351 En we gaan doen voor _GET zo. 714 00:40:23,351 --> 00:40:24,850 En we gaan het volgende doen. 715 00:40:24,850 --> 00:40:34,186 Dus laten we zien wat er gebeurt als we het type enkel woord, en dan zeggen echo woord. 716 00:40:34,186 --> 00:40:40,540 We zijn ook van plan om een ​​nieuwe lijn echo alleen maar om het een beetje duidelijker te maken, 717 00:40:40,540 --> 00:40:41,260 wat is er aan de hand. 718 00:40:41,260 --> 00:40:42,890 >> Dus laten we zien. 719 00:40:42,890 --> 00:40:44,390 Het is niet te geven me geen fouten. 720 00:40:44,390 --> 00:40:46,810 En we zullen deze sluiten. 721 00:40:46,810 --> 00:40:51,020 Op onze website, gaat u doen veel van die in de loop van pset7. 722 00:40:51,020 --> 00:40:53,890 Dus we zeggen dat mijn naam is Sam. 723 00:40:53,890 --> 00:40:58,560 Mijn leeftijd is 45. 724 00:40:58,560 --> 00:41:01,060 Het is niet. 725 00:41:01,060 --> 00:41:05,640 Maar het wordt afgedrukt, zoals verwacht, Sam 45. 726 00:41:05,640 --> 00:41:08,930 >> En dus je zult merken dat wat foreach lus did-- hier 727 00:41:08,930 --> 00:41:12,360 laten we gaan terug naar die dus het is op de board-- krijgen we _GET als woord. 728 00:41:12,360 --> 00:41:15,130 En er waren vier dingen in _GET. 729 00:41:15,130 --> 00:41:17,410 Maar het alleen afgedrukt twee dingen. 730 00:41:17,410 --> 00:41:21,290 foreach, is haar intelligentie zelf, uitgegaan dat wat we wilden 731 00:41:21,290 --> 00:41:24,100 was de waarden niet de sleutels. 732 00:41:24,100 --> 00:41:27,800 >> Maar er is een manier dat we konden printen de sleutels ook, als we wilden. 733 00:41:27,800 --> 00:41:30,810 Als we wilden ook weten wat deze variabelen werden genoemd, 734 00:41:30,810 --> 00:41:33,540 er is een manier dat we kan deze toegang ook. 735 00:41:33,540 --> 00:41:36,840 En de weg naar een soort van dat te doen, zodat we kunnen zeggen, laat echt 736 00:41:36,840 --> 00:41:39,485 splitsen in belangrijke waarde paren. 737 00:41:39,485 --> 00:41:42,370 738 00:41:42,370 --> 00:41:47,580 Dus laten we eens kijken wat er nu gebeurt. 739 00:41:47,580 --> 00:41:50,550 >> Dus we hebben sleutel. 740 00:41:50,550 --> 00:41:52,290 We hebben waarde. 741 00:41:52,290 --> 00:41:56,650 We hebben weer een nieuwe lijn voor de leesbaarheid. 742 00:41:56,650 --> 00:42:00,540 En laten we zien wat er gebeurt als we dit nu doen. 743 00:42:00,540 --> 00:42:04,950 744 00:42:04,950 --> 00:42:06,720 Ik weet niet hoe oud Jason is. 745 00:42:06,720 --> 00:42:09,180 Jason's 15. 746 00:42:09,180 --> 00:42:11,650 Dus we hebben de naam Jason, leeftijd 15. 747 00:42:11,650 --> 00:42:15,830 Dus we waren in staat om toegang te krijgen tot de sleutel en waarde paren van dit woordenboek 748 00:42:15,830 --> 00:42:18,590 gewoon door te zeggen als de belangrijkste punten om waarde. 749 00:42:18,590 --> 00:42:23,350 En dat is een foreach syntactische suiker bit die het mogelijk maakt 750 00:42:23,350 --> 00:42:25,960 je om dingen te openen in het woordenboek. 751 00:42:25,960 --> 00:42:31,190 >> Dus hopelijk dit soort benadrukt de kracht van de foreach lus. 752 00:42:31,190 --> 00:42:35,690 U kunt vrij veel gooien iets dat iterable lijkt, 753 00:42:35,690 --> 00:42:38,922 als iets dat er meerdere heeft elementen zoals een array, 754 00:42:38,922 --> 00:42:41,880 als een dictionary-- die zijn twee primaire dingen die je zult werken met 755 00:42:41,880 --> 00:42:45,630 zowel in het leven en in PSET 7. 756 00:42:45,630 --> 00:42:49,350 Dus je kunt dat spul gooien op het, en het zal uitzoeken 757 00:42:49,350 --> 00:42:51,030 wat u wilt doen. 758 00:42:51,030 --> 00:42:54,250 Het zal zeggen: OK, ik ga om te krijgen deze dingen uit de gegevens die 759 00:42:54,250 --> 00:42:55,680 werd doorgegeven aan mij. 760 00:42:55,680 --> 00:43:02,470 En dat is iets dat je bent zal gebruiken veel in PSET 7. 761 00:43:02,470 --> 00:43:08,550 >> Ik ga snel scroll neer gewoon om te zien waar ik ben op. 762 00:43:08,550 --> 00:43:11,410 763 00:43:11,410 --> 00:43:13,070 Hebben mensen vragen op dit punt? 764 00:43:13,070 --> 00:43:13,778 Vragen bij allen? 765 00:43:13,778 --> 00:43:14,400 Ja? 766 00:43:14,400 --> 00:43:18,320 >> Publiek: Dus met de sleutel en de waarde, je zou kunnen noemen iets anders 767 00:43:18,320 --> 00:43:20,507 en het zou nog steeds werken? 768 00:43:20,507 --> 00:43:21,090 SPEAKER: Oeps. 769 00:43:21,090 --> 00:43:22,820 Wow, ik ben het volledig schrappen van de hele lijn. 770 00:43:22,820 --> 00:43:23,380 Goed gedaan. 771 00:43:23,380 --> 00:43:26,502 Zo een, een. 772 00:43:26,502 --> 00:43:30,109 Sleutel en de waarde is slechts een conventie. 773 00:43:30,109 --> 00:43:30,650 Het is nuttig. 774 00:43:30,650 --> 00:43:34,010 Je zou wat ontwerp te krijgen punten, misschien wat stijl punten 775 00:43:34,010 --> 00:43:36,970 om dat te doen omdat echt vervoert de bedoeling. 776 00:43:36,970 --> 00:43:39,650 Maar we zeggen dat een en yarp. 777 00:43:39,650 --> 00:43:42,476 >> Publiek: Je hoeft niet te iets veranderen in het HTML-bestand 778 00:43:42,476 --> 00:43:43,607 om aan te geven dat? 779 00:43:43,607 --> 00:43:44,440 SPEAKER: Helemaal niet. 780 00:43:44,440 --> 00:43:47,260 Publiek: En het gewoon weet dat vanwege de grotere gelijk than-- 781 00:43:47,260 --> 00:43:47,801 SPEAKER: Ja. 782 00:43:47,801 --> 00:43:49,489 PUBLIEK: --that indicator dat that's-- 783 00:43:49,489 --> 00:43:50,030 SPEAKER: Ja. 784 00:43:50,030 --> 00:43:52,260 Dat is een foreach syntax, maar ja. 785 00:43:52,260 --> 00:43:53,720 >> Publiek: Er zijn geen types. 786 00:43:53,720 --> 00:43:57,230 Dus wat als je wilde leeftijd slechts een getal? 787 00:43:57,230 --> 00:43:59,510 Is er een manier om dat te doen? 788 00:43:59,510 --> 00:44:04,550 >> SPEAKER: Er zijn manieren om te controleren of variabelen voldoen aan bepaalde types. 789 00:44:04,550 --> 00:44:08,482 Dus PHP vraagt ​​een beetje meer van u omdat er geen types in. 790 00:44:08,482 --> 00:44:09,440 Sommige opzichten vraagt ​​minder. 791 00:44:09,440 --> 00:44:11,070 In sommige opzichten vraagt ​​hij meer. 792 00:44:11,070 --> 00:44:13,320 Want als je gewoon iets in een variabele 793 00:44:13,320 --> 00:44:14,960 je hebt geen idee wat voor soort het is. 794 00:44:14,960 --> 00:44:19,310 Maar als je slim over de variabelen dat je soorten toewijzen en ervoor te zorgen 795 00:44:19,310 --> 00:44:22,750 dat werkt alleen return-- u willen functies om alleen terug 796 00:44:22,750 --> 00:44:26,210 één soort waarde, zodat die u kunt in principe 797 00:44:26,210 --> 00:44:31,090 verwachten dat de variabele die u terug te krijgen van een functie van het type zijn 798 00:44:31,090 --> 00:44:32,780 dat je denkt dat het zal zijn, in principe. 799 00:44:32,780 --> 00:44:36,550 >> Er zijn een aantal methoden waarmee je kunt controleren. 800 00:44:36,550 --> 00:44:39,801 Ik heb ze niet herinneren uit mijn hoofd. 801 00:44:39,801 --> 00:44:43,300 Ik wacht op het naar blauw. 802 00:44:43,300 --> 00:44:45,560 isint? 803 00:44:45,560 --> 00:44:48,070 isstr? 804 00:44:48,070 --> 00:44:52,000 Er zijn methoden ingebouwd in PHP, dat kan 805 00:44:52,000 --> 00:44:54,440 Controleer het type van de variabelen voor u. 806 00:44:54,440 --> 00:44:58,250 Maar als je variabelen toewijst slim, je moet niet 807 00:44:58,250 --> 00:45:01,330 moet dat te veel doen in PSET 7. 808 00:45:01,330 --> 00:45:02,780 Maar deze methoden bestaan. 809 00:45:02,780 --> 00:45:06,704 En dat is iets dat in de taal zelf. 810 00:45:06,704 --> 00:45:08,370 En ik herinner me niet de precieze syntax. 811 00:45:08,370 --> 00:45:09,930 We konden zelfs opzoeken. 812 00:45:09,930 --> 00:45:11,974 Maar de tijd is van de essentie. 813 00:45:11,974 --> 00:45:13,890 hebben Heeft iemand anders nog vragen? 814 00:45:13,890 --> 00:45:14,660 Ja. 815 00:45:14,660 --> 00:45:15,951 >> Publiek: Ik heb nog één. 816 00:45:15,951 --> 00:45:19,050 Dus je hebben het GET methode, maar je hebt de POST-methode niet noemen. 817 00:45:19,050 --> 00:45:20,500 Komen we terug naar die? 818 00:45:20,500 --> 00:45:21,540 >> SPEAKER: Ja, zullen we komen terug naar die. 819 00:45:21,540 --> 00:45:24,840 Dat is precies wat ik zocht op mijn telefoon, die nu in slaap viel, 820 00:45:24,840 --> 00:45:26,960 maar ik zal het vinden. 821 00:45:26,960 --> 00:45:30,680 Gewoon om ervoor te zorgen dat we hit alle PHP noten. 822 00:45:30,680 --> 00:45:35,640 Yep, er is geen debugging-versie. 823 00:45:35,640 --> 00:45:41,940 Ja, we hebben nog een paar dingen die willen we nu doen op dit punt. 824 00:45:41,940 --> 00:45:45,980 >> Dus praten over POST, die u noemde, 825 00:45:45,980 --> 00:45:49,630 het enige verschil tussen GET en POST is 826 00:45:49,630 --> 00:45:53,150 die herinneren wanneer we keken op deze URL en we zagen, oh, 827 00:45:53,150 --> 00:45:58,270 de naam is gelijk aan een en leeftijd gelijk yarp gelijk in de URL er voor ons. 828 00:45:58,270 --> 00:46:03,300 POST is een beetje geheimzinnig met zijn doorgeven van informatie. 829 00:46:03,300 --> 00:46:08,090 >> Dus als je niet wilt dat een gebruiker om te weten, bijvoorbeeld, u 830 00:46:08,090 --> 00:46:11,160 wilde niet dat de gebruikersnaam en het wachtwoord van de persoon 831 00:46:11,160 --> 00:46:15,080 momenteel ingelogd te zijn weergegeven in de URL, wat een redelijk ding 832 00:46:15,080 --> 00:46:17,770 niet willen in de URL, omdat iemand kan zien. 833 00:46:17,770 --> 00:46:21,520 Als ze iemand een link naar een pagina, je willen niet dat hun URL er gepleisterd, 834 00:46:21,520 --> 00:46:27,850 want dat zou mensen in staat stellen om in te loggen alleen met het plakken van een URL in plaats 835 00:46:27,850 --> 00:46:29,670 daadwerkelijk invullen van een formulier. 836 00:46:29,670 --> 00:46:31,710 POST is een beetje geheimzinnig. 837 00:46:31,710 --> 00:46:34,150 >> En de enige dingen die we zullen moeten veranderen 838 00:46:34,150 --> 00:46:38,550 zijn deze methode, verandering van krijgen te plaatsen. 839 00:46:38,550 --> 00:46:42,367 En vervolgens in de HTTP plaats van de toegang tot de array _GET, 840 00:46:42,367 --> 00:46:43,950 we gaan voor toegang tot de array _POST. 841 00:46:43,950 --> 00:46:48,600 >> En we zullen zien dat, indien openen we dit weer naar boven, 842 00:46:48,600 --> 00:46:51,910 Jason langzaam daalt in leeftijd. 843 00:46:51,910 --> 00:46:53,230 Jason naam, leeftijd 14. 844 00:46:53,230 --> 00:46:54,280 Hetzelfde spul duikt. 845 00:46:54,280 --> 00:46:57,190 Maar we gaan naar de URL en deze variabelen zijn er niet. 846 00:46:57,190 --> 00:47:00,540 >> En de manier waarop POST passes-- dus vergeet 847 00:47:00,540 --> 00:47:02,750 hoe om te kijken naar de bron van een pagina. 848 00:47:02,750 --> 00:47:04,570 We gaan naar het netwerk. 849 00:47:04,570 --> 00:47:06,920 We vernieuwen. 850 00:47:06,920 --> 00:47:10,690 En dit is een ander ding dat POST zal je waarschuwingen over te geven. 851 00:47:10,690 --> 00:47:15,050 Je zou een doos, een tekst hebben gezien box als dit in uw browser. 852 00:47:15,050 --> 00:47:18,170 Weet je zeker dat je wil een vorm opnieuw te verzenden? 853 00:47:18,170 --> 00:47:21,170 POST is wat er het verzenden van deze formulieren. 854 00:47:21,170 --> 00:47:24,680 >> Omdat het in principe als u uw verzonden credit card informatie aan iemand, 855 00:47:24,680 --> 00:47:26,350 dat gaat niet te zien zijn in de URL. 856 00:47:26,350 --> 00:47:28,180 Dat gaat een POST-verzoek. 857 00:47:28,180 --> 00:47:32,905 Dus als je de pagina te vernieuwen, het is opnieuw versturen die post aanvraag. 858 00:47:32,905 --> 00:47:35,530 Dus nu willen we het verzenden vormen weer, want het gaat niet 859 00:47:35,530 --> 00:47:37,340 om eventuele dubbele aankopen te creëren. 860 00:47:37,340 --> 00:47:41,160 >> En we zullen zien dat hier beneden, de methode die we gebruiken is POST. 861 00:47:41,160 --> 00:47:43,065 En inderdaad dragen bytes. 862 00:47:43,065 --> 00:47:45,460 Het overgedragen 401 van hen. 863 00:47:45,460 --> 00:47:47,190 Programma's vrij klein. 864 00:47:47,190 --> 00:47:51,600 Maar er is niets dat we kunnen zien de waarden die worden doorgegeven. 865 00:47:51,600 --> 00:47:59,540 De webpagina's zelf kunnen zien, maar wij als gebruikers niet in staat zijn om te zien, 866 00:47:59,540 --> 00:48:01,650 tenzij je een hacker. 867 00:48:01,650 --> 00:48:05,340 Als je een goede hacker, kunt u kijken. 868 00:48:05,340 --> 00:48:09,360 >> Als u weet dat de basis format van de HTML, 869 00:48:09,360 --> 00:48:11,790 de waarden zal maken zich in de pagina's bekend. 870 00:48:11,790 --> 00:48:13,160 U zult kunnen zien. 871 00:48:13,160 --> 00:48:16,720 De waarden zullen er zijn, zijn ze net iets minder voor de hand liggende voor u 872 00:48:16,720 --> 00:48:19,522 om toegang te krijgen, in principe. 873 00:48:19,522 --> 00:48:23,620 >> Hebben we nog meer vragen over GET, POST 874 00:48:23,620 --> 00:48:26,800 before-- wat we gaan nu doen is eigenlijk kijken naar enkele van de code 875 00:48:26,800 --> 00:48:30,837 dat je geeft in PSET 7, praten over hoe het gebruikt enkele van deze concepten 876 00:48:30,837 --> 00:48:32,670 en praten over de dingen die je gaat 877 00:48:32,670 --> 00:48:35,090 te hebben om een ​​beetje te doen in PSET 7. 878 00:48:35,090 --> 00:48:36,760 Nog meer vragen voordat dat? 879 00:48:36,760 --> 00:48:38,047 Meer vragen hebben jullie? 880 00:48:38,047 --> 00:48:41,250 881 00:48:41,250 --> 00:48:41,840 Grote. 882 00:48:41,840 --> 00:48:45,370 >> Oké, laten we eens kijken een beetje op PSET 7, 883 00:48:45,370 --> 00:48:49,530 geen twijfel over wat je bent Alle meest enthousiast over. 884 00:48:49,530 --> 00:48:52,126 885 00:48:52,126 --> 00:48:54,750 Ik bedoel, dit is iets dat David gaat door een klein beetje. 886 00:48:54,750 --> 00:49:00,890 Maar we zullen drie mappen op het hebben bovenkant, en een configuratiebestand. 887 00:49:00,890 --> 00:49:04,650 Dat is voor databases, die we zullen praten over in ongeveer vijf minuten. 888 00:49:04,650 --> 00:49:07,220 Omvat, je nooit nodig hebt om te kijken in deze map 889 00:49:07,220 --> 00:49:12,480 als je niet wilt, maar het is leuk om weet dat er allerlei helpers. 890 00:49:12,480 --> 00:49:14,210 Helpers is als handige functies. 891 00:49:14,210 --> 00:49:18,120 En dan hebben we config, waarin een aantal spullen. 892 00:49:18,120 --> 00:49:24,590 >> Er zijn een aantal functies die CS50 heeft geschreven dat zijn helper en config. 893 00:49:24,590 --> 00:49:27,250 En sommige van de PHP die al verlaat in bestanden 894 00:49:27,250 --> 00:49:30,880 zal een groot deel van de meer soort doen van stompe been werk voor u. 895 00:49:30,880 --> 00:49:35,250 Net als we gaan in het openbaar login.php, dat is wat 896 00:49:35,250 --> 00:49:38,350 verschijnt rechts als je in PSET 7. 897 00:49:38,350 --> 00:49:40,580 We zullen zien dat er dit nodig verklaring. 898 00:49:40,580 --> 00:49:43,420 En dat soort als een scherpe omvatten, hashtag 899 00:49:43,420 --> 00:49:46,850 onder meer als je van een nieuwere generatie. 900 00:49:46,850 --> 00:49:49,740 Maar dit principe zegt dat ik de toegang nodig 901 00:49:49,740 --> 00:49:52,260 alle functies in config.php. 902 00:49:52,260 --> 00:49:55,290 En je kon een vereist voor allerlei andere zaken. 903 00:49:55,290 --> 00:49:59,670 >> config vereist eigenlijk helpers. 904 00:49:59,670 --> 00:50:02,490 Dus wanneer je nodig config, je ook bent 905 00:50:02,490 --> 00:50:05,660 inclusief of die helpers ook. 906 00:50:05,660 --> 00:50:09,590 Dus dat geeft je toegang tot alle coole functies die we gaan gebruiken, 907 00:50:09,590 --> 00:50:10,420 dingen willen maken. 908 00:50:10,420 --> 00:50:13,490 Ik ben eigenlijk van plan om te verlichten dit een beetje naar beneden. 909 00:50:13,490 --> 00:50:16,280 Zodat de functie dan zijn we gaan lopen door 910 00:50:16,280 --> 00:50:22,380 net voordat we overgaan tot een klein SQL bit is de login.php functie, net 911 00:50:22,380 --> 00:50:26,586 omdat het gebruik maakt van enkele van de onderwerpen dat we net over gesproken in PHP. 912 00:50:26,586 --> 00:50:30,840 >> Je ziet de eerste ding is als $ _SERVER. 913 00:50:30,840 --> 00:50:34,500 Dit is een globale variabele die je gaat te maken hebben. 914 00:50:34,500 --> 00:50:38,460 Het is net als _GET en _POST, maar wat server bevat, is dit je kunt laten 915 00:50:38,460 --> 00:50:42,730 weten of het verzoek methode was een GET of POST. 916 00:50:42,730 --> 00:50:47,250 Zoals eerder wat we deden is gewoon in onze code die we schreven, 917 00:50:47,250 --> 00:50:51,880 we waren net het veranderen zijn GET en POST afhankelijk van de HTML heeft. 918 00:50:51,880 --> 00:50:55,120 Er zijn pagina's die kunnen worden benaderd met beide typen verzoeken. 919 00:50:55,120 --> 00:50:57,410 En je zou willen doen verschillende dingen afhankelijk 920 00:50:57,410 --> 00:50:59,740 het soort verzoek, net zoals login doet. 921 00:50:59,740 --> 00:51:04,400 >> Dus je kunt dat verzoek controleren methode door middel van toegang tot toetsen, 922 00:51:04,400 --> 00:51:08,630 door het gebruik van een sleutel en het verkrijgen van de waarde van iets in het woordenboek 923 00:51:08,630 --> 00:51:10,260 _SERVER. 924 00:51:10,260 --> 00:51:13,800 Dus dat is een andere globaal variabele zoals _GET en _POST. 925 00:51:13,800 --> 00:51:16,990 >> Als het te krijgen, willen we maken het login formulier. 926 00:51:16,990 --> 00:51:21,920 Render is een functie die in feite net zet de juiste HTML 927 00:51:21,920 --> 00:51:24,500 en geeft het aantal parameters. 928 00:51:24,500 --> 00:51:28,740 Deze titel is een parameter die is gebruikt bij het weergeven, vreemd genoeg, 929 00:51:28,740 --> 00:51:32,670 de titel van de pagina in vraag, het ding hier, 930 00:51:32,670 --> 00:51:34,850 zeggen of hello in ons vorige voorbeeld. 931 00:51:34,850 --> 00:51:36,100 Nu hebben we een andere zaak. 932 00:51:36,100 --> 00:51:38,570 Anders als het POST, we doen wat andere dingen. 933 00:51:38,570 --> 00:51:40,790 We gebruiken die lege methode. 934 00:51:40,790 --> 00:51:42,750 Het is niet, het is leeg. 935 00:51:42,750 --> 00:51:45,440 En we zagen eerder, PHP heeft een behoorlijke hoeveelheid ingebouwde 936 00:51:45,440 --> 00:51:52,370 in methoden die David will-- als er zijn methoden die nuttig zijn voor u, 937 00:51:52,370 --> 00:51:55,560 zij wordt gewaarschuwd u in de wandeling door dat David 938 00:51:55,560 --> 00:51:59,770 geeft het begin overzicht en ook Zamyla's nuttig bits. 939 00:51:59,770 --> 00:52:01,040 Ze terug iedereen. 940 00:52:01,040 --> 00:52:03,100 We allemaal kunnen verheugen. 941 00:52:03,100 --> 00:52:06,530 verontschuldigingen is een toepasselijke naam functie die net in principe afgedrukt 942 00:52:06,530 --> 00:52:10,130 aantal foutmeldingen, omdat CS50 is heel beleefd. 943 00:52:10,130 --> 00:52:14,770 >> Nu dit is een beetje lastig omdat deze 944 00:52:14,770 --> 00:52:16,697 is waar we de database bent bevragen. 945 00:52:16,697 --> 00:52:18,280 Nu hebben we niet gesproken over databases. 946 00:52:18,280 --> 00:52:22,220 En we gaan in de komende vijf minuten of zo, maximum. 947 00:52:22,220 --> 00:52:24,980 Maar dit is een functie dat CS50 heeft geschreven 948 00:52:24,980 --> 00:52:38,050 een tafel in principe krijg uit een database dat we werken met in PSET 7. 949 00:52:38,050 --> 00:52:40,860 Ik ben echt slecht met mijn nul indexering vandaag. 950 00:52:40,860 --> 00:52:42,060 Maar ja, het is 7. 951 00:52:42,060 --> 00:52:46,340 >> Dus te vragen het gaat om een ​​terugkeer array, in principe is de sleutel beetje. 952 00:52:46,340 --> 00:52:54,130 En omdat deze dingen niet hebben typering, dus rijen een array van arrays. 953 00:52:54,130 --> 00:52:59,480 Want als we denken over een tafel, wat we gaan doen 954 00:52:59,480 --> 00:53:04,830 is, zoals u geleerd in psets net als het spel van 15, toch 955 00:53:04,830 --> 00:53:06,990 waar je moest gebruiken double array, we eigenlijk 956 00:53:06,990 --> 00:53:15,210 hebben scala aan andere arrays maakt een tafel. 957 00:53:15,210 --> 00:53:18,150 En je hebt rijen en kolommen. 958 00:53:18,150 --> 00:53:24,450 En dan kun je hen de toegang, zoals [0] [1], krijgt u de [0] [1]. 959 00:53:24,450 --> 00:53:26,900 Basic dat soort dingen. 960 00:53:26,900 --> 00:53:29,380 >> Dus wat we doen hier in deze functie, 961 00:53:29,380 --> 00:53:35,070 we de database vragen Als de gebruiker dat 962 00:53:35,070 --> 00:53:40,200 proberen om in te loggen, zal dat zijn verzonden via de POST-methode. 963 00:53:40,200 --> 00:53:43,950 We zullen zien dat we krijgen de gebruikersnaam van _POST. 964 00:53:43,950 --> 00:53:46,900 Ze hebben gestuurd, de gebruiker of je zal een waarde sturen 965 00:53:46,900 --> 00:53:50,750 door middel van een formulier met POST omdat het is gebruikersnaam en wachtwoord spullen. 966 00:53:50,750 --> 00:53:54,830 We controleren van de gebruikersnaam om te zien, dit is in de tabel? 967 00:53:54,830 --> 00:53:58,070 Want als een gebruiker in te loggen in, dan is hun gebruikersnaam 968 00:53:58,070 --> 00:54:03,320 moeten worden opgeslagen in de tabel gebruikers die er zijn voor deze website. 969 00:54:03,320 --> 00:54:09,360 Dus in principe als de gebruiker in de database 970 00:54:09,360 --> 00:54:16,400 vraag gaat terug die rij, die een array. 971 00:54:16,400 --> 00:54:24,560 >> Maar het lastige deel is dat als zelfs als dubbele array is slechts van één rij, 972 00:54:24,560 --> 00:54:31,900 zelfs als het een één rij array-- alsof je basically-- gekregen 973 00:54:31,900 --> 00:54:36,900 als je een groot ene array hebt dat is die een andere array, 974 00:54:36,900 --> 00:54:38,940 je bent echt te maken met één kolom. 975 00:54:38,940 --> 00:54:41,420 Maar het is nog steeds behandeld zoals een dubbele array. 976 00:54:41,420 --> 00:54:44,560 >> En dit is waar het soms kan krijgen lastig, omdat we hier hebben rijen. 977 00:54:44,560 --> 00:54:46,440 Onze variabele rijen. 978 00:54:46,440 --> 00:54:48,590 En dan zijn we creëren een nieuwe variabele genaamd rij 979 00:54:48,590 --> 00:54:51,450 en het instellen van het gelijk zijn aan de eerste rij van de rijen. 980 00:54:51,450 --> 00:54:55,150 En je zult merken dat reactie zegt dat het de eerste en enige rij. 981 00:54:55,150 --> 00:54:57,080 >> Dus dit is het lastig deel waar nu functies 982 00:54:57,080 --> 00:54:59,660 kan makkelijk arrays terug. 983 00:54:59,660 --> 00:55:01,270 Er is niet mallocs. 984 00:55:01,270 --> 00:55:02,280 U zult niet mallocs zien. 985 00:55:02,280 --> 00:55:03,940 Dus je zult niet zien seg fouten. 986 00:55:03,940 --> 00:55:08,380 Maar functioneert nog steeds passeren rond arrays en gegevens in groepen. 987 00:55:08,380 --> 00:55:12,250 En heb je hoede voor wat te zijn precies uw functies zal terugkeren. 988 00:55:12,250 --> 00:55:15,160 En zelfs als het een column als deze, een query 989 00:55:15,160 --> 00:55:17,520 gaat nog steeds om een ​​dubbele rij terug. 990 00:55:17,520 --> 00:55:21,390 Dus om toegang die column-- of u kan denken van al dit als omgekeerde 991 00:55:21,390 --> 00:55:22,870 omdat we praten over rijen. 992 00:55:22,870 --> 00:55:26,810 Maar om die ene rij, je kunt niet zomaar zeggen rijen. 993 00:55:26,810 --> 00:55:31,540 Ook al is het een rij, moet je do rowsrows [0] om een ​​soort van deze te elimineren 994 00:55:31,540 --> 00:55:37,360 buitenste stukje van de array en hoeft alleen je een rij. 995 00:55:37,360 --> 00:55:38,342 >> Doe wat andere dingen. 996 00:55:38,342 --> 00:55:40,050 Er is een functie genaamd password_verify 997 00:55:40,050 --> 00:55:42,980 dat verifieert de paswoord dat werd gepost. 998 00:55:42,980 --> 00:55:48,500 En dan zien we nog een globale variabele hier _SESSION. 999 00:55:48,500 --> 00:55:51,340 Eigenlijk sessie-id is hoe je bijhouden 1000 00:55:51,340 --> 00:55:53,990 van als iemand is ingelogd of niet. 1001 00:55:53,990 --> 00:55:58,590 Dus nu met login.php, we het inloggen van een gebruiker. 1002 00:55:58,590 --> 00:56:01,920 Dus wat we willen doen is dat we willen zeggen de sessie-ID gelijk is aan de rij 1003 00:56:01,920 --> 00:56:05,890 id, die net is logisch, want elke rij wordt een andere id hebt 1004 00:56:05,890 --> 00:56:07,239 nummer als deel van de tabel. 1005 00:56:07,239 --> 00:56:09,280 We krijgen in SQL in een tweede, dus als een van deze 1006 00:56:09,280 --> 00:56:13,500 lijkt een beetje zoals blah, dan zal alles worden opgehelderd. 1007 00:56:13,500 --> 00:56:18,450 Maar we gaan naar de id gelijk te stellen het juiste ding, het loggen van de gebruiker. 1008 00:56:18,450 --> 00:56:20,530 Excuses als er iets mis gaat. 1009 00:56:20,530 --> 00:56:27,600 En dat is logins doel leven als Professor Malan zou zeggen. 1010 00:56:27,600 --> 00:56:29,130 >> Dus dat was login.php. 1011 00:56:29,130 --> 00:56:33,750 En een groot deel van de PHP-code die u schrijft in PSET 7, zullen ze een beetje te zijn. 1012 00:56:33,750 --> 00:56:36,470 Vergeet niet om chmod te de juiste machtigingen. 1013 00:56:36,470 --> 00:56:40,180 Er zal een beetje over zijn dat in het begin van de spec. 1014 00:56:40,180 --> 00:56:46,382 >> Maar de PHP dat je schrijven gaat worden 1015 00:56:46,382 --> 00:56:47,840 dingen doen die vergelijkbaar is met deze. 1016 00:56:47,840 --> 00:56:49,715 Je gaat worden de toegang tot een aantal dingen die 1017 00:56:49,715 --> 00:56:52,760 worden gegeven aan u in de globale variabelen van PHP dat 1018 00:56:52,760 --> 00:56:56,105 hebben te maken met de huidige ingelogde gebruiker, of er 1019 00:56:56,105 --> 00:57:00,460 zijn geweest verzoeken verzonden naar dit pagina, verschillende dingen. 1020 00:57:00,460 --> 00:57:05,790 En het zal ook mogelijk zijn iteratie door de rijen van dit ding. 1021 00:57:05,790 --> 00:57:09,010 >> In een andere functie, vraag terugkeert deze dubbele array. 1022 00:57:09,010 --> 00:57:11,450 En als er meer meerdere rijen daarin, 1023 00:57:11,450 --> 00:57:15,080 als er zijn-- ja, als er zijn meerdere rijen daarin, 1024 00:57:15,080 --> 00:57:16,870 dan zal het een tafel. 1025 00:57:16,870 --> 00:57:20,500 En je zou willen herhalen door de rijen van de matrix gebruik 1026 00:57:20,500 --> 00:57:22,860 de foreach lus die we beschreven. 1027 00:57:22,860 --> 00:57:30,270 >> Dus als je foreach doen op een double array, wat zal de word-- hier 1028 00:57:30,270 --> 00:57:31,909 Ik zal eigenlijk schrijven. 1029 00:57:31,909 --> 00:57:32,950 Ik zal het snel hier schrijven. 1030 00:57:32,950 --> 00:57:44,280 >> Als we een foreach rijen als rij, wat is de aard van de rij? 1031 00:57:44,280 --> 00:57:45,390 Weet iemand? 1032 00:57:45,390 --> 00:57:54,000 1033 00:57:54,000 --> 00:57:54,500 Jij hebt het? 1034 00:57:54,500 --> 00:57:57,110 Dus rijen is een dubbele array. 1035 00:57:57,110 --> 00:58:02,810 Dus wat is foreach gaat afleiden die wij willen van deze dubbele reeks 1036 00:58:02,810 --> 00:58:04,280 als we itereren over het? 1037 00:58:04,280 --> 00:58:07,170 1038 00:58:07,170 --> 00:58:10,770 We kunnen aannemen dat in principe het gaat om een ​​van beide elementen, 1039 00:58:10,770 --> 00:58:14,970 of rijen of kolommen, eigenlijk. 1040 00:58:14,970 --> 00:58:18,740 En zo rijen en kolommen we kan behandelen als hetzelfde. 1041 00:58:18,740 --> 00:58:23,880 >> Eigenlijk wat de foreach lus gaat te doen, is dat het gaat om rijen terug. 1042 00:58:23,880 --> 00:58:28,500 rij gaat van het type rij te zijn, terwijl rijen is een dubbele array. 1043 00:58:28,500 --> 00:58:32,290 Dus als je foreach geven een double array, het is 1044 00:58:32,290 --> 00:58:35,830 niet van plan te herhalen meer dan één niveau diep. 1045 00:58:35,830 --> 00:58:44,464 Die in feite is om te zeggen of er acht cellen in deze table-- 1,2, 1046 00:58:44,464 --> 00:58:48,110 3 4, 5, 6, 7, 8-- de foreach lus is niet 1047 00:58:48,110 --> 00:58:51,880 gaan door elk van deze cellen. 1048 00:58:51,880 --> 00:58:56,390 Wat de foreach lus zal doen werd het zal gaan door middel van deze rij, 1049 00:58:56,390 --> 00:58:57,870 geef je deze hele rij. 1050 00:58:57,870 --> 00:58:59,410 En dan zal het gaan door die rij. 1051 00:58:59,410 --> 00:59:01,850 >> Dus het slechts één niveau diep herhaalt. 1052 00:59:01,850 --> 00:59:05,310 Als u een geneste toevoegen foreach loop, dan moet je 1053 00:59:05,310 --> 00:59:16,280 kan elke rij terug van de behandeling rijen, doe je foreach rij als element, 1054 00:59:16,280 --> 00:59:17,640 laat ons zeggen. 1055 00:59:17,640 --> 00:59:22,750 En dan kun je het element echo. 1056 00:59:22,750 --> 00:59:24,930 Dus dat is een korte kleine opfriscursus over hoe 1057 00:59:24,930 --> 00:59:30,220 u zou kunnen worden met behulp van foreach lussen in de context van de query. 1058 00:59:30,220 --> 00:59:32,840 >> Zijn er nog vragen over PHP? 1059 00:59:32,840 --> 00:59:36,520 Helemaal niets voordat we overgaan tot het over SQL 1060 00:59:36,520 --> 00:59:37,820 en het plezier van de database? 1061 00:59:37,820 --> 00:59:41,480 1062 00:59:41,480 --> 00:59:42,110 Goed voelen? 1063 00:59:42,110 --> 00:59:42,750 Goed voelen. 1064 00:59:42,750 --> 00:59:43,470 Prima. 1065 00:59:43,470 --> 00:59:49,130 >> Laten we gaan terug naar de PowerPoint, die u waarschijnlijk missen. 1066 00:59:49,130 --> 00:59:51,800 SQL, yay. 1067 00:59:51,800 --> 00:59:57,900 Mensen die in mijn sectie doorgaans zal weten dat onderverdelingen van acroniemen 1068 00:59:57,900 --> 01:00:01,220 zijn altijd alleen de eerste woorden Ik denk dat de wedstrijd die 1069 01:00:01,220 --> 01:00:02,690 algorithm-- dat acroniem. 1070 01:00:02,690 --> 01:00:04,090 Het is niet een algoritme. 1071 01:00:04,090 --> 01:00:08,050 >> Dus SQL is een database. 1072 01:00:08,050 --> 01:00:11,060 Het is een taal die werkt met databases. 1073 01:00:11,060 --> 01:00:14,440 En alle databases zijn is tafels, althans in de weg 1074 01:00:14,440 --> 01:00:17,220 dat SQL vertegenwoordigt hen. 1075 01:00:17,220 --> 01:00:23,610 >> Een andere manier om na te denken over databases databases zijn een set sleutels en waarden 1076 01:00:23,610 --> 01:00:24,110 principe. 1077 01:00:24,110 --> 01:00:29,530 U kunt denken aan een database een woordenboek ook als een tabel. 1078 01:00:29,530 --> 01:00:34,300 Eigenlijk is het een manier om te associëren verschillende gegevens met andere data, 1079 01:00:34,300 --> 01:00:36,270 vaak door rijen en kolommen. 1080 01:00:36,270 --> 01:00:38,470 En dat is de manier dat is SQL beste werkt. 1081 01:00:38,470 --> 01:00:40,880 >> Dit is dus een voorbeeld van een tabel. 1082 01:00:40,880 --> 01:00:44,610 Ik heb een paar voorbeelden van gekregen mensen in mijn afdeling, die 1083 01:00:44,610 --> 01:00:45,970 Ik had geen tijd om te veranderen. 1084 01:00:45,970 --> 01:00:52,020 Maar we hebben dingen zoals ID, naam, grootmacht, en woonplaats. 1085 01:00:52,020 --> 01:00:54,100 Ik weet niet waar iedereen is uit in mijn afdeling, 1086 01:00:54,100 --> 01:00:56,266 dus ik ga gewoon om te veronderstellen iedereen uit New York 1087 01:00:56,266 --> 01:00:59,370 Stad want ik heb een hoge statistische kans op juistheid. 1088 01:00:59,370 --> 01:01:04,200 >> SQL wordt automatisch nemen zorg van de kolom-ID voor u. 1089 01:01:04,200 --> 01:01:07,560 Als u een nieuwe rij in te voegen in een SQL-database, 1090 01:01:07,560 --> 01:01:09,700 zal verhogen dat ID-nummer en net 1091 01:01:09,700 --> 01:01:14,890 in principe vasthouden zoals vijf namen, grootmacht, woonplaats, wie 1092 01:01:14,890 --> 01:01:16,430 op het eind van die tafel. 1093 01:01:16,430 --> 01:01:19,160 Dus ID is een kolom die u zult nooit meer zorgen te maken over. 1094 01:01:19,160 --> 01:01:22,770 Maar net als in het geval van login.php, wanneer we 1095 01:01:22,770 --> 01:01:26,610 kregen de sessie-ID uit een tafel en alleen met behulp van ID, 1096 01:01:26,610 --> 01:01:30,320 ID is een manier om uniek te identificeren een element van een database. 1097 01:01:30,320 --> 01:01:34,980 >> Dus als we hadden twee Sams, beiden die CS50 onderwezen, en beide van wie 1098 01:01:34,980 --> 01:01:39,370 waren uit Milwaukee, die zou nog steeds hebben verschillende ID-nummers 1099 01:01:39,370 --> 01:01:43,420 en dus verschillend in te het kader van de tabel. 1100 01:01:43,420 --> 01:01:48,700 Dus dit is wat SQL te maken heeft met, het werken met in de back-end. 1101 01:01:48,700 --> 01:01:54,160 >> Dit nu zijn de vier commando's die je nodig hebt om te werken met SQL. 1102 01:01:54,160 --> 01:01:56,390 En ik gooide ze allemaal op één dia. 1103 01:01:56,390 --> 01:01:59,530 Maar we gaan om te gaan door ze individueel. 1104 01:01:59,530 --> 01:02:03,300 >> De eerste opdracht is UPDATE die doet wat je zou verwachten. 1105 01:02:03,300 --> 01:02:07,240 Stel dat je een aantal gegevens in de tabel die is verouderd. 1106 01:02:07,240 --> 01:02:09,470 Net als je houden spoor van de namen van mensen 1107 01:02:09,470 --> 01:02:13,350 en leeftijden, als iemand is leeftijd stijgt, dan 1108 01:02:13,350 --> 01:02:18,590 je gaat te willen gaan en actualiseren leeftijd van net die persoon. 1109 01:02:18,590 --> 01:02:21,902 Voor een voorbeeld dat werkt met onze eerste table-- 1110 01:02:21,902 --> 01:02:24,610 maak je geen zorgen over het schrijven van al Deze opdrachten tegelijkertijd. 1111 01:02:24,610 --> 01:02:27,640 Maar als je hebt-update naar beneden, dat zal goed zijn voor dit deel zijn, 1112 01:02:27,640 --> 01:02:29,790 want we gaan ga terug naar de tafel. 1113 01:02:29,790 --> 01:02:33,920 >> Dus als we terug naar de tafel, laten we iets dat gebeurde zeggen 1114 01:02:33,920 --> 01:02:38,480 was was er een aardbeving of een breuklijn die direct splitsen 1115 01:02:38,480 --> 01:02:39,920 door New York City. 1116 01:02:39,920 --> 01:02:45,130 En we wilden iedereen actualiseren die in New York woonde. 1117 01:02:45,130 --> 01:02:49,670 Ze hadden allemaal om te verhuizen naar Pennsylvania. 1118 01:02:49,670 --> 01:02:51,130 Dat is niet een woonplaats. 1119 01:02:51,130 --> 01:02:53,180 Ze hadden allemaal om te verhuizen naar New Haven. 1120 01:02:53,180 --> 01:02:54,030 Daar gaan we. 1121 01:02:54,030 --> 01:02:57,630 Dus iedereen in New York verhuist naar New Haven. 1122 01:02:57,630 --> 01:03:01,300 >> En dus dat is iets dat bewerken drie rijen in deze tabel. 1123 01:03:01,300 --> 01:03:04,716 Maar in SQL, kunt u doen dat in slechts één verklaring. 1124 01:03:04,716 --> 01:03:05,715 Dus gaan we terug naar UPDATE. 1125 01:03:05,715 --> 01:03:09,670 Laat me snel weer wist dit board. 1126 01:03:09,670 --> 01:03:14,570 Wanneer we praten over updating er 1127 01:03:14,570 --> 01:03:17,640 een paar onderdelen van de syntax die sleutel zijn. 1128 01:03:17,640 --> 01:03:19,770 Nou, alle van de syntax is de sleutel. 1129 01:03:19,770 --> 01:03:22,210 Maar het spul in het groen is optioneel. 1130 01:03:22,210 --> 01:03:25,680 De witte zijn vereist, zoals vooraf gedefinieerde namen. 1131 01:03:25,680 --> 01:03:30,750 En de lichtblauwe zijn dingen die variëren afhankelijk van de tafel. 1132 01:03:30,750 --> 01:03:34,640 Dus dat is wat er aan de hand met het kleurenschema hier, daar. 1133 01:03:34,640 --> 01:03:40,250 >> Dus als we willen alleen die rijen te werken van de mensen die in New York woont, 1134 01:03:40,250 --> 01:03:43,490 dus wat we zouden doen als we zeiden UPDATE? 1135 01:03:43,490 --> 01:03:46,320 Dus tafel is waar we de naam van onze tafel. 1136 01:03:46,320 --> 01:03:49,170 Laten we gewoon de naam te zeggen van onze tafel is een tafel. 1137 01:03:49,170 --> 01:03:52,515 Dus we willen UPDATE tafel één. 1138 01:03:52,515 --> 01:03:57,470 En we willen set-- wat willen we op te zetten? 1139 01:03:57,470 --> 01:04:05,160 Wel willen we zeggen, dus column-- PHP behandelt toeren als unieke identifiers. 1140 01:04:05,160 --> 01:04:07,930 En dan kolommen de verschillende gebieden 1141 01:04:07,930 --> 01:04:09,940 van die elementen van de database. 1142 01:04:09,940 --> 01:04:14,210 >> Het eerste element van de databank heeft een naam van Sam, grootmacht van CS50, 1143 01:04:14,210 --> 01:04:16,210 en een woonplaats van Milwaukee. 1144 01:04:16,210 --> 01:04:20,710 Dus als we de genoemde set, laten we eens kijken de parameters weer die set neemt. 1145 01:04:20,710 --> 01:04:23,880 We hebben kolom gelijk is aan de waarde. 1146 01:04:23,880 --> 01:04:27,290 Dus we willen sommigen zeggen column-- die herinneren 1147 01:04:27,290 --> 01:04:31,850 is een field-- we willen zien veld gelijk is aan iets nieuws. 1148 01:04:31,850 --> 01:04:42,340 >> Dus als we net zei bijwerken tabel 1, stellen de naam gelijk Elliot. 1149 01:04:42,340 --> 01:04:46,310 Krijg een aantal mensen uit de nieuwe sectie op deze. 1150 01:04:46,310 --> 01:04:51,540 Maar als we net deed bijwerken tabel 1 naam in gelijke Elliot, wat zou 1151 01:04:51,540 --> 01:04:55,530 de tafel eruit na dat? 1152 01:04:55,530 --> 01:04:56,410 Mensen enig idee? 1153 01:04:56,410 --> 01:04:59,710 1154 01:04:59,710 --> 01:05:00,210 Ja. 1155 01:05:00,210 --> 01:05:03,195 >> PUBLIEK: Alles in dat rij zou Elliot geworden. 1156 01:05:03,195 --> 01:05:04,570 SPEAKER: Alles in welke rij? 1157 01:05:04,570 --> 01:05:06,067 PUBLIEK: In de eerste rij. 1158 01:05:06,067 --> 01:05:07,150 SPEAKER: In de eerste rij? 1159 01:05:07,150 --> 01:05:09,724 Waarom de eerste rij? 1160 01:05:09,724 --> 01:05:10,890 Ik bedoel niet te halen op je. 1161 01:05:10,890 --> 01:05:13,287 >> PUBLIEK: Misschien alles in de hele tafel? 1162 01:05:13,287 --> 01:05:15,120 SPEAKER: Alles in de hele tafel, ja. 1163 01:05:15,120 --> 01:05:19,520 En dat is precies goed because-- I was gewoon je helpen een beetje 1164 01:05:19,520 --> 01:05:22,650 er-- omdat we weggelaten de optionele WHERE clausule. 1165 01:05:22,650 --> 01:05:27,260 Als u niet de WHERE hebben clausule, wat dit commando zal doen 1166 01:05:27,260 --> 01:05:32,240 wordt het zal werken met elke enkele rij in de tabel. 1167 01:05:32,240 --> 01:05:35,430 De naam van iedereen zal worden Elliott, in principe, 1168 01:05:35,430 --> 01:05:37,360 die Elliot is erg tevreden over. 1169 01:05:37,360 --> 01:05:40,070 Of Yanni, een van de twee. 1170 01:05:40,070 --> 01:05:42,490 Maar iedereen de naam zal veranderen. 1171 01:05:42,490 --> 01:05:47,880 >> Dus de manier waarop we gebruiken de WHERE clause-- en dit geldt voor alle Wheres 1172 01:05:47,880 --> 01:05:51,410 die in elk deze verschillende dingen. 1173 01:05:51,410 --> 01:05:54,380 Dus je zult merken dat SET heeft column gelijke waarde. 1174 01:05:54,380 --> 01:05:55,190 En dat doet WAAR. 1175 01:05:55,190 --> 01:06:00,040 Maar deze zijn anders soorten verklaringen. 1176 01:06:00,040 --> 01:06:04,400 Dus de kolom gelijk is aan de waarde in SET is in opdracht. 1177 01:06:04,400 --> 01:06:08,320 Alsof we zeggen dat we willen naam gelijk aan Elliot stellen. 1178 01:06:08,320 --> 01:06:15,390 Maar in de WHERE clausules, Dit zijn uitspraken gelijkheid. 1179 01:06:15,390 --> 01:06:20,410 Dus laten we zeggen dat we alleen wilde verandert de naam van de persoon om Elliot 1180 01:06:20,410 --> 01:06:23,940 als hun naam was Ryan, laten we zeggen. 1181 01:06:23,940 --> 01:06:24,920 >> Dus als we zeggen 1182 01:06:24,920 --> 01:06:32,700 >> WAAR naam gelijk Ryan, dat zou met succes enige verandering 1183 01:06:32,700 --> 01:06:37,440 de name-- het zou alleen verander de veldnaam in rijen 1184 01:06:37,440 --> 01:06:40,770 waar de veldnaam gelijk is aan Ryan. 1185 01:06:40,770 --> 01:06:44,430 Dus als we hadden meerdere mensen genaamd Ryan, al hun namen 1186 01:06:44,430 --> 01:06:45,730 zou veranderen Elliot. 1187 01:06:45,730 --> 01:06:48,169 >> Dit is vergelijkbaar met het voorbeeld van als een breuklijn splitst 1188 01:06:48,169 --> 01:06:50,960 New York City en iedereen moet verhuizen naar New Haven, de manier waarop we kunnen 1189 01:06:50,960 --> 01:06:56,570 dat doen in een verklaring UPDATE table1 SET hometown = New Haven 1190 01:06:56,570 --> 01:07:00,210 waar de woonplaats is gelijk aan New York City. 1191 01:07:00,210 --> 01:07:03,410 Dit is de kracht van de UPDATE verklaring. 1192 01:07:03,410 --> 01:07:10,530 We kunnen een aantal te selecteren rijen door middel van ware uitspraken 1193 01:07:10,530 --> 01:07:12,860 de velden in die rijen. 1194 01:07:12,860 --> 01:07:19,510 We kunnen UPDATE table1 set niet zeggen name = Elliot WAAR rij = 1, 1195 01:07:19,510 --> 01:07:24,820 behalve dat we kunnen als we zeggen: ID = 1. 1196 01:07:24,820 --> 01:07:27,350 1197 01:07:27,350 --> 01:07:29,830 >> Dus we gaan worden werken met gelijkheid 1198 01:07:29,830 --> 01:07:32,830 van de velden, de gelijkheid van de kolommen. 1199 01:07:32,830 --> 01:07:38,030 Maar het gebruik van het ID-veld is een manier Selecteer afzonderlijke rijen in het bijzonder, 1200 01:07:38,030 --> 01:07:43,210 omdat de ID-veld is een unieke identifier in een SQL-database. 1201 01:07:43,210 --> 01:07:45,860 Dus als het updaten van een rij, ID is gelijk aan 1. 1202 01:07:45,860 --> 01:07:49,560 Updaten rij twee, net veranderen ID-nummer. 1203 01:07:49,560 --> 01:07:51,610 Maar de kracht van de WAAR verklaring is dat we 1204 01:07:51,610 --> 01:07:57,480 dingen kunnen bijwerken op basis van wat hun actuele waarden van bepaalde dingen zijn. 1205 01:07:57,480 --> 01:07:58,155 Ja Elliot? 1206 01:07:58,155 --> 01:08:02,678 >> Publiek: En wat als je wilt to-- nogmaals, dit is een andere vraag. 1207 01:08:02,678 --> 01:08:07,660 Maar mijn eerste vraag was, Waar is dit gebeurt? 1208 01:08:07,660 --> 01:08:09,130 Waar ga ik het updaten van deze? 1209 01:08:09,130 --> 01:08:11,100 Is dit in een PHP-code? 1210 01:08:11,100 --> 01:08:13,379 >> SPEAKER: Waar u op de hoogte, ja. 1211 01:08:13,379 --> 01:08:15,170 We gaan om te praten over waar alles 1212 01:08:15,170 --> 01:08:18,729 gebeurt soort van zodra we gaan door alle opdrachten. 1213 01:08:18,729 --> 01:08:21,130 Maar wat je nodig hebt om weet is nu in principe 1214 01:08:21,130 --> 01:08:26,279 dat uw SQL-database bestaat als iets 1215 01:08:26,279 --> 01:08:30,090 worden benaderd door de query functie die CS50 bepaalt. 1216 01:08:30,090 --> 01:08:33,800 Dus als je de query functie te gebruiken, U hebt toegang tot deze tabel. 1217 01:08:33,800 --> 01:08:39,529 >> Dus je zal het verzenden van deze commando's om uw tafel in PHP-bestanden 1218 01:08:39,529 --> 01:08:41,420 via queryfunctie. 1219 01:08:41,420 --> 01:08:45,410 U kunt ook spelen rond met uw tafel direct. 1220 01:08:45,410 --> 01:08:49,050 En dat is de beste manier om testen van dit soort opdrachten. 1221 01:08:49,050 --> 01:08:52,720 En we gaan door precies hoe om dat te doen in slechts een klein beetje. 1222 01:08:52,720 --> 01:08:54,910 >> Dus dat is UPDATE commando. 1223 01:08:54,910 --> 01:08:57,939 En de rest van de commando's gaan soort gelijk zijn, 1224 01:08:57,939 --> 01:08:59,069 werken aan soortgelijke dingen. 1225 01:08:59,069 --> 01:09:02,740 Het inzetstuk in is waarschijnlijk de anders UPDATE. 1226 01:09:02,740 --> 01:09:06,170 Ik ga er laat dat voor net een beetje en werken hier. 1227 01:09:06,170 --> 01:09:10,215 Zo plaatst, zult u zien die tafel is nog steeds hetzelfde. 1228 01:09:10,215 --> 01:09:17,010 Je wilt invoegen in. 1229 01:09:17,010 --> 01:09:20,286 De kapitalisatie, SQL is hoofdlettergevoelig. 1230 01:09:20,286 --> 01:09:22,160 Zodat je niet hoeft te kapitaliseren deze dingen. 1231 01:09:22,160 --> 01:09:27,960 Volgens afspraak, de woorden in het wit worden geactiveerd. 1232 01:09:27,960 --> 01:09:31,590 Maar ik heb ook een kleurcode hen. 1233 01:09:31,590 --> 01:09:34,390 De enige reden dat je kapitaliseren die als je ze te typen 1234 01:09:34,390 --> 01:09:36,609 is gewoon om te benadrukken dat deze constanten zijn. 1235 01:09:36,609 --> 01:09:39,189 En dus kan je ofwel kijken de kapitalisatie of het feit 1236 01:09:39,189 --> 01:09:40,740 dat ik ze anders heb gekleurd. 1237 01:09:40,740 --> 01:09:44,910 >> Dus we hebben INSERT INTO gekregen, laten we het opnieuw doen table1. 1238 01:09:44,910 --> 01:09:45,930 Dit is allemaal op een lijn. 1239 01:09:45,930 --> 01:09:48,609 Ik ben gewoon te scheiden door de verschillende verklaringen. 1240 01:09:48,609 --> 01:09:52,399 Dus maak je geen zorgen over het feit dat table1 maakte het op de tweede lijn. 1241 01:09:52,399 --> 01:09:56,130 >> Dus we willen INSERT IN table1 sommige waarden. 1242 01:09:56,130 --> 01:09:58,922 En je zult merken de optionele bit, die ik in een tweede aan krijgt. 1243 01:09:58,922 --> 01:09:59,755 Dus we hebben WAARDEN. 1244 01:09:59,755 --> 01:10:03,640 1245 01:10:03,640 --> 01:10:08,100 >> Dus laten we zeggen dat we willen Andi toevoegen naar onze tafel, want we missen Andi. 1246 01:10:08,100 --> 01:10:09,390 Andi is ziek. 1247 01:10:09,390 --> 01:10:12,490 Dus laten we toe Andi naar onze tafel. 1248 01:10:12,490 --> 01:10:15,150 Vergeet niet dat de ID-nummer wordt automatisch bijgewerkt. 1249 01:10:15,150 --> 01:10:17,320 Dus de enige velden die we zorgen te maken over 1250 01:10:17,320 --> 01:10:20,230 zijn naam, grootmacht, en woonplaats. 1251 01:10:20,230 --> 01:10:23,660 >> En dus is de manier waarop we dat doen, kijken naar onze syntax, is we hebben 1252 01:10:23,660 --> 01:10:28,780 net een haakjes, met komma gescheiden waarden, die elk 1253 01:10:28,780 --> 01:10:29,890 is een waarde. 1254 01:10:29,890 --> 01:10:35,530 Dus als we wilden Andi voegen in onze tafel, alles wat we moeten doen is het juiste Andi. 1255 01:10:35,530 --> 01:10:38,630 Wat is Andi's grootmacht, mensen in de sectie Andi's? 1256 01:10:38,630 --> 01:10:45,406 1257 01:10:45,406 --> 01:10:47,545 Ze willen vlucht, of willen snelheid, of zoiets. 1258 01:10:47,545 --> 01:10:48,920 Wat hebben we al daar? 1259 01:10:48,920 --> 01:10:53,425 We hebben CS50, vlucht, snelheid en kracht. 1260 01:10:53,425 --> 01:10:54,850 >> Publiek: Tijdreizen. 1261 01:10:54,850 --> 01:10:56,180 >> SPEAKER: Tijdreizen, geweldig. 1262 01:10:56,180 --> 01:11:04,280 Dus we hebben Andi, tijd gekregen reizen, en haar woonplaats. 1263 01:11:04,280 --> 01:11:05,530 Dat is een heel goede vraag. 1264 01:11:05,530 --> 01:11:09,210 New York City, tenzij iemand weet. 1265 01:11:09,210 --> 01:11:13,600 Iedereen is van New York is de les om mee te nemen vanaf nu. 1266 01:11:13,600 --> 01:11:17,710 >> Dus deze verklaring zou invoegen, als een vijfde rij, 1267 01:11:17,710 --> 01:11:21,900 met de supermacht tijdreizen en een woonplaats van New York City. 1268 01:11:21,900 --> 01:11:25,660 Maar het optioneel veld is in feite een manier 1269 01:11:25,660 --> 01:11:30,090 precies welke kolommen opgeven je dingen wilt in te voegen. 1270 01:11:30,090 --> 01:11:33,710 >> De manier waarop wij het doen bent nu, Andi, tijdreizen, New York City, 1271 01:11:33,710 --> 01:11:38,150 gaat in de exacte volgorde van onze table-- naam, grootmacht, woonplaats. 1272 01:11:38,150 --> 01:11:42,290 En als je wilde doen iets anders dan dat, 1273 01:11:42,290 --> 01:11:44,970 als zeggen dat je niet wist iemands supermacht, 1274 01:11:44,970 --> 01:11:47,660 zoals hoe ik wist niet Andi's grootmacht in het begin. 1275 01:11:47,660 --> 01:11:50,450 Dus alles wat ik wist dat haar was benoemen en haar geboortestad. 1276 01:11:50,450 --> 01:11:54,550 Wat ik kon doen is ik kon doen-- Ik zal dit snel wissen. 1277 01:11:54,550 --> 01:11:57,910 1278 01:11:57,910 --> 01:12:00,090 >> Ik wil alleen de kolommen werken. 1279 01:12:00,090 --> 01:12:04,100 En dit is waar de optionele kolom lijst in het spel komt. 1280 01:12:04,100 --> 01:12:09,185 Ik wil alleen de naam en woonplaats te werken. 1281 01:12:09,185 --> 01:12:12,650 1282 01:12:12,650 --> 01:12:16,480 En dan zal ik zeggen WAARDEN. 1283 01:12:16,480 --> 01:12:24,430 Ik doe Andi en New York City. 1284 01:12:24,430 --> 01:12:28,980 >> Als ik de lijst van de kolommen had weggelaten en juist deze twee dingen gedaan, 1285 01:12:28,980 --> 01:12:32,450 waar zou New York zijn gegaan? 1286 01:12:32,450 --> 01:12:35,900 Welke kolom zou New York Stad zijn geplaatst? 1287 01:12:35,900 --> 01:12:38,950 Mensen enig idee? 1288 01:12:38,950 --> 01:12:40,160 Grootmacht, precies. 1289 01:12:40,160 --> 01:12:41,890 >> Dus dit zal gewoon in orde. 1290 01:12:41,890 --> 01:12:45,530 En als het einde van het bereiken lijst, het zal gewoon stoppen met het vullen van de dingen in. 1291 01:12:45,530 --> 01:12:49,080 En de waarden die het zal blijven in alle kolommen zullen gewoon NULL. 1292 01:12:49,080 --> 01:12:51,840 Dus omdat we gespecificeerd naam en woonplaats, 1293 01:12:51,840 --> 01:12:56,110 we gaan ID 5 hebben, naam Andi, grootmacht NULL. 1294 01:12:56,110 --> 01:12:58,750 Dus grootmacht is een niet-geïnitialiseerde waarde. 1295 01:12:58,750 --> 01:13:01,340 Je zal niet per se de Valgrind dezelfde fouten als u probeert 1296 01:13:01,340 --> 01:13:01,970 en toegang tot het. 1297 01:13:01,970 --> 01:13:05,160 Alles wordt netjes op nul worden gezet out, omdat NULL is een waarde in SQL. 1298 01:13:05,160 --> 01:13:06,780 Dat is een constante. 1299 01:13:06,780 --> 01:13:08,980 En dan woonplaats zal New York City. 1300 01:13:08,980 --> 01:13:11,860 Dus dat is het inzetstuk in opdracht. 1301 01:13:11,860 --> 01:13:13,610 Voordat we verder gaan, is er twee commando. 1302 01:13:13,610 --> 01:13:19,060 Hebben mensen vragen over UPDATE, over plaatst, over SQL 1303 01:13:19,060 --> 01:13:21,556 meestal voordat we verhuizen op onze laatste stukjes? 1304 01:13:21,556 --> 01:13:25,500 1305 01:13:25,500 --> 01:13:26,910 Mensen voelen zich goed, geweldig. 1306 01:13:26,910 --> 01:13:27,410 Hou ervan. 1307 01:13:27,410 --> 01:13:29,480 Dus laten we praten over SELECT. 1308 01:13:29,480 --> 01:13:33,445 Going sloot UPDATE hier. 1309 01:13:33,445 --> 01:13:35,720 >> SELECT en zal zeer vergelijkbaar zijn. 1310 01:13:35,720 --> 01:13:38,790 Het doel van SELECT, SELECT doel in het leven 1311 01:13:38,790 --> 01:13:45,910 is om u een bos van kolommen geven die voldoen aan bepaalde voorwaarden. 1312 01:13:45,910 --> 01:13:48,230 En als ik zeg voldoen bepaalde voorwaarden 1313 01:13:48,230 --> 01:13:50,800 je geest zou onmiddellijk Ga terug naar die WHERE 1314 01:13:50,800 --> 01:13:52,090 die kwam in de UPDATE. 1315 01:13:52,090 --> 01:13:54,880 En dat clausule precies daar in SELECT. 1316 01:13:54,880 --> 01:14:06,020 >> Als we niet zet de WHERE clausule en we zeggen: SELECT naam, 1317 01:14:06,020 --> 01:14:16,490 hometown-- gespeld dat een beetje wrong-- naam, woonplaats FROM table1. 1318 01:14:16,490 --> 01:14:19,690 Als we zeggen alleen dat, wat SELECT gaat ons is dat het 1319 01:14:19,690 --> 01:14:23,730 gaan ons een te geven double-- een tafel, in plaats van. 1320 01:14:23,730 --> 01:14:27,450 Een dubbele rij als we na te denken over in PHP zintuigen. 1321 01:14:27,450 --> 01:14:33,239 Maar het is gewoon om ons een te geven dubbele reeks van twee columns-- naam, 1322 01:14:33,239 --> 01:14:33,780 en woonplaats. 1323 01:14:33,780 --> 01:14:36,400 1324 01:14:36,400 --> 01:14:38,130 En het zal ID negeren. 1325 01:14:38,130 --> 01:14:41,310 En het zal supermacht negeren. 1326 01:14:41,310 --> 01:14:44,696 En het zal gewoon ons elke geven enkele rij van die tabel. 1327 01:14:44,696 --> 01:14:46,570 Dus als we gewoon gestoken Andi, zullen we moeten Andi. 1328 01:14:46,570 --> 01:14:48,605 En we moeten de oorspronkelijke vier. 1329 01:14:48,605 --> 01:14:53,720 Als ze zijn bijgewerkt, dat zal uiting, et cetera, et cetera. 1330 01:14:53,720 --> 01:14:56,520 >> Dus dit is omdat we maakte geen gebruik van de WHERE-component. 1331 01:14:56,520 --> 01:14:59,200 Maar we kunnen het gebruiken in exact dezelfde manier we het gebruikt in UPDATE. 1332 01:14:59,200 --> 01:15:05,310 Als we willen alleen een tabel met de namen en superkrachten van mensen 1333 01:15:05,310 --> 01:15:13,430 in New York, kunnen we een instructie uit te voeren zoals SELECT naam, superpower-- 1334 01:15:13,430 --> 01:15:27,190 Ik ga gewoon dat-- vertrekken table1 WHERE woonplaats = New York City. 1335 01:15:27,190 --> 01:15:33,370 >> Dus dit gaat te laten zien dat je kunt krijg totaal verschillende kolommen, 1336 01:15:33,370 --> 01:15:36,920 en dan zet kolommen die u niet zelfs om terug in de WHERE-component. 1337 01:15:36,920 --> 01:15:39,200 We niet eens willen dat de geboorteplaats van iedereen. 1338 01:15:39,200 --> 01:15:41,920 Maar we willen dat de naam en het de supermacht van de mensen 1339 01:15:41,920 --> 01:15:43,817 wiens woonplaats is New York City. 1340 01:15:43,817 --> 01:15:45,650 Dus dat is iets wat we kan doen met de WHERE 1341 01:15:45,650 --> 01:15:49,112 clausule is dat we kunnen omgaan met kolommen dat we niet per se willen terug. 1342 01:15:49,112 --> 01:15:52,320 Op dezelfde manier in UPDATE, kunnen we omgaan met kolommen dat we niet per se 1343 01:15:52,320 --> 01:15:53,270 wilt bijwerken. 1344 01:15:53,270 --> 01:15:58,890 We kunnen de stad iedereen actualiseren die naam is Sam, bijvoorbeeld. 1345 01:15:58,890 --> 01:16:02,080 We kunnen de stad te werken iedereen wiens ID nummer 2. 1346 01:16:02,080 --> 01:16:04,960 Dus gewoon het actualiseren van de stad van de tweede rij 1347 01:16:04,960 --> 01:16:08,220 waar we niet te maken hebben met noodzakelijk de gemeenschappelijke vraag. 1348 01:16:08,220 --> 01:16:13,264 >> En DELETE is, zoals je zou verwachten, DELETE FROM table1. 1349 01:16:13,264 --> 01:16:14,930 En dan hebben we nog een WHERE. 1350 01:16:14,930 --> 01:16:17,940 Dus we kunnen zeggen WHERE ID = 1. 1351 01:16:17,940 --> 01:16:18,950 Verwijder de eerste rij. 1352 01:16:18,950 --> 01:16:23,240 En DELETE zal altijd een rij te verwijderen, of het zal een aantal aantal rijen te verwijderen. 1353 01:16:23,240 --> 01:16:26,990 DELETE FROM tabel WHERE hometown = New York City 1354 01:16:26,990 --> 01:16:28,740 zal iedereen in New York te schrappen. 1355 01:16:28,740 --> 01:16:30,985 Dat is als er een plotselinge tragische pest 1356 01:16:30,985 --> 01:16:33,360 en je wilde alleen maar om te verwijderen iedereen van de tafel die 1357 01:16:33,360 --> 01:16:35,760 woonde in een bepaalde stad die werd getroffen door de pest. 1358 01:16:35,760 --> 01:16:38,050 Mogen zij rusten in vrede. 1359 01:16:38,050 --> 01:16:43,849 >> Dit zijn de vier SQL-commando's die je nodig hebt om te gebruiken. 1360 01:16:43,849 --> 01:16:45,390 Je zou niet eens nodig gebruiken ze allemaal. 1361 01:16:45,390 --> 01:16:47,690 Maar dit zijn de vier dat CS50 verwacht u 1362 01:16:47,690 --> 01:16:53,630 om comfortabel met het gaan in zijn zowel quiz 1 en ook pset7 en pset8. 1363 01:16:53,630 --> 01:16:55,820 >> Er is weer gewoon die tafel. 1364 01:16:55,820 --> 01:16:58,930 In deze, Roy's supermacht heeft bijgewerkt om laserstralen, die 1365 01:16:58,930 --> 01:17:00,880 is een voorbeeld dat ik niet heb gebruikt. 1366 01:17:00,880 --> 01:17:05,480 Ik weet niet welke Roy geeft de voorkeur, maar de kracht. 1367 01:17:05,480 --> 01:17:07,670 Roy heeft een supermacht van kracht. 1368 01:17:07,670 --> 01:17:09,090 Katherine heeft het niet gehaald vandaag. 1369 01:17:09,090 --> 01:17:10,260 Dat is jammer. 1370 01:17:10,260 --> 01:17:11,260 Maar ze heeft super snelheid. 1371 01:17:11,260 --> 01:17:13,780 1372 01:17:13,780 --> 01:17:14,670 >> Nou dat was PHP. 1373 01:17:14,670 --> 01:17:19,410 Voordat we praten over MVC, doet iedereen vragen over PHP hebben? 1374 01:17:19,410 --> 01:17:23,864 Nu SQL of PHP als je opeens komen met een vraag over PHP? 1375 01:17:23,864 --> 01:17:27,560 1376 01:17:27,560 --> 01:17:28,460 Grote. 1377 01:17:28,460 --> 01:17:29,920 Oké, we zijn allemaal stel. 1378 01:17:29,920 --> 01:17:33,660 >> Dus praten een beetje over het model view controllers, 1379 01:17:33,660 --> 01:17:38,770 Laten we terug gaan naar een aantal van het spul in pset7. 1380 01:17:38,770 --> 01:17:42,470 Dus welk model view controller is-- Ik ben niet 1381 01:17:42,470 --> 01:17:45,660 ga mijn wijzigingen op te slaan om in te loggen omdat ik volledig afgeslacht het. 1382 01:17:45,660 --> 01:17:49,220 Maar in principe hebben we twee aparte dingen aan de hand. 1383 01:17:49,220 --> 01:17:52,390 We hebben een publiek directory die bevat 1384 01:17:52,390 --> 01:17:56,460 de code die zal worden uitgevoerd en de webpagina's die worden bezocht. 1385 01:17:56,460 --> 01:17:58,780 En we hebben ook dit uitzicht directory. 1386 01:17:58,780 --> 01:18:01,780 En uitzicht bevat sjablonen. 1387 01:18:01,780 --> 01:18:04,390 >> Dit is wat de functie render-- zagen we het maken 1388 01:18:04,390 --> 01:18:08,240 functie in een bos van de PHP-code dat CS50 heeft al geschreven voor u, 1389 01:18:08,240 --> 01:18:10,550 dat draait in bepaalde parameters. 1390 01:18:10,550 --> 01:18:14,510 Wat die code doet wordt het gaat in opvattingen, 1391 01:18:14,510 --> 01:18:18,000 die sets van zijn als prewritten HTML-code, 1392 01:18:18,000 --> 01:18:20,720 en het inbrengen van waarden in bepaalde plaatsen. 1393 01:18:20,720 --> 01:18:23,990 Zo wanneer u ga in CS50 Financiën, 1394 01:18:23,990 --> 01:18:25,760 dezelfde koptekst is op elke pagina. 1395 01:18:25,760 --> 01:18:28,130 Hetzelfde voettekst op elke pagina. 1396 01:18:28,130 --> 01:18:31,880 Dit is omdat de manier die maken de werken het zal 1397 01:18:31,880 --> 01:18:36,720 automatisch patch in die header en viewer die u kunt vinden in de standpunten. 1398 01:18:36,720 --> 01:18:41,400 >> We eigenlijk kunnen gaan in de header, en Kijk, het is een HTML-bestand met een hoofd. 1399 01:18:41,400 --> 01:18:43,280 Het heeft een aantal stylesheets. 1400 01:18:43,280 --> 01:18:48,450 U hoeft niet te kijken naar CSS voor pset7 als je niet wilt. 1401 01:18:48,450 --> 01:18:50,560 Maar u kunt wijzigen ze als je wilt, maken 1402 01:18:50,560 --> 01:18:53,470 uw Financiën ziet er een beetje anders. 1403 01:18:53,470 --> 01:18:57,560 >> Het heeft een aantal PHP de header een beetje om te zien 1404 01:18:57,560 --> 01:19:01,240 als er een andere titel het moet in deze header te zetten. 1405 01:19:01,240 --> 01:19:04,300 Maar slechts enkele andere scripts, en links, en andere dingen. 1406 01:19:04,300 --> 01:19:08,700 Kopstations, lichaam begint, en oops, We hebben deze rare kleine einde beetje. 1407 01:19:08,700 --> 01:19:14,730 En er is een div, net als een vormloze soort element 1408 01:19:14,730 --> 01:19:17,120 dat heeft een idee van het midden. 1409 01:19:17,120 --> 01:19:22,450 >> En toen we zien voettekst We hebben het einde van een div. 1410 01:19:22,450 --> 01:19:25,000 We hebben een bodem, die waarbij de voettekst is. 1411 01:19:25,000 --> 01:19:26,770 Einde van div, einde van het lichaam, het einde van de HTML. 1412 01:19:26,770 --> 01:19:29,070 >> Dus wat maken is doen is te maken is een soort 1413 01:19:29,070 --> 01:19:33,150 van oplappen header, een verschillende PHP-bestand dat 1414 01:19:33,150 --> 01:19:37,110 de werkelijke dingen bevatten die je zult zien, als uw tafel van de voorraden 1415 01:19:37,110 --> 01:19:39,690 als je het kopen of verkopen van aandelen. 1416 01:19:39,690 --> 01:19:41,480 En dan zal het toe te voegen in de voettekst. 1417 01:19:41,480 --> 01:19:44,890 En het model view controller idee is dat we 1418 01:19:44,890 --> 01:19:49,590 willen scheiden hoe dingen zien van de code. 1419 01:19:49,590 --> 01:19:53,420 Het is willen we de frontend scheiden en de backend, waar de frontend is 1420 01:19:53,420 --> 01:20:00,440 het spul dat de gebruiker ziet, de leuke visuals-- HTML, CSS, dat soort dingen, 1421 01:20:00,440 --> 01:20:02,320 afbeeldingen, et cetera. 1422 01:20:02,320 --> 01:20:05,780 En de backend is PHP. 1423 01:20:05,780 --> 01:20:07,710 Dit is de code die je schrijft. 1424 01:20:07,710 --> 01:20:10,240 Dit is waar de code dat is het doen van feitelijke operaties. 1425 01:20:10,240 --> 01:20:12,400 Dit is wanneer u toevoegt een voorraad aan uw tafel, 1426 01:20:12,400 --> 01:20:14,890 als je het kopen en selling, dat is backend. 1427 01:20:14,890 --> 01:20:20,210 >> En we kunnen, als je zag, waaronder PHP direct in HTML. 1428 01:20:20,210 --> 01:20:23,210 Dus wat we kunnen doen voor deze opdracht is net 1429 01:20:23,210 --> 01:20:26,200 een HTML-bestand voor elke pagina, zoals login. 1430 01:20:26,200 --> 01:20:30,260 En dan op die pagina, net had een enorme blok van PHP-code, 1431 01:20:30,260 --> 01:20:33,822 met inbegrip van alle van de code die die pagina specifiek nodig zou hebben. 1432 01:20:33,822 --> 01:20:35,780 En dan konden we hebben gedaan voor portfolio. 1433 01:20:35,780 --> 01:20:40,250 We kunnen allemaal van de aankoop hebben gedaan en levering in de afzonderlijke pagina's. 1434 01:20:40,250 --> 01:20:43,680 >> Maar omdat we renderen los vanwaar 1435 01:20:43,680 --> 01:20:46,660 we schrijven de backend code, kunnen we gemakkelijk 1436 01:20:46,660 --> 01:20:52,660 veranderen hoe dingen eruit zonder het veranderen van elk bestand. 1437 01:20:52,660 --> 01:20:55,460 Wij doen dingen als voeg nieuwe div onderaan 1438 01:20:55,460 --> 01:21:00,720 van-- Hallo Ik wijzigde de voettekst. 1439 01:21:00,720 --> 01:21:03,710 U kunt gewoon dingen doen als dat. 1440 01:21:03,710 --> 01:21:07,250 Maar ook kunt u veranderen het gehele visuele layout 1441 01:21:07,250 --> 01:21:09,290 zonder dat wat gaan in de backend. 1442 01:21:09,290 --> 01:21:12,000 En u kunt het veranderen hele backend en nog steeds 1443 01:21:12,000 --> 01:21:13,900 hebben het er net als voorheen. 1444 01:21:13,900 --> 01:21:14,400 Deze 1445 01:21:14,400 --> 01:21:16,170 >> Is het idee van het model view controller. 1446 01:21:16,170 --> 01:21:19,992 En het is eigenlijk een opgelegde paradigma in sommige programmeertalen 1447 01:21:19,992 --> 01:21:21,700 je zou willen gebruiken voor de laatste projecten. 1448 01:21:21,700 --> 01:21:25,100 Als je iOS ontwikkeling doen, ze hebben bekeken, 1449 01:21:25,100 --> 01:21:29,120 dat is wat je ziet op de iPhone en dan backend als als een aparte zaak. 1450 01:21:29,120 --> 01:21:31,260 >> U kunt denken aan een beetje. 1451 01:21:31,260 --> 01:21:35,190 Er is veel binaries in informatica, dat is grappig, 1452 01:21:35,190 --> 01:21:37,270 want alles is in binaire. 1453 01:21:37,270 --> 01:21:38,550 Ik was niet van plan dat. 1454 01:21:38,550 --> 01:21:41,590 Dat was een onbedoelde woordspeling. 1455 01:21:41,590 --> 01:21:43,860 Ja, woordspeling niet bedoeld. 1456 01:21:43,860 --> 01:21:49,070 >> Maar zoals .h files en .c bestanden, is er veel scheiden van dingen die we 1457 01:21:49,070 --> 01:21:49,900 misschien niet nodig. 1458 01:21:49,900 --> 01:21:54,330 Dus we kunnen alleen de h bestanden te bewerken of iemand kan gewoon zien een .h bestand en weten 1459 01:21:54,330 --> 01:21:57,650 exact functies die in de .c bestand zonder per se weten 1460 01:21:57,650 --> 01:21:58,870 de uitvoering ervan. 1461 01:21:58,870 --> 01:22:02,800 Dit idee van afscheidingscomponenten die van elkaar afhankelijk 1462 01:22:02,800 --> 01:22:06,990 maar kan soort van elkaar toegang via verschillende kanalen, passeren 1463 01:22:06,990 --> 01:22:09,310 variabelen, net omvatten verklaringen, dingen 1464 01:22:09,310 --> 01:22:14,440 als dat, dit principe helpt om applicaties te maken 1465 01:22:14,440 --> 01:22:17,080 die gemakkelijker kunnen worden bewerkt door meerdere mensen, 1466 01:22:17,080 --> 01:22:20,440 kan gemakkelijker worden veranderd of aangepast op een grote schaal, 1467 01:22:20,440 --> 01:22:24,880 en zijn gemakkelijker te debuggen in een heleboel manieren. 1468 01:22:24,880 --> 01:22:28,254 >> Erg snel, ik heb een paar tips voor pset7, 1469 01:22:28,254 --> 01:22:31,420 die ik volledig scherm, zodat je niet zult maken gewoon kijken naar the-- tip tip Tippee. 1470 01:22:31,420 --> 01:22:33,964 1471 01:22:33,964 --> 01:22:35,130 Er zijn niet veel tips. 1472 01:22:35,130 --> 01:22:38,060 >> Maar ik noemde PHP is moeilijk te debuggen. 1473 01:22:38,060 --> 01:22:39,290 Dubbele en driedubbele controleren. 1474 01:22:39,290 --> 01:22:41,550 Als uw code is gewoon niet weergegeven op de pagina, 1475 01:22:41,550 --> 01:22:46,240 is het waarschijnlijk een PHP fout, sorry. 1476 01:22:46,240 --> 01:22:48,570 >> Je hoeft nooit te kijken naar CSS als je niet wilt. 1477 01:22:48,570 --> 01:22:52,150 Maar als je eenmaal klaar bent, kan het een leuk leuk ding om gewoon te gaan 1478 01:22:52,150 --> 01:22:54,770 en knoeien met de CSS parameters. 1479 01:22:54,770 --> 01:22:58,700 CSS en HTML is een voorbeeld van een model view controller stijl ding ook, toch? 1480 01:22:58,700 --> 01:23:02,150 Je kon stijl tags binnenkant van HTML-elementen. 1481 01:23:02,150 --> 01:23:04,800 Maar als je een soort van uitbesteden van hen om CSS, 1482 01:23:04,800 --> 01:23:08,180 ze makkelijker te bewerken en te spelen rond met, en plezier hebben met. 1483 01:23:08,180 --> 01:23:10,816 >> Behandel CS50 helper functioneert als zwarte dozen. 1484 01:23:10,816 --> 01:23:12,940 U hoeft niet te weten precies wat render doet, 1485 01:23:12,940 --> 01:23:16,770 maar geloof dat het altijd het juiste ding afhankelijk van wat u doorgeven, 1486 01:23:16,770 --> 01:23:17,690 dit soort dingen. 1487 01:23:17,690 --> 01:23:21,040 En ik zou aanraden kijken Davids walkthrough, 1488 01:23:21,040 --> 01:23:24,490 gaan door alle stuff, niet alleen de todos, 1489 01:23:24,490 --> 01:23:26,960 maar je echt kan behandelen deze als zwarte dozen. 1490 01:23:26,960 --> 01:23:29,280 Niet in deze te gaan functies zoekt insecten. 1491 01:23:29,280 --> 01:23:33,510 >> En zijn blij met de terugkeer van onze overlord Zamyla. 1492 01:23:33,510 --> 01:23:34,010 Grote. 1493 01:23:34,010 --> 01:23:40,430 >> Zijn er nog vragen voordat finale we soort stuiteren voor de dag? 1494 01:23:40,430 --> 01:23:42,610 Ben ik nog leef? 1495 01:23:42,610 --> 01:23:44,700 Grote. 1496 01:23:44,700 --> 01:23:47,120 Hi livestream mensen. 1497 01:23:47,120 --> 01:23:47,620 Grote. 1498 01:23:47,620 --> 01:23:50,260 Zijn er meer vragen? 1499 01:23:50,260 --> 01:23:50,760 Nee? 1500 01:23:50,760 --> 01:23:52,884 >> En dan denk ik dat we goed om te gaan voor vandaag. 1501 01:23:52,884 --> 01:23:55,550 Ik blijf een beetje rond daarna als mensen hadden vragen 1502 01:23:55,550 --> 01:23:57,480 ze waren bang om te vragen over de beek. 1503 01:23:57,480 --> 01:23:59,790 Maar anders, hebben een goede dag. 1504 01:23:59,790 --> 01:24:01,933