1 00:00:00,000 --> 00:00:05,720 2 00:00:05,720 --> 00:00:07,620 >> DOUG LLOYD: Så i vores video på PHP syntaks, 3 00:00:07,620 --> 00:00:10,480 Vi talte meget om, hvordan PHP kan bruges på kommandolinjen 4 00:00:10,480 --> 00:00:13,620 at køre programmer på en måde, vi er temmelig kender fra C. 5 00:00:13,620 --> 00:00:15,370 Men som jeg også nævnt i denne video, PHP 6 00:00:15,370 --> 00:00:19,572 blev oprindeligt udviklet til implementere webprogrammering, hjemmesider. 7 00:00:19,572 --> 00:00:21,780 Og så i denne video er vi vil tale om, hvordan vi 8 00:00:21,780 --> 00:00:23,890 bruge PHP i webudvikling sammenhæng. 9 00:00:23,890 --> 00:00:26,360 >> Vi ved allerede, fra vores video på HTML, 10 00:00:26,360 --> 00:00:29,820 at websites er bygget ud af et sæt af HTML-tags 11 00:00:29,820 --> 00:00:32,850 der semantisk definere strukturen af ​​en webside. 12 00:00:32,850 --> 00:00:35,910 Men websteder, der er bygget med ren HTML 13 00:00:35,910 --> 00:00:39,510 lider af en meget, meget alvorlig begrænsning. 14 00:00:39,510 --> 00:00:42,690 >> Og illustrere denne begrænsning, Lad os overveje følgende. 15 00:00:42,690 --> 00:00:45,665 Så nu jeg ønsker at opbygge en webside at, når brugeren besøger det, 16 00:00:45,665 --> 00:00:49,760 det giver mig den nuværende tid i Cambridge, Mass., 17 00:00:49,760 --> 00:00:52,620 vise det til den nyeste minut. 18 00:00:52,620 --> 00:00:57,910 Hvis jeg var at gøre dette lige nu, Jeg kan sige noget som dette. 19 00:00:57,910 --> 00:01:01,330 Aktuel tid i Cambridge-- så jeg har HTML-tags, hoved tags, titel tags, 20 00:01:01,330 --> 00:01:04,610 organ tags-- den aktuelle tid i Cambridge er 14:08, 21 00:01:04,610 --> 00:01:06,690 udskrive militær tid. 22 00:01:06,690 --> 00:01:11,390 >> Hvad sker der, hvis det er nu 02:09, 14:09? 23 00:01:11,390 --> 00:01:16,470 Nå hidtil med HTML, jeg har at gå ind og ændre det til 14:09. 24 00:01:16,470 --> 00:01:19,390 Og derefter én minut senere, Jeg er nødt til at ændre det igen. 25 00:01:19,390 --> 00:01:22,132 Og derefter én minut senere, Jeg er nødt til at ændre det igen. 26 00:01:22,132 --> 00:01:24,590 Og som du kan forestille dig, det er sandsynligvis det værste job nogensinde. 27 00:01:24,590 --> 00:01:29,420 Du er webmaster for et webside, og hvert minut, 24 timer i døgnet, 28 00:01:29,420 --> 00:01:35,970 du nødt til at opdatere den aktuelle tid ved manuelt åbne time.html og skiftende 29 00:01:35,970 --> 00:01:41,750 bare, at kodestykke at sige aktuelle tid i timer og minutter. 30 00:01:41,750 --> 00:01:45,850 Det er nok ikke en meget god brug af vores ressourcer, 31 00:01:45,850 --> 00:01:48,880 både menneskelige og beregningsmæssige. 32 00:01:48,880 --> 00:01:51,297 >> Websteder, der alle HTML er helt statisk. 33 00:01:51,297 --> 00:01:53,630 Den eneste måde du kan opdatere indhold, som vi lige har set, 34 00:01:53,630 --> 00:01:56,339 er manuelt åbne dem kilde filer, redigere dem og gemme dem. 35 00:01:56,339 --> 00:01:58,088 Og så når brugeren opdaterer siden, 36 00:01:58,088 --> 00:02:01,080 eller besøger siden for den første tid, vil de få det nyeste indhold. 37 00:02:01,080 --> 00:02:03,970 Men kun fordi vi har manuelt redigeret det. 38 00:02:03,970 --> 00:02:07,980 >> Hvis vi begynder at blande nogle PHP derinde, vores kode kan få meget mere fleksibel. 39 00:02:07,980 --> 00:02:11,940 Og vi kan have en måde for vores sider at være dynamisk, eller opdatere sig selv, 40 00:02:11,940 --> 00:02:15,360 uden at kræve vores fattige webmaster i det foregående eksempel 41 00:02:15,360 --> 00:02:16,662 at være manuelt opdatere ting. 42 00:02:16,662 --> 00:02:17,870 De kan gøre det automatisk. 43 00:02:17,870 --> 00:02:19,130 Vi behøver ikke at gribe ind. 44 00:02:19,130 --> 00:02:20,410 Vi kan få noget søvn. 45 00:02:20,410 --> 00:02:24,850 Som sandsynligvis er en god ting, hvis du laver en masse web-programmering. 46 00:02:24,850 --> 00:02:28,360 >> Så i CS50 IDE, vi kører en webserver kaldet Apache. 47 00:02:28,360 --> 00:02:35,250 Det er en meget almindeligt anvendt, open source webserver system. 48 00:02:35,250 --> 00:02:37,320 Dette system har den evnen til at fortolke 49 00:02:37,320 --> 00:02:41,260 PHP, hvilket vil være nyttigt, hvis du ønsker at gøre noget PHP programmering. 50 00:02:41,260 --> 00:02:45,230 >> Og i CS50 IDE, har vi en kommando at gøre denne meget let at gøre, 51 00:02:45,230 --> 00:02:47,280 apache50 starte. 52 00:02:47,280 --> 00:02:49,445 Og så er skråstreg sti, skråstreg til, skråstreg 53 00:02:49,445 --> 00:02:53,350 dir, det er bare en rigtig almindelig måde angivelse af, hvad du har angivet her 54 00:02:53,350 --> 00:02:56,510 er en vej til et bestemt mappe, som du 55 00:02:56,510 --> 00:03:00,800 ønsker at være roden site, eller rodsiden, 56 00:03:00,800 --> 00:03:05,430 eller den mappe, som din webserver vil begynde at undersøge filer og tjene 57 00:03:05,430 --> 00:03:07,850 dem op til kunder, der ønsker det. 58 00:03:07,850 --> 00:03:12,110 Så lad os pop over til CS50 IDE, bare for at vise dig, virkelig hurtig, hvordan det virker. 59 00:03:12,110 --> 00:03:30,930 60 00:03:30,930 --> 00:03:36,240 >> Så her i CS50 IDE, jeg er i en mappe kaldet Uge Zero Nine. 61 00:03:36,240 --> 00:03:38,890 Og jeg har to-- jeg har henrettet en LS-kommando bare 62 00:03:38,890 --> 00:03:41,910 ovenfor for at vise dig, at jeg har to mapper i her, PHP, 63 00:03:41,910 --> 00:03:46,410 hvilket er det sæt af filer, som jeg brugte i PHP syntaks video og derefter PHP-nettet, 64 00:03:46,410 --> 00:03:49,380 hvilket er det sæt af filer, som jeg gerne vil bruge i denne video. 65 00:03:49,380 --> 00:03:53,480 >> Og jeg vil gerne starte en web-server instans 66 00:03:53,480 --> 00:03:59,089 med indholdet af PHP-webmappen da filerne bliver serveret. 67 00:03:59,089 --> 00:04:00,130 Så hvad skal jeg gøre? 68 00:04:00,130 --> 00:04:05,710 Jeg kommer til at skrive apache50 plads starte, rum PHP, bindestreg nettet. 69 00:04:05,710 --> 00:04:08,100 Det er vejen til biblioteket fra hvor jeg i øjeblikket er. 70 00:04:08,100 --> 00:04:09,127 Så jeg ramte Enter. 71 00:04:09,127 --> 00:04:10,960 Det kommer til at gøre en lille smule af ting her. 72 00:04:10,960 --> 00:04:14,030 Og så det kommer til at sige, Apache startede med succes. 73 00:04:14,030 --> 00:04:20,689 Dit websted er nu tilgængelig at-- og så er der URL'en for webstedet. 74 00:04:20,689 --> 00:04:21,730 Så hvad skal jeg gøre? 75 00:04:21,730 --> 00:04:26,234 Jeg har tænkt mig at hurtigt at kopiere denne. 76 00:04:26,234 --> 00:04:28,900 Og jeg har tænkt mig at åbne up-- og Jeg vil zoome ud en lille smule her-- 77 00:04:28,900 --> 00:04:31,570 Jeg har tænkt mig at åbne op en ny fane i Chrome. 78 00:04:31,570 --> 00:04:34,320 Og jeg har tænkt mig at besøge denne URL. 79 00:04:34,320 --> 00:04:35,299 >> Jeg har tænkt mig at trykke Enter. 80 00:04:35,299 --> 00:04:36,090 Det kommer til at indlæse. 81 00:04:36,090 --> 00:04:37,510 Og jeg vil zoome ud igen. 82 00:04:37,510 --> 00:04:41,350 Og vi kan se her, er den indholdet af min PHP web bibliotek. 83 00:04:41,350 --> 00:04:45,290 >> Så nu, hvad der dybest set sker her er mit eksempel på CS50 IDE 84 00:04:45,290 --> 00:04:49,620 afsoner op disse filer til nogen, der anmoder om dem. 85 00:04:49,620 --> 00:04:51,620 Og i løbet af denne video, vil vi sortere af 86 00:04:51,620 --> 00:04:55,400 tage et kig på en flok af disse forskellige filer i sammenhæng. 87 00:04:55,400 --> 00:04:57,614 >> For at teste, at din Apache server fungerer, 88 00:04:57,614 --> 00:04:59,780 der generelt vil at være tilfældet i CS50 IDE, 89 00:04:59,780 --> 00:05:02,696 men hvis du gør dette mere generelt, og du begynde at bygge din egen web 90 00:05:02,696 --> 00:05:04,990 servere, der er en virkelig fælles slags analog til, 91 00:05:04,990 --> 00:05:08,500 "Hej verden", der er normalt bruges til PHP webudvikling. 92 00:05:08,500 --> 00:05:12,855 Som skal have en fil bestående af netop dette code-- 93 00:05:12,855 --> 00:05:18,247 en PHP afgrænser sæt med PHP info, parenteser, semikolon i mellem. 94 00:05:18,247 --> 00:05:20,580 Som er dybest set en særlig PHP funktion der fortæller dig 95 00:05:20,580 --> 00:05:23,970 hvilken version af PHP du kører. 96 00:05:23,970 --> 00:05:26,850 >> Så i CS50 IDE, jeg har at filen findes lige 97 00:05:26,850 --> 00:05:28,680 til at vise dig, hvad det ville se ud. 98 00:05:28,680 --> 00:05:32,860 Så jeg ser på min indeks fra min PHP instans. 99 00:05:32,860 --> 00:05:35,870 Min Apache eksempel kører indholdet af PHP-Web. 100 00:05:35,870 --> 00:05:39,290 Og jeg har en fil her kaldet info.php. 101 00:05:39,290 --> 00:05:41,164 >> Jeg har tænkt mig at klikke på det, zoome ud. 102 00:05:41,164 --> 00:05:43,080 Dette er, hvad du vil at se, temmelig meget. 103 00:05:43,080 --> 00:05:45,729 Dette er bare at fortælle mig, at min Apache-server fungerer. 104 00:05:45,729 --> 00:05:48,270 Og det er, tilsyneladende, den version af PHP, som jeg kører. 105 00:05:48,270 --> 00:05:51,590 Dette er mit analog til "Hej verden". 106 00:05:51,590 --> 00:05:53,070 >> Så jeg ved, tingene er operationelle. 107 00:05:53,070 --> 00:05:54,150 Så vi er gode til at gå. 108 00:05:54,150 --> 00:05:55,730 Vi kan fortsætte herfra. 109 00:05:55,730 --> 00:05:57,790 >> Så lad os vende det tid eksempel var vi 110 00:05:57,790 --> 00:06:01,950 taler om med vores fattige webmaster der skulle opdatere siden konstant. 111 00:06:01,950 --> 00:06:05,020 Dette kan være en rettelse til, hvordan Jeg vil gennemføre tingene 112 00:06:05,020 --> 00:06:08,080 således at webmasteren ikke nødt til at holde opdatere tiden. 113 00:06:08,080 --> 00:06:10,270 Det ville bare slags ske automatisk. 114 00:06:10,270 --> 00:06:13,710 >> Den ned nedenfor, HTML, er det temmelig ens, med en enkelt undtagelse. 115 00:06:13,710 --> 00:06:16,720 Men her har jeg fået nogle PHP på toppen. 116 00:06:16,720 --> 00:06:19,940 Jeg har tilsyneladende kaldte denne funktion date_default_timezone_set. 117 00:06:19,940 --> 00:06:22,106 >> Og vi taler ikke om alle disse funktioner i CS50, 118 00:06:22,106 --> 00:06:24,670 fordi PHP har formentlig titusinder. 119 00:06:24,670 --> 00:06:27,540 Det kunne være lidt af en overdrivelse, men det kan ikke være. 120 00:06:27,540 --> 00:06:29,490 Det har fået en masse funktioner indbygget. 121 00:06:29,490 --> 00:06:33,290 Og så dette er en funktion tilsyneladende sætter min tidszone som USA / Eastern, 122 00:06:33,290 --> 00:06:36,320 som er den tidszone, at jeg er i øjeblikket i at gøre denne video. 123 00:06:36,320 --> 00:06:38,430 >> Så jeg foretage et opkald til funktion kaldes, dato. 124 00:06:38,430 --> 00:06:43,850 Og tilsyneladende, jeg opbevare HANS af noget, der hedder, tid. 125 00:06:43,850 --> 00:06:45,320 Så hvad sker der her? 126 00:06:45,320 --> 00:06:48,040 >> Nå, dybest set, hvad der er sker er, jeg foretager et opkald 127 00:06:48,040 --> 00:06:51,650 til nogle server, der kommer til at fortælle mig, hvad tid i øjeblikket er. 128 00:06:51,650 --> 00:06:56,150 Og jeg konvertere den til et format af timer, minutter, sekunder. 129 00:06:56,150 --> 00:07:00,540 Og grunden til at det er kapital H er dette kommer til at give mig 24 timer tid, ikke 12 130 00:07:00,540 --> 00:07:02,362 timers tid, hvilket ville være små bogstaver h. 131 00:07:02,362 --> 00:07:04,570 Og jeg er bare opbevaring, at i en variabel kaldet, tid. 132 00:07:04,570 --> 00:07:07,028 Således at anden linje i PHP der, kaldet til den funktion, 133 00:07:07,028 --> 00:07:09,037 dato, er lige ved at komme noget snor, som er 134 00:07:09,037 --> 00:07:12,120 kommer til at give mig den dato, og tid, og en masse andre oplysninger. 135 00:07:12,120 --> 00:07:16,480 Og det første argument der, at HIS, er lige ekstrahere vigtig del 136 00:07:16,480 --> 00:07:20,614 at jeg holder for dette eksempel, som er den time, minut, og sekund. 137 00:07:20,614 --> 00:07:22,030 Så det er det alt det der foregår. 138 00:07:22,030 --> 00:07:23,562 Så jeg gemmer det i en variabel $ tid. 139 00:07:23,562 --> 00:07:25,270 Og derefter ned på meget bund der, jeg 140 00:07:25,270 --> 00:07:28,980 har denne forkortelse for udskrive det aktuelle tidspunkt. 141 00:07:28,980 --> 00:07:32,050 Så jeg bare kommer til at udskrive ud af, hvad den aktuelle tid er. 142 00:07:32,050 --> 00:07:37,220 >> Så lad os tage et kig på denne i CS50 IDE og se, hvordan vi er nu 143 00:07:37,220 --> 00:07:40,002 besparelse at webmaster en masse besvær. 144 00:07:40,002 --> 00:07:42,570 Okay, så her er jeg igen tilbage på hovedbiblioteket 145 00:07:42,570 --> 00:07:45,040 af min Apache instans. 146 00:07:45,040 --> 00:07:51,585 Og jeg har en fil her kaldet time.php. 147 00:07:51,585 --> 00:07:53,559 Jeg skal bare klikke på det. 148 00:07:53,559 --> 00:07:55,850 Og jeg vil rulle op, fordi vi er zoomet ind temmelig langt. 149 00:07:55,850 --> 00:07:57,257 Den aktuelle tid er 14:20:34. 150 00:07:57,257 --> 00:07:59,090 Så jeg gør det timer, minutter og sekunder. 151 00:07:59,090 --> 00:08:01,910 Og jeg kan opdatere side og få ny tid. 152 00:08:01,910 --> 00:08:02,420 --41. 153 00:08:02,420 --> 00:08:07,240 Jeg har tænkt mig at opdatere siden og få ny tid, 44, 46, 47. 154 00:08:07,240 --> 00:08:10,490 >> Så jeg er helt klart ikke ændre noget selv. 155 00:08:10,490 --> 00:08:11,720 Jeg er her opdatere siden. 156 00:08:11,720 --> 00:08:13,711 Så jeg kan ikke være tilbage der redigerer den. 157 00:08:13,711 --> 00:08:15,710 Og jeg lover dig, det gør jeg ikke have nogen forbundsfæller 158 00:08:15,710 --> 00:08:18,230 der er ved at redigere filen på mine vegne på siden. 159 00:08:18,230 --> 00:08:21,260 >> Jeg er bare ved hjælp af denne PHP funktion, tid, til at generere tid for mig 160 00:08:21,260 --> 00:08:22,340 automatisk. 161 00:08:22,340 --> 00:08:24,800 Så selvom jeg sover, og min webserver kører, 162 00:08:24,800 --> 00:08:28,884 den bruger, der besøger den side stadig kommer til at få præcis det aktuelle tidspunkt. 163 00:08:28,884 --> 00:08:29,800 Så det er temmelig godt. 164 00:08:29,800 --> 00:08:33,609 Jeg har lavet min hjemmeside mere dynamisk med ikke for meget PHP kode. 165 00:08:33,609 --> 00:08:36,650 Det var blot to linjer kode og derefter en lille smule af en udskrift erklæring. 166 00:08:36,650 --> 00:08:38,441 Og allerede jeg har en langt mere dynamisk websted 167 00:08:38,441 --> 00:08:42,750 end det første eksempel vi så ved begyndelsen af ​​videoen. 168 00:08:42,750 --> 00:08:46,660 >> Så husker fra videoen på PHP syntaks at når PHP fortolkeren kører 169 00:08:46,660 --> 00:08:50,000 vores program, det ignorerer alt det er ikke inde i PHP afgrænsere, 170 00:08:50,000 --> 00:08:51,500 spytte det ud. 171 00:08:51,500 --> 00:08:54,410 I dette eksempel, hvad de ting at det var spytte ud var HTML. 172 00:08:54,410 --> 00:08:58,080 Og det betyder, at jeg nu kan intersperse HTML og PHP sammen. 173 00:08:58,080 --> 00:09:01,920 Fordi tolken vil bare ignorere HTML og bogstaveligt output det. 174 00:09:01,920 --> 00:09:04,140 Hvilket er godt, ikke? 175 00:09:04,140 --> 00:09:06,100 >> Fordi formodentlig ved slutningen af ​​dagen, 176 00:09:06,100 --> 00:09:08,360 Jeg vil gerne have min hjemmeside til være konstrueret af HTML. 177 00:09:08,360 --> 00:09:12,880 Således at enhver webbrowser kan fortolke det eller forstå HTML på siden 178 00:09:12,880 --> 00:09:17,270 og gøre det som noget, vi kan faktisk forstår som mennesker. 179 00:09:17,270 --> 00:09:19,430 Og jeg kan kun bruge PHP for de dele af mit site 180 00:09:19,430 --> 00:09:23,390 Det kræver dynamik, der kræver mig at have ting, der opdateres konstant. 181 00:09:23,390 --> 00:09:26,630 Den statiske oplysninger kan forblive den samme. 182 00:09:26,630 --> 00:09:27,540 >> OK, så det er fint. 183 00:09:27,540 --> 00:09:28,540 Men hvorfor skulle jeg gøre det? 184 00:09:28,540 --> 00:09:30,400 Hvorfor skulle jeg blande HTML og PHP? 185 00:09:30,400 --> 00:09:33,850 Jeg kunne bare udskrive alle HTML, ved hjælp af PHP print funktion. 186 00:09:33,850 --> 00:09:35,870 Hvorfor er jeg ikke gøre det? 187 00:09:35,870 --> 00:09:37,100 Tænk over det et sekund. 188 00:09:37,100 --> 00:09:41,220 >> Hvorfor, når jeg kunne bare udskrive out-- jeg kunne have linjer af PHP, der bare siger, 189 00:09:41,220 --> 00:09:43,841 print HTML-tag, printhovedet. 190 00:09:43,841 --> 00:09:44,840 Hvorfor er jeg ikke gøre det? 191 00:09:44,840 --> 00:09:48,230 Hvorfor er jeg blande PHP og HTML? 192 00:09:48,230 --> 00:09:50,080 >> Tja, hvis du tror over det et sekund. 193 00:09:50,080 --> 00:09:52,824 PHP, tolken har at fortolke, hvad det ser. 194 00:09:52,824 --> 00:09:54,990 Og så det kommer til at have at udføre en linje kode. 195 00:09:54,990 --> 00:09:56,450 Udskriv HTML. 196 00:09:56,450 --> 00:09:57,700 Udskriv åben hoved tag. 197 00:09:57,700 --> 00:09:58,969 Udskriv åben titel-tag. 198 00:09:58,969 --> 00:10:00,760 Det kommer til at have til udføre og fortolke 199 00:10:00,760 --> 00:10:02,671 at hver eneste skridt på vejen. 200 00:10:02,671 --> 00:10:04,670 Hvorfor ikke bare lade tolk bare glans over 201 00:10:04,670 --> 00:10:06,878 ting, det ikke forstår og gøre det automatisk? 202 00:10:06,878 --> 00:10:11,365 Det kommer til at spare mig for en masse tid at blande min HTML og min PHP sammen. 203 00:10:11,365 --> 00:10:16,220 >> Og så det er derfor vi ikke bare åbne PHP afgrænser 204 00:10:16,220 --> 00:10:19,450 og så bare udskrive hele indhold på vores side som en kæmpe PHP 205 00:10:19,450 --> 00:10:24,330 ringe til funktionen, Udskriv, og derefter tæt PHP skilletegn og vi er færdig. 206 00:10:24,330 --> 00:10:27,620 Så det er derfor vi blande dem op sammen. 207 00:10:27,620 --> 00:10:32,345 >> Hidtil har vi ikke set for meget af en forskel fra almindelige PHP syntaks. 208 00:10:32,345 --> 00:10:33,720 Det har været temmelig ligetil. 209 00:10:33,720 --> 00:10:35,553 Vi har allerede set spørgsmålstegn, lige. 210 00:10:35,553 --> 00:10:39,012 Vi så et par nye funktionskald, men intet virkelig lyst til at gå på. 211 00:10:39,012 --> 00:10:40,720 Lad os måske gøre tingene lidt avanceret. 212 00:10:40,720 --> 00:10:44,360 Hvad nu, hvis vi ønsker at videregive oplysninger mellem forskellige PHP-filer, 213 00:10:44,360 --> 00:10:47,280 så måske kan brugeren indsende oplysninger til mig. 214 00:10:47,280 --> 00:10:50,230 Og så kunne jeg gøre noget med det på en anden side. 215 00:10:50,230 --> 00:10:52,990 >> Så PHP understøtter noget, der hedder Super Global 216 00:10:52,990 --> 00:10:55,297 Variabler, hvilket lyder temmelig awesome. 217 00:10:55,297 --> 00:10:57,130 De er virkelig bare gigantiske associative arrays 218 00:10:57,130 --> 00:10:59,900 at hjælpe med at gennemføre dette funktionalitet forbifarten 219 00:10:59,900 --> 00:11:05,010 oplysninger mellem PHP-filer, der er eksisterende på vores web-server. 220 00:11:05,010 --> 00:11:07,760 >> Den første af disse super globals hedder $ _GET. 221 00:11:07,760 --> 00:11:10,140 Og det er nok det enkleste at forstå. 222 00:11:10,140 --> 00:11:12,430 Hvad sker der med $ _GET? 223 00:11:12,430 --> 00:11:16,240 Tja, dybest set, at brugeren er kommer til at skrive ekstra information 224 00:11:16,240 --> 00:11:18,390 ved slutningen af ​​vores URL'er. 225 00:11:18,390 --> 00:11:21,460 Og uanset hvad de skriver, under forudsætning af det er formateret på en bestemt måde 226 00:11:21,460 --> 00:11:25,830 kaldes en forespørgsel streng, som er lige et sæt af centrale værdipar adskilt 227 00:11:25,830 --> 00:11:27,810 af-tegn. 228 00:11:27,810 --> 00:11:32,362 Disse centrale værdipar vil være opbevares i en $ _GET associative array. 229 00:11:32,362 --> 00:11:34,070 Og fra vores video på PHP syntaks, vi kender 230 00:11:34,070 --> 00:11:40,080 hvordan man arbejder med associative arrays allerede. 231 00:11:40,080 --> 00:11:44,090 Så her er et eksempel på nogle PHP, hvor måske er jeg 232 00:11:44,090 --> 00:11:50,180 udvinding alle de vigtigste værdipar at brugeren leveres i URL'en. 233 00:11:50,180 --> 00:11:51,970 Så jeg har min åbne PHP skilletegn. 234 00:11:51,970 --> 00:11:53,410 Jeg har en foreach løkke. 235 00:11:53,410 --> 00:11:57,410 Jeg iteration tværs af Super Global Array kaldet $ _GET. 236 00:11:57,410 --> 00:12:00,160 >> Og jeg ønsker at være i stand til at henvise både nøglen og værdi. 237 00:12:00,160 --> 00:12:02,410 Og jeg er bare udskrive dem ud, hver på tilsyneladende 238 00:12:02,410 --> 00:12:03,780 et afsnit tag her. 239 00:12:03,780 --> 00:12:07,620 Jeg udskriver nogle HTML og at interpolere værdierne 240 00:12:07,620 --> 00:12:12,900 af nøgle og værdi i denne erklæring. 241 00:12:12,900 --> 00:12:16,980 >> Så lad os tage et kig på, hvordan denne ville faktisk arbejde på vores IDE. 242 00:12:16,980 --> 00:12:18,980 Og måske dette vil hjælpe illustrerer en lille smule 243 00:12:18,980 --> 00:12:21,880 af, hvad får, er faktisk gør. 244 00:12:21,880 --> 00:12:23,610 Så jeg er tilbage her i min web rod. 245 00:12:23,610 --> 00:12:25,318 Og jeg vil zoome ind på et lille smule til at vise dig 246 00:12:25,318 --> 00:12:28,620 at jeg har en fil kaldet, get1.php. 247 00:12:28,620 --> 00:12:31,830 >> Så lad os klikker på get1.php. 248 00:12:31,830 --> 00:12:36,600 Og Jeg kan ikke se noget indhold. 249 00:12:36,600 --> 00:12:38,390 Det er underligt, ikke? 250 00:12:38,390 --> 00:12:39,740 Tja, ikke rigtig faktisk. 251 00:12:39,740 --> 00:12:42,030 Fordi jeg ikke levere noget i webadressen. 252 00:12:42,030 --> 00:12:46,270 Jeg har tænkt mig at get1.php, men jeg ikke leverer nogen centrale værdipar 253 00:12:46,270 --> 00:12:47,450 som en del af min forespørgsel streng. 254 00:12:47,450 --> 00:12:50,510 Så lad os tilføje en forespørgselsstreng og se, hvad denne fil kan gøre. 255 00:12:50,510 --> 00:12:53,040 >> Til at begynde en forespørgsel streng, du blot skrive spørgsmålstegn. 256 00:12:53,040 --> 00:13:00,820 Så måske vil jeg sige name = Doug & år = 2015. 257 00:13:00,820 --> 00:13:02,914 Og så vil jeg trykke Enter. 258 00:13:02,914 --> 00:13:04,080 Nu mærke til, hvad der sker. 259 00:13:04,080 --> 00:13:05,480 Jeg er stadig i get1.php. 260 00:13:05,480 --> 00:13:08,445 Men nu har jeg leveret centrale værdi par, og jeg er 261 00:13:08,445 --> 00:13:14,940 udskrive dem ud på egen hånd paragraph-- navn, Doug-- år, 2015. 262 00:13:14,940 --> 00:13:17,970 Det er præcis den kode vi bare oplevede på diaset for et øjeblik siden. 263 00:13:17,970 --> 00:13:22,290 >> Og hvis jeg vil måske tilføje en anden nøgle værdi par, og class = CS50. 264 00:13:22,290 --> 00:13:25,325 265 00:13:25,325 --> 00:13:27,580 Nu har jeg en anden vigtig værdi par, der er udskrevet 266 00:13:27,580 --> 00:13:30,025 når jeg revidere URL'en igen. 267 00:13:30,025 --> 00:13:31,900 Nu måske er det ikke formateret særlig godt. 268 00:13:31,900 --> 00:13:33,660 Så jeg har en anden version af get.php. 269 00:13:33,660 --> 00:13:36,350 Det er get2.php. 270 00:13:36,350 --> 00:13:39,070 >> Forskellen i dette den ene er jeg har CSS-fil, 271 00:13:39,070 --> 00:13:41,690 og det formater tingene lidt mere pænt for mig. 272 00:13:41,690 --> 00:13:43,940 Det er måske ikke den mest smukke CSS i verden. 273 00:13:43,940 --> 00:13:45,650 Men det er bare en anden måde at gøre det. 274 00:13:45,650 --> 00:13:52,840 Så jeg kan stadig få adgang til mine variabler ved hjælp af $ _GET. 275 00:13:52,840 --> 00:13:56,610 Og i dette tilfælde er jeg bare lidt gør CSS lidt mere fancy. 276 00:13:56,610 --> 00:13:58,360 Og hvis vi pop over til min IDE til en anden, 277 00:13:58,360 --> 00:14:06,870 Jeg vil vise dig i min PHP web mappe her, get2.php. 278 00:14:06,870 --> 00:14:10,010 Vi vil åbne det op, nogle HTML her. 279 00:14:10,010 --> 00:14:13,220 Tilsyneladende jeg forbinder ved, at CSS-fil jeg talte om. 280 00:14:13,220 --> 00:14:14,570 Jeg åbner et bord tag. 281 00:14:14,570 --> 00:14:15,970 Og så her er min foreach løkke. 282 00:14:15,970 --> 00:14:18,450 >> Her er, hvad jeg viste på diaset før. 283 00:14:18,450 --> 00:14:21,007 Den eneste forskel er, at jeg har denne nøgle og værdi CSS 284 00:14:21,007 --> 00:14:22,340 styling, at jeg gælder for det. 285 00:14:22,340 --> 00:14:25,622 Men det er alt jeg gør, er jeg iteration over $ _GET at få alle 286 00:14:25,622 --> 00:14:26,580 De Nøgleværdiparrene. 287 00:14:26,580 --> 00:14:28,890 >> Og jeg udskriver dem ud som tabellen. 288 00:14:28,890 --> 00:14:33,230 Og tilsyneladende, jeg formatering tasterne på én måde, med 00:14:40,057 Så tilsyneladende, der gælder for nogle klasse vælgeren i min CSS-fil GET.CSS. 290 00:14:40,057 --> 00:14:42,890 Og tilsyneladende, jeg udskrivning ud mine værdier en helt anden måde. 291 00:14:42,890 --> 00:14:45,530 Hvilket er temmelig meget hvad vi så her, hvor 292 00:14:45,530 --> 00:14:47,710 vores værdier blev trykt med en blå baggrund, 293 00:14:47,710 --> 00:14:49,969 og vores nøgler blev trykt med en gul baggrund. 294 00:14:49,969 --> 00:14:52,010 Så det er sådan jeg får disse forskellige stilarter. 295 00:14:52,010 --> 00:14:54,054 Fordi jeg bruger forskellige CSS-klasser. 296 00:14:54,054 --> 00:14:55,470 Men det er temmelig meget det for GET. 297 00:14:55,470 --> 00:14:58,380 Ligesom jeg bare udtrække oplysninger. 298 00:14:58,380 --> 00:15:01,000 Og i dette tilfælde, jeg er bare udskrive det til skærmen. 299 00:15:01,000 --> 00:15:04,310 Jeg får det ud af URL'en, og det er hvad GET gør for os. 300 00:15:04,310 --> 00:15:06,470 >> Ser du en mulig Problemet her selv? 301 00:15:06,470 --> 00:15:11,720 Hvorfor skulle vi måske ikke ønsker at bruge $ _GET? 302 00:15:11,720 --> 00:15:15,440 Hvad nu hvis, måske var jeg gør denne forespørgsel? 303 00:15:15,440 --> 00:15:18,000 --to get3.php, som jeg ikke har på min IDE. 304 00:15:18,000 --> 00:15:19,640 Det er bare en hypotetisk fil. 305 00:15:19,640 --> 00:15:22,187 Men bemærke her, at der tilsyneladende passerer mit password i. 306 00:15:22,187 --> 00:15:23,770 Og måske min adgangskode er pinligt. 307 00:15:23,770 --> 00:15:28,070 Eller måske jeg ikke vil have folk til vide, hvad mit password er, højre. 308 00:15:28,070 --> 00:15:33,140 >> Hvis jeg passerer det though-- hvis jeg bruger den $ _GET metode, hvad der sker, er, 309 00:15:33,140 --> 00:15:34,970 der kommer til at være i webadressen. 310 00:15:34,970 --> 00:15:39,890 Så nogle ondsindet bruger måske være i stand til at se, hvad jeg gør. 311 00:15:39,890 --> 00:15:42,040 Jeg kan sende dem følsomme oplysninger. 312 00:15:42,040 --> 00:15:43,310 Eller måske er det ikke engang en ondsindet bruger. 313 00:15:43,310 --> 00:15:45,790 Måske er det bare din ven, som står over din skulder. 314 00:15:45,790 --> 00:15:47,650 Og nu kender adgangskoden til din Facebook-konto. 315 00:15:47,650 --> 00:15:49,483 >> Og måske ville de ikke gøre noget med det. 316 00:15:49,483 --> 00:15:53,749 Men hvis dit password var indsendes via $ _GET til Facebook, 317 00:15:53,749 --> 00:15:55,290 nu de kender din Facebook-adgangskode. 318 00:15:55,290 --> 00:15:59,000 Fordi det er lige der i URL'en når du har gjort indsende oplysninger. 319 00:15:59,000 --> 00:16:01,887 >> Og så måske det er ikke den bedste måde at passere følsomme oplysninger. 320 00:16:01,887 --> 00:16:04,470 Det er en god måde at videregive oplysninger at vi ikke specielt 321 00:16:04,470 --> 00:16:05,886 bekymre sig om at være for følsom. 322 00:16:05,886 --> 00:16:09,347 Fordi GET er temmelig hurtigt, i forhold til de andre super globals 323 00:16:09,347 --> 00:16:10,430 vi kommer til at tale om. 324 00:16:10,430 --> 00:16:13,330 Men måske ikke det bedste værktøj til følsomme oplysninger. 325 00:16:13,330 --> 00:16:15,990 >> For at vi måske ønsker at bruge noget, der hedder $ _POST, 326 00:16:15,990 --> 00:16:18,560 som er en anden Super global variabel. 327 00:16:18,560 --> 00:16:20,750 Det er en anden associativt array. 328 00:16:20,750 --> 00:16:23,240 Så det virker temmelig meget nøjagtig det samme som GET. 329 00:16:23,240 --> 00:16:26,850 Bortset, i stedet for at udvinde oplysninger fra URL'en, 330 00:16:26,850 --> 00:16:29,870 det gør noget gennem HTTP-headere. 331 00:16:29,870 --> 00:16:32,080 Så husker fra vores video på HTTP, vi talte 332 00:16:32,080 --> 00:16:34,850 om hvordan browsere, servere, og kunder kommunikere. 333 00:16:34,850 --> 00:16:38,070 Og oplysninger videregives tilbage og tilbage i HTTP-headers. 334 00:16:38,070 --> 00:16:43,330 >> Med $ _POST, information er typisk sendes gennem disse HTTP-headers. 335 00:16:43,330 --> 00:16:49,770 Og vi vil oftest se $ _POST i forbindelse med indsendelse af HTML-formularer. 336 00:16:49,770 --> 00:16:52,390 Du kan stadig bruge HTML-formularer at indsende ting at få. 337 00:16:52,390 --> 00:16:56,120 Men de er normalt bruges i forbindelse med POST. 338 00:16:56,120 --> 00:17:00,280 >> Så her er et eksempel på en HTML-formular. 339 00:17:00,280 --> 00:17:06,750 Nu har vi set disse før, men vi har ikke set denne del, action = "post.php". 340 00:17:06,750 --> 00:17:10,756 Så når vi talte om former i sammenhæng med HTML, havde jeg en Indsend knap. 341 00:17:10,756 --> 00:17:13,630 Og hvis du husker, ville jeg klikke på Send og så siden bare opdateres, 342 00:17:13,630 --> 00:17:14,660 gjorde ikke noget. 343 00:17:14,660 --> 00:17:18,250 >> I dette tilfælde, jeg indsender uanset hvad jeg skriver på denne formular, 344 00:17:18,250 --> 00:17:20,750 til en PHP fil kaldet post.php. 345 00:17:20,750 --> 00:17:25,810 Og tilsyneladende, den måde jeg gør, at i denne form er at bruge POST metoden. 346 00:17:25,810 --> 00:17:29,040 Så hver stykke information at jeg skriver i denne formular 347 00:17:29,040 --> 00:17:31,470 vil blive forelagt gennem HTTP-headers. 348 00:17:31,470 --> 00:17:36,440 >> Det vil være tilgængelige i post.php, fordi det er virkningen af ​​min form. 349 00:17:36,440 --> 00:17:39,811 Det vil være tilgængelige ved at gå til $ _POST. 350 00:17:39,811 --> 00:17:42,310 Og tilsyneladende, den måde, jeg kan får på hvert enkelt element 351 00:17:42,310 --> 00:17:44,765 med det associative array er med denne attribut, 352 00:17:44,765 --> 00:17:48,130 Navn attribut af vores input-tags. 353 00:17:48,130 --> 00:17:53,540 >> Så tilsyneladende kan jeg sige $ _POST kvadrat parentes navn for at få hvad brugeren 354 00:17:53,540 --> 00:17:55,440 skrevet i det første felt. 355 00:17:55,440 --> 00:18:01,030 Og $ _POST password, af PW snarere, at komme på uanset brugeren har skrevet 356 00:18:01,030 --> 00:18:03,650 i det andet felt. 357 00:18:03,650 --> 00:18:06,414 >> Så lad os tage et kig på dette over i CS50 IDE. 358 00:18:06,414 --> 00:18:08,330 Så her er vi, og jeg vil zoome ind for en anden. 359 00:18:08,330 --> 00:18:12,380 Og vi har en fil kaldet post.html. 360 00:18:12,380 --> 00:18:13,690 Jeg klikker på post.html. 361 00:18:13,690 --> 00:18:16,300 På toppen her har jeg en meget simpel webformular. 362 00:18:16,300 --> 00:18:18,750 Det er den form, vi lige har set på diaset et sekund siden. 363 00:18:18,750 --> 00:18:25,610 >> Jeg kan skrive, Doug, og jeg kan skrive mit password, som vi alle 364 00:18:25,610 --> 00:18:27,340 ved, er squadgoals. 365 00:18:27,340 --> 00:18:30,100 Og jeg vil ramme Send. 366 00:18:30,100 --> 00:18:32,290 Og tilsyneladende, at forelægger post.php. 367 00:18:32,290 --> 00:18:33,810 Og jeg åbenbart udskriver det. 368 00:18:33,810 --> 00:18:36,490 Så jeg komme af al den sikkerhed at POST giver mig ved blot at udskrive 369 00:18:36,490 --> 00:18:37,720 brugernavn og adgangskode. 370 00:18:37,720 --> 00:18:38,960 >> Brugerens navn er Doug. 371 00:18:38,960 --> 00:18:40,810 Brugerens kodeord er squadgoals. 372 00:18:40,810 --> 00:18:42,480 Hvordan klarede jeg gøre det? 373 00:18:42,480 --> 00:18:44,800 Nå, pop over til IDE igen for en anden. 374 00:18:44,800 --> 00:18:51,340 Vi vil rulle ned for at tage et kig på post.php, som var 375 00:18:51,340 --> 00:18:54,040 den handling, jeg brugte til at indsende her. 376 00:18:54,040 --> 00:18:55,739 Det var virkningen af ​​min HTML-formular. 377 00:18:55,739 --> 00:18:56,780 Og det er alt jeg gør. 378 00:18:56,780 --> 00:19:01,370 Brugerens navn er, og jeg er udskrivning indholdet ud af $ _POST "navn". 379 00:19:01,370 --> 00:19:04,660 Og så brugerens adgangskode er $ _POST "password". 380 00:19:04,660 --> 00:19:08,920 Så jeg fik at oplysninger ved at indsende HTML formular. 381 00:19:08,920 --> 00:19:13,790 Og jeg kan nu pakke den hjælp $ _POST fordi den metode, jeg brugte til at transmittere 382 00:19:13,790 --> 00:19:17,470 data med denne form var POST metoden. 383 00:19:17,470 --> 00:19:20,640 >> Nu er det nok ikke så store-- jeg har tænkt mig 384 00:19:20,640 --> 00:19:24,510 at gå tilbage til en anden til vores sæt her-- 385 00:19:24,510 --> 00:19:30,120 det er nok ikke så stor, hvis jeg indsende oplysninger med POST, 386 00:19:30,120 --> 00:19:32,532 hvilket er angiveligt mere sikker. 387 00:19:32,532 --> 00:19:34,740 Det er nok ikke så stor hvis jeg gør det, og derefter 388 00:19:34,740 --> 00:19:36,470 udskrive brugerens adgangskode. 389 00:19:36,470 --> 00:19:38,540 Det er meningen at være mere sikker. 390 00:19:38,540 --> 00:19:40,870 >> OK, men det er ikke helt sikker. 391 00:19:40,870 --> 00:19:42,910 Og så i denne lille kodestykke her vil jeg 392 00:19:42,910 --> 00:19:46,410 at bare gøre opmærksom på nogle datasikkerhed bekymringer, bare noget 393 00:19:46,410 --> 00:19:51,200 at tænke på, som du er arbejder eller ved hjælp af internettet. 394 00:19:51,200 --> 00:19:53,890 Dette er blot noget at overveje. 395 00:19:53,890 --> 00:19:57,980 >> Jeg fortalte dig, at oplysningerne er indsendes via HTTP-headers 396 00:19:57,980 --> 00:19:59,724 når du bruger POST metoden. 397 00:19:59,724 --> 00:20:01,390 Hvilket betyder, at de er ikke helt sikker. 398 00:20:01,390 --> 00:20:05,610 De er sværere at finde end ved hjælp af GET-metoden, hvor 399 00:20:05,610 --> 00:20:06,882 det er bare lige i webadressen. 400 00:20:06,882 --> 00:20:08,340 Men der er stadig en måde at finde den. 401 00:20:08,340 --> 00:20:10,423 Og jeg vil bare vise dig dette, så du måske 402 00:20:10,423 --> 00:20:12,940 begynde at tænke over dette som du arbejder, eller ved hjælp af 403 00:20:12,940 --> 00:20:14,560 hjemmesider og indsendelse adgangskoder og måske bruge 404 00:20:14,560 --> 00:20:16,518 den samme adgangskode i en masse forskellige steder. 405 00:20:16,518 --> 00:20:22,060 Vid, at er stadig faktisk temmelig let at finde ud af nogens adgangskode. 406 00:20:22,060 --> 00:20:25,190 >> Og så her, jeg har tænkt mig at gå til post2.html. 407 00:20:25,190 --> 00:20:28,850 Og forskellen med post2.html og post2.php er temmelig subtil. 408 00:20:28,850 --> 00:20:31,420 Forskellen er blot at jeg ikke udskrive 409 00:20:31,420 --> 00:20:33,520 adgangskoden, når jeg indsender formularen. 410 00:20:33,520 --> 00:20:35,260 >> Så jeg har tænkt mig at skrive i, Doug. 411 00:20:35,260 --> 00:20:38,365 Og jeg har tænkt mig at skrive i, squadgoals, selv 412 00:20:38,365 --> 00:20:40,770 selvom vi ved, det er kodeordet. 413 00:20:40,770 --> 00:20:42,540 Før jeg indsender danner dog, jeg har tænkt mig 414 00:20:42,540 --> 00:20:45,864 at åbne op Developer Tools, bare for at vise dig, hvad der vil ske her. 415 00:20:45,864 --> 00:20:47,530 Så i Chrome, jeg bare kommer til at ramme F12. 416 00:20:47,530 --> 00:20:54,120 417 00:20:54,120 --> 00:20:57,230 Og det kommer til at åbne op for min Developer Tools på den højre side. 418 00:20:57,230 --> 00:20:59,480 Jeg har ikke indsendt formularen endnu. 419 00:20:59,480 --> 00:21:02,680 Nu vil jeg til at ramme Indsend på min form. 420 00:21:02,680 --> 00:21:05,370 Og tilsyneladende, gjorde jeg en ringe til, eller jeg lavede en anmodning 421 00:21:05,370 --> 00:21:07,620 at post2.php, som giver mening. 422 00:21:07,620 --> 00:21:10,040 Jeg har tænkt mig at klikke på det. 423 00:21:10,040 --> 00:21:13,802 >> Så herovre, jeg skal til at klikke på skæreborde. 424 00:21:13,802 --> 00:21:15,410 Der er en masse ting foregår her. 425 00:21:15,410 --> 00:21:21,310 Men hvis jeg rulle ned til den meget bund, varsel til højre there-- min kalender 426 00:21:21,310 --> 00:21:25,180 har blokeret det for en second-- ret der i det nederste hjørne, 427 00:21:25,180 --> 00:21:27,386 name-- Doug, pw-- squadgoals. 428 00:21:27,386 --> 00:21:30,010 Så selv om jeg bruger POST metode, som er mere sikker, 429 00:21:30,010 --> 00:21:33,570 bare være klar over, at når du gør det, du stadig videregiver oplysninger 430 00:21:33,570 --> 00:21:34,430 via HTTP. 431 00:21:34,430 --> 00:21:36,770 Og det kan stadig være findes ved en modstander. 432 00:21:36,770 --> 00:21:39,270 Det er bare noget, vi vil at skulle beskæftige sig med virkelig. 433 00:21:39,270 --> 00:21:41,980 Måske er der nogle måder at kryptere vores adgangskoder, før vi sender dem over, 434 00:21:41,980 --> 00:21:44,410 hvilket ville være en bedre, som jeg ikke gør her. 435 00:21:44,410 --> 00:21:47,010 >> Men blot være opmærksom på, at POST metode har begrænsninger også. 436 00:21:47,010 --> 00:21:49,801 Det er en forbedring i forhold GET i form af at være umiddelbart synlige. 437 00:21:49,801 --> 00:21:51,280 Men det er ikke en komplet løsning. 438 00:21:51,280 --> 00:21:53,280 Så her er et eksempel på et hurtigt derhjemme øvelse 439 00:21:53,280 --> 00:21:56,350 som du kan bruge til at få nogle øve arbejde med PHP. 440 00:21:56,350 --> 00:21:58,300 Opret følgende par af web-sider. 441 00:21:58,300 --> 00:22:00,960 Den første skal bare være en meget simpel form med et enkelt felt og en Send 442 00:22:00,960 --> 00:22:01,460 knap. 443 00:22:01,460 --> 00:22:04,070 Så meget ligner det, vi bare gjorde med post.html. 444 00:22:04,070 --> 00:22:07,450 >> Og så det andet fil, du bør oprette 445 00:22:07,450 --> 00:22:11,687 er en fil, en PHP-fil, der forventer input via POST, 446 00:22:11,687 --> 00:22:14,770 og baseret på, hvad brugeren har indtastet, som du kan påtage vil være et heltal. 447 00:22:14,770 --> 00:22:16,160 Du behøver ikke at gøre noget fejlkontrol eller lignende. 448 00:22:16,160 --> 00:22:18,284 Du kan antage at brugeren vil skrive et heltal værdi, 449 00:22:18,284 --> 00:22:22,230 eller noget i en fortolket af PHP som et heltal, ind i denne form. 450 00:22:22,230 --> 00:22:24,790 Du ønsker bare at skabe en n med n store tabel. 451 00:22:24,790 --> 00:22:28,480 >> Så hvis brugeren har anført 10, ønsker vi at har en 10 med 10 store tabel. 452 00:22:28,480 --> 00:22:31,832 Hvis brugeren indsender en 12, vi ønsker en 12 med 12 store tabel. 453 00:22:31,832 --> 00:22:33,790 Bare så du kan se, hvad vi kører på her, 454 00:22:33,790 --> 00:22:36,040 vi vil tage et kig på denne fil i min IDE. 455 00:22:36,040 --> 00:22:38,080 >> Så her i IDE, jeg har mult_form.html. 456 00:22:38,080 --> 00:22:41,370 457 00:22:41,370 --> 00:22:43,100 Jeg vil klikke på det. 458 00:22:43,100 --> 00:22:46,020 Alt hvad jeg ønsker at gøre, er at indsende en værdi. 459 00:22:46,020 --> 00:22:47,590 Indtast 10, ramte Send. 460 00:22:47,590 --> 00:22:51,190 Og tilsyneladende, mult_table.php, som vi kan se i toppen der i webadressen, 461 00:22:51,190 --> 00:22:53,970 Jeg skaber en 10 med 10 store tabel. 462 00:22:53,970 --> 00:22:59,365 >> Hvis jeg skriver 15 og ramte Submit, nu jeg har en 15 med 15 store tabel. 463 00:22:59,365 --> 00:23:02,240 Jeg naturligvis ikke kommer til at vise du indholdet af mult_table.php, 464 00:23:02,240 --> 00:23:04,781 fordi det ville tage det sjove ud af dette derhjemme øvelse. 465 00:23:04,781 --> 00:23:07,480 Men det er en fantastisk måde at få nogle øve arbejde med PHP sløjfer 466 00:23:07,480 --> 00:23:10,889 og POST, meget simpelt, forhåbentlig stress fri eksempel, bare 467 00:23:10,889 --> 00:23:12,180 at gøre en lille smule øvelse. 468 00:23:12,180 --> 00:23:16,540 Og jeg har fået en lille CSS foregår her for at gøre min individuelle bord 469 00:23:16,540 --> 00:23:19,710 celler lige slags pop off en lidt og se lidt mere 470 00:23:19,710 --> 00:23:22,205 som en multiplikationstabel, i modsætning til blot tekst bare 471 00:23:22,205 --> 00:23:23,261 slags sidder der. 472 00:23:23,261 --> 00:23:26,260 Den sidste super globale, vi vil tale om i denne video er noget, der hedder 473 00:23:26,260 --> 00:23:27,597 $ _SESSION. 474 00:23:27,597 --> 00:23:29,930 Og måske det er faktisk det bedste eksempel på noget 475 00:23:29,930 --> 00:23:31,700 vi ville overveje globalt. 476 00:23:31,700 --> 00:23:33,189 Det er en anden array. 477 00:23:33,189 --> 00:23:34,480 Det er en anden associativt array. 478 00:23:34,480 --> 00:23:40,580 Men den er tilgængelig gennem hver PHP-fil, der findes på vores system. 479 00:23:40,580 --> 00:23:43,410 >> Vi behøver ikke at indsende oplysninger én side ad gangen 480 00:23:43,410 --> 00:23:45,400 ligesom vi gør med GET og med POST. 481 00:23:45,400 --> 00:23:46,380 Det er der altid. 482 00:23:46,380 --> 00:23:50,040 Og så dette er fantastisk til en side hvor du er logget ind, for eksempel, 483 00:23:50,040 --> 00:23:53,120 og du vil have din login-oplysninger at vare fra side til side til side. 484 00:23:53,120 --> 00:23:58,180 >> Du kan bare starte en session og derefter bruge $ _SESSION til at gemme ting som 485 00:23:58,180 --> 00:24:02,320 brugerens navn, eller brugerens ID information, og så videre. 486 00:24:02,320 --> 00:24:07,600 Og at oplysningerne vil forblive i $ _SESSION Indtil du ødelægger sessionen 487 00:24:07,600 --> 00:24:09,550 lidt senere. 488 00:24:09,550 --> 00:24:12,375 >> Skrivning dynamiske hjemmesider med PHP gør dem meget bedre. 489 00:24:12,375 --> 00:24:14,250 Dine websteder bliver meget dynamisk, og du ikke gør 490 00:24:14,250 --> 00:24:17,670 nødt til at gøre for meget mere end hvad du ellers ville have gjort netop 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 praksis en masse praksis. 493 00:24:21,630 --> 00:24:26,897 >> Du ved allerede, hvordan man arbejder med C, og så hoppe til PHP er ikke alt for svært. 494 00:24:26,897 --> 00:24:28,730 Hvad er måske lidt smule tricky arbejder 495 00:24:28,730 --> 00:24:33,180 med denne nye idé om GET og POST, og måske blande din HTML og din PHP 496 00:24:33,180 --> 00:24:34,220 sammen. 497 00:24:34,220 --> 00:24:37,570 Men også være opmærksom på, at internettet er et stort lager af information. 498 00:24:37,570 --> 00:24:41,670 Og PHP dokumentation er tilgængelig mange steder, men måske mest 499 00:24:41,670 --> 00:24:43,354 canonically på php.net. 500 00:24:43,354 --> 00:24:45,520 Og du kan finde der, masser af forskellige funktioner, 501 00:24:45,520 --> 00:24:48,330 og bruge sager og eksempler upon eksempler, upon eksempler. 502 00:24:48,330 --> 00:24:51,340 Hvor, hvis du ønsker at prøve og figur ud af, hvordan at gøre noget, odds er, 503 00:24:51,340 --> 00:24:52,964 nogen har formentlig gjort det før dig. 504 00:24:52,964 --> 00:24:55,840 Og du kan bruge dem som inspiration til at gennemføre, hvad 505 00:24:55,840 --> 00:24:58,230 det er du prøver alt for at gennemføre. 506 00:24:58,230 --> 00:24:59,230 >> Jeg er Doug Lloyd. 507 00:24:59,230 --> 00:25:01,210 Det er CS50. 508 00:25:01,210 --> 00:25:02,608