[Powered by Google Translate] [Недела 9] [Дејвид Џ Malan - Универзитетот Харвард] [Ова е CS50. - CS50.TV] Во ред. Добредојде назад. Ова е CS50, а тоа е почеток на недела 9. Денес ние се фокусираат особено на дизајн, веќе не се во контекст на C но во контекст на PHP и малку SQL и малку на JavaScript, особено кон крајот на двете pset 7 и твојот последен проект. Всушност, ако сте во тој момент во твојот последен проект каде што се претпоставува дека од еден час или па пред вас барем почна да даде некои мисли до финалниот проект и сте размислување би сакале да соработуваат со 1 или 2 соученици, ако имаш проблеми со поврзување со изјави соученици, се чувствуваат слободни да пополните формулар во cs50.net/partners/form. Тоа само ќе ве праша кој сте, каков вид на проект сте размислување за, каде што живеам само за логистичка причини. А потоа, ако сакате да се внимава на текот на следната недела или така табела рачно таму, тогаш може да се види само за читање верзија на Google doc во која ние сме собирање таа информација. Значи, ако сакате да работите со некого, со сите средства да се чувствуваат слободни да допрат до луѓето преку тој механизам. Но мнозинството на луѓето не работат соло. Тоа е сосема во ред. Затоа, не се чувствуваат дека тоа е на кој било начин задолжително. Во петокот тоа беше само мене и неколку од тимот овде, празни театар во најголем дел. Имало 3 туристи седи таму, така што беше малку непријатно. Она што ние разговаравме за било бази на податоци и ние разговаравме за pset 7 малку. И ако не се случи да се фати дека на видео само уште, тоа е во ред. Ќе се обидам да се дефинираат сите услови што инаку би се здраво за готово врз основа на предавање во петокот. Но, денес ние ќе се обидеме да ви се дојде до точка на не само да биде во можност да се направи нешто како pset 7 но, навистина разбирање она што се случува под хауба, особено на некои од апстракции што ќе стави во место во functions.php датотека да се направи вашиот живот малку полесно, но така што ќе конечно се разбере така што кога обука тркала падне во неколку недели се уште може да преживее во реалниот свет и го правиме ова работи без CS50 рамка под вас. Оваа $ _SESSION, за оние од вас кои се запознаени или кои веќе фатен на видео во петокот, што значи СЕДНИЦА нека направи во PHP базирани веб апликација? Ова е superglobal променлива, што значи дека е слични во духот со GET и POST и уште неколку други, но она што е ова нешто корисно за? Што е СЕДНИЦА користи за? Да. [Студент] влезете внатре Жал ми е? [Студент] влезете внатре влезете внатре Навистина. Во pset 7 ние сме со користење на овој СЕДНИЦА superglobal да се олесни влезете внатре И она што е убаво за оваа superglobal е дека тоа е асоцијативна низа. Асоцијативна низа, се потсетиме, е само низа, но чии индекси веќе не мора да бидат броеви како 012. Тие можат да бидат броеви или тие можат да бидат дури и жици. И така ако сте се нурна во pset 7, можете да се потсетиме дека ние сме чување на клучен наречен проект внатрешноста на оваа асоцијативна низа чија вредност е нешто како 123 - без оглед на моментално најавени ID корисникот е. Мотивација за ова е тоа што дури по корисник го посети локалниот компјутер или мојот вебсајт поопшто, а потоа тие влезете во системот, дури и ако тие не кликнете на линкот или враќање на мојот вебсајт за 5 минути или дури и еден час или па дури и еден ден, но тие ги напуштат своите прозорецот на прелистувачот отворена, преку овој superglobal можам да се сетам дека тие се најавени Со други зборови, тоа ми овозможува да ги чувате малку долгорочни што сакам за корисникот. И можете да мислам на тоа навистина како инкарнација на количката. Места како Амазон очигледно ви стави работите во количката, но HTTP, протоколот дека овластувањата на веб, е без државјанство во смисла дека кога ќе ја посетите веб-сајт, во најголем дел немате некои постојано мрежна конекција помеѓу вашиот интернет пребарувач и серверот. Штом сте ја преземале од HTML и JPEG слики и GIFs и сето тоа, врската оди далеку и вие само треба копија на HTML и какво ли не од серверот. Но, ако Серверот сака да се сетам на нешто за Вас, товарот е на серверот за да всушност ги сними таа информација. И така да на програмерот кој има контрола врз серверот може да се стави повеќето нешто што сакате во внатрешноста на оваа superglobal асоцијативна низа и тоа ќе биде таму следниот пат кога корисникот се враќа, дали тоа е минути или дури дена подоцна, освен ако тие не ги затвораат прозорецот на прелистувачот, на која точка СЕДНИЦА исчезнува. Така, тоа е ефемерни складирање, тоа е непостојана, а тоа е со цел да отидат штом корисникот затвора нивниот интернет пребарувач - не само што табот, често целиот прелистувач, на тој начин ефикасно да влезете на корисникот надвор. Па, како е тоа нешто всушност спроведува? Да го земеме еден брз поглед на едноставен пример ние погледна во петокот. За оние кои се запознаени, тоа беше толку едноставно како ова. Ова е веб страница, чија единствена цел во животот е да ми каже колку пати сум го посетиле оваа страница. Ова е прв пат овде во понеделникот изјави дека го посетиле, така што вели 0 пати. Но, ако почнам претовар оваа страница, таа вели 1 време, 2, 3, 4, 5, и оваа ќе крајот само продолжи пребројување нагоре, нагоре, нагоре, нагоре, нагоре за секој пат кога јас всушност кликнете Освежи ја на неа. Па, како е ова работа? Дозволете ми да оди во внатрешноста на оваа датотека наречена counter.php. На горниот дел од сето тоа е сино коментари, но интересен дел е тука. On-line 13 ние го нарекуваме оваа функција session_start, и дека е буквално сите што треба да направите ако сакате да имате пристап на оваа специјална superglobal нарекува $ _SESSION. Што го прави сето тоа е можно, а ние ќе се види во еден момент како тоа е можно. Во линија 16 известувањето што правам. Ако клучот, наречен контра - со други зборови, индексот вредност - "контра" постои внатрешноста на оваа низа наречен сесија, тогаш што правам со неа во линија подолу? Што е линија 18 правиш? [Нечујни студент одговор] Што е тоа? [Студент] Чување на вредност. Добро. Тоа е чување на вредност која е во сесија во моментов во нов локален привремена променлива, $ Контра во сите мали букви. Забележете дека PHP е веќе малку мрзливи тука. Забележите немаме било споменување на int или плови или стринг или нешто слично затоа што PHP е слабо внеле, при што не мора да наведете тип на променлива, и во овој случај тука јас не сум дури и го прогласи уште. Јас сум тоа прогласување внатрешноста на овие големи загради и за разлика од C, ова е всушност во ред. Без разлика колку длабоко вгнездена декларација променлива е во PHP - внатрешноста на кадрава голема заграда, во внатрешноста на кадрава голема заграда и слично - тоа ќе во тој момент во времето постои за преостанатиот дел од програмата, за подобро или за полошо. Така што веднаш станува глобална веднаш штом ќе го дефинираме како што го правиме тука. Во спротивно, ако не се најде дека има нешто во СЕДНИЦА superglobal, Јас сум очигледно иницијализацијата на оваа променлива контра на 0, тоа само претпоставувајќи на корисникот никогаш не бил овде. И тогаш ова се разбира е зголемување, контра како? Јас сум ажурирање на вредност која е во внатрешноста на оваа асоцијативна низа со поставување еднаква на она контра моментов е + 1. Ако јас дојдете тука на HTML кодот на страницата, тоа е всушност прилично едноставна. Сè што треба во телото на оваа страница се: "Ти го посетиле овој сајт тој-и-толку пати." И ова е конструкт PHP. Ако го направите