>> Даг Lloyd: Так у нашым відэа па сінтаксісу PHP,
мы шмат казалі пра тое, як PHP можа быць выкарыстаны ў камандным радку
для запуску праграм такім чынам, каб мы даволі знаёмыя з С.
Але, як Я таксама згадаў ў гэтым відэа, PHP
першапачаткова быў распрацаваны для ажыццявіць вэб-праграмаванне, вэб-сайты.
І так у гэтым відэа мы пагаворым аб тым, як мы
выкарыстоўваць PHP ў кантэксце вэб-распрацоўкі.
>> Мы ведаем, ужо з наша відэа на HTML,
што сайты будуюцца з набору HTML-тэгі
што семантычна вызначыць структура вэб-старонкі.
Але сайты, якія з'яўляюцца пабудаваны з чыстага HTML
пакутуюць ад вельмі, вельмі сур'ёзнае абмежаванне.
>> І, каб праілюстраваць гэта абмежаванне, давайце разгледзім наступнае.
Так што цяпер я хачу, каб стварыць вэб-старонку што кожны раз, калі карыстальнік наведвае яго,
гэта дае мне току час у Кембрыджы, штат Масачусэтс.,
адлюстраванне да апошняй хвіліны.
Калі я рабіў гэта прама цяпер, Я мог бы сказаць нешта накшталт гэтага.
Бягучы час у Cambridge-- так што я HTML-тэгі, тэгі, назва галава тэгі,
Цела tags-- ток час у Кембрыджы 14:08,
друк ваенную час.
>> Што адбудзецца, калі ён зараз 2:09 вечара, 14:09?
Ну так далёка, з HTML, я пайсці і змяніць яго на 14:09.
А потым праз хвіліну, Я павінен змяніць яго зноў.
І, як вы можаце сабе ўявіць, што гэта верагодна, горшая праца калі-небудзь.
Вы вэб-майстар для вэб-старонкі, і кожную хвіліну, 24 гадзіны ў суткі,
вам неабходна абнавіць бягучы час ўручную адкрываць time.html і змены
проста фрагмент кода, каб сказаць бягучы час у гадзінах і мінутах.
Гэта, верагодна, не вельмі добрае выкарыстанне нашых рэсурсаў,
як чалавек і вылічальная.
>> Сайты, якія ўсё HTML- цалкам статычныя.
Адзіны спосаб вы можаце абнавіць Змест, як мы толькі што бачылі,
гэта ўручную адкрыць тыя крыніца файлы, рэдагаваць іх і захоўваць іх.
А потым, калі карыстальнік абнаўляе старонку,
ці наведвае старонку ў першы Час, яны будуць атрымліваць апошнія змест.
Але толькі таму, што мы ўручную рэдагаваць яго.
>> Калі мы пачынаем змешваць некаторыя PHP там, наш код можа атрымаць значна больш гнуткім.
І мы можам мець спосаб для нашых старонках быць дынамічным, або абнавіць сябе,
не патрабуючы наш бедны вэбмайстар ў папярэднім прыкладзе
каб ўручную абнавіць рэчы.
Яны могуць зрабіць гэта аўтаматычна.
Мы не павінны ўмешвацца.
Мы можам паспаць.
Што, напэўна, добра, калі Вы робіце шмат вэб-праграмавання.
>> Такім чынам, у CS50 IDE, мы запускаем Вэб-сервер Apache называецца.
Гэта вельмі шырока выкарыстоўваецца, адкрытая сістэма вэб-сервер крыніца.
Гэтая сістэма мае здольнасць інтэрпрэтаваць
PHP, які будзе карысным, калі Вы хочаце, каб рабіць якія-небудзь праграмавання PHP.
>> І ў CS50 IDE, у нас ёсць каманда каб зрабіць гэта вельмі лёгка зрабіць,
apache50 пачаць.
А потым, што касая рыса Шлях, слэш, каб, слэш
рэж, што гэта проста вельмі распаўсюджаным спосабам з указаннем, што вы паказалі тут
гэта шлях да пэўнага каталог, які вам
хачу быць коранем Сайт, або каранёвая старонка,
ці тэчка, з якой ваш вэб-сервер пачне вывучаць файлы і служыць
іх да кліентаў, якія просяць іх.
Такім чынам, давайце поп да CS50 IDE, проста паказаць вам, вельмі хутка, як гэта працуе.
>> Дык вось у CS50 IDE, я ў Каталог называецца Тыдзень нулявы Дзевяць.
І ў мяне ёсць two-- мяне ёсць выконваецца каманда LS толькі
вышэй, каб паказаць вам, што ў мяне ёсць два каталогі ў тут, PHP,
які з'яўляецца наборам файлаў, якія я выкарыстаў у сінтаксісу PHP відэа, а затым PHP-вэб,
які з'яўляецца наборам файлаў, якія я хацелі б выкарыстоўваць у гэтым відэа.
>> І я хацеў бы пачаць асобнік вэб-сервер
з утрыманнем PHP-вэб-тэчкі так як файлы ў цяперашні час падаюць.
Так што я збіраюся рабіць?
Я збіраюся ўвесці apache50 прастору пачаць, прастору PHP, працяжнік вэб.
Гэта шлях да дырэкторыі адкуль цяперашні час я.
Тады я ўдарыў Enter.
Гэта збіраецца зрабіць трохі рэчаў тут.
А потым скажа, Apache паспяхова запушчаны.
Ваш сайт цяпер даступны і at-- гэта значыць URL-адрас для сайта.
Так што я збіраюся рабіць?
Я збіраюся хутка скапіяваць гэты.
І я збіраюся адкрыць up-- і Я паменшыць трохі here--
Я збіраюся адкрыць новая ўкладка ў Chrome.
І я збіраюся наведаць гэты адрас.
>> Я стукну Enter.
Гэта адбываецца, каб загрузіць.
І я буду выдаляць зноў.
І мы бачым, тут з'яўляецца змесціва майго вэб-каталог PHP.
>> Так што цяпер, у асноўным, адбываецца тут, мой асобнік CS50 IDE
адбывае гэтыя файлы любы, хто просіць іх.
І на працягу гэта відэа, мы сартаваць
зірнем на кучу з іх розныя файлы ў кантэксце.
>> Каб праверыць, што ваш Apache сервер працуе,
які звычайна збіраецца каб быць у выпадку CS50 IDE,
але калі вы робіце гэта ў больш агульным, і вы пачынаеце будаваць свой уласны вэб
серверы, ёсць сапраўды распаўсюджаны выгляд аналагавага да,
"прывітанне свет", што, як правіла, выкарыстоўваецца для PHP вэб-распрацоўкі.
Што мець файл які складаецца толькі з гэтага code--
PHP-падзельнік усталяваны з інфармацыяй PHP, дужкі, кропка з коскі паміж імі.
Які з'яўляецца ў асноўным спецыяльная Функцыя PHP, які кажа вам
тое, што версія PHP вы працуеце.
>> Такім чынам, у CS50 IDE, я што файл даступны толькі
каб паказаць вам, што гэта будзе выглядаць.
Так што я гляджу на маю індэкса ад майго асобніка PHP.
Мой асобнік Apache працуе змесціва PHP-Web.
І ў мяне ёсць файл тут называюць info.php.
>> Я збіраюся выбраць яго, памяншэння маштабу.
Гэта тое, што вы збіраецеся каб бачыць, даволі шмат.
Гэта проста кажа мне, што мой сервер Apache працуе.
І гэта, відаць, версія PHP, што я бягу.
Гэта мой аналаг "прывітанне свет".
>> Так што я ведаю рэчы з'яўляюцца дзеючымі.
Так што мы добра ісці.
Мы можам зыходзіць з тут.
>> Такім чынам, давайце вернемся, што Прыклад раз мы былі
гаварыць аб нашай беднай з вэб-майстрам які павінен быў абнавіць старонку пастаянна.
Гэта можа быць выпраўленне, як Я б рэалізаваць рэчы
так што вэб-майстар не зрабіў павінны пастаянна абнаўляць час.
Было б проста накшталт адбудзецца аўтаматычна.
>> Ўніз ніжэй, HTML, гэта вельмі падобныя, за адным выключэннем.
Але тут я атрымаў некаторыя PHP ў верхняй частцы.
Я, па-відаць, гэта называецца Функцыя date_default_timezone_set.
>> І мы не гаворым пра ўсіх гэтыя функцыі ў CS50,
таму што, верагодна, мае PHP дзясяткі тысяч.
Гэта можа быць чымсьці накшталт перабольшанне, але яно не можа быць.
Ён атрымаў шмат ўбудаваных функцый ст.
І так гэта функцыя, па-відаць ўсталёўвае гадзінны пояс, як ЗША / Усходняй,
што гадзінны пояс, што я У цяперашні час у стварэнні гэтага відэа.
>> Тады я зрабіць выклік Функцыя называецца, дата.
І, па-відаць, я захоўвання HIS-то называецца, часу.
Так што тут адбываецца?
>> Ну, у прынцыпе тое, што адбываецца, я раблю выклік
у нейкі сервер, які збіраецца скажы мне, што час у цяперашні час.
І я, пераўтварыўшы яго ў фармаце гадзін, хвілін, секунд.
І прычына гэта сталіца Н гэта збіраецца даць мне 24 гадзіну часу, не 12
гадзіну часу, якое будзе ў ніжнім рэгістры ч.
І я проста захоўваць, што ў зменнай называецца, часу.
Так што другая лінія PHP ёсць, выклік функцыі,
Дата, становіцца толькі некаторая радок, якая з'яўляецца
збіраецца даць мне дату і час і куча іншай інфармацыі.
І першы аргумент ёсць, што яго, проста здабывання важную ролю
што я клапачуся аб дадзеным прыкладзе, які гадзіну, хвіліну і секунду.
Так што гэта ўсё, што адбываецца.
Так што я захоўваць, што ў зменнай $ часу.
А потым уніз на самым нізе, я
ёсць што скарачэнне для раздрукоўкі бягучага часу.
Так што я проста хачу, каб надрукаваць , Што бягучы час.
>> Такім чынам, давайце зірнем на гэта ў CS50 IDE і ўбачыць, як мы цяпер
эканоміі, які вэбмайстру шмат непрыемнасцяў.
Добра, так вось я зноў таму ў каранёвым каталогу
маёй Напрыклад Apache.
І ў мяне ёсць файл тут называюць time.php.
Я проста хачу, каб націснуць на што.
І я пракруткі уверх, таму што мы павялічана даволі далёка.
Бягучы час 14:20:34.
Так што я раблю гэта гадзіны, хвіліны і секунды.
І я магу асвяжыць старонка і атрымаць новы час.
--41.
Я збіраюся абнавіць старонку і атрымаць новы час, 44, 46, 47.
>> Так, я, відавочна, не змяняючы нічога сабе.
Я тут абнавіць старонку.
Таму я не магу быць там рэдагавання.
І я абяцаю вам, я не ёсць аднадумцы
якія рэдагуючы файл ад майго імя на баку.
>> Я проста з дапамогай гэтай функцыі PHP, Час, каб вырабіць час для мяне
аўтаматычна.
Так што, нават калі я сплю, і мой вэб-сервер працуе,
карыстальнік, які наведвае, што старонка ўсё яшчэ збіраецца атрымаць менавіта бягучы час.
Так што гэта даволі добра.
Я зрабіў мой сайт больш дынамічным з не занадта шмат кода PHP.
Гэта было ўсяго два радкі кода, а затым трохі заяве для друку.
І ўжо ў мяне ёсць значна больш дынамічны сайт
чым той першым прыкладзе мы бачылі ў пачатку відэа.
>> Так, нагадаем, з відэа на сінтаксісу PHP што калі РНР працуе
наша праграма, яна ігнаруе ўсе гэта не ўнутры PHP падзельнікаў,
выплёўваючы яго.
У гэтым прыкладзе, што самае што ён быў выплёўваючы быў HTML.
А гэта значыць, я магу зараз перасыпаць HTML і PHP разам.
Таму што інтэрпрэтатар будзе проста ігнараваць HTML і вывесці яго ў літаральным сэнсе.
І гэта добра, правільна?
>> Таму што па-відаць, У рэшце рэшт,
Я хацеў бы мой сайт для быць выраблены з HTML.
Так што любы вэб-браўзэр можа інтэрпрэтаваць гэта, ці не разумеюць HTML на старонцы
і робяць гэта неяк, што мы можа на самай справе зразумець, як людзі.
І я магу выкарыстоўваць толькі PHP для частак майго сайта
Патрабаваць дынамізм, што патрабуюць ад мяне каб мець рэчы, якія абнаўляюць пастаянна.
Статычная інфармацыя можа застацца тое ж самае.
>> ОК, так што гэта нармальна.
Але чаму б мне гэта зрабіць?
Чаму я змяшаць HTML і PHP?
Я мог бы проста раздрукаваць ўсе HTML, выкарыстоўваючы функцыю PHP друку.
Чаму я не раблю, што?
Падумайце пра гэта на секунду.
>> Чаму, калі я мог бы проста надрукаваць out-- я можа мець лініі PHP, якія проста кажуць,
Друк HTML-тэг, друкавалая галоўка.
Чаму я не раблю, што?
Чаму я змешвання PHP і HTML?
>> Ну, калі вы думаеце, пра гэта ні на секунду.
PHP-інтэрпрэтатар мае інтэрпрэтаваць тое, што ён бачыць.
І такім чынам, гэта будзе мець выканаць радок кода.
Раздрукаваць HTML.
Раздрукаваць адкрыты галаўнога тэг.
Раздрукаваць адкрыты тэг загалоўка.
Гэта прыйдзецца выконваць і інтэрпрэтаваць
што кожны крок шляху.
Чаму б проста не дазволіць перакладчык проста замазаць
рэчы не разумеюць і рабіць гэта аўтаматычна?
Гэта ўратуе мяне шмат часу змешваць маю HTML і PHP мой разам.
>> І вось чаму мы не проста адкрыты PHP падзельнік
а затым проста раздрукаваць ўвесь Змест нашай старонкі як адзін гіганцкі PHP
выклік функцыі, Друк, а затым блізка PHP падзельнік, і мы зрабілі.
Дык вось чаму мы змешваем іх разам.
>> Да гэтага часу мы не бачылі занадта шмат розніца ад агульнага сінтаксісу PHP.
Гэта было даволі проста.
Мы ўжо бачылі знак пытання, роўныя.
Мы бачылі некалькі новых выклікаў функцый, але на самой справе нічога не фантазіі адбываецца.
Давайце, можа быць, зрабіць рэчы трохі аматар.
Што рабіць, калі мы хочам перадаць інфармацыю паміж рознымі файламі PHP,
так што, магчыма, карыстальнік можа прадставіць інфармацыю для мяне.
І тады я мог бы зрабіць нешта з ім на іншай старонцы.
>> Такім чынам, PHP мае падтрымку тое, што называецца Супер Глабальны
Зменныя, які гучыць даволі дзіўным.
Яны на самай справе проста гіганцкія асацыятыўныя масівы
якія дапамагаюць ажыццявіць гэта Функцыянальнасць між іншым
інфармацыяй паміж PHP файлаў, якія з'яўляюцца існуючыя на нашым вэб-серверы.
>> Першы з гэтых супер глабальныя называецца $ _GET.
І гэта, бадай, Прасцей зразумець.
Што адбываецца з $ _GET?
Ну, у прынцыпе, карыстальнік збіраецца ўвесці дадатковую інфармацыю
У канцы нашых адрасоў.
І ўсё, што яны тыпу, мяркуючы, гэта адфарматаваны пэўным чынам
называецца радком запыту, які знаходзіцца ўсяго набор пар ключ-значэнне падзеленых
Ампэрсанд.
Гэтыя ключавыя пары значэнняў будуць захоўваецца ў $ _GET асацыятыўнага масіва.
А з нашага відэа на Сінтаксіс PHP, мы ведаем,
як працаваць з асацыятыўныя масівы ўжо.
Дык вось прыклад некаторыя PHP, дзе, можа быць, я
здабывання ўсіх пар ключ-значэнне што карыстальнік увёў у URL.
Так у мяне ёсць PHP Open падзельнік.
У мяне ёсць цыкл па кожнаму элементу.
Я ітэрацыі па супер Глабальны масіў $ _GET.
>> І я хачу, каб мець магчымасць звярнуцца як да ключ і значэнне.
І я проста друкуючы іх з, кожны па-відаць, на
уласны тэг абзаца тут.
Я раздрукоўкі некаторыя HTML і інтэрпаляцыі значэнняў
ключа і значэння ў гэтай заяве.
>> Такім чынам, давайце зірнем на тое, як гэта будзе на самой справе працуюць на нашым IDE.
І, можа быць, гэта дапаможа ілюструюць трохі
што GET на самай справе робіць.
Так я зноў тут, у маім вэб-сервера.
І я буду маштабу ў трохі, каб паказаць вам
што ў мяне ёсць файл з імем, get1.php.
>> Такім чынам, давайце націсніце на get1.php.
І я не бачу ніякага зместу.
Гэта дзіўна, ці не так?
Ну, на самай справе не на самай справе.
Таму што я не паставіць што-небудзь у URL.
Я збіраюся get1.php, але я ня паставіць ўсе пары ключ-значэнне
як частка маёй радку запыту.
Так давайце дадамо радок запыту і паглядзець, што гэты файл можа зрабіць.
>> Каб пачаць радок запыту вы проста ўвядзіце пытальнік.
Тады, магчыма, я буду казаць імя = Doug & год = 2015.
І тады я ўдару Enter.
Зараз звернеце ўвагу, што адбываецца.
Я да гэтага часу ў get1.php.
Але цяпер я пастаўляецца пар ключ-значэнне, і я
друк іх самастойна paragraph-- імя, Doug-- год, 2015.
Менавіта код, мы проста убачыў на слайдзе хвіліну таму.
>> І калі я хачу, каб, можа быць, дадаць яшчэ адзін пара ключоў значэнне, і клас = CS50.
Цяпер у мяне ёсць яшчэ адзін ключавы значэнне Пара, якая друкуецца
калі я перагледзець URL зноў.
Цяпер, можа быць, гэта не адфарматаваны жудасна добра.
Так што ў мяне яшчэ адзін варыянт get.php.
Гэта get2.php.
>> Розніца ў гэтым адзін у мяне ёсць CSS файл,
і фарматуе рэчы трохі больш прыемна для мяне.
Гэта, можа быць, не самы прыгожая CSS у свеце.
Але гэта проста яшчэ адзін спосаб зрабіць гэта.
Так што я ўсё яшчэ можаце атрымаць доступ мае зменных з выкарыстаннем $ _GET.
І ў гэтым выпадку, я проста выгляд робіць CSS трохі больш фантазіі.
І калі мы поп да мой IDE для другой,
Я пакажу вам, на мой PHP вэб Каталог тут, get2.php.
Мы адкрыем яе, некаторы HTML тут.
Мабыць я звязваючы ў тым, што CSS файл я кажу.
Я адкрываю тэг табліцы.
І тады вось мой цыкл па кожнаму элементу.
>> Вось, што тое, што я паказалі на слайдзе раней.
Розніца толькі ў тым, што я ёсць гэты ключ і значэнне CSS
кладка, што я ўжываю да яго.
Але гэта ўсё, што я раблю, я гэта ітэрацыі па $ _GET, каб атрымаць усе
з пар ключ-значэнне.
>> І я іх друку ў выглядзе табліцы.
І, па-відаць, я фарматавання ключы ў адзін бок, з TD Class = "ключ" <.
Такім чынам, відавочна, што адносіцца і да некаторых Селектар ў маім CSS файла GET.CSS клас.
І, па-відаць, я друкую мае каштоўнасці зусім па-іншаму.
Што даволі шмат што мы бачылі тут, дзе
нашы каштоўнасці былі надрукаваныя з сінім фонам,
і нашы ключы былі надрукаваныя з жоўтым фонам.
Дык вось, як я атрымліваю гэтыя розныя стылі.
Так як я выкарыстоўваю розныя класы CSS.
Але гэта ў значнай ступені гэта для GET.
Як я толькі што выманне інфармацыі.
І ў гэтым выпадку, я проста друку на экран.
Я атрымліваю яго з URL, і гэта тое, што GET робіць для нас.
>> Ці бачыце вы магчымасці Праблема тут, хоць?
Навошта мы, можа быць, не хочаце выкарыстоўваць $ _GET?
Што рабіць, калі, можа быць, я рабіў гэты запыт?
--to get3.php, якія я не ў маім IDE.
Гэта проста гіпатэтычная файл.
Але звярніце ўвагу, тут, відаць, што праходзячы свой пароль ст.
І, можа быць, мой пароль няёмка.
Ці, можа быць, я не хачу, каб людзі ў ведаю, што мой пароль, мае рацыю.
>> Калі я перадаю яе though-- калі я выкарыстоўваю метад $ _GET, што адбываецца, з'яўляецца,
што будзе ў URL.
Такім чынам, некаторыя зламыснік можа быць у стане бачыць тое, што я раблю.
Я, можа быць выдаючы іх канфідэнцыйная інфармацыя.
Ці, можа быць, гэта нават не зламыснік.
Можа быць, гэта проста ваш сябар, які варта праз плячо.
А цяпер яны ведаюць пароль на ваш рахунак у Facebook.
>> І, можа быць, яны не будуць зрабіць што-небудзь з ім.
Але калі ваш пароль быў прадстаўлены праз $ _GET, каб Facebook,
Цяпер яны ведаюць, пароль Facebook.
Таму што гэта прама ў URL калі вы зрабілі прадстаўлення інфармацыі.
>> І таму, магчыма, гэта не самы лепшы спосаб перадаць канфідэнцыйную інфармацыю.
Гэта добры спосаб, каб перадаць інфармацыю што мы не асабліва
клапаціцца аб як занадта адчувальныя.
Таму GET даволі хутка, у параўнанні з іншымі супер глабальных
мы збіраемся пагаварыць.
Але, можа быць, не самы лепшы інструмент для адчувальнай інфармацыі.
>> Для гэтага мы маглі б выкарыстоўваць тое, што называецца $ _POST,
што з'яўляецца яшчэ адным супер глабальнай зменнай.
Гэта яшчэ адзін асацыятыўны масіў.
Так гэта працуе ў значнай ступені сапраўды гэтак жа, як GET.
Акрамя гэтага, замест таго, каб здабываць інфармацыя з URL,
ён робіць што-то праз HTTP загалоўкаў.
Так, памятаеце з нашага відэа па HTTP, мы гаварылі
пра тое, як браўзэры, серверы, і кліенты ўзаемадзейнічаюць.
І інфармацыя перадаецца назад і наперад у HTTP назвах старонак.
>> З $ _POST, інфармацыя, як правіла, адпраўлена праз HTTP загалоўкаў тых.
І мы звычайна бачым у $ _POST кантэкст прадстаўлення HTML формы.
Вы па-ранейшаму можаце выкарыстаць HTML формы прадставіць рэчы, каб атрымаць.
Але яны, як правіла, выкарыстоўваецца у кантэксце POST.
>> Дык вось прыклад HTML форме.
Цяпер мы бачылі гэта раней, але ў нас ёсць не бачыў гэтую частку, дзеянне = "" Post.php.
Таму, калі мы казалі аб формах ў кантэкст HTML, я была кнопка Submit.
І калі вы памятаеце, я націсніце кнопку Адправіць а затым старонка проста абнаўляецца,
нічога не рабіць.
>> У гэтым выпадку, я прадстаўлення усё, што я тыпу ў гэтай форме,
у PHP файл пад назвай post.php.
І, па-відаць, як я раблю, што у такім выглядзе, выкарыстоўваючы метад POST.
Такім чынам, кожны кавалак інфармацыі што я тыпу ў гэтай форме
будзе прадстаўлены па загалоўках HTTP.
>> Гэта будзе даступны ў Post.php, таму што гэта дзеянне маёй форме.
Гэта будзе даступны перайшоўшы ў $ _POST.
І, мабыць, тое, як я магу атрымаць на кожнага асобнага элемента
з гэтай асацыятыўнага масіва з гэтай атрыбуту,
Імя атрыбуту нашых ўваходных тэгаў.
>> Такім чынам, відавочна, я магу сказаць, $ _POST плошчы Кранштэйны назваць, каб атрымаць усе карыстачу
набралі ў першым полі.
І $ _POST пароль, ВН, а, атрымаць на тое, што карыстальнік увёў
у другім полі.
>> Такім чынам, давайце зірнем на гэта больш у CS50 IDE.
І вось мы, і я павялічыць на секунду.
І ў нас ёсць файл з імем post.html.
Я націскаю на post.html.
На самым версе вось у мяне ёсць вельмі просты вэб-формы.
Гэта форма мы толькі што бачылі на слайдзе секунду таму.
>> Я магу надрукаваць, Дуг, і я магу увядзіце свой пароль, які мы ўсе
ведаць squadgoals.
І я ўдару Адправіць.
І, мабыць, што падпарадкоўваецца Post.php.
І я, па-відаць, што друк.
Так што я пазбавіцца ад усіх бяспекі што пост дае мне, проста раздрукаваць
імя карыстальніка і пароль.
>> Імя карыстальніка Дуг.
Пароль карыстальніка з'яўляецца squadgoals.
Як мне гэта зрабіць?
Ну, поп да IDE зноў на секунду.
Мы пракруціць ўніз, каб узяць погляд на Post.php, які быў
дзеянне, якое я выкарыстаў, каб прадставіць тут.
Гэта было дзеянне майго HTML форме.
І гэта ўсё, што я раблю.
Імя карыстальніка з'яўляецца, і я друку са зместу $ _POST "імя".
А потым пароль карыстальніка складае $ _POST "пароль".
Так што я атрымаў гэтую інфармацыю шляхам падачы HTML форму.
І цяпер я магу атрымаць яго, выкарыстоўваючы $ _POST таму што метад я выкарыстаў для перадачы
Дадзеныя з гэтай форме быў метад POST.
>> Зараз гэта, верагодна, не так great-- я збіраюся
вярнуцца на секунду у нашым мностве here--
гэта, напэўна, не так выдатна, калі я прадстаўлення інфармацыі з POST,
які нібыта больш бяспечным.
Гэта, верагодна, не настолькі вялікая, калі я раблю гэта, а затым
друк з паролю карыстальніка.
Гэта павінна быць больш бяспечным.
>> ОК, але гэта не зусім бяспечна.
І таму ў гэты маленькі фрагмент тут я хачу
проста звярнуць вашу ўвагу на некаторыя праблемы бяспекі дадзеных, проста нешта
думаць аб пакуль вы працы або з дапамогай Інтэрнэт.
Гэта проста нешта, каб разгледзець.
>> Я сказаў вам, што інфармацыя прадстаўлены праз HTTP загалоўкаў
пры выкарыстанні метаду POST ст.
Гэта азначае, што яны не зусім бяспечна.
Яны цяжэй знайсці, чым выкарыстоўваючы метад GET ў, дзе
гэта проста прама ў URL.
Але ёсць яшчэ спосаб, каб знайсці яго.
І я проста хачу, каб паказаць Вы гэта так, што вы, магчыма,
пачаць думаць пра гэта а вы працуеце, або з дапамогай
сайты і прадстаўлення паролі, і, магчыма, з дапамогай
той жа пароль у Шмат розных месцах.
Ведайце, што гэта па-ранейшаму на самай справе даволі лёгка даведацца чыю-то пароль.
>> І вось, я іду каб перайсці да post2.html.
І розніца з post2.html і post2.php даволі тонкім.
Розніца толькі што я не друкаваць
пароль, калі я адправіць форму.
>> Так што я збіраюся ўвесці, Дуг.
І я збіраюся ўвесці у, squadgoals, нават
хоць мы ведаем, што гэта пароль.
Перад Я прапаную форме, хоць, я збіраюся
каб адкрыць Developer Tools, проста паказаць вам, што адбудзецца тут.
Такім чынам, у Chrome, я проста хачу, каб ўразіць F12.
І, што збіраецца адкрыць мой Сродкі для распрацоўнікаў на правай баку.
Я не прадставіў форму яшчэ.
Цяпер я збіраюся стукнуць Адправіць на маёй форме.
І, мабыць, я зрабіў патэлефанаваць, ці я зрабіў запыт
каб post2.php, што мае сэнс.
Я збіраюся націснуць на гэта.
>> Тады тут, я збіраюся націснуць на загалоўкі.
Там вельмі шмат рэчаў адбываецца тут.
Але калі я пракруціць ўніз да самага знізу, справа апавяшчэнне there-- мой каляндар
заблакаваў яго для second-- правы ёсць на самай ніжнім куце,
name-- Doug, pw-- squadgoals.
Таму, нават калі я выкарыстоўваю POST метад, які з'яўляецца больш бяспечным,
проста трэба ведаць, што, калі вы гэта зробіце, Вы па-ранейшаму перадачы інфармацыі
праз HTTP.
І ён па-ранейшаму можа быць знойдзеныя супернікам.
Гэта проста што-то мы збіраемся мець справу з сапраўды.
Можа быць, ёсць некаторыя спосабы шыфравання наш паролі, перш чым адправіць іх,
што было б лепш, які я не раблю тут.
>> Але проста быць у курсе, што POST метад мае абмежаванні таксама.
Гэта паляпшэнне ў параўнанні з GET ў ўмовы знаходжання адразу відаць.
Але гэта не поўны выпраўленне.
Дык вось прыклад хуткі дома практыкаванні
што вы можаце выкарыстоўваць, каб атрымаць некаторыя практыкаваць працы з PHP.
Стварыце наступную пару вэб-старонак.
Першая павінна быць проста вельмі просты ўтвараюць з аднаго поля і Адаслаць
Кнопка.
Так вельмі падобны на тое, што мы толькі што зрабіў з post.html.
>> А потым другі файл, які вы павінны стварыць
файл, файл PHP, што чакае ўводу, з дапамогай POST,
і на аснове таго, што карыстальнік увёў, які можна выказаць здагадку, будзе цэлым лікам.
Вы не павінны рабіць нічога праверка памылак ці таму падобнае.
Вы можаце выказаць здагадку, карыстачу будзе ўвесці цэлы лік,
ці нешта накшталт інтэрпрэтуецца PHP як цэлае, у гэтай форме.
Вы проста хочаце, каб стварыць н табліцай множання п.
>> Такім чынам, калі карыстальнік адпраўляе 10, мы хочам, каб ёсць табліца 10 па 10 множання.
Калі карыстальнік адпраўляе 12, мы хочам табліца 12 па 12 множання.
Толькі так можна ўбачыць, што мы едзем на тут,
мы зірнем на гэты файл у маім IDE.
>> Дык вось у IDE, я mult_form.html.
Я пстрыкніце яго.
Усё, што я хачу зрабіць, гэта прадставіць значэнне.
Калі ласка, увядзіце 10, націсніце Адправіць.
І, мабыць, mult_table.php, што мы можам убачыць на вяршыні там у URL,
Я ствараю 10 па 10 табліца множання.
>> Калі я друкую 15 і ўдарыў Адаслаць, цяпер я ёсць табліца 15 па 15 множання.
Я, вядома, не збіраюся паказаць Вы змесціва mult_table.php,
таму што гэта весела ўзяць з гэтага дома практыкаванні.
Але гэта выдатны спосаб, каб атрымаць некаторыя практыкаваць працы з PHP завес
і пасля, вельмі просты, спадзяюся, стрэсу прыклад, проста
каб зрабіць трохі практыкі.
І я атрымаў крыху CSS адбываецца тут, каб зрабіць свой індывідуальны стол
Клеткі проста выгляд паліць ледзь-ледзь і выглядаць трохі больш
як табліцу множання, а не проста тэкст, проста
выгляд сядзець там.
Апошнія супер глабальная мы пагаворым аб ў гэтым відэа тое, што называецца
$ _SESSION.
І, можа быць, гэта на самай справе лепшы прыклад чагосьці
мы б разгледзець глабальныя.
Гэта яшчэ адзін масіў.
Гэта яшчэ адзін асацыятыўны масіў.
Але гэта даступна праз кожны PHP-файл, які існуе на нашай сістэме.
>> Мы не павінны прадстаўляць Інфармацыя па адной старонцы за раз
як мы робім з GET і POST з.
Гэта заўсёды там.
І так гэта выдатна для старонкі дзе вы ўвайшлі ў сістэму, напрыклад,
і вы хочаце сваю рэгістрацыйную інфармацыю захоўвацца ад старонкі да старонкі, каб старонцы.
>> Вы можаце проста пачаць сесію, а затым выкарыстоўваць $ _SESSION, каб захаваць рэчы, як
Імя карыстальніка або карыстальніка Ідэнтыфікацыйная інфармацыя, і гэтак далей.
І, што інфармацыя застанецца ў $ _SESSION, Пакуль вы не знішчыць сесію
трохі пазней.
>> Напісанне дынамічных вэб-сайтаў з PHP робіць іх нашмат лепш.
Вашы сайты становяцца вельмі дынамічны, і вы не
трэба зрабіць занадта шмат больш, чым у адваротным выпадку вы б зрабілі проста
робяць гэта з HTML.
Але гэта патрабуе практыкі, шмат практыкі.
>> Вы ўжо ведаеце, як працаваць з C, і так скача PHP не занадта складана.
Што, можа быць, трохі крыху больш складана працуе
з гэтай новай ідэяй GET і POST, і, магчыма, змешваючы ваш HTML і PHP свой
разам.
Але таксама вядома, што ў Інтэрнэце гэта велізарная сховішча інфармацыі.
І дакументацыя PHP даступны у многіх месцах, але, мабыць, найбольш
кананічна ў php.net.
І вы можаце знайсці там, мноства розных функцый,
і выпадкі выкарыстання і прыклады на прыкладах, выкарыстоўваючы прыклады.
Дзе, калі вы хочаце, каб паспрабаваць высветліць як зрабіць што-то, напэўна,
хтосьці, верагодна, зрабілі гэта перад вамі.
І вы можаце выкарыстоўваць іх у якасці крыніцай натхнення для рэалізацыі ўсё
гэта вы спрабуеце рэалізаваць таксама.
>> Я Дуг Лойд.
Гэта CS50.