1 00:00:00,000 --> 00:00:03,000 [Powered by Google Translate] [PHP Web Development] 2 00:00:03,000 --> 00:00:05,000 [Tommy MacWilliam] 3 00:00:05,000 --> 00:00:07,000 [Ĉi tiu estas CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:11,000 >> En ĉi tiu video, ni lernos pri la uzo de PHP por reta programado. 5 00:00:11,000 --> 00:00:14,000 PHP estas skripta lingvo kiu povas kutimi realigi 6 00:00:14,000 --> 00:00:17,000 retejoj sur servilo. 7 00:00:17,000 --> 00:00:21,000 A ttt-servilo estas esence maŝino dediĉita al havigi enhavo 8 00:00:21,000 --> 00:00:24,000 kiun povas aliri per la interreto. 9 00:00:24,000 --> 00:00:30,000 Kiam vi navigas al retpaĝo kiel Facebook.com / home.php 10 00:00:30,000 --> 00:00:35,000 La kodo en la dosiero nomata home.php kiuj vivas sur Facebook retservilo ie 11 00:00:35,000 --> 00:00:38,000 estos ekzekutita sur tiu servilo. 12 00:00:38,000 --> 00:00:41,000 Tiu kodo probable generi iujn eligo 13 00:00:41,000 --> 00:00:43,000 kiu siavice estu senditaj de la servilo 14 00:00:43,000 --> 00:00:45,000 al via TTT-legilo. 15 00:00:45,000 --> 00:00:49,000 Ni uzos la CS50 aparaton kiel TTT-servilo. 16 00:00:49,000 --> 00:00:51,000 Via maŝino eble ne estos preskaŭ tiel potenca kiel la maŝinoj 17 00:00:51,000 --> 00:00:57,000 en Facebook datumoj centro, sed vi ne havos problemon uzante ĝin por reta programado. 18 00:00:57,000 --> 00:01:05,000 >> Kiam ni navigas al URL kiel http://localhost/hello.php 19 00:01:05,000 --> 00:01:10,000 ni agordi la aparaton per apliko nomis la Apache HTTP servilo 20 00:01:10,000 --> 00:01:19,000 serĉi dosiero nomata hello.php internon de hejmo / jharvard / vhosts / localhosts / html defaŭlte. 21 00:01:19,000 --> 00:01:23,000 Se tiu dosiero ekzistas tiam Apache uzos la PHP-interpretilo 22 00:01:23,000 --> 00:01:27,000 ekzekuti la PHP-kodon en hello.php. 23 00:01:27,000 --> 00:01:31,000 Se tiu dosiero ne ekzistas do Apache ĵetos oni ne trovis eraro 24 00:01:31,000 --> 00:01:36,000 aŭ 404 eraroj, kiujn vi jam probable vidita dum foliumas la retejon. 25 00:01:36,000 --> 00:01:40,000 >> Ni rigardu hello.php. 26 00:01:40,000 --> 00:01:45,000 Ni povas vidi ĉi tie ke hello.php generas signalon linio de eligo. 27 00:01:45,000 --> 00:01:51,000 Kiam ni kuris hello.php ĉe la komandlinio tra php hello.php 28 00:01:51,000 --> 00:01:54,000 ke eligo estis presita la terminalo. 29 00:01:54,000 --> 00:01:58,000 Nun, kiam ni aliri ĉi dosieron per URL en la foliumilo 30 00:01:58,000 --> 00:02:01,000 lia eliro estos sendita al la TTT-legilo, 31 00:02:01,000 --> 00:02:09,000 tiel direktante al la URL, http://localhost/hello.php, 32 00:02:09,000 --> 00:02:12,000 Ni povas vidi la eligon en nia TTT-legilo. 33 00:02:12,000 --> 00:02:17,000 >> Ni provu aldoni alian printf al nia saluton mondo programo. 34 00:02:17,000 --> 00:02:23,000 Konsentite, ni estrus reen al la retumilo kaj rigardu, kion ni havas. 35 00:02:23,000 --> 00:02:25,000 Interesa. 36 00:02:25,000 --> 00:02:28,000 Anstataŭ presado alian linion sur ĝia propra linio, kiel vi estus vidinta 37 00:02:28,000 --> 00:02:32,000 en la fina stacio, ĝi aspektas kiel alvenis smushed sur la sama linio 38 00:02:32,000 --> 00:02:36,000 kiel la aliaj printf, do eble novaj linioj ne funkcios en PHP. 39 00:02:36,000 --> 00:02:38,000 Ne tute. 40 00:02:38,000 --> 00:02:41,000 Memoru ke HTML estas tipe uzataj por krei retpaĝojn 41 00:02:41,000 --> 00:02:44,000 kiu povas esti montrata per retumiloj. 42 00:02:44,000 --> 00:02:49,000 Ne nur estas la kordo saluton el php Ne valida HTML, 43 00:02:49,000 --> 00:02:53,000 sed memoras ke ni ne povas uzi la \ n karaktero en HTML 44 00:02:53,000 --> 00:02:55,000 krei linerompo. 45 00:02:55,000 --> 00:03:01,000 Anstataŭ simple outputting ĉenon Ni eligo valida HTML. 46 00:03:01,000 --> 00:03:04,000 Per uzo paragrafo etikedoj ĉiu el niaj printf alvokoj 47 00:03:04,000 --> 00:03:07,000 estos montrata sur ĝia propra linio, 48 00:03:07,000 --> 00:03:11,000 tial nun, kiam ni vizitas la URL indikus valid.php 49 00:03:11,000 --> 00:03:17,000 http://localhost/valid.php 50 00:03:17,000 --> 00:03:19,000 ni vidas la eligo ke ni serĉas. 51 00:03:19,000 --> 00:03:22,000 >> Nun, se ni konsideru la vikitekston de tiu ĉi paĝo 52 00:03:22,000 --> 00:03:25,000 ni povas vidi, ke ni nun rigardas valida HTML, 53 00:03:25,000 --> 00:03:28,000 kiun ni kreis, de PHP. 54 00:03:28,000 --> 00:03:31,000 Metante ĉiujn niajn HTML ene printf alvokoj 55 00:03:31,000 --> 00:03:34,000 Estas kompreneble tuj akiri vere ĝena. 56 00:03:34,000 --> 00:03:38,000 Bonŝance ni povas facile miksi HTML-on kaj PHP- 57 00:03:38,000 --> 00:03:41,000 en la sama. php dosiero. 58 00:03:41,000 --> 00:03:47,000 Memoru, ke ĉiuj niaj PHP-kodo devas esti fermita ene 00:03:49,000 kaj?>. 60 00:03:49,000 --> 00:03:52,000 Io ajn, kiu ne estas fermita ene de tiuj limoj 61 00:03:52,000 --> 00:03:55,000 Mi simple esti sendita kiel eliro al la retumilo 62 00:03:55,000 --> 00:03:57,000 prefere ol esti ekzekutita. 63 00:03:57,000 --> 00:04:01,000 Tio signifas ke ni povas fari ion kiel ĉi tio. 64 00:04:01,000 --> 00:04:05,000 Ni simple povas skribi HTML ene de nia. Php dosiero 65 00:04:05,000 --> 00:04:11,000 kaj tiam enmeti PHP blokoj kien ni ŝatus iom php kodo estos ekzekutita. 66 00:04:11,000 --> 00:04:15,000 Ĉi tie ni difini kelkaj variabloj ĉe la supro de la dosiero, 67 00:04:15,000 --> 00:04:19,000 kaj poste ni presi ilin ene de niaj HTML. 68 00:04:19,000 --> 00:04:27,000 Nun se ni vizitas ĉi URL http://localhost/mixed.php 69 00:04:27,000 --> 00:04:33,000 ni povas vidi niajn taksita PHP ene de nia HTML. 70 00:04:33,000 --> 00:04:36,000 >> Nun ni rigardu kiom ni povas pasi datumoj 71 00:04:36,000 --> 00:04:39,000 inter niaj diversaj PHP paĝoj. 72 00:04:39,000 --> 00:04:51,000 Anstataŭ diri 73 00:04:51,000 --> 00:04:58,000 ni povas diri simple 00:05:01,000 kaj?>. 75 00:05:01,000 --> 00:05:03,000 Ni nun rigardu kiom ni povas pasi datumoj 76 00:05:03,000 --> 00:05:06,000 inter niaj diversaj PHP paĝoj. 77 00:05:06,000 --> 00:05:11,000 Unu vojo ni povas fari tion estas kodi informo en la URL de tiu paĝo. 78 00:05:11,000 --> 00:05:14,000 Kiam foliumas la retejon, vi eble rimarkis ke iuj URLoj 79 00:05:14,000 --> 00:05:20,000 enhavi? sekvis per ĉeno enhavante ampersands kaj egalaj signoj. 80 00:05:20,000 --> 00:05:23,000 Tiu parto de la URL estas konata kiel la query string, 81 00:05:23,000 --> 00:05:29,000 kaj tio permesas al vi efektive pasas argumentojn al via PHP-skripto. 82 00:05:29,000 --> 00:05:34,000 La informpeto kordo konsistas klavo valoro paroj, same kiel hash tablo. 83 00:05:34,000 --> 00:05:38,000 Egala signo disigas ŝlosilon kaj lia responda valoro 84 00:05:38,000 --> 00:05:41,000 dum ampersands disigi paroj. 85 00:05:41,000 --> 00:06:05,000 URL kiu similas http://localhost/get.php?foo=bar&baz=qux 86 00:06:05,000 --> 00:06:09,000 havas 2 klavo valoro paroj en la informpeto kordo. 87 00:06:09,000 --> 00:06:12,000 La ŝlosilo foo mapas la valoro trinkejo, 88 00:06:12,000 --> 00:06:16,000 kaj la ŝlosilo Rabado mapas la valoro qux. 89 00:06:16,000 --> 00:06:23,000 Ni povas facile aliri tiujn klavo valoro paroj uzante specialan variablon en PHP, 90 00:06:23,000 --> 00:06:29,000 $ _GET. 91 00:06:29,000 --> 00:06:32,000 $ _GET Estas asocieca tabelo 92 00:06:32,000 --> 00:06:36,000 kiu estas aŭtomate popolita informpeto kordo datumojn. 93 00:06:36,000 --> 00:06:46,000 Tio signifas, ke donita ĉi URL $ _GET ["foo"] 94 00:06:46,000 --> 00:06:49,000 estos egala al la kordo trinkejo. 95 00:06:49,000 --> 00:06:56,000 >> Ni rigardu get.php vidi $ _GET en agado. 96 00:06:56,000 --> 00:07:00,000 Ĉi tie ni uzas funkcio nomita var_dump, 97 00:07:00,000 --> 00:07:03,000 kiu kiam donita tabelo aŭ aliaj variablo 98 00:07:03,000 --> 00:07:05,000 presos ĝin por ni. 99 00:07:05,000 --> 00:07:12,000 Nu, se ni simple aliri http://localhost/get.php 100 00:07:12,000 --> 00:07:17,000 tiam ni vidos malplenan tabelo ĉar ni ne provizis konsulto kordo. 101 00:07:17,000 --> 00:07:29,000 Se ni faros ofertas query string tra http://localhost/get.php?foo=bar&baz=qux 102 00:07:29,000 --> 00:07:34,000 tiam ni povas vidi ke la $ _GET variablo enhavu 103 00:07:34,000 --> 00:07:37,000 la informpeto kordo ŝlosilo valoro paroj. 104 00:07:37,000 --> 00:07:42,000 Sed kion se ni ne volas meti niaj datumoj ene de la URL de paĝo? 105 00:07:42,000 --> 00:07:46,000 Por grandaj kvantoj de datumoj, tio povas rezulti en iu bela malbela URLoj 106 00:07:46,000 --> 00:07:49,000 kiuj tuj fari nia brila retejo rigardo lama. 107 00:07:49,000 --> 00:07:52,000 Ni povas anstataŭ meti la informpeto kordoj en la korpo 108 00:07:52,000 --> 00:07:57,000 de la HTTP-petojn anstataŭ la peto de la URL. 109 00:07:57,000 --> 00:08:02,000 Poste ni povas uzi PHP la $ _POST variablo 110 00:08:02,000 --> 00:08:05,000 aliri la klavo valoro paroj. 111 00:08:05,000 --> 00:08:10,000 Unu maniero fari tion estas per HTML formo. 112 00:08:10,000 --> 00:08:13,000 Ĉi tie ni havas simplan HTML formo. 113 00:08:13,000 --> 00:08:17,000 Rimarku ĉi tie ke la metodo atributo de tiu formo estas posteno. 114 00:08:17,000 --> 00:08:21,000 Ĉi tiu diras la retumilo meti la formo de klavo valoro paroj 115 00:08:21,000 --> 00:08:25,000 en la korpon de la peto anstataŭ la URL. 116 00:08:25,000 --> 00:08:28,000 >> Se ni uzi la valoro akiri por tiu ĉi atributo 117 00:08:28,000 --> 00:08:32,000 tiam la formo de klavo valoro paroj estus anstataŭ iri en la informpeto kordo, 118 00:08:32,000 --> 00:08:36,000 tiel ni povus konsenti ili tra $ _GET denove. 119 00:08:36,000 --> 00:08:42,000 La ago atributo de la formo rakontas la retumilo kie sendi la datumojn. 120 00:08:42,000 --> 00:08:46,000 Jen nia 2 input elementoj havas nomon atributoj. 121 00:08:46,000 --> 00:08:51,000 La valoro de la nomo atributoj servos kiel klavojn en niajn datumojn, 122 00:08:51,000 --> 00:08:56,000 kaj la valorojn de la teksto enigoj iĝos valoroj de tiuj klavoj. 123 00:08:56,000 --> 00:08:59,000 Nun ni rigardu post.php, 124 00:08:59,000 --> 00:09:03,000 la dosieron ke tiu formo estas submetita al. 125 00:09:03,000 --> 00:09:10,000 Same kiel ni faris antaŭe, ni simple montri la enhavon de la $ _POST variablo. 126 00:09:10,000 --> 00:09:18,000 >> Ni navigi al la formo kun http://localhost/form.php. 127 00:09:18,000 --> 00:09:23,000 Nun kiam ni prezentos la formo ni povas vidi, ke la datumoj de form.php 128 00:09:23,000 --> 00:09:30,000 trapasas post.php sen appending konsulto ŝnuro al la URL. 129 00:09:30,000 --> 00:09:35,000 Nun ni vidis 2 malsamaj manieroj trapasigi datumojn inter PHP paĝoj, 130 00:09:35,000 --> 00:09:37,000 ricevi kaj sendi. 131 00:09:37,000 --> 00:09:41,000 En niaj ekzemploj, ni uzis 2 malsamaj tipoj de HTTP-petoj. 132 00:09:41,000 --> 00:09:45,000 Kiel vi povus atendi, a get peto estis uzata kiam ni popolita 133 00:09:45,000 --> 00:09:51,000 $ _GET El la retadreson, kaj post peto estis uzata 134 00:09:51,000 --> 00:09:55,000 kiam ni popolita $ _POST. 135 00:09:55,000 --> 00:09:59,000 En desegni vian ttt apps estas bona regulo de thumb uzi get petoj 136 00:09:59,000 --> 00:10:03,000 kiam via programo nur legi datumojn, kaj post petoj 137 00:10:03,000 --> 00:10:05,000 kiam via programo skribos datumojn. 138 00:10:05,000 --> 00:10:09,000 Ekzemple, serĉpeto legos datumojn de via app, 139 00:10:09,000 --> 00:10:12,000 tial oni get peto sencas. 140 00:10:12,000 --> 00:10:17,000 Aliflanke, via app skribos datumoj per io kiel aliĝilo, 141 00:10:17,000 --> 00:10:22,000 tial post peto farus pli da senco, kaj tio estas superrigardon de iu el la teknikoj 142 00:10:22,000 --> 00:10:26,000 ni uzos en CS50 krei retejojn uzi PHP. 143 00:10:26,000 --> 00:10:30,000 >> Mia nomo estas Tommy, kaj ĉi tiu estas CS50. 144 00:10:30,000 --> 00:10:36,000 [CS50.TV]