[მუსიკალური სათამაშო] DAVID Malan: ეს არის CS 50 და ეს არის დაწყების კვირაში ცხრა. და რა გვეგონა ჩვენ გვინდა გავაკეთოთ დღეს არ არის მხოლოდ დახურვა თავი გასულ კვირას მასალა, სადაც ჩვენ ფოკუსირებული სერვერზე ვებ-პროგრამირების PHP და SQL, ზოგიერთი მონაცემთა პერსონალი. ჩვენ ვსაუბრობთ ცოტა უსაფრთხოების დღეს და შემდეგ გადასვლის კლიენტის მხარეს პროგრამირების ენა ცნობილია როგორც JavaScript. მაგრამ პირველი, ზოგიერთი შესყიდვა. თქვენ შეიძლება გავიხსენოთ, რომ ოთხშაბათი, მე გადმოცემულია დაწერა ვებგვერდზე, მიიღო მომხმარებლის შეყვანის by HTML ფორმა, რომელიც შემდეგ ინახება რომ მომხმარებლის input სახელი, ტელეფონის ციფრები, და მობილური ტელეფონები მატარებლების მონაცემთა ბაზაში. და შემდეგ მე მქონდა პატარა command ონლაინ სკრიპტი დაწერილი PHP რომელიც უნდა iterate მეტი რიგები მონაცემთა ბაზაში და გააგზავნეთ ტექსტური შეტყობინებები. მიუხედავად იმისა, რომ რამდენიმე, რამდენიმე მცდელობა, ჩვენ არ მიიღოს, რომ სამუშაო ბოლოსთვის. ასე გავატარე მთელი კვირა სამუშაო რომ კოდი გვაძლევს წარსულში წერტილი სადაც ჩვენ შეჩერდით, სადაც ყველა მე მივიღე ბოლოსთვის ოთხშაბათი იყო ამ ტექსტის გაგზავნა საწყისი Margo როგორც მე იბრძოდა, მოყვება ტექსტი გაგზავნა სხვა კლასელი, თქვენ მოხვდით ამ დავით. მოჰყვა ამ ერთი, შესანიშნავად ხელს უწყობს. განაგრძო, ძალიან გამამხნევებელია. მე თითქმის მივიღე ეს, სანამ then-- და ეს არის ის, რომ შენიშვნა დასრულდა ოთხშაბათს. და შემდეგ, რეალურად, ალბათ, ჩემი საყვარელი, მომენტი მოგვიანებით, ამ მოვიდა. Damn Live Stream. ამიტომ დღეს, ჩვენ დაფიქსირება ამ სწრაფი შეხედეთ რა მე ვაკეთებ შემდეგ. ასე რომ ყველა ეს კოდი არის შესაძლებელი ონლაინ გასულ კვირას, კვირაში რვა, კოდის. და დაინახავთ, რომ მე გაიარა, და მე რეალურად დაასუფთავეს რამ ცოტა. მე გააცნო რამდენიმე სხვა მახასიათებლები SQL მონაცემთა ბაზაში. მაგალითად, ვიდრე უბრალოდ მიიღოს გადამზიდავი var char როგორც მე ვფიქრობ, მე on the fly გასულ კვირას. ნაცვლად განისაზღვრება, როგორც რასაც Enum. და ზოგიერთი თქვენ შეიძლება არ მინახავს ეს როგორც ჩვენ შესწავლილი C. Enum ფაქტიურად თვისება C, სადაც შეგიძლიათ ჩამოვთვალოთ მთელი bunch მუდმივები და მივანიჭოთ მათ ავტომატიკა ღირებულებები, როგორც ერთი, ორი, სამი, ოთხი გარეშე მძიმე კოდი ნომრები. ასე რომ, SQL ოპერირებს იგივე, რომლის მიხედვითაც, თუ თქვენ გაქვთ მონაცემთა ბაზა ველი, რომ თქვენ მხოლოდ მინდა, რომ მიიღოს ერთი სასრული ღირებულებები, თქვენ შეგიძლიათ სიტყვასიტყვით დააკონკრეტა ის როგორც მე არ კეთდება იქ ოთხი პოპულარული აშშ მობილურში მატარებლები. ასე რომ, მე რომ. მე და მთელი რიგი ცვლილებები, როგორც ასევე, ყველაზე მნიშვნელოვანი რაც იყო მიიღოს ელ მუშაობს იმიტომ, რომ გავიხსენოთ, რომ ეს პროგრამა დაეყრდნო, რომელიც ზოგადად მოუწოდა ელ SMS gateway, რომელიც მხოლოდ ლამაზი გზა ამბობდა, რომ Verizon და AT & T, და სხვები მხარს უჭერენ სერვერზე, რომლის მიხედვითაც, თუ იგი იღებს ელ, იგი გარდაქმნის მას SMS და უგზავნის ტექსტი გაგზავნა ვიღაცის ტელეფონში. ასე რომ, თუ მე სწორად, აქ არის ახალი და გაუმჯობესებული სახით რომ აპირებს გაიგო ახალი და გაუმჯობესებული კოდი, რომელიც თქვენ შეგიძლიათ ითამაშოთ ონლაინ რეჟიმში. და ეს იმედია ჩემი ტელეფონი beep რაღაც მომენტში. ასე რომ, პირველი, მე ვაპირებ აკრიფოთ ჩემი სახელი. მეორე, მე არ ვაპირებ გავაკეთოთ ეს ამ დროს. მე ვაპირებ არ შეამოწმოს ელემენტის. და ეს მხოლოდ ცოტა რამ ასე რომ არ შექმნა საათი პოსტ წარმოება მუშაობა, როგორც მე ბოლო დროს. ახლა იქ არის ჩემი ტელეფონის ნომერი. მე აირჩიოთ Verizon. და აქ, მოდით მივმართოთ ამ მიკროფონი აქ, და მიზნად ისახავს ამ დროს ჩემი ტელეფონი აქ. მე ვაპირებ დააწკაპუნეთ რეგისტრაცია, რომელიც უნდა იმედია დააყენოს ის მონაცემთა ბაზაში. ახლა მე ვაპირებ წასვლა command line პროგრამა, რომელიც გაწვევას ეწოდა dot slash ტექსტი, და ჯვრის თქვენი თითების. აქ ჩვენ მივდივართ. [PHONE dings] [ტაში] DAVID Malan: ასე უფრო fun ვიდრე ამას ეს არის fun, რა თქმა უნდა, თუ მე ეს. მაგრამ ეს უფრო მეტი გართობა, ვიფიქრე, რომ თუ ჩვენ განთავსებულია ერთ იმ ფილმის მომენტები სადაც, როგორც რაღაც ნამდვილად ცუდი მოხდა მსოფლიოში, და როგორც ყველა NSA ხალხის მობილური ტელეფონები დაიწყება beeping ტექსტი შეტყობინებები საგანგაშო მათ ეს ფაქტი. ასე მეგონა, რომ ჩვენ შეეცდება ხელახლა იგივე აქ, რომლის დროსაც არ იყენებს მონაცემთა ბაზაში, ნაცვლად წინასწარ დაწერა პროგრამა, რომელიც ასე გამოიყურება. ეს არის index.php-- და მე ზუსტად ამ კოდი ონლაინ როგორც well--, როგორც ჩანს, უბრალოდ უწევს form.php, გამოყენებით MVC style პარადიგმა, რომ ჩვენ ვისაუბროთ უფრო დეტალურად პრობლემა კომპლექტი შვიდი. რომ ფორმა საკმაოდ მარტივია. ის აპირებს წარუდგინოს ფაილი სახელად here.php ფოსტით. და ეს აშკარად სთხოვს სახელის და ტელეფონის ნომერი, და შემდეგ მეშვეობით, ე.წ. აირჩიეთ მენიუ, ეს ვაპირებ მოგცემთ მინიმუმ ოთხი პოპულარული აშშ მობილურში მატარებლები, და შემდეგ საშუალებას გაძლევთ ეფექტურად მიიღოს დასწრება დააჭირეთ აქ. და აქ, იმავდროულად, აპირებს სესხის ზოგიერთი კოდი ბოლო დროს. და თუ უბრალოდ skim ეს თქვენ ნახავთ, რომ არსებობს მთელი bunch შეცდომა შემოწმებისას. მაგრამ სილამაზით ბოლოს ის არის, რომ ჩვენ არ წერილობით მონაცემთა ბაზაში დღეს. ჩვენ შენახვის მარტივი და უბრალოდ გაგზავნის out იმედია ტექსტის გაგზავნა მეშვეობით ფუნქცია დაწერა უკანასკნელი რამდენიმე დღის ზარი ტექსტი, რომელიც ფუნქციები. php, რომელიც კვლავ ხელმისაწვდომი. ასე რომ, თუ გსურთ მიიღოს ამ. ჩვენ არ უნდა შენახვის არაფერი. გადადით ამ URL აქ რეალურ დროში. ნუ შეიყვანთ მას უბრალოდ არ არის, მაგრამ მოდით ვნახოთ, თუ შეგვიძლია ერთი ამ ფილმის მომენტები, სადაც ყველას მობილურში იწყება beeping, იმედია მხოლოდ ერთხელ ამ წელს განსხვავებით 2011 სადაც წავიდა horribly awry. და კიდევ რა, რომ მისამართი, თქვენ უნდა ნახოთ სუპერ მარტივი ფორმით რომ, თუ თქვენ გაქვთ სახელი, მობილურ ტელეფონზე ნომერი, და მობილურში გადამზიდავი შეესაბამება სიაში, წავიდეთ წინ და შეავსოთ ფორმა. მაგრამ არ მოხვდა წარუდგინოს მხოლოდ ამჟამად. ფორმა ხდება ასე გამოიყურება. წავიდეთ წინ და ტიპის თქვენი სახელი, ტელეფონის ნომერი. ახდენენ, ვინმე აპირებს წინ მრუდი. ეს OK. OK, ყველას შევსებული ფორმა. ეს უნდა მუშაობა ტელეფონი, ძალიან, თუ გნებავთ. ყველა უფლება, თქვენი ნიშნების, მიიღეთ მითითებული, წასვლა. მოხვდა აქ. რა? პოსტები ვფიცავ ღმერთს, მე გამოცდილი ეს რამდენჯერმე შეხვდა. შენ ეს? [INTERPOSING ხმები] დავით Malan: OK, მომხმარებლის შეცდომა, ალბათ. რომ ორი. ის მუშაობდა ორი გარეთ რამდენიმე ასეული, სამი, ოთხი. OK, რომ კარგია. ოთხი ხუთიდან სისწორის როგორ შესახებ. ასე რომ, რა მოხდა? ასე რომ, სავარაუდოდ, არ ხედავს თქვენი ეკრანები, რატომ შეიძლება ეს არ errored? ეს, ალბათ, რომ მხოლოდ ცდილობს, რომ ძალიან ბევრი კავშირები ჰარვარდის ფოსტის სერვერზე ყველა დროს ერთხელ იგივე IP მისამართი. მე უბრალოდ გამოცნობა, რადგან მე არ გვაქვს იმის ფუფუნება, ტესტირება ეს კოდი ზოგიერთ 300 ადამიანი წინასწარ მაგრამ ახლა ვხვდები, რომ რომ მინიმუმ უნდა მიღებული გაწეული სამუშაო ამ დროს. ყველა უფლება, ასე რატომ არის ეს ყველა უფრო გერმანე რა ხდება? ისე, პირველ რიგში, სწრაფი რამდენიმე განცხადებები. ასე რომ, ერთი, თუ გსურთ შეუერთდება Chang, და ნიკ, და სხვები ლანჩი ამ პარასკევს, ამის გაკეთება RSVP ჩვეულებრივი URL არსებობს. თუ თქვენ ფიქრი კონცენტრაცია ან აკეთებს საშუალო CS, თუ თქვენ მეორე, ან freshman, ან თუნდაც უმცროს ან უფროს ამ ეტაპზე და მაინც შესუსტებას კურსები, გააცნობიეროს, რომ ინჟინერიის სკოლა შეგროვება უფასო თამაში ბენ და ჯერი ნაყინი და რჩევა ამ ოთხშაბათს მას შემდეგ, რაც კლასის at 4:00 PM in CS შენობა at Maxwell Dworkin. თუ ეს არის ძალიან სწრაფი ეკრანზე, უბრალოდ to cs50.harvard.edu დიდი ბმული Facebook ღონისძიება სადაც შეგიძლიათ უფრო დეტალურად. ამასობაში, ვიფიქრე, რომ გამოსწორების ერთი სხვა რამ მე goofed ოთხშაბათს. გამოდის, რომ მარკოზის ID on Facebook არ იყო სამი. ეს იყო ოთხი. გამოდის, რომ მას გამოცდა ადრინდელთან შედარებით მახსოვს. მაგრამ რა ეს იგრძნო, როგორიცაა საშუალება უნდა გავაკეთოთ არის გაიყვანოს URL მოსწონს ეს. გამოდის, რომ Facebook API, განაცხადის პროგრამირების ინტერფეისი, რომელიც არის მექანიზმი, რომლის დროსაც თქვენ შეუძლია მოითხოვოს მონაცემთა პროგრამულად Facebook- ზე და დავუბრუნდეთ მანქანა იკითხება ინფორმაცია, არ ვებ გვერდები მაგრამ მხოლოდ ნედლეული ტექსტი, რაღაც მოუწოდა JavaScript Object ნოტაცია. და რეალურად, თუ ვარ ამ URL, და მასშტაბის, ჩვეულებრივ, ეს არის ჩანაწერები საჯაროდ ხელმისაწვდომი ინფორმაცია. და საინტერესო დეტალი აქ არის მხოლოდ, რომ მისი ID მართლაც, ხმების ოთხი, რომელიც მე მიხვდა, როგორც კი ეს. თქვენ შეგიძლიათ ამის გაკეთება საკუთარ თავს, თუ თქვენ იცით, თქვენი Facebook ნიკი თუ თქვენ გაქვთ ერთი. მხოლოდ ჩაწერეთ it up ზედა არსებობს. და არც ერთი არის კერძო. მე მხოლოდ ამით კი ამ ინკოგნიტო რეჟიმი. ასე რომ, მე კი არ ხართ სისტემაში შესული. და თქვენ ხედავს, რომ მე აშკარად პროფაილი ნომერი 6.454 on Facebook, რომელიც არ არის ძალიან ცუდი ამ დღეებში. ამიტომ anyhow, თქვენ ასევე ვხედავთ დამატებითი ინფორმაცია არ არსებობს. და სასარგებლო ასპექტი რომ არის, რომ თქვენ შეიძლება დაწეროთ პროგრამა, რომელიც რატომღაც აერთიანებს ინფორმაციას მოსწონს ეს თქვენი განცხადება. შეგიძლიათ მისცეს მომხმარებლებს შეხვიდეთ თქვენს ნახვა, არ იყენებს საკუთარი საბაჟო სახელი და პაროლს, მაგრამ იქნებ მათი Facebook შესვლა და მიიღოს ინფორმაცია კი მათი მეგობრები, თუ ეთანხმება ამ, ან მსგავსი. ასე აღნიშნავენ, რომ CS50, ძალიან, აქვს საკუთარი APIs, ერთი კურსი კატალოგი მონაცემებით, ზოგიერთი ჩახუტება მენიუები სასადილო დარბაზები, ყველა შენობები და ადგილას კამპუსში ჩვენ გვაქვს API ისევე რომ თქვენ შეგიძლიათ შეკითხვის მსგავსად და მიიღეთ უკან ტექსტური მონაცემები, რომ თქვენ შეგიძლიათ ინტეგრირება შევიდა PHP ან JavaScript, ან თუნდაც, მიუხედავად იმისა, რომ ნაკლებად ხშირად, C დაფუძნებული საბოლოო პროექტი. მართლაც წინ საბოლოო პროექტი რამდენიმე ეტაპები. თქვენ მივიღე ელ us მეორე დღეს. გააცნობიეროს, რომ ეს წინადადება გამო ამ მომავალ ორშაბათს. ეს არ არის აუცილებელი სავალდებულო, მაგრამ თქვენ უნდა მიიღოს თქვენი სწავლების პრაქტიკის დამტკიცების მიღების ნებისმიერი ცვლილების შემდეგ. და მაშინ წინ არის რიგი სხვა ეტაპები. ასე აჯავრებენ თქვენ, ძალიან, ზოგიერთი შესაძლებლობები, ჩვენ გვაქვს bunch of ეს ტონი ნათურები. და ზოგიერთი თქვენ ბიჭები ახლა უკვე რამდენიმე ამ თქვენს საცხოვრებელი ოთახი ასევე. და მათაც აქვთ API. გავიხსენოთ, იმ ორობითი ნათურებით კვირის წინ, რომ დენ ბრედლი და ანსელ Duff შექმნა ჩვენთვის. ისინი გამოიყენება პროგრამული ინტერფეისი ეს ნათურა, რომელიც იმ მომენტში არის plugged შევიდა ელექტროენერგიის და შემდეგ უსადენო უკავშირდება ცოტა რამ მოუწოდა Bridge ქვემოთ აქ, როგორც პატარა როუტერი საკუთრების ამ კონკრეტულ მოწყობილობაზე. მაგრამ აღმოჩნდება, რომ, თუ მე ვიცი, თუ როგორ უნდა გაუგზავნე HTTP შეტყობინებები, როგორც ჩვენ ყველა ახლა ამის გაკეთება, მე შეგიძლიათ გააგზავნოთ გაგზავნა მოსწონს ეს ეს ნათურა ჩართოთ იგი ან გამოსართავად ან რაიმე ნომერი სხვა ოპერაციების შესახებ. შეამჩნია, რომ ის არ მიიღოთ, რომ ეს არ შეგიძლიათ. არსებობს მეორე მოუწოდა დააყენა. იქ, ფაქტობრივად, რამდენიმე სხვა ასეთი ზმნები. მაგრამ შეამჩნია გზა არსებობს, სლეში API, ხაზი new დეველოპერი, სლეში ნათელი, სლეში ერთი, სლეში სახელმწიფო. ეს აშკარად მხოლოდ გზა, რომ კომპანია, Philips, გადაწყვიტა თქვენ უნდა მოხვდა ერთად HTTP მოთხოვნის თუ თქვენ გსურთ შეცვალოთ სახელმწიფო ნათურა გამოყენებით HTTP 1.1. მაშინ შეამჩნია ცარიელი ხაზი. და მერე ბოლოს რა ჰგავს მასივი გარკვეული, ეს კიდევ ერთხელ აპირებს ეწოდოს JavaScript Object ნოტაცია, ან Jason. და რას ხედავთ აქ არის ის, რომ არსებობს სამი გასაღები ღირებულება წყვილი. ერთ-ერთი ძირითადი ეწოდება. და მისი ღირებულება, როგორც ჩანს, იქნება ჭეშმარიტი. სიკაშკაშე 128, რომელიც არის რაღაც int. და შემდეგ გარდამავალი დრო ნულოვანი, რომელიც, როგორც ჩანს, რამდენი ხანი აპირებს მიიღოს, რომ ეს რამ. ასე რომ, ახლა ეს ნათურა off. მაგრამ თუ მე ზუსტად ამას მიადევნე მომეცით წასვლა პატარა cheat ფურცელი რომ დენ შეიქმნა advance-- და მე ვაპირებ წავიდეთ წინ და ასლი შემდეგი ბრძანება. Curl, როგორც ზოგიერთი შესაძლოა, მოპოვებული on CS50 განიხილოს არის სასარგებლო, როგორიცაა Telnet ასეთი რომ თქვენ შეგიძლიათ სიმულაცია HTTP მოთხოვნა, კონკრეტულად აყენებს. შემიძლია ეს მონაცემები კონკრეტულად რა, ჩვენ მხოლოდ დაინახა მომენტში წინ კონკრეტულად ამ URL აქ. და მაშინ Curl აპირებს გაუმკლავდეს ყველა საჭირო headers და parsing იქ. ასე რომ ყველა მე უნდა გააკეთოთ კოპირება ამ შევიდა ტერმინალის ფანჯარაში და შემდეგ დააჭიროთ. და ნათურა გრძელდება. და ეს ყველაფერი გადის ჩემი კომპიუტერის wirelessly რატომღაც ქვემოთ ხიდი, რომელიც შემდეგ საუბარი ეს ნათურა. მე შემიძლია ამის გაკეთება რაღაც. მე შემიძლია ეს რამ წასვლა წითელი მაგალითად. შემიძლია მაგალითად, რათა ეს ის მწვანე. მე შემიძლია წასვლა ლურჯი. და შენიშნავს, რომ თითოეულ ამ შემთხვევები, ყველა რომ მე იცვლება არის ე.წ. ტონი, ღირებულების რეალურად მისცეს მას გარკვეული ფერი. ნება მომეცით, ჩასვით ეს ერთი ისევე. ახლა ეს ლურჯი. და თქვენ შეგიძლიათ კიდევ fancier რამ where-- მოდით წავიდეთ მწვანე. და მე ვერ გავაკეთებ, ეს კი რა თქმა უნდა, ჩემი საკუთარი კოდი. მაგრამ API თავად მხარს უჭერს ხმაურიანი ოპერაცია მსგავსი, რომელიც ახლა ადარდებს us შემდეგი 30 წამი. ისე, რომ ერთი გემოვნების, თუ რა შეიძლება გააკეთოს API, ეს ერთი, მათ შორის ნათურები. გაითვალისწინეთ, რომ CS50 აქვს რამდენიმე წყვილი Google Glass თუ გსურთ მინდა დაძლევის რაღაც გასწვრივ იმ ხაზები, Arduino Unos, რომელიც არის პატარა კომპიუტერი, არსებითად, პატარა მიკროსქემის ფორუმში რომ შეგიძლიათ დაკავშირება ხაზები და სხვა რამ და რეალურად კონტროლი თქვენი რეალურ სამყაროში გარემოში. და მაშინ არსებობს რამდენიმე ახალი სათამაშოები, რომ გვაქვს. ეს ერთი სიტყვა უბრალოდ ჩამოვიდა მეორე დღეს ფოსტით Myo სამკლაური. და ვფიქრობდი, რომ ეს არის გზა თქვენ აღფრთოვანებული პროექტები რომ თქვენ შეიძლება გამოიყენოთ ერთად ეს აპარატურა რომ ითამაშოს ამ მოკლე კლიპი ისინი იყენებენ აჯავრებენ ეგ რომ ჩვენ ვცხოვრობთ ამ მომავალში. [მუსიკალური სათამაშო] დავით Malan: ასე რამდენიმე კვირის განმავლობაში, ძალიან შეიძლება, რომ მაგარი CS50 სამართლიანი. სხვა მოწყობილობა, რომელიც ჩვენ აქვს bunch, რომ ჩვენ ბედნიერი სესხის out for პროექტები ეწოდება მოძრაობის კონტროლერი. ეს არის პატარა USB მოწყობილობა თქვენ დაკავშირება კომპიუტერი, გაძლევთ საშუალებას ურთიერთქმედება თქვენი ლეპტოპი, Mac ან PC, თითქოს თქვენ ჰქონდა, როგორც Xbox Kinect და რეალურად ფიზიკური შუამდგომლობა ბევრად როგორც ვხედავთ, ამ ხედვა მომავალში. [მუსიკალური სათამაშო] დავით Malan: ასე რომ, თუ თქვენ გაქვთ არ ვიცი, როგორ რამე მაგდაგვარს შეიძლება იყოს გამოგონილი ან მუშაობა წლის ტექნიკის დონეს, არ აქვს მნიშვნელობა. მას შემდეგ, რაც რამდენიმე თვის განმავლობაში CS50, და გაგება პროგრამირების უფრო ზოგადად, და ვებ პროგრამირების უფრო ცოტა ხნის წინ, და შემდეგ ასევე APIs და HTTP, თქვენ უნდა ხელმისაწვდომობის მეშვეობით პროგრამული APIs თუ არ მინდა სესხება ერთი ასეთი მოწყობილობების, რომ რეალურად გაიგო ეს და არ უნდა ფიქრი ძირითადი განხორციელებას დეტალები, რომელიც სრულიად შეესაბამება ეს ცნება layering აბსტრაქცია, რომ ჩვენ ჩანს მთელი სემესტრის განმავლობაში. ასევე მთელი კვირის განმავლობაში, დაინახა წყვილი სიუჟეტებით. თავდაპირველად, წასვლა სემინარები, თუ მინდა ვისწავლოთ რაღაც მეტი ნებისმიერ რიგი საკითხები. იხილეთ URL არსებობს. და ეს ერთი გაიგზავნა ჩემს მიერ Chang, ვინც იცით, ვინ არის ბეჭდვის ჩვენი არმია სპილოები. და ეს იყო სათაური ასეთია. მე შეშინებული of my new TV. რატომ ვარ შეშინებული, რომ ეს რამ და თქვენ მინდა იყოს ძალიან. ასე რომ, ჩვენ ახლა მეტიც სემესტრში, ძალიან, სადაც კი, თუ თქვენ გაქვთ ოდნავი გაგება როგორ ინტერნეტში მუშაობს და HTTP, და უსაფრთხოების, მსგავსი რამ უნდა დაიწყოს დაჭერა თქვენი თვალის. არამედ, მიხვდებით არის თუ არა ეს ყველაფერი ან არ არის ფაქტობრივი საფრთხეები. ამიტომ მე მივიღე რამდენიმე ნაწყვეტები ამ სტატიის აქ. და სიუჟეტი ასეთია. მე ახლა მფლობელი ახალი smart TV, რომელიც ჰპირდება სიტყვით ნაკადი მულტიმედიური შინაარსის, თამაშები, app, სოციალური მედია და ინტერნეტ ამჟამად, მე და ტელევიზორი ძალიან. ერთადერთი პრობლემა ის არის, რომ მე ახლა ეშინია გამოიყენოს იგი, ამბობს ავტორი. თქვენ იქნება ძალიან, თუ წაიკითხავთ მეშვეობით 46 გვერდი Privacy Policy ტელევიზიით. თანხის მონაცემები ამ რაც აგროვებს შემაძრწუნებელია. ეს დავთრის სად, როდის, როგორ და რამდენ ხანს ტელევიზიით. ის ადგენს თვალთვალის cookies, როგორც ჩვენ განვიხილეთ, და შუქურები შექმნილია შესამჩნევია, როდესაც თქვენ გაქვთ პოპულარულები კონკრეტული შინაარსი ან კერძოდ ფოსტის გაგზავნა თუ თქვენ გსურთ შეამოწმოთ ელ ტელევიზიით. ეს მონაცემები პროგრამები გამოყენება, საიტები თქვენ ესტუმრებით, და თუ როგორ ურთიერთქმედება შინაარსის, ყველაფერს რომ მეშვეობით smart TV. იგი ასევე, creepier ამაზე ეს არის ჩემი addition-- აქვს ინტეგრირებული კამერა სახის აღიარება. მიზანია უზრუნველყოს ჟესტი კონტროლი TV და საშუალებას გაძლევთ შეხვიდეთ პერსონალური ანგარიშის გამოყენებით თქვენი სახე. ერთის მხრივ, გამოსახულებები შენახული TV ნაცვლად ატვირთული კორპორატიული სერვერზე. On downside, ინტერნეტ კავშირი ხდის მთელი TV დაუცველი ჰაკერები, რომლებიც აჩვენა უნარი მიიღოს სრული კონტროლი მანქანა. უფრო შემაშფოთებელია, რადგან თუ ეს არ იყო ჭკვიანი საკმარისი, არის მიკროფონი. სატელევიზიო გამოირჩევა ხმა აღიარება რომელიც საშუალებას აძლევს მაყურებელს კონტროლი ეკრანზე ხმოვანი ბრძანებები. მაგრამ მომსახურება გააჩნია საკმაოდ საშიში გაფრთხილება. გაითვალისწინეთ, რომ თუ თქვენი სიტყვები მოიცავს პირადი ან სხვა სენსიტიური ინფორმაცია, რომ ინფორმაცია შორის იქნება მონაცემები აიღეს და გადასცემს მესამე პირს. მიიღო, რომ? არ ვამბობ, პირადი ან მგრძნობიარე პერსონალის წინ ტელევიზიით. ასე რომ, ეს არის რეალურად რეალური. და ძნელია არ დაინახო ის, თუ წასვლა Best Buy ან მოსწონს ტელევიზორები ამ დღეებში. ისინი ყველა ჭკვიანი რამდენიმე გზა. და ისინი მიღების სასურველი სტუმარი გახდებით და creepier. და ისინი უბრალოდ შეგროვება მონაცემები გზები, რომ ჩვენ ვისაუბრეთ და შემდეგ ატვირთვა ის მეშვეობით HTTP ან ზოგიერთი სხვა ოქმი ზოგიერთ სერვერზე. ასე რომ, ეს იყო fun სტატია ამ ინტერნეტ- აქ, რომელიც ისაუბრა კერძოდ შემატყობინე შეცდომის ცდება კოდი რომ ჩვენ შეგვიძლია რეალურად გვაკავშირებს გასულ კვირას მისი განხილვა. ასე რომ, ეს სათაური იყო, ასეთია, სიუჟეტი მიდის აქ, Josh Breckman მუშაობდა კომპანია, რომელიც დაეშვა ხელშეკრულება განავითაროს შინაარსის მართვის სისტემა, ან CMS, როგორც ისინი უწოდებენ, საკმაოდ დიდი მთავრობის ვებგვერდზე. ბევრი პროექტის ფარგლებში განვითარებადი შინაარსის მართვის სისტემა ისე, რომ თანამშრომლებს იქნება შეუძლია აშენება და შენარჩუნება ოდესმე შეცვლის შინაარსი მათი საიტი. რამ წავიდა კარგად რამდენიმე დღის შემდეგ ხდება ცოცხალი. მაგრამ დღეს ექვსი, წავიდა ისე კარგად. ყველა შინაარსი საიტი სრულიად გაქრა. და ყველა გვერდს გამოიწვია default, გთხოვთ შეიყვანოთ content ვებ-გვერდზე. Whoops. Josh ეწოდა to გამოიძიოს და შენიშნა, რომ ერთ-ერთი განსაკუთრებით შემაშფოთებელი გარე IP მისამართი ჰქონდა წავიდა და წაიშალოს ყველა შინაარსი სისტემა. IP მისამართი არ ეკუთვნის ზოგიერთი საზღვარგარეთ hacker bent განადგურება სასარგებლო მთავრობის ინფორმაცია. ეს გადაწყვეტილი, googlebot.com, Google- ის ძალიან საკუთარი ვებ მცოცავი spider. Whoops. შემდეგ ცოტა კვლევისა და scrambling ირგვლივ noncorrupt სარეზერვო, Josh ი პრობლემა. ამ მომხმარებლის გადაწერა და გაკრული რამდენიმე ფაილი ერთ გვერდზე სხვა, მათ შორის, Edit ჰიპერბმულის რედაქტირება შინაარსი გვერდზე. ჩვეულებრივ, ეს არ იქნება საკითხი, რადგან გარეთ პროფაილი გვინდა უნდა შეიყვანოთ სახელი და პაროლი, მაგრამ CMS ავტორიზაციის სისტემა, შესვლა სისტემა, არ გაითვალისწინოს დახვეწილი ძებნა ტექნიკის Google Spider. Whoops. როგორც ირკვევა, Google Spider არ გამოიყენოთ cookies, რაც იმას ნიშნავს, რომ მას შეუძლია ადვილად გვერდის ავლით შემოწმებისას ხართ cookie მითითებული უნდა იყოს ცრუ. იგი ასევე არ ყურადღება მიაქციონ JavaScript, რომელიც ჩვეულებრივ სწრაფი და გადამისამართება მომხმარებლებს ვინც არ ხართ შესული სისტემაში. ეს იმას თუმცა დაიცვას ყველა ჰიპერბმულის ყველა გვერდზე მიიჩნევს, მათ შორის წაშალე გვერდი ამ სათაურით. Whoops. ასე რომ რას ნიშნავს ეს უფრო ტექნიკური მაგრამ საკმაოდ ხელმისაწვდომი თვალსაზრისით? ეს მხოლოდ იმას ნიშნავს, რომ მთელი მათი ნახვა, მათ ჰქონდათ მისამართები არ განსხვავებით ეს ერთი რომ თქვენ ალბათ ხედავთ პრობლემა მითითებული შვიდი. შეგახსენებთ, რომ პრობლემა კომპლექტი შვიდი ან იცით პრობლემა მითითებული შვიდი რომ თქვენ ეჭვქვეშ, სხვა საკითხებთან ერთად, გაყიდოს აქციების სახელით მომხმარებლებს. მაგრამ ახორციელებს, რომ თვისება გზით მისაღებად მეშვეობით ჰიპერბმულებს თქვენს შესახებ ინტერფეისი, ალბათ, არ არის smartest იდეა რადგან თუ თქვენი საიტი როგორმე ხელმისაწვდომი ან ადამიანის ვინ არის დაჭერით გარშემო ან ყიდვა bot, როგორიცაა Google ან Spider როგორც ისინი უწოდებენ, რომ ეს მხოლოდ მცოცავი ვებ ცდილობს ინდექსი ვებ როგორც საძიებო სისტემა, მათ შეეძლოთ ძალიან ადვილად მოხვდა მეშვეობით ამ სახის URL. და ეს ფუნქციურად ექვივალენტური, ამ შემთხვევაში, გაყიდვის აქციების Google. ახლა გულწრფელად ვამბობ, რომ ეს სრულიად asinine, რომ CMS მეორადი JavaScript და ნაჭდევი განახორციელოს მისი შესვლის სისტემა და არ აკეთებს, რომ სერვერის მხარეს, როგორც თქვენ ბიჭებს და მიიღებს PSet -7 ბლოკის არსებობს login.php ფაილი ყოველთვის, ყოველთვის, ყოველთვის უსაფრთხოება უნდა იყოს კეთდება სერვერის მხარეს, არ კლიენტის მხარეს, რადგან, როგორც ეს სტატიაში მიუთითებს, და ალბათ თავს იხილეთ რაღაც მომენტში, ეს არის ტრივიალური შესახებ, კარგი ან ცუდი, უბრალოდ გამორთეთ JavaScript რომ აღარაფერი ვთქვათ cookies. ისე, რომ თქვენი ყოველდღიური WTF. არსებობს კიდევ ერთი, რომელიც მხოლოდ სახის საშინელი, ასე რომ, მე აღვნიშნო, რომ თუ მხოლოდ როგორც ცხოვრების გაკვეთილი. როდესაც თქვენ იყენებთ განცხადება მოუწოდა, როგორიცაა Snapchat ან მოსწონს რომელიც ამბობს, რომ ეს ფოტოები მხოლოდ ბოლო ხუთი წამი, ათი წამი, ან whatnot. ისინი ეფემერული ეს არის აბსოლუტურად არ არის. ისევე როგორც არ არსებობს გზა, ელექტრონულად, განახორციელოს რაიმე სახით ვიდეო, ან სურათი, ან ტექსტური გაზიარების ასეთი რომ მიმღები მეორეს ბოლოს ვერ როგორმე გადაარჩინოს მონაცემები. ყველაზე გულუბრყვილო გზა, ვინმე შეიძლება მათი ტელეფონში. და მათ აქვთ 10 მეორე window ხოლო ეძებს რაღაც ვადამდელი უბრალოდ მიიღოს რაიმე სხვა ტელეფონში და ფოტოს ის, ცხადია. ასე რომ თქვენ შეუძლია შეინარჩუნოს რაღაც ციფრული, რომ გზა. ზოგიერთი იცით, თუ როგორ უნდა ეკრანის თქვენი ტელეფონი. ფაქტობრივად, თუ არ ვიცი, გააცნობიეროს, რომ მინიმუმ Snapchat, და მე ვფიქრობ, სხვა პროგრამები ამ დღეებში, მინიმუმ გითხრათ თუ მიმღები რეალურად მიღებული screenshot თქვენი იმიჯი. მაგრამ უარესი არ არის, ეს იყო snappening, როგორც ვინმე ნაკრები ცოტა ხნის წინ, სადაც რამდენიმე 100,000 snaps უკვე გაათავისუფლეს რასაც ტორენტის ფაილი სხვადასხვა საიტებზე საბოლოოდ. და ეს შეიცავს მთელი bunch კერძო შეტყობინებები და შეტყობინება. გამოდის, მათი უმრავლესობა კეთილთვისებიანი ასე არ არის, რაც თქვენ შეიძლება ველოდოთ. არამედ იმიტომ, რომ ხალხს არ ჰქონდა გამოიყენება მესამე მხარის ვებ- შესასვლელად მათ Snapchat სახელი და პაროლი და შემდეგ გადარჩენის ყველა მათი snaps ამ მესამე მხარის ვებსაიტს. და ეს იყო, რომ მესამე მხარის ნახვა, რომელიც იყო hacked, რომელიც მხოლოდ იმას ნიშნავდა, ვინმე figured, თუ როგორ მიიღოს ყველა 100,000 პლუს სურათები საკუთარ მყარ დისკზე შემდგომი გაზიარება. გულწრფელად ვამბობ, აქაც, ეს არის ერთგვარი საქართველოს asinine რომ Snapchat ხორციელდება ისე, რომ მესამე მხარის შეგიძლიათ დაალაგოთ ჩაჭრა მონაცემები და რომ ეს არ უკავშირდება თქვენი საკუთარი განცხადების გაშვებული ტელეფონი. მაგრამ აქ, ძალიან, გააცნობიეროს, რომ ეს რამ არ უნდა დაჭერა თქვენ მიერ სიურპრიზი, ან თუნდაც იქ უნდა იყოს ცხოვრების გაკვეთილი აქ. თუ გსურთ ტექნიკური დეტალები, წასვლა რომ URL არსებობს ეს არის ის, რომ დღევანდელ სლაიდები. ყველა უფლება, ნებისმიერი შეკითხვა დღევანდელი ცხოვრების გაკვეთილები CS? ჩართოთ, რომ off. არაფერი ყველა? არაფერი ყველა? მაქვს ბევრი ადამიანი შემოწმების მათი Snapchat ან რამე ახლა. ყველა უფლება, ასე SQL, სტრუქტურირებული შეკითხვის ენა. მოდით გადაიტანოთ ეს. და, მიუხედავად იმისა, ჩვენ მხოლოდ scratching ზედაპირზე ეს ენის, ჩვენ მოგცემთ საკმარისი ენის სახით PSet 7 ასე რომ თქვენ შეგიძლიათ დაძლევის ზოგიერთი საკმაოდ გავრცელებული ფუნქცია. მაგრამ რეალიზება არსებობს რამდენიმე რაც არ მოითხოვს, რომ თქვენ, მაგრამ ისინი იქნება მნიშვნელოვანი მოვიდა საბოლოო პროექტები და რა თქმა უნდა მოდის მიღების ფაქტობრივი ვებ-ფაქტობრივი ასაკი ეს დიზაინი გადაწყვეტილება. გამოდის, რომ MySQL მონაცემთა ბაზა, გაქვთ bunches არჩევანი მოსწონს მონაცემთა ტიპები, თქვენი სვეტები და სხვა რამ, მაგრამ თქვენ ასევე უნდა არჩევანი ე.წ. შენახვის ძრავი ყველა თქვენი მონაცემები სახის ფაილური სისტემა, თუ თქვენ იცნობს, ყველა თქვენი მონაცემები. რა ფორმატში, საბოლოოდ ინახება? და ყველაზე გავრცელებული, ალბათ, უკვე MYISAM და InnoDB, ტექნიკური თვალსაზრისით, ის, რომ ჩვენ ვზრუნავთ მხოლოდ იმის გათვალისწინებით, რომ ერთი და ერთი არ უნდა შემდეგი ფუნქცია. დავუშვათ, რომ თქვენ უნდა პატარა dorm მაცივარი. და ვფიქრობ, რომ თქვენ და თქვენი roommate, რომლებიც ამ მაცივარი, ნამდვილად უყვარდა ვთქვათ რძე. და ეს არის, ფაქტობრივად, როგორ ამბავი მითხრეს, რომ ჩემთვის გზა უკან იმ დღეს, როდესაც მე რა თქმა უნდა მოუწოდა CS 161 ოპერაციული სისტემა, რომელიც ასეთივე იკვლევს ამ თემაზე. ასე რომ თქვენ გაქვთ ეს მაცივარი. თქვენ out რძე. და თქვენ მოვიდა სახლში, თქვენი roommate ჯერ კიდევ კლასის ან რასაც, და თქვენ გადაწყვიტეთ მე ვაპირებ გასვლა და მიიღოს რამდენიმე რძე. ასე რომ თქვენ დახურეთ მაცივარი, უმოქმედობა საცხოვრებელი ოთახი, წასვლა მოპირდაპირე მხარეს to CVS ან იქ, სადაც, და კიდევ ხაზი ყიდვა ზოგიერთი რძე. იმავდროულად, თქვენი roommate იღებს სახლში კლასი, იღებს შევიდა საცხოვრებელი ოთახი, ხსნის მაცივარი, ასევე აცნობიერებს ooph, ჩვენ გარეთ რძე. ამიტომ მას ხურავს მაცივარი და შემდეგ მოხდება წასვლა სხვა CVS, რომელიც ხდება უნდა იყოს ერთი კვარტლის დაშორებით სხვა CVS მოედანზე, და იღებს ონლაინ იქ რამდენიმე რძე. ახლა, რა თქმა უნდა, რამდენიმე წუთში მოგვიანებით, ორივე დავუბრუნდეთ, და ყველაზე უარესი ყველა შესაძლო შედეგების მოხდა. როგორც თქვენ გაქვთ რძე. და თქვენ ნამდვილად არ როგორიცაა რძე, რომ ბევრი. ასე რომ, ერთი მათგანი არის მხოლოდ აპირებს მაწონი რაღაც მომენტში. ასე რომ, ახლა თქვენ გაქვთ ზედმეტი თანხა რძის მაცივარი იმიტომ რატომ? [INAUDIBLE] DAVID Malan: ჰო, თქვენ არ რატომღაც ერთმანეთთან ურთიერთობა რომ თქვენ მიღების რძე. ასე რომ მარტივი გზები ადამიანთა სამყაროში, როგორ შეიძლება თავიდან ავიცილოთ ეს სულელური სიტუაცია ხდება ასეთი რომ მხოლოდ დასრულდება ერთად ერთი. ტექსტის მათ, დიახ, კარგი. მაგრამ როგორ სხვაგან? პოსტ ის აღნიშნავს. DAVID Malan: Post- ის შენიშვნა. ნებისმიერი ფორმით ურთიერთობა ეუბნება, რომ თქვენი roommate არ წასვლას მაცივარი რძე. მე ვაპირებ წასვლა restock ჩემს. ასე, რომ თქვენ რატომღაც უნდა დაიბლოკოს ეს რესურსი. ამიტომ, ჩვენ შეგვიძლია ამას ჩვენ შეგვიძლია სახის ჩაშლის ამბავი და გადაიქცევა CS ამბავი რომლის დროსაც ვფიქრობ, რომ ეს, ისევე, როგორც ცვლადი, რომელიც შენახვის გარკვეული მნიშვნელობა. და ახლა, ღირებულების რძის ნულოვანი, რომელიც თქვენ არ გსურთ თქვენი roommate, შეამოწმოს, რომ ცვლადი და შემდეგ მიიღოს გადაწყვეტილება მას თავად საფუძველზე სახელმწიფო რომ ცვლადი თუ თქვენ ამ პროცესში შეცვლის სახელმწიფო, რომ განსხვავებულია. ასე რომ, ერთი ხაზი SQL, რომ ჩვენ გაძლევთ pset 7 სპეციფიკაცია ეს ერთი აქ. და ჩვენ არ დახარჯოს დიდი დროის საუბარი ამის შესახებ. მაგრამ აღმოჩნდება, რომ, თუ თქვენ ცდილობთ ყიდვა ზოგიერთი საფონდო CS50 ფინანსთა რომ თქვენ უკვე გაქვთ ზოგიერთი აქციების, თქვენ მინდა, რომ იყოს ვერ გააკეთებს ნომერი რამ მყისიერად ერთად. გსურთ შეძლებს ეფექტურად, მაღალ დონეზე, შეამოწმეთ ყველა უფლება, თუ მინდა მეტი აქციები იყიდონ, უფასო, Penny მარაგის ჩვენ ვისაუბროთ Spec, მინდა პირველი გამშვები რამდენი აქციების მაქვს. და ვფიქრობ, ხუთი. და ვფიქრობ, მინდა ყიდვა 10, მე საბოლოოდ გსურთ აქვს 15 აქციების საფონდო. ასე რომ, მე უნდა ვთხოვო ორ კითხვას. რა არის სახელმწიფო ცვლადი? რა არის სახელმწიფოს ზედიზედ? რამდენი აქციების მე გაკეთებული აქვს? მაშინ გსურთ წავიდეთ წინ და განახლება. ასე რომ, ანალოგი რძე, რომ თქვენ შემოწმება ზედიზედ, და შემდეგ გსურთ განახლება იმიტომ, რომ თუ თქვენ გსურთ შეიძინოთ 10 აქციების, თქვენ არ მინდა, რომ შეიცვალოს ზედიზედ 10, მინდა, რომ შეიცვალოს ეს 5 პლუს 10 და, რა თქმა უნდა, 15. ეს ხაზი კოდი, უზრუნველყოფს, რომ ამ ორი კონცეპტუალური იდეები მოხდება ერთად თუ არა ყველა. არავის, მათ შორის, სხვა მომხმარებლის ვინ არის შესული იგივე ნახვა, შეიძლება როგორმე შეუშალოს შემოწმების row და განახლება, რომ ზედიზედ შერჩევა და განახლება თუ გნებავთ. და სინტაქსი არის სუპერ აშკარა, მაგრამ ეს ერთი ხაზი, ხანგრძლივი ის არის, უზრუნველყოფს, რომ იმ ორი ოპერაცია შეამოწმეთ ცვლადი ან შეამოწმოს row და განახლება row მოხდეს atomically. Oh აქ ჩვენ კვლავ. ტექსტის გაგზავნა ჩემს ტელეფონზე. მოდით ეს ცოტა უფრო კონკრეტული. დავუშვათ, რომ თქვენ არ ახორციელებს მაცივარი, და თქვენ არ ახორციელებს Pset 7 მაგრამ ფაქტობრივი ბანკი, ან ATM, ავტომატური Teller მანქანა, რომლითაც თქვენ რატომღაც გსურთ შეძლებს მისცეს წევრებს გადასცეს ფული ერთი ანგარიშიდან მეორეზე. OK, გათიშეთ. მე ვაპირებ, რომ მუნჯი ეს ახლა, მადლობა. ასე რომ ჩვენ გვინდა გადავა ფული ერთი ანგარიშის ნომერი განსხვავებული ანგარიში ნომერი, კონკრეტულად $ 100. ასე რომ, ეს არის სახის თვითნებური მაგალითად, რომლითაც თქვენ, ბანკომატი, დაგვჭირდება, რათა შესრულდეს ორი SQL შეკითხვებს, სხვაობა ერთ ანგარიშზე და დაამატოთ სხვა ანგარიშზე. მაგრამ გვინდა, რომ უზრუნველყოს, რომ ეს ორი ხაზი, როგორც მოხდა, ან საერთოდ არ. თქვენ არ მინდა რაღაც მიღების გაწყდება. თქვენ არ ზოგიერთი ჭკვიანი ცუდი ბიჭი რატომღაც იდგა Bank of America ორი ბანკომატები წინ მას და რატომღაც სახის აკრეფით ბრძანებები, ამავე დროს, იმედია ცდილობს დაწესებული $ 200 ნაცვლად $ 100 და მხოლოდ მქონე $ 100 ჩაირიცხება. მოკლედ, მინდა, რომ ეს მოიქცეს ისე, როგორც თქვენ მოველით. და თქვენ ამის გაკეთება ამ SQL მონაცემთა ბაზა თქვენ გადაიტანოთ ეს რა არის მოუწოდა გარიგება. ფაქტიურად SQL, შეგიძლიათ დარეკოთ CS50 მიერ შეკითხვის ფუნქცია გაცემა unquote დაწყება გარიგება. მაშინ შეასრულოს ნებისმიერი რაოდენობის შემდგომი SQL queries, მაგრამ არც ერთი მათგანი მიიღებს მოქმედებს მონაცემთა ბაზა სანამ რეკავთ შეკითხვის გაცემა unquote ჩაუდენია, თუ ისევ PHP. და ამ გზით, შეგიძლიათ უზრუნველყოს, რომ მაშინაც კი, თუ თქვენ გაქვთ 1000 მომხმარებლებს hitting თქვენს მონაცემთა ბაზაში ამავე დროს, SQL გპირდებით, რომ ეს ორი queries იქნება განხორციელებული ერთ შემდეგ სხვა. ასე რომ თქვენ არ დასრულდება up ერთად ჭარბი რძე ან არასწორი თანხა, საბოლოო ჯამში, ფული. ასე რომ შევინარჩუნოთ ამის გათვალისწინებით, არა იმდენად PSet 7 მაგრამ საბოლოო პროექტები თუ თქვენ რეალურად ცდილობენ მონაცემები გარშემო მთელი მაგიდა, როგორც ამას აქ. მაგრამ შესაძლოა უფრო მარტივი და ცხადია, უნდა გვესმოდეს, მაგალითად ეს ერთი აქ. და ვინმე ელექტრონული ფოსტით ჩვენს შესახებ ეს მხოლოდ მეორე დღეს როდესაც დაინახა, რაღაც მსგავსი ონლაინ რეჟიმში. ასე რომ, ჩემი ცოდნა, pin სისტემა არ არის დაუცველი წინააღმდეგ. და მე არ ვიცი, თუ ის კიდევ მიზნებისათვის SQL მონაცემთა ბაზის ქვეშ hood. მაგრამ მოდით გამოვიყენოთ ეს გულისთვის დისკუსია. აი ეკრანზე რომ ჰარვარდის ეგ ტენდენცია , როდესაც შესასვლელად მათ ჰარვარდის ID ნომერი და მათი pin. და ვარაუდობენ, რომ pin სისტემა განხორციელებული PHP და MySQL მონაცემთა ბაზა, რომ კოდი, რომ ვინმე შესაძლოა, წერილობითი წლის წინ შესაძლოა ასე გამოიყურება. პირველი, განაცხადოს ცვლადში სახელი. და უბრალოდ რომ POST superglobal. მაშინ კიდევ ერთი ცვლადი მოუწოდა პაროლი და იგივე გააკეთონ. და შემდეგ უბრალოდ შეასრულოს ამ ხნის შეკითხვის აქ აირჩიეთ ვარსკვლავი მომხმარებლებისთვის სახელი უტოლდება ასეთი და ასეთი და პაროლი უდრის ასეთი და ასეთი. ყურადღება მიაქციეთ, რომ curly braces მე გამოიყენება აქ უბრალოდ ნიშნავს, რომ PHP, წავიდეთ წინ და შემცვლელი ღირებულება ამ ორ ცვლადები უფლება არსებობს. ისინი არ არის მკაცრად აუცილებელი, მაგრამ ისინი, როგორც წესი, რათა თავიდან ავიცილოთ დახვეწილი სინტაქსური შეცდომების. ასე რომ, ეს გამოიყურება სრულიად სწორი ერთი შეხედვით. და ეს არის. თქვენ შეიძლება განახორციელოს pin სისტემა ამ გზით. მაგრამ ვარაუდობენ, რომ სუპერ ჭკვიანი და მუქარის სტუდენტი input, როგორც მისი pin. ასე რომ, მე ამოღებულ ტყვია ნიშნები აქ იმიტირებულ up, და მე რეალურად გამოვლინდა ის, რაც მას შეიძლება აკრეფით. და ეს ცოტა უცნაურია. მაგრამ რა გადასვლა out at თქვენ პოტენციურად შემაშფოთებელი შესახებ მომხმარებლის input, მაშინაც კი, თუ არ ვიცი რა SQL ინექცია თავდასხმა ნიშნავს. რატომ გამოიყურება პატარა Fishy? რა არის ეს? [INAUDIBLE] DAVID Malan: თუ არის ცოტა საეჭვო. ფაქტობრივად, ეს არის ის, სიტყვით საწყისი SQL. ისე, რომ არ უქადის. ის ფაქტი, რომ იქ ყველა ამ ერთჯერადი შეთავაზებები იქ, ფაქტობრივად, ერთ უმარტივეს გზა შესვენება ზოგიერთ ბაზაში არის აკრეფით სახელწოდება O'Reilly რომელსაც აქვს აპოსტროფი ეს იმიტომ, რომ თუ ადამიანის, რომელმაც დაწერა კოდი კულისებში არ გავითვალისწინოთ, რომ არსებობს შეიძლება იყოს ერთჯერადი შეთავაზებები ამ მომხმარებლის მიერ input, და ის გამოყენებით ერთჯერადი შეთავაზებები მათ კოდი ცუდი რამ შეიძლება მოხდეს. ფაქტობრივად, უარესი არ არის, მიგვაჩნია, რომ ეს. თუ ეს იყო ერთხელ კოდი რომ ვინმე ჰარვარდის წლის წინ წერდა pin სისტემა, შეამჩნია რა დაახლოებით უნდა შეცვალონ სახელი და პაროლი თუ მომხმარებლის ტიპების ერთხელ skroob როგორც მათი სახელი და მაშინ ერთი, ორი, სამი, ოთხი, ხუთი, ციტირება ან გაცემა, unquote ერთი ტოლობის შეთავაზება ერთი. და შეამჩნია რა გასაღები აქ არის მომხმარებელს ჯერ არ დაიწყო პაროლი ან მათი pin ერთად ციტირებით. და არ დასრულდა ეს ციტირებით რადგან მას ვთქვათ, რომ თუ programmer ასე არ იყო მკვეთრი, ისინი აპირებენ, რომ ის ერთჯერადი შეთავაზებები მათი კოდი. ასე რომ აქ კოდი. და ცვლილება, რომელიც შეიძლება ახლა მოხდეს ეს. და მე ხაზი გაუსვა რა მომხმარებელს ჯერ აკრეფილი. ასე რომ, სანამ მას შემდეგ, რაც. და შეამჩნია რა რბილად შემაშფოთებელი ახლა სწორი ნახევარში SQL კოდი? ეს ცოტა უფრო რთული, მართლაც, ვიდრე queries ჩვენ ვნახეთ. მაგრამ ეს არ შეიძლება კარგი რამ, თუ თქვენ ამბობდა select ვარსკვლავი, რომელიც აირჩიეთ ყველაფერი მომხმარებელს მაგიდასთან სადაც username ტოლია skroob და დაგავიწყდათ ტოლია ერთი, ორი, სამი, ოთხი, ხუთი ან ერთი უდრის. რა არის ლოგიკური მნიშვნელობა რომ ბოლო პუნქტი სავარაუდოდ? ეს უბრალოდ ყოველთვის მართალია. და რადგან ჩვენ ერთგვარი მიხვდა ან figured, სასამართლო პროცესი და შეცდომა რომ პროგრამისტი, რომელიც დავწერე ეს კოდი არ მოსალოდნელია, ადამიანის ან ცუდი ადამიანი აკრეფით ერთჯერადი შეთავაზებები, ასევე, ჩვენ შეგვიძლია სინტაქსურად შეავსოთ SQL query რაღაც აბსურდული მაგრამ ის, რაც არის სინტაქსურად არასწორი რომ ყოველთვის აფასებს ჭეშმარიტი. ასე რომ, თუ ეს კოდი გამოიყენება პასუხის გაცემა კითხვა ჭეშმარიტი ან მცდარი უნდა ამ მომხმარებლის დაიშვება გაივლის, პასუხი ყოველთვის, როგორც ჩანს, აპირებს უნდა იყოს ჭეშმარიტი, რადგან ეს ყოველთვის აირჩიოთ რაიმე მონაცემთა ბაზა იმიტომ, რომ ერთი რა თქმა უნდა ყოველთვის უდრის. ასე რომ, რა არის გამოსავალი? კარგად pset 7, ჩვენ, ფაქტობრივად, თავიდან ავიცილოთ ეს ყველაფერი ერთად. ჩვენ გაძლევთ შეკითხვის ფუნქცია, და ჩვენ გარწმუნებთ, რომ გამოიყენოს კითხვის ნიშნები როგორც მფლობელები, მსგავსი სულითა printf ს% s, მაგრამ რა არის მთავარი შესახებ კითხვის ნიშნები აქ არის, თუ თქვენ ნამდვილად წაიკითხა მეშვეობით functions.php, სადაც ჩვენი შეკითხვის ფუნქცია ხორციელდება, ის კითხვის ნიშნები, რომლებიც გაიქცა, სადაც რაიმე პოტენციურად საშიში როგორც ერთი გაცემა აღმოჩნდა და გაიქცა ერთი გაცემა. ასე რომ, ეს არის ის, რაც მართლა ხდება თუ გამოიყენოთ CS50 მოთხოვნას ფუნქცია ან ნებისმიერი რაოდენობის მესამე მხარის უფასო ბიბლიოთეკები, იგივე გააკეთონ. არ აქვს მნიშვნელობა, ამ შემთხვევაში, მწვანე, თუ მომხმარებელს უკვე აკრეფილი ერთი გაცემა იმიტომ შეკითხვაზე ფუნქცია, რომ ჩვენ დაწერა ვაპირებ, რომ დაამატოთ backslashes ადრე ნებისმიერი ასეთი საშიში გაცემა. ასე რომ, ეს არ არის, ფაქტობრივად, იქნება legit. ეს არის, როგორც აკრეფით გიჟები ეძებს დაგავიწყდათ, რომ, რა თქმა უნდა, არ აპირებს იყოს skroob ფაქტობრივი პაროლი. ამიტომ takeaway for CS50 არის ერთი, აბსოლუტურად ყოველთვის გამოიყენოთ რაღაც მოსწონს CS50 მოთხოვნას ფუნქცია ან ძირითადი ბიბლიოთეკა, რომელიც ხდება ე.წ. სახალხო დამცველის აპარატი. მაგრამ არასდროს, არასდროს, არასოდეს გააკეთებს კოდი მოსწონს ეს გარეშე აფარებს ან scrubbing როგორც ამბობენ, თქვენი საშუალებებით. და თქვენ რაღაც მომენტში, ალბათ, გვხვდება ნახვა მოსწონს ეს. სინამდვილეში, როგორც ჩანს, იმ შემთხვევაში, როგორც აეროპორტში და სასტუმროებში ადგილები სადაც მათ აქვთ უფასო Wi-Fi ხელმისაწვდომობა, რომ თქვენ უნდა შემოხვიდეთ, ამ საიტებზე ყოველთვის horribly განხორციელდა. ასე რომ, ერთგვარი გართობა სახლში exercise, არ მუქარის მიზნებისათვის ან მეტი გართობა გზაზე სწავლება, მხოლოდ ჩაწერეთ აპოსტროფი, ერთი გაცემა, ფორმა ზოგიერთ საიტი და ვნახოთ, რა მოხდება. და თუ სერვერზე crashes ან აძლევს თქვენ გარკვეული სახის შეცდომა, ეს შეიძლება ძალიან კარგად იყოს, რომ ვინმე არ მოელიან. და მაშინ უნდა პირთა სათანადო ხელისუფლება და მიიღოს არ შემდგომი. ასე რომ, ახლა თქვენ ბიჭები უნდა იმედია გაგება ცოტა მეტი GEEK იუმორი აქ. [სიცილის] დავით Malan: თქვენ იცით, რომ თქვენ geek. მომდევნო რამდენიმე წლის განმავლობაში, თქვენ გახსოვთ, ვინც პატარა ბობი მაგიდები არის იმიტომ, რომ ამ cartoon აქ. გააგრძელეთ, რომ გონება, როგორც ჩვენ კონტექსტში switch ერთი ბოლო დროს დღეს JavaScript. ჩვენ გაატარა შედარებით პატარა დროის სინტაქსი PHP რადგან ეს, ფაქტობრივად super მსგავსი C. და ლამაზად საკმარისი, JavaScript ძალიან სუპერ მსგავსი C- ს სინტაქსი ისევე როგორც ვნახავთ მხოლოდ ერთი წუთით და როგორც ჩვენ , მოგვიანებით ამ კვირაში, კერძოდ. რა შეგიძლიათ გააკეთოთ ამ ენაზე თუმცა, არის უფრო ძლიერი, განსაკუთრებით APIs. მაგრამ პირველი სწრაფი ტური. ასე რომ, ერთი, JavaScript, არსებობს არ ძირითადი ფუნქცია, რომელიც არის ლამაზი. როგორც PHP, შეგიძლიათ უბრალოდ დაწერეთ კოდი. პირობები მოსწონს ეს. და ლოგიკური გამონათქვამები შეიძლება ასე გამოიყურება და მოსწონს ეს. კონცენტრატორები არსებობს და შესაძლოა ასე გამოიყურება. ოთხი მარყუჟების გამოიყურება. მიუხედავად იმისა, მარყუჟების გამოიყურება. ამის გაკეთება whiles მოსწონს ეს. და შემდეგ კოლექტორები ჰგავს ეს ძალიან ჰგავს PHP. მაგრამ შეამჩნია, რომ JavaScript თქვენ განაცხადოს ცვლადი არა დოლარი ხელი მოაწეროს, მაგრამ არა მონაცემები ტიპის, მაგრამ ფაქტიურად განაცხადა var ცვლადი წინაშე. ეს ძალიან თავისუფლად აკრეფილი რომ მას აქვს სახის, მაგრამ თქვენ არ მკაფიოდ ვაცხადებ მათ. და შემდეგ სიმებიანი, რადგან მაგალითად, შეიძლება გამოიყურებოდეს როგორც ეს, რომ სიმებიანი მიმდინარეობს მოუწოდა ამ შემთხვევაში. და შემდეგ ობიექტი. და ეს ჩვენ უფრო მეტი ადრე ხანგრძლივი. და ობიექტი, ალბათ, ერთ-ერთი ყველაზე ხშირად ჩანს მონაცემების სტრუქტურები ამ JavaScript საფუძველზე პროგრამა, რადგან იგი საშუალებას იძლევა თქვენ გაერთიანდნენ თვითნებური გასაღები ღირებულება წყვილი მხოლოდ როგორც PHP- ს ასოციაციური მასივები და ისევე, როგორც თქვენი საკუთარი hash მაგიდა ან ცდილობენ როგორც ჩვენ განხორციელდეს რამდენიმე კვირის უკან. მოდით რეალურად ვხედავ რა შეგვიძლია JavaScript. კერძოდ, ეს არის სამრეცხაო სიაში მახასიათებლები რომ ბრაუზერები, რომ საშუალებას მოგვცემს, რომ Hook JavaScript შევიდა ნახვა შემდეგნაირად. JavaScript ხშირად გამოიყენება, როგორც კლიენტის მხარეს სკრიფტინგის ენა. ეს არ არის შედგენილი. ეს ძალიან ინტერპრეტაცია. მაგრამ განსხვავებით PHP, რომელიც გაშვებული on სერვერზე, სერვერზე, ან ღრმა შიგნით კლიენტებს, JavaScript არის განსხვავებული, რომ ეს როგორც წესი, გადის ბრაუზერი. ასე რომ, ნებისმიერ JavaScript კოდი დაიწყოს წერა ამისთვის pset 8, ან თქვენი საბოლოო პროექტი, ან რეალურ სამყაროში ზოგადად აპირებს უნდა იყოს შენახული სერვერზე, აბსოლუტურად ამ dot HTML ან dot JS for JavaScript ფაილი. მაგრამ ბრაუზერის აპირებს ჩამოტვირთვა რომ JavaScript კოდი თქვენს საკუთარ ინსტანციის Chrome, ან IE ან Firefox, ან რასაც. და კოდი არის რეალურად აპირებს მიიღოს შესრულებული შიგნით თქვენი საკუთარი ბრაუზერის. მხოლოდ იმიტომ, რომ ეს უფრო რეალური, ვნახოთ, ეს კონკრეტული ფორმა. ჩვენ არ ვიცით, რა ეს კოდი აკეთებს გარეშე ნამდვილად კითხულობს მეშვეობით. მაგრამ ნება მომეცით წასვლა Facebook.com გარეშე შესვლის. ნება მომეცით წასვლა შეამოწმოს ელემენტის, გადადით, ვთქვათ, ქსელი და განაახლეთ გვერდი. და ჩვენ ვხედავ მიადევნე თვალი გადაიტანოს Reload გვერდზე მისაღებად ყველა მოთხოვნა ახალი. და პირველივე ფაილი ვხედავ CSS, CSS. აი პირველი JavaScript ფაილი, და მე არ ვიცი, რა ეს ასეა, მაგრამ აქ არის რამდენიმე JavaScript კოდი რომელიც მართავს Facebook. ის კი არ არის, რომ გამოვლენის, რომ მიუახლოვდით. ეს ჯერ კიდევ მხოლოდ როგორც nonsensical. მაგრამ დაინახავთ კი ქვემოთ, იქ უფრო მეტი ამ JavaScript ფაილი. Whoops. სწორედ ping. მოდით წავიდეთ ქვემოთ პატარა შემდგომი, უფრო, უფრო. არსებობს ერთი. არსებობს ერთი. არსებობს ერთი. მიუხედავად იმისა, Facebook, უკან სცენები, წერია მონაწილეობა PHP და Facebook- ის საკუთარი ვერსია მისი, არსებობს უზარმაზარი JavaScript. ფაქტობრივად, ნებისმიერ ჩატი აკეთებთ Facebook, ნებისმიერი inline ვადები განახლება რომ მოხდეს რეალურ დროში, ყველა რომ ამოძრავებს JavaScript. ჰო? აუდიტორია: მე არ ვარ დარწმუნებული თუ ეს არის Facebook, მაგრამ ვფიქრობდი, რომ Facebook განვითარებული საკუთარი სახლი კოდი ენა? დავით Malan: ისინი გააკეთა. ამიტომაც ვამბობ, რომ ეწინააღმდეგება PHP მოუწოდა Hip Hop, რომ ისინი რეალურად დამატებული ფუნქციები, ისეთი, რომ როდესაც Mark პირველად განხორციელდა Facebook, ეს იყო დაწერილი PHP. და რომ ერთგვარი დარჩა სახის წინა ბოლომდე ენის ისინი იყენებენ ბევრად მათი კოდირება, მაგრამ ეს არ ყოფილა ის ენა, რომელსაც ის სასწორები განსაკუთრებით კარგად მილიარდობით ადამიანი. ასე რომ, ისინი არ დასძინა, საკუთარი გაუმჯობესების კულისებში. და ისინი გამოიყენოთ ნებისმიერი რაოდენობის სხვა ენებზე სხვადასხვა ცალი მათი ინფრასტრუქტურა. ასე რომ დიახ, ის ეწინააღმდეგება საქართველოს რაც ჩვენ ვიცით როგორც PHP. მოდით შევხედოთ დროს რამდენიმე მაგალითები როგორ შეიძლება გამოიყენოს JavaScript აქ. დღევანდელ კოდის, ჩვენ გვაქვს რამოდენიმე ფაილი, რომელთაგან პირველი, მოდით მოუწოდა DOM ნულოვანი. ასე DOM ნულოვანი გამოიყურება. ნება მომეცით წასვლას დირექტორია და ქმნის domzero.html, ზედა რომელსაც აქვს doc ტიპი დეკლარაცია, რომ აქ საქმე HTML 5. და ახლა აქ HTML tag. აი არეში აქვს. და აი, რა არის ახალი დღეს. ჩვენ ახლა აქვს სცენარი აქვს შიგნით ხელმძღვანელი გვერდზე. და ეს, როგორც ჩანს ძალიან ცოტა, მაგრამ ცნობა რომ მე განსაზღვრული script, JavaScript. და როგორც განზე, რადგან ამ ფართოდაა გავრცელებული მცდარი შეხედულება, JavaScript აბსოლუტურად არაფერი აქვს უნდა გავაკეთოთ Java, ენა რომ ზოგიერთი შეიძლება შეიტყო APCS. ეს უფრო მარკეტინგული რამ, ვიდრე არაფერი, ცხენოსნობა coattails ჯავის წლის წინ. მაგრამ JavaScript, არაფერ შუაშია Java, უბრალოდ ისევე, და გამაღიზინებლად confusingly დაასახელა. ასე რომ, აქ არის, თუ როგორ განაცხადოს ფუნქცია JavaScript, სიტყვასიტყვით ამბობენ ფუნქცია, მაშინ სახელით ფუნქციონირებს, მაშინ რაიმე არგუმენტი, რომ შესაძლოა, ისევე როგორც PHP. თურმე JavaScript, ერთ-ერთი ყველაზე შემაშფოთებელი ფუნქციები, რომელიც არსებობის Alert. ეს არის პატარა ფანჯარა, რომელიც გაიხსნება და მიიღეთ ზოგიერთი მათგანი. ეს ზოგადად frowned საფუძველზე. მაგრამ ჩვენ გამოიყენოს იგი როგორც ჩვენი პირველი სავარჯიშო აქ. შეამჩნია რამდენიმე თავისებურება JavaScript. ერთჯერადი შეთავაზებები და ორმაგი შეთავაზებები რეალურად არ აქვს მნიშვნელობა უქმნით. ერთჯერადი შეთავაზებები და ორმაგი შეთავაზებები შეიძლება გაცვალეს, ხოლო C, თქვენ უნდა გამოიყენოთ ორმაგი შეთავაზებები სიმები, და თქვენ ორი ერთი შეთავაზებები სიმბოლო. ამ JavaScript მსოფლიოში, ბევრი ადამიანი, ყველაზე ხალხი გამოიყენოთ ერთჯერადი შეთავაზებები გარშემო strings მხოლოდ იმიტომ, რომ სტილისტური რამ. მაგრამ რა plus ოპერატორს აქ, რომელიც ჩვენ არ მინახავს ადრე? აუდიტორია: გაერთიანების. დავით Malan: გაერთიანების. ასე C კი არ აქვს ეს. PHP აქვს dot ოპერატორი, რომელიც ამას. JavaScript აქვს პლუს ოპერატორი, რომელიც confusingly, ისევე, როგორც ჯავაში. ახლა, რა ხდება აქ? ასე რომ, აქ, სადაც ძირითადი გაგება, რომ სურათი ჩვენ ესროლა რამდენიმე დღის წინ ძალაში პიესა. გახსოვთ, როდესაც ჩვენ გვქონდა მარტივი ვერსია HTML page-- ეს უბრალოდ განაცხადა, hello მსოფლიოში. და მაშინ ჩვენ მიიპყრო ხე უფლება, რომელიც ჰქონდა მართკუთხედს და ხაზები დამაკავშირებელი მათ მოსწონს ოჯახის ხე. ასე რომ, ე.წ. DOM ან დოკუმენტის ობიექტური მოდელი. და აღმოჩნდება, რომ თქვენ შეგიძლიათ თქვათ ოთხკუთხედს, რომ ხე და სინტაქსის როგორიცაა შემდეგ. თქვენ სიტყვასიტყვით ამბობენ დოკუმენტი, რომელიც არის სპეციალური გლობალური ცვლადი JavaScript პროგრამა, რომელიც აქვს ფუნქცია დაკავშირებული ის, რომ თქვენ შეგიძლიათ თქვათ მსგავსი struct, მაგრამ თქვენ უბრალოდ ამბობენ dot და შემდეგ ფუნქციის სახელი, მიიღეთ ელემენტს ID. ელემენტის მინდა კიდევ არის როგორც ჩანს, ციტირებით unquote სახელი. და მაშინ მე მინდა კიდევ მისი ღირებულება. ახლა ჩვენ ვიღებთ ადრე საკუთარ თავს. მე არ ვარ დარწმუნებული, თუ რა ყველა ეს არის შესახებ. მოდით სწრაფად ველით HTML on გვერდზე, რომელიც არის სუპერ მარტივი. შეამჩნია, რომ მე განსაზღვრული ფორმა ქვემოთ აქ. გაითვალისწინეთ მე მოცემულ ის უნიკალური ID, მიუხედავად იმისა, ჩვენ არ გამოიყენება ამ ატრიბუტის ადრე. მაგრამ ეს არსებობს HTML. თქვენ შეგიძლიათ ცალსახად იდენტიფიცირება ზოგიერთი ბლოკი of HTML რომელზეც იდენტიფიკატორი მოსწონს ეს. განაცხადის ახლა ამას თურმე HTML მხარს უჭერს, თითო რომ სამრეცხაო სიაში მომენტში წინ, მთელი რამოდენიმე ღონისძიება ელფოსტის. და ეს ღონისძიება დამმუშავებლის ამბობს წარადგინოს. საქართველოს შესახებ წარდგენის ფორმა, დარეკეთ შემდეგ კოდი. და კოდი, რომელიც აპირებს ეწოდოს ან შესრულებული სწორედ ეს არის, ბერძნული ფუნქცია მოჰყვა დაბრუნების ცრუ. ყველაფერი უნდა იყოს საკმაოდ ნაცნობი. აქ არის შეყვანის ტიპის ტექსტი, რომლის ID, რომ ამ შემთხვევაში, იქნება სახელი. ჩვენ არ გვაქვს ნამდვილი სახელი ატრიბუტი ამ time-- და submit ღილაკს. ასე რომ, რის შედეგადაც გვერდი ასე გამოიყურება. და შედეგად ქცევა, დაინახავთ, ასე გამოიყურება. გვერდის it ადგილობრივი მასპინძლებს ამბობს, hello David, ძლივს ესთეტიურად სასიამოვნო გზა მივესალმო შესახებ. მაგრამ ის, რაც სინამდვილეში ხდება? განვიხილოთ, რა არის ეს. ეს არის ტექსტური ველი. და შესაბამისად HTML აქ, მე მოცემულ ის უნიკალური იდენტიფიკატორი მოუწოდა გაცემა unquote სახელი. იმავდროულად, მე განაცხადა, როდესაც მომხმარებლის წარუდგენს ამ ფორმით მიერ hitting შეიყვანეთ და დაჭერით შეტანა ღილაკს, მოვუწოდებთ ფუნქცია მოუწოდა მოიკითხეთ და შემდეგ დაბრუნების ცრუ. განვიხილოთ იმ საპირისპირო. შეამჩნია, როდესაც მე დააჭირეთ submit, URL ამ გვერდზე არ იცვლება. ბრაუზერის icon არ დაიწყოს დაწნული. მე არ წავიდეთ სადმე, და ეს ფაქტიურად იმიტომ ვთქვი დაბრუნების ცრუ. დაბრუნების ცრუ მოკლე სქემები ან გაჩერება ნაგულისხმევი ქცევის ფორმა. ასე რომ, მაშინ ტოვებს ჩვენთვის ამ ერთი საბოლოო კითხვას. რას მოიკითხეთ გავაკეთოთ? ასევე, მივესალმო, როგორც ჩანს, მოუწოდებს ფუნქცია მოუწოდა Alert, გადის ერთი ხანგრძლივი არგუმენტი, რომ შედეგი concatenating ერთად bunch of substrings, hello მძიმე სივრცე, შემდეგ რაც ბრუნდება. ასე დოკუმენტი, როგორიცაა გლობალური ცვლადი, რომ ძირეული რომ ხე, რიგგარეშე ფუნქცია, წინააღმდეგ შემთხვევაში, ცნობილია როგორც მეთოდი. ფუნქცია, რომელიც შიგნით ცვლადი არის მოუწოდა მეთოდი ნაცვლად ფუნქცია. ასე რომ კიდევ ელემენტს ID. რა ელემენტს თქვენ გსურთ მიიღოთ მისი ID? ციტირებით unquote სახელი და მაშინ კონკრეტულად ვაფასებთ. ასე რომ, სხვა სიტყვებით, რომ კოდი, უბრალოდ, აღმოაჩენს ველში, რომლის ID არის სახელი და შემდეგ იღებს მისი ღირებულება. ასე რომ, თუ მე რომ შეცვალოს ეს და ვთქვათ Davin ნაცვლად დავით, და დაწკაპეთ წარუდგინოს, ახლა ჩვენ აქვს მისალოცი Davin. ყველა უფლება, ასე რომ ყველა კარგი და კეთილი. მაგრამ ვნახოთ, თუ ჩვენ შეგვიძლია ამ ცოტა სუფთა, რადგან მხოლოდ წერა კოდი მოსწონს ეს ზოგადად იქნება frowned საფუძველზე. ეს აპირებს გამოიყურებოდეს scarier. მაგრამ რა არის პირველი განსხვავება, რომ თქვენ აღვნიშნო აქ ეს ვერსია, გარდა იმისა, სახელი იცვლება DOM, ერთი? რა სტრუქტურულად გამოიყურება სხვადასხვა ამ წინააღმდეგ სხვა? ჰო? აუდიტორია: არის ფორმა ყველაზე script ახლა? DAVID Malan: ჰო, ფორმა თავზე სცენარის რამდენიმე ცნობისმოყვარე მიზეზი. ასე რომ, პირველი, რაც რომ jumps out at me, ძალიან. საბედნიეროდ, სულ მცირე, ეს ნაწილი არის იდენტური. ასე რომ, ერთადერთი, რაც, როგორც ჩანს, განსხვავებული უნდა იყოს ეს. ასე რომ, აქ არის ის, რაც სუფთა შესახებ JavaScript 2. და ეს შეუძლებელს ქმნის მესმის, ერთი შეხედვით, განსაკუთრებით საბოლოო პროექტების, თუ თქვენ ეძებთ ნიმუში კოდი შემოსული, მაგრამ ეს boils ქვემოთ ზოგიერთი ძირითადი სინტაქსური ფუნქციები. აქ ისევ ის არის, რომ გლობალური ცვლადი დოკუმენტი. აქ ისევ ის არის, რომ მეთოდი და ფუნქცია რომელიც ამბობს, რომ მიიღოთ ელემენტი, ID. ამ დროს მინდა მიიღეთ ID მოუწოდა დემო. სად არის? ეს აშკარად სწორი აქ, ფორმა თავად. და ახლა შეამჩნია, რომ როგორც ჩანს, თუ მე დავუბრუნდეთ, რომ კვანძის ხე, წარმოადგენს ფორმა თავისთავად, არ ველში, გამოდის, რომ ფორმა, რომელიც კვანძის ან მართკუთხედი, ხე, აქვს ის, რაც ჩვენ მოვუწოდებთ ქონება, ძალიან, ძალიან, ძალიან ჰგავს სულითა struct in C. ეს მხოლოდ მონაცემთა წევრი შიგნით მართკუთხედი. მე მაქვს ფორმა აქ, და მე ვამაგრებ, ან მე მინიჭება, მისი წარმოადგინოს კურატორმა ან უფრო წარმოადგინოს ქონება შემდეგი ფუნქცია. და ეს არის, გაცილებით, craziest რაც დღემდე syntactically. თურმე JavaScript და PHP და გულწრფელად, რომ ამ საკითხზე C, მიუხედავად იმისა, რომ ჩვენ არ გავაკეთებთ, თქვენ შეგიძლიათ რჩეულებში უსახელო, ანონიმური, და AKA lambda ფუნქცია, რაც არ აქვს სახელი მაგრამ შეიძლება ეწოდოს მაინც. მერე რა მე აკეთებს აქ მე მინიჭება ამ ალბომის ქონება, რომელიც შიგნით ამ კვანძის ჩემი DOM ხე, ფუნქცია, ფუნქციის მაჩვენებელი თუ გნებავთ. ეს ფუნქცია არ აქვს სახელი, მაგრამ ეს არ აქვს, რადგან ჩვენ დავინახავთ, როგორ მომენტში ეძახით. როდესაც ეს ფუნქცია ეწოდება, ეს კოდი იღებს დასაჯეს, მაშინ ყალბი უბრუნდება, ისევე, როგორც ადრე. მაგრამ შეამჩნია რა მე ვაკეთებ. ამ ეტაპზე ამბავი, მაქვს ფორმა. მას აქვს უნიკალური ID მოუწოდა დემო. Down აქ, მე მაქვს სცენარი აქვს რომელიც ახორციელებს შემდეგი კოდი. ის ანიჭებს, რომ კვანძის ხე ეს წარმოადგინოს ქონების ამ ფუნქციას აქ. და მხოლოდ ბუნება, თუ როგორ ბრაუზერები მუშაობა, როდესაც მე ახლა დააჭირეთ Submit და Enter, რომ ფუნქცია აპირებს მისაღებად მოუწოდა. ეს არ უნდა სახელის გამო, რომელიც heck ზრუნავს რასაც ის მოუწოდა. ერთადერთი დრო, რომ ის ოდესმე აპირებს მისაღებად მოუწოდა, როდესაც მე წარმოადგინოს ფორმა. იქ არ არის საჭიროება ჩემთვის, ადამიანის დეველოპერი, სინამდვილეში ეს არსად. ახლა ისევე როგორც teaser, თითქოს, არ იყო გონება bending საკმარისი, ჩვენ კი ამ უფრო cryptic გამოყენებით სუპერ პოპულარული ბიბლიოთეკა მოუწოდა jQuery. ფაქტობრივად jQuery და JavaScript ხშირად conflated. და ჩვენ ყველაფერს გავაკეთებთ ოთხშაბათს დაწყება ამ ენით და ამ ბიბლიოთეკების ავაშენოთ უფრო ასინქრონული და დინამიური პროგრამები როგორც რუკაზე მიღების პროგრამები, პროგრამები რომ განაახლოთ ვებგვერდზე რეალურ დროს, ბევრი, როგორიცაა Facebook ან Gchat ამის გაკეთება, და აღარ confine თავს დარტყმის წარმოადგინოს მისაღებად ან უბრალოდ პოსტი მარტო. ასე რომ, მე, თქვენ ოთხშაბათს. [მუსიკალური სათამაშო]