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 syntaks, 3 00:00:07,620 --> 00:00:10,480 Vi snakket mye om hvordan PHP kan brukes på kommandolinjen 4 00:00:10,480 --> 00:00:13,620 til å kjøre programmer på en måte som vi er ganske godt kjent med fra C. 5 00:00:13,620 --> 00:00:15,370 Men som jeg nevnte også i denne videoen, PHP 6 00:00:15,370 --> 00:00:19,572 ble opprinnelig utviklet for å implementere web-programmering, nettsteder. 7 00:00:19,572 --> 00:00:21,780 Og så i denne videoen er vi kommer til å snakke om hvordan vi 8 00:00:21,780 --> 00:00:23,890 bruke PHP i webutvikling sammenheng. 9 00:00:23,890 --> 00:00:26,360 >> Vi vet allerede, fra vår video på HTML, 10 00:00:26,360 --> 00:00:29,820 at nettsteder er bygget ut av et sett med HTML-koder 11 00:00:29,820 --> 00:00:32,850 at semantisk definere strukturen på en nettside. 12 00:00:32,850 --> 00:00:35,910 Men nettsteder som er bygget med ren HTML 13 00:00:35,910 --> 00:00:39,510 lider av en veldig, meget alvorlig begrensning. 14 00:00:39,510 --> 00:00:42,690 >> Og for å illustrere denne begrensningen, la oss vurdere følgende. 15 00:00:42,690 --> 00:00:45,665 Så nå ønsker jeg å bygge en web-side at når brukeren besøker det, 16 00:00:45,665 --> 00:00:49,760 det gir meg den aktuelle tid i Cambridge, Mass., 17 00:00:49,760 --> 00:00:52,620 vise den til den siste minutt. 18 00:00:52,620 --> 00:00:57,910 Hvis jeg var å gjøre dette akkurat nå, Jeg kan si noe sånt som dette. 19 00:00:57,910 --> 00:01:01,330 Gjeldende tid i Cambridge-- så jeg har HTML-koder, head tags, titler, 20 00:01:01,330 --> 00:01:04,610 Kroppen tags-- gjeldende tid i Cambridge er 14:08, 21 00:01:04,610 --> 00:01:06,690 skrive ut militære tid. 22 00:01:06,690 --> 00:01:11,390 >> Hva skjer hvis det er nå 02:09, 14:09? 23 00:01:11,390 --> 00:01:16,470 Vel så langt, med HTML, har jeg å gå inn og endre det til 14:09. 24 00:01:16,470 --> 00:01:19,390 Og så ett minutt senere, Jeg må endre det igjen. 25 00:01:19,390 --> 00:01:22,132 Og så ett minutt senere, Jeg må endre det igjen. 26 00:01:22,132 --> 00:01:24,590 Og som du kan forestille deg, er at trolig den verste jobben noensinne. 27 00:01:24,590 --> 00:01:29,420 Du er webmaster for en nettside, og hvert minutt, 24 timer i døgnet, 28 00:01:29,420 --> 00:01:35,970 du må oppdatere gjeldende klokkeslett ved manuelt åpne time.html og endring 29 00:01:35,970 --> 00:01:41,750 bare at kodebit å si gjeldende tid i timer og minutter. 30 00:01:41,750 --> 00:01:45,850 Det er sannsynligvis ikke en veldig god bruk av våre ressurser, 31 00:01:45,850 --> 00:01:48,880 både menneskelig og beregningsorientert. 32 00:01:48,880 --> 00:01:51,297 >> Nettsteder som er all HTML er helt statisk. 33 00:01:51,297 --> 00:01:53,630 Den eneste måten du kan oppdatere innhold, som vi nettopp har sett, 34 00:01:53,630 --> 00:01:56,339 er å åpne de kilde manuelt filer, redigere dem og lagre dem. 35 00:01:56,339 --> 00:01:58,088 Og så når brukeren oppdaterer siden, 36 00:01:58,088 --> 00:02:01,080 eller besøker siden for første tid, vil de få den nyeste innhold. 37 00:02:01,080 --> 00:02:03,970 Men bare fordi vi har manuelt redigert det. 38 00:02:03,970 --> 00:02:07,980 >> Hvis vi begynner å blande litt PHP der inne, koden vår kan få en mye mer fleksibel. 39 00:02:07,980 --> 00:02:11,940 Og vi kan ha en måte for våre sider å være dynamisk, eller oppdatere seg, 40 00:02:11,940 --> 00:02:15,360 uten å kreve våre fattige webmaster i forrige eksempel 41 00:02:15,360 --> 00:02:16,662 være manuell oppdatering ting. 42 00:02:16,662 --> 00:02:17,870 De kan gjøre det automatisk. 43 00:02:17,870 --> 00:02:19,130 Vi trenger ikke å gripe inn. 44 00:02:19,130 --> 00:02:20,410 Vi kan få litt søvn. 45 00:02:20,410 --> 00:02:24,850 Som sannsynligvis er en god ting hvis du gjør en masse web-programmering. 46 00:02:24,850 --> 00:02:28,360 >> Så i CS50 IDE, kjører vi en web server kalt Apache. 47 00:02:28,360 --> 00:02:35,250 Det er en veldig vanlig, open source web server system. 48 00:02:35,250 --> 00:02:37,320 Dette system har den kapasitet til å tolke 49 00:02:37,320 --> 00:02:41,260 PHP, som kommer til å være nyttig hvis du ønsker å gjøre noe PHP programmering. 50 00:02:41,260 --> 00:02:45,230 >> Og i CS50 IDE, har vi en kommando å gjøre dette veldig enkelt å gjøre, 51 00:02:45,230 --> 00:02:47,280 apache50 starte. 52 00:02:47,280 --> 00:02:49,445 Og da at slash banen, slash til, skråstrek 53 00:02:49,445 --> 00:02:53,350 dir, det er bare en veldig vanlig måte å indikerer hva du har angitt her 54 00:02:53,350 --> 00:02:56,510 er en bane til en bestemt katalog som du 55 00:02:56,510 --> 00:03:00,800 ønsker å være roten område, eller roten siden 56 00:03:00,800 --> 00:03:05,430 eller mappen webserveren vil begynne å undersøke filer og tjene 57 00:03:05,430 --> 00:03:07,850 dem opp til kunder som ber om dem. 58 00:03:07,850 --> 00:03:12,110 Så la oss komme over til CS50 IDE, bare for å vise dere, virkelig rask, hvordan dette fungerer. 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 katalog som heter Week Zero Nine. 61 00:03:36,240 --> 00:03:38,890 Og jeg har two-- jeg ha henrettet en LS-kommandoen bare 62 00:03:38,890 --> 00:03:41,910 over for å vise deg at jeg har to kataloger i her, PHP, 63 00:03:41,910 --> 00:03:46,410 som er sett av filer som jeg brukte i PHP syntaks video, og deretter PHP-web, 64 00:03:46,410 --> 00:03:49,380 som er sett av filer som jeg ønsker å bruke i denne videoen. 65 00:03:49,380 --> 00:03:53,480 >> Og jeg ønsker å starte en webserver forekomst 66 00:03:53,480 --> 00:03:59,089 med innholdet i PHP-web mappen som filene blir servert. 67 00:03:59,089 --> 00:04:00,130 Så hva skal jeg gjøre? 68 00:04:00,130 --> 00:04:05,710 Jeg kommer til å skrive apache50 plass starte, plass PHP, dash web. 69 00:04:05,710 --> 00:04:08,100 Det er banen til katalogen fra der jeg er i dag. 70 00:04:08,100 --> 00:04:09,127 Så jeg trykker på Enter. 71 00:04:09,127 --> 00:04:10,960 Det kommer til å gjøre en litt ting her. 72 00:04:10,960 --> 00:04:14,030 Og så kommer det til å si, Apache startet med hell. 73 00:04:14,030 --> 00:04:20,689 Nettstedet ditt er nå tilgjengelig at-- og så er det nettadressen til nettstedet. 74 00:04:20,689 --> 00:04:21,730 Så hva skal jeg gjøre? 75 00:04:21,730 --> 00:04:26,234 Jeg kommer til å raskt kopiere dette. 76 00:04:26,234 --> 00:04:28,900 Og jeg kommer til å åpne opp-- og Jeg skal zoome ut litt her-- 77 00:04:28,900 --> 00:04:31,570 Jeg kommer til å åpne opp en ny fane i Chrome. 78 00:04:31,570 --> 00:04:34,320 Og jeg kommer til å besøke denne nettadressen. 79 00:04:34,320 --> 00:04:35,299 >> Jeg kommer til å treffe på Enter. 80 00:04:35,299 --> 00:04:36,090 Det kommer til å laste. 81 00:04:36,090 --> 00:04:37,510 Og jeg skal zoome ut igjen. 82 00:04:37,510 --> 00:04:41,350 Og vi kan se her er den Innholdet i min PHP web-katalog. 83 00:04:41,350 --> 00:04:45,290 >> Så nå hva som egentlig skjer her er min forekomst av CS50 IDE 84 00:04:45,290 --> 00:04:49,620 tjener opp disse filene til noen som ber om dem. 85 00:04:49,620 --> 00:04:51,620 Og i løpet av denne videoen, vil vi sortere av 86 00:04:51,620 --> 00:04:55,400 ta en titt på en haug av disse forskjellige filer i sammenheng. 87 00:04:55,400 --> 00:04:57,614 >> For å teste at Apache server fungerer, 88 00:04:57,614 --> 00:04:59,780 som generelt går å være tilfelle i CS50 IDE, 89 00:04:59,780 --> 00:05:02,696 men hvis du gjør dette mer generelt, og du begynner å bygge din egen nettside 90 00:05:02,696 --> 00:05:04,990 servere, det er en virkelig felles slags analog til, 91 00:05:04,990 --> 00:05:08,500 "hello world", som vanligvis brukes for PHP webutvikling. 92 00:05:08,500 --> 00:05:12,855 Som skal ha en fil bestående av nettopp dette code-- 93 00:05:12,855 --> 00:05:18,247 en PHP skillesett med PHP info, parenteser, semikolon i mellom. 94 00:05:18,247 --> 00:05:20,580 Som er utgangspunktet en spesiell PHP funksjon som forteller deg 95 00:05:20,580 --> 00:05:23,970 hvilken versjon av PHP du kjører. 96 00:05:23,970 --> 00:05:26,850 >> Så i CS50 IDE, har jeg at filen tilgjengelig rett 97 00:05:26,850 --> 00:05:28,680 å vise deg hva dette ville se ut. 98 00:05:28,680 --> 00:05:32,860 Så jeg ser på indeksen min fra min PHP forekomst. 99 00:05:32,860 --> 00:05:35,870 Min Apache forekomsten kjører innholdet i PHP-Web. 100 00:05:35,870 --> 00:05:39,290 Og jeg har en fil her heter info.php. 101 00:05:39,290 --> 00:05:41,164 >> Jeg kommer til å klikke den, zoome ut. 102 00:05:41,164 --> 00:05:43,080 Dette er hva du skal å se, ganske mye. 103 00:05:43,080 --> 00:05:45,729 Dette er bare å fortelle meg at min Apache server fungerer. 104 00:05:45,729 --> 00:05:48,270 Og dette er, tilsynelatende, versjon av PHP som jeg kjører. 105 00:05:48,270 --> 00:05:51,590 Dette er min analog til "hello world". 106 00:05:51,590 --> 00:05:53,070 >> Så jeg vet at ting er i drift. 107 00:05:53,070 --> 00:05:54,150 Så vi er godt å gå. 108 00:05:54,150 --> 00:05:55,730 Vi kan fortsette herfra. 109 00:05:55,730 --> 00:05:57,790 >> Så la oss se at tid eksempelet vi var 110 00:05:57,790 --> 00:06:01,950 snakker om med våre fattige webmaster som måtte oppdatere siden hele tiden. 111 00:06:01,950 --> 00:06:05,020 Dette kan være en løsning for hvordan Jeg ville implementere ting 112 00:06:05,020 --> 00:06:08,080 slik at webmaster ikke nødt til å holde oppdatere tiden. 113 00:06:08,080 --> 00:06:10,270 Det ville bare liksom skje automatisk. 114 00:06:10,270 --> 00:06:13,710 >> Den nede, HTML, er det ganske lik, med ett unntak. 115 00:06:13,710 --> 00:06:16,720 Men her har jeg fått noen PHP på toppen. 116 00:06:16,720 --> 00:06:19,940 Jeg har, tilsynelatende, kalles dette funksjon date_default_timezone_set. 117 00:06:19,940 --> 00:06:22,106 >> Og vi snakker ikke om alle disse funksjonene i CS50, 118 00:06:22,106 --> 00:06:24,670 fordi PHP har sannsynligvis ti av tusen. 119 00:06:24,670 --> 00:06:27,540 Det kan være litt av en overdrivelse, men det kan ikke være. 120 00:06:27,540 --> 00:06:29,490 Det fikk en rekke funksjoner innebygd. 121 00:06:29,490 --> 00:06:33,290 Og så dette er en funksjon tilsynelatende setter min tidssone som USA / Øst, 122 00:06:33,290 --> 00:06:36,320 som er den tidssonen som jeg er tiden på å lage denne videoen. 123 00:06:36,320 --> 00:06:38,430 >> Så gjør jeg en telefon til funksjon kalt, dato. 124 00:06:38,430 --> 00:06:43,850 Og tilsynelatende, jeg oppbevarer HIS av noe som heter, tid. 125 00:06:43,850 --> 00:06:45,320 Så hva er det som skjer her? 126 00:06:45,320 --> 00:06:48,040 >> Vel, i utgangspunktet hva som er skjer er, jeg gjør en samtale 127 00:06:48,040 --> 00:06:51,650 til noen server som kommer til å Fortell meg hva klokken er i dag. 128 00:06:51,650 --> 00:06:56,150 Og jeg konvertere den til et format av timer, minutter, sekunder. 129 00:06:56,150 --> 00:07:00,540 Og grunnen til det er hovedstaden H er dette kommer til å gi meg 24 timers tid, ikke 12 130 00:07:00,540 --> 00:07:02,362 time tid, noe som ville være små timer. 131 00:07:02,362 --> 00:07:04,570 Og jeg bare lagre som i en variabel kalt, tid. 132 00:07:04,570 --> 00:07:07,028 Slik at andre linje av PHP der, kallet til funksjonen, 133 00:07:07,028 --> 00:07:09,037 Hittil er bare å komme hyssing, som er 134 00:07:09,037 --> 00:07:12,120 kommer til å gi meg dato, og tid, og en haug med andre opplysninger. 135 00:07:12,120 --> 00:07:16,480 Og det første argumentet der, at HIS, er bare å trekke ut den viktigste delen 136 00:07:16,480 --> 00:07:20,614 at jeg bryr meg om for eksempel som er det time, minutt og sekund. 137 00:07:20,614 --> 00:07:22,030 Så det er alt som skjer. 138 00:07:22,030 --> 00:07:23,562 Så jeg lagre det i en variabel $ tid. 139 00:07:23,562 --> 00:07:25,270 Og deretter ned på helt nederst der, jeg 140 00:07:25,270 --> 00:07:28,980 har som forkortelse for skrive ut gjeldende klokkeslett. 141 00:07:28,980 --> 00:07:32,050 Så jeg skal bare skrive ut ut hva det nåværende tidspunkt er. 142 00:07:32,050 --> 00:07:37,220 >> Så la oss ta en titt på dette i CS50 IDE og se hvor vi er nå 143 00:07:37,220 --> 00:07:40,002 besparende at webmaster en masse problemer. 144 00:07:40,002 --> 00:07:42,570 Ok, så her er jeg igjen tilbake på rotkatalogen 145 00:07:42,570 --> 00:07:45,040 av min Apache eksempel. 146 00:07:45,040 --> 00:07:51,585 Og jeg har en fil her heter time.php. 147 00:07:51,585 --> 00:07:53,559 Jeg bare kommer til å klikke på det. 148 00:07:53,559 --> 00:07:55,850 Og jeg skal bla opp, fordi vi zoomet inn ganske langt. 149 00:07:55,850 --> 00:07:57,257 Den nåværende tidspunkt er 14:20:34. 150 00:07:57,257 --> 00:07:59,090 Så jeg gjør det timer, minutter og sekunder. 151 00:07:59,090 --> 00:08:01,910 Og jeg kan oppdatere siden og få ny tid. 152 00:08:01,910 --> 00:08:02,420 --41. 153 00:08:02,420 --> 00:08:07,240 Jeg kommer til å oppdatere siden og få ny tid, 44, 46, 47. 154 00:08:07,240 --> 00:08:10,490 >> Så, jeg er helt klart ikke endre noe selv. 155 00:08:10,490 --> 00:08:11,720 Jeg her å oppdatere siden. 156 00:08:11,720 --> 00:08:13,711 Så jeg kan ikke være tilbake der du redigerer det. 157 00:08:13,711 --> 00:08:15,710 Og jeg lover deg, det gjør jeg ikke har noen medsammensvorne 158 00:08:15,710 --> 00:08:18,230 som redigerer filen på mine vegne på siden. 159 00:08:18,230 --> 00:08:21,260 >> Jeg bare bruker det PHP-funksjonen, tid, for å generere tids for meg 160 00:08:21,260 --> 00:08:22,340 automatisk. 161 00:08:22,340 --> 00:08:24,800 Slik at selv om jeg sover, og min web server kjører, 162 00:08:24,800 --> 00:08:28,884 brukeren som besøker den siden er fortsatt kommer til å få akkurat det nåværende tidspunkt. 163 00:08:28,884 --> 00:08:29,800 Så det er ganske bra. 164 00:08:29,800 --> 00:08:33,609 Jeg har laget min side mer dynamisk med ikke for mye PHP-kode. 165 00:08:33,609 --> 00:08:36,650 Det var bare to linjer med kode, og deretter en liten bit av en utskrifts uttalelse. 166 00:08:36,650 --> 00:08:38,441 Og allerede har jeg en mye mer dynamisk nettsted 167 00:08:38,441 --> 00:08:42,750 enn det første eksempelet vi så i begynnelsen av videoen. 168 00:08:42,750 --> 00:08:46,660 >> Så husker fra videoen på PHP syntaks at når PHP tolk går 169 00:08:46,660 --> 00:08:50,000 programmet vårt, ignorerer det alt det er ikke inne i PHP skilletegn, 170 00:08:50,000 --> 00:08:51,500 spytter den ut. 171 00:08:51,500 --> 00:08:54,410 I dette eksempelet, hva ting at det ble spyttet ut var HTML. 172 00:08:54,410 --> 00:08:58,080 Og dette betyr at jeg kan nå flette HTML og PHP sammen. 173 00:08:58,080 --> 00:09:01,920 Fordi tolken vil bare ignorere HTML og bokstavelig utgang det. 174 00:09:01,920 --> 00:09:04,140 Noe som er bra, ikke sant? 175 00:09:04,140 --> 00:09:06,100 >> Fordi formodentlig, på slutten av dagen, 176 00:09:06,100 --> 00:09:08,360 Jeg ønsker nettstedet mitt til være konstruert av HTML. 177 00:09:08,360 --> 00:09:12,880 Slik at enhver nettleser kan tolke det, eller forstår HTML på siden 178 00:09:12,880 --> 00:09:17,270 og gjengi det som noe som vi kan faktisk forstå som mennesker. 179 00:09:17,270 --> 00:09:19,430 Og jeg kan bare bruke PHP for de delene av nettstedet mitt 180 00:09:19,430 --> 00:09:23,390 det krever dynamikk, som krever meg å ha ting som oppdaterer hele tiden. 181 00:09:23,390 --> 00:09:26,630 Den statiske informasjon kan forbli 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 gjøre dette? 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 skrive ut alle HTML, ved hjelp av PHP utskriftsfunksjonen. 186 00:09:33,850 --> 00:09:35,870 Hvorfor jeg ikke gjør det? 187 00:09:35,870 --> 00:09:37,100 Tenk på det et sekund. 188 00:09:37,100 --> 00:09:41,220 >> Hvorfor, når jeg bare kunne skrive ut out-- jeg kunne ha linjer med PHP som bare sier: 189 00:09:41,220 --> 00:09:43,841 print HTML tag, skriverhodet. 190 00:09:43,841 --> 00:09:44,840 Hvorfor jeg ikke gjør det? 191 00:09:44,840 --> 00:09:48,230 Hvorfor får jeg blande PHP og HTML? 192 00:09:48,230 --> 00:09:50,080 >> Vel, hvis du tror på det et sekund. 193 00:09:50,080 --> 00:09:52,824 PHP, har tolken å tolke hva den ser. 194 00:09:52,824 --> 00:09:54,990 Og så det kommer til å ha å utføre en kodelinje. 195 00:09:54,990 --> 00:09:56,450 Skrive ut HTML. 196 00:09:56,450 --> 00:09:57,700 Skriv ut åpen hodet tag. 197 00:09:57,700 --> 00:09:58,969 Skriv ut åpen tittelen koden. 198 00:09:58,969 --> 00:10:00,760 Det er nødt til å utføre og tolke 199 00:10:00,760 --> 00:10:02,671 at hver enkelt steg på veien. 200 00:10:02,671 --> 00:10:04,670 Hvorfor ikke bare la tolk bare glatte over 201 00:10:04,670 --> 00:10:06,878 ting det ikke forstår og gjøre det automatisk? 202 00:10:06,878 --> 00:10:11,365 Det kommer til å spare meg mye tid å blande min HTML og min PHP sammen. 203 00:10:11,365 --> 00:10:16,220 >> Og så det er derfor vi ikke bare ha åpent PHP delimiter 204 00:10:16,220 --> 00:10:19,450 og så bare skrive ut hele Innholdet på siden vår som en gigantisk PHP 205 00:10:19,450 --> 00:10:24,330 ringe til funksjonen, Skriv ut og deretter nær PHP skilletegn og vi er ferdige. 206 00:10:24,330 --> 00:10:27,620 Så det er derfor vi blande dem opp sammen. 207 00:10:27,620 --> 00:10:32,345 >> Så langt har vi ikke sett for mye av en forskjell fra generell PHP syntaks. 208 00:10:32,345 --> 00:10:33,720 Det har vært ganske grei. 209 00:10:33,720 --> 00:10:35,553 Vi har allerede sett spørsmålstegn, lik. 210 00:10:35,553 --> 00:10:39,012 Vi så et par nye funksjonskall, men ingenting virkelig lyst til å gå på. 211 00:10:39,012 --> 00:10:40,720 La oss kanskje gjøre ting en litt mer avansert. 212 00:10:40,720 --> 00:10:44,360 Hva hvis vi ønsker å sende informasjon mellom ulike PHP-filer, 213 00:10:44,360 --> 00:10:47,280 slik at kanskje kan brukeren sende informasjon til meg. 214 00:10:47,280 --> 00:10:50,230 Og så kunne jeg gjøre noe med det på en annen side. 215 00:10:50,230 --> 00:10:52,990 >> Så PHP har støtte for noe som kalles Super Globalt 216 00:10:52,990 --> 00:10:55,297 Variabler, som høres ganske utrolig. 217 00:10:55,297 --> 00:10:57,130 De er egentlig bare gigantiske assosiative matriser 218 00:10:57,130 --> 00:10:59,900 som bidrar til å gjennomføre dette funksjonaliteten til bestått 219 00:10:59,900 --> 00:11:05,010 informasjon mellom PHP-filer som er eksisterende på vår webserver. 220 00:11:05,010 --> 00:11:07,760 >> Den første av disse super globals kalles $ _GET. 221 00:11:07,760 --> 00:11:10,140 Og det er trolig den enkleste å forstå. 222 00:11:10,140 --> 00:11:12,430 Hva skjer med $ _GET? 223 00:11:12,430 --> 00:11:16,240 Vel, i utgangspunktet, er bruker kommer til å skrive ekstra informasjon 224 00:11:16,240 --> 00:11:18,390 på slutten av våre nettadresser. 225 00:11:18,390 --> 00:11:21,460 Og uansett hva de skriver, forutsatt det er formatert på en bestemt måte 226 00:11:21,460 --> 00:11:25,830 kalt en søkestreng, som er like et sett med viktige verdi par skilt 227 00:11:25,830 --> 00:11:27,810 av-tegn. 228 00:11:27,810 --> 00:11:32,362 De sentrale verdi parene vil være lagret i en $ _GET assosiativ array. 229 00:11:32,362 --> 00:11:34,070 Og fra vår video på PHP syntaks, vi vet 230 00:11:34,070 --> 00:11:40,080 hvordan jobbe med assosiative arrays allerede. 231 00:11:40,080 --> 00:11:44,090 Så her er et eksempel på noen PHP, hvor kanskje jeg er 232 00:11:44,090 --> 00:11:50,180 trekke ut alle de viktigste verdi-par at brukeren følger med i nettadressen. 233 00:11:50,180 --> 00:11:51,970 Så jeg har min åpne PHP skilletegn. 234 00:11:51,970 --> 00:11:53,410 Jeg har en foreach loop. 235 00:11:53,410 --> 00:11:57,410 Jeg gjentar over Super Global Array kalt $ _GET. 236 00:11:57,410 --> 00:12:00,160 >> Og jeg ønsker å være i stand til å referere til både nøkkelen og verdien. 237 00:12:00,160 --> 00:12:02,410 Og jeg bare skrive dem ut, hver og en på tilsynelatende 238 00:12:02,410 --> 00:12:03,780 sin egen paragraf tag her. 239 00:12:03,780 --> 00:12:07,620 Jeg skriver ut noen HTML og interpolere verdiene 240 00:12:07,620 --> 00:12:12,900 av nøkkel og verdi i det utsagnet. 241 00:12:12,900 --> 00:12:16,980 >> Så la oss ta en titt på hvordan dette faktisk ville fungere på vår IDE. 242 00:12:16,980 --> 00:12:18,980 Og kanskje dette vil hjelpe viser en litt 243 00:12:18,980 --> 00:12:21,880 av hva GET faktisk gjør. 244 00:12:21,880 --> 00:12:23,610 Så jeg er tilbake her i min web roten. 245 00:12:23,610 --> 00:12:25,318 Og jeg skal zoome inn en litt å vise deg 246 00:12:25,318 --> 00:12:28,620 at jeg har en fil som heter, get1.php. 247 00:12:28,620 --> 00:12:31,830 >> Så la oss klikke på get1.php. 248 00:12:31,830 --> 00:12:36,600 Og jeg ser ikke noe innhold. 249 00:12:36,600 --> 00:12:38,390 Det er rart, ikke sant? 250 00:12:38,390 --> 00:12:39,740 Vel, egentlig ikke egentlig. 251 00:12:39,740 --> 00:12:42,030 Fordi jeg ikke leverer noe i URL. 252 00:12:42,030 --> 00:12:46,270 Jeg kommer til å get1.php, men jeg ikke leverer noen viktige verdi par 253 00:12:46,270 --> 00:12:47,450 som en del av min søkestrengen. 254 00:12:47,450 --> 00:12:50,510 Så la oss legge til en søkestreng og se hva denne filen kan gjøre. 255 00:12:50,510 --> 00:12:53,040 >> For å begynne en søkestrengen du bare skriver spørsmålstegn. 256 00:12:53,040 --> 00:13:00,820 Så kanskje jeg skal si name = Doug & året = 2015. 257 00:13:00,820 --> 00:13:02,914 Og da vil jeg trykker på Enter. 258 00:13:02,914 --> 00:13:04,080 Nå merke til hva som skjer. 259 00:13:04,080 --> 00:13:05,480 Jeg er fortsatt i get1.php. 260 00:13:05,480 --> 00:13:08,445 Men nå har jeg levert sentrale verdi-par, og jeg er 261 00:13:08,445 --> 00:13:14,940 skrive dem ut på egen hånd paragraph-- navn, Doug-- år, 2015. 262 00:13:14,940 --> 00:13:17,970 Det er akkurat den koden vi bare så på lysbildet et øyeblikk siden. 263 00:13:17,970 --> 00:13:22,290 >> Og hvis jeg vil kanskje legge til en annen nøkkelverdi pair, og class = CS50. 264 00:13:22,290 --> 00:13:25,325 265 00:13:25,325 --> 00:13:27,580 Nå har jeg en annen sentral verdi paret som er skrevet ut 266 00:13:27,580 --> 00:13:30,025 når jeg besøker nettadressen på nytt. 267 00:13:30,025 --> 00:13:31,900 Nå kanskje dette er ikke formatert veldig godt. 268 00:13:31,900 --> 00:13:33,660 Så jeg har en annen versjon av get.php. 269 00:13:33,660 --> 00:13:36,350 Det er get2.php. 270 00:13:36,350 --> 00:13:39,070 >> Forskjellen i denne ene er at jeg har CSS-fil, 271 00:13:39,070 --> 00:13:41,690 og det formaterer ting litt mer pent for meg. 272 00:13:41,690 --> 00:13:43,940 Det er kanskje ikke den mest vakker CSS i verden. 273 00:13:43,940 --> 00:13:45,650 Men det er bare en annen måte å gjøre det. 274 00:13:45,650 --> 00:13:52,840 Så jeg kan fortsatt få tilgang til mine variabler som bruker $ _GET. 275 00:13:52,840 --> 00:13:56,610 Og i dette tilfellet, er jeg bare slags gjør CSS litt mer fancy. 276 00:13:56,610 --> 00:13:58,360 Og hvis vi pop over til min IDE for et sekund, 277 00:13:58,360 --> 00:14:06,870 Jeg skal vise deg i min PHP web katalogen her, get2.php. 278 00:14:06,870 --> 00:14:10,010 Vi vil åpne den opp, noen HTML her. 279 00:14:10,010 --> 00:14:13,220 Angivelig Jeg lenking i at CSS-filen jeg snakket om. 280 00:14:13,220 --> 00:14:14,570 Jeg åpner en tabell tag. 281 00:14:14,570 --> 00:14:15,970 Og så her er min foreach loop. 282 00:14:15,970 --> 00:14:18,450 >> Her er det, hva jeg viste på lysbildet før. 283 00:14:18,450 --> 00:14:21,007 Den eneste forskjellen er at jeg har denne nøkkelen og verdi CSS 284 00:14:21,007 --> 00:14:22,340 styling at jeg søker på det. 285 00:14:22,340 --> 00:14:25,622 Men det er alt jeg gjør, er jeg itera over $ _GET å få alle 286 00:14:25,622 --> 00:14:26,580 av de viktigste verdiparene. 287 00:14:26,580 --> 00:14:28,890 >> Og jeg skrive dem ut som tabellen. 288 00:14:28,890 --> 00:14:33,230 Og tilsynelatende, jeg formaterer nøklene på en måte, med 00:14:40,057 Så tilsynelatende som gjelder for noen klasseselektor i min CSS fil GET.CSS. 290 00:14:40,057 --> 00:14:42,890 Og tilsynelatende, jeg skriver ut mine verdier en helt annen måte. 291 00:14:42,890 --> 00:14:45,530 Som er ganske mye hva vi så her, hvor 292 00:14:45,530 --> 00:14:47,710 våre verdier ble trykt med en blå bakgrunn, 293 00:14:47,710 --> 00:14:49,969 og våre nøkler ble trykt med gul bakgrunn. 294 00:14:49,969 --> 00:14:52,010 Så det er hvordan jeg får de forskjellige stiler. 295 00:14:52,010 --> 00:14:54,054 Fordi jeg bruker forskjellige CSS-klasser. 296 00:14:54,054 --> 00:14:55,470 Men det er ganske mye det for GET. 297 00:14:55,470 --> 00:14:58,380 Som om jeg bare trekke ut informasjon. 298 00:14:58,380 --> 00:15:01,000 Og i dette tilfellet, er jeg bare skriver den til skjermen. 299 00:15:01,000 --> 00:15:04,310 Jeg får det ut av URL, og det er det GET gjør for oss. 300 00:15:04,310 --> 00:15:06,470 >> Du ser en mulig do Problemet her skjønt? 301 00:15:06,470 --> 00:15:11,720 Hvorfor skulle vi kanskje ikke ønsker å bruke $ _GET? 302 00:15:11,720 --> 00:15:15,440 Hva om, kanskje, jeg var å gjøre denne spørringen? 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 legg merke til her at tilsynelatende passerer passordet mitt i. 306 00:15:22,187 --> 00:15:23,770 Og kanskje passordet mitt er pinlig. 307 00:15:23,770 --> 00:15:28,070 Eller kanskje jeg ikke vil at folk skal vet hva passordet er, ikke sant. 308 00:15:28,070 --> 00:15:33,140 >> Hvis jeg passerer den though-- hvis jeg bruker den $ _GET metoden, det som skjer er, 309 00:15:33,140 --> 00:15:34,970 som kommer til å være i URL. 310 00:15:34,970 --> 00:15:39,890 Så noen ondsinnet bruker makt kunne se hva jeg gjør. 311 00:15:39,890 --> 00:15:42,040 Jeg kan sende dem sensitiv informasjon. 312 00:15:42,040 --> 00:15:43,310 Eller kanskje det er ikke engang en ondsinnet bruker. 313 00:15:43,310 --> 00:15:45,790 Kanskje det bare er din venn som står over skulderen. 314 00:15:45,790 --> 00:15:47,650 Og nå vet de passordet Facebook-kontoen din. 315 00:15:47,650 --> 00:15:49,483 >> Og kanskje de ikke ville gjøre noe med det. 316 00:15:49,483 --> 00:15:53,749 Men hvis passordet var sendes via $ _GET til Facebook, 317 00:15:53,749 --> 00:15:55,290 nå vet de Facebook-passord. 318 00:15:55,290 --> 00:15:59,000 Fordi det er rett der i URL når du har gjort sender informasjon. 319 00:15:59,000 --> 00:16:01,887 >> Og så kanskje det er ikke den beste måte å passere sensitiv informasjon. 320 00:16:01,887 --> 00:16:04,470 Det er en god måte å sende informasjon at vi ikke gjør det spesielt 321 00:16:04,470 --> 00:16:05,886 bryr seg om å være for følsom. 322 00:16:05,886 --> 00:16:09,347 Fordi GET er ganske rask, i forhold til de andre super globals 323 00:16:09,347 --> 00:16:10,430 vi kommer til å snakke om. 324 00:16:10,430 --> 00:16:13,330 Men kanskje ikke det beste verktøyet for sensitiv informasjon. 325 00:16:13,330 --> 00:16:15,990 >> For at vi kanskje vil bruke noe som heter $ _POST, 326 00:16:15,990 --> 00:16:18,560 som er en annen Super global variabel. 327 00:16:18,560 --> 00:16:20,750 Det er en annen assosiativ array. 328 00:16:20,750 --> 00:16:23,240 Så det fungerer ganske mye akkurat det samme som GET. 329 00:16:23,240 --> 00:16:26,850 Unntatt, i stedet for å trekke ut informasjon fra nettadressen, 330 00:16:26,850 --> 00:16:29,870 det gjør noe gjennom HTTP-hoder. 331 00:16:29,870 --> 00:16:32,080 Så husker fra vår video på HTTP, vi snakket 332 00:16:32,080 --> 00:16:34,850 om hvordan nettlesere, servere, og klienter kommunisere. 333 00:16:34,850 --> 00:16:38,070 Og informasjonen sendes tilbake frem og tilbake i HTTP-hoder. 334 00:16:38,070 --> 00:16:43,330 >> Med $ _POST, informasjon er typisk sendes gjennom disse HTTP-hoder. 335 00:16:43,330 --> 00:16:49,770 Og vi vil oftest se $ _POST i sammenheng med å sende HTML-skjemaer. 336 00:16:49,770 --> 00:16:52,390 Du kan fortsatt bruke HTML-skjemaer å sende inn ting for å få. 337 00:16:52,390 --> 00:16:56,120 Men de er vanligvis brukt i sammenheng med POST. 338 00:16:56,120 --> 00:17:00,280 >> Så her er et eksempel på et HTML-skjema. 339 00:17:00,280 --> 00:17:06,750 Nå har vi sett dette før, men vi har ikke sett denne delen, action = "post.php". 340 00:17:06,750 --> 00:17:10,756 Så når vi snakket om former i sammenheng med HTML, jeg hadde en Send-knappen. 341 00:17:10,756 --> 00:17:13,630 Og hvis du husker, vil jeg klikker Send og siden bare oppdateres, 342 00:17:13,630 --> 00:17:14,660 gjorde ikke noe. 343 00:17:14,660 --> 00:17:18,250 >> I dette tilfellet, jeg sender uansett hva jeg skriver på dette skjemaet, 344 00:17:18,250 --> 00:17:20,750 til en PHP-fil som heter post.php. 345 00:17:20,750 --> 00:17:25,810 Og tilsynelatende, måten jeg gjør det i dette skjemaet bruker POST-metoden. 346 00:17:25,810 --> 00:17:29,040 Så hver bit av informasjon at jeg skriver inn dette skjemaet 347 00:17:29,040 --> 00:17:31,470 vil bli fremmet gjennom HTTP-hoder. 348 00:17:31,470 --> 00:17:36,440 >> Den vil være tilgjengelig i post.php, fordi det er handlingen av formen min. 349 00:17:36,440 --> 00:17:39,811 Det vil være tilgjengelig ved å gå til $ _POST. 350 00:17:39,811 --> 00:17:42,310 Og tilsynelatende, slik jeg kan få på hvert enkelt element 351 00:17:42,310 --> 00:17:44,765 med at assosiativ array er med dette attributtet, 352 00:17:44,765 --> 00:17:48,130 Navn egenskap av våre innspill tags. 353 00:17:48,130 --> 00:17:53,540 >> Så tilsynelatende jeg kan si $ _POST torget parentes nevne å få hva brukeren 354 00:17:53,540 --> 00:17:55,440 skrevet i det første feltet. 355 00:17:55,440 --> 00:18:01,030 Og $ _POST passord, av pw heller, å få på hva brukeren har skrevet 356 00:18:01,030 --> 00:18:03,650 i det andre feltet. 357 00:18:03,650 --> 00:18:06,414 >> Så la oss ta en titt på dette over i CS50 IDE. 358 00:18:06,414 --> 00:18:08,330 Så her er vi, og jeg skal zoome inn for et sekund. 359 00:18:08,330 --> 00:18:12,380 Og vi har en fil som heter 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 veldig enkel web-skjema. 362 00:18:16,300 --> 00:18:18,750 Det er den formen vi nettopp så på lysbildet en andre siden. 363 00:18:18,750 --> 00:18:25,610 >> Jeg kan skrive, Doug, og jeg kan skriver passordet mitt, som vi alle 364 00:18:25,610 --> 00:18:27,340 vet er squadgoals. 365 00:18:27,340 --> 00:18:30,100 Og jeg vil treffe Send. 366 00:18:30,100 --> 00:18:32,290 Og tilsynelatende, at sender til post.php. 367 00:18:32,290 --> 00:18:33,810 Og jeg tydeligvis å skrive det. 368 00:18:33,810 --> 00:18:36,490 Så jeg bli kvitt all sikkerheten at POST gir meg ved bare å skrive ut 369 00:18:36,490 --> 00:18:37,720 brukernavn og passord. 370 00:18:37,720 --> 00:18:38,960 >> Brukerens navn er Doug. 371 00:18:38,960 --> 00:18:40,810 Brukerens passord er squadgoals. 372 00:18:40,810 --> 00:18:42,480 Hvordan klarte jeg dette? 373 00:18:42,480 --> 00:18:44,800 Vel, pop over til IDE igjen for et sekund. 374 00:18:44,800 --> 00:18:51,340 Vi vil rulle ned for å ta en titt på post.php, som var 375 00:18:51,340 --> 00:18:54,040 handlingen som jeg brukte til å sende inn her. 376 00:18:54,040 --> 00:18:55,739 Det var handlingen av min HTML-skjema. 377 00:18:55,739 --> 00:18:56,780 Og det er alt jeg gjør. 378 00:18:56,780 --> 00:19:01,370 Brukerens navn er, og jeg er utskrift ut innholdet i $ _POST "navn". 379 00:19:01,370 --> 00:19:04,660 Og så brukerens passord er $ _POST "passord". 380 00:19:04,660 --> 00:19:08,920 Så jeg fikk denne informasjonen ved å sende HTML-skjemaet. 381 00:19:08,920 --> 00:19:13,790 Og jeg kan nå trekke den med $ _POST fordi metoden jeg brukte for å overføre 382 00:19:13,790 --> 00:19:17,470 data med at formen var POST-metoden. 383 00:19:17,470 --> 00:19:20,640 >> Nå er det nok ikke så great-- jeg kommer 384 00:19:20,640 --> 00:19:24,510 å gå tilbake for en andre til vår set her-- 385 00:19:24,510 --> 00:19:30,120 det er nok ikke så stor hvis jeg er sende inn informasjon med POST, 386 00:19:30,120 --> 00:19:32,532 som er tilsynelatende sikrere. 387 00:19:32,532 --> 00:19:34,740 Det er nok ikke så stor hvis jeg gjør det, og deretter 388 00:19:34,740 --> 00:19:36,470 skrive ut brukerens passord. 389 00:19:36,470 --> 00:19:38,540 Det er ment å være mer 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 snippet her jeg ønsker 392 00:19:42,910 --> 00:19:46,410 å bare trekke oppmerksomheten din til noen datasikkerhet bekymringer, bare noe 393 00:19:46,410 --> 00:19:51,200 å tenke på som du er arbeider eller bruke internett. 394 00:19:51,200 --> 00:19:53,890 Dette er bare noe å vurdere. 395 00:19:53,890 --> 00:19:57,980 >> Jeg fortalte deg at informasjon er fremmes gjennom HTTP-hoder 396 00:19:57,980 --> 00:19:59,724 når du bruker POST-metoden. 397 00:19:59,724 --> 00:20:01,390 Som betyr at de er ikke helt sikker. 398 00:20:01,390 --> 00:20:05,610 De er vanskeligere å finne enn ved hjelp av GET-metoden, der 399 00:20:05,610 --> 00:20:06,882 det er bare rett i nettadressen. 400 00:20:06,882 --> 00:20:08,340 Men det er fortsatt en vei å finne det. 401 00:20:08,340 --> 00:20:10,423 Og jeg vil bare vise du dette, slik at du kanskje 402 00:20:10,423 --> 00:20:12,940 begynne å tenke på dette som du jobber, eller ved hjelp av 403 00:20:12,940 --> 00:20:14,560 nettsteder og innsending passord, og kanskje bruker 404 00:20:14,560 --> 00:20:16,518 det samme passordet i en mange forskjellige steder. 405 00:20:16,518 --> 00:20:22,060 Vet at det er fortsatt er faktisk ganske lett å finne ut noens passord. 406 00:20:22,060 --> 00:20:25,190 >> Og så her, jeg kommer å gå til post2.html. 407 00:20:25,190 --> 00:20:28,850 Og forskjellen med post2.html og post2.php er ganske subtil. 408 00:20:28,850 --> 00:20:31,420 Forskjellen er bare at jeg ikke skrive ut 409 00:20:31,420 --> 00:20:33,520 passordet når jeg sender inn skjemaet. 410 00:20:33,520 --> 00:20:35,260 >> Så jeg kommer til å skrive i, Doug. 411 00:20:35,260 --> 00:20:38,365 Og jeg kommer til å skrive i, squadgoals, selv 412 00:20:38,365 --> 00:20:40,770 selv om vi vet at det er passordet. 413 00:20:40,770 --> 00:20:42,540 Før jeg legger inn danne skjønt, jeg kommer 414 00:20:42,540 --> 00:20:45,864 å åpne opp Developer Tools, bare for å viser deg hva som skal skje her. 415 00:20:45,864 --> 00:20:47,530 Så i Chrome, jeg bare kommer til å treffe F12. 416 00:20:47,530 --> 00:20:54,120 417 00:20:54,120 --> 00:20:57,230 Og det kommer til å åpne opp min Utviklerverktøy på høyre side. 418 00:20:57,230 --> 00:20:59,480 Jeg har ikke sendt inn skjemaet ennå. 419 00:20:59,480 --> 00:21:02,680 Nå kommer jeg til å treffe Send inn på min form. 420 00:21:02,680 --> 00:21:05,370 Og tilsynelatende, gjorde jeg en ringe til, eller jeg gjorde en forespørsel 421 00:21:05,370 --> 00:21:07,620 til post2.php, som er fornuftig. 422 00:21:07,620 --> 00:21:10,040 Jeg kommer til å klikke på det. 423 00:21:10,040 --> 00:21:13,802 >> Så over her, jeg kommer til å klikke på hoder. 424 00:21:13,802 --> 00:21:15,410 Det er en masse ting som skjer her. 425 00:21:15,410 --> 00:21:21,310 Men hvis jeg blar ned til selve bunn, varsel rett det-- kalenderen min 426 00:21:21,310 --> 00:21:25,180 har blokkert den for en second-- rett det helt nederst 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 bruker POST Metoden, som er sikrere, 429 00:21:30,010 --> 00:21:33,570 bare være klar over at når du gjør det, du fortsatt overføring av informasjon 430 00:21:33,570 --> 00:21:34,430 gjennom HTTP. 431 00:21:34,430 --> 00:21:36,770 Og det kan fortsatt være funnet av en motstander. 432 00:21:36,770 --> 00:21:39,270 Det er bare noe vi kommer å måtte forholde seg til egentlig. 433 00:21:39,270 --> 00:21:41,980 Kanskje det er noen måter å kryptere vår passord før vi sender dem over, 434 00:21:41,980 --> 00:21:44,410 som ville være en bedre, som jeg ikke gjør her. 435 00:21:44,410 --> 00:21:47,010 >> Men bare være klar over at POST metoden har begrensninger også. 436 00:21:47,010 --> 00:21:49,801 Det er en forbedring i forhold til GET i form av å være umiddelbart synlig. 437 00:21:49,801 --> 00:21:51,280 Men det er ikke en komplett løsning. 438 00:21:51,280 --> 00:21:53,280 Så her er et eksempel på en rask hjemme trening 439 00:21:53,280 --> 00:21:56,350 som du kan bruke for å få litt øve jobbe med PHP. 440 00:21:56,350 --> 00:21:58,300 Opprett følgende par nettsider. 441 00:21:58,300 --> 00:22:00,960 Den første skal bare være en meget enkel danner med et enkelt felt og en Send 442 00:22:00,960 --> 00:22:01,460 knapp. 443 00:22:01,460 --> 00:22:04,070 Så veldig likt det vi bare gjorde med post.html. 444 00:22:04,070 --> 00:22:07,450 >> Og deretter den andre fil du bør lage 445 00:22:07,450 --> 00:22:11,687 er en fil, en PHP-fil, som venter input, via POST, 446 00:22:11,687 --> 00:22:14,770 og basert på hva brukeren har skrevet, som du kan anta vil være et heltall. 447 00:22:14,770 --> 00:22:16,160 Du trenger ikke å gjøre noe feilkontroll eller lignende. 448 00:22:16,160 --> 00:22:18,284 Du kan anta at brukeren vil skrive et heltall, 449 00:22:18,284 --> 00:22:22,230 eller noe sånt som en tolket av PHP som et heltall, i den form. 450 00:22:22,230 --> 00:22:24,790 Du bare ønsker å opprette en n av n multiplikasjonstabellen. 451 00:22:24,790 --> 00:22:28,480 >> Så hvis brukeren sender 10, vi ønsker å har en 10 med 10 multiplikasjonstabellen. 452 00:22:28,480 --> 00:22:31,832 Hvis brukeren sender en 12, vi ønsker en 12 multiplikasjon av 12 bordet. 453 00:22:31,832 --> 00:22:33,790 Bare så du kan se hva vi kjører på her, 454 00:22:33,790 --> 00:22:36,040 vi tar en titt på denne filen 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 den. 458 00:22:43,100 --> 00:22:46,020 Alt jeg vil gjøre er å sende inn en verdi. 459 00:22:46,020 --> 00:22:47,590 Skriv inn 10, traff Send. 460 00:22:47,590 --> 00:22:51,190 Og tilsynelatende, mult_table.php, som vi kan se på toppen er det i nettadressen, 461 00:22:51,190 --> 00:22:53,970 Jeg oppretter en 10 av 10 multiplikasjonstabellen. 462 00:22:53,970 --> 00:22:59,365 >> Hvis jeg skriver 15 og slo inn, nå er jeg har en 15 med 15 multiplikasjonstabellen. 463 00:22:59,365 --> 00:23:02,240 Jeg er selvfølgelig ikke kommer til å vise du innholdet i mult_table.php, 464 00:23:02,240 --> 00:23:04,781 fordi det ville ta moro ut av dette hjemme trening. 465 00:23:04,781 --> 00:23:07,480 Men det er en fin måte å få litt øve jobbe med PHP sløyfer 466 00:23:07,480 --> 00:23:10,889 og POST, veldig enkelt, forhåpentligvis stressfri eksempel bare 467 00:23:10,889 --> 00:23:12,180 å gjøre en liten bit av praksis. 468 00:23:12,180 --> 00:23:16,540 Og jeg har fått en liten CSS skjer her til å gjøre min individuelle bord 469 00:23:16,540 --> 00:23:19,710 celler bare slags pop av en litt og se litt mer 470 00:23:19,710 --> 00:23:22,205 som en multiplikasjonstabellen, i motsetning til bare tekst bare 471 00:23:22,205 --> 00:23:23,261 slags sitter der. 472 00:23:23,261 --> 00:23:26,260 Den siste super global vi skal snakke om i denne videoen er noe som heter 473 00:23:26,260 --> 00:23:27,597 $ _SESSION. 474 00:23:27,597 --> 00:23:29,930 Og kanskje dette er faktisk det beste eksempel på noe 475 00:23:29,930 --> 00:23:31,700 vi vil vurdere global. 476 00:23:31,700 --> 00:23:33,189 Det er en annen rekke. 477 00:23:33,189 --> 00:23:34,480 Det er en annen assosiativ array. 478 00:23:34,480 --> 00:23:40,580 Men det er tilgjengelig gjennom hver PHP-fil som finnes på vårt system. 479 00:23:40,580 --> 00:23:43,410 >> Vi trenger ikke å sende inn Informasjon én side om gangen 480 00:23:43,410 --> 00:23:45,400 som vi gjør med GET og med POST. 481 00:23:45,400 --> 00:23:46,380 Det er alltid der. 482 00:23:46,380 --> 00:23:50,040 Og så dette er flott for en side hvor du er logget inn, for eksempel, 483 00:23:50,040 --> 00:23:53,120 og du vil påloggingsinformasjonen å vedvare fra side til side til side. 484 00:23:53,120 --> 00:23:58,180 >> Du kan bare starte en sesjon og deretter bruke $ _SESSION å lagre ting som 485 00:23:58,180 --> 00:24:02,320 brukerens navn, eller brukerens ID-informasjon, og så videre. 486 00:24:02,320 --> 00:24:07,600 Og at informasjonen vil forbli i $ _SESSION Til du ødelegge økten 487 00:24:07,600 --> 00:24:09,550 litt senere. 488 00:24:09,550 --> 00:24:12,375 >> Skrive dynamiske nettsider med PHP gjør dem mye bedre. 489 00:24:12,375 --> 00:24:14,250 Nettstedene blitt svært dynamisk, og du ikke 490 00:24:14,250 --> 00:24:17,670 trenger å gjøre for mye mer enn hva du ellers ville ha gjort nettopp 491 00:24:17,670 --> 00:24:18,920 gjør det med HTML. 492 00:24:18,920 --> 00:24:21,630 Men det krever øvelse, mye trening. 493 00:24:21,630 --> 00:24:26,897 >> Du vet allerede hvordan du arbeider med C, og så hoppe til PHP er ikke så vanskelig. 494 00:24:26,897 --> 00:24:28,730 Hva er kanskje litt litt vanskelig arbeider 495 00:24:28,730 --> 00:24:33,180 med denne nye ideen om GET og POST, og kanskje blande HTML og PHP 496 00:24:33,180 --> 00:24:34,220 i lag. 497 00:24:34,220 --> 00:24:37,570 Men også være klar over at internett er et stort lager av informasjon. 498 00:24:37,570 --> 00:24:41,670 Og PHP dokumentasjon er tilgjengelig mange steder, men kanskje mest 499 00:24:41,670 --> 00:24:43,354 kanonisk på php.net. 500 00:24:43,354 --> 00:24:45,520 Og du kan finne det, mange forskjellige funksjoner, 501 00:24:45,520 --> 00:24:48,330 og bruke saker og eksempler på eksempler, ved eksempler. 502 00:24:48,330 --> 00:24:51,340 Der hvis du ønsker å prøve og tall ut hvordan du gjør noe, oddsen er, 503 00:24:51,340 --> 00:24:52,964 noen har sikkert gjort det før deg. 504 00:24:52,964 --> 00:24:55,840 Og du kan bruke dem som inspirasjon til å gjennomføre uansett 505 00:24:55,840 --> 00:24:58,230 det er du prøver å implementere også. 506 00:24:58,230 --> 00:24:59,230 >> Jeg er Doug Lloyd. 507 00:24:59,230 --> 00:25:01,210 Dette er CS50. 508 00:25:01,210 --> 00:25:02,608