[Powered by Google Translate] [Viikko 9] [David J. Malan - Harvardin yliopisto] [Tämä on CS50. - CS50.TV] Selvä. Tervetuloa takaisin. Tämä on CS50, ja tämä on alku viikon 9. Tänään keskitytään erityisesti suunnitteluun, ei enää yhteydessä C mutta yhteydessä PHP ja vähän SQL ja vähän JavaScript, erityisesti kohti loppua sekä PSET 7 ja myös oman opinnäytetyön. Itse asiassa, jos olet tuolloin lopullisessa projektissa jossa oletettavasti on tunti tai niin sitten olet ainakin aloittanut pohtimaan lopulliseen projektin ja olet ajatellut haluat tehdä yhteistyötä 1 tai 2 luokkatoverit, Jos sinulla on ongelmia yhteyden kanssa sanoi luokkatoverit, vapaasti täyttää lomakkeen osoitteessa cs50.net/partners/form. Se vain kysyy, kuka olet, mitä projekti olet ajatellut, missä asut vain logistisista syistä. Ja sitten jos haluat pitää silmällä yli ensi viikolla tai niin laskentataulukon URL siellä, voit nähdä vain luku-versiota Google doc jossa olemme tiedonkeruumenettely. Joten jos haluat työskennellä jonkun kanssa, kaikin keinoin rohkeasti tavoittaa ihmisiä kautta, että mekanismi. Mutta suurin osa ihmiset tekevät työtä yksin. Se on täysin kunnossa. Joten älä tunne, että tämä on mitenkään pakollista. Perjantaina se oli vain minä ja muutama joukkue täällä, tyhjä teatteri suurimmaksi osaksi. Siellä oli 3 turisteja istumaan siellä, joten se oli hieman hankala. Mistä puhuimme oli tietokannat ja puhuimme PSET 7 vähän. Ja jos et satut kiinni että video ihan vielä, se on hienoa. Yritän määritellä mitään ehtoja, että me muuten itsestäänselvyytenä perustuu perjantain luento. Mutta tänään aiomme yrittää saada sinut kohtaan ei vain pysty tekemään jotain PSET 7 mutta todella ymmärtää missä mennään alla huppu, erityisesti joitakin abstraktioita, että käyttöön vuonna functions.php tiedosto tehdä elämää vähän helpompaa, mutta niin, että lopulta ymmärrät niin, että kun apupyörät irtoa muutaman viikon voi edelleen hengissä todellisessa maailmassa ja tehdä tätä kamaa ilman CS50 kehyksen alla sinua. Tämä $ _SESSION, niille teistä, jotka ovat tuttuja tai jotka jo kiinni video perjantaina, mitä SESSION tehkäämme in PHP-pohjainen web-sovellus? Tämä on superglobal muuttuja, joka tarkoittaa että se on hengeltään samanlaisia ​​GET ja POST ja muutamat muut, mutta mikä tämä juttu hyödyllinen? Mitä ISTUNTO käytetään? Joo. [Opiskelija] Logging in Anteeksi? [Opiskelija] Logging in Logging in Todellakin. Vuonna PSET 7 käytämme tämän istunnon superglobal helpottaa sisäänkirjautumista Ja mitä mukavaa tästä superglobal on, että se on assosiatiivinen array. Assosiatiivisia array, Recall, on vain erilaisia ​​mutta jonka indeksit ei enää tarvitse olla numeroita kuten 012. Ne voivat olla numeroita tai ne voivat olla jopa merkkijonoja. Joten jos olet sukeltanut PSET 7 vielä, ehkä muistavat, että säilytät avain nimeltä tunnus sisällä tämän assosiatiivisia array jonka arvo on jotain 123 - mitä tällä hetkellä kirjautuneen käyttäjän tunnus on. Motivaatio on se, että senkin jälkeen, kun käyttäjä on vieraillut localhost tai verkkosivuilla yleisemmin ja sitten he ovat kirjautuneena sisään, vaikka ne eivät osoita linkkiä tai palata minun verkkosivuilla 5 minuuttia tai jopa tunti tai jopa päivä, mutta he jättävät selainikkunan auki, tätä kautta superglobal voin muistaa, että he ovat kirjautuneet sisään Toisin sanoen, se antaa minulle mahdollisuuden tallentaa hieman pitkäaikaisen mitä haluan siitä käyttäjälle. Ja voit ajatella sitä todella niin inkarnaatio ostoskorin. Paikoissa, kuten Amazon ilmeisesti voit laittaa asiat oikeisiin ostoskoriin, mutta HTTP-protokollaa, joka antaa virtaa Web, on kansalaisuudeton siinä mielessä, että kun käyt sivustolla, suurimmaksi osaksi sinulla ei ole joitakin vakio verkkoyhteys välillä selaimen ja palvelimen. Heti olet ladannut HTML ja JPEG sekä GIF ja kaikki, yhteys menee pois ja sinulla on vain kopio HTML ja vaikka mitä palvelimelta. Mutta jos palvelin haluaa muistaa jotain sinusta, taakka on palvelin todella tallentaa nämä tiedot. Ja niin sinä ohjelmoija, joka on valvoa palvelimen voi laittaa melkein mitä haluat sisällä tämän superglobal assosiatiivisia array ja se on siellä seuraavan kerran, kun käyttäjä tulee takaisin, onko se minuutin tai jopa päiviä myöhemmin, elleivät he sulkevat selainikkunan jolloin SESSION häviää. Joten se lyhytaikainen varastointi, se ei pysyviä, ja se on tarkoitus mennä pois heti käyttäjä sulkee selaimensa - ei vain kyseisen välilehden, usein koko selaimen, siten tehokkaasti kirjautumassa käyttäjän ulos. Joten miten tämä asia on tosiasiallisesti toteutettu? Otetaanpa vilkaista yksinkertainen esimerkki tutustuimme perjantaina. Niille tunne, se oli niin yksinkertaista kuin tämä. Tämä on web-sivu, jonka ainoana tarkoituksena elämässä on kertoa kuinka monta kertaa olen käynyt tällä sivulla. Tämä on ensimmäinen kerta täällä maanantaina, että kävin sen, niin se sanoo 0 kertaa. Mutta jos aloitan uudelleenlastauksen tämän sivun, sanotaan 1 kerran, 2, 3, 4, 5, ja tämä lopulta vain pitää counting ylös, ylös, ylös, ylös, ylös joka kerta olen itse valitse Reload sitä. Joten miten tämä työ? Anna minun mennä sisälle tämän tiedoston nimeltä counter.php. Yläosa on kaikki sininen kommentteja, mutta mielenkiintoinen osa on täällä. On line 13 me kutsumme tätä toimintoa session_start, ja se on kirjaimellisesti kaiken sinun ei tarvitse tehdä, jos haluat saada tätä erityistä superglobal nimeltään $ _SESSION. Tämä tekee siitä kaiken mahdollisen, ja näemme hetken miten tämä kaikki on mahdollista. Linjassa 16 huomaa, mitä olen tekemässä. Jos avain, jota kutsutaan vasta - toisin sanoen, indeksin arvo - "laskuri" sisällä on tämän array kutsutaan istuntoon, niin mitä teen sen kanssa linjan alla? Mikä on line 18 tekee? [Äänetön opiskelija vastausta] Mikä tuo on? [Opiskelija] tallentaminen arvoa. Hyvä. Se tallennetaan arvo, joka on koolla juuri nyt uuden paikallisen väliaikainen muuttuja, $ Laskuri pieniksi. Huomaa, että PHP on jo nyt hieman laiska tässä. Ilmoitus meillä ei ole mitään mainintaa int tai float tai merkkijono tai jotain sellaista koska PHP on heikosti kirjoitettu, jolloin sinun ei tarvitse määrittää tyypin muuttuja, ja tässä tapauksessa täällä en ole edes ilmoittanut sitä vielä. Olen julistaa sisällä näitä aaltosulkeita ja toisin kuin C, tämä on todella kunnossa. Ei ole väliä kuinka syvästi sisäkkäisiä muuttujan ilmoitus on PHP - sisällä kihara ahdin, sisällä kihara ahdin ja vastaavat - se on sillä hetkellä olemassa jäljellä ohjelman parempaan tai huonompaan. Joten se tulee heti maailmanlaajuinen heti määrittelevät sen teemme täällä. Muuten, jos en löydä että siellä mitään SESSION superglobal, Olen ilmeisesti alustetaan tämän muuttujan laskuri 0, Näin vain olettaen käyttäjä ei ole koskaan ollut täällä ennen. Ja sitten tämä tietysti on inkrementoimalla laskuri miten? Olen päivittää arvon, joka on sisällä tämän assosiatiivisia array asettamalla se sama mikä laskuri hetkellä on + 1. Jos minä selaa täällä HTML sivun, se on oikeastaan ​​aika yksinkertainen. Kaikki olen itse tämän sivun, "Olet käynyt tässä sivustossa niin-ja-niin ajat." Ja tämä on PHP rakennelma. Jos et