[Powered by Google Translate] [PHP Web Development]
[Tommy MacWilliam]
[Ĉi tiu estas CS50.] [CS50.TV]
>> En ĉi tiu video, ni lernos pri la uzo de PHP por reta programado.
PHP estas skripta lingvo kiu povas kutimi realigi
retejoj sur servilo.
A ttt-servilo estas esence maŝino dediĉita al havigi enhavo
kiun povas aliri per la interreto.
Kiam vi navigas al retpaĝo kiel Facebook.com / home.php
La kodo en la dosiero nomata home.php kiuj vivas sur Facebook retservilo ie
estos ekzekutita sur tiu servilo.
Tiu kodo probable generi iujn eligo
kiu siavice estu senditaj de la servilo
al via TTT-legilo.
Ni uzos la CS50 aparaton kiel TTT-servilo.
Via maŝino eble ne estos preskaŭ tiel potenca kiel la maŝinoj
en Facebook datumoj centro, sed vi ne havos problemon uzante ĝin por reta programado.
>> Kiam ni navigas al URL kiel http://localhost/hello.php
ni agordi la aparaton per apliko nomis la Apache HTTP servilo
serĉi dosiero nomata hello.php internon de hejmo / jharvard / vhosts / localhosts / html defaŭlte.
Se tiu dosiero ekzistas tiam Apache uzos la PHP-interpretilo
ekzekuti la PHP-kodon en hello.php.
Se tiu dosiero ne ekzistas do Apache ĵetos oni ne trovis eraro
aŭ 404 eraroj, kiujn vi jam probable vidita dum foliumas la retejon.
>> Ni rigardu hello.php.
Ni povas vidi ĉi tie ke hello.php generas signalon linio de eligo.
Kiam ni kuris hello.php ĉe la komandlinio tra php hello.php
ke eligo estis presita la terminalo.
Nun, kiam ni aliri ĉi dosieron per URL en la foliumilo
lia eliro estos sendita al la TTT-legilo,
tiel direktante al la URL, http://localhost/hello.php,
Ni povas vidi la eligon en nia TTT-legilo.
>> Ni provu aldoni alian printf al nia saluton mondo programo.
Konsentite, ni estrus reen al la retumilo kaj rigardu, kion ni havas.
Interesa.
Anstataŭ presado alian linion sur ĝia propra linio, kiel vi estus vidinta
en la fina stacio, ĝi aspektas kiel alvenis smushed sur la sama linio
kiel la aliaj printf, do eble novaj linioj ne funkcios en PHP.
Ne tute.
Memoru ke HTML estas tipe uzataj por krei retpaĝojn
kiu povas esti montrata per retumiloj.
Ne nur estas la kordo saluton el php Ne valida HTML,
sed memoras ke ni ne povas uzi la \ n karaktero en HTML
krei linerompo.
Anstataŭ simple outputting ĉenon Ni eligo valida HTML.
Per uzo paragrafo etikedoj ĉiu el niaj printf alvokoj
estos montrata sur ĝia propra linio,
tial nun, kiam ni vizitas la URL indikus valid.php
http://localhost/valid.php
ni vidas la eligo ke ni serĉas.
>> Nun, se ni konsideru la vikitekston de tiu ĉi paĝo
ni povas vidi, ke ni nun rigardas valida HTML,
kiun ni kreis, de PHP.
Metante ĉiujn niajn HTML ene printf alvokoj
Estas kompreneble tuj akiri vere ĝena.
Bonŝance ni povas facile miksi HTML-on kaj PHP-
en la sama. php dosiero.
Memoru, ke ĉiuj niaj PHP-kodo devas esti fermita ene <? Php
kaj?>.
Io ajn, kiu ne estas fermita ene de tiuj limoj
Mi simple esti sendita kiel eliro al la retumilo
prefere ol esti ekzekutita.
Tio signifas ke ni povas fari ion kiel ĉi tio.
Ni simple povas skribi HTML ene de nia. Php dosiero
kaj tiam enmeti PHP blokoj kien ni ŝatus iom php kodo estos ekzekutita.
Ĉi tie ni difini kelkaj variabloj ĉe la supro de la dosiero,
kaj poste ni presi ilin ene de niaj HTML.
Nun se ni vizitas ĉi URL http://localhost/mixed.php
ni povas vidi niajn taksita PHP ene de nia HTML.
>> Nun ni rigardu kiom ni povas pasi datumoj
inter niaj diversaj PHP paĝoj.
Anstataŭ diri <? Php print ($ a);?>
ni povas diri simple <? = la variablon ni ŝatus presi, aŭ al,
kaj?>.
Ni nun rigardu kiom ni povas pasi datumoj
inter niaj diversaj PHP paĝoj.
Unu vojo ni povas fari tion estas kodi informo en la URL de tiu paĝo.
Kiam foliumas la retejon, vi eble rimarkis ke iuj URLoj
enhavi? sekvis per ĉeno enhavante ampersands kaj egalaj signoj.
Tiu parto de la URL estas konata kiel la query string,
kaj tio permesas al vi efektive pasas argumentojn al via PHP-skripto.
La informpeto kordo konsistas klavo valoro paroj, same kiel hash tablo.
Egala signo disigas ŝlosilon kaj lia responda valoro
dum ampersands disigi paroj.
URL kiu similas http://localhost/get.php?foo=bar&baz=qux
havas 2 klavo valoro paroj en la informpeto kordo.
La ŝlosilo foo mapas la valoro trinkejo,
kaj la ŝlosilo Rabado mapas la valoro qux.
Ni povas facile aliri tiujn klavo valoro paroj uzante specialan variablon en PHP,
$ _GET.
$ _GET Estas asocieca tabelo
kiu estas aŭtomate popolita informpeto kordo datumojn.
Tio signifas, ke donita ĉi URL $ _GET ["foo"]
estos egala al la kordo trinkejo.
>> Ni rigardu get.php vidi $ _GET en agado.
Ĉi tie ni uzas funkcio nomita var_dump,
kiu kiam donita tabelo aŭ aliaj variablo
presos ĝin por ni.
Nu, se ni simple aliri http://localhost/get.php
tiam ni vidos malplenan tabelo ĉar ni ne provizis konsulto kordo.
Se ni faros ofertas query string tra http://localhost/get.php?foo=bar&baz=qux
tiam ni povas vidi ke la $ _GET variablo enhavu
la informpeto kordo ŝlosilo valoro paroj.
Sed kion se ni ne volas meti niaj datumoj ene de la URL de paĝo?
Por grandaj kvantoj de datumoj, tio povas rezulti en iu bela malbela URLoj
kiuj tuj fari nia brila retejo rigardo lama.
Ni povas anstataŭ meti la informpeto kordoj en la korpo
de la HTTP-petojn anstataŭ la peto de la URL.
Poste ni povas uzi PHP la $ _POST variablo
aliri la klavo valoro paroj.
Unu maniero fari tion estas per HTML formo.
Ĉi tie ni havas simplan HTML formo.
Rimarku ĉi tie ke la metodo atributo de tiu formo estas posteno.
Ĉi tiu diras la retumilo meti la formo de klavo valoro paroj
en la korpon de la peto anstataŭ la URL.
>> Se ni uzi la valoro akiri por tiu ĉi atributo
tiam la formo de klavo valoro paroj estus anstataŭ iri en la informpeto kordo,
tiel ni povus konsenti ili tra $ _GET denove.
La ago atributo de la formo rakontas la retumilo kie sendi la datumojn.
Jen nia 2 input elementoj havas nomon atributoj.
La valoro de la nomo atributoj servos kiel klavojn en niajn datumojn,
kaj la valorojn de la teksto enigoj iĝos valoroj de tiuj klavoj.
Nun ni rigardu post.php,
la dosieron ke tiu formo estas submetita al.
Same kiel ni faris antaŭe, ni simple montri la enhavon de la $ _POST variablo.
>> Ni navigi al la formo kun http://localhost/form.php.
Nun kiam ni prezentos la formo ni povas vidi, ke la datumoj de form.php
trapasas post.php sen appending konsulto ŝnuro al la URL.
Nun ni vidis 2 malsamaj manieroj trapasigi datumojn inter PHP paĝoj,
ricevi kaj sendi.
En niaj ekzemploj, ni uzis 2 malsamaj tipoj de HTTP-petoj.
Kiel vi povus atendi, a get peto estis uzata kiam ni popolita
$ _GET El la retadreson, kaj post peto estis uzata
kiam ni popolita $ _POST.
En desegni vian ttt apps estas bona regulo de thumb uzi get petoj
kiam via programo nur legi datumojn, kaj post petoj
kiam via programo skribos datumojn.
Ekzemple, serĉpeto legos datumojn de via app,
tial oni get peto sencas.
Aliflanke, via app skribos datumoj per io kiel aliĝilo,
tial post peto farus pli da senco, kaj tio estas superrigardon de iu el la teknikoj
ni uzos en CS50 krei retejojn uzi PHP.
>> Mia nomo estas Tommy, kaj ĉi tiu estas CS50.
[CS50.TV]