1 00:00:00,000 --> 00:00:05,040 2 00:00:05,040 --> 00:00:08,440 >> SAM LEVATICH: Welkom by artikel vir hierdie week. 3 00:00:08,440 --> 00:00:10,040 Ek is nie Andi. 4 00:00:10,040 --> 00:00:14,590 Andi het siek geval het, en ek is soort van genoem in die laaste minuut 5 00:00:14,590 --> 00:00:15,700 om oor te neem. 6 00:00:15,700 --> 00:00:20,920 Dit is griep seisoen, so maak seker dat jy bly skoon, jou hande, 7 00:00:20,920 --> 00:00:24,800 en die eet van gesonde sodat julle ook, is nie bedlêend. 8 00:00:24,800 --> 00:00:26,870 >> Maar sonder verdere ado, laat ons begin. 9 00:00:26,870 --> 00:00:29,970 Vandag, ons gaan om te praat oor PHP 'n bietjie bit-- hoe 10 00:00:29,970 --> 00:00:33,900 PHP het betrekking op HTML, hoe dit verband hou met CSS, en 'n paar van die web 11 00:00:33,900 --> 00:00:36,100 dinge wat jy gedoen het op die laaste opdrag. 12 00:00:36,100 --> 00:00:37,930 Ons gaan 'n praatjie bietjie oor SQL 13 00:00:37,930 --> 00:00:41,360 en hoe jy kan werk met databasisse, wat is 'n mooi belangrike komponent van P 14 00:00:41,360 --> 00:00:43,650 stel 8-- P stel 7. 15 00:00:43,650 --> 00:00:44,480 P stel 7. 16 00:00:44,480 --> 00:00:48,400 >> En dan gaan ons 'n bietjie praat bietjie oor hoe die lig beheerders werk 17 00:00:48,400 --> 00:00:54,640 en waarom dit is 'n filosofie agter 'n paar moderne web bladsye en verskillende ontwerp. 18 00:00:54,640 --> 00:00:58,760 Pretty much 'n baie tipes van die programme en programme wat jy kan stuur 19 00:00:58,760 --> 00:01:01,120 gebruik hierdie model, oog kontroleerder raamwerk, 20 00:01:01,120 --> 00:01:02,890 wat jy sal gebruik word in P stel 7, so ek sal 21 00:01:02,890 --> 00:01:05,220 praat 'n bietjie oor hoekom dit geword 22 00:01:05,220 --> 00:01:07,970 gewild, hoekom dit belangrik is en mooi. 23 00:01:07,970 --> 00:01:12,052 En dan sal ek uiteindelik beweeg na 'n paar wenke oor die aanpak van P stel 7. 24 00:01:12,052 --> 00:01:13,760 En as ons tyd het oorbly aan die einde, 25 00:01:13,760 --> 00:01:17,320 ons kan eintlik 'n paar te doen werk op daardie saam. 26 00:01:17,320 --> 00:01:20,380 >> So, PHP. 27 00:01:20,380 --> 00:01:23,790 In werklikheid is, kan jy opgemerk this-- jy het nie regtig om te duik in it-- 28 00:01:23,790 --> 00:01:27,880 maar P stel 6 het 'n paar PHP kode wat aan die gang was. 29 00:01:27,880 --> 00:01:34,710 En omdat PHP is 'n C-agtige taal, PHP, in teenstelling met HTML en CSS, 30 00:01:34,710 --> 00:01:39,030 is 'n programmeertaal, terwyl HTML en CSS is staties nie. 31 00:01:39,030 --> 00:01:44,050 Hulle is opmaak tale hantering met styl en visuele uitleg. 32 00:01:44,050 --> 00:01:46,230 PHP is die ware Jakob. 33 00:01:46,230 --> 00:01:51,590 >> PHP het loops, dit het conditions-- al daardie dinge wat is pret oor C. 34 00:01:51,590 --> 00:01:56,190 Dit het 'n paar dinge wat 'n bietjie is bietjie beter as C, wat ons sal sien, 35 00:01:56,190 --> 00:01:59,760 maar ek dink die maklikste manier om te praat oor die PHP is net om te duik in. 36 00:01:59,760 --> 00:02:04,087 So ek gaan gaan reg in die IDE op hierdie punt. 37 00:02:04,087 --> 00:02:06,170 Die eerste ding wat ons gaan te doen, is eintlik kyk 38 00:02:06,170 --> 00:02:10,169 'n bietjie op 'n paar van die PHP-kode wat in P stel 6. 39 00:02:10,169 --> 00:02:13,600 So die manier waarop ons that-- doen voor, die manier waarop ons hardloop 40 00:02:13,600 --> 00:02:18,550 die bediener vir die toestel was dat ons sal moet type-- 41 00:02:18,550 --> 00:02:21,750 óf gebruik jou implementering of implementering van die personeel se 42 00:02:21,750 --> 00:02:27,059 van server.c deur gaan in gids en loop server.c met geen 43 00:02:27,059 --> 00:02:30,100 arguments-- so net noem dit op die plaaslike gasheer, en dit is wat jy waarskynlik 44 00:02:30,100 --> 00:02:31,849 het die meeste van die time-- en dan voed 45 00:02:31,849 --> 00:02:35,380 'n directory-- met wat om te gebruik as sy wortel 46 00:02:35,380 --> 00:02:38,310 waar die webwerf sou wees hardloop, basies. 47 00:02:38,310 --> 00:02:42,180 >> Hierdie week vir P stel 7, soos groot soos ons kode vir server.c 48 00:02:42,180 --> 00:02:47,580 is, daar is mense wat reeds geskrewe hierdie mooi dinge oor by CS50 49 00:02:47,580 --> 00:02:49,630 wat 'n bietjie meer funksies, 50 00:02:49,630 --> 00:02:52,920 'n bediener program wat in staat is om om met 'n bietjie meer 51 00:02:52,920 --> 00:02:56,350 van die verwikkeldheid dat ons sal sien in beide P stel 7 en 8 P stel. 52 00:02:56,350 --> 00:03:01,410 En die manier waarop jy begin die bediener is deur net te tik, "apache50." 53 00:03:01,410 --> 00:03:03,960 >> En voordat jy enigiets doen, jy wil om seker te maak 54 00:03:03,960 --> 00:03:06,070 dat Apache 50 is nie reeds aan die gang, want dit is 55 00:03:06,070 --> 00:03:08,130 op my rekenaar, wat ek gedoen het om dit te toets. 56 00:03:08,130 --> 00:03:10,320 En jy dit doen deur te bel apache50. 57 00:03:10,320 --> 00:03:14,070 Stop, en jy sal sien dat dit stop die web bediener, as jy kan daar sien 58 00:03:14,070 --> 00:03:16,340 aan die onderkant van die terminale venster. 59 00:03:16,340 --> 00:03:21,090 En dan net om te begin, ons is gaan om te bel, "apache50 begin." 60 00:03:21,090 --> 00:03:23,150 En dan gaan ons om dit te voed 'n gids. 61 00:03:23,150 --> 00:03:26,950 >> Nou, want ons wil om te kyk op sommige van die P stel 6-kode 62 00:03:26,950 --> 00:03:32,850 dat ons, ek het eintlik geïmplementeer gekopieer 'n bietjie van die P 63 00:03:32,850 --> 00:03:37,090 stel 6 kode in my eie gids, wat jy kan sien op die links daar. 64 00:03:37,090 --> 00:03:40,170 Dit is bekend as "SECTION8" alles in hoofletters 65 00:03:40,170 --> 00:03:44,510 want ek is net so opgewonde om vandag live-gestroom. 66 00:03:44,510 --> 00:03:47,330 >> So as ons dit uit te voer, dit moet almal werk mooi effektief. 67 00:03:47,330 --> 00:03:52,350 Dit sê, OK, ons webwerf is nou beskikbaar by die adres van die IDE, 68 00:03:52,350 --> 00:03:57,710 basies, dit is wat jy gebruik het presies soos dit was in P stel 7-- P stel 6. 69 00:03:57,710 --> 00:04:00,899 Al my indekse is een indeks vandag. 70 00:04:00,899 --> 00:04:02,940 Sodat ons kan gaan na die adres as jy sal onthou, 71 00:04:02,940 --> 00:04:05,710 deur net hierdie klein kliek knoppie in die boonste regterkantste. 72 00:04:05,710 --> 00:04:14,200 >> En jy sal hierdie kode, onthou wat gebeur wanneer jy gaan in hello.php. 73 00:04:14,200 --> 00:04:18,000 En wat die kode is ontwerp om doen is wanneer jy in 'n naam getik 74 00:04:18,000 --> 00:04:20,550 here-- as jy sê Sam want dit is my name-- 75 00:04:20,550 --> 00:04:23,620 en ek klik sê hallo, wanneer ons het na die volgende bladsy 76 00:04:23,620 --> 00:04:25,270 daardie naam was veronderstel om te vertoon. 77 00:04:25,270 --> 00:04:28,550 Dit sou sê, "Hallo, Sam" of "Hallo," alles wat jy naam 78 00:04:28,550 --> 00:04:32,470 sit in dit, selfs al het ons om 'n heeltemal nuwe webblad. 79 00:04:32,470 --> 00:04:36,610 >> En dit is die soort van ding wat PHP vir jou kan doen. 80 00:04:36,610 --> 00:04:42,840 PHP is in staat om data te slaag tussen twee webblaaie. 81 00:04:42,840 --> 00:04:44,390 Dit is 'n totaal ander bladsy. 82 00:04:44,390 --> 00:04:46,990 Jy sal sien die titel is "hallo" hier. 83 00:04:46,990 --> 00:04:49,080 Eintlik, hulle het dieselfde titel, maar ek 84 00:04:49,080 --> 00:04:52,560 belowe hulle is verskillende web bladsye as ons kyk na die bron. 85 00:04:52,560 --> 00:04:55,890 En jy kan die data wat slaag in hierdie teks veld ingegaan het, 86 00:04:55,890 --> 00:04:59,830 jy stuur dit na die volgende bladsy wat tans op genoem word, 87 00:04:59,830 --> 00:05:02,490 en dan dat data in staat is om wees daar in sy huidige vorm. 88 00:05:02,490 --> 00:05:04,810 >> Nou het ons nog nie geïmplementeer hierdie onsself, wat 89 00:05:04,810 --> 00:05:08,710 is wat ons gaan nou te doen sorteer kry 'n smaak vir hoe PHP werk, 90 00:05:08,710 --> 00:05:15,070 maar die sleutel idee is dat jy kan PHP-- soort van dink dit soos 'n funksie. 91 00:05:15,070 --> 00:05:18,570 Iets wat PHP kan jy laat doen is dit kan parameters 92 00:05:18,570 --> 00:05:24,710 dat jy insette in 'n HTML bladsy deur die gebruik van PHP en vorms, 93 00:05:24,710 --> 00:05:29,960 en dit kan die as parameters na die volgende bladsy wat dit laai op. 94 00:05:29,960 --> 00:05:35,110 >> In hierdie geval, ons laai hierdie bladsy met die knoppie "Sê hallo". 95 00:05:35,110 --> 00:05:38,960 Maar vir nou, ek het eintlik verwyder sommige van daardie kode 96 00:05:38,960 --> 00:05:44,850 in die hello.php wat aan die gang is wat eintlik die vertoning van die "hello, 97 00:05:44,850 --> 00:05:49,680 wêreld "of" hello, Sam "of "hello," wat ook al was dit net insette. 98 00:05:49,680 --> 00:05:53,620 So vir nou, ons is gaan om dit te doen, basies. 99 00:05:53,620 --> 00:05:56,570 Ons gaan herskep dit en ook 'n paar meer funksies, 100 00:05:56,570 --> 00:06:00,210 doen 'n bietjie meer met dit, sien wat PHP is regtig in staat is. 101 00:06:00,210 --> 00:06:04,870 >> So die eerste, laat ons praat oor hierdie lêer, hello.php. 102 00:06:04,870 --> 00:06:07,440 So as ons in 'n zoom bietjie bit-- en nou is ek 103 00:06:07,440 --> 00:06:10,520 soort van probeer om al blaai die manier around-- daar gaan ons. 104 00:06:10,520 --> 00:06:14,220 Jy sal sien dit genoem hello.php, maar die sintaksis van dit 105 00:06:14,220 --> 00:06:16,880 lyk soos 'n HTML-lêer. 106 00:06:16,880 --> 00:06:20,380 Dit is omdat die werklike PHP in hierdie lêer 107 00:06:20,380 --> 00:06:25,220 is al vas tussen hierdie vraagteken-kappie blokke. 108 00:06:25,220 --> 00:06:28,610 Alles hier word beskou PHP-kode. 109 00:06:28,610 --> 00:06:32,040 >> En jy sal sien dat toe ek het 'n opmerking, 110 00:06:32,040 --> 00:06:35,320 jy sal sien die bekende twee vorentoe houe. 111 00:06:35,320 --> 00:06:38,440 En as jy onthou, in HTML, as ek tik 'n opmerking, 112 00:06:38,440 --> 00:06:42,540 dit lyk iets nader aan hierdie, wat 'n kommentaar in HTML. 113 00:06:42,540 --> 00:06:46,570 So regtig alles tussen hierdie twee hoek tussen hakies 114 00:06:46,570 --> 00:06:50,060 is nou PHP kode, wat word weerspieël in die feit 115 00:06:50,060 --> 00:06:53,270 dat hierdie klein kommentaar simbool het in 'n kommentaar. 116 00:06:53,270 --> 00:06:58,420 >> So elke keer as jy skryf PHP-kode, selfs As daar is geen HTML-kode buite dit, 117 00:06:58,420 --> 00:07:02,720 dit is altyd gaan wees ingesluit in hierdie hoek tussen hakies 118 00:07:02,720 --> 00:07:04,080 met vraagtekens. 119 00:07:04,080 --> 00:07:08,260 Jy kan soort van dink oor hoe al it-- van die kode wat gehardloop in jou C programme 120 00:07:08,260 --> 00:07:13,950 is ingesluit in 'n int main, nietig, krullerige brace, end krullerige brace verklaring. 121 00:07:13,950 --> 00:07:17,100 En jy sal sien krulhakies in PHP ook, maar dit is soort van 122 00:07:17,100 --> 00:07:20,490 soos die belangrikste metode van PHP. 123 00:07:20,490 --> 00:07:25,630 >> So nou, hoe ons iets in PHP doen? 124 00:07:25,630 --> 00:07:29,190 Nou, PHP is 'n programmeertaal taal wat baie C-agtige, 125 00:07:29,190 --> 00:07:30,970 maar dit werk op die web. 126 00:07:30,970 --> 00:07:33,270 So een ding wat jy immediately-- een 127 00:07:33,270 --> 00:07:38,130 van die eerste dinge wat jy regtig met C is jy gedruk dinge uit, reg? 128 00:07:38,130 --> 00:07:42,290 So in C ons gedoen het wat met 'n printf funksie. 129 00:07:42,290 --> 00:07:46,430 Ons het dit 'n string, waarskynlik met 'n nuwe lyn, 130 00:07:46,430 --> 00:07:49,850 en dan beëindig ons dit met 'n kommapunt. 131 00:07:49,850 --> 00:07:53,790 >> So die manier waarop ons gaan om dit te doen in PHP--, want dit is nie heeltemal printf. 132 00:07:53,790 --> 00:07:55,940 Dit is 'n bietjie van verskillende sintaksis. 133 00:07:55,940 --> 00:08:02,580 Die manier waarop ons dinge uit te druk in PHP is ons sê, "eggo hallo" 134 00:08:02,580 --> 00:08:04,180 of "eggo" enige woord. 135 00:08:04,180 --> 00:08:09,830 En dit het die effek van doen printf met 'n string, "hallo." 136 00:08:09,830 --> 00:08:11,990 En dit voeg die nuwe lyn om dit te. 137 00:08:11,990 --> 00:08:16,000 >> So laat nou maak sure-- Ek sal weer 'n bietjie zoom bit-- 138 00:08:16,000 --> 00:08:18,250 laat maak seker dat wat die kode werk 139 00:08:18,250 --> 00:08:21,030 omdat daar dalk baie wel 'n fout in die kode 140 00:08:21,030 --> 00:08:22,880 dat ons sal moet aanpak. 141 00:08:22,880 --> 00:08:25,860 So die bediener loop reeds. 142 00:08:25,860 --> 00:08:30,630 So as ons blaai terug na die bodem, yup, die bediener is nog steeds loop. 143 00:08:30,630 --> 00:08:34,510 So as ons net tap op hierdie bietjie reg here-- 144 00:08:34,510 --> 00:08:37,620 welcome-- moet ons groot get--. 145 00:08:37,620 --> 00:08:39,930 >> Ons het nog steeds is met die bekende "Sê hallo" dialoog, 146 00:08:39,930 --> 00:08:45,750 maar toe ek tik in "hi," ons sal sien dat die teks "hallo" was inderdaad 147 00:08:45,750 --> 00:08:50,080 gedruk, wat presies soos ons verwag, want eggo in PHP 148 00:08:50,080 --> 00:08:53,190 is net soos 'n printf verklaring. 149 00:08:53,190 --> 00:09:01,410 So terug na die kode, hoe in P stel 6 het die verspreiding kode wat jy word voorsien 150 00:09:01,410 --> 00:09:05,920 maak dit so dat PHP sou uitset die ding wat jy 151 00:09:05,920 --> 00:09:07,920 getik in die vorige skerm? 152 00:09:07,920 --> 00:09:10,350 >> En soort van ondersoek waarom dit gebeur, is ons 153 00:09:10,350 --> 00:09:15,510 gaan om te gaan na index.html, wat is die oorspronklike lêer, die lêer wat 154 00:09:15,510 --> 00:09:18,710 dui op die skerm met die knoppie "Sê hallo". 155 00:09:18,710 --> 00:09:20,950 Jy agterkom dat daar al die klassieke dinge 156 00:09:20,950 --> 00:09:26,910 ons het gekom om te verwag van HTML sulke as hierdie dinge, hierdie tags ingeslote 157 00:09:26,910 --> 00:09:31,080 in die hoek tussen hakies, soos PHP maar sonder die vraagtekens, 158 00:09:31,080 --> 00:09:34,650 wat dui op 'n spesiale ding om HTML. 159 00:09:34,650 --> 00:09:36,895 Ons het die titel, wat is "hallo." 160 00:09:36,895 --> 00:09:41,010 En jy sal sien dat as ons sien, die titel is "hallo" in beide gevalle. 161 00:09:41,010 --> 00:09:43,260 Kom ons hierdie een verander na "sê" net sodat ons 162 00:09:43,260 --> 00:09:48,170 kan ons onderskei waar ons is. 163 00:09:48,170 --> 00:09:49,600 >> Maar ons het 'n liggaam het. 164 00:09:49,600 --> 00:09:52,690 En dan die interessante bietjie, die bietjie wat wys in die HTML, 165 00:09:52,690 --> 00:09:54,530 is hierdie vorm element. 166 00:09:54,530 --> 00:09:56,370 En so het ons het 'n vorm. 167 00:09:56,370 --> 00:09:58,330 En dit is die sleutel. 168 00:09:58,330 --> 00:10:00,530 Dit is hoe ons werk met PHP. 169 00:10:00,530 --> 00:10:05,790 Die aksie parameter van vorm sê dat hello.php 170 00:10:05,790 --> 00:10:09,310 is wat ons gaan om te stuur die waardes in hierdie vorm om. 171 00:10:09,310 --> 00:10:13,830 Dit is waar ons verby die parameters, om so te praat. 172 00:10:13,830 --> 00:10:18,680 >> Jy sal 'n ander ding hier sien is dat die metode is "kry nie." 173 00:10:18,680 --> 00:10:24,450 Daar is twee primêre metodes wat sal 174 00:10:24,450 --> 00:10:28,750 wees met behulp van PHP om data te slaag tussen websites-- web bladsye, 175 00:10:28,750 --> 00:10:30,500 rather-- in hierdie opdrag. 176 00:10:30,500 --> 00:10:34,070 En dié metodes is "kry" en "post". 177 00:10:34,070 --> 00:10:37,010 Daar is 'n paar subtiele verskille tussen AOO en post 178 00:10:37,010 --> 00:10:40,520 dat ons sal kry into-- ons sal "kry" in, as jy wil. 179 00:10:40,520 --> 00:10:44,030 >> Maar vir alle praktiese doeleindes, te kry en post 180 00:10:44,030 --> 00:10:47,120 is albei net maniere wat jy parameters 181 00:10:47,120 --> 00:10:49,500 met effens verskillende teregstellings. 182 00:10:49,500 --> 00:10:53,500 Vir nou, ons gaan kry, want gebruik kry was wat oorspronklik gebruik is 183 00:10:53,500 --> 00:10:57,340 in die PHP lêer van P stel 6. 184 00:10:57,340 --> 00:11:00,850 En eintlik, as ons gaan in en kyk voordat ons enigiets anders het geredigeer, 185 00:11:00,850 --> 00:11:03,090 Ek gaan hi sê aan- wat is jou naam? 186 00:11:03,090 --> 00:11:03,812 >> GEHOOR: Elliot. 187 00:11:03,812 --> 00:11:04,770 SAM LEVATICH: O, gosh. 188 00:11:04,770 --> 00:11:05,600 Ek weet nie hoe om te spel nie. 189 00:11:05,600 --> 00:11:06,766 Kan jy dit spel vir my? 190 00:11:06,766 --> 00:11:08,710 GEHOOR: 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 >> GEHOOR: 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 Ek dink ek het geweet hoe om te spel nie. 196 00:11:12,751 --> 00:11:13,510 Jammer oor dit. 197 00:11:13,510 --> 00:11:16,560 Maar as ons sê: "Sê hallo," dit is nie dit gaan nie om te wys op die skerm 198 00:11:16,560 --> 00:11:18,476 nog omdat ons verander die kode 'n bietjie. 199 00:11:18,476 --> 00:11:21,290 Maar as ons nie "Sê hallo" - OK, so "hallo" is hier. 200 00:11:21,290 --> 00:11:24,137 Maar as ons neem 'n nader kyk na die URL self, 201 00:11:24,137 --> 00:11:26,220 ons sal sien dat dit eindig met hello.php? name = Elliot. 202 00:11:26,220 --> 00:11:30,980 203 00:11:30,980 --> 00:11:37,180 >> So, dit is 'n manier om kommunikasie na die volgende webblad 204 00:11:37,180 --> 00:11:39,240 die parameters wat ons het geslaag. 205 00:11:39,240 --> 00:11:40,870 Ons het gesê name = Elliot. 206 00:11:40,870 --> 00:11:46,290 En dit is uiteindelik hoe P stel 6 toegang tot die veranderlike wat ons geslaag in 207 00:11:46,290 --> 00:11:47,520 deur die vorm. 208 00:11:47,520 --> 00:11:51,470 En dit is iets wat is eie aan 'n get versoek. 209 00:11:51,470 --> 00:11:57,480 A get versoek maak die parameters bekend in die URL van die webwerf. 210 00:11:57,480 --> 00:12:01,190 >> En jy sal onthou, ook in P stel 6 dat jy 211 00:12:01,190 --> 00:12:04,450 moes 'n funksie te skryf wat gehandel het oor die feit 212 00:12:04,450 --> 00:12:09,700 dat hierdie navraag string na 'n lêer kan bestaan. 213 00:12:09,700 --> 00:12:14,684 Daar kan 'n vraagteken gevolg wees deur basies enige aantal karakters. 214 00:12:14,684 --> 00:12:16,350 En dit is presies wat gaan aan hier. 215 00:12:16,350 --> 00:12:21,280 En die rede waarom jy moes ontleed wat in jou implementering van server.c in P 216 00:12:21,280 --> 00:12:27,570 stel 6 is, sodat jy kan vertel die PHP-kode wat noem = Elliot. 217 00:12:27,570 --> 00:12:30,460 Jy nodig het om in staat wees om ontleed wat uit die URL 218 00:12:30,460 --> 00:12:35,900 sodat die PHP lêer in die vraag geweet wat dit was nie die hantering van. 219 00:12:35,900 --> 00:12:39,350 >> So hopelik gee die motivering om server.c 220 00:12:39,350 --> 00:12:43,900 nou dat ons beweeg op buite C in PHP. 221 00:12:43,900 --> 00:12:48,240 So laat eintlik fokus op die toegang tot die dinge het deur 'n get versoek nou 222 00:12:48,240 --> 00:12:48,880 op hierdie punt. 223 00:12:48,880 --> 00:12:50,157 Ek gaan hierdie red. 224 00:12:50,157 --> 00:12:51,240 Ons het niks verander nie. 225 00:12:51,240 --> 00:12:56,080 Dit lyk asof ons 'n invoer veld het. 226 00:12:56,080 --> 00:12:58,550 >> Ons opstel sommige eienskappe, soos ons 'n HTML kan doen. 227 00:12:58,550 --> 00:12:59,550 Dit is eenvoudige dinge. 228 00:12:59,550 --> 00:13:00,580 Ons nie hierdie nodig. 229 00:13:00,580 --> 00:13:03,750 Maar ons het outovoltooiing af, wat basies says-- jy weet, 230 00:13:03,750 --> 00:13:05,710 wanneer jy dinge tik in die web, soms 231 00:13:05,710 --> 00:13:07,355 dit probeer om te vul wat in vir jou. 232 00:13:07,355 --> 00:13:08,230 So dit is 'n mooi ding. 233 00:13:08,230 --> 00:13:11,700 Ons wil dit afskakel vir hierdie doel. 234 00:13:11,700 --> 00:13:13,970 Dit was 'n CS50 besluit. 235 00:13:13,970 --> 00:13:15,640 Sodat ons kan verwyder wat as ons wou. 236 00:13:15,640 --> 00:13:19,510 >> Autofocus stokke net die wyser in die vorm reg aan die begin. 237 00:13:19,510 --> 00:13:21,060 Weer, nie te belangrik. 238 00:13:21,060 --> 00:13:26,220 >> Maar name = "naam" - dit is 'n bietjie lastig, want dit is die naam en die naam. 239 00:13:26,220 --> 00:13:28,730 Maar ons kon verander het dit vir iets anders. 240 00:13:28,730 --> 00:13:30,563 En in die feit, dit is wat ons nou gaan doen. 241 00:13:30,563 --> 00:13:34,830 Ons sal sê "persoon", wat is 'n soort van soos die naam 242 00:13:34,830 --> 00:13:36,790 Indien 'n persoon word gedefinieer deur hul naam. 243 00:13:36,790 --> 00:13:41,480 >> So laat sluit hierdie, heropen up ons webwerf 244 00:13:41,480 --> 00:13:46,110 sedert ons bediener loop steeds Apache 50, en ons sal sê, hello, hier is 245 00:13:46,110 --> 00:13:47,200 Elliot weer. 246 00:13:47,200 --> 00:13:48,460 Hoekom nie? 247 00:13:48,460 --> 00:13:49,220 Hello. 248 00:13:49,220 --> 00:13:52,880 En as ons hier gaan, sal ons sien dan in plaas van name = Elliot, 249 00:13:52,880 --> 00:13:55,200 dit sê persoon = Elliot. 250 00:13:55,200 --> 00:14:00,060 En dit is 'n direkte gevolg van die feit dat ons net verander name = "persoon." 251 00:14:00,060 --> 00:14:06,840 >> So in 'n inset element van 'n HTML-vorm, die veld naam 252 00:14:06,840 --> 00:14:10,590 is die identifiseerder vir die parameter dit is oorgedra. 253 00:14:10,590 --> 00:14:14,250 Dit is soos wanneer jy skep 'n funksie "voeg" wat in twee heelgetalle het 254 00:14:14,250 --> 00:14:16,670 en jy het gesê int a en b int. 255 00:14:16,670 --> 00:14:22,680 Dit sou 'n naam wees, en as jy 'n ander vorm, wou wat 256 00:14:22,680 --> 00:14:27,800 kan ons net doen deur kopieer en plak, dan sou ons naam b hê. 257 00:14:27,800 --> 00:14:31,030 >> So nou het ons sal moet twee parameters dat hy deur geslaag 258 00:14:31,030 --> 00:14:36,970 kry om die volgende website-- die volgende webblad, hello.php. 259 00:14:36,970 --> 00:14:39,770 En ons kan eintlik sien wat weer as ons wil. 260 00:14:39,770 --> 00:14:44,830 Dit is die maklikste manier om te gaan met die web-kode in die IDE, basies. 261 00:14:44,830 --> 00:14:47,940 Jy begin die bediener, kry dit hardloop, en dan elke keer as jy 262 00:14:47,940 --> 00:14:50,649 maak 'n paar veranderinge, net naby dat 'n lêer net om veilig te wees. 263 00:14:50,649 --> 00:14:52,440 Druk op die terug knoppie is 'n bietjie lastig 264 00:14:52,440 --> 00:14:55,800 omdat dit 'n vroeëre kan laai weergawe, nie die mees onlangse een. 265 00:14:55,800 --> 00:14:59,200 >> En dan moet jy kliek jou knoppie weer pop reg up-- oh, 266 00:14:59,200 --> 00:15:00,510 en nou is daar twee vorme. 267 00:15:00,510 --> 00:15:10,440 En so as ons tik een ding in elk one-- "jason Hirshhorn," vir instance-- 268 00:15:10,440 --> 00:15:11,590 ons sê hallo. 269 00:15:11,590 --> 00:15:12,840 Ons kyk na ons parameters. 270 00:15:12,840 --> 00:15:18,910 Dit lyk soos ons het, soos verwag, a = jason en b = Hirshhorn, 271 00:15:18,910 --> 00:15:23,760 waarin die twee parameters verteenwoordig dat ons geslaag om hierdie funksie. 272 00:15:23,760 --> 00:15:27,900 >> So nou, laat ons eintlik kry om uitvoering van hierdie funksies wat ons 273 00:15:27,900 --> 00:15:30,840 het in P stel 6. 274 00:15:30,840 --> 00:15:32,490 So nou is ons net aansluit hallo. 275 00:15:32,490 --> 00:15:34,310 En dit is nie baie nuttig. 276 00:15:34,310 --> 00:15:38,530 Ons wil 'n paar veranderlike eggo wat geslaag om ons. 277 00:15:38,530 --> 00:15:40,320 En ons weet wat die naam van hierdie veranderlike. 278 00:15:40,320 --> 00:15:41,770 Ons het 'n en ons het b. 279 00:15:41,770 --> 00:15:43,500 Sodat ons kan kies om óf die een eggo. 280 00:15:43,500 --> 00:15:45,470 >> Maar hoe kan ons toegang is dit? 281 00:15:45,470 --> 00:15:48,820 Wel, daar is sekere globale veranderlikes in PHP. 282 00:15:48,820 --> 00:15:51,240 En ek gaan om te skryf hulle hier kommentaar. 283 00:15:51,240 --> 00:15:59,910 Die twee belangrikste hiervan is get en post vir ons doeleindes nou. 284 00:15:59,910 --> 00:16:05,350 Hierdie is die skikkings of, tegnies, die woordeboeke 285 00:16:05,350 --> 00:16:10,540 waar ons veranderlikes wat ons verby na die volgende webblad lewe. 286 00:16:10,540 --> 00:16:14,520 En ons sal gou sien hoe om dit te gebruik. 287 00:16:14,520 --> 00:16:19,720 >> Nog kort nota oor PHP-kode en 'n paar besonderhede van it-- in C, 288 00:16:19,720 --> 00:16:23,260 om 'n veranderlike te verklaar of om veranderlikes te gebruik, 289 00:16:23,260 --> 00:16:24,570 jy eers moes hulle te verklaar. 290 00:16:24,570 --> 00:16:30,860 En wat jy het om te doen wanneer jy verklaar hulle was sê int n kar of b. 291 00:16:30,860 --> 00:16:35,630 Jy moes die tipe van hierdie verklaar veranderlikes voordat jy hulle geskep. 292 00:16:35,630 --> 00:16:38,800 PHP-- jy nie nodig het om enige van daardie doen. 293 00:16:38,800 --> 00:16:42,522 PHP vra nie vir die tipe veranderlike. 294 00:16:42,522 --> 00:16:44,480 En die manier waarop jy skep 'n variable-- eerder 295 00:16:44,480 --> 00:16:49,930 as om te sê int, char, string-- Dit is regtig char *, soos ons know-- 296 00:16:49,930 --> 00:16:52,180 eerder as al doen wat, want alles wat 297 00:16:52,180 --> 00:16:54,620 is van dieselfde soort, typeless, kan ons net 298 00:16:54,620 --> 00:16:59,210 gebruik slegs een karakter, wat is die dollar-teken. 299 00:16:59,210 --> 00:17:03,700 En jy sal sien dit is reeds knal up, bietjie outovoltooiing dinge. 300 00:17:03,700 --> 00:17:11,380 En dit is te sê dat _GET en _POST twee opsies wat ek het beskikbaar 301 00:17:11,380 --> 00:17:11,900 aan my. 302 00:17:11,900 --> 00:17:16,430 Sommige van hierdie ander dinge ander globale veranderlikes in PHP 303 00:17:16,430 --> 00:17:18,430 dat jy sal gebruik word om oor die loop van P stel 7. 304 00:17:18,430 --> 00:17:20,569 Vir nou gaan ons fokus op get en post. 305 00:17:20,569 --> 00:17:22,910 Maar dit is 'n nuttige ding wat die IDE doen 306 00:17:22,910 --> 00:17:24,980 waar jy een keer het getik in daardie dollar teken 307 00:17:24,980 --> 00:17:28,760 dit sal begin in te vul globale veranderlikes of veranderlikes wat jy reeds gedefinieer. 308 00:17:28,760 --> 00:17:34,360 >> So as jy wil om te definieer 'n veranderlike genaamd "string" 309 00:17:34,360 --> 00:17:38,290 jy kan net stel dit gelyk aan "hi." 310 00:17:38,290 --> 00:17:40,100 En dit is basies so eenvoudig soos dit. 311 00:17:40,100 --> 00:17:44,720 En dan kan ons doen iets soos "eggo $ string." 312 00:17:44,720 --> 00:17:48,524 Die IDE moet gooi 'n paar foute as ek doen iets verkeerd, 313 00:17:48,524 --> 00:17:50,190 so hopelik ek alles reg doen. 314 00:17:50,190 --> 00:17:52,060 Maar foute altyd nie ontstaan. 315 00:17:52,060 --> 00:17:56,670 >> Nog moeilike ding oor PHP is dat dit nie saamgestel. 316 00:17:56,670 --> 00:18:00,640 So met C-programme, sou jy doen die daaglikse roetine of-- basies, 317 00:18:00,640 --> 00:18:02,710 sou jy wysigings te maak jou kode, wil jy dit te verlos, 318 00:18:02,710 --> 00:18:04,460 en dan sal jy dit maak, waar make was 319 00:18:04,460 --> 00:18:08,830 die stap wat die samesteller genoem, kletteren, om jou kode te maak, hierdie teks 320 00:18:08,830 --> 00:18:10,570 lêer, in 'n uitvoerbare. 321 00:18:10,570 --> 00:18:15,550 PHP is C-agtige, maar dit is uitgevoer op die vlieg deur jou webblaaier. 322 00:18:15,550 --> 00:18:17,640 So daar is geen manier om te weet. 323 00:18:17,640 --> 00:18:19,790 >> Maak sou gooi diegene nuttig foute, reg? 324 00:18:19,790 --> 00:18:22,190 Dit sou wees soos jy het hierdie veranderlike nie verklaar 325 00:18:22,190 --> 00:18:23,320 voordat jy probeer om dit te gebruik. 326 00:18:23,320 --> 00:18:29,120 Jy het al hierdie slegte spul segfault, segfault, al daardie soort van pret tye 327 00:18:29,120 --> 00:18:31,000 wat gekom het met make. 328 00:18:31,000 --> 00:18:33,920 PHP is 'n tweesnydende swaard omdat jy nie die foute te kry, 329 00:18:33,920 --> 00:18:37,770 maar dit beteken ook dat jy nie sal weet regtig wat is verkeerd met jou program 330 00:18:37,770 --> 00:18:39,840 as jy net hardloop en dit werk nie. 331 00:18:39,840 --> 00:18:45,130 Maar die debugger moet wys sommige hopelik nuttig klein dingetjies 332 00:18:45,130 --> 00:18:47,950 sintakties wat jy kan regmaak. 333 00:18:47,950 --> 00:18:52,850 >> So nou as ons gaan oor aan- sê, laat ons toe dat. 334 00:18:52,850 --> 00:18:54,522 Heropen. 335 00:18:54,522 --> 00:18:55,480 En ons is terug na hier. 336 00:18:55,480 --> 00:18:57,210 So het ons 'n veranderlike het en 'n veranderlike b. 337 00:18:57,210 --> 00:18:58,626 En dit sal nie uiteindelik saak. 338 00:18:58,626 --> 00:19:01,850 Ons sal hulle h en g roep vir geen spesifieke rede. 339 00:19:01,850 --> 00:19:03,120 >> En ons sê hallo. 340 00:19:03,120 --> 00:19:07,480 Nou lyk dit ons string "hi" is inderdaad druk. 341 00:19:07,480 --> 00:19:10,460 Ons het 'n veranderlike genoem "string" stel dit gelyk aan "hi." 342 00:19:10,460 --> 00:19:15,520 Let daarop dat ons nie hoef te doen malloc of maak 'n karakter skikking. 343 00:19:15,520 --> 00:19:19,110 >> In PHP, want veranderlikes is typeless, 'n string 344 00:19:19,110 --> 00:19:22,230 is dieselfde as 'n kar vir alle praktiese doeleindes. 345 00:19:22,230 --> 00:19:23,570 Dit kan wees "hi." 346 00:19:23,570 --> 00:19:26,340 Dit kan net die karakter k wees. 347 00:19:26,340 --> 00:19:29,290 Dit kan 'n nommer 1 wees. 348 00:19:29,290 --> 00:19:30,300 En dit nie omgee nie. 349 00:19:30,300 --> 00:19:33,560 PHP nie omgee die tipe van jou veranderlike. 350 00:19:33,560 --> 00:19:34,390 Of, is dit nie sorg. 351 00:19:34,390 --> 00:19:36,240 Dit gee wanneer jy probeer en dinge te doen met dit, 352 00:19:36,240 --> 00:19:38,790 maar dit beteken nie om in die verklaring stap. 353 00:19:38,790 --> 00:19:46,960 >> En net soos wat jy kan in C, jy kan verklaar snare op die stapel soos hierdie 354 00:19:46,960 --> 00:19:51,130 al sê "stapel" is 'n bietjie bietjie van 'n potensiële wanbenaming wanneer 355 00:19:51,130 --> 00:19:52,230 ons praat oor PHP. 356 00:19:52,230 --> 00:19:54,020 Maar ons hoef nie te bekommerd wees oor dit. 357 00:19:54,020 --> 00:19:55,936 So het ons ons string "hi" en ons eggo string. 358 00:19:55,936 --> 00:19:58,880 So nou het ons bespreek veranderlikes. 359 00:19:58,880 --> 00:20:06,060 So nou moet ons praat oor get en plaas en voer die finale ding wat 360 00:20:06,060 --> 00:20:12,660 nodig om werklik te kry dit terug tot om die funksies van die P stel 6. 361 00:20:12,660 --> 00:20:14,990 So nou is ons aansluit by die string, maar ons 362 00:20:14,990 --> 00:20:17,080 het nie hierdie veranderlikes te kry en post. 363 00:20:17,080 --> 00:20:19,430 En omdat ons gebruik die metode te kry, is dit 364 00:20:19,430 --> 00:20:24,810 lyk natuurlik dat ons veranderlike wat ons is geïnteresseerd in, beide A en B, 365 00:20:24,810 --> 00:20:29,870 sal geleë wees in die skikking of 'n woordeboek, tegnies kry. 366 00:20:29,870 --> 00:20:33,510 >> So as ons 'kry soos hierdie met jou groups-- ek gedruk betree 367 00:20:33,510 --> 00:20:36,770 en dit het nie graag it-- maar hier het ons te kry. 368 00:20:36,770 --> 00:20:38,000 En so kry reeds bestaan. 369 00:20:38,000 --> 00:20:41,380 So kan ons reeds begin om toegang sommige van die elemente van get. 370 00:20:41,380 --> 00:20:45,000 As ons kry, dit sintaksis vir skikkings in PHP is baie C-like. 371 00:20:45,000 --> 00:20:47,900 Ons het ons twee vierkantige hakies. 372 00:20:47,900 --> 00:20:53,440 >> So as ons sê te kry in 'n normale skikking, kan ons toegang 373 00:20:53,440 --> 00:20:55,600 die nulde indeks, is die eerste indeks. 374 00:20:55,600 --> 00:20:56,840 PHP is nul indeks. 375 00:20:56,840 --> 00:21:00,550 Ons kan sê nul, een, two-- dinge soos hierdie. 376 00:21:00,550 --> 00:21:03,420 En ek het gesê dat te kry is tegnies 'n woordeboek. 377 00:21:03,420 --> 00:21:08,290 So, wat PHP doen onder die enjinkap, wat is 'n bietjie lekkerder as C, 378 00:21:08,290 --> 00:21:12,760 is dit reeds te gee jou 'n paar woordeboek funksie, wat 379 00:21:12,760 --> 00:21:16,240 is regtig hash tabelle, of probeer om, kwansuis. 380 00:21:16,240 --> 00:21:19,360 Of, tegnies kan 'n probeer as well. 381 00:21:19,360 --> 00:21:25,500 Maar PHP is implementering van 'n hash tafel, wat deel vorm van 'n effektiewe woordeboek. 382 00:21:25,500 --> 00:21:28,400 >> En so het ons weet wat die naam van ons veranderlike, reg? 383 00:21:28,400 --> 00:21:32,440 Dit word geslaag die navraag string deur PHP. 384 00:21:32,440 --> 00:21:37,290 Ons het 'n = h en b = g waar en b is die name van die veranderlikes. 385 00:21:37,290 --> 00:21:41,580 So die manier waarop ons kan toegang tot die waarde wat ooreenstem met die sleutel 386 00:21:41,580 --> 00:21:45,055 in ons woordeboek is net deur te sê _GET_GET ["'n"]. 387 00:21:45,055 --> 00:21:48,170 388 00:21:48,170 --> 00:21:51,365 >> So nou het ons _GET ["'n"]. 389 00:21:51,365 --> 00:21:56,930 En as ons die plek net binne ons eggo, as ons eggo _GET_GET ["'n"] - 390 00:21:56,930 --> 00:22:02,410 en ons sal sien as die debugger gooi enige foute oor this-- 391 00:22:02,410 --> 00:22:05,620 ons sal red en maak dit uit. 392 00:22:05,620 --> 00:22:07,130 Maak dit oop. 393 00:22:07,130 --> 00:22:10,390 So ons is maar net 'n reg doen nou, so b moet nie saak nie. 394 00:22:10,390 --> 00:22:12,980 "haar" en "hom" - "hum". "haar" en "hum". 395 00:22:12,980 --> 00:22:14,810 Klink goed. 396 00:22:14,810 --> 00:22:18,040 >> En dit uitgedruk "haar," wat is mal. 397 00:22:18,040 --> 00:22:21,920 Maar dit is presies wat gebeur het in P stel 6. 398 00:22:21,920 --> 00:22:27,240 Basies, wat P stel 6 was doing-- eggo hello, 399 00:22:27,240 --> 00:22:31,580 name-- waar dit het 'n veranderlike naam en dit is net 400 00:22:31,580 --> 00:22:35,520 vra jou om te tik in daardie bietjie van die teks. 401 00:22:35,520 --> 00:22:37,380 Daar was ook 'n paar addisionele kode waar 402 00:22:37,380 --> 00:22:40,550 dit ingesluit indien state, wat kan ons nou doen. 403 00:22:40,550 --> 00:22:50,120 >> Ons kan sê indien bestaan, wat is 'n funksie binne PHP, 404 00:22:50,120 --> 00:22:55,110 _GET Met die onderstreping, "naam" - wat basies sê, 405 00:22:55,110 --> 00:22:58,760 "As die naam is gevul", want Ons kon net gekliek het op die knoppie 406 00:22:58,760 --> 00:23:02,580 om die vorm in te dien sonder enigiets in daardie gebied te tik. 407 00:23:02,580 --> 00:23:07,760 En ons draai dat ons in ons vriendelike krullerige draadjies. 408 00:23:07,760 --> 00:23:09,175 Ons kan nie 'n ander verklaring het nie. 409 00:23:09,175 --> 00:23:13,300 410 00:23:13,300 --> 00:23:18,820 En dit is al wat binne die PHP hoek bracket, vraagteken, hoek bracket, 411 00:23:18,820 --> 00:23:20,040 as jy wil. 412 00:23:20,040 --> 00:23:21,750 >> En nou sal ons sien of dit werk. 413 00:23:21,750 --> 00:23:26,300 Ek hou wag vir dit om debug en crap uit my, basies, 414 00:23:26,300 --> 00:23:28,410 maar dit het nog nie. 415 00:23:28,410 --> 00:23:30,830 Miskien is dit sal nou want ek het gepraat oor. 416 00:23:30,830 --> 00:23:31,330 Yup. 417 00:23:31,330 --> 00:23:32,510 Dit het, in werklikheid. 418 00:23:32,510 --> 00:23:34,610 So, is daar niks vertoon. 419 00:23:34,610 --> 00:23:38,750 Dit is as gevolg van iets verkeerd wat ek geskryf het in die PHP-kode. 420 00:23:38,750 --> 00:23:42,844 En ek het genoem dat die ontfouting is lastig, want in PHP, ons 421 00:23:42,844 --> 00:23:45,260 nie vooraf stel dit en die samesteller is nie hou nie, 422 00:23:45,260 --> 00:23:46,710 hier is waar jou foute. 423 00:23:46,710 --> 00:23:49,690 >> Maar wat ons kan doen is-- doen mense onthou 424 00:23:49,690 --> 00:23:57,010 hoe om te kyk na die verskillende netwerk versoeke wat PHP-- of webtuistes 425 00:23:57,010 --> 00:23:57,620 stuur? 426 00:23:57,620 --> 00:24:00,290 [? Malin?] Het dit in lesings een of twee keer. 427 00:24:00,290 --> 00:24:05,830 Jy onthou waar ons gaan om uit te vind die verskillende skuld en 200 OKS, 428 00:24:05,830 --> 00:24:09,780 al hierdie kodes wat gestuur word deur HTTP uit webblad te webblad? 429 00:24:09,780 --> 00:24:12,514 Is daar iemand wat onthou waar ons gaan om dit te doen? 430 00:24:12,514 --> 00:24:13,787 >> GEHOOR: Page Bron. 431 00:24:13,787 --> 00:24:14,870 SAM LEVATICH: Page bron. 432 00:24:14,870 --> 00:24:15,890 Presies. 433 00:24:15,890 --> 00:24:19,230 As jy na Page Source-- volmaak. 434 00:24:19,230 --> 00:24:21,630 So Page Bron trek die inspekteur. 435 00:24:21,630 --> 00:24:23,140 >> En ek gebruik Safari. 436 00:24:23,140 --> 00:24:25,790 Baie van julle sal waarskynlik wees met Chrome of Firefox. 437 00:24:25,790 --> 00:24:27,750 Maar so lank as wat jy in enige moderne browser-- 438 00:24:27,750 --> 00:24:29,500 en voel vry om te volg saam as jy wil. 439 00:24:29,500 --> 00:24:32,560 Jy kan tik die kode of kyk net in die P stel 6 440 00:24:32,560 --> 00:24:35,820 gids vir 'n paar soortgelyke dinge. 441 00:24:35,820 --> 00:24:41,020 hello.php is wat ons is tans besig met die navolging. 442 00:24:41,020 --> 00:24:42,476 >> So is daar 'n verskeidenheid van tabs. 443 00:24:42,476 --> 00:24:43,850 Ons kan kyk na al die hulpbronne. 444 00:24:43,850 --> 00:24:45,810 Ons kan die bronkode te sien. 445 00:24:45,810 --> 00:24:49,900 So lyk soos dit het nie kry verby die liggaam in die einde. 446 00:24:49,900 --> 00:24:54,890 Dit het bevind 'n fout in PHP en dit gestop laai die hele webblad. 447 00:24:54,890 --> 00:24:58,320 Ons het nie eens 'n einde tag vir HTML of enigiets. 448 00:24:58,320 --> 00:25:07,189 >> En as ons kyk na die netwerk, kan ons sien dat ons word 'n versoek gestuur. 449 00:25:07,189 --> 00:25:07,980 Dit is die domein. 450 00:25:07,980 --> 00:25:09,270 Dit is die adres. 451 00:25:09,270 --> 00:25:10,070 Dit is 'n dokument. 452 00:25:10,070 --> 00:25:14,310 Ons gebruik die get-metode. 453 00:25:14,310 --> 00:25:15,760 >> En dit is rooi. 454 00:25:15,760 --> 00:25:19,030 Of was dit rooi toe ek is nie dit te kies. 455 00:25:19,030 --> 00:25:22,680 Hoe kan ek die opsie nie? 456 00:25:22,680 --> 00:25:23,980 Wel, dit was rooi. 457 00:25:23,980 --> 00:25:25,201 Laat my verfris. 458 00:25:25,201 --> 00:25:25,700 Daar is dit. 459 00:25:25,700 --> 00:25:26,640 Nou is dit rooi. 460 00:25:26,640 --> 00:25:30,530 >> So dit is rooi, wat beteken dit nie, wat sleg is. 461 00:25:30,530 --> 00:25:32,280 So laat ondersoek waarom dit het misluk. 462 00:25:32,280 --> 00:25:37,070 So alles wat die Page Bron kan basies vertel is jou ding 463 00:25:37,070 --> 00:25:38,720 nie werk nie, wat ons reeds kan sien. 464 00:25:38,720 --> 00:25:42,100 So ideaal sou daar 'n meer nuttige hulpmiddel. 465 00:25:42,100 --> 00:25:45,710 En daar is 'n paar leser uitbreidings wat u toelaat om te ontfout PHP, 466 00:25:45,710 --> 00:25:50,490 maar ons gaan nie skryf 'n ton van PHP, 467 00:25:50,490 --> 00:25:53,190 so dit is waarskynlik net die beste om te kyk deur jou kode 468 00:25:53,190 --> 00:25:56,760 noukeurig en net seker maak dat dit is nie iets anders doen. 469 00:25:56,760 --> 00:26:03,876 >> So laat ons sien of die formaat van hierdie As stelling is waar die probleem is. 470 00:26:03,876 --> 00:26:07,420 Ek wil om te laai wat hier terug. 471 00:26:07,420 --> 00:26:09,830 Hallo Hi. 472 00:26:09,830 --> 00:26:11,350 So is daar 'n probleem is daar. 473 00:26:11,350 --> 00:26:15,130 >> So vir korrekte sintaksis van PHP, PHP gaan 474 00:26:15,130 --> 00:26:17,369 C-agtige in dat jy loops te sien. 475 00:26:17,369 --> 00:26:18,410 Jy sal sien of stellings. 476 00:26:18,410 --> 00:26:20,920 Jy sal al hierdie vriende sien dat jy vertroud geword het 477 00:26:20,920 --> 00:26:24,820 met die verloop van hierdie CS50 semester. 478 00:26:24,820 --> 00:26:29,960 Maar die beste manier om uit te vind hoe om te doen iets in PHP is om dit Google 479 00:26:29,960 --> 00:26:33,170 of om te kyk na 'n paar voorbeelde van PHP-kode want jy weet die funksionaliteit. 480 00:26:33,170 --> 00:26:35,080 >> Jy weet wat jy kan doen met die program. 481 00:26:35,080 --> 00:26:35,976 Jy kan loop. 482 00:26:35,976 --> 00:26:37,600 Jy kan loop soveel keer as wat jy wil. 483 00:26:37,600 --> 00:26:39,433 Jy kan loop in alle vorme van verskillende maniere. 484 00:26:39,433 --> 00:26:40,700 Jy kan funksies te skep. 485 00:26:40,700 --> 00:26:43,241 Jy kan funksies te skep wat noem ander funksies, funksies 486 00:26:43,241 --> 00:26:44,150 wat noem hulself. 487 00:26:44,150 --> 00:26:45,733 En jy het name vir hierdie konsepte. 488 00:26:45,733 --> 00:26:49,860 Jy het rekursie, loops, indien ander beheermaatreëls vloei. 489 00:26:49,860 --> 00:26:51,300 En so Google is jou beste vriend. 490 00:26:51,300 --> 00:26:53,540 Selfs sê, "PHP as verklaring "en daar sal 491 00:26:53,540 --> 00:26:57,740 wees ton van poste met antwoorde op ander mense 492 00:26:57,740 --> 00:27:02,090 wat soortgelyke vrae wat jy gehad het, wat net begin met PHP 493 00:27:02,090 --> 00:27:03,820 en is nuuskierig oor 'n sintaksis ding. 494 00:27:03,820 --> 00:27:08,480 >> Want ons het die luukse om in staat wees om te kyk na die kode in P stel 6, 495 00:27:08,480 --> 00:27:14,980 ons eintlik trek dit op en sien dat OK, hier is iets interessant. 496 00:27:14,980 --> 00:27:18,070 So, dit is wat dit eintlik lyk soos in P stel 6. 497 00:27:18,070 --> 00:27:20,340 So as ons gaan deur middel van hierdie, ons kan sien dat ons het 498 00:27:20,340 --> 00:27:27,150 het verskeie van hierdie klein PHP-agtige vraagteken stukkies. 499 00:27:27,150 --> 00:27:29,050 >> En daar is nie krullerige draadjies. 500 00:27:29,050 --> 00:27:30,250 Daar is dubbelpunte. 501 00:27:30,250 --> 00:27:32,340 En daar is krullerige draadjies in PHP, maar dit 502 00:27:32,340 --> 00:27:38,700 is 'n formaat en 'n manier van doen PHP wat goed werk met HTML 503 00:27:38,700 --> 00:27:43,830 want soos jy sal sien, ons sluit af hierdie PHP bits-- die elses 504 00:27:43,830 --> 00:27:49,770 en die ifs en al that-- en dan ons interspersing HTML binne hulle 505 00:27:49,770 --> 00:27:54,640 terwyl hy nog die volgende beheer vloei deur PHP uiteengesit. 506 00:27:54,640 --> 00:27:58,480 >> So ek is net gaan om te vinnige loop deur middel van hierdie 507 00:27:58,480 --> 00:28:01,740 want dit is 'n baie van die dieselfde konsepte wat ons voor doen. 508 00:28:01,740 --> 00:28:07,280 Ons het as dit nie leeg is, hakies, _GET_GET ["naam"]. 509 00:28:07,280 --> 00:28:08,500 Dit is almal dieselfde dinge. 510 00:28:08,500 --> 00:28:15,430 Ons gebruik die _GET woordeboek wat PHP stuur op aanvraag van vorms, 511 00:28:15,430 --> 00:28:20,720 want dit is die parameters van aksie, en die metode is te kry. 512 00:28:20,720 --> 00:28:22,110 En dan wat eindig dit. 513 00:28:22,110 --> 00:28:27,420 Die kolon is 'n betekenaar om dit net te doen indien die verklaring as evalueer om waar. 514 00:28:27,420 --> 00:28:29,490 Dit is soos 'n krullerige brace. 515 00:28:29,490 --> 00:28:33,320 En in die feit, dit is 'n krullerige brace in ander tale soos Python, 516 00:28:33,320 --> 00:28:37,070 wat jy kan teëkom as jy net doen wat vir jou finale projek. 517 00:28:37,070 --> 00:28:40,170 >> En dan hierdie lyn, hallo. 518 00:28:40,170 --> 00:28:41,510 Toe het ons het hierdie vreemde ding. 519 00:28:41,510 --> 00:28:43,190 Ons het meer hakies. 520 00:28:43,190 --> 00:28:46,140 Daar is geen HTTP there-- of PHP, jammer. 521 00:28:46,140 --> 00:28:47,250 Maar daar is 'n gelyke teken. 522 00:28:47,250 --> 00:28:50,625 En dan het ons 'n funksie, htmlspecialchars (_GEThtmlspecialchars (_GET ["naam"]). 523 00:28:50,625 --> 00:28:54,440 524 00:28:54,440 --> 00:28:58,040 Dit is soort van soos 'n meer gevorderde weergawe van eggo. 525 00:28:58,040 --> 00:29:01,450 Soos ons as 'n manier het eggo om dinge uit te druk in PHP. 526 00:29:01,450 --> 00:29:03,890 Dit is 'n funksie wat omskryf in PHP dat 527 00:29:03,890 --> 00:29:08,160 sal handel met 'n paar meer nare karakters en byte waardes 528 00:29:08,160 --> 00:29:09,540 dat jy kan dit te slaag. 529 00:29:09,540 --> 00:29:11,070 Dit is altyd die veiligste om dit te gebruik. 530 00:29:11,070 --> 00:29:14,930 Maar eggo sal die werk doen net 'n boete as ons nie 531 00:29:14,930 --> 00:29:17,620 hantering van iets te nare. 532 00:29:17,620 --> 00:29:20,340 >> En so het dit dieselfde effek van basies, 533 00:29:20,340 --> 00:29:26,360 hierdie dinge in die vraag tussen punte word geëvalueer deur PHP. 534 00:29:26,360 --> 00:29:34,490 htmlspecialchars terug 'n lekker HTML gedruk waarde van _GET_GET ["naam"], dit wil sê 535 00:29:34,490 --> 00:29:36,010 wat ons ook al getik in die vorm. 536 00:29:36,010 --> 00:29:40,025 En dan sal dit sê hello, komma ruimte, en dan is dit. 537 00:29:40,025 --> 00:29:42,910 Dat die hele ding tussen die hoek tussen hakies 538 00:29:42,910 --> 00:29:47,390 sal vervang word deur wat ook al htmlspecialchars sit uit. 539 00:29:47,390 --> 00:29:49,390 So dit is basies dieselfde na wat ons doen. 540 00:29:49,390 --> 00:29:54,760 En ons het 'n ander verklaring wat hello world, wat sin maak. 541 00:29:54,760 --> 00:29:58,070 So nou, laat ons gaan terug na ons kode en kyk exactly-- oh. 542 00:29:58,070 --> 00:30:02,200 Ek het gesê bestaan, wat nie 'n ding wat ons wou doen. 543 00:30:02,200 --> 00:30:05,370 Ons wou nie met leë hande om te sê. 544 00:30:05,370 --> 00:30:10,020 >> En so moet dit 'n bietjie werk bietjie beter, nie leë _GET_GET ["naam"]. 545 00:30:10,020 --> 00:30:12,710 En dat krullerige brace wedstryde wat krullerige brace. 546 00:30:12,710 --> 00:30:15,210 Ons het ons krulhakies het hier. 547 00:30:15,210 --> 00:30:17,790 eggo hallo _GET ["naam"]. 548 00:30:17,790 --> 00:30:19,912 Kom ons kyk of dit werk 'n bietjie beter. 549 00:30:19,912 --> 00:30:21,350 Ons is nog steeds loop ons bediener. 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 dit het gewerk hierdie tyd. 553 00:30:25,810 --> 00:30:29,860 En so dit is 'n bewys wat jy kan inderdaad 554 00:30:29,860 --> 00:30:35,180 gebruik die krulhakies dat jy ken en liefhet in PHP-kode in HTML. 555 00:30:35,180 --> 00:30:41,100 Die PHP-kode wat aan jy in pset 6-- pset 6-- 556 00:30:41,100 --> 00:30:44,760 bied 'n ander manier doen dieselfde ding. 557 00:30:44,760 --> 00:30:49,220 >> So nou het ons die krag. 558 00:30:49,220 --> 00:30:55,740 Ons het die funksie om te implementeer die PHP-kode wat ons gesien het in pset 6 559 00:30:55,740 --> 00:30:57,390 deur onsself, basies. 560 00:30:57,390 --> 00:31:01,350 Voordat ek beweeg op, wat is 'n paar van die vrae wat jy op hierdie punt? 561 00:31:01,350 --> 00:31:02,066 Ja [onhoorbaar]. 562 00:31:02,066 --> 00:31:06,512 >> GEHOOR: So in die weergawe in pset6, wanneer jy dit uit te voer, is daar 'n ruimte. 563 00:31:06,512 --> 00:31:09,330 En ek kan sien waar die ruimte is na die komma. [Onhoorbaar] begin 564 00:31:09,330 --> 00:31:10,700 die oop bracket. 565 00:31:10,700 --> 00:31:15,420 Hoe kan jy die ruimte te neem in die manier waarop jy jou eie kodes geskryf? 566 00:31:15,420 --> 00:31:17,910 >> Spreker: Dit is 'n goeie vraag. 567 00:31:17,910 --> 00:31:21,650 En so laat figuur wat uit. 568 00:31:21,650 --> 00:31:24,450 So dit is 'n baie goeie vraag en die een wat ek het nie te oorweeg. 569 00:31:24,450 --> 00:31:25,950 Maar laat ons doen dit saam. 570 00:31:25,950 --> 00:31:30,280 >> So in die eerste plek, wat Ek doen met eggo 571 00:31:30,280 --> 00:31:33,690 is wanneer ons net eggo hello, dit uitset hallo. 572 00:31:33,690 --> 00:31:41,310 As ons nou eggo hierdie te kry op 'n afsonderlike lyn, laat ons kyk wat gebeur. 573 00:31:41,310 --> 00:31:43,740 Sodat ons hierdie klik. 574 00:31:43,740 --> 00:31:45,220 Ons hou sê, hi Jason. 575 00:31:45,220 --> 00:31:48,690 So weer, het ons nie hierdie ruimte. 576 00:31:48,690 --> 00:31:53,090 >> En dit is omdat, in PHP, wanneer ons eggo, 577 00:31:53,090 --> 00:31:55,820 maak nie saak hoeveel spaces-- nope, nie die V-- 578 00:31:55,820 --> 00:32:01,770 maak nie saak hoeveel ruimtes ons in here-- as ons nou laai wat weer op, 579 00:32:01,770 --> 00:32:03,010 hi Jason. 580 00:32:03,010 --> 00:32:05,770 Ja, kyk, al daardie ruimtes het verteer. 581 00:32:05,770 --> 00:32:08,020 En dit is iets wat die eggo funksie doen. 582 00:32:08,020 --> 00:32:11,110 >> So om te sorg dat die ruimte, en dit is 583 00:32:11,110 --> 00:32:14,960 een van die redes waarom jy nie gebruik eggo 584 00:32:14,960 --> 00:32:18,200 en jy htmlspecialchars gebruik in plaas. 585 00:32:18,200 --> 00:32:22,140 Ek is nuuskierig wat sou gebeur as ons dit gedoen het 586 00:32:22,140 --> 00:32:26,700 waar ons ingeslote ruimte in 'n string. 587 00:32:26,700 --> 00:32:29,720 Ek is nie seker wat eerlik sal gebeur wanneer ek dit doen. 588 00:32:29,720 --> 00:32:30,790 >> So dit is een manier. 589 00:32:30,790 --> 00:32:32,210 Dit is een manier om te sorg van dit. 590 00:32:32,210 --> 00:32:34,840 As jy die ruimte in te draai 'n string, dan is die ruimte 591 00:32:34,840 --> 00:32:36,920 sal uitset mooi wees eggo. 592 00:32:36,920 --> 00:32:41,930 Die veiligste ding om te doen is om htmlspecialchars doen. 593 00:32:41,930 --> 00:32:43,800 Dit is altyd die veilige weddenskap. 594 00:32:43,800 --> 00:32:47,050 Maar nou het ons 'n manier om dit te doen met eggo indien nodig. 595 00:32:47,050 --> 00:32:50,700 En in 'n soortgelyke manier, kan ons eggo die nuwe reëls, al die soort 596 00:32:50,700 --> 00:32:53,550 van dinge wat jy is vertroud te doen in PHP. 597 00:32:53,550 --> 00:32:57,460 >> Enigiemand anders, wat nie meer vrae wat ander mense 598 00:32:57,460 --> 00:33:01,090 op hierdie punt oor PHP? 599 00:33:01,090 --> 00:33:04,620 As mense het 'n bietjie laat, Ek is bly om te bly ná 'n bietjie 600 00:33:04,620 --> 00:33:06,420 en praat oor 'n paar van die begin af. 601 00:33:06,420 --> 00:33:10,380 En dit is ook al livestreamed, en argief, wat is mal. 602 00:33:10,380 --> 00:33:13,960 >> In elk geval, so nou kom ons doen 'n paar meer gevorderde dinge met PHP. 603 00:33:13,960 --> 00:33:18,790 En een van die dinge wat jy vroegste is ingestel om in C was vir loops. 604 00:33:18,790 --> 00:33:24,060 En PHP het 'n meer kragtige vir lus genoem foreach lus. 605 00:33:24,060 --> 00:33:37,940 En dit lyk asof this-- vir elke leeg as leeg, krullerige hakies, doen die ding. 606 00:33:37,940 --> 00:33:41,500 So dit is basies 'n snelskrif. 607 00:33:41,500 --> 00:33:45,380 >> Kyk, die lus as 'n sintaktiese konstruksie 608 00:33:45,380 --> 00:33:50,590 is in C en in die gemeente ontwikkel taal en dinge wil. 609 00:33:50,590 --> 00:33:56,300 Uitgedink in C, presies, as 'n snelskrif vir 'n baie van die tipes lusse 610 00:33:56,300 --> 00:33:57,750 dat mense sal sien. 611 00:33:57,750 --> 00:34:01,230 Soos wanneer jy het 'n lus, daar was dikwels 'n inisialisering stap 612 00:34:01,230 --> 00:34:04,700 uitgevoer reg aan die begin, 'n toestand waar die lus sou stop-- 613 00:34:04,700 --> 00:34:07,030 en dit is die funksie dit is net in 'n while lus, 614 00:34:07,030 --> 00:34:10,040 of dat 'n rukkie het presies net dat feature-- en dan 615 00:34:10,040 --> 00:34:12,320 'n incrementation stap aan die einde. 616 00:34:12,320 --> 00:34:16,489 En so sal jy dikwels vind jouself kode skryf soos die volgende. 617 00:34:16,489 --> 00:34:19,780 Ek gaan 'n paar van hierdie vee. 618 00:34:19,780 --> 00:34:23,850 >> Maar as ons iterating deur karakters in 'n skikking, 619 00:34:23,850 --> 00:34:26,960 byvoorbeeld soos wat ons het het 'n verskeidenheid van die karakters. 620 00:34:26,960 --> 00:34:29,400 Jammer om C. Ek weet terug te bring, jy gedink het jy gedoen. 621 00:34:29,400 --> 00:34:31,900 Maar dit is slegs vir die doel leer PHP, ek belowe. 622 00:34:31,900 --> 00:34:38,880 So as jy 'n kar str lengte van 8, en laat 623 00:34:38,880 --> 00:34:46,760 sê dit sê hellooo met 'n skuinsstreep null. 624 00:34:46,760 --> 00:34:48,270 Groot, so dit is ons string. 625 00:34:48,270 --> 00:34:51,469 >> En dan het ons 'n lus. 626 00:34:51,469 --> 00:34:53,730 Ons het int i gelyk 0. 627 00:34:53,730 --> 00:34:57,960 628 00:34:57,960 --> 00:35:09,110 En ons wil verlaat wanneer Str i gelyk nie gelyk aan nul 629 00:35:09,110 --> 00:35:11,590 omdat ons verlaat wanneer dit gelyk null. 630 00:35:11,590 --> 00:35:19,170 En dan moet ons I ++ by elke punt in die lus. 631 00:35:19,170 --> 00:35:30,480 Om iets te doen met str van i. 632 00:35:30,480 --> 00:35:34,950 >> So het die basiese formule was, ons het hierdie skikking wat ons 633 00:35:34,950 --> 00:35:37,910 wou as afsonderlike elemente behandel. 634 00:35:37,910 --> 00:35:45,170 Maar wat ons gehad het om te doen, is ons moes basies 'n aparte heelgetal 635 00:35:45,170 --> 00:35:50,530 veranderlike wat tel elke tyd wat ons het deur die loop. 636 00:35:50,530 --> 00:35:55,240 En dan sou ons dan bel strstr [i] wanneer wat ons regtig wou doen 637 00:35:55,240 --> 00:35:57,280 is net gaan karakter deur karakter, reg? 638 00:35:57,280 --> 00:36:00,185 Ons wil nie 'n inkrement heelgetal en gebruik dan heelgetal 639 00:36:00,185 --> 00:36:02,780 individueel toegang elke karakter. 640 00:36:02,780 --> 00:36:04,410 Ons wil regtig karakter deur die karakter. 641 00:36:04,410 --> 00:36:08,600 >> En so is dit vir elke intelligente bereken dat vir ons. 642 00:36:08,600 --> 00:36:11,875 As ons 'n skikking, wat kan ons verklaar in PHP 643 00:36:11,875 --> 00:36:15,900 as just-- as ons 'n veranderlike genoem, kom ons noem dit skikking. 644 00:36:15,900 --> 00:36:19,840 Die wonderwerke van geen tik, is dit net soos enige ander veranderlike. 645 00:36:19,840 --> 00:36:20,730 Dit is net 'n skikking. 646 00:36:20,730 --> 00:36:26,890 En ons het 'n bietjie [onhoorbaar] soos 1, 2, 3, net 'n soort van geïnitialiseerd skikking. 647 00:36:26,890 --> 00:36:29,680 Dit is OK, beteken dit nie graag my foreach. 648 00:36:29,680 --> 00:36:33,120 >> Maar as ons nie eintlik foreach-- Ek getik dat 'n bietjie verkeerd. 649 00:36:33,120 --> 00:36:34,840 Daar is twee maniere om 'n foreach lus te doen. 650 00:36:34,840 --> 00:36:37,400 Daar is die in sintaksis en die as sintaksis. 651 00:36:37,400 --> 00:36:40,580 En ons gaan om dit te doen in die eerste sintaksis, nie as. 652 00:36:40,580 --> 00:36:41,780 Dit is my fout. 653 00:36:41,780 --> 00:36:53,785 >> So foreach num opgestel, eggo num. 654 00:36:53,785 --> 00:36:56,970 655 00:36:56,970 --> 00:36:59,500 En PHP is skree op my een of ander rede. 656 00:36:59,500 --> 00:37:03,520 Dit vind van 'n onverwagte in iets, 657 00:37:03,520 --> 00:37:05,820 wat is 'n bietjie van 'n beslommernis. 658 00:37:05,820 --> 00:37:09,105 Maar ons sal uitvind waarom dit in 'n oomblik. 659 00:37:09,105 --> 00:37:11,960 660 00:37:11,960 --> 00:37:13,610 So nie so nie. 661 00:37:13,610 --> 00:37:15,040 Kom ons probeer om met behulp van die as. 662 00:37:15,040 --> 00:37:17,310 Dit verkies die as sintaksis is lyk. 663 00:37:17,310 --> 00:37:22,550 So kom ons doen foreach skikking as num. 664 00:37:22,550 --> 00:37:24,520 >> So 'n bietjie verduideliking van wat net gebeur 665 00:37:24,520 --> 00:37:30,670 is die as sintaksis is goed sê om die eerste, Kom ons kyk na wat hierdie druk uit. 666 00:37:30,670 --> 00:37:32,260 So ons oop te stel ons IDE. 667 00:37:32,260 --> 00:37:33,110 Ons gaan hier. 668 00:37:33,110 --> 00:37:35,845 Ons sê, Hello Jason. 669 00:37:35,845 --> 00:37:41,390 En dit het 123, wat die inhoud was van die skikking dat ons geskep het bo-op. 670 00:37:41,390 --> 00:37:45,500 >> So duik in hierdie foreach lus, Ons het 'n verskeidenheid veranderlike genoem 671 00:37:45,500 --> 00:37:47,470 wat is 'n verskeidenheid van drie getalle. 672 00:37:47,470 --> 00:37:52,120 En dan is ons foreach doen skikking as num, eggo num. 673 00:37:52,120 --> 00:37:54,990 En dit is meer intuïtief as 'n vir ke. 674 00:37:54,990 --> 00:38:02,380 Ons sê, die behandeling van elk van die dinge wat in die skikking as num, 675 00:38:02,380 --> 00:38:05,180 Ek wil hê jy moet my num gee. 676 00:38:05,180 --> 00:38:06,640 En dit is presies wat dit doen. 677 00:38:06,640 --> 00:38:12,000 >> PHP is die berekening dat wanneer jy foreach array sê 678 00:38:12,000 --> 00:38:16,080 en jy met 'n skikking, wat jy gaan om te wil oor Itereer 679 00:38:16,080 --> 00:38:19,950 is die karakters in wat skikking, is die SY in daardie skikking, 680 00:38:19,950 --> 00:38:21,920 is die elemente in daardie skikking. 681 00:38:21,920 --> 00:38:26,110 En dit is om jou te laat slaan daardie veranderlikes as num, 682 00:38:26,110 --> 00:38:29,360 en dan net uitset num dadelik eerder as sê, 683 00:38:29,360 --> 00:38:34,090 Ek het 'n veranderlike genaamd i, en dan wil ek uitset strstr [i]. 684 00:38:34,090 --> 00:38:39,130 >> En sodat ons toelaat om koel dinge doen. 685 00:38:39,130 --> 00:38:43,330 Soos basies ons nie het om te skep hierdie veranderlikes soos ek se en doen alles 686 00:38:43,330 --> 00:38:45,090 hierdie incrementation dinge aan die einde. 687 00:38:45,090 --> 00:38:48,290 PHP sorg vir al van dit vir jou. 688 00:38:48,290 --> 00:38:54,470 >> So nou, laat ons praat oor foreach as dit geld vir ons _GET woordeboek. 689 00:38:54,470 --> 00:38:57,170 So sal ons hierdie vinnig kommentaar uit. 690 00:38:57,170 --> 00:39:02,030 So het ons ons _GET skikking. 691 00:39:02,030 --> 00:39:04,361 Ons het hierdie veranderlike. 692 00:39:04,361 --> 00:39:05,610 En dit het 'n paar dinge in dit. 693 00:39:05,610 --> 00:39:10,275 >> Nou, ons het net een veranderlike oorgedra om dit, wat is die naam. 694 00:39:10,275 --> 00:39:13,420 Maar as ons druk Enter nou kan ons twee veranderlikes het. 695 00:39:13,420 --> 00:39:17,910 Ons kan die naam en ouderdom, byvoorbeeld, As ons wil hê dat die ouderdom te kry en ook 696 00:39:17,910 --> 00:39:20,960 die naam van 'n persoon, snaaks genoeg. 697 00:39:20,960 --> 00:39:25,690 >> So nou _GET gaan 'n wees woordeboek met twee elemente, 698 00:39:25,690 --> 00:39:27,980 met twee sleutel waarde pare. 699 00:39:27,980 --> 00:39:33,490 En die eerste key-- ek gaan skryf hierdie een op die bord ook. 700 00:39:33,490 --> 00:39:37,136 Ons het ons woordeboek is _GET. 701 00:39:37,136 --> 00:39:39,520 Jammer, dit is, is 'n bietjie moeilik om te sien. 702 00:39:39,520 --> 00:39:46,690 Maar binne ons woordeboek ons ​​het noem, wat gaan om iets te wees 703 00:39:46,690 --> 00:39:47,680 dat ons gegee. 704 00:39:47,680 --> 00:39:53,040 En ons sal ouderdom, wat ook gaan iets wat ons gegee word. 705 00:39:53,040 --> 00:39:56,020 En dit is die geheel van ons woordeboek. 706 00:39:56,020 --> 00:39:57,730 >> So dit het twee elemente in dit. 707 00:39:57,730 --> 00:40:01,310 En so, want foreach loops is slim, ons 708 00:40:01,310 --> 00:40:04,900 dalk dink, en korrek sou kon dink dat foreach 709 00:40:04,900 --> 00:40:08,080 kan Itereer deur middel van hierdie woordeboek, uit te druk 710 00:40:08,080 --> 00:40:10,850 die waardes wat deur die naam en ouderdom. 711 00:40:10,850 --> 00:40:14,510 >> So laat in werklikheid doen net dat. 712 00:40:14,510 --> 00:40:17,520 Kom ons bou 'n foreach lus. 713 00:40:17,520 --> 00:40:23,351 En ons gaan om te doen vir _GET as. 714 00:40:23,351 --> 00:40:24,850 En ons gaan na die volgende te doen. 715 00:40:24,850 --> 00:40:34,186 So laat ons sien wat gebeur as ons tik net woord, en dan sê eggo woord. 716 00:40:34,186 --> 00:40:40,540 Ons is ook van plan om 'n nuwe lyn eggo net om dit 'n bietjie duideliker te maak, 717 00:40:40,540 --> 00:40:41,260 wat gaan aan. 718 00:40:41,260 --> 00:40:42,890 >> So laat ons sien. 719 00:40:42,890 --> 00:40:44,390 Dit is nie gee my enige foute. 720 00:40:44,390 --> 00:40:46,810 En ons sal dit maak. 721 00:40:46,810 --> 00:40:51,020 Op ons webwerf, jy gaan om te doen 'n baie dat oor die verloop van pset7. 722 00:40:51,020 --> 00:40:53,890 So sê ons my naam is Sam. 723 00:40:53,890 --> 00:40:58,560 My ouderdom is 45. 724 00:40:58,560 --> 00:41:01,060 Dit is nie. 725 00:41:01,060 --> 00:41:05,640 Maar dit druk uit, soos verwag, Sam 45. 726 00:41:05,640 --> 00:41:08,930 >> En so sal jy sien dat wat foreach lus did-- hier 727 00:41:08,930 --> 00:41:12,360 laat ons gaan terug na daardie so dit is op die board-- kry ons _GET as woord. 728 00:41:12,360 --> 00:41:15,130 En daar was vier dinge in _GET. 729 00:41:15,130 --> 00:41:17,410 Maar dit net af te druk twee dinge. 730 00:41:17,410 --> 00:41:21,290 foreach, wat sy intelligensie self, aanvaar dat dit wat ons regtig wou 731 00:41:21,290 --> 00:41:24,100 was die waardes, en nie die sleutels. 732 00:41:24,100 --> 00:41:27,800 >> Maar daar is 'n manier dat ons kan druk die sleutels so goed, as ons wou. 733 00:41:27,800 --> 00:41:30,810 As ons wou ook weet wat hierdie veranderlikes genoem is, 734 00:41:30,810 --> 00:41:33,540 daar is 'n manier wat ons kan hierdie toegang so goed. 735 00:41:33,540 --> 00:41:36,840 En die manier om soort van dit te doen, sodat ons kan sê, kan regtig 736 00:41:36,840 --> 00:41:39,485 verdeel dit in sleutel waarde pare. 737 00:41:39,485 --> 00:41:42,370 738 00:41:42,370 --> 00:41:47,580 So laat ons sien wat gebeur nou. 739 00:41:47,580 --> 00:41:50,550 >> So het ons die sleutel. 740 00:41:50,550 --> 00:41:52,290 Ons het waarde. 741 00:41:52,290 --> 00:41:56,650 Ons het nog 'n nuwe lyn vir leesbaarheid. 742 00:41:56,650 --> 00:42:00,540 En laat ons sien wat gebeur Wanneer ons dit nou doen. 743 00:42:00,540 --> 00:42:04,950 744 00:42:04,950 --> 00:42:06,720 Ek weet nie hoe oud Jason is. 745 00:42:06,720 --> 00:42:09,180 Jason se 15. 746 00:42:09,180 --> 00:42:11,650 So het ons die naam Jason, ouderdom 15. 747 00:42:11,650 --> 00:42:15,830 So was ons in staat om toegang tot die sleutel en die waarde pare hierdie woordeboek 748 00:42:15,830 --> 00:42:18,590 net deur te sê as belangrike punte om waarde. 749 00:42:18,590 --> 00:42:23,350 En dit is 'n foreach sintaktiese suiker bietjie wat dit moontlik maak 750 00:42:23,350 --> 00:42:25,960 jy dinge toegang in die woordeboek. 751 00:42:25,960 --> 00:42:31,190 >> So hopelik hierdie soort van beklemtoon die krag van die foreach lus. 752 00:42:31,190 --> 00:42:35,690 Jy kan pretty much gooi enigiets wat iterable lyk, 753 00:42:35,690 --> 00:42:38,922 soos iets wat veelvuldige het elemente soos 'n skikking, 754 00:42:38,922 --> 00:42:41,880 soos 'n dictionary-- dit is twee primêre dinge wat jy moet werk met 755 00:42:41,880 --> 00:42:45,630 beide in lewe en in pset 7. 756 00:42:45,630 --> 00:42:49,350 Sodat jy kan daardie dinge gooi op, en dit sal uitvind 757 00:42:49,350 --> 00:42:51,030 wat jy wil doen met dit. 758 00:42:51,030 --> 00:42:54,250 Dit sal sê, OK, ek gaan om te kry hierdie dinge uit die data wat 759 00:42:54,250 --> 00:42:55,680 geslaag om my. 760 00:42:55,680 --> 00:43:02,470 En dit is iets wat jy gaan word met behulp van 'n baie in pset 7. 761 00:43:02,470 --> 00:43:08,550 >> Ek gaan 'n vinnige blaai af net om te sien waar ek op. 762 00:43:08,550 --> 00:43:11,410 763 00:43:11,410 --> 00:43:13,070 Moenie mense het vrae op hierdie punt? 764 00:43:13,070 --> 00:43:13,778 Vrae by almal? 765 00:43:13,778 --> 00:43:14,400 Ja? 766 00:43:14,400 --> 00:43:18,320 >> GEHOOR: So met die sleutel en waarde, jy kan dit noem enigiets anders 767 00:43:18,320 --> 00:43:20,507 en dit sou nog steeds werk? 768 00:43:20,507 --> 00:43:21,090 Spreker: Oops. 769 00:43:21,090 --> 00:43:22,820 Sjoe, ek is dit heeltemal verwyder die hele lyn. 770 00:43:22,820 --> 00:43:23,380 Groot werk. 771 00:43:23,380 --> 00:43:26,502 So 'n, a. 772 00:43:26,502 --> 00:43:30,109 Sleutel en waarde is net 'n konvensie. 773 00:43:30,109 --> 00:43:30,650 Dit is nuttig. 774 00:43:30,650 --> 00:43:34,010 Jy sal 'n paar ontwerp te kry punte, miskien 'n paar styl punte 775 00:43:34,010 --> 00:43:36,970 om dit te doen, want dit wat regtig dra die bedoeling nie. 776 00:43:36,970 --> 00:43:39,650 Maar ons sê 'n en yarp. 777 00:43:39,650 --> 00:43:42,476 >> GEHOOR: Jy hoef nie te niks verander in die HTML-lêer 778 00:43:42,476 --> 00:43:43,607 ten einde aan te toon dat? 779 00:43:43,607 --> 00:43:44,440 Spreker: Glad nie. 780 00:43:44,440 --> 00:43:47,260 GEHOOR: En dit is net weet dat as gevolg van die groter gelyk than-- 781 00:43:47,260 --> 00:43:47,801 Spreker: Ja. 782 00:43:47,801 --> 00:43:49,489 GEHOOR: --that aanduiding dat that's-- 783 00:43:49,489 --> 00:43:50,030 Spreker: Ja. 784 00:43:50,030 --> 00:43:52,260 Dit is 'n foreach sintaksis, maar ja. 785 00:43:52,260 --> 00:43:53,720 >> GEHOOR: Daar is nie tipes. 786 00:43:53,720 --> 00:43:57,230 So, wat as jy wou ouderdom net 'n getal wees? 787 00:43:57,230 --> 00:43:59,510 Is daar 'n manier om dit te doen? 788 00:43:59,510 --> 00:44:04,550 >> Spreker: Daar is maniere om te kyk of veranderlikes aan sekere tipes. 789 00:44:04,550 --> 00:44:08,482 So PHP vra 'n bietjie meer van jy, want daar is geen tipes in. 790 00:44:08,482 --> 00:44:09,440 Sommige maniere dit vra minder. 791 00:44:09,440 --> 00:44:11,070 In sommige maniere vra dit meer. 792 00:44:11,070 --> 00:44:13,320 Want as jy net iets in 'n veranderlike, 793 00:44:13,320 --> 00:44:14,960 jy het geen idee watter tipe dit is. 794 00:44:14,960 --> 00:44:19,310 Maar as jy slim oor die veranderlikes dat jy tipes om te wys en maak seker 795 00:44:19,310 --> 00:44:22,750 wat funksioneer net return-- jy wil funksies slegs terugkeer 796 00:44:22,750 --> 00:44:26,210 'n tipe van waarde so wat jy kan basies 797 00:44:26,210 --> 00:44:31,090 verwag dat die veranderlike wat jy terug kry van 'n funksie sal wees van die tipe 798 00:44:31,090 --> 00:44:32,780 wat jy dink dit sal wees, basies. 799 00:44:32,780 --> 00:44:36,550 >> Maar daar is 'n paar metodes deur wat jy kan kyk. 800 00:44:36,550 --> 00:44:39,801 Ek het hulle nie onthou uit die bokant van my kop. 801 00:44:39,801 --> 00:44:43,300 Ek wag vir dit om te blou. 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 Daar is metodes gebou in PHP wat kan 805 00:44:52,000 --> 00:44:54,440 Gaan die tipe veranderlikes vir jou. 806 00:44:54,440 --> 00:44:58,250 Maar as jy veranderlikes toeken slim, moet jy nie 807 00:44:58,250 --> 00:45:01,330 het dat te veel te doen in pset 7. 808 00:45:01,330 --> 00:45:02,780 Maar dié metodes bestaan ​​nie. 809 00:45:02,780 --> 00:45:06,704 En dit is iets wat is in die taal self. 810 00:45:06,704 --> 00:45:08,370 En ek onthou nie die presiese sintaksis. 811 00:45:08,370 --> 00:45:09,930 Ons kan selfs kyk dit. 812 00:45:09,930 --> 00:45:11,974 Maar die tyd is van die essensie. 813 00:45:11,974 --> 00:45:13,890 het daar iemand anders het meer vrae? 814 00:45:13,890 --> 00:45:14,660 Ja. 815 00:45:14,660 --> 00:45:15,951 >> GEHOOR: Ek het nog net een. 816 00:45:15,951 --> 00:45:19,050 So jy genoem die GET-metode, maar jy het die POST-metode noem nie. 817 00:45:19,050 --> 00:45:20,500 Ons kom terug na dit? 818 00:45:20,500 --> 00:45:21,540 >> Spreker: Ja, ons sal kom terug na daardie. 819 00:45:21,540 --> 00:45:24,840 Dit is presies wat ek soek op my selfoon, wat nou aan die slaap geraak, 820 00:45:24,840 --> 00:45:26,960 maar ek sal dit vind. 821 00:45:26,960 --> 00:45:30,680 Net om seker te maak ons ​​getref al die PHP notas. 822 00:45:30,680 --> 00:45:35,640 Yep, daar is geen debugging weergawe. 823 00:45:35,640 --> 00:45:41,940 Ja, ons het nog 'n paar dinge wat ons nou wil doen op hierdie punt. 824 00:45:41,940 --> 00:45:45,980 >> So praat oor POST, wat jy genoem het, 825 00:45:45,980 --> 00:45:49,630 Die enigste verskil tussen AOO en pos 826 00:45:49,630 --> 00:45:53,150 wat onthou wanneer ons gekyk op hierdie URL en ons het gesien, o, 827 00:45:53,150 --> 00:45:58,270 naam is gelyk aan 'n en ouderdom gelyk yarp is reg in die URL daar vir ons. 828 00:45:58,270 --> 00:46:03,300 Pos is 'n bietjie meer geheimsinnig met sy afsterwe van inligting. 829 00:46:03,300 --> 00:46:08,090 >> So as jy nie wil hê 'n gebruiker om te weet, byvoorbeeld, het jy 830 00:46:08,090 --> 00:46:11,160 wou nie die gebruikersnaam wagwoord van die persoon 831 00:46:11,160 --> 00:46:15,080 tans aangemeld word vertoon in die URL, wat is 'n redelike ding 832 00:46:15,080 --> 00:46:17,770 om nie in die URL, want iemand kan dit sien. 833 00:46:17,770 --> 00:46:21,520 As hulle iemand skakel na 'n bladsy, jy wil nie hul URL daar gepleister, 834 00:46:21,520 --> 00:46:27,850 want dit sou toelaat dat mense om aan te meld net met die plak van 'n URL in plaas 835 00:46:27,850 --> 00:46:29,670 werklik te vul 'n vorm in. 836 00:46:29,670 --> 00:46:31,710 Pos is 'n bietjie meer geheimsinnig. 837 00:46:31,710 --> 00:46:34,150 >> En die enigste dinge wat ons sal moet verander 838 00:46:34,150 --> 00:46:38,550 is hierdie metode, verandering uit te kry om te post. 839 00:46:38,550 --> 00:46:42,367 En dan die binnekant van die HTTP, plaas toegang tot die skikking _GET, 840 00:46:42,367 --> 00:46:43,950 ons gaan om toegang tot die skikking _POST. 841 00:46:43,950 --> 00:46:48,600 >> En ons sal sien dat, indien Ons maak hierdie weer terug, 842 00:46:48,600 --> 00:46:51,910 Jason stadig dalings in ouderdom. 843 00:46:51,910 --> 00:46:53,230 noem Jason, ouderdom 14. 844 00:46:53,230 --> 00:46:54,280 Dieselfde dinge verskyn. 845 00:46:54,280 --> 00:46:57,190 Maar ons gaan na die URL en daardie veranderlikes is nie daar nie. 846 00:46:57,190 --> 00:47:00,540 >> En die manier waarop POST passes-- so onthou 847 00:47:00,540 --> 00:47:02,750 hoe om te kyk na die bron van 'n bladsy. 848 00:47:02,750 --> 00:47:04,570 Ons gaan na die netwerk. 849 00:47:04,570 --> 00:47:06,920 Ons verfris. 850 00:47:06,920 --> 00:47:10,690 En dit is 'n ander ding wat POST sal jou waarskuwings oor te gee. 851 00:47:10,690 --> 00:47:15,050 Jy kan 'n boks, 'n teks gesien boks soos dit in die leser. 852 00:47:15,050 --> 00:47:18,170 Is jy seker jy wil hê om 'n vorm weer stuur? 853 00:47:18,170 --> 00:47:21,170 Pos is wat 's stuur hierdie vorms. 854 00:47:21,170 --> 00:47:24,680 >> Omdat basies as jy jou gestuur kredietkaart inligting vir iemand, 855 00:47:24,680 --> 00:47:26,350 dit gaan nie om te wys in die URL. 856 00:47:26,350 --> 00:47:28,180 Dit gaan 'n POST versoek word. 857 00:47:28,180 --> 00:47:32,905 So wanneer jy die bladsy te verfris, dit is weer in daardie pos versoek. 858 00:47:32,905 --> 00:47:35,530 So nou wil ons die stuur vorm weer, want dit gaan nie 859 00:47:35,530 --> 00:47:37,340 enige duplikaat aankope te skep. 860 00:47:37,340 --> 00:47:41,160 >> En ons sal sien dat hier neer, die metode wat ons gebruik is Post. 861 00:47:41,160 --> 00:47:43,065 En dit het inderdaad dra grepe. 862 00:47:43,065 --> 00:47:45,460 Dit oorgedra 401 van hulle. 863 00:47:45,460 --> 00:47:47,190 Program se mooi klein. 864 00:47:47,190 --> 00:47:51,600 Maar daar is nêrens dat ons kan sien die waardes wat oorgedra word. 865 00:47:51,600 --> 00:47:59,540 Die webblaaie hulself kan sien, maar ons as gebruikers nie in staat is om te sien, 866 00:47:59,540 --> 00:48:01,650 tensy jy 'n hacker. 867 00:48:01,650 --> 00:48:05,340 As jy 'n goeie hacker, kan jy kyk. 868 00:48:05,340 --> 00:48:09,360 >> As jy weet wat die basiese formaat van die HTML, 869 00:48:09,360 --> 00:48:11,790 die waardes sal maak hulself in die bladsye bekend. 870 00:48:11,790 --> 00:48:13,160 Jy sal in staat wees om te sien. 871 00:48:13,160 --> 00:48:16,720 Die waardes sal daar wees, hulle is net 'n bietjie minder voor die hand liggend vir jou 872 00:48:16,720 --> 00:48:19,522 toegang, basies. 873 00:48:19,522 --> 00:48:23,620 >> Het ons nie meer vrae oor AOO, POST 874 00:48:23,620 --> 00:48:26,800 before-- wat ons gaan volgende te doen is eintlik kyk na sommige van die kode 875 00:48:26,800 --> 00:48:30,837 wat jy gee in pset 7, praat oor hoe dit gebruik sommige van hierdie konsepte, 876 00:48:30,837 --> 00:48:32,670 en praat oor die dinge wat jy gaan 877 00:48:32,670 --> 00:48:35,090 om 'n bietjie te doen in pset 7. 878 00:48:35,090 --> 00:48:36,760 Enige verdere vrae voor dit? 879 00:48:36,760 --> 00:48:38,047 Meer vrae wat jy ouens het? 880 00:48:38,047 --> 00:48:41,250 881 00:48:41,250 --> 00:48:41,840 Groot. 882 00:48:41,840 --> 00:48:45,370 >> Alle reg, laat ons kyk 'n bietjie op pset 7, 883 00:48:45,370 --> 00:48:49,530 geen twyfel wat jy is al die meeste opgewonde oor. 884 00:48:49,530 --> 00:48:52,126 885 00:48:52,126 --> 00:48:54,750 Ek bedoel, dit is iets wat David gaan deur 'n bietjie. 886 00:48:54,750 --> 00:49:00,890 Maar ons sal drie dopgehou het by die top, sowel as 'n konfigurasielêer. 887 00:49:00,890 --> 00:49:04,650 Dit is vir databasisse, wat ons sal praat oor in omtrent vyf minute. 888 00:49:04,650 --> 00:49:07,220 Sluit, jy nooit nodig om te kyk in hierdie gids 889 00:49:07,220 --> 00:49:12,480 as jy nie wil, maar dit is lekker om weet daar is allerhande helpers. 890 00:49:12,480 --> 00:49:14,210 Helpers is soos nuttig funksies. 891 00:49:14,210 --> 00:49:18,120 En dan het ons config, wat stel 'n paar dinge op. 892 00:49:18,120 --> 00:49:24,590 >> Daar is 'n paar funksies wat CS50 het geskryf wat in helper en config. 893 00:49:24,590 --> 00:49:27,250 En 'n paar van die PHP dat reeds uitgange in lêers 894 00:49:27,250 --> 00:49:30,880 sal 'n baie van die meer soort doen van stomp been werk vir jou. 895 00:49:30,880 --> 00:49:35,250 Soos as ons gaan in die openbare login.php, en dit is wat 896 00:49:35,250 --> 00:49:38,350 toon reg wanneer jy gaan in pset 7. 897 00:49:38,350 --> 00:49:40,580 Ons sal sien dat daar hierdie vereis verklaring. 898 00:49:40,580 --> 00:49:43,420 En dat die soort van soos 'n skerp sluit, hashtag 899 00:49:43,420 --> 00:49:46,850 sluit as jy van 'n nuwe generasie. 900 00:49:46,850 --> 00:49:49,740 Maar dit basies sê dat ek toegang nodig 901 00:49:49,740 --> 00:49:52,260 om al die funksies in config.php. 902 00:49:52,260 --> 00:49:55,290 En jy kan 'n eis vir alle vorme van ander dinge. 903 00:49:55,290 --> 00:49:59,670 >> config vereis eintlik helpers. 904 00:49:59,670 --> 00:50:02,490 So wanneer jy nodig het config, het jy ook is 905 00:50:02,490 --> 00:50:05,660 insluitend of vereis helpers as well. 906 00:50:05,660 --> 00:50:09,590 Sodat gee jou toegang tot al die koel funksies wat ons gaan gebruik, 907 00:50:09,590 --> 00:50:10,420 dinge wil lewer. 908 00:50:10,420 --> 00:50:13,490 Ek is eintlik van plan om te verlig dit neer 'n bietjie. 909 00:50:13,490 --> 00:50:16,280 So die funksie dan is ons gaan om te loop deur 910 00:50:16,280 --> 00:50:22,380 net voor ons na 'n bietjie SQL bietjie is die login.php funksie, net 911 00:50:22,380 --> 00:50:26,586 omdat dit gebruik maak van sommige van die onderwerpe dat ons net gepraat oor in PHP. 912 00:50:26,586 --> 00:50:30,840 >> Jy sien die eerste ding is as $ _SERVER. 913 00:50:30,840 --> 00:50:34,500 Dit is nog 'n globale veranderlike wat jy gaan doen het met. 914 00:50:34,500 --> 00:50:38,460 Dit is soos _GET en _POST, maar wat bediener bevat is dit wat jy kan laat 915 00:50:38,460 --> 00:50:42,730 weet of die versoek metode was 'n AOO of 'n pos. 916 00:50:42,730 --> 00:50:47,250 Soos voorheen wat ons doen is net in ons kode wat ons geskryf het, 917 00:50:47,250 --> 00:50:51,880 ons was net om dit te verander om te wees en kry POST afhangende van wat die HTML het. 918 00:50:51,880 --> 00:50:55,120 Maar daar is bladsye wat kan wees verkry word met beide tipes versoeke. 919 00:50:55,120 --> 00:50:57,410 En jy kan wil doen verskillende dinge afhangende 920 00:50:57,410 --> 00:50:59,740 van die tipe versoek, net soos login doen. 921 00:50:59,740 --> 00:51:04,400 >> Sodat jy kan daardie versoek kyk metode deur middel van toegang sleutels, 922 00:51:04,400 --> 00:51:08,630 deur gebruik te maak van 'n sleutel en kry die waarde van iets in die woordeboek 923 00:51:08,630 --> 00:51:10,260 _SERVER. 924 00:51:10,260 --> 00:51:13,800 So dis 'n ander globale veranderlike soos _GET en _POST. 925 00:51:13,800 --> 00:51:16,990 >> As dit kry, ons wil lewer die login vorm. 926 00:51:16,990 --> 00:51:21,920 Lewer is 'n funksie wat basies net sit op die toepaslike HTML 927 00:51:21,920 --> 00:51:24,500 en gee dit 'n paar parameters. 928 00:51:24,500 --> 00:51:28,740 Hierdie titel is 'n parameter wat gebruik tydens die vertoning van, vreemd genoeg, 929 00:51:28,740 --> 00:51:32,670 die titel van die bladsy in vraag, die ding hier, 930 00:51:32,670 --> 00:51:34,850 sê of hallo in ons vorige voorbeeld. 931 00:51:34,850 --> 00:51:36,100 Nou het ons 'n ander ding. 932 00:51:36,100 --> 00:51:38,570 Anders as dit POST ons doen 'n paar ander dinge. 933 00:51:38,570 --> 00:51:40,790 Ons gebruik die leë metode. 934 00:51:40,790 --> 00:51:42,750 Dit is nie bestaan ​​nie, dit is leeg. 935 00:51:42,750 --> 00:51:45,440 En ons het voor, PHP het 'n billike bedrag van gebou 936 00:51:45,440 --> 00:51:52,370 in die metodes wat Dawid will-- indien daar is metodes wat nuttig is vir jou, 937 00:51:52,370 --> 00:51:55,560 hulle sal word gewaarsku om jou in die loop deur Dawid 938 00:51:55,560 --> 00:51:59,770 gee aan die begin oorsig, en ook Zamyla se nuttige stukkies. 939 00:51:59,770 --> 00:52:01,040 Sy is terug almal. 940 00:52:01,040 --> 00:52:03,100 Ons kan almal bly wees. 941 00:52:03,100 --> 00:52:06,530 verskoning is 'n gepaste naam funksie wat net basies druk uit 942 00:52:06,530 --> 00:52:10,130 sommige fout boodskappe, omdat CS50 is baie beleefd. 943 00:52:10,130 --> 00:52:14,770 >> En nou is dit, dit is 'n lastig bietjie, want dit 944 00:52:14,770 --> 00:52:16,697 is waar ons die databasis is bevraagteken. 945 00:52:16,697 --> 00:52:18,280 Nou het ons nie gepraat oor databasisse. 946 00:52:18,280 --> 00:52:22,220 En ons gaan in die volgende vyf minute of so, maksimum. 947 00:52:22,220 --> 00:52:24,980 Maar dit is 'n funksie dat CS50 geskryf 948 00:52:24,980 --> 00:52:38,050 om 'n tafel te kry basies uit 'n databasis dat ons werk in pset 7. 949 00:52:38,050 --> 00:52:40,860 Ek is regtig sleg met my zero kruip vandag. 950 00:52:40,860 --> 00:52:42,060 Maar ja, dit is 7. 951 00:52:42,060 --> 00:52:46,340 >> So navraag dit gaan om 'n terugkeer skikking, basies is die sleutel bietjie. 952 00:52:46,340 --> 00:52:54,130 En omdat hierdie dinge het nie tik, so rye is 'n verskeidenheid van skikkings. 953 00:52:54,130 --> 00:52:59,480 Want as ons dink oor 'n tafel, wat ons gaan doen 954 00:52:59,480 --> 00:53:04,830 is, soos jy geleer het in psets soos die spel van die 15, in elk geval 955 00:53:04,830 --> 00:53:06,990 waar jy moes 'n gebruik dubbel skikking, ons basies 956 00:53:06,990 --> 00:53:15,210 het verskeidenheid van ander skikkings maak 'n tafel. 957 00:53:15,210 --> 00:53:18,150 En jy het rye en kolomme. 958 00:53:18,150 --> 00:53:24,450 En dan kan jy hulle toegang soos [0] [1], kry jy die [0] [1]. 959 00:53:24,450 --> 00:53:26,900 Basiese dinge soos dat. 960 00:53:26,900 --> 00:53:29,380 >> So wat ons doen hier in hierdie funksie, 961 00:53:29,380 --> 00:53:35,070 ons die databasis vra as die gebruiker wat 962 00:53:35,070 --> 00:53:40,200 probeer om aan te meld, sal dit wees gestuur deur die pos metode. 963 00:53:40,200 --> 00:53:43,950 Ons sal sien wat ons kry die gebruikersnaam _POST. 964 00:53:43,950 --> 00:53:46,900 Hulle sal gestuur het, die gebruiker of jy sal 'n waarde stuur 965 00:53:46,900 --> 00:53:50,750 deur 'n vorm deur POST omdat dit is gebruikersnaam en wagwoord dinge. 966 00:53:50,750 --> 00:53:54,830 Ons monitor die gebruikersnaam om te sien, is dit in die tabel? 967 00:53:54,830 --> 00:53:58,070 Want as 'n gebruiker aan te meld in, dan is hulle gebruikersnaam 968 00:53:58,070 --> 00:54:03,320 moet gestoor word in die tabel van gebruikers wat bestaan ​​vir hierdie site. 969 00:54:03,320 --> 00:54:09,360 So basies as die gebruiker is in die databasis, 970 00:54:09,360 --> 00:54:16,400 navraag gaan om terug te keer daardie ry, wat 'n skikking. 971 00:54:16,400 --> 00:54:24,560 >> Maar die moeilike deel is dat as selfs al die dubbele skikking is net een ry, 972 00:54:24,560 --> 00:54:31,900 selfs al is dit 'n een ry array-- soos jy het basically-- het 973 00:54:31,900 --> 00:54:36,900 as jy 'n grootte een array het dit is 'n ander hou skikking, 974 00:54:36,900 --> 00:54:38,940 Jy is regtig te doen met een kolom. 975 00:54:38,940 --> 00:54:41,420 Maar dit is nog steeds behandel soos 'n dubbel skikking. 976 00:54:41,420 --> 00:54:44,560 >> En dit is waar dit soms kan kry lastig, omdat ons hier het rye. 977 00:54:44,560 --> 00:54:46,440 Ons veranderlike rye. 978 00:54:46,440 --> 00:54:48,590 En dan is ons skep 'n nuwe veranderlike genoem ry 979 00:54:48,590 --> 00:54:51,450 en die opstel van dit gelyk aan die eerste ry van rye. 980 00:54:51,450 --> 00:54:55,150 En jy sal sien dat kommentaar sê dit is die eerste en enigste ry. 981 00:54:55,150 --> 00:54:57,080 >> So, dit is die moeilike deel waar nou funksies 982 00:54:57,080 --> 00:54:59,660 kan baie maklik skikkings terugkeer. 983 00:54:59,660 --> 00:55:01,270 Daar is nie mallocs. 984 00:55:01,270 --> 00:55:02,280 Jy sal nie mallocs sien. 985 00:55:02,280 --> 00:55:03,940 So sal jy nie sien seg foute. 986 00:55:03,940 --> 00:55:08,380 Maar funksies sal nog verbygaan rondom skikkings en data in groepe. 987 00:55:08,380 --> 00:55:12,250 En jy het versigtig te wees wat presies jou funksies sal terugkeer. 988 00:55:12,250 --> 00:55:15,160 En selfs as dit is een kolom soos hierdie, navraag 989 00:55:15,160 --> 00:55:17,520 gaan nog 'n dubbele verskeidenheid terugkeer. 990 00:55:17,520 --> 00:55:21,390 So om toegang wat column-- of jy kan dink al hierdie as omgekeerde 991 00:55:21,390 --> 00:55:22,870 sedert ons praat oor rye. 992 00:55:22,870 --> 00:55:26,810 Maar om toegang te verkry dat 'n mens ry, jy kan nie net sê rye. 993 00:55:26,810 --> 00:55:31,540 Selfs al is dit een ry, moet jy moenie rowsrows [0] te sorteer van hierdie skakel 994 00:55:31,540 --> 00:55:37,360 buitenste bietjie van die skikking en net jou een ry. 995 00:55:37,360 --> 00:55:38,342 >> Doen n paar ander dinge. 996 00:55:38,342 --> 00:55:40,050 Daar is 'n funksie genoem password_verify 997 00:55:40,050 --> 00:55:42,980 wat bevestig die wagwoord wat gepos is. 998 00:55:42,980 --> 00:55:48,500 En dan sien ons nog 'n globale veranderlike hier, _SESSION. 999 00:55:48,500 --> 00:55:51,340 Basies sessie ID is hoe jy tred te hou 1000 00:55:51,340 --> 00:55:53,990 van as iemand aangemeld is of nie. 1001 00:55:53,990 --> 00:55:58,590 So nou met login.php, ons meld 'n gebruiker in. 1002 00:55:58,590 --> 00:56:01,920 So wat ons wil doen, is ons wil sê die sessie id is gelyk aan die ry 1003 00:56:01,920 --> 00:56:05,890 id, wat net sin maak, want elke ry sal 'n ander ID het 1004 00:56:05,890 --> 00:56:07,239 nommer as deel van die tafel. 1005 00:56:07,239 --> 00:56:09,280 Ons kry in SQL in 'n tweede, so as enige van hierdie 1006 00:56:09,280 --> 00:56:13,500 lyk 'n bietjie soos blah, dan sal almal opgeklaar word. 1007 00:56:13,500 --> 00:56:18,450 Maar ons gaan na die id gelyk te stel die behoorlike ding, meld die gebruiker in. 1008 00:56:18,450 --> 00:56:20,530 Jammer as iets verkeerd gaan. 1009 00:56:20,530 --> 00:56:27,600 En dit is logins doel in lewe as Professor Malan sou sê. 1010 00:56:27,600 --> 00:56:29,130 >> So dit was login.php. 1011 00:56:29,130 --> 00:56:33,750 En 'n groot deel van die PHP-kode wat jy skryf in pset 7, sal hulle 'n bietjie wees. 1012 00:56:33,750 --> 00:56:36,470 Moenie vergeet om te chmod die behoorlike toestemming. 1013 00:56:36,470 --> 00:56:40,180 Daar sal 'n bietjie oor wees dat in die begin van die spec. 1014 00:56:40,180 --> 00:56:46,382 >> Maar die PHP dat jy skriftelik gaan wees 1015 00:56:46,382 --> 00:56:47,840 doen dinge wat soortgelyk aan hierdie. 1016 00:56:47,840 --> 00:56:49,715 Jy gaan wees toegang tot 'n paar dinge wat 1017 00:56:49,715 --> 00:56:52,760 aan jou gegee word in die globale veranderlikes van PHP wat 1018 00:56:52,760 --> 00:56:56,105 te doen het met die huidige aangemeld gebruiker, of daar 1019 00:56:56,105 --> 00:57:00,460 gewees versoeke gestuur om hierdie bladsy, verskillende dinge soos dat. 1020 00:57:00,460 --> 00:57:05,790 En dit sal ook potensieel iterating deur rye van hierdie ding. 1021 00:57:05,790 --> 00:57:09,010 >> In 'n ander funksie, navraag nie terug hierdie dubbele skikking. 1022 00:57:09,010 --> 00:57:11,450 En as daar is meer as een rye in dit, 1023 00:57:11,450 --> 00:57:15,080 indien daar are-- ja, as daar meer as een rye in dit, 1024 00:57:15,080 --> 00:57:16,870 dan sal dit 'n tafel wees. 1025 00:57:16,870 --> 00:57:20,500 En jy dalk wil Itereer deur die rye van hierdie verskeidenheid behulp 1026 00:57:20,500 --> 00:57:22,860 die foreach lus dat ons beskryf. 1027 00:57:22,860 --> 00:57:30,270 >> So as jy foreach doen op 'n dubbel skikking, wat sal die word-- hier 1028 00:57:30,270 --> 00:57:31,909 Ek sal eintlik skryf dit. 1029 00:57:31,909 --> 00:57:32,950 Ek sal dit vinnig hier skryf. 1030 00:57:32,950 --> 00:57:44,280 >> As ons 'n foreach rye as ry, wat is die aard van die ry? 1031 00:57:44,280 --> 00:57:45,390 Is daar iemand weet? 1032 00:57:45,390 --> 00:57:54,000 1033 00:57:54,000 --> 00:57:54,500 Jy het dit? 1034 00:57:54,500 --> 00:57:57,110 So rye is 'n dubbele skikking. 1035 00:57:57,110 --> 00:58:02,810 So, wat is foreach gaan aflei wat ons wil uit hierdie dubbele verskeidenheid 1036 00:58:02,810 --> 00:58:04,280 as ons iterating oor dit? 1037 00:58:04,280 --> 00:58:07,170 1038 00:58:07,170 --> 00:58:10,770 Ons kan aanneem dat basies dit gaan om óf elemente, 1039 00:58:10,770 --> 00:58:14,970 of rye of kolomme, basies. 1040 00:58:14,970 --> 00:58:18,740 En so rye en kolomme ons kan hanteer as die dieselfde ding. 1041 00:58:18,740 --> 00:58:23,880 >> Basies wat die foreach lus gaan te doen, is dit gaan rye terug te keer. 1042 00:58:23,880 --> 00:58:28,500 ry gaan van die tipe ry te wees, terwyl rye is 'n dubbele skikking. 1043 00:58:28,500 --> 00:58:32,290 So as jy foreach gee 'n dubbele skikking, dit is 1044 00:58:32,290 --> 00:58:35,830 gaan nie Itereer meer as een vlak diep. 1045 00:58:35,830 --> 00:58:44,464 Wat is basies te sê as daar agt selle in hierdie table-- 1,2, 1046 00:58:44,464 --> 00:58:48,110 3: 4, 5, 6, 7, 8-- die foreach lus is nie 1047 00:58:48,110 --> 00:58:51,880 gaan om te gaan deur middel van elkeen van hierdie selle. 1048 00:58:51,880 --> 00:58:56,390 Wat die foreach lus sal doen is dit gaan deur middel van hierdie ry, 1049 00:58:56,390 --> 00:58:57,870 gee jou hierdie hele ry. 1050 00:58:57,870 --> 00:58:59,410 En dan is dit gaan deur die ry. 1051 00:58:59,410 --> 00:59:01,850 >> So is dit net een vlak diep iterate. 1052 00:59:01,850 --> 00:59:05,310 As jy 'n geneste voeg foreach lus, dan moet jy 1053 00:59:05,310 --> 00:59:16,280 kan elke ry terug van behandel rye, het jy foreach ry as element, 1054 00:59:16,280 --> 00:59:17,640 Kom ons sê. 1055 00:59:17,640 --> 00:59:22,750 En dan kan jy die element eggo. 1056 00:59:22,750 --> 00:59:24,930 So dit is 'n kort bietjie opknappingskursusse oor hoe 1057 00:59:24,930 --> 00:59:30,220 jy kan met behulp van foreach lusse in die konteks van die soektog. 1058 00:59:30,220 --> 00:59:32,840 >> Is daar enige vrae oor PHP? 1059 00:59:32,840 --> 00:59:36,520 Enigiets voordat ons skuif op na praat oor SQL 1060 00:59:36,520 --> 00:59:37,820 en die pret van databasis? 1061 00:59:37,820 --> 00:59:41,480 1062 00:59:41,480 --> 00:59:42,110 Voel goed? 1063 00:59:42,110 --> 00:59:42,750 Voel goed. 1064 00:59:42,750 --> 00:59:43,470 Alles reg. 1065 00:59:43,470 --> 00:59:49,130 >> Kom ons beweeg terug na die PowerPoint, wat jy waarskynlik mis. 1066 00:59:49,130 --> 00:59:51,800 SQL, yay. 1067 00:59:51,800 --> 00:59:57,900 Mense wat in my artikel tipies sal weet dat subopskrifte van akronieme 1068 00:59:57,900 --> 01:00:01,220 is altyd net die eerste woorde Ek dink van daardie wedstryd wat 1069 01:00:01,220 --> 01:00:02,690 algorithm-- dat akroniem. 1070 01:00:02,690 --> 01:00:04,090 Dit is nie 'n algoritme. 1071 01:00:04,090 --> 01:00:08,050 >> So SQL is 'n databasis. 1072 01:00:08,050 --> 01:00:11,060 Dit is 'n taal wat werk met databasisse. 1073 01:00:11,060 --> 01:00:14,440 En al databasisse is tafels, ten minste in die manier 1074 01:00:14,440 --> 01:00:17,220 dat SQL verteenwoordig hulle. 1075 01:00:17,220 --> 01:00:23,610 >> Nog 'n manier om te dink oor databasisse databasisse is 'n stel sleutels en waardes 1076 01:00:23,610 --> 01:00:24,110 basies. 1077 01:00:24,110 --> 01:00:29,530 Jy kan dink oor 'n databasis as 'n woordeboek en ook as 'n tafel. 1078 01:00:29,530 --> 01:00:34,300 Eintlik is dit is 'n manier om te assosieer verskillende data met ander data, 1079 01:00:34,300 --> 01:00:36,270 dikwels deur rye en kolomme. 1080 01:00:36,270 --> 01:00:38,470 En dit is die manier dis SQL werk die beste. 1081 01:00:38,470 --> 01:00:40,880 >> So dit is een voorbeeld van 'n tafel. 1082 01:00:40,880 --> 01:00:44,610 Ek het 'n paar voorbeelde van het mense in my artikel, wat 1083 01:00:44,610 --> 01:00:45,970 Ek het nie tyd om te verander nie. 1084 01:00:45,970 --> 01:00:52,020 Maar ons het dinge soos ID, naam, supermoondheid, en tuisdorp. 1085 01:00:52,020 --> 01:00:54,100 Ek weet nie waar iemand se uit in my artikel, 1086 01:00:54,100 --> 01:00:56,266 so ek is net gaan om te aanvaar almal is van New York 1087 01:00:56,266 --> 01:00:59,370 City, want ek het 'n hoë statistiese waarskynlikheid van korrek. 1088 01:00:59,370 --> 01:01:04,200 >> SQL sal outomaties sorg van die kolom ID vir jou. 1089 01:01:04,200 --> 01:01:07,560 As jy 'n nuwe ry voeg in 'n SQL databasis, 1090 01:01:07,560 --> 01:01:09,700 dit sal inkrementeer wat ID-nommer en net 1091 01:01:09,700 --> 01:01:14,890 basies vashou soos vyf name, supermoondheid, tuisdorp, wie 1092 01:01:14,890 --> 01:01:16,430 op die einde van die tafel. 1093 01:01:16,430 --> 01:01:19,160 So ID is 'n kolom wat jy nooit weer hoef te bekommer nie. 1094 01:01:19,160 --> 01:01:22,770 Maar, soos in die geval van login.php, wanneer ons 1095 01:01:22,770 --> 01:01:26,610 was om die sessie ID van 'n tafel en net die gebruik van ID, 1096 01:01:26,610 --> 01:01:30,320 ID is 'n manier om uniek te identifiseer 'n element van 'n databasis. 1097 01:01:30,320 --> 01:01:34,980 >> So as ons het twee Sams, beide van wat CS50 geleer het, en beide van wat 1098 01:01:34,980 --> 01:01:39,370 was van Milwaukee, diegene sou nog duidelike ID-nommers 1099 01:01:39,370 --> 01:01:43,420 en dus duidelike in wees die konteks van die tafel. 1100 01:01:43,420 --> 01:01:48,700 So dit is wat SQL is die hantering met, in samewerking met die agterkant. 1101 01:01:48,700 --> 01:01:54,160 >> En dit is die vier opdragte wat jy nodig het om te werk met SQL. 1102 01:01:54,160 --> 01:01:56,390 En ek gooi hulle almal op een skyfie. 1103 01:01:56,390 --> 01:01:59,530 Maar ons gaan om te gaan deur hulle almal individueel. 1104 01:01:59,530 --> 01:02:03,300 >> Die eerste opdrag is UPDATE, wat doen wat jy kan verwag. 1105 01:02:03,300 --> 01:02:07,240 Sê jy 'n paar data in die tafel wat uit datum. 1106 01:02:07,240 --> 01:02:09,470 Soos as jy hou spoor van die mense se name 1107 01:02:09,470 --> 01:02:13,350 en ouderdomme, as iemand se ouderdom toeneem, dan 1108 01:02:13,350 --> 01:02:18,590 jy gaan om te wil om in te gaan en werk se ouderdom net daardie persoon. 1109 01:02:18,590 --> 01:02:21,902 Vir 'n voorbeeld wat werk met ons eerste table-- 1110 01:02:21,902 --> 01:02:24,610 moenie bekommerd wees oor die skryf van al hierdie gebooie op dieselfde tyd. 1111 01:02:24,610 --> 01:02:27,640 Maar as jy het update af, dit sal goed wees vir hierdie deel wees, 1112 01:02:27,640 --> 01:02:29,790 want ons gaan gaan terug na die tafel. 1113 01:02:29,790 --> 01:02:33,920 >> So as ons gaan terug na die tafel, laat iets wat gebeur sê 1114 01:02:33,920 --> 01:02:38,480 is daar 'n aardbewing was of 'n fout lyn wat direk verdeel 1115 01:02:38,480 --> 01:02:39,920 deur New York City. 1116 01:02:39,920 --> 01:02:45,130 En ons wou almal werk wat in New York City gewoon het. 1117 01:02:45,130 --> 01:02:49,670 Hulle het almal om te skuif na Pennsylvania. 1118 01:02:49,670 --> 01:02:51,130 Dit is nie 'n tuisdorp. 1119 01:02:51,130 --> 01:02:53,180 Hulle het almal om te skuif na New Haven. 1120 01:02:53,180 --> 01:02:54,030 Daar gaan ons. 1121 01:02:54,030 --> 01:02:57,630 Sodat almal in New York beweeg na New Haven. 1122 01:02:57,630 --> 01:03:01,300 >> En so dit is iets wat redigering drie rye in die tabel. 1123 01:03:01,300 --> 01:03:04,716 Maar in SQL, kan jy doen wat in net een verklaring. 1124 01:03:04,716 --> 01:03:05,715 So terug te gaan ons te werk. 1125 01:03:05,715 --> 01:03:09,670 Laat my vinnige weer uitvee hierdie bord. 1126 01:03:09,670 --> 01:03:14,570 Wanneer ons praat oor opdatering, is daar 1127 01:03:14,570 --> 01:03:17,640 'n paar dele van die sintaksis wat die sleutel is. 1128 01:03:17,640 --> 01:03:19,770 Wel, al die sintaksis is die sleutel. 1129 01:03:19,770 --> 01:03:22,210 Maar die dinge wat in die groen is opsioneel. 1130 01:03:22,210 --> 01:03:25,680 Die wit vereis word, soos gedefinieerde name. 1131 01:03:25,680 --> 01:03:30,750 En die lig blou is dinge wat wissel afhangende van die tafel. 1132 01:03:30,750 --> 01:03:34,640 So dit is wat gaan aan met die kleur skema hier, daar. 1133 01:03:34,640 --> 01:03:40,250 >> So as ons wil net diegene rye werk van die mense wat in New York woon, 1134 01:03:40,250 --> 01:03:43,490 so wat ons sou doen as ons sê UPDATE? 1135 01:03:43,490 --> 01:03:46,320 So tafel is waar ons sit die naam van ons tafel. 1136 01:03:46,320 --> 01:03:49,170 Laat ons net die naam sê van ons tafel is een tafel. 1137 01:03:49,170 --> 01:03:52,515 So wil ons te werk tafel een. 1138 01:03:52,515 --> 01:03:57,470 En ons wil set-- wat wil ons te rig? 1139 01:03:57,470 --> 01:04:05,160 Wel ons wil sê, so column-- PHP behandel rye as unieke identifiseerders. 1140 01:04:05,160 --> 01:04:07,930 En dan kolomme is die verskillende velde 1141 01:04:07,930 --> 01:04:09,940 van daardie elemente van die databasis. 1142 01:04:09,940 --> 01:04:14,210 >> Dus is die eerste element van die databasis het 'n naam van Sam, supermoondheid van CS50, 1143 01:04:14,210 --> 01:04:16,210 en 'n tuisdorp van Milwaukee. 1144 01:04:16,210 --> 01:04:20,710 So as ons sê te stel, laat ons kyk na die parameters weer daardie stel neem. 1145 01:04:20,710 --> 01:04:23,880 Ons het kolom gelyk waarde. 1146 01:04:23,880 --> 01:04:27,290 So wil ons sommige sê column-- wat onthou 1147 01:04:27,290 --> 01:04:31,850 is 'n field-- ons wil 'n sien gebied gelyk aan iets nuuts. 1148 01:04:31,850 --> 01:04:42,340 >> So as ons net gesê update tabel 1 uiteengesit naam gelyk Elliot. 1149 01:04:42,340 --> 01:04:46,310 Kry 'n paar mense uit die nuwe afdeling op hierdie. 1150 01:04:46,310 --> 01:04:51,540 Maar as ons nou net gedoen het update tafel 1 stel naam gelyk Elliot, wat sou 1151 01:04:51,540 --> 01:04:55,530 die tafel lyk nadat dit? 1152 01:04:55,530 --> 01:04:56,410 Mense het 'n 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 >> GEHOOR: Alles in daardie ry sou Elliot geword. 1156 01:05:03,195 --> 01:05:04,570 Spreker: Alles wat ry? 1157 01:05:04,570 --> 01:05:06,067 GEHOOR: In die eerste ry. 1158 01:05:06,067 --> 01:05:07,150 Spreker: In die eerste ry? 1159 01:05:07,150 --> 01:05:09,724 Waarom die eerste ry? 1160 01:05:09,724 --> 01:05:10,890 Ek bedoel nie om op te tel op jou. 1161 01:05:10,890 --> 01:05:13,287 >> GEHOOR: Miskien alles in die hele tafel? 1162 01:05:13,287 --> 01:05:15,120 Spreker: Alles in die hele tafel, ja. 1163 01:05:15,120 --> 01:05:19,520 En dit is presies reg because-- ek was net om jou te help 'n bietjie 1164 01:05:19,520 --> 01:05:22,650 there-- omdat ons uitgelaat die opsionele WHERE klousule. 1165 01:05:22,650 --> 01:05:27,260 As jy nie die WAAR het klousule, wat hierdie opdrag sal doen 1166 01:05:27,260 --> 01:05:32,240 is dit sal werk met elke enkele ry in die tabel. 1167 01:05:32,240 --> 01:05:35,430 Naam sal almal se geword Elliott, basies, 1168 01:05:35,430 --> 01:05:37,360 wat Elliot is baie gelukkig oor. 1169 01:05:37,360 --> 01:05:40,070 Of Yanni, een van die twee. 1170 01:05:40,070 --> 01:05:42,490 Maar almal se naam sal verander. 1171 01:05:42,490 --> 01:05:47,880 >> So die manier gebruik ons ​​die WAAR clause-- en dit geld vir al die wheres 1172 01:05:47,880 --> 01:05:51,410 wat in elk van hierdie verskillende dinge. 1173 01:05:51,410 --> 01:05:54,380 So jy sal daardie stel sien het kolom gelyke waarde. 1174 01:05:54,380 --> 01:05:55,190 En so ook WAAR. 1175 01:05:55,190 --> 01:06:00,040 Maar dit is anders tipes state. 1176 01:06:00,040 --> 01:06:04,400 So het die kolom gelyk waarde in stel is in opdrag. 1177 01:06:04,400 --> 01:06:08,320 Soos ons sê ons wil naam gelyk aan Elliot stel. 1178 01:06:08,320 --> 01:06:15,390 Maar in die WAAR klousules, hierdie is stellings gelykheid. 1179 01:06:15,390 --> 01:06:20,410 So kom ons sê ons wou net om verander die naam van die persoon se Elliot 1180 01:06:20,410 --> 01:06:23,940 As hulle naam was Ryan, kom ons sê. 1181 01:06:23,940 --> 01:06:24,920 >> So wanneer ons sê 1182 01:06:24,920 --> 01:06:32,700 >> WAAR naam is gelyk aan Ryan, wat sou suksesvol enigste verandering 1183 01:06:32,700 --> 01:06:37,440 die name-- dat dit net verander die veld naam in rye 1184 01:06:37,440 --> 01:06:40,770 waar die veld naam is gelyk aan Ryan. 1185 01:06:40,770 --> 01:06:44,430 So as ons het verskeie mense vernoem Ryan, almal van hulle name 1186 01:06:44,430 --> 01:06:45,730 sou verander na Elliot. 1187 01:06:45,730 --> 01:06:48,169 >> Dit is soortgelyk aan die voorbeeld van of 'n fout lyn split 1188 01:06:48,169 --> 01:06:50,960 New York City en almal het om skuif na New Haven, die manier waarop ons kan 1189 01:06:50,960 --> 01:06:56,570 doen in een verklaring UPDATE Tabel1 SET tuisdorp = New Haven 1190 01:06:56,570 --> 01:07:00,210 waar tuisdorp gelyk New York City. 1191 01:07:00,210 --> 01:07:03,410 Dit is die krag van Die update verklaring. 1192 01:07:03,410 --> 01:07:10,530 Ons kan 'n aantal van te kies rye deur ware stellings 1193 01:07:10,530 --> 01:07:12,860 oor die velde in die rye. 1194 01:07:12,860 --> 01:07:19,510 Ons kan UPDATE Tabel1 stel nie sê name = Elliot WAAR ry = 1, 1195 01:07:19,510 --> 01:07:24,820 behalwe dat ons kan as ons sê ID = 1. 1196 01:07:24,820 --> 01:07:27,350 1197 01:07:27,350 --> 01:07:29,830 >> So ons gaan wees werk met gelykheid 1198 01:07:29,830 --> 01:07:32,830 velde, gelyke kolomme. 1199 01:07:32,830 --> 01:07:38,030 Maar met behulp van die ID veld is 'n manier om kies individuele rye spesifiek 1200 01:07:38,030 --> 01:07:43,210 omdat die ID veld is 'n unieke identifiseerder in 'n SQL databasis. 1201 01:07:43,210 --> 01:07:45,860 Dus, net soos die opdatering ry een, ID gelyk 1. 1202 01:07:45,860 --> 01:07:49,560 Opdatering ry twee, net verander ID nommer. 1203 01:07:49,560 --> 01:07:51,610 Maar die krag van die WAAR verklaring is dat ons 1204 01:07:51,610 --> 01:07:57,480 kan dinge werk op grond van wat hulle huidige waardes van sekere dinge. 1205 01:07:57,480 --> 01:07:58,155 Ja Elliot? 1206 01:07:58,155 --> 01:08:02,678 >> GEHOOR: En wat as jy wil aan- Weereens, dit is 'n ander vraag. 1207 01:08:02,678 --> 01:08:07,660 Maar my eerste vraag was, waar is dit gebeur? 1208 01:08:07,660 --> 01:08:09,130 Waar gaan ek die opdatering van hierdie? 1209 01:08:09,130 --> 01:08:11,100 Is dit in 'n PHP-kode? 1210 01:08:11,100 --> 01:08:13,379 >> Spreker: Waar jy werk, ja. 1211 01:08:13,379 --> 01:08:15,170 Ons gaan om te praat oor waar al hierdie 1212 01:08:15,170 --> 01:08:18,729 gebeur soort sodra ons gaan deur al die opdragte. 1213 01:08:18,729 --> 01:08:21,130 Maar wat jy nodig het om te weet nou basies 1214 01:08:21,130 --> 01:08:26,279 dat jou SQL databasis bestaan ​​as iets 1215 01:08:26,279 --> 01:08:30,090 verkry word deur die navraag funksie, wat CS50 omskryf. 1216 01:08:30,090 --> 01:08:33,800 So as jy die navraag funksie te gebruik, jy kan toegang tot hierdie tabel. 1217 01:08:33,800 --> 01:08:39,529 >> So jy sal stuur hierdie beveel om jou tafel in PHP lêers 1218 01:08:39,529 --> 01:08:41,420 deur die navraag funksie. 1219 01:08:41,420 --> 01:08:45,410 Jy kan ook speel rond met jou tafel direk. 1220 01:08:45,410 --> 01:08:49,050 En dit is die beste manier om toets hierdie soort van opdragte. 1221 01:08:49,050 --> 01:08:52,720 En ons gaan deur presies hoe om dit te doen in net 'n bietjie. 1222 01:08:52,720 --> 01:08:54,910 >> So dit is UPDATE opdrag. 1223 01:08:54,910 --> 01:08:57,939 En die res van die opdragte gaan soort van soortgelyke wees, 1224 01:08:57,939 --> 01:08:59,069 werk op soortgelyke dinge. 1225 01:08:59,069 --> 01:09:02,740 Die INSERT INTO is waarskynlik die mees anders UPDATE. 1226 01:09:02,740 --> 01:09:06,170 Ek gaan daar laat dit vir net 'n bietjie en werk hier. 1227 01:09:06,170 --> 01:09:10,215 So voeg in, sal jy sien tafel is nog steeds dieselfde. 1228 01:09:10,215 --> 01:09:17,010 Jy wil voeg in. 1229 01:09:17,010 --> 01:09:20,286 Die kapitalisering, SQL is kassensitief. 1230 01:09:20,286 --> 01:09:22,160 So jy hoef nie te kapitaliseer hierdie dinge. 1231 01:09:22,160 --> 01:09:27,960 Deur konvensie, die woorde in wit word gekapitaliseer. 1232 01:09:27,960 --> 01:09:31,590 Maar ek het ook kleurgekodeerde hulle. 1233 01:09:31,590 --> 01:09:34,390 Die enigste rede dat jy kapitaliseer diegene wanneer jy tik 1234 01:09:34,390 --> 01:09:36,609 is net om te beklemtoon dat diegene konstantes. 1235 01:09:36,609 --> 01:09:39,189 En so kan jy óf kyk die kapitalisasie of die feit 1236 01:09:39,189 --> 01:09:40,740 dat ek dit anders het gekleur. 1237 01:09:40,740 --> 01:09:44,910 >> Dus het ons voeg in het, laat se weer doen Tabel1. 1238 01:09:44,910 --> 01:09:45,930 Dit is almal op 'n lyn. 1239 01:09:45,930 --> 01:09:48,609 Ek is net te skei dit deur die verskillende state. 1240 01:09:48,609 --> 01:09:52,399 So moenie bekommerd wees oor die feit dat Tabel1 het dit op die tweede lyn. 1241 01:09:52,399 --> 01:09:56,130 >> So wil ons in te voeg IN Tabel1 paar waardes. 1242 01:09:56,130 --> 01:09:58,922 En jy sal sien die opsionele bietjie wat ek in 'n tweede om kry. 1243 01:09:58,922 --> 01:09:59,755 So ons het WAARDES. 1244 01:09:59,755 --> 01:10:03,640 1245 01:10:03,640 --> 01:10:08,100 >> So kom ons sê ons wil Andi voeg na ons tafel, want ons mis Andi. 1246 01:10:08,100 --> 01:10:09,390 Andi is siek. 1247 01:10:09,390 --> 01:10:12,490 So laat voeg Andi na ons tafel. 1248 01:10:12,490 --> 01:10:15,150 Onthou dat die ID-nommer word outomaties opgedateer. 1249 01:10:15,150 --> 01:10:17,320 Dus is die enigste velde ons hoef te bekommer oor 1250 01:10:17,320 --> 01:10:20,230 is die naam, supermoondheid, en tuisdorp. 1251 01:10:20,230 --> 01:10:23,660 >> En so het die manier waarop ons dit doen, kyk na ons sintaksis, is ons het 1252 01:10:23,660 --> 01:10:28,780 net 'n hakies, met komma geskei waardes, wat elk 1253 01:10:28,780 --> 01:10:29,890 is nie 'n waarde. 1254 01:10:29,890 --> 01:10:35,530 So as ons wou Andi voeg in ons tafel, al wat ons moet doen, is om reg Andi. 1255 01:10:35,530 --> 01:10:38,630 Wat is Andi se supermoondheid, mense in artikel Andi se? 1256 01:10:38,630 --> 01:10:45,406 1257 01:10:45,406 --> 01:10:47,545 Sy wil vlug, of wil spoed, of iets. 1258 01:10:47,545 --> 01:10:48,920 Wat doen ons reeds daar? 1259 01:10:48,920 --> 01:10:53,425 Ons het CS50, vlug, spoed, en sterkte. 1260 01:10:53,425 --> 01:10:54,850 >> GEHOOR: Tyd reis. 1261 01:10:54,850 --> 01:10:56,180 >> Spreker: Tyd reis, amazing. 1262 01:10:56,180 --> 01:11:04,280 Dus het ons Andi, tyd het reis, en haar tuisdorp. 1263 01:11:04,280 --> 01:11:05,530 Dit is 'n baie goeie vraag. 1264 01:11:05,530 --> 01:11:09,210 New York City, tensy iemand weet. 1265 01:11:09,210 --> 01:11:13,600 Almal is van New York is die les om weg te neem van vandag af. 1266 01:11:13,600 --> 01:11:17,710 >> So hierdie stelling sou voeg soos 'n vyfde agtereenvolgende 1267 01:11:17,710 --> 01:11:21,900 met die tyd te reis supermoondheid en 'n tuisdorp van New York City. 1268 01:11:21,900 --> 01:11:25,660 Maar die opsionele veld is basies 'n manier 1269 01:11:25,660 --> 01:11:30,090 presies wat kolomme spesifiseer jy wil om dinge in te voeg. 1270 01:11:30,090 --> 01:11:33,710 >> Die manier waarop ons dit doen nou, Andi, die tyd te reis, New York City, 1271 01:11:33,710 --> 01:11:38,150 gaan in die presiese volgorde van ons table-- naam supermoondheid, tuisdorp. 1272 01:11:38,150 --> 01:11:42,290 En as jy wou doen iets anders as dit, 1273 01:11:42,290 --> 01:11:44,970 soos sê jy het nie geweet iemand se supermoondheid, 1274 01:11:44,970 --> 01:11:47,660 soos hoe ek het nie geweet Andi se supermoondheid in die begin. 1275 01:11:47,660 --> 01:11:50,450 So al wat ek haar geken het, was noem en haar tuisdorp. 1276 01:11:50,450 --> 01:11:54,550 Wat ek kan doen is wat ek kon do-- Ek sal hierdie vinnige vee. 1277 01:11:54,550 --> 01:11:57,910 1278 01:11:57,910 --> 01:12:00,090 >> Ek wil net die kolomme te werk. 1279 01:12:00,090 --> 01:12:04,100 En dit is waar die opsionele kolom lys kom in die spel. 1280 01:12:04,100 --> 01:12:09,185 Ek wil net die naam en tuisdorp werk. 1281 01:12:09,185 --> 01:12:12,650 1282 01:12:12,650 --> 01:12:16,480 En dan sal ek sê WAARDES. 1283 01:12:16,480 --> 01:12:24,430 Ek sal doen Andi en New York City. 1284 01:12:24,430 --> 01:12:28,980 >> As ek die lys van kolomme het weggelaat en net hierdie twee dinge gedoen het, 1285 01:12:28,980 --> 01:12:32,450 waar sou New York City gegaan het? 1286 01:12:32,450 --> 01:12:35,900 Watter kolom sou New York City is geplaas in? 1287 01:12:35,900 --> 01:12:38,950 Mense het 'n idee? 1288 01:12:38,950 --> 01:12:40,160 Supermoondheid, presies. 1289 01:12:40,160 --> 01:12:41,890 >> So dit sal net gaan in orde is. 1290 01:12:41,890 --> 01:12:45,530 En sodra dit die einde van die bereik lys, sal dit net ophou te vul dinge in. 1291 01:12:45,530 --> 01:12:49,080 En die waardes wat dit sal hou in al die kolomme net NULL. 1292 01:12:49,080 --> 01:12:51,840 So, omdat ons gespesifiseerde naam en tuisdorp, 1293 01:12:51,840 --> 01:12:56,110 ons gaan ID 5 het, noem Andi, supermoondheid NULL. 1294 01:12:56,110 --> 01:12:58,750 So is 'n supermoondheid geïnitialiseerd waarde. 1295 01:12:58,750 --> 01:13:01,340 Jy sal nie noodwendig die dieselfde Valgrind foute as jy probeer 1296 01:13:01,340 --> 01:13:01,970 en toegang tot dit. 1297 01:13:01,970 --> 01:13:05,160 Alles sal goed wees zeroed uit, want NULL is nie 'n waarde in SQL. 1298 01:13:05,160 --> 01:13:06,780 Dit is 'n konstante. 1299 01:13:06,780 --> 01:13:08,980 En dan tuisdorp sal New York City. 1300 01:13:08,980 --> 01:13:11,860 So wat is die plaas in bevel. 1301 01:13:11,860 --> 01:13:13,610 Voordat ons beweeg, is daar twee opdragte. 1302 01:13:13,610 --> 01:13:19,060 Moenie mense enige vrae oor UPDATE oor te voeg in, oor SQL 1303 01:13:19,060 --> 01:13:21,556 algemeen voor ons beweeg op ons finale stukkies? 1304 01:13:21,556 --> 01:13:25,500 1305 01:13:25,500 --> 01:13:26,910 Mense voel goed, baie goed. 1306 01:13:26,910 --> 01:13:27,410 Hou daarvan. 1307 01:13:27,410 --> 01:13:29,480 So laat ons praat oor kies. 1308 01:13:29,480 --> 01:13:33,445 Gaan sloot UPDATE hier. 1309 01:13:33,445 --> 01:13:35,720 >> En kies gaan baie soortgelyk te wees. 1310 01:13:35,720 --> 01:13:38,790 Die doel van die SELECT, Doel in die lewe se SELECT 1311 01:13:38,790 --> 01:13:45,910 is om jou 'n klomp van die kolomme gee wat voldoen aan sekere voorwaardes. 1312 01:13:45,910 --> 01:13:48,230 En wanneer ek sê bevredig sekere voorwaardes, 1313 01:13:48,230 --> 01:13:50,800 jou gedagtes mag onmiddellik gaan terug na dat waar klousule 1314 01:13:50,800 --> 01:13:52,090 wat opgekom het in UPDATE. 1315 01:13:52,090 --> 01:13:54,880 En dat klousule presies daar in die kies. 1316 01:13:54,880 --> 01:14:06,020 >> As ons nie die WAAR klousule en ons sê SELECT naam 1317 01:14:06,020 --> 01:14:16,490 hometown-- gespel dat 'n bietjie wrong-- naam tuisdorp UIT Tabel1. 1318 01:14:16,490 --> 01:14:19,690 As ons sê net dat, wat KIES gaan om te gee ons is dit 1319 01:14:19,690 --> 01:14:23,730 gaan ons 'n gee double-- 'n tafel, eerder. 1320 01:14:23,730 --> 01:14:27,450 'N dubbele verskeidenheid as ons dink oor in PHP sintuie. 1321 01:14:27,450 --> 01:14:33,239 Maar dit is net gaan vir ons 'n gee dubbel verskeidenheid van twee columns-- naam 1322 01:14:33,239 --> 01:14:33,780 en tuisdorp. 1323 01:14:33,780 --> 01:14:36,400 1324 01:14:36,400 --> 01:14:38,130 En dit sal ID ignoreer. 1325 01:14:38,130 --> 01:14:41,310 En dit sal supermoondheid te ignoreer. 1326 01:14:41,310 --> 01:14:44,696 En dit sal ons net elke gee enkele ry van daardie tafel. 1327 01:14:44,696 --> 01:14:46,570 So as ons net ingevoeg Andi, sal ons Andi. 1328 01:14:46,570 --> 01:14:48,605 En ons sal die oorspronklike vier. 1329 01:14:48,605 --> 01:14:53,720 As hulle het is opgedateer, wat sal weerspieël word, ensovoorts, ensovoorts. 1330 01:14:53,720 --> 01:14:56,520 >> So, dit is omdat ons het nie die WHERE klousule. 1331 01:14:56,520 --> 01:14:59,200 Maar ons kan dit gebruik in presies dieselfde manier waarop ons dit gebruik in UPDATE. 1332 01:14:59,200 --> 01:15:05,310 As ons wil net 'n tafel van die name en super magte van die mense wat 1333 01:15:05,310 --> 01:15:13,430 in New York, kan ons 'n verklaring uit te voer soos SELECT naam superpower-- 1334 01:15:13,430 --> 01:15:27,190 Ek gaan net om that-- verlof van Tabel1 WAAR tuisdorp = New York City. 1335 01:15:27,190 --> 01:15:33,370 >> So dit gaan om te wys dat jy kan kry heeltemal verskillende kolomme, 1336 01:15:33,370 --> 01:15:36,920 en dan sit kolomme dat jy nie selfs om terug in die WHERE klousule. 1337 01:15:36,920 --> 01:15:39,200 Ons wil nie eens die tuisdorp van almal. 1338 01:15:39,200 --> 01:15:41,920 Maar ons wil die naam en die supermoondheid van mense 1339 01:15:41,920 --> 01:15:43,817 wie tuisdorp is New York City. 1340 01:15:43,817 --> 01:15:45,650 Sodat is iets wat ons kan doen met die WAAR 1341 01:15:45,650 --> 01:15:49,112 klousule is wat ons kan hanteer kolomme dat ons nie noodwendig wil terug. 1342 01:15:49,112 --> 01:15:52,320 In dieselfde manier te werk, kan ons hanteer met kolomme wat ons doen nie noodwendig 1343 01:15:52,320 --> 01:15:53,270 wil werk. 1344 01:15:53,270 --> 01:15:58,890 Ons kan die stad almal werk wie se naam is Sam, byvoorbeeld. 1345 01:15:58,890 --> 01:16:02,080 Ons kan die stad te werk elkeen wie se ID-nommer is 2. 1346 01:16:02,080 --> 01:16:04,960 Dus net werk die stad van die tweede ry 1347 01:16:04,960 --> 01:16:08,220 waar ons nie te doen het met nodig is om die algemene vraag. 1348 01:16:08,220 --> 01:16:13,264 >> En verwyder is, soos jy wil verwag nie, verwyder uit Tabel1. 1349 01:16:13,264 --> 01:16:14,930 En dan het ons 'n ander waar klousule. 1350 01:16:14,930 --> 01:16:17,940 So kan ons sê WAAR ID = 1. 1351 01:16:17,940 --> 01:16:18,950 Verwyder die eerste ry. 1352 01:16:18,950 --> 01:16:23,240 En DELETE sal altyd 'n ry te verwyder, of dit sal 'n aantal rye verwyder. 1353 01:16:23,240 --> 01:16:26,990 Verwyder uit tabel WHERE tuisdorp = New York City 1354 01:16:26,990 --> 01:16:28,740 sal almal in New York City te verwyder. 1355 01:16:28,740 --> 01:16:30,985 Dit is as daar 'n skielike tragiese plaag 1356 01:16:30,985 --> 01:16:33,360 en jy wou net om te verwyder almal van die tafel wat 1357 01:16:33,360 --> 01:16:35,760 geleef het in 'n sekere stad wat getref is deur die plaag. 1358 01:16:35,760 --> 01:16:38,050 Mag hulle rus in vrede. 1359 01:16:38,050 --> 01:16:43,849 >> Dit is die vier SQL opdragte wat jy nodig het om te gebruik. 1360 01:16:43,849 --> 01:16:45,390 Jy kan nie eens nodig gebruik hulle almal. 1361 01:16:45,390 --> 01:16:47,690 Maar dit is die vier dat CS50 jou verwag 1362 01:16:47,690 --> 01:16:53,630 gemaklik met gaan in wees beide quiz 1 en ook pset7 en pset8. 1363 01:16:53,630 --> 01:16:55,820 >> Daar is weer net die tafel. 1364 01:16:55,820 --> 01:16:58,930 In hierdie een, Roy se supermoondheid het is opgedateer om laserstrale, wat 1365 01:16:58,930 --> 01:17:00,880 is 'n voorbeeld het ek nie gebruik nie. 1366 01:17:00,880 --> 01:17:05,480 Ek weet nie watter een Roy verkies nie, maar sterkte. 1367 01:17:05,480 --> 01:17:07,670 Roy het 'n supermoondheid van krag. 1368 01:17:07,670 --> 01:17:09,090 Katherine het nie maak dit vandag. 1369 01:17:09,090 --> 01:17:10,260 Dit is jammer. 1370 01:17:10,260 --> 01:17:11,260 Maar sy het super spoed. 1371 01:17:11,260 --> 01:17:13,780 1372 01:17:13,780 --> 01:17:14,670 >> Wel dit was PHP. 1373 01:17:14,670 --> 01:17:19,410 Voordat ons praat oor MVC, doen iemand vrae oor PHP hê? 1374 01:17:19,410 --> 01:17:23,864 Nou SQL of PHP as jy skielik kom met 'n vraag oor PHP? 1375 01:17:23,864 --> 01:17:27,560 1376 01:17:27,560 --> 01:17:28,460 Groot. 1377 01:17:28,460 --> 01:17:29,920 Alle reg, ons is al dan stel. 1378 01:17:29,920 --> 01:17:33,660 >> So praat 'n bietjie oor model oog leiers, 1379 01:17:33,660 --> 01:17:38,770 laat ons gaan terug na 'n paar van die dinge in pset7. 1380 01:17:38,770 --> 01:17:42,470 So, wat model oog kontroleerder is-- ek is nie 1381 01:17:42,470 --> 01:17:45,660 gaan my veranderinge stoor om aan te meld want ek heeltemal afgeslag het. 1382 01:17:45,660 --> 01:17:49,220 Maar basies het ons twee afsonderlike dinge aan die gang. 1383 01:17:49,220 --> 01:17:52,390 Ons het 'n openbare gids wat bevat 1384 01:17:52,390 --> 01:17:56,460 die kode wat gaan uitgevoer word en die web bladsye wat besoek sal word. 1385 01:17:56,460 --> 01:17:58,780 En ons het ook hierdie menings gids. 1386 01:17:58,780 --> 01:18:01,780 En menings bevat templates. 1387 01:18:01,780 --> 01:18:04,390 >> Dit is wat die funksie render-- ons gesien die lewer 1388 01:18:04,390 --> 01:18:08,240 funksie in 'n klomp van die PHP-kode dat CS50 het reeds geskryf vir jou, 1389 01:18:08,240 --> 01:18:10,550 wat neem in sekere parameters. 1390 01:18:10,550 --> 01:18:14,510 Wat dit code doen is dit gaan in uitsig, 1391 01:18:14,510 --> 01:18:18,000 wat stelle is soos prewritten HTML-kode, 1392 01:18:18,000 --> 01:18:20,720 en dit is die inbring waardes in sekere plekke. 1393 01:18:20,720 --> 01:18:23,990 Dit is hoe wanneer jy gaan in CS50 Finansies, 1394 01:18:23,990 --> 01:18:25,760 dieselfde kop is op elke bladsy. 1395 01:18:25,760 --> 01:18:28,130 Dieselfde footer is op elke bladsy. 1396 01:18:28,130 --> 01:18:31,880 Dit is omdat die manier dat lewer werke is dit sal 1397 01:18:31,880 --> 01:18:36,720 outomaties pleister in daardie kop en kyker wat jy kan vind in uitsig. 1398 01:18:36,720 --> 01:18:41,400 >> Ons kan eintlik gaan in kop, en kyk, dit is 'n HTML-lêer met 'n kop. 1399 01:18:41,400 --> 01:18:43,280 Dit het 'n paar style. 1400 01:18:43,280 --> 01:18:48,450 Jy hoef nie te kyk na CSS vir pset7 as jy nie wil nie. 1401 01:18:48,450 --> 01:18:50,560 Maar jy kan verander hulle as wat jy wil, maak 1402 01:18:50,560 --> 01:18:53,470 jou Finansies kyk 'n bietjie anders. 1403 01:18:53,470 --> 01:18:57,560 >> Dit het 'n paar PHP in die kop 'n bietjie om te sien 1404 01:18:57,560 --> 01:19:01,240 indien daar is 'n ander titel dit moet in hierdie kop sit. 1405 01:19:01,240 --> 01:19:04,300 Maar net 'n paar ander skrifte, en skakels, en ander dinge. 1406 01:19:04,300 --> 01:19:08,700 Hoof eindig, liggaam begin, en oops, ons het hierdie vreemde bietjie einde bietjie. 1407 01:19:08,700 --> 01:19:14,730 En daar is 'n div, net soos 'n vormlose soort element 1408 01:19:14,730 --> 01:19:17,120 wat 'n idee van die middel. 1409 01:19:17,120 --> 01:19:22,450 >> En dan wanneer ons sien footer, ons het die einde van 'n div. 1410 01:19:22,450 --> 01:19:25,000 Ons het 'n onderste, wat Die teks van die voet is. 1411 01:19:25,000 --> 01:19:26,770 Einde van div, einde van die liggaam, einde van HTML. 1412 01:19:26,770 --> 01:19:29,070 >> So, wat maak is doen is lewer is 'n soort 1413 01:19:29,070 --> 01:19:33,150 van lap om kop, 'n verskillende PHP lêer 1414 01:19:33,150 --> 01:19:37,110 sal die werklike dinge wat bevat jy sal sien, soos jou tafel van die aandele 1415 01:19:37,110 --> 01:19:39,690 As jy wil koop of verkoop van aandele. 1416 01:19:39,690 --> 01:19:41,480 En dan sal dit voeg in die voet. 1417 01:19:41,480 --> 01:19:44,890 En die model oog kontroleerder idee is dat ons 1418 01:19:44,890 --> 01:19:49,590 wil skei hoe dinge lyk van die kode. 1419 01:19:49,590 --> 01:19:53,420 Dit is wat ons wil hê dat die frontend skei en die agterkant, waar die frontend is 1420 01:19:53,420 --> 01:20:00,440 die dinge wat die gebruiker sien, die lekker visuals-- HTML, CSS, dinge soos dat 1421 01:20:00,440 --> 01:20:02,320 beelde, ensovoorts. 1422 01:20:02,320 --> 01:20:05,780 En die agterkant is PHP. 1423 01:20:05,780 --> 01:20:07,710 Dit is die kode wat jy skryf. 1424 01:20:07,710 --> 01:20:10,240 Dit is waar die kode wat is doen werklike bedrywighede. 1425 01:20:10,240 --> 01:20:12,400 Dit is wanneer jy die toevoeging n voorraad om jou tafel 1426 01:20:12,400 --> 01:20:14,890 wanneer jy koop en verkoop, dit is backend. 1427 01:20:14,890 --> 01:20:20,210 >> En ons kan, soos jy gesien het, insluitend PHP direk in HTML. 1428 01:20:20,210 --> 01:20:23,210 So, wat ons kon gedoen het vir hierdie opdrag is net ' 1429 01:20:23,210 --> 01:20:26,200 'n HTML-lêer vir elke bladsy, soos login. 1430 01:20:26,200 --> 01:20:30,260 En dan op die bladsy, net het 'n groot blok van PHP-kode, 1431 01:20:30,260 --> 01:20:33,822 insluitende al die kode wat daardie bladsy spesifiek nodig het. 1432 01:20:33,822 --> 01:20:35,780 En dan kan ons ' gedoen vir portefeulje. 1433 01:20:35,780 --> 01:20:40,250 Ons kon al die koop gedoen en verkoop binne die individuele bladsye. 1434 01:20:40,250 --> 01:20:43,680 >> Maar omdat ons die lewering afsonderlik van waar 1435 01:20:43,680 --> 01:20:46,660 ons skryf die backend kode, kan ons maklik 1436 01:20:46,660 --> 01:20:52,660 verander hoe dinge lyk sonder verander elke enkele lêer. 1437 01:20:52,660 --> 01:20:55,460 Ons doen dinge soos voeg net 'n nuwe div aan die onderkant 1438 01:20:55,460 --> 01:21:00,720 of-- Hallo Ek verander die voet. 1439 01:21:00,720 --> 01:21:03,710 Jy kan net dinge doen soos dit. 1440 01:21:03,710 --> 01:21:07,250 Maar ook, kan jy verander die hele visuele uitleg 1441 01:21:07,250 --> 01:21:09,290 sonder dat dit wat is gaan in die backend. 1442 01:21:09,290 --> 01:21:12,000 En jy kan die verander hele backend en nog steeds 1443 01:21:12,000 --> 01:21:13,900 het dit lyk net soos voorheen. 1444 01:21:13,900 --> 01:21:14,400 Dit 1445 01:21:14,400 --> 01:21:16,170 >> Is die idee van model oog kontroleerder. 1446 01:21:16,170 --> 01:21:19,992 En dit is eintlik 'n opgelê paradigma in sommige van die programmeertale 1447 01:21:19,992 --> 01:21:21,700 jy dalk wil om te gebruik vir finale projekte. 1448 01:21:21,700 --> 01:21:25,100 As jy iOS ontwikkeling te doen, hulle het sienings, 1449 01:21:25,100 --> 01:21:29,120 en dit is wat jy sien op die iPhone, en dan backend as soos 'n aparte ding. 1450 01:21:29,120 --> 01:21:31,260 >> Jy kan dink oor 'n bietjie. 1451 01:21:31,260 --> 01:21:35,190 Daar is 'n baie binaries in rekenaarwetenskap, wat is snaaks, 1452 01:21:35,190 --> 01:21:37,270 want alles is in binêre. 1453 01:21:37,270 --> 01:21:38,550 Ek het nie beplan nie. 1454 01:21:38,550 --> 01:21:41,590 Dit was 'n woordspeling onbedoelde. 1455 01:21:41,590 --> 01:21:43,860 Ja, woordspeling nie bedoel is. 1456 01:21:43,860 --> 01:21:49,070 >> Maar soos .H lêers en .c lêers, daar is 'n baie skeiding van die dinge wat ons 1457 01:21:49,070 --> 01:21:49,900 dalk nie nodig. 1458 01:21:49,900 --> 01:21:54,330 So kan ons net die h lêers te wysig, of iemand kan sien net 'n .H lêer en weet 1459 01:21:54,330 --> 01:21:57,650 presies die funksies wat in die .c lêer sonder om noodwendig te weet 1460 01:21:57,650 --> 01:21:58,870 hul implementering. 1461 01:21:58,870 --> 01:22:02,800 Hierdie idee van die skeiding van komponente wat afhanklik is van mekaar 1462 01:22:02,800 --> 01:22:06,990 maar kan soort van mekaar toegang deur verskillende kanale, verby 1463 01:22:06,990 --> 01:22:09,310 veranderlikes, net sluit state, dinge 1464 01:22:09,310 --> 01:22:14,440 soos wat hierdie beginsel help om programme te skep 1465 01:22:14,440 --> 01:22:17,080 dat meer maklik kan wees geredigeer deur verskeie mense, 1466 01:22:17,080 --> 01:22:20,440 kan nie meer maklik verander word of verander op 'n groot skaal, 1467 01:22:20,440 --> 01:22:24,880 en is makliker om te ontfout in 'n baie maniere. 1468 01:22:24,880 --> 01:22:28,254 >> Regtig vinnig, ek het 'n paar wenke vir pset7, 1469 01:22:28,254 --> 01:22:31,420 wat ek volle skerm sodat jy nie sal maak net te kyk na the-- tip tip tippee. 1470 01:22:31,420 --> 01:22:33,964 1471 01:22:33,964 --> 01:22:35,130 Daar is nie so baie tips. 1472 01:22:35,130 --> 01:22:38,060 >> Maar ek genoem PHP is moeilik om te ontfout. 1473 01:22:38,060 --> 01:22:39,290 Dubbel en trippel nagaan. 1474 01:22:39,290 --> 01:22:41,550 As jou kode is net nie vertoon op die bladsy, 1475 01:22:41,550 --> 01:22:46,240 dit is waarskynlik 'n PHP fout, jammer. 1476 01:22:46,240 --> 01:22:48,570 >> Jy hoef nooit te kyk na CSS as jy nie wil nie. 1477 01:22:48,570 --> 01:22:52,150 Maar sodra jy klaar is, kan dit wees 'n lekker bietjie pret ding om net in te gaan 1478 01:22:52,150 --> 01:22:54,770 en mors met die CSS parameters. 1479 01:22:54,770 --> 01:22:58,700 CSS en HTML is 'n voorbeeld van 'n model oog kontroleerder styl ding ook, reg? 1480 01:22:58,700 --> 01:23:02,150 Jy kan styl tags binnekant van HTML-elemente. 1481 01:23:02,150 --> 01:23:04,800 Maar as jy soort van uitkontraktering hulle CSS, 1482 01:23:04,800 --> 01:23:08,180 hulle is makliker om te wysig en speel rond met, en om pret te hê met. 1483 01:23:08,180 --> 01:23:10,816 >> Behandel CS50 helper funksies as black boxes. 1484 01:23:10,816 --> 01:23:12,940 Jy hoef nie te weet presies wat lewer doen, 1485 01:23:12,940 --> 01:23:16,770 maar glo dit altyd die regte ding afhangende van wat jy dit slaag, 1486 01:23:16,770 --> 01:23:17,690 dinge soos hierdie. 1487 01:23:17,690 --> 01:23:21,040 En ek sou aanbeveel kyk David se walkthrough, 1488 01:23:21,040 --> 01:23:24,490 gaan deur al die dinge, nie net die todos, 1489 01:23:24,490 --> 01:23:26,960 maar jy regtig kan hanteer hierdie swart bokse. 1490 01:23:26,960 --> 01:23:29,280 Moenie in hierdie gaan funksies op soek na foute. 1491 01:23:29,280 --> 01:23:33,510 >> En verwelkom die terugkeer van ons heerser Zamyla. 1492 01:23:33,510 --> 01:23:34,010 Groot. 1493 01:23:34,010 --> 01:23:40,430 >> Is daar enige finale vrae voordat Ons soort van weiering vir die dag? 1494 01:23:40,430 --> 01:23:42,610 Ek nog lewe? 1495 01:23:42,610 --> 01:23:44,700 Groot. 1496 01:23:44,700 --> 01:23:47,120 Hi Livestream mense. 1497 01:23:47,120 --> 01:23:47,620 Groot. 1498 01:23:47,620 --> 01:23:50,260 Is daar meer vrae? 1499 01:23:50,260 --> 01:23:50,760 Geen? 1500 01:23:50,760 --> 01:23:52,884 >> En dan dink ek ons ​​is goed om te gaan vir vandag. 1501 01:23:52,884 --> 01:23:55,550 Ek sal hou om 'n bietjie daarna as mense het vrae 1502 01:23:55,550 --> 01:23:57,480 hulle was bang om te vra oor die stroom. 1503 01:23:57,480 --> 01:23:59,790 Maar anders, het 'n goeie dag. 1504 01:23:59,790 --> 01:24:01,933