1 00:00:00,000 --> 00:00:05,720 2 00:00:05,720 --> 00:00:07,620 >> DOUG LLOYD: Kaya sa aming video sa PHP syntax, 3 00:00:07,620 --> 00:00:10,480 usapan natin ng maraming tungkol sa kung paano PHP ay maaaring gamitin sa command line 4 00:00:10,480 --> 00:00:13,620 upang magpatakbo ng mga programa sa isang paraan na kami ay medyo pamilyar sa mula sa C. 5 00:00:13,620 --> 00:00:15,370 Ngunit tulad ng nabanggit ko rin in na video, PHP 6 00:00:15,370 --> 00:00:19,572 ay unang binuo sa ipatupad web programming, website. 7 00:00:19,572 --> 00:00:21,780 At kaya sa video na ito hindi namin pagpunta sa makipag-usap tungkol sa kung paano namin 8 00:00:21,780 --> 00:00:23,890 gamitin ang PHP sa context ng web development. 9 00:00:23,890 --> 00:00:26,360 >> Alam namin, na, mula sa aming mga video sa HTML, 10 00:00:26,360 --> 00:00:29,820 na ang mga website ay binuo sa labas ng isang hanay ng mga tag na HTML 11 00:00:29,820 --> 00:00:32,850 na semantically tukuyin ang istraktura ng isang web page. 12 00:00:32,850 --> 00:00:35,910 Ngunit website na binuo na may purong HTML 13 00:00:35,910 --> 00:00:39,510 magtiis sa isang tunay, napaka-seryoso limitasyon. 14 00:00:39,510 --> 00:00:42,690 >> At upang ilarawan ito limitasyon, Isaalang-alang natin ang mga sumusunod na ipaalam. 15 00:00:42,690 --> 00:00:45,665 Kaya ngayon Gusto kong bumuo ng isang pahina ng web na, kapag pagbisita ng gumagamit nito, 16 00:00:45,665 --> 00:00:49,760 nagbibigay ito sa akin ang mga kasalukuyang oras sa Cambridge, Mass., 17 00:00:49,760 --> 00:00:52,620 pagpapakita ng mga ito sa pinakabagong minuto. 18 00:00:52,620 --> 00:00:57,910 Kung ako ay ang paggawa ng mga ito sa ngayon, Maaaring sabihin ko ng isang bagay na katulad nito. 19 00:00:57,910 --> 00:01:01,330 Kasalukuyang oras sa Cambridge-- kaya wala ako Mga tag na HTML, ulo ng mga tag, mga tag ng pamagat, 20 00:01:01,330 --> 00:01:04,610 katawan tags-- ang kasalukuyang oras sa Cambridge ay 14:08, 21 00:01:04,610 --> 00:01:06,690 pag-print out time militar. 22 00:01:06,690 --> 00:01:11,390 >> Ano ang mangyayari kung ito ay ngayon 02:09, 14:09? 23 00:01:11,390 --> 00:01:16,470 Well sa ngayon, na may HTML, mayroon akong upang pumunta sa at baguhin ito sa 14:09. 24 00:01:16,470 --> 00:01:19,390 At pagkatapos ng isang minuto ang lumipas, Kailangan ko bang baguhin ang mga ito muli. 25 00:01:19,390 --> 00:01:22,132 At pagkatapos ng isang minuto ang lumipas, Kailangan ko bang baguhin ang mga ito muli. 26 00:01:22,132 --> 00:01:24,590 At bilang maaari mong isipin, na ang marahil ang pinakamasama trabaho kailanman. 27 00:01:24,590 --> 00:01:29,420 Ikaw ang webmaster para sa isang web page, at bawat minuto, 24 na oras sa isang araw, 28 00:01:29,420 --> 00:01:35,970 kailangan mong i-update ang kasalukuyang oras sa pamamagitan ng mano-mano ang pagbubukas time.html at pagbabago 29 00:01:35,970 --> 00:01:41,750 lamang na snippet ng code upang sabihin ang kasalukuyang oras sa oras at minuto. 30 00:01:41,750 --> 00:01:45,850 Iyon ay marahil hindi isang tunay mabuting paggamit ng aming mga mapagkukunan, 31 00:01:45,850 --> 00:01:48,880 parehong mga tao at computational. 32 00:01:48,880 --> 00:01:51,297 >> Mga website na ang lahat ng HTML ay ganap na static. 33 00:01:51,297 --> 00:01:53,630 Ang tanging paraan na maaari mong i-update nilalaman, katulad lang namin na iyong nakita, 34 00:01:53,630 --> 00:01:56,339 ay sa manwal na buksan ang mga pinagmulan mga file, i-edit ang mga ito, at i-save ang mga ito. 35 00:01:56,339 --> 00:01:58,088 At pagkatapos ay kapag ang user nagre-refresh ang pahina, 36 00:01:58,088 --> 00:02:01,080 o bumisita sa pahina ng para sa unang panahon, ang mga ito ay makuha ang pinakabagong nilalaman. 37 00:02:01,080 --> 00:02:03,970 Ngunit dahil lamang hindi namin manu-mano-edit ito. 38 00:02:03,970 --> 00:02:07,980 >> 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. 39 00:02:07,980 --> 00:02:11,940 At maaari kaming magkaroon ng isang paraan para sa aming mga pahina upang maging dynamic, o i-update ang kanilang mga sarili, 40 00:02:11,940 --> 00:02:15,360 nang hindi kinakailangan sa aming mga mahihirap webmaster sa nakaraang halimbawa 41 00:02:15,360 --> 00:02:16,662 upang maging mano-mano ang pag-update ng mga bagay. 42 00:02:16,662 --> 00:02:17,870 Maaari silang gawin ito nang awtomatiko. 43 00:02:17,870 --> 00:02:19,130 Wala kaming upang mamagitan. 44 00:02:19,130 --> 00:02:20,410 Maaari naming makakuha ng ilang pagtulog. 45 00:02:20,410 --> 00:02:24,850 Aling ay marahil isang magandang bagay kung ikaw ay gumagawa ng isang pulutong ng mga web programming. 46 00:02:24,850 --> 00:02:28,360 >> Kaya sa CS50 IDE, nagsasagawa kami ng isang web server na tinatawag na Apache. 47 00:02:28,360 --> 00:02:35,250 Ito ay isang napaka-karaniwang ginagamit, open source system web server. 48 00:02:35,250 --> 00:02:37,320 Ang system na ito ay may mga kapasidad na bigyan ng kahulugan 49 00:02:37,320 --> 00:02:41,260 PHP, na kung saan ay magiging kapaki-pakinabang kung na nais mong gawin sa anumang programming PHP. 50 00:02:41,260 --> 00:02:45,230 >> At sa CS50 IDE, kami ay may isang utos upang gumawa ng mga ito tunay na madaling gawin, 51 00:02:45,230 --> 00:02:47,280 apache50 magsimula. 52 00:02:47,280 --> 00:02:49,445 At pagkatapos na slash landas, slash na, slash 53 00:02:49,445 --> 00:02:53,350 dir, ito lamang ay isang tunay na karaniwang paraan ng na nagpapahiwatig kung ano ang iyong tinukoy dito 54 00:02:53,350 --> 00:02:56,510 ay isang landas sa isang partikular na direktoryo na kayo 55 00:02:56,510 --> 00:03:00,800 gusto na ang mga ugat site, o ang root page, 56 00:03:00,800 --> 00:03:05,430 o ang folder kung saan ang iyong mga web server ay magsisimula upang suriin ang mga file at maglingkod 57 00:03:05,430 --> 00:03:07,850 ang mga ito hanggang sa mga kliyente na humiling ng mga ito. 58 00:03:07,850 --> 00:03:12,110 Kaya sabihin pop higit sa CS50 IDE, para lamang ipakita sa iyo, talagang mabilis, kung paano ito gumagana. 59 00:03:12,110 --> 00:03:30,930 60 00:03:30,930 --> 00:03:36,240 >> Kaya dito sa CS50 IDE, ako sa isang direktoryo na tinatawag Week Zero Siyam. 61 00:03:36,240 --> 00:03:38,890 At ako ay may two-- mayroon akong sa pagsubaybay ng isang LS utos lamang 62 00:03:38,890 --> 00:03:41,910 sa itaas upang ipakita sa iyo na mayroon akong dalawang direktoryo in dito, PHP, 63 00:03:41,910 --> 00:03:46,410 kung saan ay ang hanay ng mga file na ginamit ko sa ang PHP syntax video, at pagkatapos ay PHP-web, 64 00:03:46,410 --> 00:03:49,380 kung saan ay ang hanay ng mga file na ako ay nais na gamitin sa video na ito. 65 00:03:49,380 --> 00:03:53,480 >> At Gusto kong magsimula isang halimbawa web server 66 00:03:53,480 --> 00:03:59,089 sa mga nilalaman ng PHP-web folder bilang ang file na ito ay nagsilbi up. 67 00:03:59,089 --> 00:04:00,130 Kaya kung ano ako pagpunta sa gawin? 68 00:04:00,130 --> 00:04:05,710 Ako pagpunta sa uri apache50 space simulan, space PHP, dash web. 69 00:04:05,710 --> 00:04:08,100 Iyan ay ang landas sa direktoryo mula kung saan ako kasalukuyang am. 70 00:04:08,100 --> 00:04:09,127 Pagkatapos ako pindutin ang Enter. 71 00:04:09,127 --> 00:04:10,960 Ito ay pagpunta sa gawin ang isang maliit na piraso ng mga bagay-bagay dito. 72 00:04:10,960 --> 00:04:14,030 At pagkatapos ito ay pagpunta sa sabihin, Matagumpay na nagsimula Apache. 73 00:04:14,030 --> 00:04:20,689 Ang iyong site ay magagamit na ngayon at-- at pagkatapos ay mayroong mga URL para sa site. 74 00:04:20,689 --> 00:04:21,730 Kaya kung ano ako pagpunta sa gawin? 75 00:04:21,730 --> 00:04:26,234 Pupunta ako sa mabilis na kopya na ito. 76 00:04:26,234 --> 00:04:28,900 At ako pagpunta upang buksan up-- at Kukunin ko mag-zoom out nang kaunti here-- 77 00:04:28,900 --> 00:04:31,570 Pupunta ako upang buksan up isang bagong tab sa Chrome. 78 00:04:31,570 --> 00:04:34,320 At ako pagpunta upang bisitahin ang URL na iyon. 79 00:04:34,320 --> 00:04:35,299 >> Pupunta ako sa pindutin ang Enter. 80 00:04:35,299 --> 00:04:36,090 Ito ay pagpunta upang i-load. 81 00:04:36,090 --> 00:04:37,510 At kukunin ko na mag-zoom out muli. 82 00:04:37,510 --> 00:04:41,350 At makikita natin dito ay ang mga nilalaman ng aking PHP web directory. 83 00:04:41,350 --> 00:04:45,290 >> Kaya ngayon kung ano talaga nangyayari dito ay, ang aking mga halimbawa ng CS50 IDE 84 00:04:45,290 --> 00:04:49,620 ay serving up ang mga file sa kahit sino na ang kahilingan nila. 85 00:04:49,620 --> 00:04:51,620 At sa mga kurso ng ang video na ito, makikita namin uri-uriin ng 86 00:04:51,620 --> 00:04:55,400 tingnan ang isang kumpol ng mga iba't-ibang mga file sa konteksto. 87 00:04:55,400 --> 00:04:57,614 >> Upang subukan na ang iyong Apache server ay gumagana, 88 00:04:57,614 --> 00:04:59,780 na kung saan ay karaniwang pagpunta na ang kaso sa CS50 IDE, 89 00:04:59,780 --> 00:05:02,696 ngunit kung gagawin mo ito mas pangkalahatang paraan, at simulan mo ang pagbuo ng iyong sariling mga web 90 00:05:02,696 --> 00:05:04,990 server, may isang talagang karaniwang uri ng analog na, 91 00:05:04,990 --> 00:05:08,500 "hello mundo," na kadalasan ay ginagamit para sa pag-unlad na PHP web. 92 00:05:08,500 --> 00:05:12,855 Aling ay ang magkaroon ng isang file na binubuo ng lamang code-- ito 93 00:05:12,855 --> 00:05:18,247 isang delimiter PHP set sa info PHP, panaklong, semicolon sa pagitan. 94 00:05:18,247 --> 00:05:20,580 Aling ay isa lamang ng isang espesyal na PHP function na nagsasabi sa iyo 95 00:05:20,580 --> 00:05:23,970 ano ang bersyon ng PHP mo ay tumatakbo. 96 00:05:23,970 --> 00:05:26,850 >> Kaya sa CS50 IDE, mayroon akong file na makukuha lamang 97 00:05:26,850 --> 00:05:28,680 upang ipakita sa iyo kung ano ang magiging hitsura. 98 00:05:28,680 --> 00:05:32,860 Kaya Naghahanap ako sa aking index mula sa aking mga halimbawa PHP. 99 00:05:32,860 --> 00:05:35,870 Aking Apache halimbawa ay tumatakbo ang mga nilalaman ng PHP-Web. 100 00:05:35,870 --> 00:05:39,290 At mayroon akong isang file dito na tinatawag info.php. 101 00:05:39,290 --> 00:05:41,164 >> Pupunta ako sa i-click ito, mag-zoom out. 102 00:05:41,164 --> 00:05:43,080 Ito ay kung ano ang iyong pagpunta upang makita, medyo marami. 103 00:05:43,080 --> 00:05:45,729 Ito ay lamang na nagsasabi sa akin na aking Apache server. 104 00:05:45,729 --> 00:05:48,270 At ito ay, tila, ang bersyon ng PHP na ako sa pagtakbo. 105 00:05:48,270 --> 00:05:51,590 Ito ang aking analog na "hello mundo." 106 00:05:51,590 --> 00:05:53,070 >> Kaya alam ko ang mga bagay ay pagpapatakbo. 107 00:05:53,070 --> 00:05:54,150 Kaya hindi namin handa na upang patakbuhin. 108 00:05:54,150 --> 00:05:55,730 Maaari naming magpatuloy mula dito. 109 00:05:55,730 --> 00:05:57,790 >> Kaya sabihin bisitahin muli na time halimbawa namin ay 110 00:05:57,790 --> 00:06:01,950 pakikipag-usap tungkol sa aming mga mahihirap webmaster na nag-i-update ang mga pahina ang patuloy. 111 00:06:01,950 --> 00:06:05,020 Ito ay maaaring maging isang remedyo para sa kung paano Gusto ko ipatupad bagay 112 00:06:05,020 --> 00:06:08,080 sa gayon ay hindi ang mga webmaster kailangang panatilihin ang pag-update ng oras. 113 00:06:08,080 --> 00:06:10,270 Gagawin ito lamang ang uri ng awtomatikong mangyari. 114 00:06:10,270 --> 00:06:13,710 >> Ang down sa ibaba, ang HTML, ito ay medyo katulad na, na may isang pagbubukod. 115 00:06:13,710 --> 00:06:16,720 Ngunit dito Mayroon akong ilang PHP sa itaas. 116 00:06:16,720 --> 00:06:19,940 Ako ay, tila, na tinatawag na ito function na date_default_timezone_set. 117 00:06:19,940 --> 00:06:22,106 >> At hindi namin makipag-usap tungkol sa lahat ng mga function sa CS50, 118 00:06:22,106 --> 00:06:24,670 dahil PHP ay marahil sampu-sampung libo. 119 00:06:24,670 --> 00:06:27,540 Iyon ay maaaring maging isang piraso ng isang pagmamalabis, ngunit hindi ito maaaring maging. 120 00:06:27,540 --> 00:06:29,490 Isang pulutong ng mga pag-andar na binuo sa Ito ay nakuha. 121 00:06:29,490 --> 00:06:33,290 At kaya ito ay isang function na tila Nagtatakda ang aking time zone bilang US / Eastern, 122 00:06:33,290 --> 00:06:36,320 kung saan ay ang time zone na ako kasalukuyang nasa paggawa ng video na ito. 123 00:06:36,320 --> 00:06:38,430 >> Pagkatapos ay gumawa ako ng isang tawag na function na tinatawag na, date. 124 00:06:38,430 --> 00:06:43,850 At, tila, ako sa pagtatabi ng mga ANG KANYANG ng isang bagay na tinatawag, oras. 125 00:06:43,850 --> 00:06:45,320 Kaya kung ano ang nangyayari sa dito? 126 00:06:45,320 --> 00:06:48,040 >> Well, talaga kung ano ang nangyayari ay, ako ng paggawa ng isang tawag 127 00:06:48,040 --> 00:06:51,650 sa ilang mga server na ay pagpunta sa sabihin sa akin kung ano ang oras sa kasalukuyan ay. 128 00:06:51,650 --> 00:06:56,150 At ako sa pag-convert ito sa isang format ng mga oras, minuto, segundo. 129 00:06:56,150 --> 00:07:00,540 At ang mga dahilan na ito ay capital H ay ito ay pagpunta sa bigyan ako ng 24 na oras na panahon, hindi 12 130 00:07:00,540 --> 00:07:02,362 oras oras, na kung saan ay magiging lowercase h. 131 00:07:02,362 --> 00:07:04,570 At ako lamang sa pag-iimbak na sa isang variable na tinatawag na, oras. 132 00:07:04,570 --> 00:07:07,028 Kaya na pangalawang linya ng PHP doon, ang tawag sa mga function, 133 00:07:07,028 --> 00:07:09,037 petsa, ay lamang sa pagkuha ang ilang mga string, na kung saan ay 134 00:07:09,037 --> 00:07:12,120 pagpunta sa bigyan ako ang petsa, at ang mga panahon, at isang bungkos ng iba pang impormasyon. 135 00:07:12,120 --> 00:07:16,480 At ang unang argumento doon, na NIYA, ay extract lamang ang mahalagang bahagi 136 00:07:16,480 --> 00:07:20,614 pinapahalagahan ko tungkol sa halimbawa na ito, kung saan ay ang oras, minuto, at segundo. 137 00:07:20,614 --> 00:07:22,030 Kaya na ang lahat na nangyayari. 138 00:07:22,030 --> 00:07:23,562 Kaya mag-imbak ko na sa isang variable $ oras. 139 00:07:23,562 --> 00:07:25,270 At pagkatapos ay down sa pinakailalim doon, ako 140 00:07:25,270 --> 00:07:28,980 Mayroon na shorthand para sa pag-print out sa kasalukuyang oras. 141 00:07:28,980 --> 00:07:32,050 Kaya lang ako pagpunta sa i-print kung ano ang kasalukuyang panahon. 142 00:07:32,050 --> 00:07:37,220 >> Kaya sabihin kumuha ng isang pagtingin sa ito sa CS50 IDE at makita kung paano kami ngayon 143 00:07:37,220 --> 00:07:40,002 pag-save ng webmaster na ang isang pulutong ng mga problema. 144 00:07:40,002 --> 00:07:42,570 Lahat ng karapatan, kaya dito ako muli bumalik sa root directory 145 00:07:42,570 --> 00:07:45,040 ng aking Apache halimbawa. 146 00:07:45,040 --> 00:07:51,585 At mayroon akong isang file dito na tinatawag time.php. 147 00:07:51,585 --> 00:07:53,559 Lamang ako ng pagpunta sa mag-click sa na. 148 00:07:53,559 --> 00:07:55,850 At kukunin ko na mag-scroll pataas, dahil kami ay naka-zoom in medyo malayo. 149 00:07:55,850 --> 00:07:57,257 Ang kasalukuyang oras ay 14:20:34. 150 00:07:57,257 --> 00:07:59,090 Kaya ako ginagawa ito sa oras, minuto, at segundo. 151 00:07:59,090 --> 00:08:01,910 At maaari ko bang i-refresh ang pahina at makakuha ng mga bagong pagkakataon. 152 00:08:01,910 --> 00:08:02,420 --41. 153 00:08:02,420 --> 00:08:07,240 Pupunta ako upang i-refresh ang pahina at makakuha ng mga bagong pagkakataon, 44, 46, 47. 154 00:08:07,240 --> 00:08:10,490 >> Kaya, ako ay malinaw na hindi pagbabago ng anumang bagay sa aking sarili. 155 00:08:10,490 --> 00:08:11,720 Dito ako refresh ang pahina. 156 00:08:11,720 --> 00:08:13,711 Kaya hindi ko na bumalik doon pag-edit ito. 157 00:08:13,711 --> 00:08:15,710 At pangako ko sa inyo, hindi ako ay may anumang mga kakampi 158 00:08:15,710 --> 00:08:18,230 na pag-edit ng file sa ngalan ng aking sa gilid. 159 00:08:18,230 --> 00:08:21,260 >> Lamang ako gamit ang function na PHP, panahon, upang makabuo ng mga oras para sa akin 160 00:08:21,260 --> 00:08:22,340 awtomatikong. 161 00:08:22,340 --> 00:08:24,800 Kaya na kahit na hindi ako tulog, at ang aking mga web server ay tumatakbo, 162 00:08:24,800 --> 00:08:28,884 ang gumagamit na pagbisita na pahina ay pa rin pagpunta upang makakuha ng eksakto sa kasalukuyang oras. 163 00:08:28,884 --> 00:08:29,800 Kaya na medyo magandang. 164 00:08:29,800 --> 00:08:33,609 Iyong ginawa mas dynamic ang aking site ko may hindi masyadong maraming code na PHP. 165 00:08:33,609 --> 00:08:36,650 Ito ay isa lamang ng dalawang linya ng code at pagkatapos ay isang maliit na piraso ng isang pahayag print. 166 00:08:36,650 --> 00:08:38,441 At mayroon akong isang mas dynamic site 167 00:08:38,441 --> 00:08:42,750 kaysa sa na unang halimbawa nakita natin sa simula ng video. 168 00:08:42,750 --> 00:08:46,660 >> Kaya, isipin ang mula sa mga video sa syntax PHP na kapag tumatakbo ang interpreter PHP 169 00:08:46,660 --> 00:08:50,000 aming programa, ipinagwawalang-bahala ng lahat ng bagay iyan ay hindi sa loob ng delimiters PHP, 170 00:08:50,000 --> 00:08:51,500 pagdura ito. 171 00:08:51,500 --> 00:08:54,410 Sa halimbawa na, kung ano ang mga bagay na ito ay pagdura ay HTML. 172 00:08:54,410 --> 00:08:58,080 At ito ay nangangahulugan ako ay maaari na ngayong makalat ang HTML at PHP magkasama. 173 00:08:58,080 --> 00:09:01,920 Dahil ang mga interpreter ay lamang huwag pansinin ang mga HTML at literal output ito. 174 00:09:01,920 --> 00:09:04,140 Aling ay mabuti, di ba? 175 00:09:04,140 --> 00:09:06,100 >> Dahil siguro, sa pagtatapos ng araw, 176 00:09:06,100 --> 00:09:08,360 Gusto ko ang aking site sa ay itinayo ng HTML. 177 00:09:08,360 --> 00:09:12,880 Kaya na maaaring bigyang-kahulugan sa anumang web browser ito, o maunawaan ang HTML sa pahina 178 00:09:12,880 --> 00:09:17,270 at i-render ito bilang isang bagay na namin talaga maintindihan bilang tao. 179 00:09:17,270 --> 00:09:19,430 At ako ay maaari lamang gamitin ang PHP para sa mga bahagi ng aking site 180 00:09:19,430 --> 00:09:23,390 ang nangangailangan ng dynamism, na nangangailangan sa akin na magkaroon ng mga bagay-bagay na-update patuloy. 181 00:09:23,390 --> 00:09:26,630 Ang mga static na impormasyon maaaring manatili sa parehong. 182 00:09:26,630 --> 00:09:27,540 >> OK, kaya na multa. 183 00:09:27,540 --> 00:09:28,540 Ngunit kung bakit ko gagawin ito? 184 00:09:28,540 --> 00:09:30,400 Bakit gusto ko bang isama ang HTML at PHP? 185 00:09:30,400 --> 00:09:33,850 Maaari ko bang i-print out lamang ang lahat ng HTML, gamit ang function print PHP. 186 00:09:33,850 --> 00:09:35,870 Bakit hindi ko ginagawa iyon? 187 00:09:35,870 --> 00:09:37,100 Isipin ito para sa isang segundo. 188 00:09:37,100 --> 00:09:41,220 >> Bakit, nang hindi ko i-print lamang out-- ko ay maaaring magkaroon ng mga linya ng PHP na lang sabihin, 189 00:09:41,220 --> 00:09:43,841 print tag na HTML, print head. 190 00:09:43,841 --> 00:09:44,840 Bakit hindi ko ginagawa iyon? 191 00:09:44,840 --> 00:09:48,230 Bakit ako paghahalo ng PHP at HTML? 192 00:09:48,230 --> 00:09:50,080 >> Well, kung sa tingin mo tungkol sa mga ito para sa isang segundo. 193 00:09:50,080 --> 00:09:52,824 PHP, ang mga interpreter ay upang bigyang-kahulugan kung ano ang nakikita ng mga ito. 194 00:09:52,824 --> 00:09:54,990 At kaya ito ay pagpunta sa may upang magpatakbo ng isang linya ng code. 195 00:09:54,990 --> 00:09:56,450 I-print ang HTML. 196 00:09:56,450 --> 00:09:57,700 I-print out open head tag. 197 00:09:57,700 --> 00:09:58,969 I-print out tag open title. 198 00:09:58,969 --> 00:10:00,760 Ito ay pagpunta sa may sa execute at bigyang-kahulugan 199 00:10:00,760 --> 00:10:02,671 na ang bawat isang hakbang ng paraan. 200 00:10:02,671 --> 00:10:04,670 Bakit hindi lamang hayaan ang interpreter pagtakpan ng higit lamang sa 201 00:10:04,670 --> 00:10:06,878 mga bagay na ito ay hindi maunawaan at awtomatiko itong gawin? 202 00:10:06,878 --> 00:10:11,365 Ito ay pagpunta sa i-save ako ng maraming oras upang makihalubilo sa aking HTML at ang aking PHP magkasama. 203 00:10:11,365 --> 00:10:16,220 >> At kaya na ang dahilan kung bakit hindi namin lamang magkaroon ng open delimiter PHP 204 00:10:16,220 --> 00:10:19,450 at pagkatapos ay i-print lamang ang buong nilalaman ng aming mga pahina bilang isang higanteng PHP 205 00:10:19,450 --> 00:10:24,330 tumawag sa function, Print, at pagkatapos ay malapit delimiter PHP at tapos na kami. 206 00:10:24,330 --> 00:10:27,620 Kaya na ang dahilan kung bakit namin paghaluin ang mga ito nang magkakasama. 207 00:10:27,620 --> 00:10:32,345 >> Sa ngayon, hindi pa namin masyadong maraming ng nakita ng isang pagkakaiba mula sa mga pangkalahatang syntax PHP. 208 00:10:32,345 --> 00:10:33,720 Naging medyo direkta. 209 00:10:33,720 --> 00:10:35,553 Nakita na natin na ang tandang pananong, pantay-pantay. 210 00:10:35,553 --> 00:10:39,012 Nakita namin ang isang pares ng mga bagong tawag function, ngunit wala talagang magarbong nangyayari. 211 00:10:39,012 --> 00:10:40,720 Ni marahil gumawa ng mga bagay-bagay Ipaalam isang maliit na interes. 212 00:10:40,720 --> 00:10:44,360 Paano kung gusto naming ipasa ang impormasyon pagitan ng iba't ibang mga file ng PHP, 213 00:10:44,360 --> 00:10:47,280 kaya na siguro ang user ay maaaring isumite ang impormasyon sa akin. 214 00:10:47,280 --> 00:10:50,230 At pagkatapos ay maaari kong gawin ang isang bagay sa mga ito sa isa pang pahina. 215 00:10:50,230 --> 00:10:52,990 >> Kaya may suporta para sa PHP bagay na tinatawag na Super Global 216 00:10:52,990 --> 00:10:55,297 Mga variable, na tunog medyo kasindak-sindak. 217 00:10:55,297 --> 00:10:57,130 Ang mga ito ay talagang lamang giant uugnay array 218 00:10:57,130 --> 00:10:59,900 na makakatulong sa ipatupad ito pag-andar ng pagpasa 219 00:10:59,900 --> 00:11:05,010 impormasyon sa pagitan ng mga file na PHP na ay umiiral na sa aming web server. 220 00:11:05,010 --> 00:11:07,760 >> Ang una sa mga super globals ay tinatawag na $ _GET. 221 00:11:07,760 --> 00:11:10,140 At ito ay marahil ang pinakasimpleng upang maunawaan. 222 00:11:10,140 --> 00:11:12,430 Ano ang mangyayari sa $ _GET? 223 00:11:12,430 --> 00:11:16,240 Well, talaga, ang gumagamit ay pagpunta sa uri ng dagdag na impormasyon 224 00:11:16,240 --> 00:11:18,390 sa dulo ng aming mga URL. 225 00:11:18,390 --> 00:11:21,460 At kahit anong type nila, sa pag-aakala ito ay na-format sa isang partikular na paraan 226 00:11:21,460 --> 00:11:25,830 tinatawag na isang query string, na kung saan ay lamang isang hanay ng mga pangunahing mga pares ng halaga na pinaghihiwalay 227 00:11:25,830 --> 00:11:27,810 sa pamamagitan ng mga ampersand. 228 00:11:27,810 --> 00:11:32,362 Ang mga pangunahing mga pares ng halaga ay nakatago sa isang $ _GET uugnay array. 229 00:11:32,362 --> 00:11:34,070 At mula sa aming mga video sa PHP syntax, alam namin 230 00:11:34,070 --> 00:11:40,080 kung paano gumagana sa nag-uugnay array na. 231 00:11:40,080 --> 00:11:44,090 Kaya dito ay isang halimbawa ng ilang PHP, kung saan siguro ako 232 00:11:44,090 --> 00:11:50,180 extract ang lahat ng mga pangunahing mga pares ng halaga na ang mga user na ibinigay sa URL. 233 00:11:50,180 --> 00:11:51,970 Kaya ko ang aking Open delimiter PHP. 234 00:11:51,970 --> 00:11:53,410 Mayroon akong isang foreach loop. 235 00:11:53,410 --> 00:11:57,410 Ako iterating sa buong Super Global Array tinatawag $ _GET. 236 00:11:57,410 --> 00:12:00,160 >> At gusto ko upang ma-refer sa pareho ng key at ang mga halaga. 237 00:12:00,160 --> 00:12:02,410 At tingin lang ako sa pag-print ng mga ito out, ang bawat isa sa malas 238 00:12:02,410 --> 00:12:03,780 kanyang sariling talata tag dito. 239 00:12:03,780 --> 00:12:07,620 Ako nagpi-print out ang ilang HTML at interpolating ang mga halaga 240 00:12:07,620 --> 00:12:12,900 ng susi at halaga sa pahayag na iyon. 241 00:12:12,900 --> 00:12:16,980 >> Kaya sabihin kumuha ng isang pagtingin sa kung paano ito ay talagang gumagana sa aming IDE. 242 00:12:16,980 --> 00:12:18,980 At marahil ito ay makakatulong ilarawan ang isang maliit na piraso 243 00:12:18,980 --> 00:12:21,880 ng kung ano GET ay aktwal na paggawa. 244 00:12:21,880 --> 00:12:23,610 Kaya ako bumalik dito sa aking web root. 245 00:12:23,610 --> 00:12:25,318 At kukunin ko na mag-zoom in sa isang ilang sandali upang ipakita sa iyo 246 00:12:25,318 --> 00:12:28,620 na mayroon akong isang file na tinatawag na, get1.php. 247 00:12:28,620 --> 00:12:31,830 >> Kaya sabihin-click sa get1.php. 248 00:12:31,830 --> 00:12:36,600 At hindi ko na nakikita ang anumang nilalaman. 249 00:12:36,600 --> 00:12:38,390 Iyan ay kakaiba, di ba? 250 00:12:38,390 --> 00:12:39,740 Well, not really talaga. 251 00:12:39,740 --> 00:12:42,030 Dahil hindi ko matustusan anumang bagay sa URL. 252 00:12:42,030 --> 00:12:46,270 Pupunta ako sa get1.php, ngunit ako ay hindi magbigay ng anumang key pares ng halaga 253 00:12:46,270 --> 00:12:47,450 bilang bahagi ng aking query string. 254 00:12:47,450 --> 00:12:50,510 Kaya sabihin magdagdag ng isang query string at makita kung ano ang maaaring gawin ang file na ito. 255 00:12:50,510 --> 00:12:53,040 >> Upang magsimula ng isang query string mo i-type lamang ng tandang pananong. 256 00:12:53,040 --> 00:13:00,820 Pagkatapos siguro Sasabihin kong name = Doug & taon = 2015. 257 00:13:00,820 --> 00:13:02,914 At pagkatapos ay ako pindutin ang Enter. 258 00:13:02,914 --> 00:13:04,080 Ngayon pansinin kung ano ang nangyayari. 259 00:13:04,080 --> 00:13:05,480 Ako pa rin sa get1.php. 260 00:13:05,480 --> 00:13:08,445 Ngunit ngayon na ibinibigay ko key na mga pares ng halaga, at ako 261 00:13:08,445 --> 00:13:14,940 pag-print out ang mga ito sa kanilang sariling paragraph-- name, Doug-- taon, 2015. 262 00:13:14,940 --> 00:13:17,970 Iyon ang eksaktong code namin lamang Nakita sa slide ng ilang sandali ang nakalipas. 263 00:13:17,970 --> 00:13:22,290 >> At kung gusto kong marahil magdagdag ng isa pang key halaga pares, at mga class = CS50. 264 00:13:22,290 --> 00:13:25,325 265 00:13:25,325 --> 00:13:27,580 Ngayon ay mayroon akong isa pang susi halaga pares na naka-print out 266 00:13:27,580 --> 00:13:30,025 kapag muling bisitahin ko ang URL muli. 267 00:13:30,025 --> 00:13:31,900 Ngayon marahil ito ay hindi format na masyado rin. 268 00:13:31,900 --> 00:13:33,660 Kaya kailangan ko ng isa pang bersyon ng get.php. 269 00:13:33,660 --> 00:13:36,350 Ito ay get2.php. 270 00:13:36,350 --> 00:13:39,070 >> Ang pagkakaiba sa mga ito ang isa ay mayroon akong CSS file, 271 00:13:39,070 --> 00:13:41,690 at ito format ng mga bagay ng isang maliit na mas mabuti para sa akin. 272 00:13:41,690 --> 00:13:43,940 Ito ay hindi na siguro ang pinaka maganda ang CSS sa mundo. 273 00:13:43,940 --> 00:13:45,650 Ngunit ito ay isa lamang paraan ng paggawa nito. 274 00:13:45,650 --> 00:13:52,840 Kaya maaari ko pa rin makakuha ng access sa aking mga variable na gamit ang $ _GET. 275 00:13:52,840 --> 00:13:56,610 At sa kasong ito, ako lamang ang uri ng paggawa ng CSS ng kaunti pa sa pag-iisip. 276 00:13:56,610 --> 00:13:58,360 At kung pop higit nating aking IDE para sa isang segundo, 277 00:13:58,360 --> 00:14:06,870 Ipapakita ko sa iyo sa aking web PHP directory dito, get2.php. 278 00:14:06,870 --> 00:14:10,010 Susubukan naming buksan ito, ang ilang mga HTML dito. 279 00:14:10,010 --> 00:14:13,220 Malas ako sa pagli-link sa na CSS file ay pakikipag-usap tungkol sa. 280 00:14:13,220 --> 00:14:14,570 Bukas ko ng lamesa tag. 281 00:14:14,570 --> 00:14:15,970 At pagkatapos ay narito ang aking foreach loop. 282 00:14:15,970 --> 00:14:18,450 >> Dito ay na, kung ano ang aking nagpakita sa slide bago. 283 00:14:18,450 --> 00:14:21,007 Ang pagkakaiba lamang ay ko Mayroon ang key na ito at halaga CSS 284 00:14:21,007 --> 00:14:22,340 sa istilo na ako ng nag-aaplay sa mga ito. 285 00:14:22,340 --> 00:14:25,622 Ngunit iyon lamang ang lahat ng ako ng paggawa, ay hindi ako iterating kabuuan $ _GET upang makakuha ng lahat 286 00:14:25,622 --> 00:14:26,580 sa mga pangunahing mga pares ng halaga. 287 00:14:26,580 --> 00:14:28,890 >> At ako nagpi-print out ang mga ito bilang ang table. 288 00:14:28,890 --> 00:14:33,230 At, tila, ako sa pag-format ng mga susi sa isang paraan, na may 00:14:40,057 Kaya tila na nalalapat sa ilang selector klase sa aking CSS file GET.CSS. 290 00:14:40,057 --> 00:14:42,890 At, tila, ako nagpi-print out ang aking mga halaga ng isang ganap na iba't ibang paraan. 291 00:14:42,890 --> 00:14:45,530 Aling ay medyo marami ano ang nakita natin dito, kung saan 292 00:14:45,530 --> 00:14:47,710 ang aming mga halaga ay naka-print na may asul na background, 293 00:14:47,710 --> 00:14:49,969 at sa aming mga key ay naka-print may isang dilaw na background. 294 00:14:49,969 --> 00:14:52,010 Kaya na kung paano ko nakukuha mga iba't ibang estilo. 295 00:14:52,010 --> 00:14:54,054 Dahil ako gamit ang iba't ibang mga klase sa CSS. 296 00:14:54,054 --> 00:14:55,470 Ngunit iyon ay medyo marami ito para sa GET. 297 00:14:55,470 --> 00:14:58,380 Tulad ako ng extract ng impormasyon. 298 00:14:58,380 --> 00:15:01,000 At sa kasong ito, lang ako pag-print ito sa screen. 299 00:15:01,000 --> 00:15:04,310 Nakakakuha ako ng ito sa labas ng URL, at na kung ano ang ginagawa ng GET para sa amin. 300 00:15:04,310 --> 00:15:06,470 >> Nakikita mo ba ang mga posibleng problema dito kahit na? 301 00:15:06,470 --> 00:15:11,720 Bakit namin siguro Hindi nais na gamitin $ _GET? 302 00:15:11,720 --> 00:15:15,440 Paano kung, marahil, ako ay gumawa sa query na ito? 303 00:15:15,440 --> 00:15:18,000 --to get3.php, na aking hindi magkaroon sa aking IDE. 304 00:15:18,000 --> 00:15:19,640 Ito lamang ay isang hypothetical file. 305 00:15:19,640 --> 00:15:22,187 Ngunit mapansin dito na tila pagpasa aking password in. 306 00:15:22,187 --> 00:15:23,770 At siguro ang aking password ay nakakahiya. 307 00:15:23,770 --> 00:15:28,070 O baka hindi ko gusto ang mga tao na malaman kung ano ang aking password, right. 308 00:15:28,070 --> 00:15:33,140 >> Kung ako makapasa ito though-- kung gumagamit ako ang $ _GET paraan, sa kung ano ang mangyayari ay, 309 00:15:33,140 --> 00:15:34,970 na ang pagpunta sa maging sa URL. 310 00:15:34,970 --> 00:15:39,890 Kaya ang ilang mga malisyosong user maaari maaaring makita kung ano ang ginagawa ko. 311 00:15:39,890 --> 00:15:42,040 Maaaring ako ay pagpasa sa kanila sensitibong impormasyon. 312 00:15:42,040 --> 00:15:43,310 O marahil ito ay hindi kahit na ang isang malisyosong user. 313 00:15:43,310 --> 00:15:45,790 Siguro ito lamang ang iyong mga kaibigan na ay nakatayo sa iyong balikat. 314 00:15:45,790 --> 00:15:47,650 At ngayon alam nila ang password sa iyong Facebook account. 315 00:15:47,650 --> 00:15:49,483 >> At siguro gagawin nila hindi gumawa ng kahit ano sa mga ito. 316 00:15:49,483 --> 00:15:53,749 Ngunit kung ang iyong password ay isinumite sa pamamagitan ng $ _GET sa Facebook, 317 00:15:53,749 --> 00:15:55,290 ngayon ay alam nila ang iyong password Facebook. 318 00:15:55,290 --> 00:15:59,000 Dahil ito ay may karapatan sa URL kapag nagawa mo na ang pagsusumite ng impormasyon. 319 00:15:59,000 --> 00:16:01,887 >> At kaya marahil na hindi ang pinakamahusay na paraan upang pumasa sa mga sensitibong impormasyon. 320 00:16:01,887 --> 00:16:04,470 Ito ay isang mahusay na paraan upang pumasa sa impormasyon na hindi namin lalo 321 00:16:04,470 --> 00:16:05,886 pag-aalaga tungkol bilang masyadong sensitive. 322 00:16:05,886 --> 00:16:09,347 Dahil GET ay medyo mabilis, kamag-anak sa iba pang mga sobrang globals 323 00:16:09,347 --> 00:16:10,430 kami ay pagpunta sa makipag-usap tungkol sa. 324 00:16:10,430 --> 00:16:13,330 Pero siguro hindi ang pinakamahusay na tool para sa mga sensitibong impormasyon. 325 00:16:13,330 --> 00:16:15,990 >> Para sa na maaari namin nais na gumamit ng isang bagay na tinatawag na $ _POST, 326 00:16:15,990 --> 00:16:18,560 na kung saan ay isa pang Super Global Variable. 327 00:16:18,560 --> 00:16:20,750 Ito ay isa pang nag-uugnay array. 328 00:16:20,750 --> 00:16:23,240 Kaya ito ay gumagana medyo marami eksaktong katulad GET. 329 00:16:23,240 --> 00:16:26,850 Maliban, sa halip ng pag-extract impormasyon mula sa mga URL, 330 00:16:26,850 --> 00:16:29,870 ito ay isang bagay sa pamamagitan ng mga header ng HTTP. 331 00:16:29,870 --> 00:16:32,080 Kaya isipin ang mula sa aming video sa HTTP, usapan natin 332 00:16:32,080 --> 00:16:34,850 tungkol sa kung paano mga browser, mga server, at mga kliyente na makipag-usap. 333 00:16:34,850 --> 00:16:38,070 At ang impormasyon ay lumampas na sa likod at sa nakasaad sa mga header ng HTTP. 334 00:16:38,070 --> 00:16:43,330 >> Gamit $ _POST, ang impormasyon ay karaniwang ipinadala sa pamamagitan ng mga HTTP header. 335 00:16:43,330 --> 00:16:49,770 At kami ay pinaka karaniwang nakikita $ _POST in konteksto ng pagsusumite ng form na HTML. 336 00:16:49,770 --> 00:16:52,390 Maaari mo pa ring gamitin ang mga form HTML upang isumite ang mga bagay-bagay sa GET. 337 00:16:52,390 --> 00:16:56,120 Ngunit kadalasan ito ay ginagamit sa konteksto ng POST. 338 00:16:56,120 --> 00:17:00,280 >> Kaya narito ang isang halimbawa ng isang HTML form. 339 00:17:00,280 --> 00:17:06,750 Ngayon na namin makikita ang mga bago, ngunit kami ay may hindi nakita ang bahaging ito, action = "post.php". 340 00:17:06,750 --> 00:17:10,756 Kaya kapag usapan natin ang tungkol forms sa konteksto ng HTML, ako ay isang button Isumite. 341 00:17:10,756 --> 00:17:13,630 At kung ang pagpapabalik sa iyo, gusto kong i-click ang Isumite at pagkatapos ay ang pahina lamang refresh, 342 00:17:13,630 --> 00:17:14,660 ay hindi dapat gawin. 343 00:17:14,660 --> 00:17:18,250 >> Sa kasong ito, ako ng pagsusumite kahit anong type ko sa form na ito, 344 00:17:18,250 --> 00:17:20,750 sa isang PHP file na tinatawag na post.php. 345 00:17:20,750 --> 00:17:25,810 At, tila, ang paraan na ako sa paggawa na sa form na ito ay gumagamit ng mga paraan ng POST. 346 00:17:25,810 --> 00:17:29,040 Kaya ang bawat piraso ng impormasyon na nagta-type ako sa form na ito 347 00:17:29,040 --> 00:17:31,470 ay isinumite sa pamamagitan ng mga http header. 348 00:17:31,470 --> 00:17:36,440 >> Ito ay magiging accessible sa post.php, dahil iyon ang pagkilos ng aking form. 349 00:17:36,440 --> 00:17:39,811 Ito ay magiging accessible sa pamamagitan ng pagpunta sa $ _POST. 350 00:17:39,811 --> 00:17:42,310 At tila, ang mga paraan na kaya ko kumuha sa bawat indibidwal na elemento 351 00:17:42,310 --> 00:17:44,765 may na-uugnay array ay may mga katangian na ito, 352 00:17:44,765 --> 00:17:48,130 ang Pangalan na katangian ng aming input tag. 353 00:17:48,130 --> 00:17:53,540 >> Kaya tila maaari kong sabihin $ _POST square pangalanan bracket upang makakuha ng kahit anumang user ang 354 00:17:53,540 --> 00:17:55,440 nag-type sa unang field. 355 00:17:55,440 --> 00:18:01,030 At $ _POST password, ng pw sa halip, upang makakuha ng sa anumang user-type ng 356 00:18:01,030 --> 00:18:03,650 sa ikalawang field. 357 00:18:03,650 --> 00:18:06,414 >> Kaya sabihin kumuha ng isang pagtingin sa na ito sa loob sa CS50 IDE. 358 00:18:06,414 --> 00:18:08,330 Kaya dito ay namin, at idedetalye ko mag-zoom in para sa isang segundo. 359 00:18:08,330 --> 00:18:12,380 At kami ay may isang file na tinatawag post.html. 360 00:18:12,380 --> 00:18:13,690 Click ako sa post.html. 361 00:18:13,690 --> 00:18:16,300 Sa pinakatuktok dito ko isang napaka-simpleng web form. 362 00:18:16,300 --> 00:18:18,750 Ito ay anyo lang namin nakita sa slide sa isang segundo ang nakalipas. 363 00:18:18,750 --> 00:18:25,610 >> Maaari kong i-type, Doug, at maaari ko type ang aking password, na kung saan namin ang lahat ng 364 00:18:25,610 --> 00:18:27,340 malaman ay squadgoals. 365 00:18:27,340 --> 00:18:30,100 At ako ay pindutin ang Isumite. 366 00:18:30,100 --> 00:18:32,290 At tila, na isinusumite sa post.php. 367 00:18:32,290 --> 00:18:33,810 At tila ako nagpi-print na. 368 00:18:33,810 --> 00:18:36,490 Kaya ako inaalis ng lahat ang seguridad na nagbibigay sa akin POST sa pamamagitan lamang ng pag-print out 369 00:18:36,490 --> 00:18:37,720 ang username at password. 370 00:18:37,720 --> 00:18:38,960 >> Ang pangalan ng user ay Doug. 371 00:18:38,960 --> 00:18:40,810 Password ng user ay squadgoals. 372 00:18:40,810 --> 00:18:42,480 Paano nakarating ang gagawin ko ito? 373 00:18:42,480 --> 00:18:44,800 , Pop higit Well sa IDE muli para sa isang segundo. 374 00:18:44,800 --> 00:18:51,340 Ay mag-scroll namin down na kumuha ng tingnan ang post.php, na kung saan ay 375 00:18:51,340 --> 00:18:54,040 ang aksyon na ginamit ko upang isumite dito. 376 00:18:54,040 --> 00:18:55,739 Iyon ay ang pagkilos ng aking form HTML. 377 00:18:55,739 --> 00:18:56,780 At na ang lahat ako ng paggawa. 378 00:18:56,780 --> 00:19:01,370 Ang pangalan ng user ay, at ako sa pag-print out ang mga nilalaman ng $ _POST "pangalan". 379 00:19:01,370 --> 00:19:04,660 At pagkatapos ay ang password ng user ay $ _POST "password". 380 00:19:04,660 --> 00:19:08,920 Kaya ako ay ibinigay na impormasyon sa pamamagitan ng pagsusumite ng form na HTML. 381 00:19:08,920 --> 00:19:13,790 At maaari ko na ngayong i-extract ito gamit $ _POST dahil ang pamamaraan na ginamit ko upang magpadala ng 382 00:19:13,790 --> 00:19:17,470 data sa form na iyon ay ang paraan ng POST. 383 00:19:17,470 --> 00:19:20,640 >> Ngayon ito ay marahil hindi kaya great-- pupuntahan ko 384 00:19:20,640 --> 00:19:24,510 upang bumalik para sa pangalawang sa aming set here-- 385 00:19:24,510 --> 00:19:30,120 marahil ito ay hindi kaya mahusay na kung ako ay pagsusumite ng impormasyon sa POST, 386 00:19:30,120 --> 00:19:32,532 na kung saan ay tila mas ligtas. 387 00:19:32,532 --> 00:19:34,740 Ito ay marahil hindi kaya mahusay kung ako paggawa ng iyon at pagkatapos ay 388 00:19:34,740 --> 00:19:36,470 imprenta ang password ng user. 389 00:19:36,470 --> 00:19:38,540 Ito ay dapat na maging mas ligtas. 390 00:19:38,540 --> 00:19:40,870 >> OK, ngunit ito ay hindi ganap na secure. 391 00:19:40,870 --> 00:19:42,910 At kaya sa maliit na ito snippet dito gusto ko 392 00:19:42,910 --> 00:19:46,410 upang gumuhit ng iyong pansin sa ilang mga alalahanin sa seguridad ng data, ang isang bagay lamang 393 00:19:46,410 --> 00:19:51,200 mag-isip tungkol sa bilang ikaw ay nagtatrabaho o gamit ang internet. 394 00:19:51,200 --> 00:19:53,890 Ito ay lamang ng isang bagay upang isaalang-alang. 395 00:19:53,890 --> 00:19:57,980 >> Sinabi ko sa iyo na ang impormasyon ay isinumite sa pamamagitan ng HTTP header 396 00:19:57,980 --> 00:19:59,724 kapag ginamit mo ang paraan ng POST. 397 00:19:59,724 --> 00:20:01,390 Na nangangahulugan na ang mga ito ay hindi ganap na secure. 398 00:20:01,390 --> 00:20:05,610 Ang mga ito ay mas mahirap na makahanap sa gamit ang paraan na GET, kung saan 399 00:20:05,610 --> 00:20:06,882 ito ay tama lang sa URL. 400 00:20:06,882 --> 00:20:08,340 Subalit mayroong isang paraan upang mahanap ang mga ito pa rin. 401 00:20:08,340 --> 00:20:10,423 At ako lamang ang nais na ipakita sa iyo ito upang ikaw siguro 402 00:20:10,423 --> 00:20:12,940 magsimulang mag-isip tungkol sa mga ito habang ikaw ay nagtatrabaho, o gamit 403 00:20:12,940 --> 00:20:14,560 mga website at pagsusumite mga password, at marahil gamit 404 00:20:14,560 --> 00:20:16,518 ang parehong password sa isang maraming iba't ibang mga lugar. 405 00:20:16,518 --> 00:20:22,060 Malaman na ay talagang pretty pa rin madaling malaman password ng isang tao. 406 00:20:22,060 --> 00:20:25,190 >> At kaya dito, pupuntahan ko upang pumunta sa post2.html. 407 00:20:25,190 --> 00:20:28,850 At ang pagkakaiba sa post2.html at post2.php ay medyo banayad. 408 00:20:28,850 --> 00:20:31,420 Ang pagkakaiba ay lamang na hindi ko i-print out 409 00:20:31,420 --> 00:20:33,520 ang password kapag magsumite ng form. 410 00:20:33,520 --> 00:20:35,260 >> Kaya ako pagpunta sa i-type sa, Doug. 411 00:20:35,260 --> 00:20:38,365 At ako pagpunta sa uri in, squadgoals, kahit 412 00:20:38,365 --> 00:20:40,770 kahit na alam natin na ang password. 413 00:20:40,770 --> 00:20:42,540 Bago ko isusumite ang bumuo ng kahit na, pupuntahan ko 414 00:20:42,540 --> 00:20:45,864 upang buksan ang Mga Tool ng Developer, para lamang ipakita sa iyo kung ano ang nangyayari sa mangyayari dito. 415 00:20:45,864 --> 00:20:47,530 Kaya sa Chrome, tingin lang ako sa pagpunta sa hit F12. 416 00:20:47,530 --> 00:20:54,120 417 00:20:54,120 --> 00:20:57,230 At na ang pagpunta sa buksan ang aking Mga Tool ng Developer sa kanang bahagi ng kamay. 418 00:20:57,230 --> 00:20:59,480 Hindi ko pa naisumite ang form. 419 00:20:59,480 --> 00:21:02,680 Ngayon ako pagpunta sa pindutin ang Isumite sa aking form. 420 00:21:02,680 --> 00:21:05,370 At tila, ginawa ko ang isang tumawag sa, o ginawa ko ang isang kahilingan 421 00:21:05,370 --> 00:21:07,620 upang post2.php, na makatuwiran. 422 00:21:07,620 --> 00:21:10,040 Pupunta ako upang mag-click sa na. 423 00:21:10,040 --> 00:21:13,802 >> Pagkatapos ay sa paglipas dito, pupuntahan ko mag-click sa mga header. 424 00:21:13,802 --> 00:21:15,410 May isang pulutong ng mga bagay-bagay na nangyayari dito. 425 00:21:15,410 --> 00:21:21,310 Ngunit kung mag-scroll ko pababa sa pinakailalim ibaba, notice karapatan there-- aking kalendaryo 426 00:21:21,310 --> 00:21:25,180 na-block ito para sa isang second-- karapatan doon sa pinakadulo ibaba na sulok, 427 00:21:25,180 --> 00:21:27,386 name-- Doug, pw-- squadgoals. 428 00:21:27,386 --> 00:21:30,010 Kaya kahit na gumagamit ako ng POST Ang pamamaraan, na kung saan ay mas ligtas, 429 00:21:30,010 --> 00:21:33,570 magkaroon ng kamalayan na kapag ginawa mo lang kaya, ikaw ay pagpapadala pa rin ng impormasyon 430 00:21:33,570 --> 00:21:34,430 sa pamamagitan ng HTTP. 431 00:21:34,430 --> 00:21:36,770 At maaari pa rin itong maging natagpuan sa pamamagitan ng isang kaaway. 432 00:21:36,770 --> 00:21:39,270 Ito ay lamang ng isang bagay na kami ay pagpunta na kailangang humarap sa tunay. 433 00:21:39,270 --> 00:21:41,980 Siguro may ilang mga paraan upang i-encrypt ang aming mga password bago namin ipadala ang mga ito sa paglipas ng, 434 00:21:41,980 --> 00:21:44,410 na kung saan ay isang mas mahusay, na hindi ko ginagawa dito. 435 00:21:44,410 --> 00:21:47,010 >> Ngunit magkaroon ng kamalayan na ang mga POST lamang Ang pamamaraan ay may masyadong limitasyon. 436 00:21:47,010 --> 00:21:49,801 Ito ay isang pagpapabuti sa paglipas GET in mga tuntunin ng pagiging agad makikita. 437 00:21:49,801 --> 00:21:51,280 Ngunit ito ay hindi isang kumpletong pag-aayos. 438 00:21:51,280 --> 00:21:53,280 Kaya narito ang isang halimbawa ng isang mabilis na sa bahay ehersisyo 439 00:21:53,280 --> 00:21:56,350 na maaari mong gamitin upang makakuha ng ilang pagsasanay nagtatrabaho sa PHP. 440 00:21:56,350 --> 00:21:58,300 Lumikha ng ang mga sumusunod na pares ng mga pahina ng web. 441 00:21:58,300 --> 00:22:00,960 Dapat lamang unang Ang isang napaka-simple bumubuo sa isang solong na patlang at isang Isumite 442 00:22:00,960 --> 00:22:01,460 button. 443 00:22:01,460 --> 00:22:04,070 Kaya lubos na katulad sa kung ano ang aming ginawa lamang sa post.html. 444 00:22:04,070 --> 00:22:07,450 >> At pagkatapos ay ang pangalawang maghain dapat mong lumikha ng 445 00:22:07,450 --> 00:22:11,687 ay isang file, ang isang file PHP, na ay umaasang input, sa pamamagitan ng POST, 446 00:22:11,687 --> 00:22:14,770 at batay sa kung ano ang nai-type ang mga gumagamit, kung saan maaari mong ipalagay na ito ay isang integer. 447 00:22:14,770 --> 00:22:16,160 Hindi mo na kailangang gawin ang anumang error checking o mga katulad. 448 00:22:16,160 --> 00:22:18,284 Maaari mong ipalagay ang user ay type ng isang integer value, 449 00:22:18,284 --> 00:22:22,230 o isang bagay tulad ng isang kahulugan sa pamamagitan ng PHP bilang isang integer, sa form na iyon. 450 00:22:22,230 --> 00:22:24,790 Gusto mo lamang upang lumikha ng isang n sa pamamagitan n pagdami talahanayan. 451 00:22:24,790 --> 00:22:28,480 >> Kaya kung ang gumagamit ay nagsumite ng 10, gusto naming magkaroon ng isang 10 sa pamamagitan ng 10 pagdami talahanayan. 452 00:22:28,480 --> 00:22:31,832 Kung ang gumagamit ay nagsumite ng isang 12, gusto naming isang 12 sa pamamagitan ng 12 pagdami talahanayan. 453 00:22:31,832 --> 00:22:33,790 Basta kaya maaari mong makita kung ano ang kami ay nagmamaneho sa dito, 454 00:22:33,790 --> 00:22:36,040 kami ay kumuha ng isang pagtingin sa ang file na ito sa aking IDE. 455 00:22:36,040 --> 00:22:38,080 >> Kaya dito sa IDE, mayroon akong mult_form.html. 456 00:22:38,080 --> 00:22:41,370 457 00:22:41,370 --> 00:22:43,100 Kukunin ko i-click ito. 458 00:22:43,100 --> 00:22:46,020 Lahat ng gusto kong gawin ay magsumite ng isang halaga. 459 00:22:46,020 --> 00:22:47,590 I-type sa 10, pindutin ang Isumite. 460 00:22:47,590 --> 00:22:51,190 At tila, mult_table.php, na maaari naming makita sa tuktok doon sa URL, 461 00:22:51,190 --> 00:22:53,970 Lumilikha ako ng isang 10 sa pamamagitan ng 10 pagdami talahanayan. 462 00:22:53,970 --> 00:22:59,365 >> Kung nagta-type ako ng 15 at pindutin ang Isumite, ngayon ko magkaroon ng isang 15 sa pamamagitan ng 15 pagdami talahanayan. 463 00:22:59,365 --> 00:23:02,240 Ako, siyempre, hindi pagpunta upang ipakita mo ang mga nilalaman ng mult_table.php, 464 00:23:02,240 --> 00:23:04,781 dahil gusto na kunin ang saya out ng mga ito sa bahay ehersisyo. 465 00:23:04,781 --> 00:23:07,480 Ngunit ito ay isang mahusay na paraan upang makakuha ng ilang mga pagsasanay nagtatrabaho sa loops PHP 466 00:23:07,480 --> 00:23:10,889 at POST, napaka-simple, sana stress free Halimbawa, lamang 467 00:23:10,889 --> 00:23:12,180 upang gawin ang isang maliit na piraso ng pagsasanay. 468 00:23:12,180 --> 00:23:16,540 At Nakakuha ako ng isang maliit na CSS nangyayari dito upang gumawa ng aking mga indibidwal na talahanayan 469 00:23:16,540 --> 00:23:19,710 cells lamang ang uri ng pop-off ng isang kaunti at tumingin ng kaunti pa 470 00:23:19,710 --> 00:23:22,205 tulad ng isang pagdami talahanayan, bilang laban sa text lang lamang 471 00:23:22,205 --> 00:23:23,261 uri ng pag-upo doon. 472 00:23:23,261 --> 00:23:26,260 Ang huling super global namin makipag-usap tungkol sa sa video na ito ay isang bagay na tinatawag 473 00:23:26,260 --> 00:23:27,597 $ _SESSION. 474 00:23:27,597 --> 00:23:29,930 At marahil ito ay talagang ang pinakamahusay na halimbawa ng isang bagay 475 00:23:29,930 --> 00:23:31,700 Gusto naming isaalang-alang global. 476 00:23:31,700 --> 00:23:33,189 Ito ay isa pang array. 477 00:23:33,189 --> 00:23:34,480 Ito ay isa pang nag-uugnay array. 478 00:23:34,480 --> 00:23:40,580 Ngunit ito ay naa-access sa pamamagitan ng bawat PHP file na umiiral sa aming system. 479 00:23:40,580 --> 00:23:43,410 >> Wala kaming upang isumite impormasyon sa isang pahina sa isang pagkakataon 480 00:23:43,410 --> 00:23:45,400 tulad ng ginagawa namin sa GET at may POST. 481 00:23:45,400 --> 00:23:46,380 Ito ay palaging doon. 482 00:23:46,380 --> 00:23:50,040 At kaya ito ay mahalaga para sa isang pahina kung saan ikaw ay naka-log in, halimbawa, 483 00:23:50,040 --> 00:23:53,120 at gusto mo ang iyong impormasyon sa pag-login na nanatili pa mula sa pahina sa pahina sa pahina. 484 00:23:53,120 --> 00:23:58,180 >> Maaari mo lamang magsimula ng session at pagkatapos ay gamitin ang $ _SESSION upang i-save ang mga bagay tulad 485 00:23:58,180 --> 00:24:02,320 pangalan ng gumagamit, o ng gumagamit Impormasyon ID, at iba pa. 486 00:24:02,320 --> 00:24:07,600 At na impormasyon ay mananatili sa $ _SESSION Hanggang mawasak mo ang session 487 00:24:07,600 --> 00:24:09,550 isang maliit na piraso sa susunod. 488 00:24:09,550 --> 00:24:12,375 >> Sumulat dynamic na website na may PHP gumagawa ng mga ito ng maraming mas mahusay. 489 00:24:12,375 --> 00:24:14,250 Maging ang iyong site tunay pabago-bago, at hindi mo 490 00:24:14,250 --> 00:24:17,670 kailangang gawin ng masyadong maraming higit sa kung ano sa kabilang banda ay may lamang gawin 491 00:24:17,670 --> 00:24:18,920 ginagawa ito sa HTML. 492 00:24:18,920 --> 00:24:21,630 Ngunit ito ay nangangailangan ng kasanayan, isang pulutong ng mga pagsasanay. 493 00:24:21,630 --> 00:24:26,897 >> Alam mo na kung paano gumagana sa C, at iba tumatalon sa PHP ay hindi masyadong madaya. 494 00:24:26,897 --> 00:24:28,730 Ano marahil ng isang maliit bit mapanlinlang ay nagtatrabaho 495 00:24:28,730 --> 00:24:33,180 gamit ang bagong mga ideya ng GET at POST, at marahil paghahalo ng iyong HTML at ang iyong PHP 496 00:24:33,180 --> 00:24:34,220 sama-sama. 497 00:24:34,220 --> 00:24:37,570 Ngunit magkaroon ng kamalayan na ang internet din ay isang malawak na imbakan ng impormasyon. 498 00:24:37,570 --> 00:24:41,670 At babasahin PHP ay magagamit sa maraming lugar, ngunit marahil pinaka 499 00:24:41,670 --> 00:24:43,354 canonically sa php.net. 500 00:24:43,354 --> 00:24:45,520 At maaari mong mahanap doon, maraming iba't ibang mga pag-andar, 501 00:24:45,520 --> 00:24:48,330 at gamitin ang mga kaso, at mga halimbawa sa halimbawa, sa mga halimbawa. 502 00:24:48,330 --> 00:24:51,340 Saan kung nais mong subukan at figure kung paano gawin ang isang bagay, ay magkaaway, 503 00:24:51,340 --> 00:24:52,964 ang isang tao ay malamang na gawin ito bago mo. 504 00:24:52,964 --> 00:24:55,840 At maaari mong gamitin ang mga ito bilang inspirasyon upang ipatupad ang anumang 505 00:24:55,840 --> 00:24:58,230 ito ay ikaw ay sinusubukan upang ipatupad masyadong. 506 00:24:58,230 --> 00:24:59,230 >> Ako Doug Lloyd. 507 00:24:59,230 --> 00:25:01,210 Ito ay CS50. 508 00:25:01,210 --> 00:25:02,608