[მუსიკის დაკვრა] რობ Bowden: Hi. მე რობ, და იმედი მაქვს, რომ თქვენ მზად დააყენოს საფონდო ამ გადაწყვეტა. პირველ რიგში, მოდით შევხედოთ რეესტრში. ასე მახსოვს, რომ აქ ჩვენ შემოწმების თუ ფორმა იყო, გამოქვეყნდა ამ გვერდზე. ასე რომ, პირველი, რაც ჩვენ ვაპირებთ უნდა გავაკეთოთ, არის წასვლა სხვაგან. და ჩვენ ვაპირებთ გაწევა რეესტრის ფორმით. ამიტომ რეესტრის ფორმით აპირებს დატოვე to register.PHP. და რა არის იგი აპირებს გამოაგზავნოს? ის აპირებს გამოაგზავნოს სახელი რომ პროფაილი აპირებს შეავსოთ, პაროლი, და დადასტურება - დაგავიწყდათ აკრეფილი ერთხელ. ახლა, როდესაც ეს ფორმა გამოქვეყნდა register.PHP ჩვენ შეასრულოს ამ შემთხვევაში. ეძებს ამ შემთხვევაში, ჩვენ პირველი აპირებს დასტური. ჩვენ გვინდა დავრწმუნდეთ, რომ სახელი და პაროლით არ იყო ცარიელი და, რომ დადასტურება, ფაქტობრივად, სიას დაგავიწყდათ. ერთხელ ჩვენ დავადგინე, რომ ჩვენ შეგვიძლია რეალურად რეგისტრაციაში შესახებ. რას ნიშნავს ეს? ისე, ჩვენ გვინდა ჩადეთ შესახებ ჩვენს მონაცემთა ბაზაში. და ეს არის, თუ როგორ ჩვენ ყველაფერს გავაკეთებთ, რომ. ამიტომ, ჩვენ ვაპირებთ, რომ ჩადეთ მომხმარებლებს მაგიდა სფეროებში მომხმარებლის სახელი, hash და ნაღდი. ნაგულისხმებია ნაღდი იქნება 10,000. და ჩვენ ვაპირებთ, რომ გაივლის, როგორც სახელი, სახელი მეშვეობით POST super გლობალური რომ წარმოდგენილი სახით. და ჩვენ ვაპირებთ დაშიფვრა დაგავიწყდათ. ასე რომ, თუ ეს შეძლო, მაშინ შედეგი იქნება არასამთავრობო ყალბი. იმ შემთხვევაში, თუ ეს ვერ მოხერხდა, მაშინ ჩვენ ვუხდით ბოდიშს. რაღაც წავიდა არასწორი. და რა შეიძლება არ წავიდა არასწორი? ისე, იქ უნდა იყოს უნიკალური სახელი. და ასე შეკითხვაზე შეეძლო ვერ თუ სახელი უკვე არსებობდა მაგიდასთან. ასე რომ, ვთქვათ, რომ ეს იყო უნიკალური სახელი, მაშინ ჩვენ ვაპირებთ შეკითხვის დაიბრუნოს ID, რომ მომხმარებელს. გახსოვდეთ, რომ ID არის ავტო ზრდა. და თუ ეს მოხდება, რომ ვერ ზოგიერთი მიზეზი, მაშინ ჩვენ ვუხდით ბოდიშს რომ ჩვენ ვერ დაიბრუნოს პირადობის მოწმობა. მაგრამ ვთქვათ, რომ ეს არ ვერ, მაშინ ჩვენ დაიბრუნოს ID რა შეკითხვის დაბრუნდა, შესანახად, რომ ჩვენი სხდომა - ასე რომ ჩვენ გვინდა, რომ შეხვიდეთ ამ მომხმარებლის მიერ შენახვის ID სხდომაზე super გლობალური, და საბოლოოდ გადამისამართება ჩვენი პორტფელი. და რომ მას რეესტრში. ახლა ჩვენ ვაპირებთ გადაადგილება გაცემა. ასე გაცემა აპირებს მართლაც მსგავსი შეიქმნა. ჩვენ ვხედავთ, აქ რომ ეს არის კოდი, რომელიც ჩვენ ვაპირებთ, რათა შესრულდეს, როდესაც ფორმა გამოქვეყნდა ამ გვერდზე. მაგრამ პირველი, ჩვენ რეალურად უნდა გაწევა, რომელიც ფორმით. ასე რომ შევხედოთ გაცემა ფორმა, რა სფეროებში არსებობს? ჩვენ ვხედავთ, რომ ყველა გაცემა უკვე ერთი ტექსტში ყუთი სახელით სიმბოლო. და ამრიგად, როდესაც გაცემა ფორმა, რომელიც to quote.PHP ჩვენ ახლა ვაპირებთ შეასრულოს ეს კოდი. და მხოლოდ ცვლადი ჩვენს POST super გლობალური იქნება სიმბოლო. ჩვენ ვამტკიცებთ, რომ დავრწმუნდეთ, რომ ისინი რეალურად გამოქვეყნებული სიმბოლო. და თუ ისინი არ, ჩვენ ვამბობთ, რომ თქვენ უნდა უზრუნველყოს სიმბოლო. ვთქვათ, ისინი არ გთავაზობთ სიმბოლო, გადავხედავთ, რომ სიმბოლო. ახლა გახსოვდეთ, რომ სახე up ალბათ ვერ წლიდან, ასევე, შესაძლოა, ეს არ იყო ძალაშია სიმბოლო უნდა დაიწყოს. ასე რომ, თუ ამ ეძებოთ დაბრუნების ცრუ, ჩვენ გვინდა, რომ ბოდიშის მოხდა, რომ სიმბოლო არ იქნა ნაპოვნი. მას შემდეგ, რაც ჩვენ აღმოვაჩინეთ სიმბოლო, ახლა ჩვენ შეუძლია გამოიტანოს quote.PHP თარგი. რას ჰგავს? ეს მხოლოდ აპირებს ბეჭდვა, რომ წილი რაც აქციების ერქვა ღირს, რაც საფონდო ფასი არის. ახლა რატომ ვიყენებთ ამ htmlspecialchars ფუნქცია? ეს იმიტომ, რომ საფონდო სახელი და სიმბოლო შესაძლოა, რეალურად შეიცავდეს სპეციალურ პერსონაჟი, რომელიც არ უნდა უნდა განიმარტოს, როგორც HTML. ყველა უფლება, ისე, რომ იგი გაცემა. ახლა ჩვენ გვინდა შევხედოთ index.php და პორტფელის. მაგრამ პირველი, ჩვენ რეალურად უნდა აშენდეს პორტფელის მაგიდასთან. აი როგორ ვაპირებთ ამის გაკეთებას. მოდით შევხედოთ სტრუქტურა. და ჩვენ ვხედავთ, რომ პორტფელის მაგიდა აპირებს აქვს პირადობის მოწმობა. ასე რომ იქნება მომხმარებლის ID რომ ჩასმა აქციების. ჩვენ სიმბოლოა, რომელიც იქნება სიმბოლო, რომ ჩვენ ჩასმა აქციების. და შემდეგ აქციების რაოდენობის აქციების, რომელიც შეიყვანეს. ასე მახსოვს, რომ პოსტი pset Spec, ჩვენ დააკონკრეტა, რომ ID და სიმბოლო - ჩვენ შეამოწმეთ ინდექსები, პირადობის მოწმობა და სიმბოლო არის პირველადი გასაღები. ასე მომხმარებლის ID და სიმბოლო pairing უნდა იყოს მხოლოდ, როგორც ჩანს, ერთი დროის ამ მაგიდასთან. ახლა მოდით შევხედოთ კოდი. ახლა index.php აპირებს დაიბრუნოს ყველა ჩვენი პორტფელის ინფორმაცია და არიან ის შესახებ. ასე რომ, პირველი, ჩვენ ვაპირებთ დაიბრუნოს ნაღდი რომ მომხმარებელს გაკეთებული აქვს საწყისი ნაღდი მაგიდასთან. გახსოვდეთ, რომ შეკითხვაზე ყოველთვის აპირებს დაბრუნებას მასივი მასივები. ასე რომ, მიუხედავად იმისა, რომ ჩვენ მხოლოდ შერჩეულ ნაღდი ერთი მწკრივი, ჩვენ მაინც უნდა აითვისებდა, რომ ფულადი ინდექსირებას შევიდა zeroth ინდექსი რიგები და grabbing ნაღდი ინდექსი. ასე რომ, ახლა ჩვენ გვინდა აირჩიეთ ყველა ინფორმაცია პორტფელის მაგიდა რომ არის შესაბამისი ცნობები შესული შესახებ. ჩვენ, რა თქმა უნდა შეამოწმოს, რომ რომ რეალურად შეძლო, რომელსაც ჩვენ ყოველთვის უნდა გავაკეთოთ, როდესაც ჩვენ შეკითხვაზე. მას შემდეგ, რაც ჩვენ ყველა იმ ინფორმაციას, pset სპეც გვამცნობს, რომ ჩვენ უნდა გავაკეთოთ იმისათვის, რომ ლამაზად შესანახად ყველა ინფორმაცია ამ პოზიციების მასივი. ასე რომ ჩვენ looping ზე ყველა პორტფელის ინფორმაცია, ეძებს საფონდო დაკავშირებულია თითოეული ზედიზედ პორტფელის ინფორმაცია, ხოლო შემდეგ შენახვის პოზიცია მასივი სახელი, ფასი, აქციების და სიმბოლო ყველა ასოცირდება, რომ საფონდო. და ბოლოს, ჩვენ ვაპირებთ გაწევა portfolio.PHP გავლით ოდენობით ნაღდი ჩვენ გაკეთებული აქვს, პოზიციების მასივი, რომ ჩვენ უბრალოდ აშენდა და სათაური ამ გვერდი, რომელიც იქნება პორტფელი. მოდით შევხედოთ portfolio.PHP. და ჩვენ ვხედავთ, რომ ძირითადი საინტერესო ნაწილი ამ loop. ასე რომ ჩვენ looping ზე პოზიციებზე array, შექმნა მაგიდაზე, სადაც, რომ მაგიდა - ჩვენ მცხოვრებ თითოეულ row ერთად ინფორმაცია, რომ ჩვენ შიგნით პოზიციების მასივი. კიდევ ერთხელ, ჩვენ უნდა გამოვიყენოთ htmlspecialchars იმ შემთხვევაში, თუ ეს სიმბოლო ან სახელი შეიცავს HTML სიმბოლო. და აქ ჩვენ გამრავლებით ფასი და წილი რომ ჩვენ გვაქვს იმისათვის, რომ რამდენად, რომ ამჟამად ღირებულების შესახებ. და რომ ეს პორტფელი. ახლა ჩვენ შევხედოთ გაყიდვა. ასე რომ, გაყიდვა აპირებს დაბრუნდეს ფორმატი, რომელიც გვქონდა register.PHP. ჩვენ ვხედავთ, რომ სახით აპირებს დაიდება ამ გვერდზე. მაგრამ პირველი, როდესაც ჩვენ ჩატვირთვა გვერდზე, ჩვენ ვაპირებთ, რომ გავაკეთოთ ეს. რა არის ეს აკეთებს? ისე, ჩვენ შეგვიძლია უბრალოდ გაყიდვა გვერდი აქვს ერთი ტექსტში ყუთი რომ მომხმარებელს შემოდის ამ სიმბოლო იმისა, რომ ჩვენ გვინდა, რომ გაყიდოს. მაგრამ ჩვენ ვაპირებთ, რომ იყოს ცოტა უფრო ჭკვიანი და ჩვენ ვაპირებთ აქვს drop ქვემოთ რომ საშუალებას აძლევს მომხმარებელს შეარჩიოს რეალური სიმბოლოები, მათ უკვე აქვთ. ასე რომ, ჩვენ ვიღებთ მომხმარებლის პორტფელი. ჩვენ ვაპირებთ აირჩიოთ პორტფელების ყველა სიმბოლო, რომელიც მომხმარებელს გაკეთებული აქვს, ამჟამად შესული შესახებ. დარწმუნდით, რომ გაამართლა. და ახლა ჩვენ ვაპირებთ loop მეტი დაბრუნდა ინფორმაციას, უბრალოდ grabbing თითოეული სიმბოლო და შენახვა ამ სიმბოლოების მასივი. და ახლა ჩვენ ვაპირებთ გავუწიოთ გაყიდვა ფორმით. ასე რომ, გაყიდვა ფორმით აპირებს მხოლოდ იყოს drop მენიუში, აირჩიეთ. და თითოეული ვარიანტის გაყიდვა ფორმა ვაპირებ უბრალოდ ამობეჭდოთ სიმბოლო რომ ჩვენ მოგვეწონა პორტფელის მაგიდასთან. ასე რომ, გაყიდვა ფორმით აპირებს წარუდგინოს უკან sell.PHP. ეძებს sell.PHP, ეს არის კოდი რომ აპირებს შეასრულოს, როდესაც ჩვენ წარადგინოს ამ გვერდზე. ჩვენ გვინდა, რომ შეამოწმოს, რომ მომხმარებელს რეალურად შევიდა სიმბოლო. ახლა ვთქვათ, რომ ისინი არ - ასე რომ, ახლა ჩვენ გვინდა, რომ დადგინდეს, თუ რამდენი იზიარებს შესახებ რეალურად გაყიდვის და რამდენად ნაღდი შესახებ უნდა მიიღოს გაყიდვის რომ ბევრი იზიარებს. ასე რომ, ჩვენ დაიბრუნოს რაოდენობის აქციების რომ მომხმარებელს აქვს ეს სიმბოლო. ჩვენ ვეძებთ up in პორტფელის მოცემულ შესახებ და ამ სიმბოლო. ახლა დარწმუნდით, რომ რეალურად დაბრუნდა a row. რადგან თუ ეს არ, შესახებ არ რეალურად, რომ სიმბოლო გაყიდოს. ვთქვათ, აქვთ, რომ სიმბოლო, ჩვენ გვინდა, რომ დაიბრუნოს ნომერი აქციების რომ მათ აქვთ. და ახლა გვინდა, რომ ეძებოთ, თუ როგორ ბევრი თითოეული წილი ღირს. ასე რომ, ჩვენ გამოყენებული ეძებოთ ფუნქცია. ჩვენ ვეძებთ up ღირებულება სიმბოლო. თუ ვივარაუდებთ, რომ look up შეძლო, ახლა ჩვენ ვაპირებთ, რომ რეალურად განაახლოს ყველა ინფორმაციას. ამიტომ ჩვენ გვინდა წაშლა პორტფელების აქციების, რომ ჩვენ ყიდის. ჩვენ გვინდა განაახლოთ მომხმარებლის თანხა ნაღდი. და ჩვენ განახლებაზე ეს აქციები ჯერ საფონდო ფასი - ასე რომ, თუ რამდენი ფული მომხმარებლის უბრალოდ გააკეთა. და ახლა ჩვენ გვინდა განაახლოთ ჩვენი ისტორია. ასე რომ, ჩვენ არ მიუღიათ სახე ისტორიას მაგიდა ამჟამად. ასე რომ, ჩვენ დავბრუნდებით ამ. ახლა საბოლოოდ ჩვენ ვაპირებთ გადამისამართება უკან პორტფელი. ახლა მოდით შევხედოთ ყიდვა. ასე რომ, ყიდვა უნდა იყოს საკმაოდ მსგავსი გაყიდოს. ჩვენ ვხედავთ, რომ ჩვენ კვლავ აპირებს შეამოწმეთ თუ ჩვენ წარდგენის ამ გვერდზე. ვთქვათ, რომ ჩვენ არ ვართ მიმდინარეობს ჩატვირთვა ყიდვა ფორმით. ასე რომ რას ყიდვა ფორმით ჰგავს? ჩვენ ვხედავთ, აქ უბრალოდ რეგულარულად შექმნას რომ აპირებს წარუდგინოს უკან buy.PHP. და ის აპირებს აქვს სიმბოლო იმისა, რომ მომხმარებლის შემოდის, რაოდენობის აქციების რომ მომხმარებელს სურს იყიდოს რომ სიმბოლო, და რომ არის ის. ასე რომ, როდესაც ჩვენ წარუდგინოს უკან buy.PHP, ჩვენ ახლა აპირებს შეასრულოს ეს კოდი. ჩვენ კიდევ ერთხელ გვინდა, რათა შეამოწმოს, რომ პროფაილი შევიდა რაღაც მოქმედებს. ასე რომ აქ ჩვენ მიღების დარწმუნებული ვარ, რომ ისინი რეალურად შევიდა სიმბოლო. აქ ჩვენ მიღების დარწმუნებული ვარ, რომ ისინი რეალურად შევიდა აქციების. და აქ ჩვენ მიღების დარწმუნებული ვარ, რომ ისინი შევიდა მთელი აქციების, ისე ისინი არ ცდილობს შეიძინოს ABC აქციების. ახლა ჩვენ გვინდა ეძებოთ ფასი სიმბოლო, ასე რომ, ჩვენ ვიცით, რამდენად ნაღდი ჩვენ უნდა გამოვაკლოთ საწყისი მომხმარებელს. ახლა ჩვენ აირჩიეთ რამდენად ნაღდი შესახებ რეალურად აქვს და დარწმუნდით, რომ რომ შეძლო. აქ ჩვენ grabbing ნაღდი. და ახლა აქ, ჩვენ მიღების დარწმუნებული ვარ, რომ მომხმარებელს აქვს საკმარისი ნაღდი. ასე რომ, თუ რაოდენობის აქციების შესახებ სურს შეიძინოს ჯერ ფასი თითოეული იმ აქციების მეტია თანხა ნაღდი, რომ ჩვენ გვაქვს, მაშინ შესახებ არ შეუძლია, რომ. თუ ვივარაუდებთ, რომ მომხმარებელს აქვს საკმარისი ნაღდი, ახლა ჩვენ გვინდა ჩადეთ მომხმარებლის პორტფელი. კარგად, ჩვენ ჩადეთ მომხმარებლის პორტფელის თუ ეს მოხდება, რომ იყოს პირველად შესახებ ყიდულობს რომ კონკრეტული სიმბოლო. მაგრამ რა, თუ ისინი უკვე მოხდება გარკვეული Apple საფონდო? ისე, ახლა ჩვენ მიღების გამოყენების შესახებ დუბლიკატი გასაღები განახლება განცხადებაში. ასე რომ ეს არის, რის გამოც ადრე ჩვენ მითითებული, რომ ID და სიმბოლო უნდა იყოს ერთობლივი პირველადი გასაღები, ასე რომ თუ ჩვენ ვცდილობთ ჩადეთ ID და სიმბოლო, რომელიც უკვე არსებობს, ჩვენ მხოლოდ განაახლებს აქციების მოიცავს ახალი აქციების, მომხმარებელს ყიდულობენ. ახლა ჩვენ გვინდა განახლება თანხის ნაღდი, რომ მომხმარებელს აქვს, რადგან ისინი უბრალოდ გაატარა გარკვეული თანხა იმ აქციების. და ბოლოს, ჩვენ განახლება ისტორია მაგიდა ერთხელ. რომელიც, კიდევ ერთხელ, ჩვენ შევხედოთ ერთი მეორე. და ბოლოს, ჩვენ გადამისამართება თავში portfolio.PHP. მოდით შევხედოთ ისტორია მაგიდასთან. ახლა გვახსოვდეს, რომ ისტორია მაგიდა უნდა შეინარჩუნოთ ტრეკზე ყველა ყიდულობს და ყიდის, რომელიც ყველა მომხმარებელმა მიიღოს, არა მხოლოდ მიმდინარე აქციების რაოდენობის, რომ მომხმარებლებს აქვთ, რაც პორტფელის არის. ასე რომ ჩვენ შენახვა ტრეკზე შესახებ, რომ ყიდვის ან გაყიდვის, თუ ამ კონკრეტული გარიგების ყიდვა ან გაყიდვა, სიმბოლო იმისა, რომ მიმდინარეობს იყიდა ან გაყიდა, რაოდენობის აქციების რომ ჩვენ ყიდვის ან გაყიდვის, ფასი ერთი წილი რომ მიმდინარეობს იყიდა ან გაყიდა, და ბოლოს, იმ დროს, რომ ამ ყიდვა ან გაყიდვა ხდება. და ეს ყველაფერი ისტორიაში ინფორმაცია, რომელიც ჩვენ გვჭირდება ტრეკზე. ასე რომ, როდესაც ჩვენ შევხედე გაყიდვა, დავინახეთ, რომ ჩვენ ჩასმა შევიდა ისტორიაში გაყიდვა, თუ არა ჩვენ ყიდვის ან გაყიდვის, მიმდინარე დრო შტამპი და მიმდინარე მომხმარებელი, სიმბოლო იმისა, რომ მიმდინარეობს გაიყიდა, რაოდენობის აქციების, რომლებიც მიმდინარეობს გაიყიდა და ფასი საფონდო ამ დროს. ანალოგიურად, ყიდვა, ეს თქვენ გამოიყურება თითქმის იგივე. ერთადერთი განსხვავება არის ის ნაცვლად გაყიდვა, ჩვენ ყიდულობენ. ასე რომ, გაყიდოს და იყიდოს, ჩვენ ჩასმა შევიდა ისტორიები მაგიდასთან ყველა ყიდულობს და ყიდის, რომ ხდება. ასე რომ, ყველა history.PHP უნდა გავაკეთოთ არის დაიბრუნოს ინფორმაციის ისტორია მაგიდა, დარწმუნდით, რომ იგი გაამართლა, და გამოიტანოს ამ ინფორმაციას. ასე ეძებს history.PHP template, საინტერესო ინფორმაცია არის სწორი აქ. ჩვენ looping ზე ყველა ოპერაციების, ბეჭდვა თუ არა ეს იყო იყიდოს ან გაყიდოს, გაფორმებით თარიღი დრო რომ ჩვენ მივიღეთ ამ გარიგების. აქ ჩვენ უნდა გამოვიყენოთ htmlspecialchars შესახებ სიმბოლო, მხოლოდ იმ შემთხვევაში. და ბოლოს, გაფორმებით რაოდენობა აქციები, რომლებიც შეიძინა და ფასი ერთი წილი იმ დროს. და რომელიც აჩვენებს ყველა ისტორია ინფორმაცია, რომ ჩვენ გვჭირდება. და რომ ის ამ pset. ჩემი სახელი არის რობ, და ამ იყო CS50 ფინანსთა.