>> DOUG LLOYD: Så i vår video på PHP syntaks,
Vi snakket mye om hvordan PHP kan brukes på kommandolinjen
til å kjøre programmer på en måte som vi er ganske godt kjent med fra C.
Men som jeg nevnte også i denne videoen, PHP
ble opprinnelig utviklet for å implementere web-programmering, nettsteder.
Og så i denne videoen er vi kommer til å snakke om hvordan vi
bruke PHP i webutvikling sammenheng.
>> Vi vet allerede, fra vår video på HTML,
at nettsteder er bygget ut av et sett med HTML-koder
at semantisk definere strukturen på en nettside.
Men nettsteder som er bygget med ren HTML
lider av en veldig, meget alvorlig begrensning.
>> Og for å illustrere denne begrensningen, la oss vurdere følgende.
Så nå ønsker jeg å bygge en web-side at når brukeren besøker det,
det gir meg den aktuelle tid i Cambridge, Mass.,
vise den til den siste minutt.
Hvis jeg var å gjøre dette akkurat nå, Jeg kan si noe sånt som dette.
Gjeldende tid i Cambridge-- så jeg har HTML-koder, head tags, titler,
Kroppen tags-- gjeldende tid i Cambridge er 14:08,
skrive ut militære tid.
>> Hva skjer hvis det er nå 02:09, 14:09?
Vel så langt, med HTML, har jeg å gå inn og endre det til 14:09.
Og så ett minutt senere, Jeg må endre det igjen.
Og som du kan forestille deg, er at trolig den verste jobben noensinne.
Du er webmaster for en nettside, og hvert minutt, 24 timer i døgnet,
du må oppdatere gjeldende klokkeslett ved manuelt åpne time.html og endring
bare at kodebit å si gjeldende tid i timer og minutter.
Det er sannsynligvis ikke en veldig god bruk av våre ressurser,
både menneskelig og beregningsorientert.
>> Nettsteder som er all HTML er helt statisk.
Den eneste måten du kan oppdatere innhold, som vi nettopp har sett,
er å åpne de kilde manuelt filer, redigere dem og lagre dem.
Og så når brukeren oppdaterer siden,
eller besøker siden for første tid, vil de få den nyeste innhold.
Men bare fordi vi har manuelt redigert det.
>> Hvis vi begynner å blande litt PHP der inne, koden vår kan få en mye mer fleksibel.
Og vi kan ha en måte for våre sider å være dynamisk, eller oppdatere seg,
uten å kreve våre fattige webmaster i forrige eksempel
være manuell oppdatering ting.
De kan gjøre det automatisk.
Vi trenger ikke å gripe inn.
Vi kan få litt søvn.
Som sannsynligvis er en god ting hvis du gjør en masse web-programmering.
>> Så i CS50 IDE, kjører vi en web server kalt Apache.
Det er en veldig vanlig, open source web server system.
Dette system har den kapasitet til å tolke
PHP, som kommer til å være nyttig hvis du ønsker å gjøre noe PHP programmering.
>> Og i CS50 IDE, har vi en kommando å gjøre dette veldig enkelt å gjøre,
apache50 starte.
Og da at slash banen, slash til, skråstrek
dir, det er bare en veldig vanlig måte å indikerer hva du har angitt her
er en bane til en bestemt katalog som du
ønsker å være roten område, eller roten siden
eller mappen webserveren vil begynne å undersøke filer og tjene
dem opp til kunder som ber om dem.
Så la oss komme over til CS50 IDE, bare for å vise dere, virkelig rask, hvordan dette fungerer.
>> Så her i CS50 IDE, jeg er i en katalog som heter Week Zero Nine.
Og jeg har two-- jeg ha henrettet en LS-kommandoen bare
over for å vise deg at jeg har to kataloger i her, PHP,
som er sett av filer som jeg brukte i PHP syntaks video, og deretter PHP-web,
som er sett av filer som jeg ønsker å bruke i denne videoen.
>> Og jeg ønsker å starte en webserver forekomst
med innholdet i PHP-web mappen som filene blir servert.
Så hva skal jeg gjøre?
Jeg kommer til å skrive apache50 plass starte, plass PHP, dash web.
Det er banen til katalogen fra der jeg er i dag.
Så jeg trykker på Enter.
Det kommer til å gjøre en litt ting her.
Og så kommer det til å si, Apache startet med hell.
Nettstedet ditt er nå tilgjengelig at-- og så er det nettadressen til nettstedet.
Så hva skal jeg gjøre?
Jeg kommer til å raskt kopiere dette.
Og jeg kommer til å åpne opp-- og Jeg skal zoome ut litt her--
Jeg kommer til å åpne opp en ny fane i Chrome.
Og jeg kommer til å besøke denne nettadressen.
>> Jeg kommer til å treffe på Enter.
Det kommer til å laste.
Og jeg skal zoome ut igjen.
Og vi kan se her er den Innholdet i min PHP web-katalog.
>> Så nå hva som egentlig skjer her er min forekomst av CS50 IDE
tjener opp disse filene til noen som ber om dem.
Og i løpet av denne videoen, vil vi sortere av
ta en titt på en haug av disse forskjellige filer i sammenheng.
>> For å teste at Apache server fungerer,
som generelt går å være tilfelle i CS50 IDE,
men hvis du gjør dette mer generelt, og du begynner å bygge din egen nettside
servere, det er en virkelig felles slags analog til,
"hello world", som vanligvis brukes for PHP webutvikling.
Som skal ha en fil bestående av nettopp dette code--
en PHP skillesett med PHP info, parenteser, semikolon i mellom.
Som er utgangspunktet en spesiell PHP funksjon som forteller deg
hvilken versjon av PHP du kjører.
>> Så i CS50 IDE, har jeg at filen tilgjengelig rett
å vise deg hva dette ville se ut.
Så jeg ser på indeksen min fra min PHP forekomst.
Min Apache forekomsten kjører innholdet i PHP-Web.
Og jeg har en fil her heter info.php.
>> Jeg kommer til å klikke den, zoome ut.
Dette er hva du skal å se, ganske mye.
Dette er bare å fortelle meg at min Apache server fungerer.
Og dette er, tilsynelatende, versjon av PHP som jeg kjører.
Dette er min analog til "hello world".
>> Så jeg vet at ting er i drift.
Så vi er godt å gå.
Vi kan fortsette herfra.
>> Så la oss se at tid eksempelet vi var
snakker om med våre fattige webmaster som måtte oppdatere siden hele tiden.
Dette kan være en løsning for hvordan Jeg ville implementere ting
slik at webmaster ikke nødt til å holde oppdatere tiden.
Det ville bare liksom skje automatisk.
>> Den nede, HTML, er det ganske lik, med ett unntak.
Men her har jeg fått noen PHP på toppen.
Jeg har, tilsynelatende, kalles dette funksjon date_default_timezone_set.
>> Og vi snakker ikke om alle disse funksjonene i CS50,
fordi PHP har sannsynligvis ti av tusen.
Det kan være litt av en overdrivelse, men det kan ikke være.
Det fikk en rekke funksjoner innebygd.
Og så dette er en funksjon tilsynelatende setter min tidssone som USA / Øst,
som er den tidssonen som jeg er tiden på å lage denne videoen.
>> Så gjør jeg en telefon til funksjon kalt, dato.
Og tilsynelatende, jeg oppbevarer HIS av noe som heter, tid.
Så hva er det som skjer her?
>> Vel, i utgangspunktet hva som er skjer er, jeg gjør en samtale
til noen server som kommer til å Fortell meg hva klokken er i dag.
Og jeg konvertere den til et format av timer, minutter, sekunder.
Og grunnen til det er hovedstaden H er dette kommer til å gi meg 24 timers tid, ikke 12
time tid, noe som ville være små timer.
Og jeg bare lagre som i en variabel kalt, tid.
Slik at andre linje av PHP der, kallet til funksjonen,
Hittil er bare å komme hyssing, som er
kommer til å gi meg dato, og tid, og en haug med andre opplysninger.
Og det første argumentet der, at HIS, er bare å trekke ut den viktigste delen
at jeg bryr meg om for eksempel som er det time, minutt og sekund.
Så det er alt som skjer.
Så jeg lagre det i en variabel $ tid.
Og deretter ned på helt nederst der, jeg
har som forkortelse for skrive ut gjeldende klokkeslett.
Så jeg skal bare skrive ut ut hva det nåværende tidspunkt er.
>> Så la oss ta en titt på dette i CS50 IDE og se hvor vi er nå
besparende at webmaster en masse problemer.
Ok, så her er jeg igjen tilbake på rotkatalogen
av min Apache eksempel.
Og jeg har en fil her heter time.php.
Jeg bare kommer til å klikke på det.
Og jeg skal bla opp, fordi vi zoomet inn ganske langt.
Den nåværende tidspunkt er 14:20:34.
Så jeg gjør det timer, minutter og sekunder.
Og jeg kan oppdatere siden og få ny tid.
--41.
Jeg kommer til å oppdatere siden og få ny tid, 44, 46, 47.
>> Så, jeg er helt klart ikke endre noe selv.
Jeg her å oppdatere siden.
Så jeg kan ikke være tilbake der du redigerer det.
Og jeg lover deg, det gjør jeg ikke har noen medsammensvorne
som redigerer filen på mine vegne på siden.
>> Jeg bare bruker det PHP-funksjonen, tid, for å generere tids for meg
automatisk.
Slik at selv om jeg sover, og min web server kjører,
brukeren som besøker den siden er fortsatt kommer til å få akkurat det nåværende tidspunkt.
Så det er ganske bra.
Jeg har laget min side mer dynamisk med ikke for mye PHP-kode.
Det var bare to linjer med kode, og deretter en liten bit av en utskrifts uttalelse.
Og allerede har jeg en mye mer dynamisk nettsted
enn det første eksempelet vi så i begynnelsen av videoen.
>> Så husker fra videoen på PHP syntaks at når PHP tolk går
programmet vårt, ignorerer det alt det er ikke inne i PHP skilletegn,
spytter den ut.
I dette eksempelet, hva ting at det ble spyttet ut var HTML.
Og dette betyr at jeg kan nå flette HTML og PHP sammen.
Fordi tolken vil bare ignorere HTML og bokstavelig utgang det.
Noe som er bra, ikke sant?
>> Fordi formodentlig, på slutten av dagen,
Jeg ønsker nettstedet mitt til være konstruert av HTML.
Slik at enhver nettleser kan tolke det, eller forstår HTML på siden
og gjengi det som noe som vi kan faktisk forstå som mennesker.
Og jeg kan bare bruke PHP for de delene av nettstedet mitt
det krever dynamikk, som krever meg å ha ting som oppdaterer hele tiden.
Den statiske informasjon kan forbli den samme.
>> OK, så det er fint.
Men hvorfor skulle jeg gjøre dette?
Hvorfor skulle jeg blande HTML og PHP?
Jeg kunne bare skrive ut alle HTML, ved hjelp av PHP utskriftsfunksjonen.
Hvorfor jeg ikke gjør det?
Tenk på det et sekund.
>> Hvorfor, når jeg bare kunne skrive ut out-- jeg kunne ha linjer med PHP som bare sier:
print HTML tag, skriverhodet.
Hvorfor jeg ikke gjør det?
Hvorfor får jeg blande PHP og HTML?
>> Vel, hvis du tror på det et sekund.
PHP, har tolken å tolke hva den ser.
Og så det kommer til å ha å utføre en kodelinje.
Skrive ut HTML.
Skriv ut åpen hodet tag.
Skriv ut åpen tittelen koden.
Det er nødt til å utføre og tolke
at hver enkelt steg på veien.
Hvorfor ikke bare la tolk bare glatte over
ting det ikke forstår og gjøre det automatisk?
Det kommer til å spare meg mye tid å blande min HTML og min PHP sammen.
>> Og så det er derfor vi ikke bare ha åpent PHP delimiter
og så bare skrive ut hele Innholdet på siden vår som en gigantisk PHP
ringe til funksjonen, Skriv ut og deretter nær PHP skilletegn og vi er ferdige.
Så det er derfor vi blande dem opp sammen.
>> Så langt har vi ikke sett for mye av en forskjell fra generell PHP syntaks.
Det har vært ganske grei.
Vi har allerede sett spørsmålstegn, lik.
Vi så et par nye funksjonskall, men ingenting virkelig lyst til å gå på.
La oss kanskje gjøre ting en litt mer avansert.
Hva hvis vi ønsker å sende informasjon mellom ulike PHP-filer,
slik at kanskje kan brukeren sende informasjon til meg.
Og så kunne jeg gjøre noe med det på en annen side.
>> Så PHP har støtte for noe som kalles Super Globalt
Variabler, som høres ganske utrolig.
De er egentlig bare gigantiske assosiative matriser
som bidrar til å gjennomføre dette funksjonaliteten til bestått
informasjon mellom PHP-filer som er eksisterende på vår webserver.
>> Den første av disse super globals kalles $ _GET.
Og det er trolig den enkleste å forstå.
Hva skjer med $ _GET?
Vel, i utgangspunktet, er bruker kommer til å skrive ekstra informasjon
på slutten av våre nettadresser.
Og uansett hva de skriver, forutsatt det er formatert på en bestemt måte
kalt en søkestreng, som er like et sett med viktige verdi par skilt
av-tegn.
De sentrale verdi parene vil være lagret i en $ _GET assosiativ array.
Og fra vår video på PHP syntaks, vi vet
hvordan jobbe med assosiative arrays allerede.
Så her er et eksempel på noen PHP, hvor kanskje jeg er
trekke ut alle de viktigste verdi-par at brukeren følger med i nettadressen.
Så jeg har min åpne PHP skilletegn.
Jeg har en foreach loop.
Jeg gjentar over Super Global Array kalt $ _GET.
>> Og jeg ønsker å være i stand til å referere til både nøkkelen og verdien.
Og jeg bare skrive dem ut, hver og en på tilsynelatende
sin egen paragraf tag her.
Jeg skriver ut noen HTML og interpolere verdiene
av nøkkel og verdi i det utsagnet.
>> Så la oss ta en titt på hvordan dette faktisk ville fungere på vår IDE.
Og kanskje dette vil hjelpe viser en litt
av hva GET faktisk gjør.
Så jeg er tilbake her i min web roten.
Og jeg skal zoome inn en litt å vise deg
at jeg har en fil som heter, get1.php.
>> Så la oss klikke på get1.php.
Og jeg ser ikke noe innhold.
Det er rart, ikke sant?
Vel, egentlig ikke egentlig.
Fordi jeg ikke leverer noe i URL.
Jeg kommer til å get1.php, men jeg ikke leverer noen viktige verdi par
som en del av min søkestrengen.
Så la oss legge til en søkestreng og se hva denne filen kan gjøre.
>> For å begynne en søkestrengen du bare skriver spørsmålstegn.
Så kanskje jeg skal si name = Doug & året = 2015.
Og da vil jeg trykker på Enter.
Nå merke til hva som skjer.
Jeg er fortsatt i get1.php.
Men nå har jeg levert sentrale verdi-par, og jeg er
skrive dem ut på egen hånd paragraph-- navn, Doug-- år, 2015.
Det er akkurat den koden vi bare så på lysbildet et øyeblikk siden.
>> Og hvis jeg vil kanskje legge til en annen nøkkelverdi pair, og class = CS50.
Nå har jeg en annen sentral verdi paret som er skrevet ut
når jeg besøker nettadressen på nytt.
Nå kanskje dette er ikke formatert veldig godt.
Så jeg har en annen versjon av get.php.
Det er get2.php.
>> Forskjellen i denne ene er at jeg har CSS-fil,
og det formaterer ting litt mer pent for meg.
Det er kanskje ikke den mest vakker CSS i verden.
Men det er bare en annen måte å gjøre det.
Så jeg kan fortsatt få tilgang til mine variabler som bruker $ _GET.
Og i dette tilfellet, er jeg bare slags gjør CSS litt mer fancy.
Og hvis vi pop over til min IDE for et sekund,
Jeg skal vise deg i min PHP web katalogen her, get2.php.
Vi vil åpne den opp, noen HTML her.
Angivelig Jeg lenking i at CSS-filen jeg snakket om.
Jeg åpner en tabell tag.
Og så her er min foreach loop.
>> Her er det, hva jeg viste på lysbildet før.
Den eneste forskjellen er at jeg har denne nøkkelen og verdi CSS
styling at jeg søker på det.
Men det er alt jeg gjør, er jeg itera over $ _GET å få alle
av de viktigste verdiparene.
>> Og jeg skrive dem ut som tabellen.
Og tilsynelatende, jeg formaterer nøklene på en måte, med <td class = "nøkkel".
Så tilsynelatende som gjelder for noen klasseselektor i min CSS fil GET.CSS.
Og tilsynelatende, jeg skriver ut mine verdier en helt annen måte.
Som er ganske mye hva vi så her, hvor
våre verdier ble trykt med en blå bakgrunn,
og våre nøkler ble trykt med gul bakgrunn.
Så det er hvordan jeg får de forskjellige stiler.
Fordi jeg bruker forskjellige CSS-klasser.
Men det er ganske mye det for GET.
Som om jeg bare trekke ut informasjon.
Og i dette tilfellet, er jeg bare skriver den til skjermen.
Jeg får det ut av URL, og det er det GET gjør for oss.
>> Du ser en mulig do Problemet her skjønt?
Hvorfor skulle vi kanskje ikke ønsker å bruke $ _GET?
Hva om, kanskje, jeg var å gjøre denne spørringen?
--to get3.php, som jeg ikke har på min IDE.
Det er bare en hypotetisk fil.
Men legg merke til her at tilsynelatende passerer passordet mitt i.
Og kanskje passordet mitt er pinlig.
Eller kanskje jeg ikke vil at folk skal vet hva passordet er, ikke sant.
>> Hvis jeg passerer den though-- hvis jeg bruker den $ _GET metoden, det som skjer er,
som kommer til å være i URL.
Så noen ondsinnet bruker makt kunne se hva jeg gjør.
Jeg kan sende dem sensitiv informasjon.
Eller kanskje det er ikke engang en ondsinnet bruker.
Kanskje det bare er din venn som står over skulderen.
Og nå vet de passordet Facebook-kontoen din.
>> Og kanskje de ikke ville gjøre noe med det.
Men hvis passordet var sendes via $ _GET til Facebook,
nå vet de Facebook-passord.
Fordi det er rett der i URL når du har gjort sender informasjon.
>> Og så kanskje det er ikke den beste måte å passere sensitiv informasjon.
Det er en god måte å sende informasjon at vi ikke gjør det spesielt
bryr seg om å være for følsom.
Fordi GET er ganske rask, i forhold til de andre super globals
vi kommer til å snakke om.
Men kanskje ikke det beste verktøyet for sensitiv informasjon.
>> For at vi kanskje vil bruke noe som heter $ _POST,
som er en annen Super global variabel.
Det er en annen assosiativ array.
Så det fungerer ganske mye akkurat det samme som GET.
Unntatt, i stedet for å trekke ut informasjon fra nettadressen,
det gjør noe gjennom HTTP-hoder.
Så husker fra vår video på HTTP, vi snakket
om hvordan nettlesere, servere, og klienter kommunisere.
Og informasjonen sendes tilbake frem og tilbake i HTTP-hoder.
>> Med $ _POST, informasjon er typisk sendes gjennom disse HTTP-hoder.
Og vi vil oftest se $ _POST i sammenheng med å sende HTML-skjemaer.
Du kan fortsatt bruke HTML-skjemaer å sende inn ting for å få.
Men de er vanligvis brukt i sammenheng med POST.
>> Så her er et eksempel på et HTML-skjema.
Nå har vi sett dette før, men vi har ikke sett denne delen, action = "post.php".
Så når vi snakket om former i sammenheng med HTML, jeg hadde en Send-knappen.
Og hvis du husker, vil jeg klikker Send og siden bare oppdateres,
gjorde ikke noe.
>> I dette tilfellet, jeg sender uansett hva jeg skriver på dette skjemaet,
til en PHP-fil som heter post.php.
Og tilsynelatende, måten jeg gjør det i dette skjemaet bruker POST-metoden.
Så hver bit av informasjon at jeg skriver inn dette skjemaet
vil bli fremmet gjennom HTTP-hoder.
>> Den vil være tilgjengelig i post.php, fordi det er handlingen av formen min.
Det vil være tilgjengelig ved å gå til $ _POST.
Og tilsynelatende, slik jeg kan få på hvert enkelt element
med at assosiativ array er med dette attributtet,
Navn egenskap av våre innspill tags.
>> Så tilsynelatende jeg kan si $ _POST torget parentes nevne å få hva brukeren
skrevet i det første feltet.
Og $ _POST passord, av pw heller, å få på hva brukeren har skrevet
i det andre feltet.
>> Så la oss ta en titt på dette over i CS50 IDE.
Så her er vi, og jeg skal zoome inn for et sekund.
Og vi har en fil som heter post.html.
Jeg klikker på post.html.
På toppen her har jeg en veldig enkel web-skjema.
Det er den formen vi nettopp så på lysbildet en andre siden.
>> Jeg kan skrive, Doug, og jeg kan skriver passordet mitt, som vi alle
vet er squadgoals.
Og jeg vil treffe Send.
Og tilsynelatende, at sender til post.php.
Og jeg tydeligvis å skrive det.
Så jeg bli kvitt all sikkerheten at POST gir meg ved bare å skrive ut
brukernavn og passord.
>> Brukerens navn er Doug.
Brukerens passord er squadgoals.
Hvordan klarte jeg dette?
Vel, pop over til IDE igjen for et sekund.
Vi vil rulle ned for å ta en titt på post.php, som var
handlingen som jeg brukte til å sende inn her.
Det var handlingen av min HTML-skjema.
Og det er alt jeg gjør.
Brukerens navn er, og jeg er utskrift ut innholdet i $ _POST "navn".
Og så brukerens passord er $ _POST "passord".
Så jeg fikk denne informasjonen ved å sende HTML-skjemaet.
Og jeg kan nå trekke den med $ _POST fordi metoden jeg brukte for å overføre
data med at formen var POST-metoden.
>> Nå er det nok ikke så great-- jeg kommer
å gå tilbake for en andre til vår set her--
det er nok ikke så stor hvis jeg er sende inn informasjon med POST,
som er tilsynelatende sikrere.
Det er nok ikke så stor hvis jeg gjør det, og deretter
skrive ut brukerens passord.
Det er ment å være mer sikker.
>> OK, men det er ikke helt sikker.
Og så i denne lille snippet her jeg ønsker
å bare trekke oppmerksomheten din til noen datasikkerhet bekymringer, bare noe
å tenke på som du er arbeider eller bruke internett.
Dette er bare noe å vurdere.
>> Jeg fortalte deg at informasjon er fremmes gjennom HTTP-hoder
når du bruker POST-metoden.
Som betyr at de er ikke helt sikker.
De er vanskeligere å finne enn ved hjelp av GET-metoden, der
det er bare rett i nettadressen.
Men det er fortsatt en vei å finne det.
Og jeg vil bare vise du dette, slik at du kanskje
begynne å tenke på dette som du jobber, eller ved hjelp av
nettsteder og innsending passord, og kanskje bruker
det samme passordet i en mange forskjellige steder.
Vet at det er fortsatt er faktisk ganske lett å finne ut noens passord.
>> Og så her, jeg kommer å gå til post2.html.
Og forskjellen med post2.html og post2.php er ganske subtil.
Forskjellen er bare at jeg ikke skrive ut
passordet når jeg sender inn skjemaet.
>> Så jeg kommer til å skrive i, Doug.
Og jeg kommer til å skrive i, squadgoals, selv
selv om vi vet at det er passordet.
Før jeg legger inn danne skjønt, jeg kommer
å åpne opp Developer Tools, bare for å viser deg hva som skal skje her.
Så i Chrome, jeg bare kommer til å treffe F12.
Og det kommer til å åpne opp min Utviklerverktøy på høyre side.
Jeg har ikke sendt inn skjemaet ennå.
Nå kommer jeg til å treffe Send inn på min form.
Og tilsynelatende, gjorde jeg en ringe til, eller jeg gjorde en forespørsel
til post2.php, som er fornuftig.
Jeg kommer til å klikke på det.
>> Så over her, jeg kommer til å klikke på hoder.
Det er en masse ting som skjer her.
Men hvis jeg blar ned til selve bunn, varsel rett det-- kalenderen min
har blokkert den for en second-- rett det helt nederst hjørne,
name-- Doug, pw-- squadgoals.
Så selv om jeg bruker POST Metoden, som er sikrere,
bare være klar over at når du gjør det, du fortsatt overføring av informasjon
gjennom HTTP.
Og det kan fortsatt være funnet av en motstander.
Det er bare noe vi kommer å måtte forholde seg til egentlig.
Kanskje det er noen måter å kryptere vår passord før vi sender dem over,
som ville være en bedre, som jeg ikke gjør her.
>> Men bare være klar over at POST metoden har begrensninger også.
Det er en forbedring i forhold til GET i form av å være umiddelbart synlig.
Men det er ikke en komplett løsning.
Så her er et eksempel på en rask hjemme trening
som du kan bruke for å få litt øve jobbe med PHP.
Opprett følgende par nettsider.
Den første skal bare være en meget enkel danner med et enkelt felt og en Send
knapp.
Så veldig likt det vi bare gjorde med post.html.
>> Og deretter den andre fil du bør lage
er en fil, en PHP-fil, som venter input, via POST,
og basert på hva brukeren har skrevet, som du kan anta vil være et heltall.
Du trenger ikke å gjøre noe feilkontroll eller lignende.
Du kan anta at brukeren vil skrive et heltall,
eller noe sånt som en tolket av PHP som et heltall, i den form.
Du bare ønsker å opprette en n av n multiplikasjonstabellen.
>> Så hvis brukeren sender 10, vi ønsker å har en 10 med 10 multiplikasjonstabellen.
Hvis brukeren sender en 12, vi ønsker en 12 multiplikasjon av 12 bordet.
Bare så du kan se hva vi kjører på her,
vi tar en titt på denne filen i min IDE.
>> Så her i IDE, jeg har mult_form.html.
Jeg vil klikke den.
Alt jeg vil gjøre er å sende inn en verdi.
Skriv inn 10, traff Send.
Og tilsynelatende, mult_table.php, som vi kan se på toppen er det i nettadressen,
Jeg oppretter en 10 av 10 multiplikasjonstabellen.
>> Hvis jeg skriver 15 og slo inn, nå er jeg har en 15 med 15 multiplikasjonstabellen.
Jeg er selvfølgelig ikke kommer til å vise du innholdet i mult_table.php,
fordi det ville ta moro ut av dette hjemme trening.
Men det er en fin måte å få litt øve jobbe med PHP sløyfer
og POST, veldig enkelt, forhåpentligvis stressfri eksempel bare
å gjøre en liten bit av praksis.
Og jeg har fått en liten CSS skjer her til å gjøre min individuelle bord
celler bare slags pop av en litt og se litt mer
som en multiplikasjonstabellen, i motsetning til bare tekst bare
slags sitter der.
Den siste super global vi skal snakke om i denne videoen er noe som heter
$ _SESSION.
Og kanskje dette er faktisk det beste eksempel på noe
vi vil vurdere global.
Det er en annen rekke.
Det er en annen assosiativ array.
Men det er tilgjengelig gjennom hver PHP-fil som finnes på vårt system.
>> Vi trenger ikke å sende inn Informasjon én side om gangen
som vi gjør med GET og med POST.
Det er alltid der.
Og så dette er flott for en side hvor du er logget inn, for eksempel,
og du vil påloggingsinformasjonen å vedvare fra side til side til side.
>> Du kan bare starte en sesjon og deretter bruke $ _SESSION å lagre ting som
brukerens navn, eller brukerens ID-informasjon, og så videre.
Og at informasjonen vil forbli i $ _SESSION Til du ødelegge økten
litt senere.
>> Skrive dynamiske nettsider med PHP gjør dem mye bedre.
Nettstedene blitt svært dynamisk, og du ikke
trenger å gjøre for mye mer enn hva du ellers ville ha gjort nettopp
gjør det med HTML.
Men det krever øvelse, mye trening.
>> Du vet allerede hvordan du arbeider med C, og så hoppe til PHP er ikke så vanskelig.
Hva er kanskje litt litt vanskelig arbeider
med denne nye ideen om GET og POST, og kanskje blande HTML og PHP
i lag.
Men også være klar over at internett er et stort lager av informasjon.
Og PHP dokumentasjon er tilgjengelig mange steder, men kanskje mest
kanonisk på php.net.
Og du kan finne det, mange forskjellige funksjoner,
og bruke saker og eksempler på eksempler, ved eksempler.
Der hvis du ønsker å prøve og tall ut hvordan du gjør noe, oddsen er,
noen har sikkert gjort det før deg.
Og du kan bruke dem som inspirasjon til å gjennomføre uansett
det er du prøver å implementere også.
>> Jeg er Doug Lloyd.
Dette er CS50.