[Mūzikas atskaņošanai] DAVID J. Malan: Nu labi. Laipni lūdzam atpakaļ. Tas ir CS50. Tas ir beigas 8. nedēļā. Un, kā jūs zināt, mēs esam diezgan regulāras biroja stundas maz no ēdamzāles, ieskaitot Annenberg. Un daži no komandas laipni paņēma dažas fotogrāfijas pēdējā. Un par godu Halovīni, mēs domājam, ka mēs gribētu dalīties ar vienu, nevis nozvejotas mums pa pārsteigums šeit Annenberg zālē tikko citiem nakts. Tavs klasesbiedrs Jacob pozējusi šo fotogrāfiju, bet bija vairāk uzjautrinoši bija par Facebook, sekojošā saruna, kas notika pēc tam. Viņa pirmā post atbildes viņa foto bija šī. Dažas minūtes vēlāk, viņš nolēma vienu līdz pašam ar to. Tas devās, tad lai iet uz to, un pēc tam, pat vēl Saistošs ir tad, kad viņa mamma chimed. Un tad galu galā, šķiet, ka tas bija tikai brīnišķīgi viltība, lai spēlē, kas notiek. Tātad, ja jūs vēlētos redzēt Jēkabu un citus, vidū Cynthia Men, kurš ir aizkulisēs CS50 zonas darbiniekiem, dodies uz šo URL, un šajā spēlē šeit. Tātad bez papildu ADO, šodien mēs turpināt šo ieskatieties web programmēšana, un faktisko izveide programmu ka neskrien pie sava komandrindas, bet tā vietā darbojas iekšpusē pārlūku. Jādomā tagad, vai ļoti īsi, jūs gatavojas būt vidū īstenošanas savu web serveri, kas atšķiras no web programmēšanu. Tīmekļa serveris pset6 ir visu par rakstīšanas programmatūru, kas zina, kā to lietot HTTP pieprasījumus no pārlūka, vai pat no jums, cilvēku, ar programmu, ko sauc Telnet, un tad atbildēt uz šiem lūgumiem, vai nu ar spitting veic HTML failu, vai jpeg vai gif, vai pat php fails. Bet ar web serveri, tas nav vajadzēja tikai atvērt PHP failu, kaut kas beidzas php, un tad izspļaut saturu. Tā vajadzēja darīt ko šo failu pirmo? Lai runāt. Nav apkopo to, mēs teicām pirmdien, bet rather-- Tātad, interpretēt. PHP ir interpretējama valoda, un tā viena no galvenajām iezīmēm, kas savā tīmekļa serveri, lai gan īstenota ar mums, ir šī spēja, lai jūsu tīmekļa servera lai paziņojuma, oh. Šis ir fails beidzas ar php. Ļaujiet man ne tikai to nosūtīt uz lietotājs kā tas ir statisks saturu, bet man lasīt to līniju, ko līnija, kreisās uz labo, un interpretēt to. Un ko darīt, ka jums puiši būs būtībā punt uz programmu ierīces, un par daudz datorsistēmām, tikai sauc PHP. Tas ir nosaukums PHP Valoda pašas tulks. Tā, ka gabals mēs īstenot tu, un to, kas palicis pāri, lai jūs, galu galā, ir skaitlis gabalu, kuru vidū īsteno atbalstu statiskai saturu. Bet tagad, un ar Problēma noteikti septiņi, tu esi gatavojas sākt pāreju uz faktiski rakstot PHP kodu kas izpaužas interpretējusi kas runā ar muguras beigās datu bāze, kurā glabājas informācija. Tātad pieņemsim labāk saprast vispirms pāris no šiem superglobals un cik daudz enerģijas jūs izkļūt no kastes bez maksas ar valodu, piemēram, PHP. Things jums nav īstenot sevi. Tātad, mēs redzējām pirmdien $ _GET, kas ir superglobālajiem, kas ir tikai PHP runā par globālo mainīgais jūs varat piekļūt jebkurā vietā. Un, kas ir iekšā _GET un $? Kas ir iekšā tas superglobālajiem, ko mēs redzam? Protams, statistiski at Vismaz viens cilvēks zina. Kas ir iekšā _GET of $? Yeah? Mērķauditorija: Tas ir mainīgie jūs likts vaicājuma virknes. DAVID J. Malan: Perfect. Tas ir mainīgie jūs īstenot vaicājuma virknes. Tātad, mūsu vecāku piemērs reimplementing Google, kad mums bija URL, un tad jautājuma zīme, kas norobežo sākumu HTTP parametri, tad mums bija q vienlīdzīgu kaut kas, piemēram, Q ir vienāds kaķi, kāda būtu automātiski iet iekšā no ka $ _GET super globālā jums, jo PHP, ir atslēga Q, un tās kaķiem vērtības. Citiem vārdiem sakot, $ _GET un visiem šīs lietas ir asociatīvas bloki, hash tabulas veidu, ka uzglabāt atslēgas un vērtības. Tagad, atpakaļ pset5, hash galda jūs varētu esam ieviesuši vai jūs mēģināt varētu ir īstenotas, tiešām bija faktiski asociatīvais masīvs, datu struktūra kurā jūs varat saistīt taustiņi ar vērtībām. Bet pset5, vērtības bija triviāla. Vērtība būtībā bija patiess vai nepatiess. Vai vārds vārdnīcā? Tātad, ja jūs sajaukts vārdu, piemēram, ābolu lai redzētu, vai ābols ir vārdnīcā, Jūsu pārbaudes funkcija, iespējams, atgriezās patiess vai nepatiess. Tātad, tas ir efektīvi vērtība, mēs esam nonākuši atpakaļ. Bet mēs redzējām pirmdien īsi, jūs noteikti var piesaistīt vairāk interesanti vērtības nekā tikai patiess vai nepatiess ar taustiņiem, piemēram, ābolu. Jūs faktiski varētu atgriezties patvaļīga stīgu, un, protams, tas ko $ _GET un šie pārējie mainīgie ļauj jums darīt. Tātad $ _POST ir līdzīgs garā, bet, ja jūs iesniedzat veidlapu pa pastu, atšķirīgs HTTP metodi, kas ir lietot, piemēram, kredītkartes, un privāto informāciju, un pat bināro informāciju, piemēram, fotoattēlus, šīs lietas galu galā iekšpusē $ _POST. Un faktiski failus piemēram, JPEG un plauktiņš, tur pat citu, kas nav šeit sauc $ _FILES kā labi. Tātad, serveris mēs ne aiztures par pārāk daudz, bet tas dod jums piekļuvi kārtot no zemāka līmeņa informāciju par serveris pats, ka jūs izmantojat. Cookie un sesijas, lai gan, mēs faktiski redzēt tagad. Pēdējais ir tas, ko mēs izmantojam, lai īstenotu jēdziens iepirkumu grozā. Super vienkāršs, taču atsaukšana ka mums bija šo piemēru šeit skaitot, cik reizes jūs bija apmeklējuši šo lapu iepriekš. Bet šodien, nevis tikai apskatīt efekts šo, pieņemsim atvērt Chrome inspektors, ko jūs parasti var darīt ar tiesības noklikšķinot vai kontroles noklikšķinot jebkurā vietā uz mājas lapā, un pēc tam izvēlēties pārbaudīt elementu. Vai arī jūs varat iet caur izvēlnēm ka mēs aprakstīt pset6 s spec. Un es esmu gatavojas cilni Network šeit, un pieņemsim skatīties uz brīdi HTTP satiksmes, kas ir iet uz priekšu un atpakaļ. Ļaujiet man vispirms iet uz priekšu un skaidrs, Chrome kešatmiņu. Tāpēc daži no jums varētu būt pazīstams ar šo metodi jau un mēs esam gatavojas izmantot to atkļūdošanas vajadzībām šeit. Tagad mēs kā datora zinātnieki gatavojas sākt darot debugging mērķiem, kuru mēs iztīrītu kešatmiņu, parasti, lai mēs var atbrīvoties no lietām, ko sauc cepumi. Tātad, jūs, iespējams, ir pazīstami ar to, sīkdatnes ir, vai vismaz ka tie pastāv, bet to, kas ir Jūsu izpratne par tiem, kā tikai lietotājs datori, kas ir cookie? Yeah. Mērķauditorija: Tas ir mazliet of-- labi, ne bitu termiņu datorzinātnēs. Tā ir datu vienība, kas mājas lapa sūta pie jums, lai lai varētu ierakstīt statistiku par jums. DAVID J. Malan: Labi, labi. Tātad, tas ir datu vienība, kas serveris, liek uz sava datora, un pieņemsim vispārināt to vēl vairāk, tas ir galvenais value-- labi, kas kļūst precīzāks. Tas ir gabals informācijas, datu vienība, ka serveris ir spējīgs likt datorā un ļoti bieži, serveris nav tas tā, lai atcerēties, kas jūs esat. Tātad, piemēram, izredzes Ir jūs, iespējams, pieteicies vietnēs, piemēram, Facebook, vai Gmail vai citiem agrāk, un jūs pieteikties ar savu lietotājvārdu un paroli, un pēc tam pēc tam, kādu numurs minūtes vai stundas vai pat dienas, serveris atceras, ka Jums ir, faktiski, pieteicies. Tagad, kā tas, ka patiesībā notiek? Tāpēc, ka jūs, protams, nav pārrakstīšana Jūsu lietotājvārds un parole katru reizi Jūs virzītos uz citu lapu Facebook. Tātad izrādās, sīkdatnes ir atbilde. Cookie, jūs varat iedomāties, kā, Veida, piemēram, digitālo roku zīmogs, ka jūs varētu saņemt pie rokdarbiem parkā vai klubs, kas būtībā norāda, ka jūs esat bijis šeit pirms, un jūs esat jau pierādījusi savu ID uz apsargu, lai Piemēram, un ka klubs vai parks Tagad vajadzētu pieņemt, ka jums jau ir autentiskums. Jums jau ir noteikti ar to. Tātad ar šo prātā, pieņemsim atvērt skaitītāju šeit. Ļaujiet man iet uz priekšu, es tikai darīju, un skaidrs visas manas cookies. Un tagad to, ko es esmu gatavojas darīt, ir turiet Shift, tikai labu pasākumu, un varu pārlādēt lapu. Shift tikai pārliecinieties ka nekas izpaužas kešatmiņā. Un šeit ir pieprasījums kas gāja uz priekšu un atpakaļ. Tātad vairāk nekā šeit mums ir lūgums, un ļaujiet mani tuvinātu leju šeit, un daudz no tā ir sava veida neinteresantas ziņas par tagad, ka pārlūks ir automātiski nosūtīts, bet pieņemsim noklikšķiniet uz Skats Avots redzēt izejas galvenes. Un, ja jūs esat ienira pset6 jau jūs noteikti atpazīt lietas kā šis, un varbūt daži Šo citām līnijām šeit, bet to, kas ir vairāk interesants šodien ja es ritiniet uz leju, nevis uz lūgumu bet tā saukto atbildi, šī līnija, iespējams, izskatās pazīstams. Tas ir laba lieta ja redzat 200 OK. Acīmredzot tas ir datums un laiks uz servera un tur ir ķekars sīkumi. Ak, tas ir interesanti. Izrādās, kad jūs izmantojat PHP, vismaz šajā serverī, serveris atklepo kādi versija PHP jūs izmantojat. Kas, patiesībā, drošības nolūkos, nav laba lieta. Bet, mēs atgriezties, ka kādu citu reizi varbūt. Bet tagad tas ir sulīgs līnija šodien un mēs redzējām īsi daži no tiem, Es domāju, ka ar Facebook, kad mēs izbāza ap inspektors tajā laikā, komplekts cookie ir tas, ko iestāda ka maz informācijas vienību uz sava datora. Tas ir HTTP galvenes tas ir efektīvi stāsta jūsu pārlūkprogrammā, Chrome, IE, neatkarīgi, hey pārlūkprogramma veikalā uz lietotāja cietais disks, vai lietotāja RAM, atslēgu sauc PHPSESSID, kas ir stenogrāfija nošu sesijas ID, un piešķir tai vērtību 0vlk8t, dot, dot, dot. Tiešām sen pseido izlases burtciparu virkne. Tas ir tikai ļoti liels skaitlis, bet tas ir kodēti ar burtiem un cipariem tā, ka izmērs no tā var būt pat lielāks nekā skaitļiem vien. Un tad, starp citu, Path = /, ka nozīmē tikai to, ka šis cookie jābūt kas saistītas ar veselums mājas lapā, ne tikai konkrēts lapa viss. Tātad tas, ka virtuālā roku zīmogs. Tas ir tā, it kā serveri, Facebook, vai mūsu gadījumā ierīces, ir burtiski rakstīts 0vlk8t un tā tālāk, no jūsu puses. Ievērojiet, kāda servera, nedara ir tas nav uzglabājot savu lietotājvārdu, protams, neuzglabāšana savu paroli. Tā vietā, šķiet, ir uzglabājot pseido izlases informāciju tā, ka neviens nevar uzminēt, kāds ir mans roku zīmogs ir. Uz servera pusē, tikmēr, serveris gatavojas atcerēties, iespējams datu bāzē vai kaut ko, ka lietotājs, kurš nākotnē piedāvā roku zīmogu 0vlk8t, dot, dot, dot, būtu saistīta ar šo īpaši iepirkumu grozs, lai runāt. Citiem vārdiem sakot, ja es tagad iet atgriezties šeit un pārlādēt šo lapu, kā tas serveris zina ka es apmeklēju vienu reizi? Vai, ja es varu to darīt atkal, kā tas serveris zinu, ka es esmu apmeklējis to divas reizes? Nu, ja es eju uz leju, lai šo pēdējais pieprasījums, kas tagad ir trešais, ka es esmu nosūtīts kopumā, ievērosiet manu lūgumu tagad. Joprojām šis pieprasīt šeit, pats kā līdz šim, tur ir vēl vesels bars sīkumi, ka mēs esam ignorēt kā agrāk, bet ļoti pēdējais header, šis laiks, jo es esmu bijusi šeit pirms, ir prezentācija Šī virtuālā roku zīmogu. Saskaņā ar kuru šī līnija šeit, nav noteikts cookie bet cookie resnās PHPSESSI = 0vlk8t, tas ir tikai mans pārlūks automātiskā prezentācija šo roku spiedoga arī tā, ka Tagad servera, tiklīdz tas saprot, ooh, tas ir lietotājam 0vlk8t dot, dot, dot, Tagad es varu atcerēties, kas viņš vai viņa ir un reassociate ar šo lietotāju neatkarīgi informācija, es gribu, un visi minētā informācija var tikt saglabāti ar jums, programmētājs, kas $ _SESSION. Tātad, lai būtu skaidrs, ja es atvērt nekustamo ātri ar gedit ka faktiski failu, counter.php, manā vietējā uzņēmēja publisko direktoriju kā iepriekš, paziņojums, ka, patiešām, Es galu galā uzglabāt $ _SESSION Quote likt pēdiņas beigās "skaitītājs" vērtība no iepriekšējā skaitītājs, kas Man no šīm līnijām šeit, ka mēs paskatījos pēdējo reizi plus viens. Tātad, zem motora pārsega, tās ir visas sīkdatnes ir. Tā ir tikai sava veida digitālo rokas zīmogs iet uz priekšu un atpakaļ, un godīgi sakot, ja jūs atvērt Chrome Inspektoram par jebkuru mājas lapā jūs apmeklējat šodien, ar super liela varbūtība, jūs gatavojas redzēt, varbūt vienu, varbūt pusduci cepumi to atceras ar jums. Un vēl sliktāk, ja tie mājas lapas tu apmeklē visiem ir reklāmas, kas noteikti ir diezgan bieži šodien, un ja šie reklāmas nāk no dažām centrālās partijas, kāds piemēram, Google AdWords, vai, kā viņi zvanīt vienu no saviem produktiem vai citas šādas pārdevēji, kas pārdot reklāmas, kas ir interesanti, un godīgi sakot, kas ir nedaudz satraucoša, par to, kā HTTP darbojas, ir tas, ka, ja jums ir reklāma iestrādāta in Facebook.com, un Google.com, un Harvard.edu, jebkurš skaits mājas lapas, tāpēc tas ir tik ka tur vidū cilvēks, kurš kalpo up reklāmas visiem trim no šīm tīmekļa vietnēm, izrādās, ka sīkdatnes ir par vienu domēnu. Tātad, ja jums ir reklāma nāk no pats uzņēmums dažādās tīmekļa vietnēs, ka uzņēmums var efektīvi izsekot kurš Jums ir pāri visām šīm vietnēm. Harvard varētu nezināt tu apmeklē Facebook. Facebook varētu nezināt, un tu apmeklē Harvard. Bet neatkarīgi no reklāmas pakalpojumu viņi izmanto, ja šis domēns ir klāt gan Harvard.edu tīmeklī lapas un Facebook.com tīmekļa lapas, šis vidū cilvēks, protams, zina, kas jūs esat jo šie cepumi tiek dalīta pāri, vai drīzāk, ka tā saukto starpnieks. Tātad mēs būsim atpakaļ uz šo drošības problēmas un to daļas bet tur ir daudz informācijas tiek glabāti par jums jebkurā laikā jūs apmeklēt visvairāk jebkuru interneta lapu par internets un tas tiešām samazina šo ļoti vienkāršu mehānismu. Kas notiek tad, ja tu esi super paranoiķis un jūs nolemjat doties uz Chrome vai IE vai kāds un izslēdziet sīkfailus? Kas notiek? Yeah? Tu really-- jūs esat darījuši šīs tiesības? OK. Nē, iet uz priekšu. Mērķauditorija: Dažas mājas lapas nav funkcija bez tā, piemēram, Facebook. DAVID J. Malan: Jā! Tātad dažas mājas lapas vienkārši pārtraukt darboties. Un vairumā tīmekļa vietnēs šajās dienās kas būtiski paļauties uz cookies, it īpaši, ja tie ir piesakāties in, viņi tikai gatavojas, lai izjauktu. Jo uzskatu, alternatīva, ja mājas lapa nekādi nevar atcerēties, kas jūs esat, un tāpēc jūsu interneta pārlūkprogramma nav pārstāv ar katru HTTP pieprasījuma šo roku zīmoga, efektīvi mājas lapa piemēram, Facebook Going ir lai pateiktu pieteikties katru nolādēto reizi maināt lapas, vai noklikšķiniet uz saites, kas protams, nav īpaši laba lietotājs pieredze. Tāpēc, ka tur arī ir vidū kompromisus. Tātad bez papildu ADO, pieņemsim par pašsaprotamu, ka ar web programmēšana, valodās, piemēram, PHP, jūs varat atcerēties informācija, piemēram, ka problēma noteikti septiņi, ja jums īstenot savu E * Trade-piemēram, tīmekļa vietnes, ar kuru pirkt un pārdot krājumus, jūs atceraties, tieši ko lietotājs ir nopircis un pārdevis un kas viņš vai viņa ir veidā šīs sesijas. Bet mēs ejam uz nepieciešamību mīļotājs veids nekā e-pastu sākt saglabājot informāciju apkārt. Taisnība? Pirmdien, mēs runājām par Frosh IP un kā versijā vienu no šīs mājas lapā, gadus atpakaļ, viss, ko mēs darījām, bija e-pastu Proctor, kurš ir atbild par klātienes sporta programma, nosaukumu, un dzimums, un vai viņi kapteinis un kopmītnes par kādu, kas ir reģistrējoties par klātienes sportu. Tātad, tas nav slikti, bet viņš vai viņa pēc tam bija trollis ar savu e-pastu, padarīt izklājlapu vai kaut kas tamlīdzīgs ka, lai saglabātu visu organizēt. Tātad, protams, mēs kā programmētāji var izdarīt par šo Proctor. Un tā ieraksta SQL, Strukturēta vaicājumu valoda, kas gatavojas izskatās diezgan atšķiras gan C un PHP, un jūs nirt daudz vairāk rokas PHP un problēma noteikti septiņi, bet arī SQL, vai SQL, tā ir valoda, kas jūs izmantojat, lai runātu ar datu bāzi. Bet to, kas ir datubāze? Nu jūs domājat par datu bāze, vismaz pagaidām, kā tikai to, piemēram, Excel failā, vai ja esat Mac lietotājs a numuri fails, vai arī, ja esat Google Apps lietotāja Google izklājlapu, tas faktiski datu bāzē, vai tiešām īpaši relāciju datu bāzi. Relāciju datu bāzes ir tikai kaut kas ir rindas un kolonnas, un jūs varat uzglabāt jebkura veida informācija šajās rindās vai kolonnas. Bet kas ir jauka par SQL, un par faktisko datu bāzēm, ne tikai izklājlapas vai Google izklājlapas, ir tas, ka jūs varat izmantot valodu faktiski izpildīt vaicājumus, lai ievietot datus, lai noņemtu datus, meklēt datiem, pat vissvarīgāk, un jums nav to izmantot diezgan manuāli Kā jūs varētu parasti Google izklājlapu kā šis. Tātad SQL, tur ķekars fundamentālas paziņojumus vai gabali funkcionalitāti celta. Tur ir daudz vairāk, nekā tiem, bet jūs varat iet milzīgu attālumu vienkārši zinot, ka šo valodu sauc SQL ir vismaz četri paziņojumi jūs varat sviras. Dzēst, noņemšanai datus Ievietot, pievienot rindas, Atjauninājums, mainīt rindas, un izvēle, lai iegūtu atpakaļ rindas un tas ir patiešām tas, ko SQL dara. Tas darbojas tikai uz rindās tik ka, ja jūs ievietot, vai noņemt, vai atjaunināt, vai izvēlieties to, kas jūs esat saņemt atpakaļ kā tā saukto rezultātu kopu, piemēram, masīvu rindās. Rindu ķekars no galda. Tātad, atpakaļ dienā, un pat līdz šai dienai, Jūs varat sazināties ar datu bāzē, izmantojot komandrindu, bet tas nav īpaši jautri, lai izmantotu šī melnā un baltā stils logs un faktiski izpildīt komandas un kule ap jūsu datu bāzē. Grafiskā lietotāja saskarne, vai GUI, ir daudz labāka, varbūt, un tā instrumentu mēs iesakām un instalēta jums uz ierīces sauc phpMyAdmin. Tas ir kopējais nejaušība, ka nosaukums šī lieta ir PHP tajā, tas tikai nozīmē, ka cilvēki kurš rakstīja šo programmu sevi rakstīja to PHP. Bet tas ir galu galā par administrēšanu datu bāzes servera, piemēram, MySQL serveri kas jums varētu būt, jo jūs darīt, jo CS50 ierīces. Tātad tur ir sīkāk šeit nekā mums ir nepieciešams rūpēties par šodienu, bet to, kas ir galvenais ir tas, ka pa kreisi labajā pusē ir saraksts ar datu bāzēm ka jums ir uz jūsu datora, Jūsu CS50 ierīces, vai nāk gala projektus, kas jums varētu ir uz trešo pusi, uzņēmuma mājas lapā vai tīmekļa servera, ka jums varētu būt jāmaksā par telpu. Tā tālāk pa kreisi ir datubāzes, no kuriem viens ir pset7 ko es aizņēmās no nākamā nedēļas PSET, un pēc tam uz augšu tur paziņojums tur ķekars cilnes, no kuriem viens ir datu bāzes, SQL, statuss, lietotājiem, eksports un tā tālāk. Tātad jūs varat doties ilgi veids, tikai realizējot ka lielākā daļa no lietotāja interfeisa ir augšējā kreisajā slejā un augšdaļā tiesības uz augšu tur. Tātad, ko mēs varam reāli darīt ar šo? Nu, sāksim veidot bitu informācijas šādi. Pieņemsim, ka šādu gadījumu, kā būs tikai dažas dienas, Jūs vēlaties, lai īstenotu mājas lapa, ko sauc CS50 Finance, un šī tīmekļa vietne ļauj jums iegādāties Citējot likt pēdiņas beigās un pārdot krājumus. Un tas notiek, lai noskaidrotu šo krājumu cena, galu galā, kā jūs redzat, runājot ar Yahoo Finance. Kas, lieliski, ir bezmaksas pakalpojums kurā jūs varat iet ar akciju biržas tāpat GOOG Google, un tas būs jums atpakaļ Google krājumam cena ietvaros pagātnē Dažas minūtes vismaz. Tātad jūs izmantojat, ka, galu galā, izlikties lietotājam pirkt un pārdot faktisko krājumi, izmantojot virtuālo naudu, bet pati pirmā lieta lietotājs gatavojas redzēt tas pieteikšanās ekrāns, kas lūdz tos par savu lietotājvārdu un paroli. Un tā, kas ir viens no pirmā problēmas, lai jūs pset7 būs īstenot atpakaļ beigām datubāzi, izklājlapu ja jūs, kas notiek, lai saglabātu lietotāju vārdus un paroles un galu galā, ko krājumi viņiem pieder, un cik daudz un cik daudz naudas viņi ir, tāpēc ķekars citas lietas citi galdi, vai izklājlapas. Tātad, pieņemsim to apskatīt, kā šī varētu šķist no pirmā acu uzmetiena. Es esmu gatavojas doties atpakaļ uz ierīces un es esmu gatavojas doties uz šo URL šeit phpMyAdmin localhost / phpmyadmin un jūs redzēsiet, ka tas ņem mani uz interfeisu tieši tā, kā mēs redzējām ekrānuzņēmums, un šeit es ir papildu datu bāze aicināja lekcija šodien un ļaujiet man iet uz priekšu Pirmais un noklikšķiniet uz pset7. Man šķiet, ir pāris iespējas, viena jauna, lai izveidotu jaunu tabulu, un saite uz lietotājiem, kas ir tabula man jau izveidojis. Tātad, kas ir galds? Tātad, ja tu izmanto Excel agrāk, un, ja jūs esat Lietoti numuri vai Google Tabulas, jūs atvērt logu un jūs saņemsiet visu ķekars rindu un kolonnu, bet tad jums parasti ir darba lapas pa dibenu, vai atsevišķās cilnēs. Jūs varat domāt par katra darblapa kā galds tā, ka datu bāzes, galu galā, ir kombinācija ar vienu vai vairākām tabulas, viens vai vairākas darba lapas, kas pasaule normālu izklājlapas. Tāpēc ļaujiet man iet uz priekšu un noklikšķiniet uz šīs darba lapā ka es Premade, ko sauc par lietotājiem, pazīstams arī kā Datu bāzes tabulu. Un, ja es ritiniet uz leju šeit, ļaujiet man zoom out mazliet, tas ir tas, ko phpMyAdmin stāsta mums ir iekšā šīs tabulas tieši tagad. Tas ir nedaudz mulsinoši sākumā skatiens jo UI nav visjaukākā lieta pasaulē, bet kas ir interesanti ir šī daļa šeit. ID, lietotājvārdu, un hash. Iepriekš, un jūs būsiet roku šo problēmu noteikti septiņi, mēs jums failu, kas satur super mazs datu bāzes tabulu, aizņēmies faktiski no hakeru izdevuma problemātisko noteikti divi, iekšpusē no kuriem ir sešas rindas. Viens par Belinda visu ceļu uz leju, lai vienu Zamyla, un paziņojums pa kreisi no tiem lietotājvārdi ir unikāls ID, piemēram, vienu, divi, trīs, četrus, piecus, sešus, veseli skaitļi, un pēc tam pa labi, ir hashes. Un, ja, izredzes ir, jums nav darīt hakeris izdevums problēma noteikti divi, bet hash ir tāpat kā šifrētu parole ar dažiem iebildumiem. Un tā, ko jūs redzat šeit ir šifrētu versijas visi seši mūsu paroles no problēmu noteikti divi s hakeru izdevums. Tagad pa kreisi, ir tikai daži GUI sīkumi, rediģējot šo rindu, kopējot šo rindu, svītrot šo rindu. Bet kas ir interesanti Tagad ir šāds. Es patiesībā var sākt eksperimentējot ar šo tabulu. Tātad, ja es eju un noklikšķiniet uz SQL tab, man šo lielo teksta lodziņā. Un tas nav, kā mēs spēsim darīt to tad, kad faktiski rakstot kodu. Lai būtu skaidrs, phpMyAdmin ir tikai instruments, kas ir gatavojas ļaujiet mums kule ap bāzē un ļaujiet mums eksperimentēt ar vaicājumiem. Tātad, piemēram, pieņemsim Es izpildīt tieši to. Select, kurš ir viens no tiem, atslēgvārdi jau iepriekš minēju, zvaigzne, kas ir visi kolonnas tabulā. No tā, ko galda? Nu, lietotājiem. Un paziņojums tur ir šis dīvaini konvencija SQL kur jūs faktiski izmantot atpakaļ ērces, parasti, ne vienu pēdiņām, nevis pēdiņas ja tu runā par galdi vārdiem, tāpēc atpakaļ cena ir lieta, par augšējā kreisajā tastatūras visvairāk iespējams. Tāpēc ļaujiet man iet uz priekšu tagad un vienkārši atstāt, ka atsevišķi un ritiniet uz leju un noklikšķiniet uz iet, un mēs esam patiešām gatavojas, lai redzētu to pašu. Mēs tikko izpildīts SQL vaicājumu sakot, izvēlieties viss zvaigzni no galda aicināja lietotājus, un ko jūs saņemsiet atpakaļ tas ir. Galu galā, mēs būsim spējīgi darīt to pašu lieta kodu, bet tagad viss, ko es gribēju to bija redzēt to savā pārlūkprogrammā. Nu pieņemsim kaut ko darīt nedaudz atšķiras. Ļaujiet man iet atpakaļ uz cilni SQL, un pieņemsim tikai teikt, ka tas, ko? Zamyla ir zaudējis visas viņas naudu, un tāpēc tas ir laiks mums, lai izdzēstu viņu kā lietotāju. Viņa vairs piesakoties. Tāpēc es esmu gatavojas teikt dzēst from-- labi, saglabāt kapitalizāciju konsekvences, dzēst no lietotājiem kur. Un tā, mēs varam būt šos predikāti, vai šie kvalificējušies, beigās manu paziņojumu kur un kā es varētu izdzēst Zamyla? Viņas vārds Zamyla, tāpēc kolonna, kas ir viens no kolonnām tika nosaukts, tāpēc kur name = "Zamyla". Un šeit es izmantot dubultā citātus vai vienu pēdiņām, Jums ir tikai izmantot atpakaļ ērces, kad runājot par nosaukumiem, piemēram, tabulas vai laukiem. Un ļaujiet man klikšķiniet Iet šeit. Un tagad, mājas lapa ir ir nedaudz uptight. Vai jūs tiešām vēlaties izpildīt dzēst no lietotājiem, kur vārds ir vienāds Zamyla? Jā. Tāpēc tagad, ja mēs ejam atpakaļ uz mana galda , noklikšķinot lietotāji, ievērosiet, ka Hm. Es goofed. Un patiesībā, es veida uzklikšķināt prom tik ātri jums nav pat redzēt sarkans kļūdas ziņojums, varbūt. Ko es daru nepareizi? Mērķauditorija: Jums nav nepieciešams kapitalizēt viņas vārdu. DAVID J. Malan: Jā es kapitalizēti savu vārdu, bet viņas username-- patiesībā es veikts pāris kļūdas, vai ne? Viens, viņas lietotājvārds ir zamyla, mazie Z, un kolonnas nosaukums ir lietotājvārds, nav vārdu, tāpēc pieņemsim darīt atkal. Ļaujiet man iet uz priekšu un izdzēst no lietotājiem, ja lietotājvārds vienāds quote likt pēdiņas beigās "Zamyla". Viss kārtībā? Tāpēc tas izskatās mazliet labāk, ļaujiet man iet ritiniet uz leju un noklikšķiniet uz Aiziet. Tas joprojām būs bļaut uz mani, lai pārliecinātos. Es noklikšķiniet uz Jā, un tagad mēs redzam, godīgi sakot tas notika, patiešām ātri, mazāk nekā viens otrkārt, protams, šis Tieši vaicājums ka got izpildīts. Lai apstiprinātu, ļaujiet man noklikšķiniet lietotājiem un tiešām tagad Zamyla ir pagājis. Tagad pieņemsim darīt pretējo. Pieņemsim, ka Gabe grib reģistrēties mājas lapā. Kas ir SQL vaicājums, kas ir bausli es varētu rakstīt, lai pievienotu Gabe? Nu tas ir diezgan vienkārši. Ievietot lietotājiem, un tagad tā kļūst mazliet noslēpumains. Man vajag, lai norādītu, ar serveri, kādās jomās es gribu uzdot. Man nav īsti vienalga, ko Gabe ID skaits ir, tāpēc es esmu gatavojas izlaist to. Es esmu nevis gatavojas teikt lietotājvārdu, hash, un tad vērtības, es gribu, lai tur būs Gabe. Un tad viņa hash, es nezinu. Tātad tagad, es esmu gatavojas atstāt, ka liels darīt. Mēs atgriezties ka problēma, kas spec, kā jūs faktiski darīt. Tātad paziņojums, atkal, sintakse. Ievietot tabulas nosaukums, tad parenthesized saraksts no laukiem, slejas vēlaties pievienot vērtības, un pēc tam vienkārši pašā precīzu pasūtīšanas atstāts pa labi no vērtībām, ko vēlaties pievienot, un tas ir tikai tāpēc, ka iesaiņošana teksts ir nedaudz ilgi. Tāpēc tagad ļaujiet man noklikšķiniet uz Aiziet. Viena rinda ievietota. Un tagad, ja es dodos atpakaļ uz lietotājiem, kas ir interesanti ir tas, ka ne tikai ir Gabe tagad datu bāzes, kas ir acīmredzot viņa ID? Nu tas ir septiņi. Kāpēc tas ir septiņi, kad man nebija to pievienot? Tātad tas arī ir viens no funkcijas jūs saņemsiet no datubāzes. Partijas celta funkcionalitāti. Izrādās, ka tad, kad izveidojis šo tabulu, Es konfigurēti tas ir automātiski piešķirt ID tādā veidā, ka tā pieaugumu. Tātad, ja jūs esat kādreiz izbāza apkārt, un paskatījās to, ko savu Facebook ID skaits ir, šajās dienās tas nav īsti lieta, ko darīt, bet Facebook kā API, Application Programming Interface, ar kuru jūs varat saņemt atpakaļ viss ķekars datu par sevi, par saviem draugiem, un jūsu savienojumus. Un ko izmanto, lai būt laipniem atdzist, atpakaļ dienā, bija meklēt to, ko jūsu Facebook ID numurs bija. Mark Zuckerberg s, Piemēram, ir trīs jo viņš bija autors vietā. Un, tā kā stāsts iet, viņš radīja divas testu konti, lietotājiem viens un divi, ko viņš pēc tam izdzēsts. Un tā, Zuck, jo ir viņa lietotājvārds Facebook, ir ID numurs trīs, un mums visiem ir numuri daudz lielāks nekā trīs šajās dienās. Patiesībā, kādā brīdī Facebook attālinājās No pat izmantojot int, kas ir 32 bitu vērtības, lai, izmantojot Nākamais solis uz augšu, būtībā ilgi ilgi, lai ka tie varētu uzņemt pat vairāk lietotāji reģistrējas. Tātad fun maz vēsturisks fakts. Tātad tas ir tikai pamata sintakse ar kuru mēs varētu izpildīt pāris jautājumi, bet mēs varam reāli do ķekars vairāk lietas ar SQL. Un jūs redzēsiet, galu galā, problēmā noteikti septiņi kas jums ir, lai skaits dizains lēmumus, Starp tiem būs kādi dati veidi, lai izmantotu. Tātad, tāpat kā C, ir dati veidi datu bāzē, piemēram, MySQL, un datu tipi jums ir jāizvēlas No iekļaut šos laukus šeit. Char, varchar, Int, liels int, decimal un datums laiks, un daudzi citi. Tāpēc pieņemsim patiešām to dara. Izliecies, ka mēs neesam rokas jums šī lietotāja tabula un ļaujiet man iet uz priekšu un radīt, lai sevi, lekcijās database-- tiešām ļaujiet man iet uz priekšu un dzēst tabulā man ir šeit jau tā, ka mēs faktiski var radīt to. Whoops. Es esmu gatavojas piliens šī galda, un tagad es esmu iešu atkal lekciju datubāzi nekā šeit, Es esmu gatavojas, lai izveidotu tabulu sauc lietotājiem un pieņemsim vienkārši darīt trīs kolonnas Sākotnēji un noklikšķiniet uz Aiziet. Tagad, lai lielākā daļa, atkal, tas ir tikai izmantojot šo grafisko rīku, ko sauc phpMyAdmin, un ko mēs darām tagad rada galdiņu. Tātad tas ir kā iet File, New, un radot jaunu Excel failu. Tātad, tas ir jautā man maz jautājumi, no kreisās uz labo, kas ir nosaukums pirmajā ailē, un pēc tam nosaukums otrajā kolonnā, un nosaukums trešdaļu. Tā ļauj atjaunot to. ID, un pēc tam Lietotājs ir viens, un tad hash bija cits. Tātad, kas būtu datu tipu būt tagad laukā, piemēram, ID? Te ir vesels saraksts ar datu tipu Jums pieejama datu bāzē, un tagad pieņemsim tikai iet ar int. 32-bitu vērtība, man nav domāju, ka reāli es esmu nāksies vairāk nekā 4 miljardus lietotāji manā kontā, manā dienestā, tāpēc es esmu gatavojas glabāt pārvietojas uz nākamo jautājumu. Es neesmu gatavojas norādīt garums vai vērtībām, tas nav piemērojams šeit int, per se. Un tagad es varu norādīt, acīmredzot, noklusējuma vērtība, ko es neesmu gatavojas norādīt. Salīdzināšana, es nezinu, kas tas ir. Atribūts. Tagad mēs faktiski darīt ir dizaina lēmumu. Tātad tur ir dažas jomas šeit, ne visi no kuriem ir piemērojams, bet unsigned nozīmē tikai to, ko? Ka int jābūt? Vienkārši nav negatīvs. Tātad tas ir 0 uz augšu. Nē, es neesmu gatavojas pārbaudīt, jo Es gribu katram lietotājam ir ID, tas nevar būt nulle. Un tad mēs nokļūt dažas vairāk interesantiem dizaina lēmumi patika to. Mēs būsim atpakaļ uz to brīdi, bet kāda cita no datubāzes iezīme ir, ir tas, ka jūs varat pateikt datu bāzes serveris iet uz priekšu un optimizēt sevi, savu RAM un jūsu cietā diska, tā, ka atlasa, un ieliktņi, un dzēš, un atjauninājumi ir tiešām ātri. Salīdziniet to ar pset5. Ja jūs vēlētos, lai meklētu kaut ko Jūsu hash tabulu, kurā jūs domājat kā datu bāzi, kas bija darīt visu strādā, lai padarītu jūsu hash tabulu ātri. Tas ir tāpat kā, protams, jūs. Taisnība? Jums bija likt visu laiku naudas sodu tuning lietas, iegūt jaucējfunkciju labi, norādītas kā daudzi spaiņi ir. Bet to, kas ir jauki, atkal, par datu bāze jūs vienkārši punt visu tas ar citiem cilvēkiem kuri domāja, ka tas caur jums, un kādi Es esmu gatavojas teikt šeit zem indekss ir tas, ka mans ID jomā būs galvenais veids identificējot lietotājus šajā datubāzē. Es neesmu gatavojas domāt no Zamyla kā Zamyla, Es esmu gatavojas domāt par viņas kā numurs 6. Kāpēc ir tā, iespējams, labāk intuitīvi domāt par un modeli katru no jūsu individuālajām rindām izmantojot skaits, nevis kaut ko piemēram, virknes, piemēram, Zamyla vai Gabe vai garāks virkne vēl? Yeah? Mērķauditorija: ID ir unikāls? DAVID J. Malan: Say atkal? Mērķauditorija: ID ir unikāls? DAVID J. Malan: ID ir unikāls, bet suppose-- kā gadījumā vispār ar lietotājvārdiem, pieņemsim Es arī teicu, ka var būt tikai viens Zamyla pasaulē, un tikai viens Gabe. Es varētu uzlikt unikalitāti ierobežojums stīgas, arī, ja es gribēju. Tāpēc ne slikta doma. Mērķauditorija: Drošāku. DAVID J. Malan: Drošāku, kāpēc? Mērķauditorija: Jūs nevarat pateikt, kura ir, kas, tāpat kā lietotājam. DAVID J. Malan: Labi, tu nevar pateikt, kas lietotājam ir kas tik tur privātuma aspekts uz to, it īpaši, ja ID varbūt parādās URL. Tik pārliecināts, ka varētu veida darbu, too. Citas domas? Yeah? Mērķauditorija: Tas ir vieglāk veikt darbības uz int. DAVID J. Malan: Tas ir reāls futbolists. Tas ir tikai efektīvāku, vai vieglāk datoru, veikt operācijas veselam skaitlim. Taisnība? Int ir garantēta būt 32-bitu, bet Zamyla ir dažas rakstzīmes, Gabriel ir vēl daži rakstzīmēm, Davenport ir ļoti garš, un tāpēc tas ir nav īpaši efektīvi izmantot virknes salīdzināt vērtības un meklēt laukiem, un atjaunināt laukiem, ja jūs varat saņemt prom tikai ar vienu skaitlim. Tikai 32 biti. Tātad lietotājvārdiem, arī šādā veidā, nav jābūt unikālai, gan tie, iespējams, vajadzētu būt, un pat tādā veidā arī lietotājs varētu atļaut mainīt savu lietotājvārdu. Tātad, pieņemsim, tagad atstāt to kā galvenais līdzeklis identificēt lietotāju. Tas stāsta datubāzi iet uz priekšu un optimizēt sevi tāpēc ka izskatās ups par ID ir super ātri. AI, briesmīgi nosaukts, tikai nozīmē Auto Palielināt, un tas ir pārbaude kaste mums ir nepieciešams, lai pārbaudītu precizēt, ka ID lauka automātiski atjaunināts par mani, un tad es esmu gatavojas ritiniet pa labi šeit un godīgi sakot es neesmu īsti ieinteresēts jo vairāk no šiem laukiem. Protams, ne šodien. Tāpēc es esmu gatavojas atgriezties šeit, ar pirmo kolonnā, kur Man vajag, lai precizētu lietotājvārdu un hash, un pieņemsim Vismaz uzmanību pievēršot Otrs tagad. Int, iespējams, nav taisnība zvanu, Tātad, kas padara daudz nozīmē varbūt? AUDITORIJA: Teksts. DAVID J. Malan: Say atkal? AUDITORIJA: Teksts. DAVID J. Malan: teksts? Labi, es dzirdēju tekstu. Kas vēl? Mēs veida ir ķekars izvēles ka ir tekstuāls raksturs. Tātad, ja, un kāpēc, do jūs izmantojat kādu no šiem? Nu palija, pretēji tam, ko jūs varētu domāju, ir nevis vienu rakstzīmi. Tas ir īpašs rakstzīmju skaits. Tātad, ja mēs zinām, ka visi lietotājvārdi jābūt kā astoņām rakstzīmēm, kā izmanto, lai būt izplatīta vecāki datorsistēmas, es varētu teikt char un tad es varētu teikt 8 šeit. Tas ir, kad trešā kolonna kļūst piemērojams veidojot tabulu. Bet tas ir sava veida kaitinošas jo daži cilvēki varētu vēlas, lai būtu garāks lietotājvārdu par astoņām rakstzīmēm, daži cilvēki varētu vēlēties ir īsāks lietotājvārdu, tad kāpēc atdodu sevi uz konkrētu numuru? Kāpēc nav mainīgais no chars skaits un vienkārši saka, ka maksimālais garums nosaukuma ir, es nezinu, tāpat kā 64 rakstzīmes. Es nevaru iedomāties nevienu draugiem, kuri ir vārdi garāks par 64 rakstzīmēm, un pat tad, ja tas ir pārāk īss, jūs varētu protams sasist to patvaļīgi. Tātad varchar ir mainīgs skaits chars. Teksts nav slikts instinkts, un atklāti, ka veida, ko tā saka, bet teksta lauks var būt tāpat kā 65000 baiti vismaz. Tas ir iespējams, overkill lauka, un patiesībā, Yup, 65535. Tas ir iespējams, overkill nosaukt, tāpēc mēs stick, parasti, ar varchars par tekstuālo lauka un hash, too. Hash, izrādās, mēs varētu darīt varchar, kā arī vai kaut kas tamlīdzīgs, bet mēs koncentrējamies šodien uz kriptogrāfija tur un skaitļi ka mēs varētu reāli vēlas izmantot tās garumā. Bet ļaujiet man ritiniet uz leju, pa labi. Jums var būt tikai viens primārais indekss galda, bet es gribu, lai piemērotu kādu no šiem, Tagad, ar lietotājvārdu, jūs teiktu? Kas būtu lietotājvārdu pamatā neskaidrs izpratne par šiem četriem variantiem? Tikai pēc to nosaukumiem? AUDITORIJA: Unique. DAVID J. Malan: Tātad unikāla, labi? Tātad izrādās, ka ne tikai varētu pastāstīt datu bāzi, iepriekš, tas ir galvenais ceļš identificēt laukus. Jūs varat teikt, tas ir būs unikāls lauks. Tas nebūs lieta, ko es paļauties uz bet es gribētu datu bāzi, lai būtībā ir, ka, ja nosacījums, lai ka, ja es kādreiz mēģinājis reģistrēt divi lietotāji ar tādu pašu nosaukumu, datubāze dzīvoklis, nav gatavojas let me. Es varētu būt dažas papildu kodu PHP, kas neļauj tik daudz, bet datu bāzē, arī var nodrošināt ka tas nekad nenotiks. Tagad, kā malā, jo īpaši jūs domājat par gala projektiem, paturiet prātā to, indeksu un pilna teksts patiesībā ir diezgan noderīgi. Ja jums ir lielāks datu bāzi, nevis ar desmitiem, bet ar simtiem vai tūkstošiem vai pat miljoniem laukiem, varat arī pateikt datubāzi iepriekš tas ir lauks es eju kas meklē par daudz. Varbūt tā lietotājvārds, varbūt tas ir bio, ja jūs esat padarot Facebook līdzīgu mājas lapu, kas ir rindkopas, ka lietotāja atļauta lai saglabātu, un, ja jūs vēlaties, lai pateikt datubāzi iepriekš Es esmu būs meklējot šajā jomā daudz, bet tas ne vienmēr ir unikāla, Jūs varat norādīt izveidot man indeksu. Vai arī, jūs varat teikt arī ļaujiet man darīt kārtot patvaļīgu meklējumiem līdzīgu komandu vai Control F, tāpat kā jūs varētu vārdu procesors, lai jūs varētu izskatīties patvaļīgi stīgas vai apakšvirknes šajā jomā. Citiem vārdiem sakot, mēs esam nonākuši uz punktu, kas atrodas pusē kur jums nav jāuztraucas par kā efektīvi īstenot lietas. Jums tikai jāzina par to, ko dizains lēmumus, lai tā, ka jūs esat izmantojot pareizos instrumentus tirdzniecību, lai piesaistītu funkcijas ka citi cilvēki ir būvētas jums. Tātad, lai Atgādinājums, primārais būtu tikai ir viens, jums var būt tikai viens, un tā ir lieta, ko jūs esat izdarījuši, lai izmanto, lai identificētu jomas unikāli. Unikāls ir tikai līdzīgs garā, bet jūs varētu tikai reizēm izmantot, bet jūs vēlaties datubāzi uzspiest to. Indekss nozīmē tikai preemptively paātrināt lietas pat nākotnē lai es varētu meklēt lietas šajā jomā. Un tad pilns teksts ir parasti, lai punkts, vai esejas vai lielas iestādes teksta kur jums arī varētu vēlēties, lai būtu savvaļas kartes, piemēram ekvivalentu zvaigzni. Pa labi. Tā, ka bija sava veida daudz, lai visu uzreiz. Let 's redzēt, ja mēs nevaram destilēt pāris no šīm funkcijām un pēc tam veidot kaut ko diezgan vienkāršs, bet spēcīgs. Tāpēc viens otru dizains lēmumus tu esi galu galā nāksies tiek gar līnijas uzglabāšanas dzinēju. Un ļaujiet man tikai pieminēt šo gaidot galīgo projektu, un prognozējot pieņemsim say-- nē pieņemsim darīt. Veidosim šo maz pieteikumu pirmās. Es iešu manā termināls logs, un kas šeit nav tikai counter.php, kuru mēs tagad gatavojamies atbrīvoties no kā vairs nav piederīgs, bet mums ir vesela ķekars katalogi, un tas būs ļoti līdzīgs garā ko jūs redzēsiet problēmu noteikti septiņi. Tātad mums ir trīs katalogi ietver valsts un veidnes, kas ir tieši tur, kur mēs left off Pirmdiena ar mūsu visu MVC paradigmu. Un, lai Atgādinājums, publiski gatavojas doties jebkuru failu, ka es gribu lietotājiem faktiski v varēs apmeklēt viņu pārlūks, izmantojot URL. Veidni. Ko mēs ieliekam veidnes? Kāda veida sīkumi? Tur nebija daudz, bet pāris failus vismaz pirmdien. Yeah. Mērķauditorija: Galvene un kājene? DAVID J. Malan: Galvene un kājene. Tāpēc mums ir kaut kas līdzīgs šodien, too. Mēs esam ieguvuši vēl dažus failus, bet Kājene es redzu, Galvene es redzu, un tad ķekars citus failus. Tātad šis ir līdzvērtīgs no V MVC domām, kura, atkal, būs nedaudz vairāk skaidrs, problēma noteikti septiņi, bet tas ir tikai mape es esmu liekot daudz manu estētiku. Daudz manu HTML, daudz manu formu. Tikmēr, ietver, ir vēl viens katalogs, kas ir šie trīs faili un pieņemsim ātri apskatīt šos. Es esmu gatavojas iet uz priekšu un atvērt config.php. Kā izrādās, ir daudz tāpat kā agrāk termiņā, Jūs asas iekļauti CS50 dot h ar pset7. Mūsdienu Piemēram, jūs gatavojas darīt to ekvivalentu, kas ar nepieciešama paziņojumu kas efektīvi iekļautas šādas vairākas līnijas. Tātad, lai būtu skaidrs, tas ir failu sauc config.php. Un paziņojums, ko tas dara. Tas acīmredzot dara kaut ko mistisks, virpošanas uz kļūdu ziņojumiem tā, ka jūs varat redzēt tos pārlūkprogrammā. Tas ir, tad, acīmredzot paredzot divus citus failus tāpēc tas ir kā #include C, un tad tas viens mēs neesam redzēt, un mēs esam atsaukties, tas ieslēdzas ka iepirkumu grozs, piemēram funkcionalitāti. Tas nozīmē cookie testamentu jāsūta uz priekšu un atpakaļ. Tātad, kāpēc tas ir interesanti? Nu, ja mēs ejam atpakaļ uz šo direktoriju un atvērt, piemēram, constance.php. Ievērojiet, ka PHP nav atbalsta konstantes, tas nav gluži tāpat # define C. Tā vietā, jūs burtiski saka definēts, un paziņojums ka es esmu glabājas iepriekš četri konstantes Šajā failā. Viens par šodienas datu bāzē, mana parole, par manu lietotājvārdu, un par nosaukumu serveri. Tāpēc tie ir faktiski būs diezgan līdzīga problēma noteikti septiņi. Un visbeidzot, un tas ir, ja es esmu gatavojas saņemt kādu jauku funkcionalitāti no darbiniekiem, kas functions.php ir ķekars kodu, mēs esam rakstīts, un man nozaga dažus no šo No problēma noteikti septiņi šodien, ka tas ķekars lietas un pieņemsim tikai apskatīt vienu no tām jo īpaši. Šī funkcija šeit vaicājums, būs PHP funkcija mēs saucam lai izpildītu SQL. Pirms brīža mēs bijām, izmantojot phpMyAdmin, bet tas ir tikai pēc veida mācību nolūkos un diagnostikas mērķiem un aizmirstot savu datu kopu. Kad jūs faktiski izmantot savu datu bāzes, tu, cilvēks, acīmredzami nav gatavojas tiks pavelkot uz augšu web lapa katru reizi, kad kāds reģistros. Jūs gatavojas rakstīt kodu, kas ieliktņi un dzēš lietotājus pēc pieprasījuma, un mēs esam gatavojas darīt veidā vaicājuma funkciju. Ja es tagad ritinātu uz leju, tur ir būs vēl dažas iezīmes. Novirzīt gatavojas būt funkciju mēs rakstījām jums, kas ļauj jums nosūtīt lietotājam uz citu URL, un padarīt ir funkcija, gluži tāpat kā mēs redzējām pirmdien, kas faktiski padara veidni, bet vairāk par tām forma pset7 pašu staigāt pa. Tagad, iesim uz priekšu un darīt to. Ļaujiet man iet manā lekcijas galda un redzēt, ka tur šobrīd nekas šeit tikai vēl, un ļaujiet man arī iet manā publiskajā direktorijā, kur tur ir tikai viens fails, index.php. Šis fails šķiet super vienkārši brīdī, tas izskatās tāpat kā šo. Ļoti daudz, piemēram, kā mēs pārtraucāt pirmdien. Es esmu pieprasot šo failu, config.php, kas ir ietver direktoriju, kura ir dot dot, mani vecāki, un tad tas ir tikai padarot šo failu. Tātad, kas ir šo failu? Pieņemsim atvērt manā veidnes form.php, un mēs redzēsim šo. Super vienkārši, acīmredzot šī forma ir gatavojas iesniegt ar $ _GET vai $ _POST. Ātri veselība pārbaudītu. Burtiski vizuāli meklēt failu. Metode ir vienāds amatu. Tāpēc tas nav gatavojas izmantot URL, piemēram, Google dara, tas notiek, lai kārtotu paslēpes Informācija aiz ainas un tas ir gatavojas iesniegt failu sauc register.php, un tas ir fails mums vēl nav uzrakstījis bet ko tas notiek izskatās tas. Ja es eju uz atsevišķu lapu Tas ir kādi localhost / index.php izskatās. Un atkal, servera vienkārši pieņemot index.php. Enter. Tātad, tas ir, ja mēs esam at, un to, ko es gribu darīt ir iespēja rakstīt lietas tāpat kā Dāvids, un pēc tam mans telefona numurs, kas teiks 617-555-1212 tagad, reģistrējieties un tagad register.php netika atrasts. Tāpēc man ir nepieciešams, lai īstenotu to. Tāpēc pieņemsim ātri sakult kaut kas līdzīgs šim up. Ļaujiet man iet manā publiskajā direktorijā un darīt gedit par register.php, un tagad es esmu gatavojas iet uz priekšu un sākt PHP režīmā, tāpat kā mēs to darījām pirmdien, un slēgt PHP tag, un pieņemsim darīt pāris lietas. Tik viens, es zinu, no uzrakstot šo veidlapu, ka es gribu, lai pārbaudītu sekojošo. Ja tā ir tukša, neatkarīgi no lietotāja drukāti uz nosaukuma laukā, tad Es esmu gatavojas teikt kaut ko tāpat atvainojos trūkst vārdu. Atvainojos, tikmēr, ir nav uzcelta PHP lieta, tas ir funkcija mēs rakstījām in functions.php par pset7 tā, ka jums ir piekļuve tai. Cits, ja citā jomā ir tukša, skaitlis, tad es esmu gatavojas atvainoties lietotāju un teikt trūkstošo numuru. Saglabājiet šo failu. Tagad iesim atpakaļ uz manu pārlūku, doties atpakaļ uz forumu, mēģiniet vēlreiz. Reģistrēties. OK. Nekas nav noticis, kas ir labs. Es nesaņēmu kļūdas ziņojumu. Bet, ja tā vietā, pieņemsim pārlādēt šo lapas, un nesniedz neko. Damn it. Darīt. Reģistrēties. Ko es daru nepareizi? Ja tās ir tukšas, $ _POST nosaukums. Saku vēlreiz? Ak, protams. Es aizmirsu vissvarīgākā daļa, kas ir nepieciešama ("../ includes / config.php."). Man vajag, lai piekļūt atvainojos funkcija, kas Tāpēc nekas notiek. Funkcija nav faktiski nepastāv. Tāpēc pamēģināsim vēlreiz. Pieņemsim pārlādēt lapu, noklikšķiniet uz Reģistrēties. OK. Tur tas ir. Tātad, izejas mēs esam redzot šeit ir rezultāts zvanot atvainoties funkcija, super vienkārši, un tas tikai izdrukā neatkarīgi Es arī tā kā argumentu. Labi, tāpēc pieņemsim sadarboties. Pieņemsim sniegt manu vārdu tāpat kā Dāvids, reģistrēt, Trūkst numurs OK pieņemsim paredz, ka, too. 617-555-1212. Reģistrēties. OK. Tātad viss ir labi tagad, tikai nekas interesants notiek. Tāpēc tagad pieņemsim darīt kaut ko vairāk Interesanti notikt kā šis. Ļaujiet man iet uz phpMyAdmin, un pieņemsim faktiski izveidot tabulu sauc lietotājiem, Es esmu gatavojas sniegt tai trīs kolonnas, un es ņemšu ātri izveidot ID, un pēc tam vārds, un tad numurs, un ID lauks es esmu gatavojas atstāt kā int. Nosaukuma lauks es dodos atstāt kā varchar, un mēs sakām 64, nedaudz patvaļīgi. Skaitlis es dodos lai, jūs zināt, ko? Mēs ejam uz atbalstīt ASV numurus šeit, tāpēc es esmu gatavojas darīt kaut ko piemēram, palijas un tad 10 rakstzīmes max rajona kodu un tad septiņi cipari. Un tad vairāk nekā šeit, es esmu gatavojas norādīt auto pieaugumu šajā jomā, padara šo primārā atslēga, un Es esmu gatavojas iet uz priekšu un nav pārbaudīt jebkuru no šīm citām kastēm. Tātad, kad es tagad beidzot noklikšķiniet uz Saglabāt un es dodos atpakaļ uz manu lietotāju tabulā, tas ir, kā tas izskatās, ja es Tagad noklikšķiniet uz New Tab struktūru. Tātad tas, lai būtu skaidrs, ir tikai phpMyAdmin ceļš kā pateikt jūsu datu bāzes tabulu ir ID, vārdu un numuru ar šiem konkrētiem konfigurāciju un mēs ignorēt atlikušos laukus tur tagad. Tāpēc tagad to, ko es gribu darīt? Tātad, ja es eju tagad manā pirmkodu, ja viss ir labi Es gribu izpildīt šādu vaicājumu. Ievietot, un es varu tikai saka lietotājiem man nav stingri vajag tos atpakaļ, ērcēm, ja tas ir nav bīstams vārds, piemēram, lietotājiem. Es esmu gatavojas teikt vārdu, numurs, un tad šeit es esmu nenāks cietā kodu cipars no vērtībām vēl. Es esmu gatavojas īstenot divus jautājuma zīmes. Un tas ir konvencija daudzās valodās kurā, ja jūs vēlaties, lai būtu vietturis string jūs gatavojas izmantot jautājumu zīmēm, iemeslu dēļ mēs atgriezties tērzēt par drošību, un šeit Es esmu gatavojas iet tiem divi lauki pēc nosaukuma, un tad pēc skaita, un tagad saglabāt failu. Un tagad es esmu gatavojas iet uz leju, šeit ir super vienkārši pateikt rendersuccess.php, kas būs vēl viens veidni. Es esmu gatavojas, lai izveidotu tiešām ātri. Geditsuccess.php un es esmu tikai gatavojas teikt H1 panākumus šajā failā. Labi. Tāpēc tagad, iesim atpakaļ uz pārlūku, kur es apmeklēju pirms tam. Iesim uz priekšu un apstiprināt es uzrakstīju Dāvidu, es uzrakstīju tālruņa numuru, reģistrēt. Damn it. Ko es daru nepareizi? Tāpēc es esmu redzēt kļūda šeit, jums ir kļūda Jūsu SQL sintaksi. Ļaujiet man lēkt atpakaļ uz gedit, ļaujiet man iet atpakaļ uz register.php, un ko gan es izlaist, ka bija svarīgi pēdējā reize? Man vajag šo. Jūs vēlaties zināt, ka, izņemot no kam ir pamanījuši agrāk, bet man vajag to. Tāpēc tagad iesim atpakaļ, un tas bija lietderīgi redzēt pārlūkā un tas ir iemesls, kāpēc config.php mēs izspļaut kļūdas. Iesim uz priekšu un pārlādēt, noklikšķiniet uz Turpināt, panākumus. Tāpēc tagad ļaujiet man iet vairāk nekā uz manu datubāzi šeit un noklikšķiniet uz lietotājiem, un pārlūkot, un paziņojums es tagad ir David manā datu bāzē šeit. Tagad tehniski šī mājas lapa ir vēl nav publiskajā internetā, tāpēc es nevaru būt cits cilvēki liekot šeit, bet, ja es tagad gribēju, lai Piemēram, sūtīt sev īsziņu. Iesim uz ekstremitāšu šeit un redzēt, ja tas patiešām darbojas. Es esmu gatavojas iet uz priekšu un izdzēst šo rindu un mēs aizmiglot šo noteikti video vēlāk tāpēc mums nav Viss internets testa mani, un mēs tagad aiziet līdz pārlūku, un mēs iet pār lekciju un mēs ierakstiet atšķiras numurs šeit, reģistrēt, panākumus. Tāpēc tagad, mans numurs ir domājams, datubāzes, un tagad jautri daļa. Pieņemsim faktiski izmantot PHP, lai darīt kaut programmatiski, nu no komandu līnijas vai no kaut kur citur, un tagad es esmu tikai gatavojas to saglabāt vienkāršu un es iešu uz manu direktoriju šeit un darīt turpmāk. Gedit skripts teiksim, mēs sauc to tekstu, #! / lietotājs / bin / ENV PHP, kā mēs redzējām pēdējo reizi. PHP. Tagad es esmu gatavojas nav vajadzīgas ietver config.php, lai gan tas varētu izraisīt nelielu kļūdu. Un tagad es esmu gatavojas iet uz priekšu un teikt rindas, vaicājums, izvēlieties zvaigzne no lietotājiem, un tagad šeit es esmu gatavojas darīt tehniku No pēdējo reizi katram rindās kā rindā. Un es esmu gatavojas darīt kaut ko vienkāršu. Printf teiksim vārds ir tas, un numurs ir tas, slīpsvītru n. Un tagad es esmu gatavojas iet rindā quote likt pēdiņas beigās vārdu, un rindas quote likt pēdiņas beigās numurs, un tagad iesim uz priekšu un mans termināla logu chmod tas + X, lai veiktu šis skripts sauc teksts izpildāmā. Un tagad pieņemsim palaist tekstu. Labi, lai progress. Tāpēc es esmu tagad ir rakstīts komandrindas skriptu, valodā sauc PHP, ka, tāpēc, ka prasa līnijas, ir pieejama visiem tiem konfigurāciju konstantes, ka es norādītie. No datu bāzes un tā tālāk vārds. Patiesībā, tikai, lai būtu skaidrs, ka tas nav parazīts, ļaujiet man iet uz priekšu un reģistrēt, ļoti ātri, kāds cits, piemēram, Rob un dos viņam 555-1212 numuru. Un tagad, ja man palaist skriptu atkal paziņojums pilnvaras par to, ko mēs darām ar datu bāzi. Tagad es esmu uzreiz redzējis, ko Pārējās divas rindas ir manā datu bāzē. Tātad tagad pamēģināsim kaut ko darīt pat mīļotājs iekšpusē, un tā ir daļa, mēs esam nav pārbaudīts iepriekš, tāpēc pēdējā reize, kad es did this viss gāja briesmīgi greizi, mums ir video šajā sakarā. Patiesībā, jā, smieklīgi malā. Tātad pēdējā laikā, lekciju kā pirms diviem gadiem, mēs nolēmām, es nolēmu, lai būtu tas viss varētu būt lieliska ideja dinamiski ģenerēt e-pastus klase, izmantojot visas datubāzes CS50 studenti, kas bija devusi mums to skaitu un to Mobilais pārvadātāji, kas jums varētu atgādināt no pset0, kā spriest, izrādās Man bija neliela kļūda manā programmā un bija pāris kļūdas 2012. gadā, es domāju. Saskaņā ar kuru, viens man bija cilpa, kas darīja tieši šāda veida lieta, atkārtojot pār datu bāzē, iegūt vārdu no datubāzes, nosaukumu no datu bāzes, un pēc tam uz katru atkārtojuma šīs cilpas Es nosūtīju e-pastu. Bet tā vietā, nosūtot vienu e-pastu, es nosūtīja vienu e-pastu Pirmajā atkārtojumā un divi e-pasti otrā atkārtojuma, nosūtīja trīs e-pasti otrā atkārtojuma, kas kā jūs varētu atgādināt no mūsu apspriešana asimptotiskas notācijas šis lielais O slikti, piemēram, n kvadrātā ir, cik ziņu man sūtīti, bet tas nebija pat e-pastus tas bija īsziņas. Un, kā jūs zināt, apmeklējums nav super augsta uz beigām semestra un tāpēc es domāju, ka būtu gudrs pie laiks teikt: "Kāpēc jūs neesat klasē?" Teksta ziņojuma I nosūtīts uz visu klasē, un tas bija smieklīgi, piemēram, 50% no klase, bet pārējie 50%, no kuriem daži freaked, es nosūtīja neticami kauns saldie piezīmes lai darbinieki atvainojoties par tam nokavēju lekciju tikko šoreiz, labi? Tā, ka būtu briesmīgi greizi. Tātad šajā garā, pamēģināsim šo atkal, bet tikai ar savu numuru. Iepriekš, functions.php, Es esmu uzrakstījis šo funkciju šeit. To sauc par tekstu, un tas aizņem trīs argumentiem. Numurs, pārvadātājs, un ziņu. Es esmu, izmantojot slēdzi paziņojumu, kurā lieliski PHP ņemt stīgas, ne tikai veseli skaitļi, un man nebija īstenot viss atbalsts šim vēl, Esmu tikko veikts AT & T un Verizon. Jo izrādās ka ar šiem pārvadātājiem tie ir e-pastu uz SMS vārti, kurā jūs faktiski var sūtiet e-pastu uz adresi piemēram, tālruņa numuru, vtext.com un ja lietotājs nav bloķēts ziņas, tas būs iet cauri ir īsziņu. Tagad, lai to izdarītu, es esmu nāksies pievienot viens lauks ļoti ātri uz manu datu bāzi. Es iešu uz mans struktūru, un es esmu gatavojas iet uz priekšu un pievienot lauks beigās tabulā. Pieņemsim noklikšķiniet uz iet, un es esmu saukšu šo pārvadātājs un tagad es esmu gatavojas atstāt to kā bāra tekstu, bet mēs varam būt mīļotājs nākotnē. Es esmu gatavojas ātri iet uz mana galda, un es esmu gatavojas atbrīvoties no Rob, tāpēc, ka tas ir viltus numurs, Es iešu uz rediģēt šeit, un es esmu gatavojas mainīt savu karjeru manuāli būt Verizon, kas to ir, un tagad ir vairāk nekā šeit. Darīsim ātri veselība pārbaudītu. Pieņemsim atvērt mūsu teksta skriptu, kas izskatās šādi, pārvadātājs ir% s. Mēs darām daudz vairāk kļūdu pārbaudot, nekā es darīju 2012. gadā, pārvadātājs. Un tagad, es iešu priekšu un atkārtoti palaist skriptu. OK. Pārvadātājs ir Verizon, kas nozīmē, Tagad, cerams, es varu darīt tikai to. Pareizi šogad, cerams, šeit mēs iet. Tātad iekšpusē šis cilpa, es esmu būs ne tikai šo printf, Es esmu arī gatavojas zvanīt tekstu un lietošana šo funkciju atsaukšanu bija tas aizņem numuru, pārvadātājs, un ziņu. Tātad, pieņemsim redzēt, ir turpinājis būt rindu quote likt pēdiņas beigās "numurs," rinda quote likt pēdiņas beigās "pārvadātājs," un pēdējais bija ziņa. Nelietojiet skrūvējamu augšu šogad, semikolu. OK. Īkšķus. Let 's redzēt, ja tas darbojas. Visas tiesības, tāpēc. Šeit mēs iet. Pieņemsim atbloķētu tālruni, turiet īkšķus, damn it. Undefined mainīgais may-- oh pagaidiet, pagaidiet, pagaidiet, reālā ātri. Reālā ātri, reālā ātri. Tas ir pilnīgi tā vērts. Ļaujiet man paķert, ļaujiet man paķert, uh-oh. Paldies, teksti ir sākās no kāda cita. Ļaujiet man iet uz priekšu un atvērt reālā ātri, dropbox.php / mail šeit. Gaidīšanas režīmu. Pilnīgi tā vērts. Lejupielādes. Labi, avota src8m. OK. Vajag vēl vienu līniju šeit. Ak tur tas ir, tas ir Frosh IP, tas ir reģistrā, ir trīs. Oh hello, Margo, liels paldies. Labi, un man trūka šo līniju šeit. Tāpēc ļaujiet man ātri paķert šī līnija kodu, kas ietver pastu vai bibliotēkā ka es tiešām gribu, lai izmantotu, Es esmu gatavojas, lai ātri doties atpakaļ uz funkcijām, Es iešu uz augšu šis failu un pieprasīt šo failu, kā arī, un tagad es esmu gatavojas, lai tiešām šķērsot manu pirksti, kad es iet atpakaļ uz komandu līnija skripts, kas ir iekšpusē šodienas vietējās uzņēmējas katalogs. Palaist tekstu. Enter. Pastu. Gaidīšanas režīmu. Gaidīšanas režīmu. Pastu. Ak, OK. Šeit mēs iet. Pasts saņēmis jaunu PHP mailer. Man darīt šīs tiesības? Damn it. Kuri paredzēti, ak, pagaidiet, pagaidiet, pagaidiet. Stāvēt. Es apsolu, tas ir būs tik vērts. Adrese. Tas ir iemesls, kāpēc man nav darīt piemēri tieši pirms klasē. Ugh. Šādi saņēmēji neizdevās. Pamēģināsim viena pēdējā lieta. SMTP noteikt no, pievienot adresi, adrese ir tāds, ka. Mēģināsim šo pēdējo piedalās adresi. Aw, es esmu patiešām skumji tagad. Paldies. Bet es tiešām novērtēju visu teksti jūs esat sūtīšanu. Jūs esat ieguvuši šo Dāvidu. Jūs esat pūš to. Atstāsim to tur, un mēs noteikt pirmdien. Redzēt jūs tam. DAVEN Farnham: Un tagad Deep Domas ar Daven Farnham. Ja bināro koks ietilpst meža un neviens apkārt C it-- [nosmejoties].