1 00:00:00,000 --> 00:00:03,000 [Powered by Google Translate] [PHP Web Ontwikkeling] 2 00:00:03,000 --> 00:00:05,000 [Tommy MacWilliam] 3 00:00:05,000 --> 00:00:07,000 [Hierdie is CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:11,000 >> In hierdie video, sal ons leer oor die gebruik van PHP vir die web ontwikkeling. 5 00:00:11,000 --> 00:00:14,000 PHP is 'n script taal wat gebruik kan word om te implementeer 6 00:00:14,000 --> 00:00:17,000 webtuistes op 'n webbediener. 7 00:00:17,000 --> 00:00:21,000 'N web bediener is in wese 'n masjien gewy aan die verskaffing van inhoud 8 00:00:21,000 --> 00:00:24,000 wat kan verkry word via die internet. 9 00:00:24,000 --> 00:00:30,000 Wanneer jy na 'n webblad soos Facebook.com / Musikant 10 00:00:30,000 --> 00:00:35,000 die kode in die lêer genaamd Musikant wat die lewe op 'n Facebook web bediener iewers 11 00:00:35,000 --> 00:00:38,000 sal op die bediener uitgevoer word. 12 00:00:38,000 --> 00:00:41,000 Hierdie kode sal waarskynlik 'n paar uitset genereer 13 00:00:41,000 --> 00:00:43,000 wat op sy beurt van die bediener gestuur word 14 00:00:43,000 --> 00:00:45,000 jou webblaaier. 15 00:00:45,000 --> 00:00:49,000 Ons sal gebruik word om die CS50 toestel as 'n web bediener. 16 00:00:49,000 --> 00:00:51,000 Jou masjien sal waarskynlik nie naastenby so sterk soos die masjiene 17 00:00:51,000 --> 00:00:57,000 in 'n Facebook data sentrum, maar jy sal nie 'n probleem het om dit te gebruik vir web-ontwikkeling. 18 00:00:57,000 --> 00:01:05,000 >> Wanneer ons gaan na 'n URL soos http://localhost/hello.php 19 00:01:05,000 --> 00:01:10,000 ons die instel van die toestel via 'n aansoek genoem die Apache HTTP-bediener 20 00:01:10,000 --> 00:01:19,000 om te kyk vir 'n lêer genaamd hello.php binnekant van die huis / jharvard / vhosts / localhosts / html by verstek. 21 00:01:19,000 --> 00:01:23,000 As die lêer bestaan ​​dan sal die Apache PHP tolk gebruik 22 00:01:23,000 --> 00:01:27,000 die PHP kode uit te voer in hello.php. 23 00:01:27,000 --> 00:01:31,000 As die lêer nie bestaan ​​nie Apache sal nie gevind fout gooi 24 00:01:31,000 --> 00:01:36,000 of 'n 404-fout, wat jy het waarskynlik gesien, terwyl op die Web. 25 00:01:36,000 --> 00:01:40,000 >> Kom ons neem 'n blik op hello.php. 26 00:01:40,000 --> 00:01:45,000 Ons kan sien hier dat hello.php genereer 'n sein-lyn van die produksie. 27 00:01:45,000 --> 00:01:51,000 Wanneer ons hardloop hello.php by die command line via PHP hello.php 28 00:01:51,000 --> 00:01:54,000 die uitset is gedruk aan die eindpunt. 29 00:01:54,000 --> 00:01:58,000 Nou, wanneer ons toegang tot hierdie lêer via 'n URL in die web browser 30 00:01:58,000 --> 00:02:01,000 sy produksie sal gestuur word na die web browser, 31 00:02:01,000 --> 00:02:09,000 so op pad na die URL, http://localhost/hello.php, 32 00:02:09,000 --> 00:02:12,000 ons kan die produksie te sien in ons web browser. 33 00:02:12,000 --> 00:02:17,000 >> Kom ons probeer om die toevoeging van 'n ander printf ons Hello World program. 34 00:02:17,000 --> 00:02:23,000 Goed, laat ons kop terug na die webblaaier en sien wat ons het. 35 00:02:23,000 --> 00:02:25,000 Interessant. 36 00:02:25,000 --> 00:02:28,000 Eerder as om die druk van 'n ander lyn op sy eie lyn, as jy sou gesien het 37 00:02:28,000 --> 00:02:32,000 in die einde, dit lyk soos dit het smushed op dieselfde lyn 38 00:02:32,000 --> 00:02:36,000 as die ander printf, nie so miskien die nuwe reëls in PHP werk nie. 39 00:02:36,000 --> 00:02:38,000 Nie heeltemal nie. 40 00:02:38,000 --> 00:02:41,000 Onthou dat HTML is tipies gebruik word om webblaaie te skep 41 00:02:41,000 --> 00:02:44,000 wat vertoon kan word deur die web blaaiers. 42 00:02:44,000 --> 00:02:49,000 Nie net is die string Hello from PHP nie geldig HTML, 43 00:02:49,000 --> 00:02:53,000 maar onthou dat ons nie die \ n karakter in HTML kan gebruik 44 00:02:53,000 --> 00:02:55,000 'n lyn breek te skep. 45 00:02:55,000 --> 00:03:01,000 In plaas van net 'n uitvoer string laat se uitset geldige HTML. 46 00:03:01,000 --> 00:03:04,000 Deur die gebruik van paragraaf tags elkeen van ons printf oproepe 47 00:03:04,000 --> 00:03:07,000 sal op sy eie lyn vertoon word, 48 00:03:07,000 --> 00:03:11,000 So nou wanneer ons gaan na die adres wat verwys na valid.php 49 00:03:11,000 --> 00:03:17,000 http://localhost/valid.php 50 00:03:17,000 --> 00:03:19,000 sien ons die produksie wat ons soek. 51 00:03:19,000 --> 00:03:22,000 >> Nou, as ons kyk na die bron van die bladsy 52 00:03:22,000 --> 00:03:25,000 Ons kan sien dat ons nou op soek na geldige HTML, 53 00:03:25,000 --> 00:03:28,000 wat ons geskep uit PHP. 54 00:03:28,000 --> 00:03:31,000 Om al ons HTML binne printf oproepe 55 00:03:31,000 --> 00:03:34,000 is natuurlik gaan regtig irriterende te kry. 56 00:03:34,000 --> 00:03:38,000 Gelukkig kan ons maklik HTML en PHP meng 57 00:03:38,000 --> 00:03:41,000 in dieselfde. PHP lêer. 58 00:03:41,000 --> 00:03:47,000 Onthou, almal van ons PHP-kode moet binne 00:03:49,000 en?>. 60 00:03:49,000 --> 00:03:52,000 Enigiets wat nie binne hierdie skeikarakters ingeslote 61 00:03:52,000 --> 00:03:55,000 sal net gestuur word as uitset aan die leser 62 00:03:55,000 --> 00:03:57,000 eerder as om uitgevoer. 63 00:03:57,000 --> 00:04:01,000 Dit beteken dat ons iets kan doen. 64 00:04:01,000 --> 00:04:05,000 Ons kan eenvoudig HTML skryf binnekant van ons. PHP lêer 65 00:04:05,000 --> 00:04:11,000 en dan voeg PHP-blokke waar ons wil graag 'n paar PHP-kode wat uitgevoer moet word. 66 00:04:11,000 --> 00:04:15,000 Hier definieer ons 'n paar veranderlikes aan die bokant van die lêer, 67 00:04:15,000 --> 00:04:19,000 en later het ons druk hulle uit die binnekant van ons HTML. 68 00:04:19,000 --> 00:04:27,000 Nou as ons na hierdie URL, http://localhost/mixed.php 69 00:04:27,000 --> 00:04:33,000 ons kan ons geëvalueer PHP sien binnekant van ons HTML. 70 00:04:33,000 --> 00:04:36,000 >> Nou kom ons neem 'n blik op hoe ons data kan slaag 71 00:04:36,000 --> 00:04:39,000 onder ons verskeie PHP bladsye. 72 00:04:39,000 --> 00:04:51,000 Eerder as om te sê 73 00:04:51,000 --> 00:04:58,000 ons kan net sê 00:05:01,000 en?>. 75 00:05:01,000 --> 00:05:03,000 Kom ons neem nou 'n blik op hoe ons data kan slaag 76 00:05:03,000 --> 00:05:06,000 onder ons verskeie PHP bladsye. 77 00:05:06,000 --> 00:05:11,000 Een manier waarop ons dit kan doen is om inligting te enkodeer in die URL van 'n bladsy. 78 00:05:11,000 --> 00:05:14,000 Wanneer op die Web, kan jy opgemerk het dat sekere URL 79 00:05:14,000 --> 00:05:20,000 bevat 'n? gevolg deur 'n string wat amper sand en gelyke tekens. 80 00:05:20,000 --> 00:05:23,000 Hierdie deel van die URL staan ​​bekend as die navraag string, 81 00:05:23,000 --> 00:05:29,000 en dit laat jou toe om effektief argumente jou PHP script slaag. 82 00:05:29,000 --> 00:05:34,000 Die navraag string bestaan ​​van die belangrikste waarde pare, net soos 'n hash tafel. 83 00:05:34,000 --> 00:05:38,000 'N gelyke teken skei 'n sleutel en die ooreenstemmende waarde 84 00:05:38,000 --> 00:05:41,000 terwyl amper sand skei pare. 85 00:05:41,000 --> 00:06:05,000 'N URL wat lyk soos http://localhost/get.php?foo=bar&baz=qux 86 00:06:05,000 --> 00:06:09,000 het 2 sleutel waarde pare in die soektog string. 87 00:06:09,000 --> 00:06:12,000 Die sleutel cat kaarte ter waarde bar, 88 00:06:12,000 --> 00:06:16,000 en die sleutel roof kaarte ter waarde qux. 89 00:06:16,000 --> 00:06:23,000 Ons kan maklik toegang tot hierdie sleutel waarde pare met 'n spesiale veranderlike in PHP, 90 00:06:23,000 --> 00:06:29,000 $ _GET. 91 00:06:29,000 --> 00:06:32,000 $ _GET Is 'n assosiatiewe skikking 92 00:06:32,000 --> 00:06:36,000 wat outomaties gevul is met navraag string data. 93 00:06:36,000 --> 00:06:46,000 Dit beteken dat, gegewe die URL $ _GET ["cat"] 94 00:06:46,000 --> 00:06:49,000 sal gelyk wees aan die string bar wees. 95 00:06:49,000 --> 00:06:56,000 >> Kom ons neem 'n blik op get.php $ _GET in aksie te sien. 96 00:06:56,000 --> 00:07:00,000 Hier is ons met behulp van 'n funksie genoem var_dump, 97 00:07:00,000 --> 00:07:03,000 wat toe gegee 'n skikking of ander veranderlike 98 00:07:03,000 --> 00:07:05,000 sal druk dit uit vir ons. 99 00:07:05,000 --> 00:07:12,000 Nou as ons net toegang http://localhost/get.php 100 00:07:12,000 --> 00:07:17,000 dan sal ons 'n leë skikking te sien, want ons het nie voorsien 'n navraag string. 101 00:07:17,000 --> 00:07:29,000 As ons dit doen 'n soektog string via http://localhost/get.php?foo=bar&baz=qux 102 00:07:29,000 --> 00:07:34,000 dan kan ons sien dat die $ _GET veranderlike sal bevat 103 00:07:34,000 --> 00:07:37,000 die soektog string se sleutel waarde pare. 104 00:07:37,000 --> 00:07:42,000 Maar wat as ons wil nie ons data te sit in die URL van 'n bladsy? 105 00:07:42,000 --> 00:07:46,000 Vir groot hoeveelhede data, kan dit lei tot 'n paar mooi lelike URLs 106 00:07:46,000 --> 00:07:49,000 wat gaan ons blink webwerf lyk lam te maak. 107 00:07:49,000 --> 00:07:52,000 Ons kan in die plek gestel die soektog string in die liggaam 108 00:07:52,000 --> 00:07:57,000 van die HTTP-versoek eerder as URL versoek se. 109 00:07:57,000 --> 00:08:02,000 Dan kan ons PHP se $ _POST veranderlike gebruik 110 00:08:02,000 --> 00:08:05,000 die sleutel waarde pare om toegang te verkry. 111 00:08:05,000 --> 00:08:10,000 Een manier om dit te doen, is deur middel van 'n HTML-vorm. 112 00:08:10,000 --> 00:08:13,000 Hier het ons 'n eenvoudige HTML vorm. 113 00:08:13,000 --> 00:08:17,000 Let hier dat die metode kenmerk van hierdie vorm is post. 114 00:08:17,000 --> 00:08:21,000 Dit vertel die leser die vorm se sleutel waarde pare te sit 115 00:08:21,000 --> 00:08:25,000 in die liggaam van die versoek, eerder as die URL. 116 00:08:25,000 --> 00:08:28,000 >> As ons te gebruik om die waarde vir die eienskap 117 00:08:28,000 --> 00:08:32,000 dan die vorm se sleutel waarde pare sou plaas gaan in die soektog string, 118 00:08:32,000 --> 00:08:36,000 sodat ons hulle kan toegang via weer $ _GET. 119 00:08:36,000 --> 00:08:42,000 Die aksie kenmerk van die vorm vertel die leser waar die data te stuur. 120 00:08:42,000 --> 00:08:46,000 Hier ons 2 insette elemente naam eienskappe. 121 00:08:46,000 --> 00:08:51,000 Die waarde van die naam eienskappe sal dien as sleutels in ons data, 122 00:08:51,000 --> 00:08:56,000 en die waardes van die teks insette sal word waardes van die sleutels. 123 00:08:56,000 --> 00:08:59,000 Nou kom ons neem 'n blik op post.php, 124 00:08:59,000 --> 00:09:03,000 die lêer wat hierdie vorm te stuur na. 125 00:09:03,000 --> 00:09:10,000 Net soos ons gedoen het voor, ons is net die vertoning van die inhoud van die $ _POST veranderlike. 126 00:09:10,000 --> 00:09:18,000 >> Kom ons gaan na die vorm met http://localhost/form.php. 127 00:09:18,000 --> 00:09:23,000 Nou wanneer ons dien die vorm wat ons kan sien dat die data van form.php 128 00:09:23,000 --> 00:09:30,000 oorgedra word na post.php sonder die aanbring van 'n navraag string aan die URL. 129 00:09:30,000 --> 00:09:35,000 Nou het ons gesien 2 verskillende maniere van verbygaande data tussen PHP bladsye, 130 00:09:35,000 --> 00:09:37,000 kry en post. 131 00:09:37,000 --> 00:09:41,000 In voorbeelde vir ons, ons gebruik 2 verskillende tipes HTTP versoeke. 132 00:09:41,000 --> 00:09:45,000 Soos jy kan verwag, is 'n get versoek gebruik wanneer ons bevolk 133 00:09:45,000 --> 00:09:51,000 $ _GET Van die URL, en 'n post versoek is gebruik 134 00:09:51,000 --> 00:09:55,000 wanneer ons bevolk $ _POST. 135 00:09:55,000 --> 00:09:59,000 In die ontwerp van jou web programme dit is 'n goeie reël get versoeke te gebruik 136 00:09:59,000 --> 00:10:03,000 wanneer jou inligting sal slegs data te lees en post versoeke 137 00:10:03,000 --> 00:10:05,000 wanneer jou inligting data sal skryf. 138 00:10:05,000 --> 00:10:09,000 Byvoorbeeld, sal 'n soektog data van jou artikels te lees, 139 00:10:09,000 --> 00:10:12,000 so 'n get versoek sin maak. 140 00:10:12,000 --> 00:10:17,000 Aan die ander kant, sal jou inligting data via iets soos 'n registrasie vorm skryf, 141 00:10:17,000 --> 00:10:22,000 so 'n pos versoek sou meer sin maak nie, en dit is 'n oorsig van sommige van die tegnieke 142 00:10:22,000 --> 00:10:26,000 Ons sal gebruik word in CS50 webtuistes te skep met behulp van PHP. 143 00:10:26,000 --> 00:10:30,000 >> My naam is Tommy, en dit is CS50. 144 00:10:30,000 --> 00:10:36,000 [CS50.TV]