[Powered by Google Translate] [Viikko 8, jatkuu] [David J. Malan] [Harvardin yliopisto] [Tämä on CS50.] [CS50.TV] Tämä on CS50, joten tämä on loppuun Viikko 8 täältä. Meillä tietysti oli hieman hurrikaanin aiemmin tällä viikolla, joten nyt se on oikeastaan ​​vain sinä ja minä tässä salissa, mutta tänään jatkamme keskustelua PHP ja noin Web-ohjelmointi yleisesti ja otamme myös käyttöön ajatus tietokantojen, erityisesti yksi nimeltään MySQL, joka on varsin suosittu näinä päivinä, suurelta osin, koska sen skaalautuvuutta sekä koska sen on vapaan ja avoimen lähdekoodin. Mutta ensin katsoa mihin jäimme viime kerralla. Muistutan, että olimme katsot useita Frosh IMt esimerkkejä, ja tämä oli vastenmielinen muoto, että olen päätynyt noin 15 + vuotta sitten saadakseen opiskelijoita kampuksella rekisteri fuksi sisäiset urheilu ei itse tarvitse vaeltaa enää poikki pihan Wigglesworth liukumaan fyysistä paperille alla jotkut Proctor oven. Sen sijaan muutimme kaiken verkossa, mutta tehdä, että meidän piti käyttää Muutaman tekniikoita, joten yksi, tarvitsimme HTML, Hypertext Markup Language, mikä taas on tämän kuvauskieli, jolla voit tehdä web-sivuja rakenteellisesti. Käyttämällä hieman CSS näinä päivinä, css, jolloin käytämme stylizations Web-sivun käyttämällä hieman erilaista syntaksia, taas HTML oli kyse sen rakenne. Meidän on myös otettava käyttöön Web-ohjelmointikielellä. Tässä tapauksessa käytämme PHP ja PHP tulee antamaan meille dynaamisesti tuotoksen sisältöä sekä tehdä ohjelmallinen asioita, kuten lähettää sähköposteja, kuten oli laita huomautuksen lähdimme viime viikolla. Muistuttaa, että koodi oli 2 osassa. Yksi, meillä oli froshims3.php, ja tämä oli pääosin markup kanssa HTML-muodossa sen sisällä, pikkuisen CSS tänne tyyliattribuutteja niin että lomake sinänsä olisi keskittynyt sivulla, mutta pidemmälle meillä oli joitakin edustavia muodossa tuloa, tekstikenttä, valintaruutu, Joissakin radio painikkeet, valitse valikko ja lähetä-painiketta. Ja tällä lomakkeella, jätimme tiedosto oli ilmeisesti nimeltään register3.php, joka itse näytti vähän jotain tällaista. Nyt useimmat koodin register3.php, muistaa, oli kyse sähköpostilla. Se teki hieman validoinnin muodossa toimitettiin varmista että alat todella että odotettiin. Sitten kutsui joitakin PHP toimintoja käyttämällä hieman uutta syntaksia, vaikka se lainattu C. Tämä nuoli operaattori sallii meidän käyttää jotain kutsutaan olio-ohjelmointi. Emme aio mennä, että yksityiskohtaisesti täällä, mutta tiedämme nyt se on tapa, jolla liittyviä toimintoja esineitä, jotka ovat erityinen rakenne, kuten näimme C. Mutta nyt, vain ottaa uskon, että tämä on oikea syntaksi käyttää kun käytetään kirjastoa, kuten tämä phpmailer kirjasto. Ja sitten loppuun tämän tiedoston olimme dynaamisesti sähköpostia että pelaaja lähetti minun jharvard@cs50.net tili minun jharvard@cs50.net tilin, ja me ilmoitti käyttäjä vastaavasti, että ne oli rekisteröity tätä urheilua. Se on melko paljon, mitä Frosh infrastruktuurin sivusto teki vuosia sitten kun toteutetaan sitä, myönnetään eri kielellä, mutta se näyttää ehkä voima, että olet Nyt voit ilmaista itseäsi ei vain ohjelmallisesti alhaisella tasolla kielellä, kuten C, mutta paljon korkeammalle tasolle Näiden hyvin reaalimaailman sovelluksia, kuten sähköpostin todella ratkaista joitakin reaalimaailman ongelmia. Nyt tietenkin, vaikka käytän tätä script luoda joitakin sähköpostit dynaamisesti jharvard@cs50.net, joka on todellakin tili että minulla on pääsy, älä varsin varovainen lähettää mail vain tilejä, jotka ovat todella oman, ettei asiat saavat sinut hieman kuumaa vettä elämässä. Tämän sanoi, katsotaanpa nyt siirtymistä ratkaisemaan toinen ongelma kokonaan, että säilyttää toteaa. Nyt, mitä tämä oikeastaan ​​tarkoittaa? HTTP, tämä Hypertext Transfer Protocol, on todella kansalaisuudeton protokollaa, ja mitä tämä tarkoittaa, että kun vetää jotain Google.com ja sitten enteriä yleensä selaimessasi on jonkinlainen kehruu kuvake sitten tuloksia joissakin sivun latautui, ja sitten se pieni kuvake pysähtyy spinning, ja että todellakin ehdottaa että HTTP on suorittanut jonkinlaisen yhteyden palvelimeen ja se on siinä. HTTP on tilaton siinä mielessä, että se ei yllä jatkuva yhteys palvelimeen samalla tavalla Skype ei tai Gchat tekee, koska HTTP oletus on, että kun olet hakenut sivun siinäpä se. Nyt, todellisuudessa näinä päivinä sivustot, kuten Facebook ja Google Maps ja Twitter ja vastaavat siellä on paljon enemmän dynamiikkaa, jossa senkin jälkeen kuvake pysähtyy kehruu voit itse saada lisää päivityksiä palvelimelta, enemmän tweets, enemmän tilapäivitykset Facebookissa ja vastaavat. Mutta sekin on käyttää tekniikkaa, me puhumme vuonna viikon tai kaksi tunnetaan Ajax käyttäen kieltä nimeltä JavaScript.Lisää mutta lopussa päivä, HTTP on edelleen kansalaisuudeton. Ja vielä jos haluat jotenkin muistaa asioita käyttäjän vaikka he ovat irti palvelimen PHP ei varaa sinulle keino tämän sillä, kuten näimme viime kerralla, PHP on useita Superglobaalit, ja superglobal on jälleen erityisen globaali muuttuja joka on antanut sinulle web-palvelimen ja PHP itse. Sinun ei tarvitse tehdä mitään laittaa arvot siinä, ja joukossa Superglobaalit olemme nähneet tähän mennessä on saada ja lähettää, mikä on kun lomakekenttiä laitetaan automaattisesti puolestasi, sekä pari muuta, jotka emme ole nähneet vielä. Sisältä $ _SERVER joitakin erityisiä liittyviä muuttujia palvelimen itse. Mikä IP-osoitteen, mitä protokollaa, HTTP tai HTTPS käytit, Mitä pyynnöstä menetelmä käytit ja vastaavat, joten on mielenkiintoista, mehukas tietoja palvelimen, ja itse asiassa, käyttäjälle myös siellä. On $ _cookie, mikä on kun nämä asiat nimeltään evästeet tallennetaan. Emme viettää aikaa evästeet itse tänään, mutta tiedämme nyt, että eväste on vain pieni pala tietoa että web-palvelin voi kasvi selaimella ja puolestaan ​​sen RAM tai tietokoneen kiintolevylle tallentaa tietoa käyttäjän, esimerkiksi niiden käyttäjätunnus niin että he eivät tarvitse kirjoittaa sitä joka kerta he kirjaudu sisään tai joissakin yksilöllinen numero tai tunniste, että käyttäjä joten sinun ei tarvitse kiusata niitä samanlaisia ​​kysymyksiä mieltymykset tulevaisuudessa, mutta useimmat kiinnostuksen nyt on $ _SESSION. Tämä superglobal, joka, kuten muut, luovutetaan sinulle automaattisesti PHP Kun olet kirjoittamassa PHP-pohjaisia ​​web-sivustoja voit tallentaa mitä haluat, jouset, kokonaislukuja, kelluva pistettä, arvot, taulukot, esineet, oikeastaan ​​mitään, että haluat, ja sen avulla voit tallentaa sen niin että vaikka käyttäjä vierailee sinua nyt ja sitten tulee takaisin hetken kuluttua tai 5 minuutin päässä nyt, koska he ottavat aikaa ennen kuin klikkaat muu linkki PHP varmistaa, että mitä laitat että istunto superglobal minuutti tai 5 minuuttia sitten edelleen siellä kun käyttäjä palaa. Ja alla huppu tämän superglobal toteutetaan tavalla nuo asiat kutsuttuja evästeitä, mutta nyt se on vain abstraktio jolloin se on tavallaan ohjelmallisen vastaavan ostoskorin. Mitä ikinä, ohjelmoija, laita se superglobal assosiatiivisia array on siellä joitakin useita minuutteja myöhemmin kunnes poistat sen tai kunnes käyttäjä sulkee hänen selain kokonaan. Katsotaanpa katsomaan esimerkki siitä, miten tämä asia on todella käytetään. Vuonna counter.php joukossa Nykypäivän paloja koodi meillä on seuraava rivi. Alussa tämä tiedosto meillä joukko sininen huomautuksia, jotka mielenkiinnoton nyt. Mutta linja 13 meillä on uusi linja, session_start, ja että itse ei mitä se sanoo. Se alkaa istuntoja. Sen avulla voit käyttää, että iso superglobal $ _SESSION, ja se on niin yksinkertaista. Nyt, jos me siirrymme katsomaan linja 16, yritetään selvittää, mitä tällä sivulla aikoo tehdä. Jos (isset ($ _SESSION ["laskuri"]) sitten mennä eteenpäin ja myymälä laskurin muuttujan, pieniä laskuri, $ _SESSION ["Laskuri"]. Tämä näyttää julistaa paikallinen muuttuja nimeltä laskuri jonka sisällä se asettaa kopion mitä on sisällä superglobal kutsutaan istunnon paikka "laskuri". Else, ilmeisesti, tämä pieni paikallinen muuttuja laskuri, alustetaan 0. Mutta sitten muutama rivi myöhemmin 26 ilmoituksessa, että istunto on kopio laskuri, sen avaimen, on uusi arvo sidota mikä on sen käypä arvo plus 1. Lyhyesti sanottuna tämä tiedosto näyttää päivittäminen laskuri, joka tallennetaan sisällä istunnon superglobal inkrementoimalla se 1, mutta se ensin säilyttää kopion edellisestä arvosta tallentamalla se paikallinen muuttuja nimeltä $ laskuri, ja sitten tänne katsotaanpa mitä jää. On käynyt ilmi, se on aika paljon vain HTML. Alareunassa tämän sivun näemme linja 37, että olen käynyt tämän sivuston laskuri useita kertoja, joten siellä pari mielenkiintoisia ominaisuuksia täällä. Yksi, tämä on selvästi vaihteleva, mutta se ei riitä vain laittaa $ Laskuri body HTML takia tietysti jos se on vain siellä joukossa HTML PHP tulee olettaa, että vain HTML. Voit kirjaimellisesti haluavat $ laskuri tulostetaan ruudulle. Vaan pudottamalla osaksi PHP tilaan Tämän pala syntaksin voimme dynaamisesti lisätä arvoa täällä hyvin samankaltainen hengessä mitä teimme viime kerralla lisäämällä arvot jousille. Itse asiassa tämä on vain lyhennetty merkintätapa sanoa jotain tällaista kirjaimellisesti, print ($ counter) tai edes jotain printf (% s, laskuri), tai jopa, kuten ehkä nähneet verkossa tai oppikirjoissa, siellä funktio PHP nimeltään kaiku joka tekee saman asian, ja kaikki nämä ovat vain enää kelalla tapoja sanoa