1 00:00:00,000 --> 00:00:05,720 2 00:00:05,720 --> 00:00:07,620 >> DOUG LLOYD: Så i vår video på PHP syntax, 3 00:00:07,620 --> 00:00:10,480 Vi pratade mycket om hur PHP kan användas på kommandoraden 4 00:00:10,480 --> 00:00:13,620 att köra program på ett sätt som vi är ganska bekant med från C. 5 00:00:13,620 --> 00:00:15,370 Men som jag nämnde också i att video, PHP 6 00:00:15,370 --> 00:00:19,572 utvecklades från början till genomföra webbprogrammering, webbplatser. 7 00:00:19,572 --> 00:00:21,780 Och så i den här videon är vi kommer att tala om hur vi 8 00:00:21,780 --> 00:00:23,890 använda PHP i webbutveckling sammanhang. 9 00:00:23,890 --> 00:00:26,360 >> Vi vet redan, från vår video på HTML, 10 00:00:26,360 --> 00:00:29,820 att webbplatser är byggda ut ur en uppsättning HTML-taggar 11 00:00:29,820 --> 00:00:32,850 som semantiskt definiera strukturen för en webbsida. 12 00:00:32,850 --> 00:00:35,910 Men webbplatser som är byggd med ren HTML 13 00:00:35,910 --> 00:00:39,510 lider av en mycket, mycket allvarlig begränsning. 14 00:00:39,510 --> 00:00:42,690 >> Och för att illustrera denna begränsning, låt oss betrakta följande. 15 00:00:42,690 --> 00:00:45,665 Så nu vill jag bygga en webbsida att när användaren besöker det, 16 00:00:45,665 --> 00:00:49,760 det ger mig den nuvarande tid i Cambridge, Mass., 17 00:00:49,760 --> 00:00:52,620 visar det till den senaste minuten. 18 00:00:52,620 --> 00:00:57,910 Om jag gjorde detta just nu, Jag kan säga ungefär så här. 19 00:00:57,910 --> 00:01:01,330 Tiden i Cambridge-- så jag har HTML-taggar, huvud taggar, rubriktaggar, 20 00:01:01,330 --> 00:01:04,610 kropp tags-- strömmen tid i Cambridge är 14:08, 21 00:01:04,610 --> 00:01:06,690 utskrift av militära tid. 22 00:01:06,690 --> 00:01:11,390 >> Vad händer om det nu 2:09, 14:09? 23 00:01:11,390 --> 00:01:16,470 Bra hittills, med HTML, har jag att gå in och ändra det till 14:09. 24 00:01:16,470 --> 00:01:19,390 Och sedan en minut senare, Jag måste ändra det igen. 25 00:01:19,390 --> 00:01:22,132 Och sedan en minut senare, Jag måste ändra det igen. 26 00:01:22,132 --> 00:01:24,590 Och som ni kan föreställa er, det är troligen den värsta jobbet någonsin. 27 00:01:24,590 --> 00:01:29,420 Du är webmaster för en webbsida, och varje minut, 24 timmar om dygnet, 28 00:01:29,420 --> 00:01:35,970 Du behöver uppdatera den aktuella tiden med manuellt öppna time.html och ändra 29 00:01:35,970 --> 00:01:41,750 bara att kodsträng att säga aktuell tid i timmar och minuter. 30 00:01:41,750 --> 00:01:45,850 Det är förmodligen inte en mycket bra användning av våra resurser, 31 00:01:45,850 --> 00:01:48,880 både mänskliga och beräknings. 32 00:01:48,880 --> 00:01:51,297 >> Webbplatser som alla är HTML är helt statisk. 33 00:01:51,297 --> 00:01:53,630 Det enda sättet du kan uppdatera innehåll, som vi just har sett, 34 00:01:53,630 --> 00:01:56,339 är att öppna dem källa manuellt filer, redigera dem, och spara dem. 35 00:01:56,339 --> 00:01:58,088 Och sedan när användaren uppdaterar sidan, 36 00:01:58,088 --> 00:02:01,080 eller besöker sidan för första tid, kommer de att få det senaste innehållet. 37 00:02:01,080 --> 00:02:03,970 Men bara för att vi har redigeras manuellt det. 38 00:02:03,970 --> 00:02:07,980 >> Om vi ​​börjar blanda lite PHP där, vår kod kan få en mycket mer flexibel. 39 00:02:07,980 --> 00:02:11,940 Och vi kan ha ett sätt för våra sidor att vara dynamisk, eller uppdatera sig, 40 00:02:11,940 --> 00:02:15,360 utan att kräva våra fattiga webmaster i föregående exempel 41 00:02:15,360 --> 00:02:16,662 att manuellt uppdatera saker. 42 00:02:16,662 --> 00:02:17,870 De kan göra det automatiskt. 43 00:02:17,870 --> 00:02:19,130 Vi behöver inte ingripa. 44 00:02:19,130 --> 00:02:20,410 Vi kan få lite sömn. 45 00:02:20,410 --> 00:02:24,850 Vilket förmodligen är en bra sak om du gör en hel del webbprogrammering. 46 00:02:24,850 --> 00:02:28,360 >> Så i CS50 IDE, vi kör en webbserver som heter Apache. 47 00:02:28,360 --> 00:02:35,250 Det är ett mycket vanligt, open source web server system. 48 00:02:35,250 --> 00:02:37,320 Detta system har kapacitet att tolka 49 00:02:37,320 --> 00:02:41,260 PHP, som kommer att vara användbart om du vill göra något PHP-programmering. 50 00:02:41,260 --> 00:02:45,230 >> Och i CS50 IDE, har vi ett kommando för att göra detta mycket lätt att göra, 51 00:02:45,230 --> 00:02:47,280 apache50 starta. 52 00:02:47,280 --> 00:02:49,445 Och då snedstreck bana, snedstreck till snedstreck 53 00:02:49,445 --> 00:02:53,350 dir, det är bara ett riktigt vanligt sätt att anger vad du har angett här 54 00:02:53,350 --> 00:02:56,510 är en väg till en viss katalog som du 55 00:02:56,510 --> 00:03:00,800 vill vara roten webbplats, eller rotsidan, 56 00:03:00,800 --> 00:03:05,430 eller mapp som din webbserver kommer att börja undersöka filer och servera 57 00:03:05,430 --> 00:03:07,850 dem till kunder som efterfrågar dem. 58 00:03:07,850 --> 00:03:12,110 Så låt oss pop över till CS50 IDE, bara för att visa, verkligen snabb, hur det fungerar. 59 00:03:12,110 --> 00:03:30,930 60 00:03:30,930 --> 00:03:36,240 >> Så här i CS50 IDE, jag befinner mig i en katalog som heter Vecka Zero Nine. 61 00:03:36,240 --> 00:03:38,890 Och jag har two-- jag har avrättades en LS kommandot bara 62 00:03:38,890 --> 00:03:41,910 ovan för att visa er att jag har två kataloger i här, PHP, 63 00:03:41,910 --> 00:03:46,410 vilket är den uppsättning filer som jag använde i PHP syntax video, och sedan PHP-bana, 64 00:03:46,410 --> 00:03:49,380 som är den uppsättning filer som jag skulle vilja använda i den här videon. 65 00:03:49,380 --> 00:03:53,480 >> Och jag skulle vilja börja en webbserver instans 66 00:03:53,480 --> 00:03:59,089 med innehållet i PHP-webbmappen eftersom filerna som serveras upp. 67 00:03:59,089 --> 00:04:00,130 Så vad ska jag göra? 68 00:04:00,130 --> 00:04:05,710 Jag kommer att skriva apache50 utrymme start, utrymme PHP, streck banan. 69 00:04:05,710 --> 00:04:08,100 Det är vägen till katalogen från där jag är för närvarande. 70 00:04:08,100 --> 00:04:09,127 Då jag trycker på Retur. 71 00:04:09,127 --> 00:04:10,960 Det kommer att göra en lite saker här. 72 00:04:10,960 --> 00:04:14,030 Och sedan kommer att säga, Apache startats. 73 00:04:14,030 --> 00:04:20,689 Din webbplats är nu tillgänglig at-- och sedan finns det webbadressen till sajten. 74 00:04:20,689 --> 00:04:21,730 Så vad ska jag göra? 75 00:04:21,730 --> 00:04:26,234 Jag kommer att snabbt kopiera detta. 76 00:04:26,234 --> 00:04:28,900 Och jag kommer att öppna up-- och Jag zooma ut lite här-- 77 00:04:28,900 --> 00:04:31,570 Jag kommer att öppna upp en ny flik i Chrome. 78 00:04:31,570 --> 00:04:34,320 Och jag kommer att besöka denna URL. 79 00:04:34,320 --> 00:04:35,299 >> Jag kommer att slå Enter. 80 00:04:35,299 --> 00:04:36,090 Det kommer att läsa in. 81 00:04:36,090 --> 00:04:37,510 Och jag ska zooma ut igen. 82 00:04:37,510 --> 00:04:41,350 Och vi kan se här är innehållet i min PHP webbkatalog. 83 00:04:41,350 --> 00:04:45,290 >> Så nu vad som i grund och botten händer här är min instans av CS50 IDE 84 00:04:45,290 --> 00:04:49,620 tjänar upp dessa filer till vem som helst som begär dem. 85 00:04:49,620 --> 00:04:51,620 Och under loppet av den här videon kommer vi sorterar av 86 00:04:51,620 --> 00:04:55,400 ta en titt på ett gäng av dessa olika filer i sitt sammanhang. 87 00:04:55,400 --> 00:04:57,614 >> För att testa att din Apache servern fungerar, 88 00:04:57,614 --> 00:04:59,780 som i allmänhet kommer vara fallet i CS50 IDE, 89 00:04:59,780 --> 00:05:02,696 men om du gör det mer allmänt, och du börjar bygga din egen webb 90 00:05:02,696 --> 00:05:04,990 servrar, det är en riktigt vanligaste typen av analog till 91 00:05:04,990 --> 00:05:08,500 "Hej världen", som vanligtvis används för PHP webbutveckling. 92 00:05:08,500 --> 00:05:12,855 Vilket är att ha en fil bestående av just detta code-- 93 00:05:12,855 --> 00:05:18,247 en PHP avgränsare set med PHP info, parenteser, semikolon emellan. 94 00:05:18,247 --> 00:05:20,580 Vilket egentligen är en speciell PHP-funktionen som talar om 95 00:05:20,580 --> 00:05:23,970 vilken version av PHP du kör. 96 00:05:23,970 --> 00:05:26,850 >> Så i CS50 IDE, har jag filen finns bara 97 00:05:26,850 --> 00:05:28,680 att visa dig vad det skulle se ut. 98 00:05:28,680 --> 00:05:32,860 Så jag ser på mitt index från min PHP instans. 99 00:05:32,860 --> 00:05:35,870 Min Apache-instansen körs innehållet i PHP-Web. 100 00:05:35,870 --> 00:05:39,290 Och jag har en fil här kallas info.php. 101 00:05:39,290 --> 00:05:41,164 >> Jag kommer att klicka på det, zooma ut. 102 00:05:41,164 --> 00:05:43,080 Detta är vad du tänker att se, ganska mycket. 103 00:05:43,080 --> 00:05:45,729 Detta är bara talar om för mig att min Apache servern fungerar. 104 00:05:45,729 --> 00:05:48,270 Och detta är, tydligen, version av PHP som jag kör. 105 00:05:48,270 --> 00:05:51,590 Detta är min analog till "Hej världen." 106 00:05:51,590 --> 00:05:53,070 >> Så jag vet saker är i drift. 107 00:05:53,070 --> 00:05:54,150 Så vi är bra att gå. 108 00:05:54,150 --> 00:05:55,730 Vi kan gå härifrån. 109 00:05:55,730 --> 00:05:57,790 >> Så låt oss återkomma som tids exempel vi var 110 00:05:57,790 --> 00:06:01,950 talar om med våra fattiga webmaster som var tvungen att uppdatera sidan hela tiden. 111 00:06:01,950 --> 00:06:05,020 Detta kan vara en fix för hur Jag skulle genomföra saker 112 00:06:05,020 --> 00:06:08,080 så att webmaster inte måste hålla uppdatera tiden. 113 00:06:08,080 --> 00:06:10,270 Det skulle bara typ av ske automatiskt. 114 00:06:10,270 --> 00:06:13,710 >> Den nere, HTML, är det ganska likartade, med ett undantag. 115 00:06:13,710 --> 00:06:16,720 Men här har jag fått lite PHP på toppen. 116 00:06:16,720 --> 00:06:19,940 Jag har, som synes, kallade detta funktion date_default_timezone_set. 117 00:06:19,940 --> 00:06:22,106 >> Och vi talar inte om alla dessa funktioner i CS50, 118 00:06:22,106 --> 00:06:24,670 eftersom PHP har förmodligen tiotusentals. 119 00:06:24,670 --> 00:06:27,540 Det kan vara lite av en överdrift, men det kanske inte. 120 00:06:27,540 --> 00:06:29,490 Det har fått en hel del funktioner inbyggda i. 121 00:06:29,490 --> 00:06:33,290 Och så detta är en funktion som synes sätter min tidszon som US / Eastern, 122 00:06:33,290 --> 00:06:36,320 vilket är den tidszon som jag är närvarande för att göra den här videon. 123 00:06:36,320 --> 00:06:38,430 >> Då ska jag ringa ett samtal till Funktionen kallas, datum. 124 00:06:38,430 --> 00:06:43,850 Och, uppenbarligen, jag lagra HANS av något som kallas, tid. 125 00:06:43,850 --> 00:06:45,320 Så vad är det som händer här? 126 00:06:45,320 --> 00:06:48,040 >> Tja, i princip vad är händer är, jag ringer ett samtal 127 00:06:48,040 --> 00:06:51,650 till viss server som kommer att berätta vad tiden är närvarande. 128 00:06:51,650 --> 00:06:56,150 Och jag omvandla den till ett format timmar, minuter, sekunder. 129 00:06:56,150 --> 00:07:00,540 Och anledningen till det är kapital H är detta kommer att ge mig 24 timmars tid, inte 12 130 00:07:00,540 --> 00:07:02,362 timmars tid, vilket skulle vara gemener tim. 131 00:07:02,362 --> 00:07:04,570 Och jag bara lagra att i en variabel som kallas, tid. 132 00:07:04,570 --> 00:07:07,028 Så att den andra raden av PHP där, anrop till funktionen, 133 00:07:07,028 --> 00:07:09,037 Hittills är bara få vissa sträng, som är 134 00:07:09,037 --> 00:07:12,120 kommer att ge mig den dag, och tid, och en massa annan information. 135 00:07:12,120 --> 00:07:16,480 Och det första argumentet där, att HIS, bara extrahera viktig del 136 00:07:16,480 --> 00:07:20,614 att jag bryr mig om i det här exemplet, vilket är en timme, minut och sekund. 137 00:07:20,614 --> 00:07:22,030 Så det är allt som händer. 138 00:07:22,030 --> 00:07:23,562 Så jag lagra den i en variabel $ tid. 139 00:07:23,562 --> 00:07:25,270 Och sedan ner på längst ned där, jag 140 00:07:25,270 --> 00:07:28,980 har det förkortning för skriva ut den aktuella tiden. 141 00:07:28,980 --> 00:07:32,050 Så jag ska bara skriva ut reda på vad klockan är. 142 00:07:32,050 --> 00:07:37,220 >> Så låt oss ta en titt på detta CS50 IDE och se hur vi är nu 143 00:07:37,220 --> 00:07:40,002 spara som webmaster en massa problem. 144 00:07:40,002 --> 00:07:42,570 Okej, så här är jag igen tillbaka i rotkatalogen 145 00:07:42,570 --> 00:07:45,040 min Apache instans. 146 00:07:45,040 --> 00:07:51,585 Och jag har en fil här kallas time.php. 147 00:07:51,585 --> 00:07:53,559 Jag kommer bara att klicka på den. 148 00:07:53,559 --> 00:07:55,850 Och jag ska rulla upp, eftersom vi zoomat in ganska långt. 149 00:07:55,850 --> 00:07:57,257 Den aktuella tiden är 14:20:34. 150 00:07:57,257 --> 00:07:59,090 Så jag gör det timmar, minuter och sekunder. 151 00:07:59,090 --> 00:08:01,910 Och jag kan uppdatera och få ny tid. 152 00:08:01,910 --> 00:08:02,420 --41. 153 00:08:02,420 --> 00:08:07,240 Jag kommer att uppdatera sidan och få ny tid, 44, 46, 47. 154 00:08:07,240 --> 00:08:10,490 >> Så jag är uppenbarligen inte ändra någonting själv. 155 00:08:10,490 --> 00:08:11,720 Jag här uppdatera sidan. 156 00:08:11,720 --> 00:08:13,711 Så jag kan inte vara tillbaka där redigera den. 157 00:08:13,711 --> 00:08:15,710 Och jag lovar dig, jag vet inte har några förbunds 158 00:08:15,710 --> 00:08:18,230 som redigerar filen för min räkning på sidan. 159 00:08:18,230 --> 00:08:21,260 >> Jag bara använda det PHP-funktionen, tid, för att generera tid för mig 160 00:08:21,260 --> 00:08:22,340 automatiskt. 161 00:08:22,340 --> 00:08:24,800 Så att även om jag sover, och min webbserver körs, 162 00:08:24,800 --> 00:08:28,884 användaren som besöker den sidan är fortfarande kommer att få exakt den aktuella tiden. 163 00:08:28,884 --> 00:08:29,800 Så det är ganska bra. 164 00:08:29,800 --> 00:08:33,609 Jag har gjort min webbplats mer dynamisk med inte alltför mycket PHP-kod. 165 00:08:33,609 --> 00:08:36,650 Det var bara två rader kod och sedan en liten bit av en utskrifts uttalande. 166 00:08:36,650 --> 00:08:38,441 Och redan jag har en mycket mer dynamisk webbplats 167 00:08:38,441 --> 00:08:42,750 än det första exemplet vi såg i början av videon. 168 00:08:42,750 --> 00:08:46,660 >> Så minns från videon på PHP syntax att när PHP tolken körs 169 00:08:46,660 --> 00:08:50,000 vårt program, ignorerar det allt det är inte inne i PHP avgränsare, 170 00:08:50,000 --> 00:08:51,500 spotta ut det. 171 00:08:51,500 --> 00:08:54,410 I detta exempel, vad den saken att det var spotta ut var HTML. 172 00:08:54,410 --> 00:08:58,080 Och det betyder att jag kan nu blanda HTML och PHP tillsammans. 173 00:08:58,080 --> 00:09:01,920 Eftersom tolken kommer bara ignorera HTML och bokstavligen utsignal. 174 00:09:01,920 --> 00:09:04,140 Vilket är bra, eller hur? 175 00:09:04,140 --> 00:09:06,100 >> Eftersom förmodligen, Vid slutet av dagen, 176 00:09:06,100 --> 00:09:08,360 Jag vill att min webbplats till vara konstruerad av HTML. 177 00:09:08,360 --> 00:09:12,880 Så att alla webbläsare kan tolka det eller förstå HTML på sidan 178 00:09:12,880 --> 00:09:17,270 och göra det som något som vi kan faktiskt förstå som människor. 179 00:09:17,270 --> 00:09:19,430 Och jag kan bara använda PHP för de delar av min webbplats 180 00:09:19,430 --> 00:09:23,390 det kräver dynamik, som kräver mig att ha saker som uppdateras hela tiden. 181 00:09:23,390 --> 00:09:26,630 Den statiska informationen kan förbli densamma. 182 00:09:26,630 --> 00:09:27,540 >> OK, så det är bra. 183 00:09:27,540 --> 00:09:28,540 Men varför skulle jag göra det? 184 00:09:28,540 --> 00:09:30,400 Varför skulle jag blandar HTML och PHP? 185 00:09:30,400 --> 00:09:33,850 Jag kan bara skriva ut alla HTML, med hjälp av PHP utskriftsfunktionen. 186 00:09:33,850 --> 00:09:35,870 Varför får jag inte göra det? 187 00:09:35,870 --> 00:09:37,100 Tänk på det för en sekund. 188 00:09:37,100 --> 00:09:41,220 >> Varför, när jag kunde bara skriva out-- jag kunde ha rader av PHP som bara säga, 189 00:09:41,220 --> 00:09:43,841 utskrifts HTML-tagg, skrivhuvudet. 190 00:09:43,841 --> 00:09:44,840 Varför får jag inte göra det? 191 00:09:44,840 --> 00:09:48,230 Varför jag blanda PHP och HTML? 192 00:09:48,230 --> 00:09:50,080 >> Tja, om du tror om det för en sekund. 193 00:09:50,080 --> 00:09:52,824 PHP, har tolken att tolka vad den ser. 194 00:09:52,824 --> 00:09:54,990 Och så det kommer att ha att utföra en rad kod. 195 00:09:54,990 --> 00:09:56,450 Skriv ut HTML. 196 00:09:56,450 --> 00:09:57,700 Skriv ut öppna huvud tag. 197 00:09:57,700 --> 00:09:58,969 Skriv ut öppna rubriktaggen. 198 00:09:58,969 --> 00:10:00,760 Det kommer att behöva genomföra och tolka 199 00:10:00,760 --> 00:10:02,671 att varje enskild steg på vägen. 200 00:10:02,671 --> 00:10:04,670 Varför inte bara låta tolk bara släta över 201 00:10:04,670 --> 00:10:06,878 saker man inte förstår och göra det automatiskt? 202 00:10:06,878 --> 00:10:11,365 Det kommer att spara mig en hel del tid att blanda min HTML och min PHP tillsammans. 203 00:10:11,365 --> 00:10:16,220 >> Och så det är därför vi inte bara öppna PHP avgränsare 204 00:10:16,220 --> 00:10:19,450 och sedan bara skriva ut hela innehållet på vår sida som en gigantisk PHP 205 00:10:19,450 --> 00:10:24,330 Ring till funktionen, Print, och sedan nära PHP avgränsare och vi är klara. 206 00:10:24,330 --> 00:10:27,620 Så det är därför vi blandar upp dem tillsammans. 207 00:10:27,620 --> 00:10:32,345 >> Hittills har vi inte sett alltför mycket av skillnad från allmän PHP syntax. 208 00:10:32,345 --> 00:10:33,720 Det har varit ganska enkelt. 209 00:10:33,720 --> 00:10:35,553 Vi har redan sett frågetecken, lika. 210 00:10:35,553 --> 00:10:39,012 Vi såg ett par nya funktionsanrop, men ingenting riktigt snygga händer. 211 00:10:39,012 --> 00:10:40,720 Låt oss kanske göra saker lite snyggare. 212 00:10:40,720 --> 00:10:44,360 Vad händer om vi vill överföra information mellan olika PHP-filer, 213 00:10:44,360 --> 00:10:47,280 så att kanske kan användaren lämna information till mig. 214 00:10:47,280 --> 00:10:50,230 Och då kunde jag göra något med det på en annan sida. 215 00:10:50,230 --> 00:10:52,990 >> Så PHP har stöd för något som kallas Super Global 216 00:10:52,990 --> 00:10:55,297 Variabler, vilket låter ganska häftigt. 217 00:10:55,297 --> 00:10:57,130 De är egentligen bara jätte associativa arrayer 218 00:10:57,130 --> 00:10:59,900 som hjälper genomföra detta funktionalitet passerar 219 00:10:59,900 --> 00:11:05,010 information mellan PHP-filer som är befintliga på vår webbserver. 220 00:11:05,010 --> 00:11:07,760 >> Den första av dessa super globals kallas $ _GET. 221 00:11:07,760 --> 00:11:10,140 Och det är förmodligen enklaste att förstå. 222 00:11:10,140 --> 00:11:12,430 Vad händer med $ _GET? 223 00:11:12,430 --> 00:11:16,240 Tja, i princip, är användaren kommer att skriva till extra information 224 00:11:16,240 --> 00:11:18,390 i slutet av URL: er. 225 00:11:18,390 --> 00:11:21,460 Och vad de skriver, förutsatt det är formaterad på ett visst sätt 226 00:11:21,460 --> 00:11:25,830 kallas en frågesträng, som är bara en uppsättning av nyckelpar värde separeras 227 00:11:25,830 --> 00:11:27,810 av et-tecken. 228 00:11:27,810 --> 00:11:32,362 Dessa nyckelpar värde kommer att vara lagras i en $ _GET associativ array. 229 00:11:32,362 --> 00:11:34,070 Och från vår video på PHP syntax, vi vet 230 00:11:34,070 --> 00:11:40,080 hur man arbetar med associativa arrayer redan. 231 00:11:40,080 --> 00:11:44,090 Så här är ett exempel på vissa PHP, där kanske jag 232 00:11:44,090 --> 00:11:50,180 extrahera alla nyckelpar värde att användaren levereras i webbadressen. 233 00:11:50,180 --> 00:11:51,970 Så jag har min öppet PHP avgränsare. 234 00:11:51,970 --> 00:11:53,410 Jag har en foreach slinga. 235 00:11:53,410 --> 00:11:57,410 Jag iterera över Super Globalt Array kallas $ _GET. 236 00:11:57,410 --> 00:12:00,160 >> Och jag vill kunna hänvisa till både nyckeln och värdet. 237 00:12:00,160 --> 00:12:02,410 Och jag bara skriva ut dem ut, var och en på till synes 238 00:12:02,410 --> 00:12:03,780 sin egen punkt tag här. 239 00:12:03,780 --> 00:12:07,620 Jag skriva ut några HTML och interpolering av värdena 240 00:12:07,620 --> 00:12:12,900 av nyckel och värde i det uttalandet. 241 00:12:12,900 --> 00:12:16,980 >> Så låt oss ta en titt på hur detta skulle faktiskt arbetar på vår IDE. 242 00:12:16,980 --> 00:12:18,980 Och kanske detta kommer att hjälpa illustrerar en liten bit 243 00:12:18,980 --> 00:12:21,880 vad GET faktiskt gör. 244 00:12:21,880 --> 00:12:23,610 Så jag är tillbaka här i min webbroten. 245 00:12:23,610 --> 00:12:25,318 Och jag kommer att zooma in ett lite att visa dig 246 00:12:25,318 --> 00:12:28,620 att jag har en fil som heter, get1.php. 247 00:12:28,620 --> 00:12:31,830 >> Så låt oss titta på get1.php. 248 00:12:31,830 --> 00:12:36,600 Och jag ser inte något innehåll. 249 00:12:36,600 --> 00:12:38,390 Det är konstigt, eller hur? 250 00:12:38,390 --> 00:12:39,740 Tja, inte riktigt faktiskt. 251 00:12:39,740 --> 00:12:42,030 Eftersom jag inte har lämnat något i webbadressen. 252 00:12:42,030 --> 00:12:46,270 Jag ska get1.php, men jag inte levererar några nyckelpar värde 253 00:12:46,270 --> 00:12:47,450 som en del av mitt frågesträng. 254 00:12:47,450 --> 00:12:50,510 Så låt oss lägga till en frågesträng och se vad den här filen kan göra. 255 00:12:50,510 --> 00:12:53,040 >> Till att börja en frågesträng du skriv bara frågetecken. 256 00:12:53,040 --> 00:13:00,820 Då kanske jag ska säga name = Doug & år = 2015. 257 00:13:00,820 --> 00:13:02,914 Och då kommer jag trycker på Retur. 258 00:13:02,914 --> 00:13:04,080 Nu märker vad som händer. 259 00:13:04,080 --> 00:13:05,480 Jag är fortfarande i get1.php. 260 00:13:05,480 --> 00:13:08,445 Men nu har jag levererat nyckelpar värde, och jag är 261 00:13:08,445 --> 00:13:14,940 skriva ut dem på egen hand paragraph-- namn, Doug-- år 2015. 262 00:13:14,940 --> 00:13:17,970 Det är precis den kod vi bara såg på bilden för en stund sedan. 263 00:13:17,970 --> 00:13:22,290 >> Och om jag vill kanske lägga till en annan nyckelvärdet paret, och class = CS50. 264 00:13:22,290 --> 00:13:25,325 265 00:13:25,325 --> 00:13:27,580 Nu har jag en annan nyckelvärde par som är utskrivna 266 00:13:27,580 --> 00:13:30,025 När jag återkomma webbadressen igen. 267 00:13:30,025 --> 00:13:31,900 Nu kanske detta inte är formaterad fruktansvärt bra. 268 00:13:31,900 --> 00:13:33,660 Så jag har en annan version av get.php. 269 00:13:33,660 --> 00:13:36,350 Det är get2.php. 270 00:13:36,350 --> 00:13:39,070 >> Skillnaden i detta en är att jag har CSS-fil, 271 00:13:39,070 --> 00:13:41,690 och det format saker lite mer bra för mig. 272 00:13:41,690 --> 00:13:43,940 Det är kanske inte den mest vackra CSS i världen. 273 00:13:43,940 --> 00:13:45,650 Men det är bara ett annat sätt att göra det. 274 00:13:45,650 --> 00:13:52,840 Så jag kan fortfarande få tillgång till mina variabler med hjälp av $ _GET. 275 00:13:52,840 --> 00:13:56,610 Och i detta fall, jag är bara typ av gör CSS lite mer fantasi. 276 00:13:56,610 --> 00:13:58,360 Och om vi pop över till min IDE för en sekund, 277 00:13:58,360 --> 00:14:06,870 Jag ska visa dig i min PHP katalog här, get2.php. 278 00:14:06,870 --> 00:14:10,010 Vi kommer att öppna upp, en del HTML här. 279 00:14:10,010 --> 00:14:13,220 Tydligen jag bindning i det CSS-fil jag pratade om. 280 00:14:13,220 --> 00:14:14,570 Jag öppnar ett bord tag. 281 00:14:14,570 --> 00:14:15,970 Och så här är min foreach loop. 282 00:14:15,970 --> 00:14:18,450 >> Här är det, vad jag visade på bilden innan. 283 00:14:18,450 --> 00:14:21,007 Den enda skillnaden är att jag har denna nyckel och värde CSS 284 00:14:21,007 --> 00:14:22,340 styling att jag söker det. 285 00:14:22,340 --> 00:14:25,622 Men det är allt jag gör är jag iterera över $ _GET att få alla 286 00:14:25,622 --> 00:14:26,580 av nyckelparen value. 287 00:14:26,580 --> 00:14:28,890 >> Och jag skriva ut dem som tabellen. 288 00:14:28,890 --> 00:14:33,230 Och, uppenbarligen, jag formatering nycklarna i ett sätt, med 00:14:40,057 Så uppenbarligen som gäller för vissa klass väljare i min CSS-filen GET.CSS. 290 00:14:40,057 --> 00:14:42,890 Och, uppenbarligen, jag skriva ut mina värderingar ett helt annat sätt. 291 00:14:42,890 --> 00:14:45,530 Vilket är ganska mycket vad vi såg här, där 292 00:14:45,530 --> 00:14:47,710 våra värderingar trycktes med en blå bakgrund, 293 00:14:47,710 --> 00:14:49,969 och våra nycklar trycktes med en gul bakgrund. 294 00:14:49,969 --> 00:14:52,010 Så det är hur jag får dessa olika stilar. 295 00:14:52,010 --> 00:14:54,054 Eftersom jag använder olika CSS-klasser. 296 00:14:54,054 --> 00:14:55,470 Men det är ganska mycket det för GET. 297 00:14:55,470 --> 00:14:58,380 Som jag bara extrahera information. 298 00:14:58,380 --> 00:15:01,000 Och i detta fall, jag är bara skriva ut det till skärmen. 299 00:15:01,000 --> 00:15:04,310 Jag får ut av webbadressen, och det är vad GET gör för oss. 300 00:15:04,310 --> 00:15:06,470 >> Ser du en möjlig Problemet här om? 301 00:15:06,470 --> 00:15:11,720 Varför skulle vi kanske inte vill använda $ _GET? 302 00:15:11,720 --> 00:15:15,440 Tänk om, kanske, jag gjorde den här frågan? 303 00:15:15,440 --> 00:15:18,000 --to get3.php, som jag har inte på min IDE. 304 00:15:18,000 --> 00:15:19,640 Det är bara en hypotetisk fil. 305 00:15:19,640 --> 00:15:22,187 Men märker här som tydligen passerar mitt lösenord i. 306 00:15:22,187 --> 00:15:23,770 Och kanske mitt lösenord är pinsamt. 307 00:15:23,770 --> 00:15:28,070 Eller kanske jag inte vill att folk ska vet vad mitt lösenord är rätt. 308 00:15:28,070 --> 00:15:33,140 >> Om jag passerar det though-- om jag använder den $ _GET metoden, vad som händer är, 309 00:15:33,140 --> 00:15:34,970 som kommer att vara i webbadressen. 310 00:15:34,970 --> 00:15:39,890 Så några angripare kanske kunna se vad jag gör. 311 00:15:39,890 --> 00:15:42,040 Jag kan passera dem känslig information. 312 00:15:42,040 --> 00:15:43,310 Eller kanske är det inte ens en angripare. 313 00:15:43,310 --> 00:15:45,790 Kanske är det bara din vän som står över axeln. 314 00:15:45,790 --> 00:15:47,650 Och nu känner till lösenordet ditt Facebook-konto. 315 00:15:47,650 --> 00:15:49,483 >> Och kanske de inte skulle göra något med det. 316 00:15:49,483 --> 00:15:53,749 Men om ditt lösenord var lämnats via $ _GET till Facebook, 317 00:15:53,749 --> 00:15:55,290 Nu vet de ditt Facebook-lösenord. 318 00:15:55,290 --> 00:15:59,000 Eftersom det är just där i URL När du har gjort lämna information. 319 00:15:59,000 --> 00:16:01,887 >> Och så kanske det är inte den bästa sätt att passera känslig information. 320 00:16:01,887 --> 00:16:04,470 Det är ett bra sätt att överföra information att vi inte särskilt 321 00:16:04,470 --> 00:16:05,886 bryr sig om att vara för känslig. 322 00:16:05,886 --> 00:16:09,347 Eftersom GET är ganska snabbt, relativt de andra super globals 323 00:16:09,347 --> 00:16:10,430 vi kommer att prata om. 324 00:16:10,430 --> 00:16:13,330 Men kanske inte det bästa verktyget för känslig information. 325 00:16:13,330 --> 00:16:15,990 >> För att vi kanske vill använda något som kallas $ _POST, 326 00:16:15,990 --> 00:16:18,560 som är en annan Super global variabel. 327 00:16:18,560 --> 00:16:20,750 Det är en annan associativ array. 328 00:16:20,750 --> 00:16:23,240 Så det fungerar ganska mycket exakt samma som GET. 329 00:16:23,240 --> 00:16:26,850 Utom, i stället för att utvinna information från webbadressen 330 00:16:26,850 --> 00:16:29,870 det gör något genom HTTP-huvuden. 331 00:16:29,870 --> 00:16:32,080 Så minns från vår video på HTTP, vi pratade 332 00:16:32,080 --> 00:16:34,850 om hur webbläsare, servrar, och klienter kommunicera. 333 00:16:34,850 --> 00:16:38,070 Och informationen skickas tillbaka och tillbaka i HTTP-rubrikerna. 334 00:16:38,070 --> 00:16:43,330 >> Med $ _POST, är informationen ofta skickas via dessa HTTP-rubriker. 335 00:16:43,330 --> 00:16:49,770 Och vi ska oftast ser $ _POST i samband med att lämna in HTML-formulär. 336 00:16:49,770 --> 00:16:52,390 Du kan fortfarande använda HTML-formulär att lämna saker för att få. 337 00:16:52,390 --> 00:16:56,120 Men de är oftast används i samband med POST. 338 00:16:56,120 --> 00:17:00,280 >> Så här är ett exempel på ett HTML-formulär. 339 00:17:00,280 --> 00:17:06,750 Nu har vi sett dessa innan, men vi har inte sett denna del action = "post.php". 340 00:17:06,750 --> 00:17:10,756 Så när vi pratade om former i inom ramen för HTML, hade jag en Skicka-knapp. 341 00:17:10,756 --> 00:17:13,630 Och om ni minns, skulle jag klickar på Skicka och sedan sidan bara uppdateras, 342 00:17:13,630 --> 00:17:14,660 inte göra någonting. 343 00:17:14,660 --> 00:17:18,250 >> I det här fallet, jag lämnar in vad jag skriver på detta formulär, 344 00:17:18,250 --> 00:17:20,750 till en PHP-fil som heter post.php. 345 00:17:20,750 --> 00:17:25,810 Och, uppenbarligen, hur jag gör det i detta formulär med metoden POST. 346 00:17:25,810 --> 00:17:29,040 Så varje bit av information att jag skriver in detta formulär 347 00:17:29,040 --> 00:17:31,470 kommer att lämnas in genom HTTP-rubriker. 348 00:17:31,470 --> 00:17:36,440 >> Det kommer att vara tillgänglig i post.php, eftersom det är effekten av min form. 349 00:17:36,440 --> 00:17:39,811 Det kommer att vara tillgänglig genom att gå till $ _POST. 350 00:17:39,811 --> 00:17:42,310 Och tydligen, hur jag kan får vid varje enskilt element 351 00:17:42,310 --> 00:17:44,765 med det associativ array är med detta attribut, 352 00:17:44,765 --> 00:17:48,130 Namn attributet våra ingångs taggar. 353 00:17:48,130 --> 00:17:53,540 >> Så tydligen kan jag säga $ _POST kvadrat konsoler namn för att få vad användaren 354 00:17:53,540 --> 00:17:55,440 skrivs i det första fältet. 355 00:17:55,440 --> 00:18:01,030 Och $ _POST lösenord, av pw snarare, att komma åt vad användaren har skrivit 356 00:18:01,030 --> 00:18:03,650 i det andra fältet. 357 00:18:03,650 --> 00:18:06,414 >> Så låt oss ta en titt på detta över i CS50 IDE. 358 00:18:06,414 --> 00:18:08,330 Så här är vi, och jag ska zooma in för en sekund. 359 00:18:08,330 --> 00:18:12,380 Och vi har en fil som heter post.html. 360 00:18:12,380 --> 00:18:13,690 Jag klickar på post.html. 361 00:18:13,690 --> 00:18:16,300 Högst upp här har jag en mycket enkel webbformulär. 362 00:18:16,300 --> 00:18:18,750 Det är den form vi såg bara på bilden för en sekund sedan. 363 00:18:18,750 --> 00:18:25,610 >> Jag kan skriva, Doug, och jag kan skriver mitt lösenord, som vi alla 364 00:18:25,610 --> 00:18:27,340 vet är squadgoals. 365 00:18:27,340 --> 00:18:30,100 Och jag kommer att drabba Skicka. 366 00:18:30,100 --> 00:18:32,290 Och tydligen, att underkastar sig post.php. 367 00:18:32,290 --> 00:18:33,810 Och jag tydligen du skriver. 368 00:18:33,810 --> 00:18:36,490 Så jag bli av med all säkerhet att POST ger mig genom att bara skriva ut 369 00:18:36,490 --> 00:18:37,720 användarnamn och lösenord. 370 00:18:37,720 --> 00:18:38,960 >> Användarens namn är Doug. 371 00:18:38,960 --> 00:18:40,810 Användarens lösenord är squadgoals. 372 00:18:40,810 --> 00:18:42,480 Hur gjorde jag det? 373 00:18:42,480 --> 00:18:44,800 Tja, pop över till IDE igen för en sekund. 374 00:18:44,800 --> 00:18:51,340 Vi kommer att rulla ner för att ta en titt på post.php, som var 375 00:18:51,340 --> 00:18:54,040 den åtgärd som jag brukade skicka här. 376 00:18:54,040 --> 00:18:55,739 Det var effekten av min HTML-formulär. 377 00:18:55,739 --> 00:18:56,780 Och det är allt jag gör. 378 00:18:56,780 --> 00:19:01,370 Användarens namn är, och jag är utskrift ut innehållet i $ _POST "name". 379 00:19:01,370 --> 00:19:04,660 Och sedan användarens lösenord är $ _POST "password". 380 00:19:04,660 --> 00:19:08,920 Så jag fick denna information genom att skicka in HTML-formulär. 381 00:19:08,920 --> 00:19:13,790 Och jag kan nu extrahera den med hjälp av $ _POST eftersom metoden jag används för att sända 382 00:19:13,790 --> 00:19:17,470 data med denna form var metoden POST. 383 00:19:17,470 --> 00:19:20,640 >> Nu är det nog inte så great-- jag tänker 384 00:19:20,640 --> 00:19:24,510 att gå tillbaka för en andra till vår uppsättning här-- 385 00:19:24,510 --> 00:19:30,120 det är nog inte så bra om jag lämna information med POST, 386 00:19:30,120 --> 00:19:32,532 som är skenbart säkrare. 387 00:19:32,532 --> 00:19:34,740 Det är nog inte så stor Om jag gör det och sedan 388 00:19:34,740 --> 00:19:36,470 skriva ut användarens lösenord. 389 00:19:36,470 --> 00:19:38,540 Det är tänkt att vara säkrare. 390 00:19:38,540 --> 00:19:40,870 >> OK, men det är inte helt säkert. 391 00:19:40,870 --> 00:19:42,910 Och så i denna lilla snippet här vill jag 392 00:19:42,910 --> 00:19:46,410 att bara göra er uppmärksamma på vissa datasäkerhet problem, bara något 393 00:19:46,410 --> 00:19:51,200 att tänka på när du är bearbetning eller användning av Internet. 394 00:19:51,200 --> 00:19:53,890 Detta är bara något att överväga. 395 00:19:53,890 --> 00:19:57,980 >> Jag sa ju att informationen är skickas via HTTP-huvuden 396 00:19:57,980 --> 00:19:59,724 när du använder metoden POST. 397 00:19:59,724 --> 00:20:01,390 Vilket innebär att de inte är helt säkra. 398 00:20:01,390 --> 00:20:05,610 De är svårare att hitta än använder metoden GET, där 399 00:20:05,610 --> 00:20:06,882 det är bara rätt i webbadressen. 400 00:20:06,882 --> 00:20:08,340 Men det finns fortfarande ett sätt att hitta den. 401 00:20:08,340 --> 00:20:10,423 Och jag vill bara visa detta så att du kanske 402 00:20:10,423 --> 00:20:12,940 börja tänka på detta som du arbetar, eller med hjälp av 403 00:20:12,940 --> 00:20:14,560 webbplatser och inlämnande lösenord och kanske med hjälp av 404 00:20:14,560 --> 00:20:16,518 samma lösenord i en mängd olika platser. 405 00:20:16,518 --> 00:20:22,060 Vet att det är fortfarande är faktiskt ganska lätt att ta reda någons lösenord. 406 00:20:22,060 --> 00:20:25,190 >> Och så här, jag kommer att gå till post2.html. 407 00:20:25,190 --> 00:20:28,850 Och skillnaden med post2.html och post2.php är ganska subtila. 408 00:20:28,850 --> 00:20:31,420 Skillnaden är bara att jag inte skriva ut 409 00:20:31,420 --> 00:20:33,520 lösenordet när jag skicka formuläret. 410 00:20:33,520 --> 00:20:35,260 >> Så jag kommer att skriva in, Doug. 411 00:20:35,260 --> 00:20:38,365 Och jag kommer att skriva i, squadgoals, även 412 00:20:38,365 --> 00:20:40,770 även om vi vet att det är lösenordet. 413 00:20:40,770 --> 00:20:42,540 Innan jag lämnar in bildar dock, jag kommer 414 00:20:42,540 --> 00:20:45,864 att öppna upp utvecklarverktyg, bara för att visa dig vad som kommer att hända här. 415 00:20:45,864 --> 00:20:47,530 Så i Chrome, jag bara kommer att slå F12. 416 00:20:47,530 --> 00:20:54,120 417 00:20:54,120 --> 00:20:57,230 Och det kommer att öppna upp min Developer Tools på höger sida. 418 00:20:57,230 --> 00:20:59,480 Jag har inte skickat in formuläret ännu. 419 00:20:59,480 --> 00:21:02,680 Nu ska jag slå in på min form. 420 00:21:02,680 --> 00:21:05,370 Och tydligen gjorde jag en ringa till, eller jag gjorde en förfrågan 421 00:21:05,370 --> 00:21:07,620 att post2.php, vilket är vettigt. 422 00:21:07,620 --> 00:21:10,040 Jag kommer att klicka på den. 423 00:21:10,040 --> 00:21:13,802 >> Sedan hit, jag kommer att klicka på rubriker. 424 00:21:13,802 --> 00:21:15,410 Det finns massor av saker som pågår här. 425 00:21:15,410 --> 00:21:21,310 Men om jag bläddra ner till mycket botten, meddelande rätt there-- min kalender 426 00:21:21,310 --> 00:21:25,180 har blockerat den för en second-- rätt där på mycket nedre hörn, 427 00:21:25,180 --> 00:21:27,386 name-- Doug, pw-- squadgoals. 428 00:21:27,386 --> 00:21:30,010 Så även om jag använder POST metoden, som är säkrare, 429 00:21:30,010 --> 00:21:33,570 bara vara medveten om att när du gör det, du fortfarande överföra information 430 00:21:33,570 --> 00:21:34,430 via HTTP. 431 00:21:34,430 --> 00:21:36,770 Och det kan fortfarande vara hittades av en motståndare. 432 00:21:36,770 --> 00:21:39,270 Det är bara något vi ska att ha att göra med riktigt. 433 00:21:39,270 --> 00:21:41,980 Kanske finns det några sätt att kryptera vår lösenord innan vi skickar dem över, 434 00:21:41,980 --> 00:21:44,410 vilket skulle vara en bättre, vilket jag inte gör här. 435 00:21:44,410 --> 00:21:47,010 >> Men bara vara medveten om att POST metod har begränsningar också. 436 00:21:47,010 --> 00:21:49,801 Det är en förbättring jämfört med GET i termer av att vara direkt synliga. 437 00:21:49,801 --> 00:21:51,280 Men det är inte en fullständig lösning. 438 00:21:51,280 --> 00:21:53,280 Så här är ett exempel på en snabb hemma motion 439 00:21:53,280 --> 00:21:56,350 som du kan använda för att få lite öva att arbeta med PHP. 440 00:21:56,350 --> 00:21:58,300 Skapa följande par av webbsidor. 441 00:21:58,300 --> 00:22:00,960 Den första bör bara vara en mycket enkel bildar med ett enda fält och ett in 442 00:22:00,960 --> 00:22:01,460 knapp. 443 00:22:01,460 --> 00:22:04,070 Så mycket liknar vad vi bara gjorde med post.html. 444 00:22:04,070 --> 00:22:07,450 >> Och sedan den andra fil du bör skapa 445 00:22:07,450 --> 00:22:11,687 är en fil, en PHP-fil, som väntar ingång via POST, 446 00:22:11,687 --> 00:22:14,770 och baserat på vad användaren har skrivit, som du kan anta kommer att vara ett heltal. 447 00:22:14,770 --> 00:22:16,160 Du behöver inte göra något felkontroll eller liknande. 448 00:22:16,160 --> 00:22:18,284 Du kan anta att användaren kommer att skriva ett heltal, 449 00:22:18,284 --> 00:22:22,230 eller något som liknar en tolkas av PHP som ett heltal, i denna form. 450 00:22:22,230 --> 00:22:24,790 Du vill bara att skapa ett n med n multiplikationstabellen. 451 00:22:24,790 --> 00:22:28,480 >> Så om användaren lämnar 10, vill vi har en 10 med 10 multiplikationstabellen. 452 00:22:28,480 --> 00:22:31,832 Om användaren lämnar ett 12 vill vi en 12 genom 12 multiplikationstabellen. 453 00:22:31,832 --> 00:22:33,790 Bara så att du kan se vad Vi kör på här, 454 00:22:33,790 --> 00:22:36,040 vi tar en titt på den här filen i min IDE. 455 00:22:36,040 --> 00:22:38,080 >> Så här i IDE, jag har mult_form.html. 456 00:22:38,080 --> 00:22:41,370 457 00:22:41,370 --> 00:22:43,100 Jag klickar på den. 458 00:22:43,100 --> 00:22:46,020 Allt jag vill göra är att skicka ett värde. 459 00:22:46,020 --> 00:22:47,590 Skriv in 10, slog in. 460 00:22:47,590 --> 00:22:51,190 Och tydligen, mult_table.php, som Vi kan se på toppen finns i webbadressen, 461 00:22:51,190 --> 00:22:53,970 Jag skapar en 10 av 10 multiplikationstabell. 462 00:22:53,970 --> 00:22:59,365 >> Om jag skriver 15 och slå in, nu har jag har en 15 med 15 multiplikationstabellen. 463 00:22:59,365 --> 00:23:02,240 Jag, naturligtvis inte kommer att visa du innehållet i mult_table.php, 464 00:23:02,240 --> 00:23:04,781 eftersom det skulle ta det roliga av detta hemma övning. 465 00:23:04,781 --> 00:23:07,480 Men det är ett bra sätt att få lite öva att arbeta med PHP loopar 466 00:23:07,480 --> 00:23:10,889 och POST, mycket enkel, förhoppningsvis stressfri exempel bara 467 00:23:10,889 --> 00:23:12,180 att göra en lite övning. 468 00:23:12,180 --> 00:23:16,540 Och jag har en liten CSS pågår här för att göra min individuella bord 469 00:23:16,540 --> 00:23:19,710 celler lossna en rättvis sorts lite och ser lite mer 470 00:23:19,710 --> 00:23:22,205 som en multiplikationstabellen, i stället för bara text bara 471 00:23:22,205 --> 00:23:23,261 typ av sitter där. 472 00:23:23,261 --> 00:23:26,260 Den sista super globala vi pratar om i den här videon är något som kallas 473 00:23:26,260 --> 00:23:27,597 $ _SESSION. 474 00:23:27,597 --> 00:23:29,930 Och kanske detta är faktiskt det bästa exemplet på något 475 00:23:29,930 --> 00:23:31,700 vi skulle överväga global. 476 00:23:31,700 --> 00:23:33,189 Det är en annan array. 477 00:23:33,189 --> 00:23:34,480 Det är en annan associativ array. 478 00:23:34,480 --> 00:23:40,580 Men den är tillgänglig genom varje PHP-fil som finns i vårt system. 479 00:23:40,580 --> 00:23:43,410 >> Vi behöver inte lämna in Information en sida i taget 480 00:23:43,410 --> 00:23:45,400 som vi gör med GET och POST. 481 00:23:45,400 --> 00:23:46,380 Det är alltid där. 482 00:23:46,380 --> 00:23:50,040 Och så det här är bra för en sida där du är inloggad, till exempel, 483 00:23:50,040 --> 00:23:53,120 och du vill att dina inloggningsuppgifter att fortsätta från sida till sida till sida. 484 00:23:53,120 --> 00:23:58,180 >> Du kan bara starta en session och sedan använda $ _SESSION att spara saker som 485 00:23:58,180 --> 00:24:02,320 användarens namn, eller användarens ID-information, och så vidare. 486 00:24:02,320 --> 00:24:07,600 Och att informationen kommer att finnas kvar i $ _SESSION Tills du förstöra sessionen 487 00:24:07,600 --> 00:24:09,550 lite senare. 488 00:24:09,550 --> 00:24:12,375 >> Skriva dynamiska webbplatser med PHP gör dem mycket bättre. 489 00:24:12,375 --> 00:24:14,250 Dina webbplatser blir mycket dynamisk, och du inte 490 00:24:14,250 --> 00:24:17,670 måste göra för mycket mer än vad du annars skulle ha gjort precis 491 00:24:17,670 --> 00:24:18,920 gör det med HTML. 492 00:24:18,920 --> 00:24:21,630 Men det kräver övning, en hel del övning. 493 00:24:21,630 --> 00:24:26,897 >> Du vet redan hur man arbetar med C, och så hoppa till PHP är inte alltför svårt. 494 00:24:26,897 --> 00:24:28,730 Vad är kanske lite lite knepigt fungerar 495 00:24:28,730 --> 00:24:33,180 med denna nya idé om GET och POST och kanske blanda din HTML och PHP 496 00:24:33,180 --> 00:24:34,220 tillsammans. 497 00:24:34,220 --> 00:24:37,570 Men också vara medveten om att internet är en stor databas med information. 498 00:24:37,570 --> 00:24:41,670 Och PHP dokumentation finns på många ställen, men kanske mest 499 00:24:41,670 --> 00:24:43,354 kanoniskt vid php.net. 500 00:24:43,354 --> 00:24:45,520 Och du kan hitta det, massor av olika funktioner, 501 00:24:45,520 --> 00:24:48,330 och användningsfall, och exempel på exempel, vid exempel. 502 00:24:48,330 --> 00:24:51,340 Där om du vill försöka siffra ut hur man gör något, oddsen är, 503 00:24:51,340 --> 00:24:52,964 någon har förmodligen gjort det innan du. 504 00:24:52,964 --> 00:24:55,840 Och du kan använda dem som inspiration att genomföra vad 505 00:24:55,840 --> 00:24:58,230 det är du försöker genomföra alltför. 506 00:24:58,230 --> 00:24:59,230 >> Jag är Doug Lloyd. 507 00:24:59,230 --> 00:25:01,210 Detta är CS50. 508 00:25:01,210 --> 00:25:02,608