>> DOUG LLOYD: Kaya sa aming video sa PHP syntax,
usapan natin ng maraming tungkol sa kung paano PHP ay maaaring gamitin sa command line
upang magpatakbo ng mga programa sa isang paraan na kami ay medyo pamilyar sa mula sa C.
Ngunit tulad ng nabanggit ko rin in na video, PHP
ay unang binuo sa ipatupad web programming, website.
At kaya sa video na ito hindi namin pagpunta sa makipag-usap tungkol sa kung paano namin
gamitin ang PHP sa context ng web development.
>> Alam namin, na, mula sa aming mga video sa HTML,
na ang mga website ay binuo sa labas ng isang hanay ng mga tag na HTML
na semantically tukuyin ang istraktura ng isang web page.
Ngunit website na binuo na may purong HTML
magtiis sa isang tunay, napaka-seryoso limitasyon.
>> At upang ilarawan ito limitasyon, Isaalang-alang natin ang mga sumusunod na ipaalam.
Kaya ngayon Gusto kong bumuo ng isang pahina ng web na, kapag pagbisita ng gumagamit nito,
nagbibigay ito sa akin ang mga kasalukuyang oras sa Cambridge, Mass.,
pagpapakita ng mga ito sa pinakabagong minuto.
Kung ako ay ang paggawa ng mga ito sa ngayon, Maaaring sabihin ko ng isang bagay na katulad nito.
Kasalukuyang oras sa Cambridge-- kaya wala ako Mga tag na HTML, ulo ng mga tag, mga tag ng pamagat,
katawan tags-- ang kasalukuyang oras sa Cambridge ay 14:08,
pag-print out time militar.
>> Ano ang mangyayari kung ito ay ngayon 02:09, 14:09?
Well sa ngayon, na may HTML, mayroon akong upang pumunta sa at baguhin ito sa 14:09.
At pagkatapos ng isang minuto ang lumipas, Kailangan ko bang baguhin ang mga ito muli.
At bilang maaari mong isipin, na ang marahil ang pinakamasama trabaho kailanman.
Ikaw ang webmaster para sa isang web page, at bawat minuto, 24 na oras sa isang araw,
kailangan mong i-update ang kasalukuyang oras sa pamamagitan ng mano-mano ang pagbubukas time.html at pagbabago
lamang na snippet ng code upang sabihin ang kasalukuyang oras sa oras at minuto.
Iyon ay marahil hindi isang tunay mabuting paggamit ng aming mga mapagkukunan,
parehong mga tao at computational.
>> Mga website na ang lahat ng HTML ay ganap na static.
Ang tanging paraan na maaari mong i-update nilalaman, katulad lang namin na iyong nakita,
ay sa manwal na buksan ang mga pinagmulan mga file, i-edit ang mga ito, at i-save ang mga ito.
At pagkatapos ay kapag ang user nagre-refresh ang pahina,
o bumisita sa pahina ng para sa unang panahon, ang mga ito ay makuha ang pinakabagong nilalaman.
Ngunit dahil lamang hindi namin manu-mano-edit ito.
>> Kung magsisimula kami upang makihalubilo sa ilang PHP sa doon, ang aming mga code ay maaaring makakuha ng higit pang kakayahang umangkop sa isang pulutong.
At maaari kaming magkaroon ng isang paraan para sa aming mga pahina upang maging dynamic, o i-update ang kanilang mga sarili,
nang hindi kinakailangan sa aming mga mahihirap webmaster sa nakaraang halimbawa
upang maging mano-mano ang pag-update ng mga bagay.
Maaari silang gawin ito nang awtomatiko.
Wala kaming upang mamagitan.
Maaari naming makakuha ng ilang pagtulog.
Aling ay marahil isang magandang bagay kung ikaw ay gumagawa ng isang pulutong ng mga web programming.
>> Kaya sa CS50 IDE, nagsasagawa kami ng isang web server na tinatawag na Apache.
Ito ay isang napaka-karaniwang ginagamit, open source system web server.
Ang system na ito ay may mga kapasidad na bigyan ng kahulugan
PHP, na kung saan ay magiging kapaki-pakinabang kung na nais mong gawin sa anumang programming PHP.
>> At sa CS50 IDE, kami ay may isang utos upang gumawa ng mga ito tunay na madaling gawin,
apache50 magsimula.
At pagkatapos na slash landas, slash na, slash
dir, ito lamang ay isang tunay na karaniwang paraan ng na nagpapahiwatig kung ano ang iyong tinukoy dito
ay isang landas sa isang partikular na direktoryo na kayo
gusto na ang mga ugat site, o ang root page,
o ang folder kung saan ang iyong mga web server ay magsisimula upang suriin ang mga file at maglingkod
ang mga ito hanggang sa mga kliyente na humiling ng mga ito.
Kaya sabihin pop higit sa CS50 IDE, para lamang ipakita sa iyo, talagang mabilis, kung paano ito gumagana.
>> Kaya dito sa CS50 IDE, ako sa isang direktoryo na tinatawag Week Zero Siyam.
At ako ay may two-- mayroon akong sa pagsubaybay ng isang LS utos lamang
sa itaas upang ipakita sa iyo na mayroon akong dalawang direktoryo in dito, PHP,
kung saan ay ang hanay ng mga file na ginamit ko sa ang PHP syntax video, at pagkatapos ay PHP-web,
kung saan ay ang hanay ng mga file na ako ay nais na gamitin sa video na ito.
>> At Gusto kong magsimula isang halimbawa web server
sa mga nilalaman ng PHP-web folder bilang ang file na ito ay nagsilbi up.
Kaya kung ano ako pagpunta sa gawin?
Ako pagpunta sa uri apache50 space simulan, space PHP, dash web.
Iyan ay ang landas sa direktoryo mula kung saan ako kasalukuyang am.
Pagkatapos ako pindutin ang Enter.
Ito ay pagpunta sa gawin ang isang maliit na piraso ng mga bagay-bagay dito.
At pagkatapos ito ay pagpunta sa sabihin, Matagumpay na nagsimula Apache.
Ang iyong site ay magagamit na ngayon at-- at pagkatapos ay mayroong mga URL para sa site.
Kaya kung ano ako pagpunta sa gawin?
Pupunta ako sa mabilis na kopya na ito.
At ako pagpunta upang buksan up-- at Kukunin ko mag-zoom out nang kaunti here--
Pupunta ako upang buksan up isang bagong tab sa Chrome.
At ako pagpunta upang bisitahin ang URL na iyon.
>> Pupunta ako sa pindutin ang Enter.
Ito ay pagpunta upang i-load.
At kukunin ko na mag-zoom out muli.
At makikita natin dito ay ang mga nilalaman ng aking PHP web directory.
>> Kaya ngayon kung ano talaga nangyayari dito ay, ang aking mga halimbawa ng CS50 IDE
ay serving up ang mga file sa kahit sino na ang kahilingan nila.
At sa mga kurso ng ang video na ito, makikita namin uri-uriin ng
tingnan ang isang kumpol ng mga iba't-ibang mga file sa konteksto.
>> Upang subukan na ang iyong Apache server ay gumagana,
na kung saan ay karaniwang pagpunta na ang kaso sa CS50 IDE,
ngunit kung gagawin mo ito mas pangkalahatang paraan, at simulan mo ang pagbuo ng iyong sariling mga web
server, may isang talagang karaniwang uri ng analog na,
"hello mundo," na kadalasan ay ginagamit para sa pag-unlad na PHP web.
Aling ay ang magkaroon ng isang file na binubuo ng lamang code-- ito
isang delimiter PHP set sa info PHP, panaklong, semicolon sa pagitan.
Aling ay isa lamang ng isang espesyal na PHP function na nagsasabi sa iyo
ano ang bersyon ng PHP mo ay tumatakbo.
>> Kaya sa CS50 IDE, mayroon akong file na makukuha lamang
upang ipakita sa iyo kung ano ang magiging hitsura.
Kaya Naghahanap ako sa aking index mula sa aking mga halimbawa PHP.
Aking Apache halimbawa ay tumatakbo ang mga nilalaman ng PHP-Web.
At mayroon akong isang file dito na tinatawag info.php.
>> Pupunta ako sa i-click ito, mag-zoom out.
Ito ay kung ano ang iyong pagpunta upang makita, medyo marami.
Ito ay lamang na nagsasabi sa akin na aking Apache server.
At ito ay, tila, ang bersyon ng PHP na ako sa pagtakbo.
Ito ang aking analog na "hello mundo."
>> Kaya alam ko ang mga bagay ay pagpapatakbo.
Kaya hindi namin handa na upang patakbuhin.
Maaari naming magpatuloy mula dito.
>> Kaya sabihin bisitahin muli na time halimbawa namin ay
pakikipag-usap tungkol sa aming mga mahihirap webmaster na nag-i-update ang mga pahina ang patuloy.
Ito ay maaaring maging isang remedyo para sa kung paano Gusto ko ipatupad bagay
sa gayon ay hindi ang mga webmaster kailangang panatilihin ang pag-update ng oras.
Gagawin ito lamang ang uri ng awtomatikong mangyari.
>> Ang down sa ibaba, ang HTML, ito ay medyo katulad na, na may isang pagbubukod.
Ngunit dito Mayroon akong ilang PHP sa itaas.
Ako ay, tila, na tinatawag na ito function na date_default_timezone_set.
>> At hindi namin makipag-usap tungkol sa lahat ng mga function sa CS50,
dahil PHP ay marahil sampu-sampung libo.
Iyon ay maaaring maging isang piraso ng isang pagmamalabis, ngunit hindi ito maaaring maging.
Isang pulutong ng mga pag-andar na binuo sa Ito ay nakuha.
At kaya ito ay isang function na tila Nagtatakda ang aking time zone bilang US / Eastern,
kung saan ay ang time zone na ako kasalukuyang nasa paggawa ng video na ito.
>> Pagkatapos ay gumawa ako ng isang tawag na function na tinatawag na, date.
At, tila, ako sa pagtatabi ng mga ANG KANYANG ng isang bagay na tinatawag, oras.
Kaya kung ano ang nangyayari sa dito?
>> Well, talaga kung ano ang nangyayari ay, ako ng paggawa ng isang tawag
sa ilang mga server na ay pagpunta sa sabihin sa akin kung ano ang oras sa kasalukuyan ay.
At ako sa pag-convert ito sa isang format ng mga oras, minuto, segundo.
At ang mga dahilan na ito ay capital H ay ito ay pagpunta sa bigyan ako ng 24 na oras na panahon, hindi 12
oras oras, na kung saan ay magiging lowercase h.
At ako lamang sa pag-iimbak na sa isang variable na tinatawag na, oras.
Kaya na pangalawang linya ng PHP doon, ang tawag sa mga function,
petsa, ay lamang sa pagkuha ang ilang mga string, na kung saan ay
pagpunta sa bigyan ako ang petsa, at ang mga panahon, at isang bungkos ng iba pang impormasyon.
At ang unang argumento doon, na NIYA, ay extract lamang ang mahalagang bahagi
pinapahalagahan ko tungkol sa halimbawa na ito, kung saan ay ang oras, minuto, at segundo.
Kaya na ang lahat na nangyayari.
Kaya mag-imbak ko na sa isang variable $ oras.
At pagkatapos ay down sa pinakailalim doon, ako
Mayroon na shorthand para sa pag-print out sa kasalukuyang oras.
Kaya lang ako pagpunta sa i-print kung ano ang kasalukuyang panahon.
>> Kaya sabihin kumuha ng isang pagtingin sa ito sa CS50 IDE at makita kung paano kami ngayon
pag-save ng webmaster na ang isang pulutong ng mga problema.
Lahat ng karapatan, kaya dito ako muli bumalik sa root directory
ng aking Apache halimbawa.
At mayroon akong isang file dito na tinatawag time.php.
Lamang ako ng pagpunta sa mag-click sa na.
At kukunin ko na mag-scroll pataas, dahil kami ay naka-zoom in medyo malayo.
Ang kasalukuyang oras ay 14:20:34.
Kaya ako ginagawa ito sa oras, minuto, at segundo.
At maaari ko bang i-refresh ang pahina at makakuha ng mga bagong pagkakataon.
--41.
Pupunta ako upang i-refresh ang pahina at makakuha ng mga bagong pagkakataon, 44, 46, 47.
>> Kaya, ako ay malinaw na hindi pagbabago ng anumang bagay sa aking sarili.
Dito ako refresh ang pahina.
Kaya hindi ko na bumalik doon pag-edit ito.
At pangako ko sa inyo, hindi ako ay may anumang mga kakampi
na pag-edit ng file sa ngalan ng aking sa gilid.
>> Lamang ako gamit ang function na PHP, panahon, upang makabuo ng mga oras para sa akin
awtomatikong.
Kaya na kahit na hindi ako tulog, at ang aking mga web server ay tumatakbo,
ang gumagamit na pagbisita na pahina ay pa rin pagpunta upang makakuha ng eksakto sa kasalukuyang oras.
Kaya na medyo magandang.
Iyong ginawa mas dynamic ang aking site ko may hindi masyadong maraming code na PHP.
Ito ay isa lamang ng dalawang linya ng code at pagkatapos ay isang maliit na piraso ng isang pahayag print.
At mayroon akong isang mas dynamic site
kaysa sa na unang halimbawa nakita natin sa simula ng video.
>> Kaya, isipin ang mula sa mga video sa syntax PHP na kapag tumatakbo ang interpreter PHP
aming programa, ipinagwawalang-bahala ng lahat ng bagay iyan ay hindi sa loob ng delimiters PHP,
pagdura ito.
Sa halimbawa na, kung ano ang mga bagay na ito ay pagdura ay HTML.
At ito ay nangangahulugan ako ay maaari na ngayong makalat ang HTML at PHP magkasama.
Dahil ang mga interpreter ay lamang huwag pansinin ang mga HTML at literal output ito.
Aling ay mabuti, di ba?
>> Dahil siguro, sa pagtatapos ng araw,
Gusto ko ang aking site sa ay itinayo ng HTML.
Kaya na maaaring bigyang-kahulugan sa anumang web browser ito, o maunawaan ang HTML sa pahina
at i-render ito bilang isang bagay na namin talaga maintindihan bilang tao.
At ako ay maaari lamang gamitin ang PHP para sa mga bahagi ng aking site
ang nangangailangan ng dynamism, na nangangailangan sa akin na magkaroon ng mga bagay-bagay na-update patuloy.
Ang mga static na impormasyon maaaring manatili sa parehong.
>> OK, kaya na multa.
Ngunit kung bakit ko gagawin ito?
Bakit gusto ko bang isama ang HTML at PHP?
Maaari ko bang i-print out lamang ang lahat ng HTML, gamit ang function print PHP.
Bakit hindi ko ginagawa iyon?
Isipin ito para sa isang segundo.
>> Bakit, nang hindi ko i-print lamang out-- ko ay maaaring magkaroon ng mga linya ng PHP na lang sabihin,
print tag na HTML, print head.
Bakit hindi ko ginagawa iyon?
Bakit ako paghahalo ng PHP at HTML?
>> Well, kung sa tingin mo tungkol sa mga ito para sa isang segundo.
PHP, ang mga interpreter ay upang bigyang-kahulugan kung ano ang nakikita ng mga ito.
At kaya ito ay pagpunta sa may upang magpatakbo ng isang linya ng code.
I-print ang HTML.
I-print out open head tag.
I-print out tag open title.
Ito ay pagpunta sa may sa execute at bigyang-kahulugan
na ang bawat isang hakbang ng paraan.
Bakit hindi lamang hayaan ang interpreter pagtakpan ng higit lamang sa
mga bagay na ito ay hindi maunawaan at awtomatiko itong gawin?
Ito ay pagpunta sa i-save ako ng maraming oras upang makihalubilo sa aking HTML at ang aking PHP magkasama.
>> At kaya na ang dahilan kung bakit hindi namin lamang magkaroon ng open delimiter PHP
at pagkatapos ay i-print lamang ang buong nilalaman ng aming mga pahina bilang isang higanteng PHP
tumawag sa function, Print, at pagkatapos ay malapit delimiter PHP at tapos na kami.
Kaya na ang dahilan kung bakit namin paghaluin ang mga ito nang magkakasama.
>> Sa ngayon, hindi pa namin masyadong maraming ng nakita ng isang pagkakaiba mula sa mga pangkalahatang syntax PHP.
Naging medyo direkta.
Nakita na natin na ang tandang pananong, pantay-pantay.
Nakita namin ang isang pares ng mga bagong tawag function, ngunit wala talagang magarbong nangyayari.
Ni marahil gumawa ng mga bagay-bagay Ipaalam isang maliit na interes.
Paano kung gusto naming ipasa ang impormasyon pagitan ng iba't ibang mga file ng PHP,
kaya na siguro ang user ay maaaring isumite ang impormasyon sa akin.
At pagkatapos ay maaari kong gawin ang isang bagay sa mga ito sa isa pang pahina.
>> Kaya may suporta para sa PHP bagay na tinatawag na Super Global
Mga variable, na tunog medyo kasindak-sindak.
Ang mga ito ay talagang lamang giant uugnay array
na makakatulong sa ipatupad ito pag-andar ng pagpasa
impormasyon sa pagitan ng mga file na PHP na ay umiiral na sa aming web server.
>> Ang una sa mga super globals ay tinatawag na $ _GET.
At ito ay marahil ang pinakasimpleng upang maunawaan.
Ano ang mangyayari sa $ _GET?
Well, talaga, ang gumagamit ay pagpunta sa uri ng dagdag na impormasyon
sa dulo ng aming mga URL.
At kahit anong type nila, sa pag-aakala ito ay na-format sa isang partikular na paraan
tinatawag na isang query string, na kung saan ay lamang isang hanay ng mga pangunahing mga pares ng halaga na pinaghihiwalay
sa pamamagitan ng mga ampersand.
Ang mga pangunahing mga pares ng halaga ay nakatago sa isang $ _GET uugnay array.
At mula sa aming mga video sa PHP syntax, alam namin
kung paano gumagana sa nag-uugnay array na.
Kaya dito ay isang halimbawa ng ilang PHP, kung saan siguro ako
extract ang lahat ng mga pangunahing mga pares ng halaga na ang mga user na ibinigay sa URL.
Kaya ko ang aking Open delimiter PHP.
Mayroon akong isang foreach loop.
Ako iterating sa buong Super Global Array tinatawag $ _GET.
>> At gusto ko upang ma-refer sa pareho ng key at ang mga halaga.
At tingin lang ako sa pag-print ng mga ito out, ang bawat isa sa malas
kanyang sariling talata tag dito.
Ako nagpi-print out ang ilang HTML at interpolating ang mga halaga
ng susi at halaga sa pahayag na iyon.
>> Kaya sabihin kumuha ng isang pagtingin sa kung paano ito ay talagang gumagana sa aming IDE.
At marahil ito ay makakatulong ilarawan ang isang maliit na piraso
ng kung ano GET ay aktwal na paggawa.
Kaya ako bumalik dito sa aking web root.
At kukunin ko na mag-zoom in sa isang ilang sandali upang ipakita sa iyo
na mayroon akong isang file na tinatawag na, get1.php.
>> Kaya sabihin-click sa get1.php.
At hindi ko na nakikita ang anumang nilalaman.
Iyan ay kakaiba, di ba?
Well, not really talaga.
Dahil hindi ko matustusan anumang bagay sa URL.
Pupunta ako sa get1.php, ngunit ako ay hindi magbigay ng anumang key pares ng halaga
bilang bahagi ng aking query string.
Kaya sabihin magdagdag ng isang query string at makita kung ano ang maaaring gawin ang file na ito.
>> Upang magsimula ng isang query string mo i-type lamang ng tandang pananong.
Pagkatapos siguro Sasabihin kong name = Doug & taon = 2015.
At pagkatapos ay ako pindutin ang Enter.
Ngayon pansinin kung ano ang nangyayari.
Ako pa rin sa get1.php.
Ngunit ngayon na ibinibigay ko key na mga pares ng halaga, at ako
pag-print out ang mga ito sa kanilang sariling paragraph-- name, Doug-- taon, 2015.
Iyon ang eksaktong code namin lamang Nakita sa slide ng ilang sandali ang nakalipas.
>> At kung gusto kong marahil magdagdag ng isa pang key halaga pares, at mga class = CS50.
Ngayon ay mayroon akong isa pang susi halaga pares na naka-print out
kapag muling bisitahin ko ang URL muli.
Ngayon marahil ito ay hindi format na masyado rin.
Kaya kailangan ko ng isa pang bersyon ng get.php.
Ito ay get2.php.
>> Ang pagkakaiba sa mga ito ang isa ay mayroon akong CSS file,
at ito format ng mga bagay ng isang maliit na mas mabuti para sa akin.
Ito ay hindi na siguro ang pinaka maganda ang CSS sa mundo.
Ngunit ito ay isa lamang paraan ng paggawa nito.
Kaya maaari ko pa rin makakuha ng access sa aking mga variable na gamit ang $ _GET.
At sa kasong ito, ako lamang ang uri ng paggawa ng CSS ng kaunti pa sa pag-iisip.
At kung pop higit nating aking IDE para sa isang segundo,
Ipapakita ko sa iyo sa aking web PHP directory dito, get2.php.
Susubukan naming buksan ito, ang ilang mga HTML dito.
Malas ako sa pagli-link sa na CSS file ay pakikipag-usap tungkol sa.
Bukas ko ng lamesa tag.
At pagkatapos ay narito ang aking foreach loop.
>> Dito ay na, kung ano ang aking nagpakita sa slide bago.
Ang pagkakaiba lamang ay ko Mayroon ang key na ito at halaga CSS
sa istilo na ako ng nag-aaplay sa mga ito.
Ngunit iyon lamang ang lahat ng ako ng paggawa, ay hindi ako iterating kabuuan $ _GET upang makakuha ng lahat
sa mga pangunahing mga pares ng halaga.
>> At ako nagpi-print out ang mga ito bilang ang table.
At, tila, ako sa pag-format ng mga susi sa isang paraan, na may <td class = "key".
Kaya tila na nalalapat sa ilang selector klase sa aking CSS file GET.CSS.
At, tila, ako nagpi-print out ang aking mga halaga ng isang ganap na iba't ibang paraan.
Aling ay medyo marami ano ang nakita natin dito, kung saan
ang aming mga halaga ay naka-print na may asul na background,
at sa aming mga key ay naka-print may isang dilaw na background.
Kaya na kung paano ko nakukuha mga iba't ibang estilo.
Dahil ako gamit ang iba't ibang mga klase sa CSS.
Ngunit iyon ay medyo marami ito para sa GET.
Tulad ako ng extract ng impormasyon.
At sa kasong ito, lang ako pag-print ito sa screen.
Nakakakuha ako ng ito sa labas ng URL, at na kung ano ang ginagawa ng GET para sa amin.
>> Nakikita mo ba ang mga posibleng problema dito kahit na?
Bakit namin siguro Hindi nais na gamitin $ _GET?
Paano kung, marahil, ako ay gumawa sa query na ito?
--to get3.php, na aking hindi magkaroon sa aking IDE.
Ito lamang ay isang hypothetical file.
Ngunit mapansin dito na tila pagpasa aking password in.
At siguro ang aking password ay nakakahiya.
O baka hindi ko gusto ang mga tao na malaman kung ano ang aking password, right.
>> Kung ako makapasa ito though-- kung gumagamit ako ang $ _GET paraan, sa kung ano ang mangyayari ay,
na ang pagpunta sa maging sa URL.
Kaya ang ilang mga malisyosong user maaari maaaring makita kung ano ang ginagawa ko.
Maaaring ako ay pagpasa sa kanila sensitibong impormasyon.
O marahil ito ay hindi kahit na ang isang malisyosong user.
Siguro ito lamang ang iyong mga kaibigan na ay nakatayo sa iyong balikat.
At ngayon alam nila ang password sa iyong Facebook account.
>> At siguro gagawin nila hindi gumawa ng kahit ano sa mga ito.
Ngunit kung ang iyong password ay isinumite sa pamamagitan ng $ _GET sa Facebook,
ngayon ay alam nila ang iyong password Facebook.
Dahil ito ay may karapatan sa URL kapag nagawa mo na ang pagsusumite ng impormasyon.
>> At kaya marahil na hindi ang pinakamahusay na paraan upang pumasa sa mga sensitibong impormasyon.
Ito ay isang mahusay na paraan upang pumasa sa impormasyon na hindi namin lalo
pag-aalaga tungkol bilang masyadong sensitive.
Dahil GET ay medyo mabilis, kamag-anak sa iba pang mga sobrang globals
kami ay pagpunta sa makipag-usap tungkol sa.
Pero siguro hindi ang pinakamahusay na tool para sa mga sensitibong impormasyon.
>> Para sa na maaari namin nais na gumamit ng isang bagay na tinatawag na $ _POST,
na kung saan ay isa pang Super Global Variable.
Ito ay isa pang nag-uugnay array.
Kaya ito ay gumagana medyo marami eksaktong katulad GET.
Maliban, sa halip ng pag-extract impormasyon mula sa mga URL,
ito ay isang bagay sa pamamagitan ng mga header ng HTTP.
Kaya isipin ang mula sa aming video sa HTTP, usapan natin
tungkol sa kung paano mga browser, mga server, at mga kliyente na makipag-usap.
At ang impormasyon ay lumampas na sa likod at sa nakasaad sa mga header ng HTTP.
>> Gamit $ _POST, ang impormasyon ay karaniwang ipinadala sa pamamagitan ng mga HTTP header.
At kami ay pinaka karaniwang nakikita $ _POST in konteksto ng pagsusumite ng form na HTML.
Maaari mo pa ring gamitin ang mga form HTML upang isumite ang mga bagay-bagay sa GET.
Ngunit kadalasan ito ay ginagamit sa konteksto ng POST.
>> Kaya narito ang isang halimbawa ng isang HTML form.
Ngayon na namin makikita ang mga bago, ngunit kami ay may hindi nakita ang bahaging ito, action = "post.php".
Kaya kapag usapan natin ang tungkol forms sa konteksto ng HTML, ako ay isang button Isumite.
At kung ang pagpapabalik sa iyo, gusto kong i-click ang Isumite at pagkatapos ay ang pahina lamang refresh,
ay hindi dapat gawin.
>> Sa kasong ito, ako ng pagsusumite kahit anong type ko sa form na ito,
sa isang PHP file na tinatawag na post.php.
At, tila, ang paraan na ako sa paggawa na sa form na ito ay gumagamit ng mga paraan ng POST.
Kaya ang bawat piraso ng impormasyon na nagta-type ako sa form na ito
ay isinumite sa pamamagitan ng mga http header.
>> Ito ay magiging accessible sa post.php, dahil iyon ang pagkilos ng aking form.
Ito ay magiging accessible sa pamamagitan ng pagpunta sa $ _POST.
At tila, ang mga paraan na kaya ko kumuha sa bawat indibidwal na elemento
may na-uugnay array ay may mga katangian na ito,
ang Pangalan na katangian ng aming input tag.
>> Kaya tila maaari kong sabihin $ _POST square pangalanan bracket upang makakuha ng kahit anumang user ang
nag-type sa unang field.
At $ _POST password, ng pw sa halip, upang makakuha ng sa anumang user-type ng
sa ikalawang field.
>> Kaya sabihin kumuha ng isang pagtingin sa na ito sa loob sa CS50 IDE.
Kaya dito ay namin, at idedetalye ko mag-zoom in para sa isang segundo.
At kami ay may isang file na tinatawag post.html.
Click ako sa post.html.
Sa pinakatuktok dito ko isang napaka-simpleng web form.
Ito ay anyo lang namin nakita sa slide sa isang segundo ang nakalipas.
>> Maaari kong i-type, Doug, at maaari ko type ang aking password, na kung saan namin ang lahat ng
malaman ay squadgoals.
At ako ay pindutin ang Isumite.
At tila, na isinusumite sa post.php.
At tila ako nagpi-print na.
Kaya ako inaalis ng lahat ang seguridad na nagbibigay sa akin POST sa pamamagitan lamang ng pag-print out
ang username at password.
>> Ang pangalan ng user ay Doug.
Password ng user ay squadgoals.
Paano nakarating ang gagawin ko ito?
, Pop higit Well sa IDE muli para sa isang segundo.
Ay mag-scroll namin down na kumuha ng tingnan ang post.php, na kung saan ay
ang aksyon na ginamit ko upang isumite dito.
Iyon ay ang pagkilos ng aking form HTML.
At na ang lahat ako ng paggawa.
Ang pangalan ng user ay, at ako sa pag-print out ang mga nilalaman ng $ _POST "pangalan".
At pagkatapos ay ang password ng user ay $ _POST "password".
Kaya ako ay ibinigay na impormasyon sa pamamagitan ng pagsusumite ng form na HTML.
At maaari ko na ngayong i-extract ito gamit $ _POST dahil ang pamamaraan na ginamit ko upang magpadala ng
data sa form na iyon ay ang paraan ng POST.
>> Ngayon ito ay marahil hindi kaya great-- pupuntahan ko
upang bumalik para sa pangalawang sa aming set here--
marahil ito ay hindi kaya mahusay na kung ako ay pagsusumite ng impormasyon sa POST,
na kung saan ay tila mas ligtas.
Ito ay marahil hindi kaya mahusay kung ako paggawa ng iyon at pagkatapos ay
imprenta ang password ng user.
Ito ay dapat na maging mas ligtas.
>> OK, ngunit ito ay hindi ganap na secure.
At kaya sa maliit na ito snippet dito gusto ko
upang gumuhit ng iyong pansin sa ilang mga alalahanin sa seguridad ng data, ang isang bagay lamang
mag-isip tungkol sa bilang ikaw ay nagtatrabaho o gamit ang internet.
Ito ay lamang ng isang bagay upang isaalang-alang.
>> Sinabi ko sa iyo na ang impormasyon ay isinumite sa pamamagitan ng HTTP header
kapag ginamit mo ang paraan ng POST.
Na nangangahulugan na ang mga ito ay hindi ganap na secure.
Ang mga ito ay mas mahirap na makahanap sa gamit ang paraan na GET, kung saan
ito ay tama lang sa URL.
Subalit mayroong isang paraan upang mahanap ang mga ito pa rin.
At ako lamang ang nais na ipakita sa iyo ito upang ikaw siguro
magsimulang mag-isip tungkol sa mga ito habang ikaw ay nagtatrabaho, o gamit
mga website at pagsusumite mga password, at marahil gamit
ang parehong password sa isang maraming iba't ibang mga lugar.
Malaman na ay talagang pretty pa rin madaling malaman password ng isang tao.
>> At kaya dito, pupuntahan ko upang pumunta sa post2.html.
At ang pagkakaiba sa post2.html at post2.php ay medyo banayad.
Ang pagkakaiba ay lamang na hindi ko i-print out
ang password kapag magsumite ng form.
>> Kaya ako pagpunta sa i-type sa, Doug.
At ako pagpunta sa uri in, squadgoals, kahit
kahit na alam natin na ang password.
Bago ko isusumite ang bumuo ng kahit na, pupuntahan ko
upang buksan ang Mga Tool ng Developer, para lamang ipakita sa iyo kung ano ang nangyayari sa mangyayari dito.
Kaya sa Chrome, tingin lang ako sa pagpunta sa hit F12.
At na ang pagpunta sa buksan ang aking Mga Tool ng Developer sa kanang bahagi ng kamay.
Hindi ko pa naisumite ang form.
Ngayon ako pagpunta sa pindutin ang Isumite sa aking form.
At tila, ginawa ko ang isang tumawag sa, o ginawa ko ang isang kahilingan
upang post2.php, na makatuwiran.
Pupunta ako upang mag-click sa na.
>> Pagkatapos ay sa paglipas dito, pupuntahan ko mag-click sa mga header.
May isang pulutong ng mga bagay-bagay na nangyayari dito.
Ngunit kung mag-scroll ko pababa sa pinakailalim ibaba, notice karapatan there-- aking kalendaryo
na-block ito para sa isang second-- karapatan doon sa pinakadulo ibaba na sulok,
name-- Doug, pw-- squadgoals.
Kaya kahit na gumagamit ako ng POST Ang pamamaraan, na kung saan ay mas ligtas,
magkaroon ng kamalayan na kapag ginawa mo lang kaya, ikaw ay pagpapadala pa rin ng impormasyon
sa pamamagitan ng HTTP.
At maaari pa rin itong maging natagpuan sa pamamagitan ng isang kaaway.
Ito ay lamang ng isang bagay na kami ay pagpunta na kailangang humarap sa tunay.
Siguro may ilang mga paraan upang i-encrypt ang aming mga password bago namin ipadala ang mga ito sa paglipas ng,
na kung saan ay isang mas mahusay, na hindi ko ginagawa dito.
>> Ngunit magkaroon ng kamalayan na ang mga POST lamang Ang pamamaraan ay may masyadong limitasyon.
Ito ay isang pagpapabuti sa paglipas GET in mga tuntunin ng pagiging agad makikita.
Ngunit ito ay hindi isang kumpletong pag-aayos.
Kaya narito ang isang halimbawa ng isang mabilis na sa bahay ehersisyo
na maaari mong gamitin upang makakuha ng ilang pagsasanay nagtatrabaho sa PHP.
Lumikha ng ang mga sumusunod na pares ng mga pahina ng web.
Dapat lamang unang Ang isang napaka-simple bumubuo sa isang solong na patlang at isang Isumite
button.
Kaya lubos na katulad sa kung ano ang aming ginawa lamang sa post.html.
>> At pagkatapos ay ang pangalawang maghain dapat mong lumikha ng
ay isang file, ang isang file PHP, na ay umaasang input, sa pamamagitan ng POST,
at batay sa kung ano ang nai-type ang mga gumagamit, kung saan maaari mong ipalagay na ito ay isang integer.
Hindi mo na kailangang gawin ang anumang error checking o mga katulad.
Maaari mong ipalagay ang user ay type ng isang integer value,
o isang bagay tulad ng isang kahulugan sa pamamagitan ng PHP bilang isang integer, sa form na iyon.
Gusto mo lamang upang lumikha ng isang n sa pamamagitan n pagdami talahanayan.
>> Kaya kung ang gumagamit ay nagsumite ng 10, gusto naming magkaroon ng isang 10 sa pamamagitan ng 10 pagdami talahanayan.
Kung ang gumagamit ay nagsumite ng isang 12, gusto naming isang 12 sa pamamagitan ng 12 pagdami talahanayan.
Basta kaya maaari mong makita kung ano ang kami ay nagmamaneho sa dito,
kami ay kumuha ng isang pagtingin sa ang file na ito sa aking IDE.
>> Kaya dito sa IDE, mayroon akong mult_form.html.
Kukunin ko i-click ito.
Lahat ng gusto kong gawin ay magsumite ng isang halaga.
I-type sa 10, pindutin ang Isumite.
At tila, mult_table.php, na maaari naming makita sa tuktok doon sa URL,
Lumilikha ako ng isang 10 sa pamamagitan ng 10 pagdami talahanayan.
>> Kung nagta-type ako ng 15 at pindutin ang Isumite, ngayon ko magkaroon ng isang 15 sa pamamagitan ng 15 pagdami talahanayan.
Ako, siyempre, hindi pagpunta upang ipakita mo ang mga nilalaman ng mult_table.php,
dahil gusto na kunin ang saya out ng mga ito sa bahay ehersisyo.
Ngunit ito ay isang mahusay na paraan upang makakuha ng ilang mga pagsasanay nagtatrabaho sa loops PHP
at POST, napaka-simple, sana stress free Halimbawa, lamang
upang gawin ang isang maliit na piraso ng pagsasanay.
At Nakakuha ako ng isang maliit na CSS nangyayari dito upang gumawa ng aking mga indibidwal na talahanayan
cells lamang ang uri ng pop-off ng isang kaunti at tumingin ng kaunti pa
tulad ng isang pagdami talahanayan, bilang laban sa text lang lamang
uri ng pag-upo doon.
Ang huling super global namin makipag-usap tungkol sa sa video na ito ay isang bagay na tinatawag
$ _SESSION.
At marahil ito ay talagang ang pinakamahusay na halimbawa ng isang bagay
Gusto naming isaalang-alang global.
Ito ay isa pang array.
Ito ay isa pang nag-uugnay array.
Ngunit ito ay naa-access sa pamamagitan ng bawat PHP file na umiiral sa aming system.
>> Wala kaming upang isumite impormasyon sa isang pahina sa isang pagkakataon
tulad ng ginagawa namin sa GET at may POST.
Ito ay palaging doon.
At kaya ito ay mahalaga para sa isang pahina kung saan ikaw ay naka-log in, halimbawa,
at gusto mo ang iyong impormasyon sa pag-login na nanatili pa mula sa pahina sa pahina sa pahina.
>> Maaari mo lamang magsimula ng session at pagkatapos ay gamitin ang $ _SESSION upang i-save ang mga bagay tulad
pangalan ng gumagamit, o ng gumagamit Impormasyon ID, at iba pa.
At na impormasyon ay mananatili sa $ _SESSION Hanggang mawasak mo ang session
isang maliit na piraso sa susunod.
>> Sumulat dynamic na website na may PHP gumagawa ng mga ito ng maraming mas mahusay.
Maging ang iyong site tunay pabago-bago, at hindi mo
kailangang gawin ng masyadong maraming higit sa kung ano sa kabilang banda ay may lamang gawin
ginagawa ito sa HTML.
Ngunit ito ay nangangailangan ng kasanayan, isang pulutong ng mga pagsasanay.
>> Alam mo na kung paano gumagana sa C, at iba tumatalon sa PHP ay hindi masyadong madaya.
Ano marahil ng isang maliit bit mapanlinlang ay nagtatrabaho
gamit ang bagong mga ideya ng GET at POST, at marahil paghahalo ng iyong HTML at ang iyong PHP
sama-sama.
Ngunit magkaroon ng kamalayan na ang internet din ay isang malawak na imbakan ng impormasyon.
At babasahin PHP ay magagamit sa maraming lugar, ngunit marahil pinaka
canonically sa php.net.
At maaari mong mahanap doon, maraming iba't ibang mga pag-andar,
at gamitin ang mga kaso, at mga halimbawa sa halimbawa, sa mga halimbawa.
Saan kung nais mong subukan at figure kung paano gawin ang isang bagay, ay magkaaway,
ang isang tao ay malamang na gawin ito bago mo.
At maaari mong gamitin ang mga ito bilang inspirasyon upang ipatupad ang anumang
ito ay ikaw ay sinusubukan upang ipatupad masyadong.
>> Ako Doug Lloyd.
Ito ay CS50.