[Powered by Google Translate] [Walkthrough Problēma komplekts 7] [Zamyla Chan] [Hārvarda] [Tas ir CS50] [CS50.TV] Sveiki visiem, un laipni aicināti Walkthrough 7 CS50 Finance. Tagad mums ir oficiāli darīts ar visiem psets kas CS50, un mēs esam tikai pa kreisi ar vienu citu, kas būs jautri īstenošana par tīmekļa vietni, kur lietotāji var pieteikties uz CS50 Finance un pirkt un pārdot krājumus. Šodien mēs būtu maz instrumenti mūsu rīcībā. Mēs ejam, lai runāt par atļaujām. Ja jums ir web mapi, jūs gatavojas vēlaties, lai ļautu lietotājiem veikt dažus failus bet arī tikai lasīt citiem uzņēmumiem, tāpēc mēs izpētīt atļaujas un kā jūs varat iestatīt tos. Tad mēs ejam apskatīt PHP, HTML un SQL kodu. Pirmkārt, atļaujas. Kad tu esi termināli noteiktā direktorijā, tad ko jūs vēlaties darīt, ir jūs vēlaties palaist chmod komandu. Tas ir, kuriem seko burtiem vai cipariem atbilst tam, ko jūs būtībā vēlas pasauli redzēt, jūs pats redzēt, utt Piemēram, ja jums ir mape, tad jūs vēlaties, ka mape būt izpildāmā ikviens, kas redz to, lai ko jūs varētu darīt, ir, jūs varētu palaist komandu chmod + x un tad nosaukums jūsu mapes. Ja jums ir fails, piemēram, CSS failus vai attēlu failus - piemēram JPEG un bitkartes, lietām, piemēram, ka, vai jebkuru JavaScript kodu - Jūs vēlaties, ka, lai būtu lasāma ikviens, tā, tad ko tu dari, ir iespējams izmantot aizstājējzīmi - kas ir zvaigznīte - lai būtībā norāda, CSS mapē - viss šajā mapē -  Es esmu gatavojas teikt, ka šī būs lasāma ikviens. Ar atļaujām, kad mēs izmantojam burti, mēs varam izmantot arī ciparus vietā. Tātad, jūs redzat, ka galu galā, ja jūs vēlaties kaut ko, lai varētu izpildīt - kas ir pārstāvēta ar numuru 1 - kaut kas ir lasāma ir skaitlis 4 un pēc tam - rakstāms ir numur 2 - un tādējādi būtībā, ja jūs vēlaties kombināciju no tiem, tad jums pievienot tos. Ja jūs vēlaties kaut ko, lai būtu lasāma, rakstāms un izpildāmā, tad jūs varētu pievienot līdz 4, 2 un 1 un kas varētu dot jums 7, tad kad jums ir mape jūs vēlaties, ka būtu izpildāms ikviens - kā arī lasāma un rakstāms - tad jūs darīt, ka 7, 1, 1. Tas būtu 7 par jums, tad 1 par citiem cilvēkiem. Ja jums ir spec, tas būs tiešām norādīt, kuras mapes un kas failus jābūt chmod-ED īpaši. Piemēram, ja jums ir mapes - tie ir 7-1-1 - ja jums ir attēli, vai HTML, CSS, JavaScript, tad tie ir būs 6, 0, 4 - vai 6, 4, 4 - un tad PHP faili ir būs 6, 0, 0. Ideja, ka ir, ka lietotājiem nav reāli redzēt savu PHP kodu, bet tikai varētu redzēt rezultātu. Lieliski! Pārceļas PHP. Vienkārši, ja jūs vēlaties, PHP failu, fails piedēklis. PHP. Jūs varat arī sajauc HTML ar PHP kodu. Ja jums ir HTML fails, piemēram, tad jūs varat pievienot to ar kreiso leņķi, jautājuma zīme, php - nodot savu php kodu - un tad tuvu, ka ar citu jautājuma zīmi un pareizā leņķī. Mainīgie PHP ir daudz vieglāk tikt galā ar nekā mainīgo C. Jebkurš mainīgais tikai sākas ar dolāra zīmi priekšā, un viņi vāji drukāti. Tas nozīmē, ka jums nav jāuztraucas par to, kurā kaut vienāds ar virkni vai veselam skaitlim. Jūs varat vienkārši pateikt, tas ir mans vārds mainīgais un tad tas ir tā vērtība, tāpēc tas būs vieglāk tikt galā ar tur. Vēl viena lieta ir, ka PHP ļauj izmantot asociatīvo masīvu. Jūs varat vienkārši definēt masīvu, piemēram, jūs varētu C pasakot, dolāra zīmi-nosaukums jūsu masīvs-vienāds, un tad kvadrātiekavās ir būtībā tikai vērtību sarakstu visu masīvā elementiem. Bet, PHP, ko jūs varat arī darīt, ir norādīt pamatā - tas ir veids, piemēram hash funkciju. Jūs varat norādīt indeksu - ko jūs gatavojas to nosaukt - un tad kas atbilst vērtībai. Ja jūs tiešām iet ar 1 =, b = 2, c = 3, tad jūsu masīvs pie indeksa dotu jums 1. Tas PSET sasildīs jūs ar dažiem PHP kādā tās posmā jautājumiem, un tad mēs nirt CS50 Finance. Mums ir pāris - mums ir dažas funkcijas, būtībā, īstenot šajā mājas lapā. Mēs vēlamies, lai ļautu lietotājiem reģistrēties mūsu mājas lapā ar lietotāja vārdu un paroli. Mēs vēlamies, lai viņi varētu skatīties savu cenas piedāvājumu, un tad mēs varētu izdrukāt šo citātu nosaukumu, kā arī pašreizējo cenu, kas tas ir. Mēs vēlamies, lai viņi varētu redzēt portfeli visas akcijas, kas viņi ir nopirkuši līdz šim. Mēs arī vēlamies, lai ļautu viņiem iegādāties krājumus, kā arī tos pārdot. Un tad beidzot, mēs vēlamies, lai viņi varētu redzēt vēsturi no visiem darījumiem, kas tie esam padarījuši. Tad, visbeidzot, kad esat īstenoti visu, kas, tad jūs esat brīvi īstenot vienu papildus funkciju. Mēs iedziļināties tiem. Tie var būt vai nu ļauj lietotājiem iegūt papildu naudu, noguldot papildu naudu, vai jūs varētu ļaut tiem mainīt savu paroli, vai kaut kas tamlīdzīgs, e-pastu viņiem kvīti, kad viņi pērk vai pārdot akciju. Tur sarakstu ar iespējām, kas jums varētu īstenot sevi, tā ka pēdējais tur. Tā kā šis ir tīmekļa vietne, jūs puiši ir arī daudz brīvības, lai pielāgotu to. Mēs do sniegt dažas CSS kodu, bet jūs noteikti brīvi iekniebt to, lai tā izskatās nicer, bet pamatā tas ir pamata funkcionalitāte tāpēc vienmēr atsaucas uz spec par to, ko jūs tiešām ir nepieciešams iekļaut tur. Pēc spec, mēs ejam, lai, izmantojot ierīci kā arī serveri. Tas būs hosting mūsu mājas lapā, lai mums, savā vietējā servera. Ja jūs izpildiet šos norādījumus un unzip PSET 7 izplatīšanas kodu savā virtuālā uzņēmējas / vietējā uzņēmēja mapi,  tad jūs varat vienkārši apmeklēt http://localhost/ Google Chrome armatūru, un tad jūs varētu sasniegt kodu, kurā jūs esat rakstiski PSET 7. 7 PSET nāk ar ķekars sadales kodu, un cerams we've - caur visiem pirms šīs psets - pieraduši mūs Pārlasot sadales kodu, saprastu, kas funkcijas jau ir paredzēti, un to, kā mēs varētu izmantot tiem un citas funkcijas, ko mēs ejam, lai būtu īstenošanai. Šajā gadījumā, mums ir 3 mapes. Mums ir HTML mapi, ietver mapi, un Veidnes. Ko mēs gatavojas darīt ar šo PSET ir veida atdala domāšanu - plānošanas domāšana - par PHP kodu ar faktisko vizuālo aspektu. Mums būs viens PHP failu, kas dara visu domāšanu, skan datubāzē, izdrukā lietām, ir ja paziņojumi - lietas, piemēram, ka - un tad, kas būs nodot datus mūsu veidnes failu - vai template.php failu. Ko tas būs jādara, ir nolasīt datus, un tad tas būs to izdrukāt. Mēs varam ārstēt veidnes kā "mēms", jo mēs patiešām vēlamies viņus , dara daudz darba, aprēķinot lietas. Mēs vēlamies, lai mūsu kontrolieriem to darīt. Mazliet par to - pieņemsim to apskatīt dažus no izplatīšanas kodu. Šeit mums ir mūsu index.html failu, un tas ir diezgan tukšs. Būtībā, ko tas dara - tā saka, labi, es esmu gatavojas pieprasīt configuration.php failu. Mēs neredzam, ka labi tur, bet tas būtībā zvanot configuration.php failu, un izpildes to. Pēc tas, ka tas notiek, lai padarītu portfeli. Izciršanas ir funkcija, tāpēc, ja mēs esi kontrolieris, mēs saucam apmetumu, mēs arī tā failu un tad dati, ko mēs esam asociētais jo, tāpēc, ka tas būs zvanīt portfolio.php--veida nokārtojot šo datu, lai portfeli var tikt galā ar to. Un tagad, lūk, mums ir mūsu login.php veidlapu.  Tas ir kontrolieris, kas būtībā rūpējas par pieslēdzoties Lūk, tā pārbauda, ​​vai veidlapa tika iesniegts šīs lietas un nodarbojas ar apstiprināšanas iesniegumu. Mēs izpētīt šo atvainojamies funkciju. Ja mēs vēlamies, lai izdrukātu kļūdas ziņojumu, mēs izmantojam atvainoties un kas būs novirzīt lietotāju uz konkrētu lapu kas būs izdrukāt konkrēto kļūdas ziņojumu, ka mēs norāda. Turpinot par to griezīsies datubāzē - we'll nokļūt vairāk, ka vēlāk. Tad jūs redzēsiet, ka uz leju šeit, ja veidlapa nav iesniegts, tad tas padara formu. Tas nozīmē, ka tā iet uz login_form.php, tāpēc pieņemsim apskatīt to. Login.php patiesībā, ja mēs redzēt HTML nodarbojas ar faktisko vizuālo aspektu. Šeit mums ir ieejas frāzi lietotāja vārdu, ievadi paroli, kā arī iesniegt pogu. Tas ir tiešām kur vizuālais aspekts un HTML forma ir gatavojas notiks. Lūk, tā saka, ka tas būs jāiesniedz līdz noteiktam metodi, sauc pēc. Mēs nokļūt starp metodēm atšķirības - post pret nokļūt, tur ir arī kaut ko sauc runājot - mēs nokļūt šīs metodes vēlāk, bet par interesi šī PSET, Es ļoti iesakām izmantot amatu. Mēs zinām, ka būtībā, kad šī forma ir iesniegta - no login_form.php-- tad tas iet uz rīcību - login.php-- būtībā iet visās šajās no tiem veidos parametru uz login.php. No šī veidlapas rezultāti ir ietvertas šo ziņu asociatīvā masīva. Indeksi dažādu elementu pēc masīva ir tieši tas, ko jūs norādiet šeit. Jūs sakāt, ka šī ieejas vārds ir lietotājvārds. Ar šo vienu vārdu ir parole. Līdzīgi, jūs redzēt lietotājvārdu, kā indeksa asociatīvo masīvu tur. Ja mēs ejam uz ietver mapi, mums ir šis funkcijas failu, kas gatavojas būt ļoti noderīga. Visas šīs funkcijas tiek īstenotas, lai jums. Jums nav nepieciešams īpaši īstenot kādu no šiem sevi, bet viņi gatavojas ļoti noderīga. Mēs esam atvainojamies, kas, kā es teicu iepriekš, būs pamatā izdrukāt kļūdas ziņojumu Jums par īpašu lapā - apology.php. Tad mums ir dump, tādēļ, ja jūs vienkārši piezvanīt izgāztuves un tad iet uz mainīgo, tad tas dos jums uz lapu, kas būs redzams, ka mainīgo jums. Tad mēs esam logout, kas būtībā beidzas noteiktā lietotāja sesiju. Lookup būs noderīga. Tā kā mums ir darīšana ar pēdiņām un krājumiem, mēs ejam, lai spētu - un tas ir būtībā reālā laika. Mums ir nepieciešams zināt, ko šie akciju vērtības, tāpēc mums ir uzmeklēšanas funkcijas, kas nodarbojas ar Yahoo dokumentāciju krājumu. Kad jūs meklēt noteiktu simbolu krājumu, tas atgriezīsies pie jums akciju simbolu kā arī vārdu un pašreizējo cenu šo krājumu. Tas ir uzmeklēšanas funkcijas. Tad mums ir darīšana ar MySQL, tāpēc mēs esam gatavojas vēlas izpildīt atsevišķus jautājumus uz mūsu SQL datubāzē. Mums ir vaicājums galā - lai veida abstraktu dažas šīs out. Mēs ejam, lai būtu iet visā virkni mūsu SQL vaicājumu - un visi mainīgie, kas iet tajā - un ko tas dara, ir faktiski izpildīt ka ​​mums. Tā vietā, lai rakstītu visu šo veic katru reizi, kad jūs vēlaties, lai vaicājumu - , iesaistot visus rezultātus no šī vaicājuma - tad jūs varat vienkārši piezvanīt vaicājumu funkcijas, un tas būs atpakaļ uz jums - atkarībā no tā, ko jūs izmantojat, lai jūsu vaicājumam - iespējams rinda visus rezultātus, kas atbilst pieprasījumam vai līdzīgu. Vairāk par šo vēlāk gan. Visbeidzot, mums ir novirzīt kas, kā norāda nosaukums, novirza jūs uz citu lapu. Un tad mums ir apmetumu, ko mēs ejam, lai būtu zvanot pāris reizes. Kad tu esi kontrolieris, jums zvana padara vērā veidnes lapā un tad iet uz vērtībām ka šablons tad nodarbojas ar. Šīs vērtības ir iespējams būs darīšana ar produkcijas veida, kuru vēlaties tiks parādīta jūsu veidnes lapā. Labi. Tie ir funkcijas, un tur ir daudz vairāk, lai šo sadales kodu. Es aicinu jūs iet caur šo un izpētīt pats. Arī spec iespējams staigāt jūs ar dažiem citiem elementiem izplatīšanas kodu. Šeit ir no funkcijām atrasti functions.php kopsavilkums. Labi. Pirmais uzdevums ir ļaut lietotājiem reģistrēties mājas lapā. Tieši tagad, tur ir pieteikšanās forma mājas lapā, un jums ir nodrošināti ar dažiem lietotājiem ar paroles. Jūs varat izmantot šos lietotājvārdiem un piesakieties, bet jūs vēlaties, lai ļautu cilvēkiem izdarīt savu lietotājvārdus un pievienot sevi mājas lapā. Ja reģistrācijas izkārtojums ir diezgan līdzīgs pieteikšanās formu, izņemot lietotājvārds nav jau esošu, un lietotājam ir vajadzīga arī, lai nodrošinātu jaunu paroli, un tad parasti mums ir paroles apstiprinājumu. Kad lietotājs izejvielas visas šīs informācijas, mēs vēlamies, lai pievienotu tos mūsu datubāzē lietotājiem. Mēs ejam, lai ir datu bāze - SQL datubāzi - ka mēs ejam, lai norādītu. Šajā datu bāzē, mēs ir tabula ar visiem lietotājiem satur savu lietotājvārdu, savu paroli, kā arī cik daudz naudas viņi ir. Jo reģistrā, mēs vēlamies, lai viņi varētu ienākt informāciju. Mēs vēlamies parādīt, ka formu. Mēs vēlamies, lai pārliecinātos, ka viņu parole - ka viņi ieradušies vienu, un tad arī, ka paroles atbilstu kad tie stājas to divreiz. Pēc visu, kas tiek darīts, - pieņemot, ka šīs kļūdas tiek pārbaudīti - tad mēs vēlamies, lai pievienotu šos lietotājus mūsu datu bāzē. Visbeidzot, kad esat reģistrēts, tas ir diezgan ērti, ja jums nav nepieciešams pieteikties vēlreiz kad jūs esat reģistrēts, tāpēc mēs esam gatavojas pieteikties tos uz mājas lapā, ja viņi reģistrēti veiksmīgi. Pirmais uzdevums ir parādīt formu, un tas faktiski būs - tas viss reģistrācijas process būs jāmodelē diezgan cieši pēc pieteikšanās izņemot vietā login.php jums varētu būt register.php. Instead of login_form.php--kas ir veidnes - Jums ir jāreģistrējas formu. Jūs vēlaties pievienot vēl vienu lauks - paroles apstiprinājums lauks - nevis tikai vienas lietotājvārdu un vienu paroli. Tālāk, mēs vēlamies, lai pārbaudītu, vai paroles sakrīt vai ir tukša. Mums ir kontrolieris - register.php--kas gatavojas rūpēties par darot šo pārbaužu. Ja forma ir jāiesniedz ar POST metodi, tad visi šie mainīgie ir ietvertas post masīvs. Jūs vēlaties pārliecināties, ka pēc masīva vērtība indeksa parole atbilst apstiprināšanas elementu. Jūs vēlaties pārliecināties, ka tie nav tukšs, un jūs vēlaties, lai pārliecinātos, ka viņi paši. Viena ērta lieta par PHP ir, ka mums nav nepieciešams izmantot virkni salīdzināt vairs. Mēs varam izmantot vienāds-vienāds operators  lai pārbaudītu, vai stīgas ir vienādas ar vienu citu. Par kļūdu apstrādi, jūs vēlaties, lai atvainoties. Atvainoties, jums vienkārši izsauktu funkciju  un tad norādiet veidu ziņu, ka jūs vēlaties, lai izejas. Jūs pēc tam vēlaties pievienot lietotāju datu bāzē. Līdz šim, visi mēs esam bijuši dara ir tikai vietējos darījumus ar formu rezultātiem. Tagad mēs vēlamies, lai pievienotu tos mūsu datu bāzē. Lai to panāktu, mums vispirms vēlaties pārliecināties, ka lietotājvārds nav tukšs. Saprast, ka uz mājas lapā, jūs nevarat būt vairākiem lietotājiem ar tādu pašu lietotājvārdu, lai jūs vēlaties, lai pārliecinātos, ka tad, kad jūs ievietot kaut savā datu bāzē - ievietot jaunu lietotāju - tad jūs nesaņemat sadursmes starp iepriekš esošo lietotājvārdu un lietotājvārdu, ka lietotājs mēģina iesniegt. Par šo, kad jūs izpildīt vaicājumu - Ievietojot noteiktu lietotāju ar savu paroli un sākotnējo summu skaidrā naudā - kad tu sauc, ka vaicājums, tad MySQL būs tiešām atgriezties viltus ja tas neizdodas. No lietotāju struktūra ir tāda, ka lietotājvārds ir unikāla vērtība, lai jūs varētu būt vairāk nekā viens. Kad jūs mēģināt ievietot jaunu rindu ar lietotājvārdu, kas jau pastāv, kas notiek, lai atgriezties viltus - kā Būla vērtību nepatiesa. Delikāta lieta šeit ir tas, ka jūs vēlaties, lai pārbaudītu, ja rezultāts ir rezultāts Jūsu pieprasījumam. Ja tas neizdodas, tad jūs vēlaties, lai pārbaudītu ar trīskāršu vienāds operators. Tas ir patiešām gatavojas pārbaudīt, vai ir neveiksme vai ne, tā kā tikai vienkāršs vienāds-vienāds, tas būtu taisnība, ja rinda ir tukša. Rezultāts neveiksmes, ja ir starp lietotājvārdiem sadursme ir faktiskā viltus vērtību. Lūk, kā jūs varētu ievietot datu bāzē. Šeit ir vaicājums, ka jūs varētu palaist stingri SQL. Viena lieta ir tas, ka jūs faktiski var iet uz mājas lapā, kas pārvalda jūsu SQL datu bāzi un spēlēt aptuveni tur, ievadot manuāli nu vērtības vai rindas. Tas būs izejas ko SQL produkcija ir. Jūs varat arī palaist SQL komandas savā datu bāzē  un tad redzēt, kas sintakse varētu būt, un tad pārveido to vaicājumu funkcijas, kas mums ir 7 PSET, kas būs ļoti līdzīgs jautājumiem, kas jums patiešām darbojas. Ja es gribēju, lai ievietotu jaunu rindu manā lietotāju tabulā, tad es varētu norādīt ievietot lietotājiem, kas ir nosaukums mana galda. Tad es varētu norādīt kolonnu nosaukumus. Tad es varētu nodrošināt vērtības kopā ar savu paroli. Paroles mūsu lietotāju tabulā netiek glabāti kā tikai virknē. Tie tiek saglabāti kā šifrētu versija, tādējādi jūs vēlaties, lai palaistu funkciju kapenēm uz faktisko parole, un kas dos jums pareizo veidu uzglabāšanu par lietotājiem masīvs. Running tas ievietot jaunu rindu savā lietotāju tabulā. Lai risinātu ar vaicājuma funkciju, Pirms C mēs izmantojām procentu zīmi kā vietturi. Tāpat, pats jēdziens viettura attiecas šeit. Ar vaicājumu, jūs norādāt visu vaicājumu, izņemot, ja jūs nodarbojas ar mainīgajiem kā savu ieguldījumu uz vaicājumu, tad nevis faktiski liekot tos iekšā - kā tad, kad mums bija printf paziņojumus C. Mēs varētu likt stīgu un tad ir vietturi tur, un tad pēc katras komats, norādiet, kas ar mainīgo mums bija. Lūk, mēs ejam, lai izmantotu uz jautājuma zīmes apzīmējumu kā mūsu vietturi un tad iet uz katra rādītāja, attiecīgi, lai, vietturus - ja šie mainīgie vajadzētu iet. Tātad šeit, pirmais jautājums zīme būtu jāaizstāj ar faktisko lietotājvārdu tad otrā jautājuma zīme ar paroli. Tad beidzot, kad esat reģistrēts tos un pievienot tos datu bāzē, tad jūs vēlaties pieteikties tos tīmekļa vietnē. Mums ir sava veida super pasaules mainīgo sauc sesiju. Sesija aizņem zināmu ID, un ka ID atbilst lietotājam, kas pašlaik ir pieteicies collas Ko jūs vēlaties darīt, ir atrast to, ko viņu lietotāja id ir un tad noteikt, ka sesijas id kā ka īpaša lietotāja id. Funkcija, kas jūs vēlaties, lai izmantotu šeit ir SQL komandu kas tiks atrasti pēdējo ievietoto ID numurs no sava galda. Tad rindas sauksim - it'll zvaniet id - it'll piešķirtu nosaukumu skaitu, ka tas atgriežas. Tas būs zvanu, ka id. Tagad mēs esam pabeiguši reģistrā, un mēs varam virzīties uz citēt. Quote ļauj lietotājam ievadi nosaukumu ar noteiktu krājumu, un tad tas būs atpakaļ īpašības no minētā krājuma. Ko jūs vēlaties darīt, šeit ir ir kontrolieris un dažas veidnes. Šajā gadījumā, mēs esam nāksies kontrolieris, kas gatavojas darīt visu domāšanas mums. Tas notiek, lai uzmeklētu simbolu un tad iet uz vērtībām, lai veidnes, kas būs izdrukāt. Mēs ejam, lai ir 2 veidnes šeit. Mēs ejam, lai ir 1 veidni, kas nodrošina formu, kurā lietotāji gatavojas ievadi vārdu krājumu - vārdu akciju. Tad mēs arī gatavojas vēlaties citu veidni, kas parāda šīs vērtības. Jūs varat apskatīt saitā par piemēru tam, kā jūs varētu būt forma, kas pieņem ievadi, izņemot šeit, mēs tikai gribam 1 lauks. Mēs nevēlamies lietotājvārdu un paroli laukā. Mēs vienkārši vēlamies 1 teksta lauks, kas ļauj lietotājam ievadi nosaukumu noteiktu krājumu. Tad jūs vēlaties nosūtīt šos datus - kad esat paskatījās šo krājumu - līdz quote_form.php. Lookup atgriezīsies simbols krājumu, nosaukumu, un cenu. Tiem ir ietvertas asociatīvā masīva. Meklēt uzmeklēšanas funkcijas iekšpusē functions.php vairāk informācijas par atgriešanās veidiem tiem. Lieliski! Tātad tad beidzot, jūs vēlaties, lai parādītu akciju informāciju. Jūs vēlaties, lai, iespējams parādīt - you'll vēlas piekļūt šiem mainīgajiem. Kad esat uz cenu mainīgā - kā arī vārdu un simbols - tad jūs vēlaties, lai parādītu tiem, kas savā veidnes lapā. Ka veidnes lapā varētu saukt show_quote.php vai kaut. Jūsu quote.php lapa padarītu šovu citātu un pēc tam nodot visās no šīm vērtībām. Tad jūsu php lapā, jūs faktiski izdrukāt šīs vērtības ar HTML aspektu lapā. Jūs tikai izmantot drukāšanas funkciju un iet cenā. Ir 2 veidi, - jūs varat saķēdēt to ar dot operatoram, vai izmantot vietturi. Lietotāji beidzot gribam būt pirkšanas un pārdošanas krājumiem. Mēs vēlamies, lai viņiem kaut kādā veidā redzēt visus krājumus, šobrīd ir. Mēs ejam, lai izsauktu to portfelis. Portfelis būtu, iespējams, katram lietotājam, satur ķekars rindu uzskaitot veida akciju, kas viņiem ir, un pēc tam, cik daudzi no tiem, kam tās ir. Mūsu esošā tabula - šobrīd mums ir lietotāju tabula mūsu datu bāzē. Kas satur lietotāja lietotājvārdu, kā arī to paroli un cik daudz naudas viņi ir. Nav reālais veids, kā uzglabāt visus savus krājumus šajā. Tas nav tāpat kā mēs varam ievietot jaunas kolonnas par katru akciju. Tas būtu ļoti, ļoti ilgi rinda, jo mums ir bezgalīgs daudzums gada veidu krājumus, ka tie varētu būt. Tātad, tā vietā, ko mēs darīsim, ir tajā pašā datu bāzē, mums būs lietotāju tabula, bet tad mums būs arī portfeļa tabulu. Portfelis tabula tiks noteikti saistīts ar lietotāju tabulā, bet portfelis tabulas struktūra būs krājumu informāciju, cik akcijas šo krājumu lietotājs ir, kā arī lietotāja īpaši ID numurs. Jums ir lietotāju tabula, kas ir ID, kā arī lietotāja vārdu, hash - kas ir parole, šifrētu paroli - un tad naudas summa, ko viņi ir. ID numurs būtu saistīts ar ID numuru no portfeļa. Portfelis vienkārši ir par akciju simbolu, kā arī akcijas - akciju skaitu attiecīgajā krājumā, ka lietotājs ir. Šajā portfeļa galda jums būs būtībā visas akcijas glabājis visu par jūsu vietnes lietotājiem. Vēlāk, lai norādītu tikai noteiktu lietotājs akcijas - tikai to portfolio - Jūs iegūt vērtības no sava portfeļa galda, piemēram, ka ID numurs ir īpašs šim lietotājam. Kad jūs parādīt portfeli, jūs vēlaties ziņot katru no krājumiem lietotāja portfelī. Jūs vēlaties ziņot par akciju skaitu un pašreizējo vērtību šīm akcijām. Ka pašreizējā vērtība šīm akcijām nav saglabāta portfeļa tabulā jo tas būs atjaunināšanu - pie minimālā - katru dienu ar Yahoo. Lai saņemtu šo informāciju, jūs nevarat atsaukties, ka no jūsu SQL vaicājumu. Kas funkcija nodrošina, ka mums? Kāda funkcija iegūt cenu? Tas ir lookup, lai, izmantojot lookup par konkrētu simbolu dos jums daudz informācijas. Tas būs sniegt jums 3 gabalus informāciju - vārdu, simbolu, kā arī cenu. Kad jums lookup noteiktu simbolu, tad jūs varat iegūt cenu, un tad jūs varat izmantot cenu, lai parādītu jūsu portfolio. Portfelis būtu parādīt arī lietotāja pašreizējo naudas atlikumu. Ka lauks ir saglabāta jūsu lietotāju tabulā. Tātad, tad atceroties kā mēs būtībā kam - Mēs esam ņemot dažādus PHP failus. Mēs ejam, lai būtu kontrolieris, kas būtībā dara visu domāšanu jums. Un tad mums ir veidni, kurā veidni nodarbojas ar outputting datus. Jums ir jādomā par to, ko mainīgie kontrolieris būs nepieciešams veikt collas Ja mums ir darīšana ar portfeli, kas izejām katru vārdu, simbolu, un dalīties numuru, kā arī pašreizējā cena krājuma, tad jūs vēlaties atrast kādu veidu, kā būtībā šķērso, - Jūs varat iet masīvā vērtību, kas atbilst to. Paskatīsimies piemērs tam, kā jūs varētu paņemt visu krājumu pieder konkrētam lietotājam. Tas nav darīšana - vēl - ar cenu akciju. Ko tas varētu darīt, ir palaist vaicājumu. Tas iegūtu simbolu, kā arī akcijas no - Es esmu aicinot šo tabulu, bet šajā gadījumā tas būtu? Kāda ir tabulas nosaukums, mums ir darīšana ar, kas ir simbols un akcijas konkrētam lietotājam? Tas ir vai nu izmantotāji vai portfolio. Portfelis. Ko tas varētu darīt, ir vaicājums portfelis par simboliem un akcijām konkrētam lietotājam. Lūk, es saku, (SELECT simbols, akcijas no TBL - bet tā vietā galda, jūs gatavojas aizstāt, ka ar portfeli. "Ja" būtībā ir mans stāvoklis. Es saku es tikai vēlos, lai saņemtu šos asociatīvo masīvu, kas atbilst  līdz šim šāds nosacījums - ID vienāds.  Tad es varēšu vietturi tur un tad sesijas id. Ko tas varētu darīt, ir teikt par katru rindā rindās. Tas ir veikls veids, nevis faktiski kam izveidot uz cilpas kas vairākkārt uzsvērts pār visiem indeksiem, tad PHP jūs varat būt par-katrs cilpa. Ja jums ir dota masīvs, tad jūs varat teikt, es esmu dodas uz zvanu katru pēctecīgu elements - Es esmu dodas uz zvanu katrs elements šis vārds. Tātad, par katru no šiem elementiem, es esmu dodas uz zvanu viņiem šo, tad es varētu darīt. Šajā katram, jums ir rindas, savu faktisko masīvs, un katras rindas jūs gatavojas zvanīt rindu. Katru reizi, kad tas izpilda ķermeņa, tas iet uz augšu, un tas atjauninās rindu uz nākamo elementu rindās. Tagad, runājot par pērkot krājumus, ko mēs vēlamies darīt, ir iegūt krājumu, ka lietotājs vēlas pirkt un summu akciju, ka lietotājs vēlas pirkt, un tad - ja viņi vēlas - piebilst, ka akciju, lai viņu portfelī. Acīmredzot, ja viņi pērk kaut ko, tad tas notiek, lai samazinātu naudas summu, viņiem ir tā, ka tas notiek, lai samazinātu savu naudu. Mēs ejam, lai būtu darīšana ar atjauninātu portfeli, kā arī lietotāju tabula, kas satur naudu. Bet vispirms, jums ir nepieciešams, lai saņemtu faktisko krājumu un akciju daudzumu ka lietotājs vēlas. Šim, jums būs nepieciešams HTML formu, kas prasīs simbolu krājumu ka jūs vēlaties iegādāties, kā arī akciju skaitu. Tad jūs vēlaties pievienot. Jūs vēlaties, lai izvēlētos dažas vērtības. Mēs esam izgājuši cauri šim mazliet jau, bet, kad jūs mēģināt iegūt noteiktas rindas - ielādēt dažas rindas no SQL tabulas, Tas ir šādu sintaksi. Jūs izvēlaties, un tad, ja jūs norādīt zvaigzne, kas būs pamatā atgriezt visu, visu rindu jums. Tad atkal, Jums ir stāvoklis, kurā, un tad jūs noteikt - Es tikai vēlos lietotājvārdu būt vienāds ar pasta-in, tāpēc tas būs tikai paņemt rindu lietotājiem, kas atbilst pasta-in. Ja lietotājs vēlas, lai pievienotu par akcijas portfeļa, Jums ir nepieciešams, lai pārbaudītu dažas kļūdas. Jūs vēlaties pārliecināties, ka lietotājs var reāli atļauties krājumus, tādējādi jūs vēlaties, lai pārbaudītu savu naudu. Pirms tam mēs izmantojām zvaigzni paņemt veselu rindu no SQL tabulas. Bet šeit, mēs faktiski var vienkārši norādīt, ka es tikai gribu 1 vērtība - Es tikai gribu naudu. Tātad šeit, tas varētu atgriezties naudu par lietotājam ar ID numuru 1. Ja lietotājs jau ir nopircis konkrēta krājuma, bet tad pērk vairāk šo krājumu, tad jūsu portfolio - jūs nevēlaties atsevišķu līniju, cita rinda, kas satur šo jauno darījumu. Jūs tiešām vēlaties, lai atjauninātu summas. Viss, kas ir mainās patiešām ir summa akciju ka lietotājs pieder. Ja jūs izmantojat ievietot vaicājumā - tā ir tikai ievietot savā portfelī visas no šīm vērtībām - lietotāja ID numurs, kā arī krājumu simbols ka viņi pērk un akcijas, tad jūs arī vēlaties, lai norādītu, labi, ja es uzskriet dublikāta atslēgu - Šajā gadījumā, dublikātu atslēga ir ne tikai lietotāja identifikators, bet arī akciju simbols - jo jums var būt tikai - mūsu premisa ir, ka jūs varat tikai 1 rinda  kas atbilst 1 īpašu simbolu. Tātad, par dublikāta atslēgu - ja jums rodas sadursmes tur - jūs tikai gatavojas atjaunināt akcijas uz jauno vērtību. Akcijas vienāds neatkarīgi no mums bija pirms plus akciju skaitu, lietotājs pērk. Tagad, ka mēs esam atjauninājuši portfeļa tabulu, mēs vēlamies aktualizēt lietotāja naudu. Tas ir kas lietotājiem galda, lai mēs ejam, lai būtu atņemot noteiktu summu no naudas. Jādomā, tas būs naudas vienāds naudas Mīnuss - un tad noteiktu summu. Lai atjauninātu naudu, jūs varētu - ja es gribēju atņemt naudu no pasta-in, tad es varētu palaist šo vaicājumu - "Update lietotāju un tad noteikti naudas kolonnu naudā - Es noņemt 9999 dolāru tikai tad, ja lietotājvārds ir vienāds ar pasta-in. Taču šajā gadījumā mēs nevēlamies, lai atņemtu 9999 īpaši. Mēs vēlamies norādīt, labi, mēs vēlamies, lai atņemtu pašreizējo cenu akciju reizināta ar akciju skaitu, ka viņi pērk. Tagad mēs esam ļāvuši viņiem redzēt visus krājumus, kas viņi ir, kā arī nopirkt vairāk krājumu. Mēs esam arī iepriekš ļāva viņiem meklēt pašreizējo cenu krājumu. Šeit mēs gribam, lai viņi varētu pārdot. Vispirms mēs vēlamies parādīt būtībā - mēs vēlamies, lai viņi varētu redzēt visus krājumus, kas viņi ir, tāpēc šeit mēs vēlamies parādīt visus rindas no portfeļa. Ja viņi izvēlas pārdot noteiktu akciju, tad mēs esam gatavojas pieņemt, ka viņi vēlas pārdot visu to. Tās ir ne tikai gatavojas pārdot 50% no savām akcijām, viņi gatavojas pārdot 100% no tās. Mēs varam vienkārši izdzēst visu rindu no portfeļa. Mēs varam izdzēst dotajiem lietotāja akcijas noteiktu simbolu. Tur par to sintakse. Tad mēs vēlamies aktualizēt naudu. Mēs ejam, lai būtu pievienojot naudas apmērā, akciju viņi pārdod reizināts ar pašreizējo cenu akciju - nevis cena, par kuru viņi nopirka to, bet gan cena, par kādu tie ir - pašreizējo cenu, ja viņi pārdod to. Lai atsauktos uz pašreizējo cenu akciju, Jūs vēlaties izmantot lookup, kas dos jums cena par krājumu Patlaban. Tagad mums ir palikuši ar vēsturi, ko jūs vēlaties, lai ļautu lietotājam, lai sekotu visiem saviem darījumiem - vēlas redzēt, kad viņi pārdeva kaut ko, ja viņi nopirka akciju. Mēs vēlamies, lai norādītu laiku, kad viņi to izdarīja, kā arī cik daudz viņi nopirka un ko krājuma tā bija. Vai mums ir kāds šobrīd pastāvošās struktūras, kas norāda, ka? Nu, mums ir portfolio, kas parāda, cik krājumus, kas lietotājam ir attiecīgajam akciju. Bet mēs esam strukturēšanā portfeli tādā veidā, ka tas atjauno, kad mēs iegādāties vairākas, tā vēsture būtu - ja jūs pērkat Apple, 10 akcijas par to, un tad vēlāk par 5 pārdot, tad jūs vēlaties, lai redzētu, kas atsevišķi kā atsevišķas darbības, atsevišķās rindās. Tā, ka pasākumi iztēloties, ka mūsu portfolio tabulā būtu tikai atjauninājums uz šo konkrēto rindā,  tāpēc mēs, iespējams, gatavojas vēlaties citu tabulu. Mūsu datu bāzē, mēs esam mūsu lietotājiem galda, mums ir mūsu portfeļa galda, un tagad mēs droši vien vēlaties vēstures tabulu. Ka vēsture tabulu var sekot līdzi pašreizējo datumu, kā arī īpaši akciju simbolu, kā arī cik daudz akcijas, un tad kādas darbības tā ir - vai jūs pirka šīs akcijas vai tu tos pārdot. Lai risinātu ar datumu, ir veidi, kā jūs varat izdarīt pāris. PHP ir veids, lai sekotu datumu, kurā jūs varat meklēt pats. SQL jūs varat izmantot vai nu tagad vai pašreizējā laikspiedolu. Tas ir atkarīgs no jums. Tikai pārliecinieties, ka katru reizi, kad lietotājs pērk vai pārdod, jūs atjaunināt savu naudu šajā lietotāju tabulā, jums tiks atjaunināt rindas, kas portfeļus tabulā, tad jūs arī atjaunināt vēsturi, tāpēc tur ir būs 3 atsevišķas SQL vaicājumi, kas jums tiks zvana tur. Mums ir ķekars funkcionalitāti tagad. Tikai pāris atgādinājumiem, ka jūsu indeksa failā, jūs vēlaties saistīt ar vismaz savu - bet jūs vēlaties, lai ļautu lietotājam saistīt ar buy.php lapā. Kas notiek, lai ļautu lietotājiem - buy.php ir kontrolieris, tā ka notiek vai nu sūtīt jums - tas notiek, lai nosūtītu jums formu, kas ļauj jums meklēt lietas uz augšu. Mums ir vēsture. Mēs esam izslēgšanās, iegūt citātu un pēc tam pārdod. Tie ir pie minimālā, ko jūs vēlaties, lai parādītu. Runājot par portfeļa, portfelis ir faktiski rāda indekss lapā. Ja mēs ejam uz indeksu, šeit mēs redzam, ka tas padara portfolio.php un iet uz asociatīvā masīva - būtībā nosaukums vienāds portfeli. Tātad, tas ir kontrolieris. Ja mēs ejam uz matricas portfolio.php, tad viss tas ir ir - parāda būtībā attēlu, kas saka, ak, šī lapa ir izstrādes stadijā. Vēlāk, kad jūs iet uz - you'll iet garām jo būtībā detalizētāku informāciju. Nevis tikai nosaukuma, jūs, iespējams, iet vairāk lietām. Kad jums ir tās vērtības, tad portfolio.php var tikt galā ar šīm vērtībām un drukāšanas tos jebkurā veida secībā. Kad esat īstenoti visi no tiem, jums arī nepieciešams, lai īstenotu 1 vairāk funkciju. Tas var būt vai nu ļauj lietotājam mainīt savu paroli, lai atjaunotu savu paroli, ja tie esam aizmirsuši to - tik par paroles atiestatīšanas, tad jūs, iespējams, arī vēlaties rediģēt reģistrēt tā, ka tas ļauj viņiem norādīt e-pastu, tāpēc, ja viņi aizmirst savu paroli, tad viņi var saņemt to. Viņi var droši ievadīt savu lietotājvārdu un pēc tam e-pastu tiks nosūtīts uz tiem ar saiti, lai varētu nomainīt savu paroli. Jūs varat būt kaut kas ļauj lietotājiem saņemt kvītis Katru reizi, kad viņi pērk vai pārdod kaut ko, un tad beidzot, ļauj tiem pievienot naudas, lai viņu mājas lapā. Tikai, lai dotos atpakaļ uz jēdzienu kontrolieru un veidnes mazliet. Jums ir kaut kas līdzīgs - tā jums ir kontrolieris šeit. Tieši tagad, mēs meklējam uz login.php piemērs. Kad mums ir kontrolieris, būtībā tas gatavojas veikt 2 lietas. Kad mums ir kontrolieri, mēs esam šajā gabalā, ka mēs esam arī sava veida nodarbojas ar kad mums ir formas, kā arī. Kontrolieris būs pamatā ir atsevišķas darbības - vienu, ja veidlapa jau ir iesniegts, un pēc tam divas, ja lietotājs nāk uz šo lapu pirmo reizi un joprojām ir ieejas, kas veido. Es esmu gatavojas lēkt uz šo lietu pirmo pirms došanās līdz pirmajam gadījumam, kam formu iekšā Šeit mēs sakām, ja veidlapa ir jāiesniedz kopā ar metodi post - nav jāuztraucas par to mazliet. Vai nav jāuztraucas par to pārāk daudz, bet saprotu, ka būtībā šī funkcija nodarbojas ar vai veidlapa ir iesniegta vai nav. Šis nosacījums ir patiess, ja lietotājs ir iesniedzis veidlapu. Ja ne, tad mēs esam gatavojas vēlaties, lai izsauktu apmetuma login_form.php, un tad iet uz titulu. Šī sadaļa ir tikai pamatā gatavojas parādās galvenē. Kas tas ir būtībā saka, labi - labi, ja lietotājs iet uz login.php un nav reāli čats, tad es gribu, lai nosūtītu tos uz lapu, kas ir šo veidlapu kas tām ļauj ievadīt lietotājvārdu un paroli. Tad es eju uz login_form, un tad, ka ir faktisko formu. Tad, kad lietotājs apgalvo, ka forma, viņi gatavojas iesniegt to login.php ar metodi pastu. Tad es esmu patiešām gatavojas ienākt šajā sadaļā manu ja-cits cilpa. Tad tas ir šeit, ka mēs galā ar vērtībām, kas ievadīti formā. Tas ir šeit, ka mēs galā ar tiem. Tad, kad jūs nodarbojas ar šīm vērtībām - ja jums ir darīšana ar - saka mums ir darīšana ar quote.php lapā, kur kāds var ievadīt akciju ka viņi vēlas meklēt, un tad redzēt, ka displejs - tas ir sava veida līdzīgs šeit. Šeit mums ir pieteikšanās formu - you'd iespējams, ir citātu veidā - bet tad, kad lietotājs ir faktiski apgalvoja, ka informāciju, tad jūs vēlaties kontrolieris iet citā veidnē kas parādītu viņiem, ka aktuālo informāciju. Tātad, tad tiesības ap šeit, tad jūs, iespējams - ap beigām savu stāvokli šeit - ja metode vienāds post - tad jūs, iespējams, vēlas, lai padarītu citu lapu - izrāde quote - kas sūta jūs uz lapu - show_quote.php-- un tad šo lietu būs atsauce šīs vērtības. Vai ir jēga? Mums ir kontrolieris, kas pamatā nodarbojas ar 2 gadījumos - vai jūs esat ievadījis veidlapu vai ne. Ja jums nav ievadīta formu, tad tas būs novirzīt jūs uz veidlapas, kas būs pēc tam nodot jums atpakaļ uz šo lapu. Tad, kad jums ir informācija kontrolieris, ka organisms tiks galā ar šo informācija, kas nepieciešama - vai nu meklē up vērtības par krājumu, un tad, kad tā ir paskatījās uz augšu šīs vērtības un ir tos labi formatēta masīvs, tad var iet, ka masīva uz veidnes lapā  kas nodarbojas ar outputting minēto informāciju. Atkal, jo tas ir web, tas būs jautri. Mēs esam ārpus C tāpēc mēs esam ne tikai uz ASCII un ka termināļa izejas, lai būtu jautri ar to. Jūs varat padarīt to par vizuālo, kā jūs vēlaties. Jūs varat ļaut lietotājiem ieejas miljoniem dolāru laikā, vai tās ierobežot un būt īsti nozīmē un ļaut viņiem tikai ievadīt 1 santīma laikā vai kaut kas tamlīdzīgs. Noteikti pārliecinieties, lai būtu jautri ar to. PHP kods ir mazliet vienkāršāk, ka tas ir mazliet vieglāk, lai izplānotu savu pseudocode uz faktisko īstenošanu. Tātad, noteikti ir jautri ar šo, jo tas faktiski ir mūsu pēdējā gabals CS50. Ar to, ka šī bija Walkthrough 7. Kad esat pabeidzis skatīties walkthrough un gatavo savu PSET, tad tie bija arī psets, un tagad mēs esam uz gala produktu - Pēc mēs caur 1 viktorīnā. Tad cerams, jūs varat izmantot rīkus, kas jūs esat iemācījušies no psets - ne tikai sintakse, bet vairāk abstrakts jēdziens, kā veikt dažas - patīk, es gribu darīt, un tad faktiski īsteno to. Mācīties, kā cīnīties ar sintaksi un sadales kodu. Lasot citu cilvēku kodu, un pēc tam interpretējot, ka, izmantojot jau esošās funkcijas. Tātad, labu veiksmi ar pēdējo PSET. Tas ir bijis prieks vadīt walkthroughs. Es ceru, ka viņi ir bijuši noderīgi, lai jums. Tie bija walkthroughs, un paldies ļoti daudz. [CS50.TV]