[Powered by Google Translate] [Vika 8, Áframhaldandi] [David J. Malan] [Harvard University] [Þetta er CS50.] [CS50.TV] Þetta er CS50, þannig að þetta er endir viku 8 hér. Við að sjálfsögðu var smá fellibylur fyrr í þessari viku, svo núna að það er í raun bara þú og ég í þessum sal, en í dag höldum við áfram samræðum okkar um PHP og um forritun vefur almennt, og við kynna einnig hugmynd gagnagrunna, sérstaklega einn sem heitir MySQL, sem er alveg vinsæll þessa dagana, í stórum hluta vegna sveigjanleika þess ásamt því að þess að vera frjáls og opinn uppspretta. En fyrst að líta á þar sem við var horfið síðast. Muna að við vorum að horfa á nokkrum Frosh Spjallboð dæmi, og þetta var ljót mynd sem ég kom upp með um 15 + árum í því skyni að hafa nemendur á skrá háskólasvæðinu fyrir freshman intramural íþróttum án þess í raun að þurfa að Trek aftur yfir garðinn til Wigglesworth að renna líkamlega stykki af pappír fyrir neðan dyrnar sumir Proctor er. Í stað þess að við fluttum allt á netinu, en til að gera það sem við þurftum til að nýta á nokkrum tækni, svo einn, þurftum við HTML HyperText Markup Language, sem er aftur þetta Markup Language sem þú gera vefsíður byggingu. Using a hluti af CSS þessa dagana, Cascading Style Sheets, þar sem við notum stylizations á vefsíðu með því að nota örlítið mismunandi setningafræði, en HTML var allt um uppbyggingu hennar. Við þurfum einnig að kynna forritun vefur tungumál. Í þessu tilfelli, munum við nota PHP og PHP er að fara að leyfa okkur við breytilega framleiðsla innihald eins og heilbrigður eins og gera programmatic hluti eins senda tölvupóst, eins og raunin var í huga við fórum í síðustu viku. Muna að kóðinn fyrir þetta var í 2 hlutum. Einn, höfðum froshims3.php, og þetta var að mestu Markup með HTML formi inni í honum, örlítið hluti af CSS upp hér í stíl eiginleika þannig að formið sjálft ætti að vera fyrir miðju á síðunni, en umfram það sem við fengum fulltrúa inntak mynd, textabox, fyrir gátreitinn, sumir útvarp hnappur, a velja Valmynd, og gefast upp hnappur. Og í gegnum þetta form, lögð við að skrá var greinilega heitir register3.php, sem sjálft horfði smá eitthvað eins og this. Nú, af kóða í register3.php, muna, var allt um tölvupóst. Það gerði smá staðfestingu á því formi sem send var til að tryggja að reitir voru í raun enda var gert ráð fyrir. Síðan við kölluðum nokkrar PHP aðgerðir með örlítið nýja setningafræði, jafnvel þó það sé fengið að láni frá C. Þessi ör stjórnandi gerir okkur kleift að nýta sér eitthvað sem kallast hlutbundin forritun. Við munum ekki fara inn í að í öllum smáatriðum hér, en veit nú það er leið til að hafa störf í tengslum við mótmæla, sem eru sérstök tegund af uppbyggingu, eins og við sáum í C. En nú, bara taka á trú að þetta sé rétt setningafræði til að nota þegar bókasafn svona PHPMailer bókasafn. Og þá með því að í lok þessa skrá við höfðum dynamically mynda tölvupóst sem fékk sent til jharvard@cs50.net reikninginn minn af reikningi jharvard@cs50.net mínum, og við upplýst notandann í samræmi við það sem þeir höfðu verið skráð fyrir þessa íþrótt. Það er ansi mikið hvað Frosh Spjallboð síða gerði öll þessi ár síðan þegar ég framkvæmda það, veitt á öðru tungumáli en það sýnir þér kannski vald sem þú hefur nú að þú getur tjáð þig ekki bara kerfisbundið á lágu stigi í tungumáli eins og C, en á mun hærra stigi með þessum mjög raunverulegur veröld umsókn eins og tölvupóst til raunverulega leysa nokkur raunveruleg vandamál heimsins. Nú, auðvitað, jafnvel þó að ég nota þetta handrit til að búa sumir tölvupósti virk frá jharvard@cs50.net, sem er örugglega reikning sem ég hef aðgang að, ekki vera alveg varkár að senda mail aðeins frá reikningum sem eru í raun eigin, svo það fá þig í smá heitu vatni í lífinu. Með því að segja, við skulum nú umskipti til að leysa mismunandi vandamál að öllu leyti, að við að halda ríkjum. Nú, hvað þýðir þetta í raun? HTTP, þetta HyperText Transfer Protocol, er í raun ríkisfangslaus siðareglur, og hvað þetta þýðir er að þegar þú draga upp eitthvað eins og Google.com og högg koma inn í yfirleitt hefur vafrinn þinn einhvers konar spuna táknið sem þá Niðurstöður í sumum vefsíðu vera sótt, og þá hættir að litla táknið spuna, og það vissulega bendir að HTTP hefur lokið einhvers konar tengingu við miðlara og það er það. HTTP er án ríkisfangs í þeim skilningi að það er ekki að viðhalda viðvarandi tengingu við miðlara á sama hátt Skype gerir eða Gchat er því með HTTP Gert er ráð fyrir að þegar þú hefur sótt á vefsíðu sem er það. Nú, í raun þessa dagana á síðum eins og Facebook og Google Maps og Twitter og eins og það er mikið meira kraftur þar jafnvel eftir að tákn hættir snúast hægt í raun að fá fleiri uppfærslur á miðlara, fleiri kvak, fleiri stöðuuppfærslur á Facebook og þess háttar. En jafnvel það er að nota tækni sem við munum tala um í viku eða tvær þekktur sem Ajax með tungumál sem heitir JavaScript, en í lok dagsins, HTTP er enn ríkisfangslaus. Og enn ef þú vilt einhvern veginn að muna hluti um notanda jafnvel eftir að þeir hafa ótengdur frá miðlara PHP er veita þér leið til að gera þetta vegna þess, eins og við sáum síðasta sinn, PHP hefur a tala af superglobals, og superglobal er aftur sérstakt alþjóðlegt breytu sem er afhent til þín frá the vefur framreiðslumaður og PHP sjálft. Þú þarft ekki að gera neitt til að setja gildi í það, og meðal superglobals við höfum séð hingað til eru fá og senda, sem er þar sem svæðin eru sett sjálfkrafa fyrir þig, og a par af öðrum sem við höfum ekki séð enn. Inni á $ _server eru nokkrar sérstakar breytur sem tengjast þjóninum sjálfum. Hvað er IP tölu, hvaða siðareglur, HTTP eða HTTPS did þú notar, Hvað beiðni aðferð notaðirðu og þess háttar, þannig að það er nokkrar áhugaverðar, safaríkur upplýsingar um miðlara og í raun, the notandi í there eins og heilbrigður. Það er $ _cookie, sem er þar sem þetta kallast smákökur eru geymdar. Við munum ekki eyða tíma í fótspor sig í dag, en veit nú að kex er réttlátur a lítill stykki af upplýsingar að vefur framreiðslumaður geta planta á a vefur flettitæki og síðan RAM þess eða hörðum diski tölvunnar sinnar að geyma upplýsingar um notendur, til dæmis, notandi nafn svo að þeir þurfa ekki að slá það inn í hvert sinn sem þeir skrá þig inn eða einhvern einstök númer eða auðkenni fyrir að notandi þannig að þú þarft ekki að pester þá með sams konar spurningum um óskir í framtíðinni, en af ​​áhuga núna er $ _SESSION. Þetta superglobal, sem, eins og aðrir, er afhent til þín sjálfkrafa með PHP þegar þú ert að skrifa PHP-undirstaða websites getur geymt allt sem þú vilt, strengi, heiltölur, fljótandi stig, gildi, fylki, hlutir, virkilega eitthvað sem þú vilt, og það gerir þér kleift að geyma það á þann hátt að jafnvel þó að notandinn heimsækir þig nú og þá kemur til baka í eina mínútu frá nú eða 5 mínútur frá núna vegna þess þeir taka tíma áður en að smella einhverjum öðrum link PHP mun tryggja að allt sem þú setur í þeim fundi superglobal mínútu eða 5 mínútur síðan mun enn vera þar þegar notandi skilar. Og undir hetta í superglobal er hrint í framkvæmd með því að þessir hlutir kallast kex, en nú er það bara abstrakt þar sem það er tegund af forritanlegur nemur innkaupakörfu. Hvað sem þú, sem forritari, setja í það superglobal tengin array verður einhver fjöldi af mínútum síðar til að eyða því eða þar til notandinn hættir sitt vafranum öllu. Við skulum taka a líta á dæmi um hvernig þetta er í raun notað. Í counter.php meðal stykki í dag af kóða við höfum eftirfarandi línu. Í upphafi þessa skrá við höfum fullt af bláum athugasemdir, sem uninteresting nú. En í samræmi 13 við erum með nýja línu, session_start, og sem í raun er einmitt það sem það segir. Það byrjar fundur. Það gerir þér kleift að nota þessi stóru superglobal $ _SESSION, og það er eins einfalt eins og þessi. Nú, ef við höldum áfram að líta á línu 16, við skulum reyna að reikna út hvað þessi vefsíða er að fara að gera. If (isset ($ _SESSION ["gegn"]) þá fara á undan og geyma í gegn breytu, lágstafir gegn, $ _SESSION ["Gegn"]. Þetta virðist vera að lýsa staðbundna breytu sem heitir gegn inni þar sem það er að setja afrit af hvað sem er fyrir innan superglobal kallast fundur á staðsetningu "gegn." Annars virðist,, þetta litla staðbundna breytu gegn er frumstilla í 0. En þá nokkrar línur seinna í 26 eftir því að afrita fundur um gegn, lykillinn, hefur nýtt gildi úthlutað sem er núverandi gildi þess auk 1. Í stuttu máli, þessi skrá virðist vera að uppfæra teljari sem er geymd inni í setu superglobal með incrementing hana um 1, en það heldur fyrst afrit af fyrra gildi með því að geyma það í sveitarstjórn breytu sem heitir $ gegn, og þá niður hér skulum sjá hvað er. Það kemur í ljós að það er ansi mikið bara HTML. Neðst á þessari síðu sjáum við í línu 37 sem ég hef heimsótt þessa síðu gegn nokkrum sinnum, þannig að það er a par áhugaverðar aðgerðir hér. Einn, þetta er greinilega breytilegt, en það dugar ekki bara að setja $ Gegn í meginmál HTML því auðvitað ef það er bara þarna á meðal HTML PHP er að fara að gera ráð fyrir það er bara HTML. Þú vilt bókstaflega $ gegn að prenta á skjánum. En í stað með því að sleppa í PHP ham með þessu stykki af setningafræði getum við breytilega setja gildi hér mjög svipuð í anda við það sem við gerðum síðasta tíma með setja gildi inn í strengi. Í raun er þetta bara skammstöfun fyrir að segja eitthvað eins og þetta bókstaflega, prenta ($ gegn) eða jafnvel eitthvað eins og printf (% s, gegn) eða jafnvel, eins og þú gætir hafa séð á netinu eða í kennslubókum, það fall í PHP heitir echo sem gerir það sama, og allir þeirra eru bara lengur winded leiðir að segja