>> DOUG LLOYD: Så i vores video på PHP syntaks,
Vi talte meget om, hvordan PHP kan bruges på kommandolinjen
at køre programmer på en måde, vi er temmelig kender fra C.
Men som jeg også nævnt i denne video, PHP
blev oprindeligt udviklet til implementere webprogrammering, hjemmesider.
Og så i denne video er vi vil tale om, hvordan vi
bruge PHP i webudvikling sammenhæng.
>> Vi ved allerede, fra vores video på HTML,
at websites er bygget ud af et sæt af HTML-tags
der semantisk definere strukturen af ​​en webside.
Men websteder, der er bygget med ren HTML
lider af en meget, meget alvorlig begrænsning.
>> Og illustrere denne begrænsning, Lad os overveje følgende.
Så nu jeg ønsker at opbygge en webside at, når brugeren besøger det,
det giver mig den nuværende tid i Cambridge, Mass.,
vise det til den nyeste minut.
Hvis jeg var at gøre dette lige nu, Jeg kan sige noget som dette.
Aktuel tid i Cambridge-- så jeg har HTML-tags, hoved tags, titel tags,
organ tags-- den aktuelle tid i Cambridge er 14:08,
udskrive militær tid.
>> Hvad sker der, hvis det er nu 02:09, 14:09?
Nå hidtil med HTML, jeg har at gå ind og ændre det til 14:09.
Og derefter én minut senere, Jeg er nødt til at ændre det igen.
Og som du kan forestille dig, det er sandsynligvis det værste job nogensinde.
Du er webmaster for et webside, og hvert minut, 24 timer i døgnet,
du nødt til at opdatere den aktuelle tid ved manuelt åbne time.html og skiftende
bare, at kodestykke at sige aktuelle tid i timer og minutter.
Det er nok ikke en meget god brug af vores ressourcer,
både menneskelige og beregningsmæssige.
>> Websteder, der alle HTML er helt statisk.
Den eneste måde du kan opdatere indhold, som vi lige har set,
er manuelt åbne dem kilde filer, redigere dem og gemme dem.
Og så når brugeren opdaterer siden,
eller besøger siden for den første tid, vil de få det nyeste indhold.
Men kun fordi vi har manuelt redigeret det.
>> Hvis vi begynder at blande nogle PHP derinde, vores kode kan få meget mere fleksibel.
Og vi kan have en måde for vores sider at være dynamisk, eller opdatere sig selv,
uden at kræve vores fattige webmaster i det foregående eksempel
at være manuelt opdatere ting.
De kan gøre det automatisk.
Vi behøver ikke at gribe ind.
Vi kan få noget søvn.
Som sandsynligvis er en god ting, hvis du laver en masse web-programmering.
>> Så i CS50 IDE, vi kører en webserver kaldet Apache.
Det er en meget almindeligt anvendt, open source webserver system.
Dette system har den evnen til at fortolke
PHP, hvilket vil være nyttigt, hvis du ønsker at gøre noget PHP programmering.
>> Og i CS50 IDE, har vi en kommando at gøre denne meget let at gøre,
apache50 starte.
Og så er skråstreg sti, skråstreg til, skråstreg
dir, det er bare en rigtig almindelig måde angivelse af, hvad du har angivet her
er en vej til et bestemt mappe, som du
ønsker at være roden site, eller rodsiden,
eller den mappe, som din webserver vil begynde at undersøge filer og tjene
dem op til kunder, der ønsker det.
Så lad os pop over til CS50 IDE, bare for at vise dig, virkelig hurtig, hvordan det virker.
>> Så her i CS50 IDE, jeg er i en mappe kaldet Uge Zero Nine.
Og jeg har to-- jeg har henrettet en LS-kommando bare
ovenfor for at vise dig, at jeg har to mapper i her, PHP,
hvilket er det sæt af filer, som jeg brugte i PHP syntaks video og derefter PHP-nettet,
hvilket er det sæt af filer, som jeg gerne vil bruge i denne video.
>> Og jeg vil gerne starte en web-server instans
med indholdet af PHP-webmappen da filerne bliver serveret.
Så hvad skal jeg gøre?
Jeg kommer til at skrive apache50 plads starte, rum PHP, bindestreg nettet.
Det er vejen til biblioteket fra hvor jeg i øjeblikket er.
Så jeg ramte Enter.
Det kommer til at gøre en lille smule af ting her.
Og så det kommer til at sige, Apache startede med succes.
Dit websted er nu tilgængelig at-- og så er der URL'en for webstedet.
Så hvad skal jeg gøre?
Jeg har tænkt mig at hurtigt at kopiere denne.
Og jeg har tænkt mig at åbne up-- og Jeg vil zoome ud en lille smule her--
Jeg har tænkt mig at åbne op en ny fane i Chrome.
Og jeg har tænkt mig at besøge denne URL.
>> Jeg har tænkt mig at trykke Enter.
Det kommer til at indlæse.
Og jeg vil zoome ud igen.
Og vi kan se her, er den indholdet af min PHP web bibliotek.
>> Så nu, hvad der dybest set sker her er mit eksempel på CS50 IDE
afsoner op disse filer til nogen, der anmoder om dem.
Og i løbet af denne video, vil vi sortere af
tage et kig på en flok af disse forskellige filer i sammenhæng.
>> For at teste, at din Apache server fungerer,
der generelt vil at være tilfældet i CS50 IDE,
men hvis du gør dette mere generelt, og du begynde at bygge din egen web
servere, der er en virkelig fælles slags analog til,
"Hej verden", der er normalt bruges til PHP webudvikling.
Som skal have en fil bestående af netop dette code--
en PHP afgrænser sæt med PHP info, parenteser, semikolon i mellem.
Som er dybest set en særlig PHP funktion der fortæller dig
hvilken version af PHP du kører.
>> Så i CS50 IDE, jeg har at filen findes lige
til at vise dig, hvad det ville se ud.
Så jeg ser på min indeks fra min PHP instans.
Min Apache eksempel kører indholdet af PHP-Web.
Og jeg har en fil her kaldet info.php.
>> Jeg har tænkt mig at klikke på det, zoome ud.
Dette er, hvad du vil at se, temmelig meget.
Dette er bare at fortælle mig, at min Apache-server fungerer.
Og det er, tilsyneladende, den version af PHP, som jeg kører.
Dette er mit analog til "Hej verden".
>> Så jeg ved, tingene er operationelle.
Så vi er gode til at gå.
Vi kan fortsætte herfra.
>> Så lad os vende det tid eksempel var vi
taler om med vores fattige webmaster der skulle opdatere siden konstant.
Dette kan være en rettelse til, hvordan Jeg vil gennemføre tingene
således at webmasteren ikke nødt til at holde opdatere tiden.
Det ville bare slags ske automatisk.
>> Den ned nedenfor, HTML, er det temmelig ens, med en enkelt undtagelse.
Men her har jeg fået nogle PHP på toppen.
Jeg har tilsyneladende kaldte denne funktion date_default_timezone_set.
>> Og vi taler ikke om alle disse funktioner i CS50,
fordi PHP har formentlig titusinder.
Det kunne være lidt af en overdrivelse, men det kan ikke være.
Det har fået en masse funktioner indbygget.
Og så dette er en funktion tilsyneladende sætter min tidszone som USA / Eastern,
som er den tidszone, at jeg er i øjeblikket i at gøre denne video.
>> Så jeg foretage et opkald til funktion kaldes, dato.
Og tilsyneladende, jeg opbevare HANS af noget, der hedder, tid.
Så hvad sker der her?
>> Nå, dybest set, hvad der er sker er, jeg foretager et opkald
til nogle server, der kommer til at fortælle mig, hvad tid i øjeblikket er.
Og jeg konvertere den til et format af timer, minutter, sekunder.
Og grunden til at det er kapital H er dette kommer til at give mig 24 timer tid, ikke 12
timers tid, hvilket ville være små bogstaver h.
Og jeg er bare opbevaring, at i en variabel kaldet, tid.
Således at anden linje i PHP der, kaldet til den funktion,
dato, er lige ved at komme noget snor, som er
kommer til at give mig den dato, og tid, og en masse andre oplysninger.
Og det første argument der, at HIS, er lige ekstrahere vigtig del
at jeg holder for dette eksempel, som er den time, minut, og sekund.
Så det er det alt det der foregår.
Så jeg gemmer det i en variabel $ tid.
Og derefter ned på meget bund der, jeg
har denne forkortelse for udskrive det aktuelle tidspunkt.
Så jeg bare kommer til at udskrive ud af, hvad den aktuelle tid er.
>> Så lad os tage et kig på denne i CS50 IDE og se, hvordan vi er nu
besparelse at webmaster en masse besvær.
Okay, så her er jeg igen tilbage på hovedbiblioteket
af min Apache instans.
Og jeg har en fil her kaldet time.php.
Jeg skal bare klikke på det.
Og jeg vil rulle op, fordi vi er zoomet ind temmelig langt.
Den aktuelle tid er 14:20:34.
Så jeg gør det timer, minutter og sekunder.
Og jeg kan opdatere side og få ny tid.
--41.
Jeg har tænkt mig at opdatere siden og få ny tid, 44, 46, 47.
>> Så jeg er helt klart ikke ændre noget selv.
Jeg er her opdatere siden.
Så jeg kan ikke være tilbage der redigerer den.
Og jeg lover dig, det gør jeg ikke have nogen forbundsfæller
der er ved at redigere filen på mine vegne på siden.
>> Jeg er bare ved hjælp af denne PHP funktion, tid, til at generere tid for mig
automatisk.
Så selvom jeg sover, og min webserver kører,
den bruger, der besøger den side stadig kommer til at få præcis det aktuelle tidspunkt.
Så det er temmelig godt.
Jeg har lavet min hjemmeside mere dynamisk med ikke for meget PHP kode.
Det var blot to linjer kode og derefter en lille smule af en udskrift erklæring.
Og allerede jeg har en langt mere dynamisk websted
end det første eksempel vi så ved begyndelsen af ​​videoen.
>> Så husker fra videoen på PHP syntaks at når PHP fortolkeren kører
vores program, det ignorerer alt det er ikke inde i PHP afgrænsere,
spytte det ud.
I dette eksempel, hvad de ting at det var spytte ud var HTML.
Og det betyder, at jeg nu kan intersperse HTML og PHP sammen.
Fordi tolken vil bare ignorere HTML og bogstaveligt output det.
Hvilket er godt, ikke?
>> Fordi formodentlig ved slutningen af ​​dagen,
Jeg vil gerne have min hjemmeside til være konstrueret af HTML.
Således at enhver webbrowser kan fortolke det eller forstå HTML på siden
og gøre det som noget, vi kan faktisk forstår som mennesker.
Og jeg kan kun bruge PHP for de dele af mit site
Det kræver dynamik, der kræver mig at have ting, der opdateres konstant.
Den statiske oplysninger kan forblive den samme.
>> OK, så det er fint.
Men hvorfor skulle jeg gøre det?
Hvorfor skulle jeg blande HTML og PHP?
Jeg kunne bare udskrive alle HTML, ved hjælp af PHP print funktion.
Hvorfor er jeg ikke gøre det?
Tænk over det et sekund.
>> Hvorfor, når jeg kunne bare udskrive out-- jeg kunne have linjer af PHP, der bare siger,
print HTML-tag, printhovedet.
Hvorfor er jeg ikke gøre det?
Hvorfor er jeg blande PHP og HTML?
>> Tja, hvis du tror over det et sekund.
PHP, tolken har at fortolke, hvad det ser.
Og så det kommer til at have at udføre en linje kode.
Udskriv HTML.
Udskriv åben hoved tag.
Udskriv åben titel-tag.
Det kommer til at have til udføre og fortolke
at hver eneste skridt på vejen.
Hvorfor ikke bare lade tolk bare glans over
ting, det ikke forstår og gøre det automatisk?
Det kommer til at spare mig for en masse tid at blande min HTML og min PHP sammen.
>> Og så det er derfor vi ikke bare åbne PHP afgrænser
og så bare udskrive hele indhold på vores side som en kæmpe PHP
ringe til funktionen, Udskriv, og derefter tæt PHP skilletegn og vi er færdig.
Så det er derfor vi blande dem op sammen.
>> Hidtil har vi ikke set for meget af en forskel fra almindelige PHP syntaks.
Det har været temmelig ligetil.
Vi har allerede set spørgsmålstegn, lige.
Vi så et par nye funktionskald, men intet virkelig lyst til at gå på.
Lad os måske gøre tingene lidt avanceret.
Hvad nu, hvis vi ønsker at videregive oplysninger mellem forskellige PHP-filer,
så måske kan brugeren indsende oplysninger til mig.
Og så kunne jeg gøre noget med det på en anden side.
>> Så PHP understøtter noget, der hedder Super Global
Variabler, hvilket lyder temmelig awesome.
De er virkelig bare gigantiske associative arrays
at hjælpe med at gennemføre dette funktionalitet forbifarten
oplysninger mellem PHP-filer, der er eksisterende på vores web-server.
>> Den første af disse super globals hedder $ _GET.
Og det er nok det enkleste at forstå.
Hvad sker der med $ _GET?
Tja, dybest set, at brugeren er kommer til at skrive ekstra information
ved slutningen af ​​vores URL'er.
Og uanset hvad de skriver, under forudsætning af det er formateret på en bestemt måde
kaldes en forespørgsel streng, som er lige et sæt af centrale værdipar adskilt
af-tegn.
Disse centrale værdipar vil være opbevares i en $ _GET associative array.
Og fra vores video på PHP syntaks, vi kender
hvordan man arbejder med associative arrays allerede.
Så her er et eksempel på nogle PHP, hvor måske er jeg
udvinding alle de vigtigste værdipar at brugeren leveres i URL'en.
Så jeg har min åbne PHP skilletegn.
Jeg har en foreach løkke.
Jeg iteration tværs af Super Global Array kaldet $ _GET.
>> Og jeg ønsker at være i stand til at henvise både nøglen og værdi.
Og jeg er bare udskrive dem ud, hver på tilsyneladende
et afsnit tag her.
Jeg udskriver nogle HTML og at interpolere værdierne
af nøgle og værdi i denne erklæring.
>> Så lad os tage et kig på, hvordan denne ville faktisk arbejde på vores IDE.
Og måske dette vil hjælpe illustrerer en lille smule
af, hvad får, er faktisk gør.
Så jeg er tilbage her i min web rod.
Og jeg vil zoome ind på et lille smule til at vise dig
at jeg har en fil kaldet, get1.php.
>> Så lad os klikker på get1.php.
Og Jeg kan ikke se noget indhold.
Det er underligt, ikke?
Tja, ikke rigtig faktisk.
Fordi jeg ikke levere noget i webadressen.
Jeg har tænkt mig at get1.php, men jeg ikke leverer nogen centrale værdipar
som en del af min forespørgsel streng.
Så lad os tilføje en forespørgselsstreng og se, hvad denne fil kan gøre.
>> Til at begynde en forespørgsel streng, du blot skrive spørgsmålstegn.
Så måske vil jeg sige name = Doug & år = 2015.
Og så vil jeg trykke Enter.
Nu mærke til, hvad der sker.
Jeg er stadig i get1.php.
Men nu har jeg leveret centrale værdi par, og jeg er
udskrive dem ud på egen hånd paragraph-- navn, Doug-- år, 2015.
Det er præcis den kode vi bare oplevede på diaset for et øjeblik siden.
>> Og hvis jeg vil måske tilføje en anden nøgle værdi par, og class = CS50.
Nu har jeg en anden vigtig værdi par, der er udskrevet
når jeg revidere URL'en igen.
Nu måske er det ikke formateret særlig godt.
Så jeg har en anden version af get.php.
Det er get2.php.
>> Forskellen i dette den ene er jeg har CSS-fil,
og det formater tingene lidt mere pænt for mig.
Det er måske ikke den mest smukke CSS i verden.
Men det er bare en anden måde at gøre det.
Så jeg kan stadig få adgang til mine variabler ved hjælp af $ _GET.
Og i dette tilfælde er jeg bare lidt gør CSS lidt mere fancy.
Og hvis vi pop over til min IDE til en anden,
Jeg vil vise dig i min PHP web mappe her, get2.php.
Vi vil åbne det op, nogle HTML her.
Tilsyneladende jeg forbinder ved, at CSS-fil jeg talte om.
Jeg åbner et bord tag.
Og så her er min foreach løkke.
>> Her er, hvad jeg viste på diaset før.
Den eneste forskel er, at jeg har denne nøgle og værdi CSS
styling, at jeg gælder for det.
Men det er alt jeg gør, er jeg iteration over $ _GET at få alle
De Nøgleværdiparrene.
>> Og jeg udskriver dem ud som tabellen.
Og tilsyneladende, jeg formatering tasterne på én måde, med <td class = "nøgle".
Så tilsyneladende, der gælder for nogle klasse vælgeren i min CSS-fil GET.CSS.
Og tilsyneladende, jeg udskrivning ud mine værdier en helt anden måde.
Hvilket er temmelig meget hvad vi så her, hvor
vores værdier blev trykt med en blå baggrund,
og vores nøgler blev trykt med en gul baggrund.
Så det er sådan jeg får disse forskellige stilarter.
Fordi jeg bruger forskellige CSS-klasser.
Men det er temmelig meget det for GET.
Ligesom jeg bare udtrække oplysninger.
Og i dette tilfælde, jeg er bare udskrive det til skærmen.
Jeg får det ud af URL'en, og det er hvad GET gør for os.
>> Ser du en mulig Problemet her selv?
Hvorfor skulle vi måske ikke ønsker at bruge $ _GET?
Hvad nu hvis, måske var jeg gør denne forespørgsel?
--to get3.php, som jeg ikke har på min IDE.
Det er bare en hypotetisk fil.
Men bemærke her, at der tilsyneladende passerer mit password i.
Og måske min adgangskode er pinligt.
Eller måske jeg ikke vil have folk til vide, hvad mit password er, højre.
>> Hvis jeg passerer det though-- hvis jeg bruger den $ _GET metode, hvad der sker, er,
der kommer til at være i webadressen.
Så nogle ondsindet bruger måske være i stand til at se, hvad jeg gør.
Jeg kan sende dem følsomme oplysninger.
Eller måske er det ikke engang en ondsindet bruger.
Måske er det bare din ven, som står over din skulder.
Og nu kender adgangskoden til din Facebook-konto.
>> Og måske ville de ikke gøre noget med det.
Men hvis dit password var indsendes via $ _GET til Facebook,
nu de kender din Facebook-adgangskode.
Fordi det er lige der i URL'en når du har gjort indsende oplysninger.
>> Og så måske det er ikke den bedste måde at passere følsomme oplysninger.
Det er en god måde at videregive oplysninger at vi ikke specielt
bekymre sig om at være for følsom.
Fordi GET er temmelig hurtigt, i forhold til de andre super globals
vi kommer til at tale om.
Men måske ikke det bedste værktøj til følsomme oplysninger.
>> For at vi måske ønsker at bruge noget, der hedder $ _POST,
som er en anden Super global variabel.
Det er en anden associativt array.
Så det virker temmelig meget nøjagtig det samme som GET.
Bortset, i stedet for at udvinde oplysninger fra URL'en,
det gør noget gennem HTTP-headere.
Så husker fra vores video på HTTP, vi talte
om hvordan browsere, servere, og kunder kommunikere.
Og oplysninger videregives tilbage og tilbage i HTTP-headers.
>> Med $ _POST, information er typisk sendes gennem disse HTTP-headers.
Og vi vil oftest se $ _POST i forbindelse med indsendelse af HTML-formularer.
Du kan stadig bruge HTML-formularer at indsende ting at få.
Men de er normalt bruges i forbindelse med POST.
>> Så her er et eksempel på en HTML-formular.
Nu har vi set disse før, men vi har ikke set denne del, action = "post.php".
Så når vi talte om former i sammenhæng med HTML, havde jeg en Indsend knap.
Og hvis du husker, ville jeg klikke på Send og så siden bare opdateres,
gjorde ikke noget.
>> I dette tilfælde, jeg indsender uanset hvad jeg skriver på denne formular,
til en PHP fil kaldet post.php.
Og tilsyneladende, den måde jeg gør, at i denne form er at bruge POST metoden.
Så hver stykke information at jeg skriver i denne formular
vil blive forelagt gennem HTTP-headers.
>> Det vil være tilgængelige i post.php, fordi det er virkningen af ​​min form.
Det vil være tilgængelige ved at gå til $ _POST.
Og tilsyneladende, den måde, jeg kan får på hvert enkelt element
med det associative array er med denne attribut,
Navn attribut af vores input-tags.
>> Så tilsyneladende kan jeg sige $ _POST kvadrat parentes navn for at få hvad brugeren
skrevet i det første felt.
Og $ _POST password, af PW snarere, at komme på uanset brugeren har skrevet
i det andet felt.
>> Så lad os tage et kig på dette over i CS50 IDE.
Så her er vi, og jeg vil zoome ind for en anden.
Og vi har en fil kaldet post.html.
Jeg klikker på post.html.
På toppen her har jeg en meget simpel webformular.
Det er den form, vi lige har set på diaset et sekund siden.
>> Jeg kan skrive, Doug, og jeg kan skrive mit password, som vi alle
ved, er squadgoals.
Og jeg vil ramme Send.
Og tilsyneladende, at forelægger post.php.
Og jeg åbenbart udskriver det.
Så jeg komme af al den sikkerhed at POST giver mig ved blot at udskrive
brugernavn og adgangskode.
>> Brugerens navn er Doug.
Brugerens kodeord er squadgoals.
Hvordan klarede jeg gøre det?
Nå, pop over til IDE igen for en anden.
Vi vil rulle ned for at tage et kig på post.php, som var
den handling, jeg brugte til at indsende her.
Det var virkningen af ​​min HTML-formular.
Og det er alt jeg gør.
Brugerens navn er, og jeg er udskrivning indholdet ud af $ _POST "navn".
Og så brugerens adgangskode er $ _POST "password".
Så jeg fik at oplysninger ved at indsende HTML formular.
Og jeg kan nu pakke den hjælp $ _POST fordi den metode, jeg brugte til at transmittere
data med denne form var POST metoden.
>> Nu er det nok ikke så store-- jeg har tænkt mig
at gå tilbage til en anden til vores sæt her--
det er nok ikke så stor, hvis jeg indsende oplysninger med POST,
hvilket er angiveligt mere sikker.
Det er nok ikke så stor hvis jeg gør det, og derefter
udskrive brugerens adgangskode.
Det er meningen at være mere sikker.
>> OK, men det er ikke helt sikker.
Og så i denne lille kodestykke her vil jeg
at bare gøre opmærksom på nogle datasikkerhed bekymringer, bare noget
at tænke på, som du er arbejder eller ved hjælp af internettet.
Dette er blot noget at overveje.
>> Jeg fortalte dig, at oplysningerne er indsendes via HTTP-headers
når du bruger POST metoden.
Hvilket betyder, at de er ikke helt sikker.
De er sværere at finde end ved hjælp af GET-metoden, hvor
det er bare lige i webadressen.
Men der er stadig en måde at finde den.
Og jeg vil bare vise dig dette, så du måske
begynde at tænke over dette som du arbejder, eller ved hjælp af
hjemmesider og indsendelse adgangskoder og måske bruge
den samme adgangskode i en masse forskellige steder.
Vid, at er stadig faktisk temmelig let at finde ud af nogens adgangskode.
>> Og så her, jeg har tænkt mig at gå til post2.html.
Og forskellen med post2.html og post2.php er temmelig subtil.
Forskellen er blot at jeg ikke udskrive
adgangskoden, når jeg indsender formularen.
>> Så jeg har tænkt mig at skrive i, Doug.
Og jeg har tænkt mig at skrive i, squadgoals, selv
selvom vi ved, det er kodeordet.
Før jeg indsender danner dog, jeg har tænkt mig
at åbne op Developer Tools, bare for at vise dig, hvad der vil ske her.
Så i Chrome, jeg bare kommer til at ramme F12.
Og det kommer til at åbne op for min Developer Tools på den højre side.
Jeg har ikke indsendt formularen endnu.
Nu vil jeg til at ramme Indsend på min form.
Og tilsyneladende, gjorde jeg en ringe til, eller jeg lavede en anmodning
at post2.php, som giver mening.
Jeg har tænkt mig at klikke på det.
>> Så herovre, jeg skal til at klikke på skæreborde.
Der er en masse ting foregår her.
Men hvis jeg rulle ned til den meget bund, varsel til højre there-- min kalender
har blokeret det for en second-- ret der i det nederste hjørne,
name-- Doug, pw-- squadgoals.
Så selv om jeg bruger POST metode, som er mere sikker,
bare være klar over, at når du gør det, du stadig videregiver oplysninger
via HTTP.
Og det kan stadig være findes ved en modstander.
Det er bare noget, vi vil at skulle beskæftige sig med virkelig.
Måske er der nogle måder at kryptere vores adgangskoder, før vi sender dem over,
hvilket ville være en bedre, som jeg ikke gør her.
>> Men blot være opmærksom på, at POST metode har begrænsninger også.
Det er en forbedring i forhold GET i form af at være umiddelbart synlige.
Men det er ikke en komplet løsning.
Så her er et eksempel på et hurtigt derhjemme øvelse
som du kan bruge til at få nogle øve arbejde med PHP.
Opret følgende par af web-sider.
Den første skal bare være en meget simpel form med et enkelt felt og en Send
knap.
Så meget ligner det, vi bare gjorde med post.html.
>> Og så det andet fil, du bør oprette
er en fil, en PHP-fil, der forventer input via POST,
og baseret på, hvad brugeren har indtastet, som du kan påtage vil være et heltal.
Du behøver ikke at gøre noget fejlkontrol eller lignende.
Du kan antage at brugeren vil skrive et heltal værdi,
eller noget i en fortolket af PHP som et heltal, ind i denne form.
Du ønsker bare at skabe en n med n store tabel.
>> Så hvis brugeren har anført 10, ønsker vi at har en 10 med 10 store tabel.
Hvis brugeren indsender en 12, vi ønsker en 12 med 12 store tabel.
Bare så du kan se, hvad vi kører på her,
vi vil tage et kig på denne fil i min IDE.
>> Så her i IDE, jeg har mult_form.html.
Jeg vil klikke på det.
Alt hvad jeg ønsker at gøre, er at indsende en værdi.
Indtast 10, ramte Send.
Og tilsyneladende, mult_table.php, som vi kan se i toppen der i webadressen,
Jeg skaber en 10 med 10 store tabel.
>> Hvis jeg skriver 15 og ramte Submit, nu jeg har en 15 med 15 store tabel.
Jeg naturligvis ikke kommer til at vise du indholdet af mult_table.php,
fordi det ville tage det sjove ud af dette derhjemme øvelse.
Men det er en fantastisk måde at få nogle øve arbejde med PHP sløjfer
og POST, meget simpelt, forhåbentlig stress fri eksempel, bare
at gøre en lille smule øvelse.
Og jeg har fået en lille CSS foregår her for at gøre min individuelle bord
celler lige slags pop off en lidt og se lidt mere
som en multiplikationstabel, i modsætning til blot tekst bare
slags sidder der.
Den sidste super globale, vi vil tale om i denne video er noget, der hedder
$ _SESSION.
Og måske det er faktisk det bedste eksempel på noget
vi ville overveje globalt.
Det er en anden array.
Det er en anden associativt array.
Men den er tilgængelig gennem hver PHP-fil, der findes på vores system.
>> Vi behøver ikke at indsende oplysninger én side ad gangen
ligesom vi gør med GET og med POST.
Det er der altid.
Og så dette er fantastisk til en side hvor du er logget ind, for eksempel,
og du vil have din login-oplysninger at vare fra side til side til side.
>> Du kan bare starte en session og derefter bruge $ _SESSION til at gemme ting som
brugerens navn, eller brugerens ID information, og så videre.
Og at oplysningerne vil forblive i $ _SESSION Indtil du ødelægger sessionen
lidt senere.
>> Skrivning dynamiske hjemmesider med PHP gør dem meget bedre.
Dine websteder bliver meget dynamisk, og du ikke gør
nødt til at gøre for meget mere end hvad du ellers ville have gjort netop
gør det med HTML.
Men det kræver praksis en masse praksis.
>> Du ved allerede, hvordan man arbejder med C, og så hoppe til PHP er ikke alt for svært.
Hvad er måske lidt smule tricky arbejder
med denne nye idé om GET og POST, og måske blande din HTML og din PHP
sammen.
Men også være opmærksom på, at internettet er et stort lager af information.
Og PHP dokumentation er tilgængelig mange steder, men måske mest
canonically på php.net.
Og du kan finde der, masser af forskellige funktioner,
og bruge sager og eksempler upon eksempler, upon eksempler.
Hvor, hvis du ønsker at prøve og figur ud af, hvordan at gøre noget, odds er,
nogen har formentlig gjort det før dig.
Og du kan bruge dem som inspiration til at gennemføre, hvad
det er du prøver alt for at gennemføre.
>> Jeg er Doug Lloyd.
Det er CS50.