>> [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.
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].