1 00:00:00,000 --> 00:00:01,940 >> [Παίζει μουσική] 2 00:00:01,940 --> 00:00:11,130 3 00:00:11,130 --> 00:00:14,620 >> DAVID Malan: Αυτό είναι το CS 50, και Αυτό είναι η αρχή της εβδομάδας εννέα. 4 00:00:14,620 --> 00:00:18,240 Και τι σκεφτήκαμε να κάνουμε σήμερα δεν είναι μόλις κλείσει το κεφάλαιο για την περασμένη εβδομάδα 5 00:00:18,240 --> 00:00:22,670 υλικό όπου εστιάσαμε στον server πλευρά web εφαρμογών με PHP και SQL, 6 00:00:22,670 --> 00:00:23,549 κάποια πράγματα βάσης δεδομένων. 7 00:00:23,549 --> 00:00:25,590 Θα μιλήσουμε για ένα κομμάτι της σήμερα ασφαλείας και, στη συνέχεια, 8 00:00:25,590 --> 00:00:29,590 μετάβαση σε μια πλευρά του client προγραμματισμού γλώσσας, γνωστό ως το JavaScript. 9 00:00:29,590 --> 00:00:31,330 Αλλά πρώτα, κάποια λύτρωση. 10 00:00:31,330 --> 00:00:35,030 >> Ίσως να θυμάστε ότι στις Τετάρτη, εξέθεσα 11 00:00:35,030 --> 00:00:37,550 για να γράψετε μια ιστοσελίδα που πήρε στην είσοδο χρήστη 12 00:00:37,550 --> 00:00:41,120 από μια μορφή html ότι στη συνέχεια αποθηκεύονται ότι τα ονόματα που εισάγει ο χρήστης, τηλέφωνο 13 00:00:41,120 --> 00:00:43,124 αριθμούς, και κινητών τηλεφώνων φορείς στη βάση δεδομένων. 14 00:00:43,124 --> 00:00:45,540 Και τότε είχα μια μικρή εντολή σενάριο γραμμή γραμμένο σε PHP 15 00:00:45,540 --> 00:00:47,956 ότι έπρεπε να επαναλάβει πάνω από τις σειρές στη βάση δεδομένων 16 00:00:47,956 --> 00:00:49,400 και να στείλει μηνύματα κειμένου. 17 00:00:49,400 --> 00:00:53,870 Παρά τις πολλές, πολλές προσπάθειες, εμείς δεν πάρει ότι η εργασία από το τέλος. 18 00:00:53,870 --> 00:00:57,820 >> Έτσι πέρασα όλη αυτή την εβδομάδα εργασίας για τον εν λόγω κώδικα για να μας περάσει από το σημείο 19 00:00:57,820 --> 00:01:01,220 όπου φύγαμε μακριά, σύμφωνα με την οποία όλα τα Πήρα από το τέλος της Τετάρτης 20 00:01:01,220 --> 00:01:05,500 Ήταν αυτό το μήνυμα κειμένου από Margo, όπως έχω παλέψει, 21 00:01:05,500 --> 00:01:09,940 ακολουθούμενο από ένα μήνυμα κειμένου από άλλο συμμαθητής, έχετε αυτό το Δαβίδ. 22 00:01:09,940 --> 00:01:14,030 Ακολουθούμενη από αυτό, θαυμάσια ενθαρρυντική. 23 00:01:14,030 --> 00:01:15,840 Συνέχισα, πολύ ενθαρρυντικό. 24 00:01:15,840 --> 00:01:20,960 Έχω σχεδόν το πήρα μέχρι then-- και αυτό είναι το σημείωμα που έληξε την Τετάρτη. 25 00:01:20,960 --> 00:01:25,850 Και τότε πραγματικά ίσως το αγαπημένο μου, Μια στιγμή αργότερα, αυτό ήρθε στο. 26 00:01:25,850 --> 00:01:27,000 Ανάθεμα live stream. 27 00:01:27,000 --> 00:01:31,080 >> Έτσι, σήμερα, μπορούμε να το διορθώσω αυτό με μια γρήγορη να δούμε τι έχω κάνει από τότε. 28 00:01:31,080 --> 00:01:35,440 Έτσι, όλα αυτού του κώδικα είναι διαθέσιμη σε απευθείας σύνδεση από την περασμένη εβδομάδα, την εβδομάδα οκτώ, 29 00:01:35,440 --> 00:01:36,300 πηγαίο κώδικα. 30 00:01:36,300 --> 00:01:39,425 Και θα δείτε ότι πήγα μέσα, και εγώ πραγματικά καθαριστεί λίγο τα πράγματα. 31 00:01:39,425 --> 00:01:42,080 Έχω εισήγαγε ένα ζευγάρι άλλα χαρακτηριστικά μιας βάσης δεδομένων SQL. 32 00:01:42,080 --> 00:01:45,300 Για παράδειγμα, αντί ακριβώς κάνουν φορέας της var char 33 00:01:45,300 --> 00:01:47,310 όπως νομίζω ότι έκανα σχετικά με τη μύγα περασμένη εβδομάδα. 34 00:01:47,310 --> 00:01:49,820 Εγώ αντί να ορίζεται ως ό, τι λέγεται ένα απαρίθμησης. 35 00:01:49,820 --> 00:01:53,310 >> Και κάποιοι από εσάς μπορεί να έχετε δει αυτό όπως διερευνηθούν Γ κλικΑπαρίθμηση είναι στην πραγματικότητα 36 00:01:53,310 --> 00:01:56,820 ένα χαρακτηριστικό της C, όπου μπορείτε απαριθμήσουμε ένα σωρό των σταθερών 37 00:01:56,820 --> 00:01:59,640 και να τους εκχωρήσετε τον αυτόματο αξίες, σαν ένα, δύο, τρία, τέσσερα 38 00:01:59,640 --> 00:02:01,330 χωρίς να χρειάζεται να σκληρά κωδικούς αριθμούς. 39 00:02:01,330 --> 00:02:04,780 Έτσι SQL υποστηρίζει το ίδιο, οπότε αν έχετε ένα πεδίο βάσης δεδομένων που μπορείτε μόνο 40 00:02:04,780 --> 00:02:09,389 θέλει να αναλάβει μία από τις πεπερασμένες τιμές, μπορείτε να καθορίσετε κυριολεκτικά 41 00:02:09,389 --> 00:02:13,120 όπως έχω κάνει εκεί για τέσσερις δημοφιλείς αεροπορικές εταιρείες των ΗΠΑ κινητό τηλέφωνο. 42 00:02:13,120 --> 00:02:13,819 >> Έτσι έκανα αυτό. 43 00:02:13,819 --> 00:02:16,610 Και έκανα μια σειρά αλλαγών ως καλά, το σημαντικότερο εκ των οποίων 44 00:02:16,610 --> 00:02:20,090 ήταν να πάρει το email εργασίας επειδή ανάκληση, ότι αυτό το πρόγραμμα βασίστηκε στην οποία 45 00:02:20,090 --> 00:02:23,470 γενικά ονομάζεται e-mail στο SMS πύλη, η οποία είναι ακριβώς 46 00:02:23,470 --> 00:02:27,670 ένα φανταχτερό τρόπο λέγοντας ότι η Verizon, και AT & T, και τα άλλα παιδιά υποστηρίξει ένα διακομιστή, 47 00:02:27,670 --> 00:02:30,740 σύμφωνα με την οποία εάν λάβει email, το μετατρέπει σε SMS 48 00:02:30,740 --> 00:02:33,290 και στέλνει ένα κείμενο μήνυμα σε κάποιο τηλέφωνο. 49 00:02:33,290 --> 00:02:37,010 Έτσι, αν το έκανα αυτό σωστά, εδώ είναι μια νέα και βελτιωμένη μορφή 50 00:02:37,010 --> 00:02:39,259 ότι πρόκειται να μιλήσουμε για νέο και βελτιωμένο κώδικα, το οποίο 51 00:02:39,259 --> 00:02:40,300 μπορείτε να παίξετε με online. 52 00:02:40,300 --> 00:02:44,140 Και αυτό θα κάνει ελπίζουμε μου τηλέφωνο μπιπ ακριβώς σε μια στιγμή. 53 00:02:44,140 --> 00:02:47,240 >> Έτσι, η πρώτη, Πάω να πληκτρολογήσετε το όνομα μου. 54 00:02:47,240 --> 00:02:51,400 Δεύτερον, δεν πάω για να γίνει αυτό αυτή τη φορά. 55 00:02:51,400 --> 00:02:53,920 Πάω να κάνω Επιθεωρήστε Element. 56 00:02:53,920 --> 00:02:56,710 Και αυτό είναι μόνο ένα μικρό πράγμα, έτσι δεν το κάνω 57 00:02:56,710 --> 00:02:59,250 δημιουργήσετε ώρες μετά την παραγωγή λειτουργούν όπως έκανα την τελευταία φορά. 58 00:02:59,250 --> 00:03:02,300 Τώρα υπάρχει αριθμός τηλεφώνου μου. 59 00:03:02,300 --> 00:03:03,560 >> Θα επιλέξετε Verizon. 60 00:03:03,560 --> 00:03:10,260 Και εδώ, ας γυρίσουμε σε αυτό το μικρόφωνο εδώ, και έχουν ως στόχο αυτό στο τηλέφωνό μου εδώ. 61 00:03:10,260 --> 00:03:13,130 Πάω να κάνετε κλικ στο Μητρώο, η οποία θα πρέπει ελπίζουμε 62 00:03:13,130 --> 00:03:14,530 το βάζουμε στην βάση δεδομένων. 63 00:03:14,530 --> 00:03:16,780 Τώρα είμαι πρόκειται να πάει η πρόγραμμα γραμμής εντολών, η οποία 64 00:03:16,780 --> 00:03:20,825 ανάκληση ονομαζόταν dot κάθετος κείμενο, και διασχίζουν τα δάχτυλά σας. 65 00:03:20,825 --> 00:03:24,092 66 00:03:24,092 --> 00:03:26,527 Εδώ πάμε. 67 00:03:26,527 --> 00:03:27,501 >> [Dings PHONE] 68 00:03:27,501 --> 00:03:28,962 >> [Χειροκρότημα] 69 00:03:28,962 --> 00:03:31,815 70 00:03:31,815 --> 00:03:34,940 DAVID Malan: Έτσι, πιο διασκεδαστικό από ό, τι this-- είναι διασκέδαση, φυσικά, αν έχω μπει σε αυτό. 71 00:03:34,940 --> 00:03:38,004 Αλλά είναι πιο διασκεδαστικό, σκέφτηκα, αν εμείς δημιουργήθηκε μία από εκείνες τις στιγμές ταινία 72 00:03:38,004 --> 00:03:40,420 όπου σαν κάτι πραγματικά κακό έχει συμβεί στον κόσμο, 73 00:03:40,420 --> 00:03:42,860 και όπως όλα τα NSA ανθρώπων κινητά τηλέφωνα αρχίσει να χτυπάει 74 00:03:42,860 --> 00:03:44,860 με μηνύματα κειμένου προειδοποιώντας τους για αυτό το γεγονός. 75 00:03:44,860 --> 00:03:47,026 Έτσι σκέφτηκα ότι θα δοκιμάσετε να αναδημιουργήσει το ίδιο και εδώ, 76 00:03:47,026 --> 00:03:49,610 σύμφωνα με την οποία δεν χρησιμοποιείτε μια βάση δεδομένων, Εγώ αντί για εκ των προτέρων 77 00:03:49,610 --> 00:03:51,490 έγραψε ένα πρόγραμμα που μοιάζει με αυτό. 78 00:03:51,490 --> 00:03:53,660 >> Αυτό είναι ένα index.php-- και έβαλα αυτόν τον κώδικα στο διαδίκτυο 79 00:03:53,660 --> 00:03:56,710 όπως well-- που προφανώς ακριβώς καθιστά form.php, 80 00:03:56,710 --> 00:04:00,990 χρησιμοποιώντας ένα στυλ πρότυπο MVC ότι εμείς μιλάμε για αναλυτικότερα στο σύνολο προβλήματος 81 00:04:00,990 --> 00:04:01,650 επτά. 82 00:04:01,650 --> 00:04:02,910 Αυτή η μορφή είναι αρκετά απλή. 83 00:04:02,910 --> 00:04:06,634 Είναι πρόκειται να υποβάλει ένα αρχείο που ονομάζεται here.php μέσω ταχυδρομείου. 84 00:04:06,634 --> 00:04:09,300 Και αυτό είναι προφανώς πρόκειται να ζητήσει για ένα όνομα και έναν αριθμό τηλεφώνου, 85 00:04:09,300 --> 00:04:11,400 και στη συνέχεια, μέσω των λεγόμενων Επιλέξτε το μενού, είναι 86 00:04:11,400 --> 00:04:14,250 πρόκειται να σας δώσει τουλάχιστον τέσσερα δημοφιλείς φορείς κινητών τηλεφώνων των ΗΠΑ, 87 00:04:14,250 --> 00:04:17,470 και, στη συνέχεια, να σας επιτρέψει να αποτελεσματικά να λάβει συμμετοχή κάνοντας κλικ εδώ. 88 00:04:17,470 --> 00:04:20,471 >> Και εδώ, εν τω μεταξύ, πρόκειται να δανειστώ κάποια του κώδικα από την τελευταία φορά. 89 00:04:20,471 --> 00:04:22,553 Και αν απλά άπαχο αυτό, θα δείτε ότι υπάρχει 90 00:04:22,553 --> 00:04:23,900 ένα σωρό έλεγχο σφαλμάτων. 91 00:04:23,900 --> 00:04:26,640 Αλλά η ομορφιά στο τέλος είναι ότι δεν είμαστε εγγράφως σε μια βάση δεδομένων σήμερα. 92 00:04:26,640 --> 00:04:29,130 Είμαστε κρατώντας το απλό και απλά στέλνοντας ελπίζουμε 93 00:04:29,130 --> 00:04:32,190 ένα μήνυμα κειμένου μέσω της λειτουργίας Ι έγραψε τη διάρκεια των τελευταίων ημερών κλήση 94 00:04:32,190 --> 00:04:36,270 Κείμενο, το οποίο είναι σε συναρτήσεις. php, η οποία είναι και πάλι διαθέσιμα στο διαδίκτυο. 95 00:04:36,270 --> 00:04:38,210 >> Έτσι, αν θέλετε να συμμετέχετε σε αυτό. 96 00:04:38,210 --> 00:04:40,190 Εμείς δεν πρόκειται να αποθηκεύει τίποτα. 97 00:04:40,190 --> 00:04:43,809 Πηγαίνετε σε αυτό το URL εδώ σε πραγματικό χρόνο. 98 00:04:43,809 --> 00:04:46,850 Μην υποβάλετε ακριβώς ακόμα, αλλά ας να δούμε αν μπορούμε να έχουμε ένα από αυτά ταινίας 99 00:04:46,850 --> 00:04:49,830 στιγμές όπου το κινητό τηλέφωνο του καθενός θα αρχίσει να ηχεί, ελπίζω μόνο 100 00:04:49,830 --> 00:04:53,580 φορά φέτος σε αντίθεση με το 2011 όπου αυτό πήγε στραβά φρικτά. 101 00:04:53,580 --> 00:04:58,910 Και τη στιγμή που θα πάτε σε αυτή τη διεύθυνση, θα πρέπει να δείτε ένα σούπερ απλή μορφή 102 00:04:58,910 --> 00:05:03,884 ότι αν έχετε ένα όνομα, ένα κινητό τηλέφωνο αριθμός, και ένας φορέας κινητό τηλέφωνο ότι 103 00:05:03,884 --> 00:05:06,175 ταιριάζει με τη λίστα εκεί, πηγαίνετε μπροστά και να συμπληρώσετε τη φόρμα. 104 00:05:06,175 --> 00:05:07,880 Αλλά δεν χτύπησε υποβάλει ακριβώς ακόμα. 105 00:05:07,880 --> 00:05:10,850 >> Η μορφή πρόκειται να μοιάζει με αυτό. 106 00:05:10,850 --> 00:05:13,660 Προχωρήστε και πληκτρολογήστε το όνομά σας, τον αριθμό τηλεφώνου. 107 00:05:13,660 --> 00:05:17,670 Oop, κάποιος πηγαίνει μπροστά από την καμπύλη. 108 00:05:17,670 --> 00:05:18,170 Είναι εντάξει. 109 00:05:18,170 --> 00:05:19,340 Εντάξει, ο καθένας έχει συμπληρώσει τη φόρμα. 110 00:05:19,340 --> 00:05:21,400 Αυτό θα πρέπει να εργαστούν για ένα τηλέφωνο, πάρα πολύ, αν θέλετε. 111 00:05:21,400 --> 00:05:23,695 Εντάξει, για τα σήματα σας, ετοιμαστείτε, πηγαίνετε. 112 00:05:23,695 --> 00:05:24,195 Πατήστε εδώ. 113 00:05:24,195 --> 00:05:27,275 114 00:05:27,275 --> 00:05:27,775 Τι; 115 00:05:27,775 --> 00:05:31,140 116 00:05:31,140 --> 00:05:31,640 Όχι. 117 00:05:31,640 --> 00:05:34,410 118 00:05:34,410 --> 00:05:40,250 Ορκίζομαι στο Θεό, θα δοκιμαστεί αυτό σήμερα πολλές φορές. 119 00:05:40,250 --> 00:05:41,720 Μπορείτε να το έχεις; 120 00:05:41,720 --> 00:05:43,145 >> [Παρεμβάλλοντας ΦΩΝΕΣ] 121 00:05:43,145 --> 00:05:46,470 122 00:05:46,470 --> 00:05:49,560 >> DAVID Malan: Εντάξει, ίσως λάθος του χρήστη. 123 00:05:49,560 --> 00:05:50,550 Αυτό είναι δύο. 124 00:05:50,550 --> 00:05:53,300 Δούλεψε για δύο από ένα μερικές εκατοντάδες, τρία, τέσσερα. 125 00:05:53,300 --> 00:05:55,940 Εντάξει, αυτό είναι καλό. 126 00:05:55,940 --> 00:05:58,520 Τέσσερις στους πέντε για ορθότητα πώς περίπου. 127 00:05:58,520 --> 00:05:59,810 >> Έτσι τι ακριβώς συνέβη; 128 00:05:59,810 --> 00:06:02,727 Έτσι, προφανώς, χωρίς να δει σας οθόνες, γιατί θα μπορούσε να έχει errored; 129 00:06:02,727 --> 00:06:05,518 Είναι πιθανόν ότι ήμασταν μόνο προσπαθώντας να κάνει πάρα πολλές συνδέσεις 130 00:06:05,518 --> 00:06:08,110 στο διακομιστή αλληλογραφίας του Χάρβαρντ σε όλα μια φορά από την ίδια διεύθυνση IP. 131 00:06:08,110 --> 00:06:10,740 Είμαι απλώς εικασία αφού δεν το έκανα έχουν την πολυτέλεια της δοκιμής 132 00:06:10,740 --> 00:06:13,220 αυτός ο κώδικας με μερικές 300 άνθρωποι εκ των προτέρων 133 00:06:13,220 --> 00:06:16,040 αλλά για τώρα συνειδητοποιούν ότι ότι θα πρέπει τουλάχιστον 134 00:06:16,040 --> 00:06:18,250 έχουν πάρει τη δουλειά που έχει γίνει αυτή τη φορά. 135 00:06:18,250 --> 00:06:22,880 >> Εντάξει, οπότε γιατί να είναι αυτό όλα τα πιο συναφές με το τι συμβαίνει; 136 00:06:22,880 --> 00:06:24,900 Λοιπόν πρώτα, μια γρήγορη δυο ανακοινώσεις. 137 00:06:24,900 --> 00:06:29,350 Έτσι, ένα, αν θέλετε να συμμετάσχετε Chang, και Νικ, και άλλοι σε γεύμα αυτή την Παρασκευή, 138 00:06:29,350 --> 00:06:32,400 κάνουν RSVP στη συνηθισμένη διεύθυνση URL εκεί. 139 00:06:32,400 --> 00:06:35,650 Αν σκέφτεστε της συγκέντρωσης ή να κάνει μια δευτερεύουσα στο CS, 140 00:06:35,650 --> 00:06:38,941 αν είστε ένας δευτεροετής φοιτητής, ή καινούριος, ή ακόμη και κατώτερος ή ανώτερος σε αυτό το σημείο 141 00:06:38,941 --> 00:06:42,490 και μπορεί ακόμα να αποσπάσουν στα μαθήματα, συνειδητοποιούν ότι το σχολείο της μηχανικής 142 00:06:42,490 --> 00:06:45,620 συγκεντρώνει για δωρεάν Μπεν και Του Jerry παγωτό και συμβουλές 143 00:06:45,620 --> 00:06:48,910 αυτή την Τετάρτη λίγο μετά το μάθημα στις 4:00 μ.μ. στο κτίριο CS 144 00:06:48,910 --> 00:06:49,771 στο Maxwell Dworkin. 145 00:06:49,771 --> 00:06:51,520 Εάν αυτό είναι πάρα πολύ γρήγορα στην οθόνη, απλά πηγαίνετε 146 00:06:51,520 --> 00:06:55,260 να cs50.harvard.edu για ένα link για την εκδήλωση του Facebook 147 00:06:55,260 --> 00:06:57,140 όπου μπορείτε να δείτε περισσότερες λεπτομέρειες. 148 00:06:57,140 --> 00:07:01,390 >> Εν τω μεταξύ, σκέφτηκα ότι θα διορθώσει ένα άλλο πράγμα που goofed την Τετάρτη. 149 00:07:01,390 --> 00:07:04,400 Βγάζει ότι ID Μάρκου στο Facebook δεν ήταν τρία. 150 00:07:04,400 --> 00:07:05,230 Ήταν τέσσερις. 151 00:07:05,230 --> 00:07:08,330 Βγάζει είχε περισσότερα τεστ λογαριασμούς από ό, τι θυμάμαι. 152 00:07:08,330 --> 00:07:12,400 Αλλά τι αισθάνθηκε αυτό σαν μια ευκαιρία να κάνετε είναι να σηκώσει ένα URL σαν αυτό. 153 00:07:12,400 --> 00:07:16,680 >> Έτσι αποδεικνύεται ότι το Facebook έχει ένα API, διεπαφή προγραμματισμού εφαρμογών, 154 00:07:16,680 --> 00:07:20,070 η οποία είναι ένας μηχανισμός με τον οποίο θα μπορεί να ζητήσει τα δεδομένα προγραμματισμού 155 00:07:20,070 --> 00:07:24,480 στο Facebook και να πάρετε πίσω μηχάνημα αναγνώσιμες πληροφορίες, δεν ιστοσελίδες 156 00:07:24,480 --> 00:07:28,690 αλλά απλώς πρώτων κείμενο, κάτι ονομάζεται το JavaScript Αντικείμενο σημειογραφία. 157 00:07:28,690 --> 00:07:32,150 Και στην πραγματικότητα, αν έχω επισκεφθεί αυτό URL, και μεγέθυνση, από προεπιλογή, 158 00:07:32,150 --> 00:07:34,960 Αυτό είναι Μάρκου δημοσίως προσβάσιμες πληροφορίες. 159 00:07:34,960 --> 00:07:37,430 >> Και η ενδιαφέρουσα λεπτομέρεια εδώ είναι ακριβώς ότι το id του 160 00:07:37,430 --> 00:07:40,670 Είναι πράγματι, νούμερο τέσσερα, η οποία θα συνειδητοποίησα μόλις το έκανα αυτό. 161 00:07:40,670 --> 00:07:44,260 Μπορείτε να το κάνετε αυτό στον εαυτό σας, αν γνωρίζετε Facebook το όνομα χρήστη σας, εάν έχετε ένα. 162 00:07:44,260 --> 00:07:45,440 Απλά πληκτρολογήστε επάνω στην κορυφή εκεί. 163 00:07:45,440 --> 00:07:46,640 Και όλα αυτά δεν είναι ιδιωτική. 164 00:07:46,640 --> 00:07:48,670 Είμαι απλά κάνει αυτό ακόμα στην κατάσταση ανώνυμης περιήγησης. 165 00:07:48,670 --> 00:07:49,900 Έτσι, δεν είμαι καν εισέλθει. 166 00:07:49,900 --> 00:07:54,440 Και βλέπετε ότι εγώ προφανώς ήταν αριθμός χρήστη 6454 167 00:07:54,440 --> 00:07:56,480 στο Facebook, το οποίο δεν είναι πάρα πολύ κακό αυτές τις μέρες. 168 00:07:56,480 --> 00:07:59,900 Έτσι, ούτως ή άλλως, θα δείτε επίσης πρόσθετες πληροφορίες εκεί. 169 00:07:59,900 --> 00:08:02,150 >> Και η ωφέλιμη άποψη από αυτό είναι ότι 170 00:08:02,150 --> 00:08:06,890 να γράψουμε το δικό σας λογισμικό που κατά κάποιον τρόπο ενσωματώνει στοιχεία όπως αυτό 171 00:08:06,890 --> 00:08:08,170 στη δική σας εφαρμογή. 172 00:08:08,170 --> 00:08:10,650 Μπορείτε να εξουσιοδοτήσει τους χρήστες να συνδεθείτε στην ιστοσελίδα σας, 173 00:08:10,650 --> 00:08:14,190 δεν χρησιμοποιούν το δικό τους προσαρμοσμένο όνομα χρήστη και κωδικό πρόσβασης, αλλά ίσως Facebook Σύνδεση τους 174 00:08:14,190 --> 00:08:16,170 και να πάρει πληροφορίες, ακόμη και για τους φίλους τους, 175 00:08:16,170 --> 00:08:18,740 αν εγκρίνει τέτοια, ή παρόμοια. 176 00:08:18,740 --> 00:08:21,430 Έτσι, σημειώστε ότι CS50, πάρα πολύ, έχει κάποιες από τις δικές API της, 177 00:08:21,430 --> 00:08:24,620 ένα για τα δεδομένα Κατάλογος φυσικά, μερικά για τα μενού αγκαλιές στην τραπεζαρία 178 00:08:24,620 --> 00:08:26,730 αίθουσες, όλα τα κτίρια και τοποθεσίες 179 00:08:26,730 --> 00:08:30,930 στην πανεπιστημιούπολη έχουμε ένα API, καθώς και για ότι μπορείτε να ελέγξετε τον ίδιο τρόπο και να πάρει 180 00:08:30,930 --> 00:08:35,520 πίσω δεδομένων κειμένου που μπορείτε να ενσωματώσετε σε PHP, ή JavaScript, ή ακόμη, 181 00:08:35,520 --> 00:08:38,320 αν και λιγότερο συχνά, ένα C βασίζεται τελικό σχέδιο. 182 00:08:38,320 --> 00:08:41,190 >> Πράγματι μπροστά για την τελική έργο είναι μερικά ορόσημα. 183 00:08:41,190 --> 00:08:42,980 Έχεις ένα μήνυμα ηλεκτρονικού ταχυδρομείου από εμάς τις προάλλες. 184 00:08:42,980 --> 00:08:45,761 Συνειδητοποιήστε ότι η πρόταση αναμένεται την ερχόμενη Δευτέρα. 185 00:08:45,761 --> 00:08:49,010 Δεν είναι απαραίτητα δεσμευτική, αλλά θα δεν πρέπει να γίνεται η διδασκαλία τους συνανθρώπους σας 186 00:08:49,010 --> 00:08:51,260 έγκριση πριν από την πραγματοποίηση οποιεσδήποτε μετέπειτα αλλαγές. 187 00:08:51,260 --> 00:08:54,280 Και τότε μπροστά είναι ένα τον αριθμό των άλλων ορόσημα. 188 00:08:54,280 --> 00:08:56,542 >> Έτσι για να σας δώσουμε έμφαση, πάρα πολύ, με κάποιες δυνατότητες, 189 00:08:56,542 --> 00:08:58,250 έχουμε ένα μάτσο Αυτές οι λαμπτήρες απόχρωση. 190 00:08:58,250 --> 00:09:01,190 Και κάποιοι από εσάς παιδιά έχουν τώρα κάποια από αυτά στο δωμάτιο της εστίας σας, καθώς και. 191 00:09:01,190 --> 00:09:02,920 Και έχουν και αυτοί ένα API. 192 00:09:02,920 --> 00:09:07,300 Έτσι ανακαλέσετε όλα αυτά τα δυαδικά εβδομάδες λαμπτήρες Πριν όμως ότι η Dan Bradley και Ansel 193 00:09:07,300 --> 00:09:08,780 Duff δημιούργησε για εμάς. 194 00:09:08,780 --> 00:09:12,560 Χρησιμοποίησαν μια διεπαφή λογισμικού για Αυτή η λάμπα, η οποία αυτή τη στιγμή 195 00:09:12,560 --> 00:09:15,232 είναι συνδεδεμένο σε ηλεκτρική ενέργεια και στη συνέχεια, μέσω ασύρματης 196 00:09:15,232 --> 00:09:17,690 είναι συνδεδεμένο με ένα μικρό πράγμα κάλεσε την Γέφυρα εδώ κάτω, 197 00:09:17,690 --> 00:09:21,280 σαν ένα μικρό router ιδιόκτητο σε αυτή τη συγκεκριμένη συσκευή. 198 00:09:21,280 --> 00:09:26,540 >> Αλλά αποδεικνύεται αν ξέρω πώς να στείλετε μηνύματα HTTP, όπως όλοι κάνουμε τώρα, 199 00:09:26,540 --> 00:09:31,670 Μπορώ να στείλω ένα μήνυμα σαν αυτό να Αυτή η λάμπα για να το ενεργοποιήσετε ή να απενεργοποιήσετε 200 00:09:31,670 --> 00:09:34,000 ή να κάνει οποιοδήποτε αριθμό των άλλες εργασίες σε αυτό. 201 00:09:34,000 --> 00:09:36,110 Παρατηρήστε ότι δεν έχει πάρει, δεν είναι δημοσιεύσετε. 202 00:09:36,110 --> 00:09:37,760 Υπάρχει ένα άλλο που ονομάζεται πώλησης. 203 00:09:37,760 --> 00:09:39,630 Υπάρχει πράγματι μερικά άλλα τέτοια ρήματα. 204 00:09:39,630 --> 00:09:42,920 Αλλά παρατηρήσετε ότι υπάρχει ένα μονοπάτι εκεί, κάθετο API, κάθετος νέα προγραμματιστής, 205 00:09:42,920 --> 00:09:44,990 κάθετο φως, ένα κάθετο, κάθετος κατάσταση. 206 00:09:44,990 --> 00:09:49,060 >> Αυτό είναι προφανώς μόνο το μονοπάτι που η εταιρεία, η Philips, 207 00:09:49,060 --> 00:09:51,640 αποφασίσει ότι πρέπει να χτυπήσει με μια αίτηση HTTP 208 00:09:51,640 --> 00:09:55,010 αν θέλετε να αλλάξετε την κατάσταση του βολβού με τη χρήση HTTP 1.1. 209 00:09:55,010 --> 00:09:56,380 Στη συνέχεια παρατηρήσετε την κενή γραμμή. 210 00:09:56,380 --> 00:10:00,170 Και στη συνέχεια, τέλος, αυτό που μοιάζει με το είδος της μια σειρά από κάποιου είδους, 211 00:10:00,170 --> 00:10:04,730 Αυτό και πάλι θα πρέπει να ονομάζεται Τη JavaScript Αντικείμενο Συμβολισμός, ή Ιάσονα. 212 00:10:04,730 --> 00:10:08,000 Και αυτό που βλέπετε εδώ είναι ότι υπάρχουν τρία βασικά ζεύγη αξία. 213 00:10:08,000 --> 00:10:09,115 >> Ένα βασικό καλείται. 214 00:10:09,115 --> 00:10:10,990 Και η αξία του προφανώς πρόκειται να είναι αληθινό. 215 00:10:10,990 --> 00:10:13,612 Φωτεινότητα είναι 128, το οποίο είναι κάποιο είδος int. 216 00:10:13,612 --> 00:10:15,820 Και τότε ο χρόνος μετάβασης είναι μηδέν, η οποία είναι προφανώς 217 00:10:15,820 --> 00:10:17,970 πόσο καιρό πρόκειται να πάρει για να μετατρέψει αυτό το πράγμα επάνω. 218 00:10:17,970 --> 00:10:19,890 >> Μέχρι τώρα αυτή η λάμπα είναι σβηστή. 219 00:10:19,890 --> 00:10:22,880 Αλλά αν το κάνω ακριβώς this-- ας Θέλω να πάω σε ένα μικρό σκονάκι 220 00:10:22,880 --> 00:10:25,200 ότι Νταν που έχει συσταθεί στο advance-- και Πάω 221 00:10:25,200 --> 00:10:27,920 να προχωρήσει και να αντιγράψετε η ακόλουθη εντολή. 222 00:10:27,920 --> 00:10:30,200 Curl, όπως κάποιοι από εσάς θα μπορούσε να φανεί στο CS50 223 00:10:30,200 --> 00:10:35,080 Συζητήστε είναι ένα βοηθητικό πρόγραμμα όπως το telnet όπως ότι μπορείτε να προσομοιώνουν τις αιτήσεις HTTP, 224 00:10:35,080 --> 00:10:36,360 Συγκεκριμένα βάζει. 225 00:10:36,360 --> 00:10:39,710 Μπορώ να στείλετε αυτά τα δεδομένα, συγκεκριμένα τι ακριβώς 226 00:10:39,710 --> 00:10:43,430 είδε μια στιγμή πριν από ειδικά σε αυτό το URL εδώ. 227 00:10:43,430 --> 00:10:46,310 Και τότε Curl πρόκειται να χειριστεί όλα τα απαιτούμενα κεφαλίδες 228 00:10:46,310 --> 00:10:47,600 και parsing εκεί. 229 00:10:47,600 --> 00:10:54,700 >> Έτσι, το μόνο που έχετε να κάνετε είναι να αντιγράψετε αυτό σε ένα παράθυρο τερματικού και, στη συνέχεια, πατήστε Enter. 230 00:10:54,700 --> 00:10:56,000 Και η λάμπα ανάβει. 231 00:10:56,000 --> 00:10:59,060 Και αυτό είναι όλα διέρχεται υπολογιστή μου ασύρματα 232 00:10:59,060 --> 00:11:01,960 κατά κάποιο τρόπο κάτω από τη γέφυρα, η οποία τότε μιλάμε για αυτή την λάμπα. 233 00:11:01,960 --> 00:11:02,960 Μπορώ να κάνω κάτι άλλο. 234 00:11:02,960 --> 00:11:07,050 Μπορώ να κάνω αυτό το πράγμα πάει το κόκκινο, για παράδειγμα. 235 00:11:07,050 --> 00:11:11,040 Για παράδειγμα, μπορώ να κάνω αυτό το πράγμα να πάει πράσινο. 236 00:11:11,040 --> 00:11:12,220 Μπορώ να το κάνει να πάει μπλε. 237 00:11:12,220 --> 00:11:14,760 >> Και παρατηρήσετε σε κάθε μία από αυτές περιπτώσεις, το μόνο που αλλάζω 238 00:11:14,760 --> 00:11:18,540 είναι η λεγόμενη τιμή απόχρωση σε πραγματικά δώσει λίγο χρώμα. 239 00:11:18,540 --> 00:11:20,320 Έτσι, επιτρέψτε μου να επικολλήσετε αυτό το ένα σε καθώς και. 240 00:11:20,320 --> 00:11:21,000 Τώρα είναι μπλε. 241 00:11:21,000 --> 00:11:24,672 >> Και μπορείτε να το κάνετε ακόμη πιό φανταχτερό πράγματα where-- ας πάμε σε πράσινο. 242 00:11:24,672 --> 00:11:26,630 Και θα μπορούσα να κάνω αυτό της φυσικά με το δικό μου κώδικα. 243 00:11:26,630 --> 00:11:30,670 Αλλά ακόμη και η ίδια η API υποστηρίζει funky πράξεις 244 00:11:30,670 --> 00:11:35,510 όπως αυτό, το οποίο θα ασχοληθείτε τώρα μας για τα επόμενα 30 δευτερόλεπτα. 245 00:11:35,510 --> 00:11:39,170 >> Έτσι, αυτό είναι μια γεύση του τι μπορεί να κάνει με ένα API, αυτό το ένα εκ των οποίων 246 00:11:39,170 --> 00:11:40,010 λαμπτήρες πυράκτωσης. 247 00:11:40,010 --> 00:11:42,510 Σημειώστε ότι CS50 έχει ένα ζευγάρι ζεύγη Google Glass αν θέλετε 248 00:11:42,510 --> 00:11:45,380 ήθελε να αντιμετωπίσει κάτι μαζί αυτές οι γραμμές, Arduino UNOS, η οποία 249 00:11:45,380 --> 00:11:48,670 είναι μικροσκοπικά υπολογιστές, κατ 'ουσίαν, σε μια μικρή πλακέτα κυκλώματος 250 00:11:48,670 --> 00:11:50,470 ότι μπορείτε να συνδεθείτε σύρματα και άλλα πράγματα 251 00:11:50,470 --> 00:11:52,732 και στην πραγματικότητα τον έλεγχο πραγματικό περιβάλλον σας. 252 00:11:52,732 --> 00:11:54,940 Και έπειτα υπάρχουν ένα ζευγάρι των νέων παιχνιδιών που έχουμε. 253 00:11:54,940 --> 00:11:59,294 Αυτή η μία κυριολεκτικά μόλις έφτασε η άλλη μέρα με το ταχυδρομείο, μια μυο περιβραχιόνιο. 254 00:11:59,294 --> 00:12:01,710 Και σκέφτηκα ότι είναι ένας τρόπος για να σας πάρει ενθουσιασμένος για έργα 255 00:12:01,710 --> 00:12:03,720 ότι μπορείτε να χρησιμοποιήσετε με Αυτό το υλικό θα 256 00:12:03,720 --> 00:12:08,900 να παίξει αυτό το σύντομο κλιπ που χρησιμοποιούν για να πειράζω τους λαούς 257 00:12:08,900 --> 00:12:10,500 ότι είμαστε τώρα ζει στο μέλλον. 258 00:12:10,500 --> 00:12:13,494 259 00:12:13,494 --> 00:12:15,490 >> [Παίζει μουσική] 260 00:12:15,490 --> 00:13:33,410 261 00:13:33,410 --> 00:13:37,109 >> DAVID Malan: Έτσι, μέσα σε λίγες εβδομάδες, θα επίσης μπορεί να είναι ότι δροσερό στην εύλογη CS50. 262 00:13:37,109 --> 00:13:39,150 Άλλη συσκευή που έχουμε έχουν ένα μάτσο ότι είμαστε 263 00:13:39,150 --> 00:13:42,090 στην ευχάριστη θέση να δανείζει για έργα ονομάζεται ένα χειριστήριο κίνησης. 264 00:13:42,090 --> 00:13:45,030 Αυτή είναι μια μικρή συσκευή USB μπορείτε να συνδέσετε σε έναν υπολογιστή που 265 00:13:45,030 --> 00:13:47,520 σας επιτρέπει να αλληλεπιδρούν με φορητό υπολογιστή σας, Mac ή PC, 266 00:13:47,520 --> 00:13:51,570 σαν να είχατε σαν μια κονσόλα Xbox Kinect και πραγματικά να κάνει κινήσεις του πολύ 267 00:13:51,570 --> 00:13:54,509 όπως βλέπουμε σε αυτό όραμα για το μέλλον. 268 00:13:54,509 --> 00:13:56,505 >> [Παίζει μουσική] 269 00:13:56,505 --> 00:15:03,380 270 00:15:03,380 --> 00:15:06,260 >> DAVID Malan: Έτσι, ακόμη και αν έχετε καμία ιδέα για το πώς κάτι τέτοιο 271 00:15:06,260 --> 00:15:10,050 θα μπορούσε ενδεχομένως να εφευρεθεί ή εργασία σε επίπεδο υλικού, δεν έχει σημασία. 272 00:15:10,050 --> 00:15:13,520 Ακόμα και μετά από λίγους μόλις μήνες του CS50, και η κατανόηση του προγραμματισμού 273 00:15:13,520 --> 00:15:19,460 γενικότερα, και web προγραμματισμό περισσότερο πρόσφατα, και στη συνέχεια, επίσης, APIs, και HTTP, 274 00:15:19,460 --> 00:15:21,830 θα έχετε πρόσβαση μέσω APIs λογισμικού αν 275 00:15:21,830 --> 00:15:24,680 θέλουν να δανειστούν ένα από αυτά συσκευές για να μιλήσουμε πραγματικά για αυτό 276 00:15:24,680 --> 00:15:27,180 και δεν έχετε να ανησυχείτε για η υποκείμενη εφαρμογή 277 00:15:27,180 --> 00:15:30,220 λεπτομέρειες, οι οποίες είναι εντελώς συνεπής με αυτή την έννοια της διαστρωμάτωσης 278 00:15:30,220 --> 00:15:33,610 μια αφηρημένη έννοια που έχουμε δει τη διάρκεια του εξαμήνου. 279 00:15:33,610 --> 00:15:37,990 >> Έτσι, επίσης, τη διάρκεια του Σαββατοκύριακου, είδε ένα ζευγάρι κομμάτια των ειδήσεων. 280 00:15:37,990 --> 00:15:40,640 Πήγαινε πρώτα, πάνε σε σεμινάρια, αν Θα ήθελα να μάθω κάτι 281 00:15:40,640 --> 00:15:42,160 περισσότερα για οποιοδήποτε αριθμό θεμάτων. 282 00:15:42,160 --> 00:15:43,340 Δείτε το URL εκεί. 283 00:15:43,340 --> 00:15:45,890 Και αυτό εστάλη μου από τον Chang, που ξέρετε, 284 00:15:45,890 --> 00:15:47,850 ποιος εκτύπωση στρατό μας των ελεφάντων. 285 00:15:47,850 --> 00:15:49,910 Και ήταν ένας τίτλος ως εξής. 286 00:15:49,910 --> 00:15:51,280 Είμαι τρομοκρατημένος από νέα τηλεόραση μου. 287 00:15:51,280 --> 00:15:54,301 Γιατί είμαι φοβισμένος να γυρίσει αυτό πράγμα και θα ήθελα να είναι πάρα πολύ. 288 00:15:54,301 --> 00:15:56,050 Έτσι είμαστε τώρα στο σημείο στο εξάμηνο, 289 00:15:56,050 --> 00:15:58,860 πάρα πολύ, όπου ακόμα κι αν έχετε η παραμικρή κατανόησης 290 00:15:58,860 --> 00:16:02,620 του πώς λειτουργεί το διαδίκτυο, και το HTTP, και της ασφάλειας, τα πράγματα όπως αυτό 291 00:16:02,620 --> 00:16:03,980 θα πρέπει να αρχίσει να πιάσει το μάτι σας. 292 00:16:03,980 --> 00:16:07,450 Αλλά επίσης, θα καταλάβετε αν αυτά τα πράγματα είναι ή δεν είναι 293 00:16:07,450 --> 00:16:08,430 πραγματικές απειλές. 294 00:16:08,430 --> 00:16:10,940 >> Έτσι πήρα μερικά αποσπάσματα από αυτό το άρθρο εδώ. 295 00:16:10,940 --> 00:16:12,540 Και η ιστορία έχει ως εξής. 296 00:16:12,540 --> 00:16:14,300 Είμαι τώρα ο ιδιοκτήτης του ένα νέο Smart TV, το οποίο 297 00:16:14,300 --> 00:16:18,470 υπόσχεται να παραδώσει ροής περιεχομένου πολυμέσων, παιχνίδια, εφαρμογή, 298 00:16:18,470 --> 00:16:21,450 κοινωνικών μέσων μαζικής ενημέρωσης, καθώς και στο διαδίκτυο περιήγηση, OH και τηλεόραση πάρα πολύ. 299 00:16:21,450 --> 00:16:24,410 Το μόνο πρόβλημα είναι ότι είμαι τώρα φοβάται να το χρησιμοποιήσει, λέει ο συγγραφέας. 300 00:16:24,410 --> 00:16:29,592 Θα είναι, επίσης, αν μπορείτε να διαβάσετε μέσω του η πολιτική απορρήτου της σελίδας 46 για την τηλεόρασή σας. 301 00:16:29,592 --> 00:16:31,800 Η ποσότητα των δεδομένων, αυτό συλλέγει πράγμα είναι συγκλονιστικό. 302 00:16:31,800 --> 00:16:35,710 Καταγράφει πού, πότε, πώς, και για πόσο καιρό μπορείτε να χρησιμοποιήσετε την τηλεόραση. 303 00:16:35,710 --> 00:16:38,190 Θέτει tracking cookies, όπως έχουμε συζητήσει, 304 00:16:38,190 --> 00:16:40,560 και φάροι σχεδιαστεί για την ανίχνευση όταν έχετε 305 00:16:40,560 --> 00:16:43,185 είδαν συγκεκριμένο περιεχόμενο ή ένα συγκεκριμένο μήνυμα ηλεκτρονικού ταχυδρομείου 306 00:16:43,185 --> 00:16:45,230 αν θέλετε να ελέγξετε τα email στην τηλεόρασή σας. 307 00:16:45,230 --> 00:16:48,430 Καταγράφει τις εφαρμογές σας χρησιμοποιείτε, τις ιστοσελίδες που επισκέπτεστε, 308 00:16:48,430 --> 00:16:52,280 και πώς αλληλεπιδρούν με το περιεχόμενο, κάνει όλα αυτά μέσω της Smart TV σας. 309 00:16:52,280 --> 00:16:55,470 Επίσης, creepier yet-- ότι είναι addition-- μου 310 00:16:55,470 --> 00:16:58,140 έχει μια ενσωματωμένη κάμερα με αναγνώριση προσώπου. 311 00:16:58,140 --> 00:17:01,010 >> Ο σκοπός είναι να παράσχει τον έλεγχο χειρονομία για την τηλεόραση 312 00:17:01,010 --> 00:17:05,490 και σας δίνουν τη δυνατότητα να συνδεθείτε στο προσωπικό λογαριασμό, χρησιμοποιώντας το πρόσωπό σας. 313 00:17:05,490 --> 00:17:08,940 Από την άλλη πλευρά, οι εικόνες είναι αποθηκευτεί στην τηλεόραση αντί φορτωθεί 314 00:17:08,940 --> 00:17:09,940 σε ένα εταιρικό server. 315 00:17:09,940 --> 00:17:12,520 Από την άλλη πλευρά, το Διαδίκτυο σύνδεση καθιστά την όλη τηλεόρασης 316 00:17:12,520 --> 00:17:14,811 ευάλωτο σε χάκερ που έχουν αποδείξει την ικανότητα 317 00:17:14,811 --> 00:17:16,700 να πάρει τον πλήρη έλεγχο του μηχανήματος. 318 00:17:16,700 --> 00:17:20,880 >> Πιο ανησυχητικό, σαν να μην ήταν αρκετά έξυπνος, είναι το μικρόφωνο. 319 00:17:20,880 --> 00:17:23,599 Η τηλεόραση μπορεί να υπερηφανεύεται για μια φωνή δυνατότητα αναγνώρισης 320 00:17:23,599 --> 00:17:26,859 που επιτρέπει στους τηλεθεατές να ελέγχουν η οθόνη με φωνητικές εντολές. 321 00:17:26,859 --> 00:17:30,290 Αλλά η υπηρεσία έρχεται με μια μάλλον δυσοίωνη προειδοποίηση. 322 00:17:30,290 --> 00:17:33,030 Παρακαλούμε να γνωρίζετε ότι εάν ομιλούνται τα λόγια σας να περιλαμβάνει 323 00:17:33,030 --> 00:17:36,210 προσωπικές ή άλλες ευαίσθητες πληροφορίες, οι πληροφορίες 324 00:17:36,210 --> 00:17:40,310 θα είναι μεταξύ των δεδομένων που συλλέγουν και διαβιβάζονται σε τρίτους. 325 00:17:40,310 --> 00:17:40,870 Πήρε αυτό; 326 00:17:40,870 --> 00:17:45,860 Να μην πω προσωπικά ή ευαίσθητα πράγματα μπροστά από την τηλεόρασή σας. 327 00:17:45,860 --> 00:17:47,280 >> Έτσι, αυτό είναι πραγματικά για πραγματικό. 328 00:17:47,280 --> 00:17:50,530 Και είναι δύσκολο να μην δούμε αν πηγαίνετε στο Best Buy και τα παρόμοια για τηλεοράσεις 329 00:17:50,530 --> 00:17:51,030 αυτές τις μέρες. 330 00:17:51,030 --> 00:17:52,540 Είναι όλοι έξυπνος με κάποιο τρόπο. 331 00:17:52,540 --> 00:17:54,740 Και παίρνουν πιο έξυπνη και creepier. 332 00:17:54,740 --> 00:17:57,490 Και όπου και αν απλώς συλλογή δεδομένων με τρόπους που έχουμε μιλήσει για 333 00:17:57,490 --> 00:18:01,840 και στη συνέχεια το φόρτωμα μέσω HTTP ή κάποιο άλλο πρωτόκολλο για κάποιο διακομιστή. 334 00:18:01,840 --> 00:18:05,720 >> Έτσι, αυτό ήταν ένα διασκεδαστικό άρθρο σε αυτή την ιστοσελίδα online 335 00:18:05,720 --> 00:18:08,940 Εδώ, ο οποίος μίλησε για μια Ειδικότερα σφάλμα ή λάθος κωδικό 336 00:18:08,940 --> 00:18:11,340 ότι μπορούμε πραγματικά να δέσουν στη συζήτηση της περασμένης εβδομάδας. 337 00:18:11,340 --> 00:18:15,730 Έτσι, αυτός ο τίτλος ήταν ως Επομένως, η ιστορία πηγαίνει εδώ, 338 00:18:15,730 --> 00:18:18,720 Josh Breckman εργάστηκε για ένα Η εταιρεία που προσγειώθηκε μια σύμβαση 339 00:18:18,720 --> 00:18:22,390 να αναπτύξει μια διαχείριση περιεχομένου σύστημα, ή CMS, όπως και αν ονομάζεται, 340 00:18:22,390 --> 00:18:24,380 για ένα αρκετά μεγάλο ιστοσελίδα της κυβέρνησης. 341 00:18:24,380 --> 00:18:27,300 Μεγάλο μέρος του έργου που εμπλέκονται την ανάπτυξη ενός συστήματος διαχείρισης περιεχομένου 342 00:18:27,300 --> 00:18:29,840 έτσι ώστε οι εργαζόμενοι θα είναι σε θέση να χτίσουν και να διατηρήσουν 343 00:18:29,840 --> 00:18:31,877 το συνεχώς μεταβαλλόμενο περιεχόμενο για την περιοχή τους. 344 00:18:31,877 --> 00:18:34,210 Τα πράγματα πήγαν αρκετά καλά για λίγες ημέρες μετά πηγαίνει ζωντανά. 345 00:18:34,210 --> 00:18:37,020 Αλλά από την ημέρα έξι, τα πράγματα δεν πήγαν τόσο καλά. 346 00:18:37,020 --> 00:18:39,500 Όλο το περιεχόμενο για το ιστοσελίδα είχε εξαφανιστεί εντελώς. 347 00:18:39,500 --> 00:18:42,950 Και όλες οι σελίδες οδήγησε στην προεπιλογή, παρακαλούμε εισάγετε το περιεχόμενο της ιστοσελίδας. 348 00:18:42,950 --> 00:18:43,810 Ωχ. 349 00:18:43,810 --> 00:18:46,080 Josh κλήθηκε να διερευνήσει και να παρατηρήσει 350 00:18:46,080 --> 00:18:49,390 ότι ένα ιδιαίτερα ενοχλητικό εξωτερική διεύθυνση IP είχε 351 00:18:49,390 --> 00:18:53,380 πάει και να διαγραφούν όλα το περιεχόμενο του συστήματος. 352 00:18:53,380 --> 00:18:56,290 >> Η διεύθυνση IP δεν ανήκουν σε κάποιο εξωτερικό χάκερ λυγισμένα 353 00:18:56,290 --> 00:18:58,340 για την καταστροφή χρήσιμες κυβερνητικές πληροφορίες. 354 00:18:58,340 --> 00:19:05,190 Είναι αποφασισμένη να googlebot.com, Πολύ δικό του web crawling αράχνη της Google. 355 00:19:05,190 --> 00:19:06,010 Ωχ. 356 00:19:06,010 --> 00:19:09,150 Μετά από λίγη έρευνα και κρυπτογράφησης γύρω για να βρουν μια noncorrupt αντιγράφων ασφαλείας, 357 00:19:09,150 --> 00:19:10,180 Τζος διαπίστωσε το πρόβλημα. 358 00:19:10,180 --> 00:19:12,700 >> Ένας χρήστης είχε αντιγραφεί και επικολληθεί κάποιο περιεχόμενο από ένα 359 00:19:12,700 --> 00:19:15,670 σελίδα στην άλλη, συμπεριλαμβανομένων ένας Επεξεργασία υπερ-σύνδεσης 360 00:19:15,670 --> 00:19:17,577 για να επεξεργαστείτε το περιεχόμενο της σελίδας. 361 00:19:17,577 --> 00:19:20,160 Κανονικά αυτό δεν θα αποτελούσε ζήτημα από μια εξωτερική χρήστης θα 362 00:19:20,160 --> 00:19:24,320 Πρέπει να εισάγετε ένα όνομα και κωδικό πρόσβασης, αλλά το σύστημα ελέγχου ταυτότητας CMS, 363 00:19:24,320 --> 00:19:27,520 το σύστημα σύνδεσης, δεν λαμβάνει υπόψη 364 00:19:27,520 --> 00:19:30,980 εξελιγμένα hacking τεχνικές της Google αράχνη. 365 00:19:30,980 --> 00:19:31,700 Ωχ. 366 00:19:31,700 --> 00:19:33,610 >> Όπως αποδεικνύεται, η Google Spider δεν χρησιμοποιεί 367 00:19:33,610 --> 00:19:36,950 μπισκότα, πράγμα που σημαίνει ότι μπορεί παρακάμψει εύκολα μια επιταγή για το 368 00:19:36,950 --> 00:19:39,840 καταγράφεται στο σύνολο cookie για να είναι ψευδείς. 369 00:19:39,840 --> 00:19:42,620 Επίσης, δεν δίνουν προσοχή σε JavaScript, το οποίο θα έπρεπε κανονικά 370 00:19:42,620 --> 00:19:45,170 προτρέψει και να ανακατευθύνει τους χρήστες που δεν έχουν εισέλθει στον. 371 00:19:45,170 --> 00:19:48,610 Εκτιμά, ωστόσο, ακολουθούν κάθε υπερ-σύνδεση σε κάθε σελίδα διαπιστώσει, 372 00:19:48,610 --> 00:19:51,700 συμπεριλαμβανομένων εκείνων με Διαγραφή σελίδας στον τίτλο. 373 00:19:51,700 --> 00:19:52,650 Ωχ. 374 00:19:52,650 --> 00:19:56,070 >> Λοιπόν, τι σημαίνει αυτό σε περισσότερα τεχνικά, αλλά είναι αρκετά προσιτές όρους; 375 00:19:56,070 --> 00:19:58,340 Σημαίνει απλά ότι όλη την ιστοσελίδα τους, 376 00:19:58,340 --> 00:20:02,287 είχαν διευθύνσεις URL δεν σε αντίθεση με αυτό, ότι μπορείτε να δείτε το πρόβλημα που επτά. 377 00:20:02,287 --> 00:20:04,620 Ανάκληση στο πρόβλημα που επτά ή γνωρίζουν το πρόβλημα που επτά 378 00:20:04,620 --> 00:20:06,411 ότι είστε αμφισβητηθεί, μεταξύ άλλων, 379 00:20:06,411 --> 00:20:08,570 να πουλήσουν τα αποθέματα για λογαριασμό των χρηστών. 380 00:20:08,570 --> 00:20:14,010 Αλλά εφαρμογή του εν λόγω χαρακτηριστικό με τον τρόπο της πάρει μέσω υπερσυνδέσμων σε χρήστη σας 381 00:20:14,010 --> 00:20:16,880 interface, πιθανώς δεν είναι το πιο έξυπνο ιδέα 382 00:20:16,880 --> 00:20:20,300 γιατί αν το site σας είναι κάπως προσβάσιμες είτε από έναν άνθρωπο 383 00:20:20,300 --> 00:20:23,577 ποιος κλικ γύρω ή να αγοράσετε ένα bot, όπως το Google ή μια αράχνη 384 00:20:23,577 --> 00:20:26,160 όπως και αν ονομάζεται αυτό είναι μόνο σέρνεται στο διαδίκτυο προσπαθώντας να δείκτη 385 00:20:26,160 --> 00:20:29,060 το διαδίκτυο ως μια μηχανή αναζήτησης, θα μπορούσε πολύ εύκολα 386 00:20:29,060 --> 00:20:31,340 χτύπησε μέσω πάρετε αυτό το είδος της διεύθυνσης URL. 387 00:20:31,340 --> 00:20:33,770 Και αυτό είναι λειτουργικά ισοδύναμη με, σε αυτήν την περίπτωση, 388 00:20:33,770 --> 00:20:37,000 πώληση όλων των μετοχών της Google. 389 00:20:37,000 --> 00:20:40,030 >> Τώρα, ειλικρινά, αυτό είναι εντελώς όνειο ότι η CMS 390 00:20:40,030 --> 00:20:43,240 μεταχειρισμένα JavaScript και τα cookies για την εφαρμογή του συστήματος σύνδεσης της 391 00:20:43,240 --> 00:20:47,100 και να μην κάνει αυτή την πλευρά του διακομιστή, όπως εσείς κάνετε και θα σε Pset 7-- 392 00:20:47,100 --> 00:20:49,940 υπάρχει μια login.php file-- πάντα, πάντα, 393 00:20:49,940 --> 00:20:52,789 πάντα την ασφάλεια θα πρέπει να είναι γίνεται από την πλευρά του διακομιστή, 394 00:20:52,789 --> 00:20:56,080 όχι στην πλευρά του πελάτη διότι, όπως αυτό Το άρθρο προτείνει και ίσως τον εαυτό σας 395 00:20:56,080 --> 00:20:59,600 δείτε σε κάποιο σημείο, είναι ασήμαντο για έναν χρήστη, καλό ή κακό, 396 00:20:59,600 --> 00:21:02,860 απλά να απενεργοποιήσετε το JavaScript για να μην αναφέρουμε τα cookies. 397 00:21:02,860 --> 00:21:06,020 Έτσι ώστε να είναι καθημερινή WTF σας. 398 00:21:06,020 --> 00:21:07,970 >> Υπάρχει ένα ακόμα, το οποίο είναι ακριβώς το είδος των τρομακτικό, 399 00:21:07,970 --> 00:21:11,360 γι 'αυτό θα αναφέρω αν μόνο ως ένα μάθημα ζωής. 400 00:21:11,360 --> 00:21:14,850 Κάθε φορά που χρησιμοποιείτε μια εφαρμογή καλείται όπως Snapchat ή παρόμοια 401 00:21:14,850 --> 00:21:19,380 που λέει ότι αυτές οι φωτογραφίες διαρκούν μόνο για πέντε δευτερολέπτων, δέκα δευτερόλεπτα ή οτιδήποτε. 402 00:21:19,380 --> 00:21:21,680 Είναι εφήμερη Αυτό είναι καμία περίπτωση δεν συμβαίνει. 403 00:21:21,680 --> 00:21:25,670 Όπως δεν υπάρχει τρόπος, ψηφιακά, να εφαρμόσει κάποια μορφή βίντεο, 404 00:21:25,670 --> 00:21:30,150 ή εικόνας, κειμένου ή την ανταλλαγή αυτών ότι ο δικαιούχος στο άλλο άκρο 405 00:21:30,150 --> 00:21:31,660 δεν μπορεί με κάποιο τρόπο να αποθηκεύσετε τα δεδομένα. 406 00:21:31,660 --> 00:21:34,300 >> Στην πιο αφελή τρόπο, κάποιος θα μπορούσε να πάρει το τηλέφωνό τους. 407 00:21:34,300 --> 00:21:36,850 Και έχουν ένα δεύτερο παράθυρο 10 ενώ κοιτάζοντας κάποια θραύση 408 00:21:36,850 --> 00:21:39,410 για να πάρουμε κάποιο άλλο τηλέφωνο και να το φωτογραφίσω, προφανώς. 409 00:21:39,410 --> 00:21:41,660 Έτσι, μπορείτε να διατηρήσετε κάτι ψηφιακά με αυτόν τον τρόπο. 410 00:21:41,660 --> 00:21:44,620 Μερικοί από εσάς ξέρετε πώς να πάρει screenshots στο τηλέφωνό σας. 411 00:21:44,620 --> 00:21:49,290 Στην πραγματικότητα, αν δεν το γνωρίζουν αυτό, συνειδητοποιήσουμε ότι τουλάχιστον Snapchat, 412 00:21:49,290 --> 00:21:51,040 πιστεύω και άλλοι εφαρμογές αυτές τις μέρες, 413 00:21:51,040 --> 00:21:53,720 τουλάχιστον εσείς, αν το πείτε παραλήπτης έχει στην πραγματικότητα 414 00:21:53,720 --> 00:21:55,310 ληφθεί ένα στιγμιότυπο της εικόνας σας. 415 00:21:55,310 --> 00:22:00,870 >> Αλλά ακόμα χειρότερα, αυτό ήταν το snappening, ως κάποιος που επινοήθηκε πρόσφατα, 416 00:22:00,870 --> 00:22:04,680 όπου περίπου 100.000 ασφαλίσει είχε κυκλοφορήσει 417 00:22:04,680 --> 00:22:09,310 σε αυτό που ονομάζεται ένα αρχείο torrent σε διάφορες ιστοσελίδες τελικά. 418 00:22:09,310 --> 00:22:12,000 Και αυτά περιείχαν ένα σωρό των ιδιωτικών μηνυμάτων και μηνυμάτων. 419 00:22:12,000 --> 00:22:15,210 Αποδεικνύεται ότι οι περισσότεροι από τους καλοήθεις, έτσι δεν είναι ό, τι μπορείτε να φανταστείτε. 420 00:22:15,210 --> 00:22:17,580 Αλλά επειδή οι άνθρωποι είχαν χρησιμοποιείται μια ιστοσελίδα τρίτου, 421 00:22:17,580 --> 00:22:20,270 συνδεθείτε με Snapchat τους το όνομα χρήστη και τον κωδικό πρόσβασης και, στη συνέχεια, 422 00:22:20,270 --> 00:22:23,470 αποθήκευση όλων των ασφαλίσει τους σε αυτή την ιστοσελίδα τρίτους. 423 00:22:23,470 --> 00:22:26,130 Και ήταν αυτό το τρίτο πρόσωπο ιστοσελίδα που ήταν hacked, 424 00:22:26,130 --> 00:22:30,710 η οποία ακριβώς σήμαινε κάποιος βρει τον τρόπο να πάρετε όλες τις 100.000 συν αυτών των εικόνων 425 00:22:30,710 --> 00:22:33,822 στο δικό τους σκληρό δίσκο για την επακόλουθη ανταλλαγή. 426 00:22:33,822 --> 00:22:36,030 Ειλικρινά, εδώ, είναι είδος της όνειο ότι Snapchat 427 00:22:36,030 --> 00:22:39,360 υλοποιείται κατά τέτοιο τρόπο ώστε ένας τρίτος μπορεί να ταξινομήσετε της τομής 428 00:22:39,360 --> 00:22:43,310 τα δεδομένα και ότι δεν είναι δεμένα σε σας δική του εφαρμογή που τρέχει στο τηλέφωνο. 429 00:22:43,310 --> 00:22:46,947 Αλλά εδώ, επίσης, να συνειδητοποιήσουμε ότι αυτά τα πράγματα δεν θα πρέπει να σας πιάσει από έκπληξη, 430 00:22:46,947 --> 00:22:49,030 ή τουλάχιστον θα πρέπει να υπάρχει είναι ένα μάθημα ζωής εδώ. 431 00:22:49,030 --> 00:22:52,220 Αν θέλετε την τεχνική λεπτομέρειες, πηγαίνετε σε αυτό το URL εκεί 432 00:22:52,220 --> 00:22:53,570 ότι στη σημερινή διαφάνειες. 433 00:22:53,570 --> 00:23:00,960 Εντάξει, οποιεσδήποτε ερωτήσεις σχετικά με σημερινή μαθήματα ζωής στο CS; 434 00:23:00,960 --> 00:23:02,710 Γυρίστε ότι off. 435 00:23:02,710 --> 00:23:04,970 Τίποτα από όλα αυτά; 436 00:23:04,970 --> 00:23:06,301 Τίποτα από όλα αυτά; 437 00:23:06,301 --> 00:23:09,050 Έχω πολλούς ανθρώπους έλεγχο Snapchat τους ή κάτι τώρα. 438 00:23:09,050 --> 00:23:11,690 >> Εντάξει, έτσι SQL, Structured Query Language. 439 00:23:11,690 --> 00:23:12,509 Ας κλείσουμε αυτό. 440 00:23:12,509 --> 00:23:14,300 Και επίσης, μολονότι είμαστε ακριβώς το ξύσιμο 441 00:23:14,300 --> 00:23:16,310 Η επιφάνεια αυτής της γλώσσα, θα σας δώσουμε 442 00:23:16,310 --> 00:23:18,930 αρκετά της γλώσσας με τη μορφή της Pset 7 443 00:23:18,930 --> 00:23:22,140 έτσι ώστε να μπορεί να αντιμετωπίσει κάποια αρκετά κοινή λειτουργικότητα. 444 00:23:22,140 --> 00:23:24,912 Αλλά συνειδητοποιούν ότι υπάρχουν ένα ζευγάρι πράγματα που δεν απαιτούν από εσάς, 445 00:23:24,912 --> 00:23:27,120 αλλά πρόκειται να είναι σημαντικό έρχονται τελευταία έργα 446 00:23:27,120 --> 00:23:30,760 και έρθει σίγουρα κάνει πραγματική ιστοσελίδες με πραγματικούς χρήστες 447 00:23:30,760 --> 00:23:32,040 Είναι αυτή η σχεδιαστική απόφαση. 448 00:23:32,040 --> 00:23:34,460 >> Αποδεικνύεται ότι σε μια βάση δεδομένων MySQL, μπορείτε 449 00:23:34,460 --> 00:23:37,460 έχουν τσαμπιά από επιλογές, όπως τους τύπους δεδομένων για τις στήλες σας 450 00:23:37,460 --> 00:23:41,670 και άλλα πράγματα, αλλά έχετε επίσης η επιλογή ενός λεγόμενου αποθήκευση 451 00:23:41,670 --> 00:23:44,570 κινητήρα για όλα τα δεδομένα σας, το είδος του συστήματος αρχείων, 452 00:23:44,570 --> 00:23:46,700 αν είστε εξοικειωμένοι, για όλα τα δεδομένα σας. 453 00:23:46,700 --> 00:23:48,830 Τι μορφή έχει αυτή τελικά αποθηκεύεται σε; 454 00:23:48,830 --> 00:23:53,300 Και η πιο κοινή, ίσως, υπήρξε MyISAM και InnoDB, τεχνικούς όρους 455 00:23:53,300 --> 00:23:56,060 ότι θα νοιάζονται για μόνο στο βαθμό που έχει κανείς 456 00:23:56,060 --> 00:23:58,500 και κανείς δεν έχει το ακόλουθο χαρακτηριστικό. 457 00:23:58,500 --> 00:24:00,390 >> Ας υποθέσουμε ότι έχετε ένα μικρό κοιτώνα ψυγείο. 458 00:24:00,390 --> 00:24:03,030 Και ας υποθέσουμε ότι εσείς και σας συγκάτοικο, που μοιράζονται αυτή ψυγείο, 459 00:24:03,030 --> 00:24:04,682 είναι πραγματικά λάτρης των ας πούμε το γάλα. 460 00:24:04,682 --> 00:24:07,140 Και αυτό είναι, στην πραγματικότητα, το πώς ιστορία ειπώθηκε για μένα δρόμο της επιστροφής 461 00:24:07,140 --> 00:24:10,890 μέσα στην ημέρα, όταν πήρα ένα μάθημα ονομάζεται CS 161 Λειτουργικά Συστήματα, η οποία 462 00:24:10,890 --> 00:24:12,580 Ομοίως διερευνά αυτό το θέμα. 463 00:24:12,580 --> 00:24:13,760 Έτσι έχετε αυτό το ψυγείο. 464 00:24:13,760 --> 00:24:14,630 Είσαι έξω από το γάλα. 465 00:24:14,630 --> 00:24:17,000 Και θα έρθει στο σπίτι, συγκάτοικος σας ακόμα σε τάξη ή οτιδήποτε άλλο, 466 00:24:17,000 --> 00:24:19,208 και αν αποφασίσετε Πάω να να βγει και να πάρει λίγο γάλα. 467 00:24:19,208 --> 00:24:22,630 Έτσι, μπορείτε να κλείσετε το ψυγείο, το μπλοκάρισμα το δωμάτιο κοιτώνα, πάμε απέναντι πλευρά του δρόμου 468 00:24:22,630 --> 00:24:25,330 στο CVS ή οπουδήποτε αλλού, και να πάρει στη γραμμή για να αγοράσουν λίγο γάλα. 469 00:24:25,330 --> 00:24:28,960 >> Εν τω μεταξύ, ο συγκάτοικός σου παίρνει το σπίτι από την τάξη, μπαίνει στο δωμάτιο της εστίας, 470 00:24:28,960 --> 00:24:31,802 ανοίγει το ψυγείο, επίσης, συνειδητοποιεί ooph, είμαστε έξω από το γάλα. 471 00:24:31,802 --> 00:24:33,760 Έτσι, αυτός ή αυτή κλείνει η ψυγείο και στη συνέχεια συμβαίνει 472 00:24:33,760 --> 00:24:35,610 να πάει στο άλλο CVS, η οποία συμβαίνει να είναι 473 00:24:35,610 --> 00:24:38,470 ένα τετράγωνο μακριά από τις άλλες CVS στην πλατεία, και παίρνει σε γραμμή 474 00:24:38,470 --> 00:24:40,230 εκεί για να πάρει λίγο γάλα. 475 00:24:40,230 --> 00:24:42,524 Τώρα, φυσικά, λίγα λεπτά αργότερα, μπορείτε και οι δύο να πάρει πίσω, 476 00:24:42,524 --> 00:24:44,690 και το χειρότερο όλων των πιθανών αποτελέσματα έχει συμβεί. 477 00:24:44,690 --> 00:24:45,792 Και οι δύο έχετε το γάλα. 478 00:24:45,792 --> 00:24:47,500 Και δεν το κάνετε πραγματικά όπως το γάλα τόσο πολύ. 479 00:24:47,500 --> 00:24:49,625 Έτσι, ένας από αυτούς είναι απλά πρόκειται να ξινίσει σε κάποιο σημείο. 480 00:24:49,625 --> 00:24:55,941 Έτσι τώρα έχετε ένα υπερβολικό ποσό του γάλακτος στο ψυγείο όλα αυτά επειδή ο λόγος; 481 00:24:55,941 --> 00:24:57,072 >> [Δεν ακούγεται] 482 00:24:57,072 --> 00:24:59,780 DAVID Malan: Ναι, δεν το κάνατε με κάποιο τρόπο να επικοινωνούν μεταξύ τους 483 00:24:59,780 --> 00:25:00,904 ότι ήταν να πάρει το γάλα. 484 00:25:00,904 --> 00:25:04,320 Έτσι με τον πιο απλό τρόπους στον ανθρώπινο κόσμο, 485 00:25:04,320 --> 00:25:08,390 πώς θα μπορούσε να αποφύγετε αυτό το ανόητο σενάριο από το να συμβεί τέτοια 486 00:25:08,390 --> 00:25:09,750 ότι μπορείτε μόνο να καταλήξετε με ένα. 487 00:25:09,750 --> 00:25:10,840 Κείμενο αυτούς, ναι καλό. 488 00:25:10,840 --> 00:25:12,877 Αλλά πώς αλλιώς; 489 00:25:12,877 --> 00:25:13,460 Post-it σημειώσεις. 490 00:25:13,460 --> 00:25:14,626 DAVID Malan: Μια Post-it σημείωση. 491 00:25:14,626 --> 00:25:17,150 Κάθε μορφή επικοινωνίας ότι λέει ο συγκάτοικός σας 492 00:25:17,150 --> 00:25:18,670 δεν πηγαίνουν στο ψυγείο για το γάλα. 493 00:25:18,670 --> 00:25:20,440 Πάω να πάει την ανανέωση για τη δική μου. 494 00:25:20,440 --> 00:25:22,770 Έτσι, θα πρέπει με κάποιο τρόπο να κλειδώσει αυτόν τον πόρο. 495 00:25:22,770 --> 00:25:27,180 Έτσι, μπορούμε να κάνουμε this-- μπορούμε είδους καταστρέψει την ιστορία και να μετατραπεί σε μια ιστορία CS 496 00:25:27,180 --> 00:25:30,360 οπότε σκεφτείτε αυτό ως ακριβώς όπως ένα μεταβλητή, η οποία αποθηκεύει κάποια αξία. 497 00:25:30,360 --> 00:25:32,570 Και τώρα, η αξία του γάλακτος είναι μηδέν, 498 00:25:32,570 --> 00:25:35,410 το οποίο δεν θέλετε σας συγκάτοικο για να επιθεωρήσει ότι η μεταβλητή 499 00:25:35,410 --> 00:25:38,730 και στη συνέχεια να λάβει μια απόφαση τον εαυτό του με βάση την κατάσταση της μεταβλητής 500 00:25:38,730 --> 00:25:42,430 αν είστε στη διαδικασία της την αλλαγή της κατάστασης αυτής της μεταβλητής. 501 00:25:42,430 --> 00:25:46,140 >> Έτσι, μία από τις γραμμές του SQL που εμείς θα δώσει στην Pset 7 προδιαγραφή 502 00:25:46,140 --> 00:25:47,310 είναι αυτό εδώ. 503 00:25:47,310 --> 00:25:49,740 Και εμείς δεν ξοδεύουν ένα τεράστιο το ποσό του χρόνου να μιλάμε για αυτό. 504 00:25:49,740 --> 00:25:55,100 Αλλά αποδεικνύεται, αν προσπαθείτε να αγοράσει κάποια αποθέματα στη χρηματοδότηση CS50 505 00:25:55,100 --> 00:25:58,000 ότι έχετε ήδη μερικές μετοχές της, θα 506 00:25:58,000 --> 00:26:01,750 θέλουν να είναι σε θέση να κάνει μια σειρά πράγματα αμέσως μαζί. 507 00:26:01,750 --> 00:26:04,360 Θέλετε να είναι σε θέση να αποτελεσματικά, σε ένα υψηλό επίπεδο, 508 00:26:04,360 --> 00:26:06,700 ελέγχει κάθε δικαίωμα, εάν θέλω να αγοράσει περισσότερες μετοχές του δωρεάν, 509 00:26:06,700 --> 00:26:08,780 το έχουμε απόθεμα πενών μιλάμε για το spec, 510 00:26:08,780 --> 00:26:10,660 Θέλω να τον πρώτο έλεγχο πόσες μετοχές που έχω. 511 00:26:10,660 --> 00:26:11,810 Και ας υποθέσουμε ότι είναι πέντε. 512 00:26:11,810 --> 00:26:14,600 Και ας υποθέσουμε ότι θέλω να αγοράσει 10 περισσότερα, εγώ τελικά 513 00:26:14,600 --> 00:26:17,069 θέλουν να έχουν 15 μετοχές του αποθέματος. 514 00:26:17,069 --> 00:26:18,360 Έτσι έχω να κάνω δύο ερωτήσεις. 515 00:26:18,360 --> 00:26:20,230 Ποια είναι η κατάσταση της μεταβλητής; 516 00:26:20,230 --> 00:26:21,470 Ποια είναι η κατάσταση της σειράς; 517 00:26:21,470 --> 00:26:22,970 Πόσες μετοχές μπορώ σήμερα να έχει; 518 00:26:22,970 --> 00:26:24,636 Στη συνέχεια, θέλετε να πάτε μπροστά και να τον ενημερώνει. 519 00:26:24,636 --> 00:26:27,720 Έτσι, αυτό είναι το ανάλογο με το γάλα που μπορείτε να ελέγξετε τη σειρά, 520 00:26:27,720 --> 00:26:30,730 και στη συνέχεια θέλετε να ενημερώσετε γιατί αν θέλετε να αγοράσετε 10 μετοχές, 521 00:26:30,730 --> 00:26:32,521 δεν θέλετε να αλλάξετε η σειρά με 10, θα 522 00:26:32,521 --> 00:26:35,300 θέλετε να το αλλάξετε σε 5 συν 10 ή, φυσικά, 15. 523 00:26:35,300 --> 00:26:40,030 >> Αυτή η γραμμή κώδικα εξασφαλίζει ότι οι δύο αυτές εννοιολογικές ιδέες 524 00:26:40,030 --> 00:26:42,810 συμβαίνουν μαζί ή καθόλου. 525 00:26:42,810 --> 00:26:46,920 Κανείς, συμπεριλαμβανομένου κάποιου άλλου χρήστη οι οποίοι είναι συνδεδεμένοι στο ίδιο δικτυακό τόπο, 526 00:26:46,920 --> 00:26:49,900 μπορεί με κάποιο τρόπο να διακόψει Ο έλεγχος της γραμμής 527 00:26:49,900 --> 00:26:52,960 και η ενημέρωση της σειράς, η επιλογή και η ενημέρωση, αν θέλετε. 528 00:26:52,960 --> 00:26:57,360 Και η σύνταξη δεν είναι σούπερ προφανές, αλλά αυτή η μία γραμμή, καιρό είναι ότι είναι, 529 00:26:57,360 --> 00:27:01,150 εξασφαλίζει ότι τις δύο αυτές δραστηριότητες ελέγχει τη μεταβλητή ή ελέγξτε την σειρά 530 00:27:01,150 --> 00:27:04,660 και να ενημερώσετε η σειρά συμβεί ατομικά. 531 00:27:04,660 --> 00:27:06,849 >> Ω, εδώ πηγαίνουμε πάλι. 532 00:27:06,849 --> 00:27:07,890 Γραπτό μήνυμα στο κινητό μου. 533 00:27:07,890 --> 00:27:09,954 Ας γίνει αυτή η λίγο πιο συγκεκριμένη. 534 00:27:09,954 --> 00:27:12,120 Ας υποθέσουμε ότι δεν είστε εφαρμογή ψυγείο, 535 00:27:12,120 --> 00:27:16,400 και δεν έχετε την εφαρμογή Pset 7, αλλά μια πραγματική τράπεζα, 536 00:27:16,400 --> 00:27:20,000 ή ένα ΑΤΜ, ένα Αυτόματων Ταμειακών Μηχανή, σύμφωνα με την οποία με κάποιο τρόπο 537 00:27:20,000 --> 00:27:22,960 θέλουν να είναι σε θέση να ενδυναμώσει στους χρήστες να μεταφέρουν χρήματα 538 00:27:22,960 --> 00:27:24,500 από τον ένα λογαριασμό στον άλλο. 539 00:27:24,500 --> 00:27:25,100 ΟΚ, κρέμονται. 540 00:27:25,100 --> 00:27:26,683 Πάω να απενεργοποιήσετε αυτό τώρα, σας ευχαριστώ. 541 00:27:26,683 --> 00:27:30,450 Έτσι θέλουμε να προχωρήσουμε χρήματα από έναν αριθμό λογαριασμού 542 00:27:30,450 --> 00:27:33,600 σε διαφορετικό λογαριασμό αριθμός, συγκεκριμένα 100 $. 543 00:27:33,600 --> 00:27:37,690 Έτσι, αυτό είναι το είδος της μια αυθαίρετη παράδειγμα, σύμφωνα με την οποία εσείς, το ΑΤΜ, 544 00:27:37,690 --> 00:27:41,060 ίσως να θέλετε να εκτελέσει δύο SQL ερωτήματα, να αφαιρέσετε από ένα λογαριασμό, 545 00:27:41,060 --> 00:27:42,430 και να προσθέσετε στην άλλη λογαριασμό. 546 00:27:42,430 --> 00:27:46,766 Αλλά θέλετε να εξασφαλίσετε ότι αυτές δύο γραμμές τόσο συμβεί ή και καθόλου. 547 00:27:46,766 --> 00:27:48,640 Δεν θέλετε κάτι να πάρει διακοπεί. 548 00:27:48,640 --> 00:27:51,440 Δεν κάνουμε κάποιες έξυπνες κακός κάπως στέκεται στην Bank of America 549 00:27:51,440 --> 00:27:53,270 με δύο ΑΤΜ μπροστά από τον ίδιο και με κάποιο τρόπο 550 00:27:53,270 --> 00:27:55,270 Ταξινόμηση των πληκτρολογώντας το εντολές ταυτόχρονα, 551 00:27:55,270 --> 00:28:01,230 ελπίζω να προσπαθεί να αφαιρέσει $ 200 αντί των $ 100 και μόνο με 100 δολάρια πιστωθεί. 552 00:28:01,230 --> 00:28:04,450 Με λίγα λόγια, θέλετε αυτό να συμπεριφέρονται ακριβώς όπως θα περιμένατε. 553 00:28:04,450 --> 00:28:06,540 >> Και ο τρόπος που το κάνετε Αυτό σε SQL βάση δεδομένων είναι 554 00:28:06,540 --> 00:28:09,350 μπορείτε να το τυλίξετε σε ό, τι είναι ονομάζεται συναλλαγή. 555 00:28:09,350 --> 00:28:14,290 Κυριολεκτικά σε SQL, μπορείτε να καλέσετε CS50 του ερώτημα λειτουργία με παράθεση αυτού του unquote ξεκίνημα 556 00:28:14,290 --> 00:28:15,370 συναλλαγή. 557 00:28:15,370 --> 00:28:18,640 Στη συνέχεια, μπορείτε να εκτελέσετε οποιονδήποτε αριθμό από τα επόμενα ερωτήματα SQL, 558 00:28:18,640 --> 00:28:20,870 αλλά κανένας από αυτούς δεν λαμβάνουν Επίδραση επί της βάσης δεδομένων 559 00:28:20,870 --> 00:28:25,880 μέχρι να καλέσετε ερώτημα απόσπασμα unquote διαπράττουν, αν και πάλι με τη χρήση της PHP. 560 00:28:25,880 --> 00:28:29,810 Και με αυτόν τον τρόπο, μπορείτε να εξασφαλίσετε ότι ακόμη και αν έχετε 1.000 χρήστες όλων 561 00:28:29,810 --> 00:28:32,080 το χτύπημα της βάσης δεδομένων σας ταυτόχρονα, SQL 562 00:28:32,080 --> 00:28:34,540 θα υποσχεθώ ότι αυτά δύο ερωτήματα θα είναι 563 00:28:34,540 --> 00:28:36,740 υλοποιηθεί μία αμέσως μετά την άλλη. 564 00:28:36,740 --> 00:28:40,330 Ώστε να μην καταλήξετε με περίσσεια γάλα ή το λανθασμένο ποσό, τελικά, 565 00:28:40,330 --> 00:28:40,830 του χρήματος. 566 00:28:40,830 --> 00:28:43,110 >> Έτσι κρατήστε αυτό κατά νου, όχι τόσο για το chipset 7 567 00:28:43,110 --> 00:28:45,250 αλλά και για την τελική έργων αν είστε πραγματικά 568 00:28:45,250 --> 00:28:49,690 προσπαθώντας να μετακινήσετε τα δεδομένα γύρω από σε πίνακες όπως ίσως εδώ. 569 00:28:49,690 --> 00:28:53,980 Αλλά ίσως ακόμα πιο απλή και προφανές να καταλάβουμε με ένα παράδειγμα 570 00:28:53,980 --> 00:28:54,860 είναι αυτό εδώ. 571 00:28:54,860 --> 00:28:57,760 Και κάποιος μας μέσω e-mail για Αυτή ακριβώς η άλλη ημέρα 572 00:28:57,760 --> 00:28:59,600 όταν είδε κάτι παρόμοιο σε απευθείας σύνδεση. 573 00:28:59,600 --> 00:29:03,480 >> Έτσι, με τις γνώσεις μου, το σύστημα pin δεν είναι ευάλωτη σε αυτή την επίθεση. 574 00:29:03,480 --> 00:29:06,637 Και δεν έχω ιδέα αν ακόμη χρήσεις η βάση δεδομένων SQL κάτω από την κουκούλα. 575 00:29:06,637 --> 00:29:08,470 Αλλά ας το χρησιμοποιήσει για η χάρη της συζήτησης. 576 00:29:08,470 --> 00:29:10,178 Εδώ είναι η οθόνη που Οι λαοί του Χάρβαρντ τείνουν 577 00:29:10,178 --> 00:29:13,620 για να δείτε όταν συνδέεστε με τους Αριθμός Χάρβαρντ αναγνωριστικό και το PIN τους. 578 00:29:13,620 --> 00:29:19,020 Και ας υποθέσουμε ότι το σύστημα pin ήταν εφαρμόζονται σε PHP και MySQL με ένα 579 00:29:19,020 --> 00:29:22,000 βάση δεδομένων, ο κώδικας ότι κάποιος θα μπορούσαν να έχουν γράψει χρόνια πριν 580 00:29:22,000 --> 00:29:23,270 θα μπορούσε να μοιάζει με αυτό. 581 00:29:23,270 --> 00:29:25,230 Πρώτον, να δηλώσει ένα μεταβλητή που ονομάζεται όνομα χρήστη. 582 00:29:25,230 --> 00:29:27,560 Και μόλις πάρει ότι από η superglobal POST. 583 00:29:27,560 --> 00:29:30,140 Στη συνέχεια, να πάρει μια άλλη μεταβλητή κάλεσε τον κωδικό πρόσβασης και να κάνουν το ίδιο. 584 00:29:30,140 --> 00:29:33,080 Και στη συνέχεια, μόλις εκτελέσει Αυτή η μακρά ερώτημα εδώ, 585 00:29:33,080 --> 00:29:36,690 Επιλέξτε αστέρι από τους χρήστες, όπου ισούται με το όνομα χρήστη τάδε 586 00:29:36,690 --> 00:29:38,510 και τον κωδικό πρόσβασης ισούται με τέτοια και τέτοια. 587 00:29:38,510 --> 00:29:40,660 >> Παρατηρήστε ότι η σγουρή τιράντες έχω χρησιμοποιήσει εδώ 588 00:29:40,660 --> 00:29:42,880 ακριβώς σημαίνει για την PHP, πηγαίνετε μπροστά και υποκατάστατο 589 00:29:42,880 --> 00:29:45,400 η αξία των δύο αυτών μεταβλητές εκεί. 590 00:29:45,400 --> 00:29:50,090 Δεν είναι απολύτως αναγκαία, αλλά τείνουν να αποφεύγουν λεπτές συντακτικά λάθη. 591 00:29:50,090 --> 00:29:53,650 Έτσι, αυτό φαίνεται εντελώς σωστά με την πρώτη ματιά. 592 00:29:53,650 --> 00:29:54,240 Και είναι. 593 00:29:54,240 --> 00:29:56,680 Θα μπορούσε να εφαρμόσει η σύστημα πείρου με αυτόν τον τρόπο. 594 00:29:56,680 --> 00:30:00,460 >> Αλλά ας υποθέσουμε ότι ένα σούπερ έξυπνο και κακόβουλο φοιτητής 595 00:30:00,460 --> 00:30:03,020 είσοδος αυτή ως pin του ή της. 596 00:30:03,020 --> 00:30:05,550 Έτσι έχω αφαιρεθεί η σφαίρα σημάδια εδώ στο mock up, 597 00:30:05,550 --> 00:30:08,760 και έχω πραγματικά αποκάλυψε ό, τι αυτός ή αυτή θα μπορούσε να είναι δακτυλογράφηση. 598 00:30:08,760 --> 00:30:10,350 Και αυτό είναι λίγο περίεργο. 599 00:30:10,350 --> 00:30:13,850 Αλλά τι πηδά έξω σε σας σε δυνητικά ανησυχητικό για την είσοδο του χρήστη, 600 00:30:13,850 --> 00:30:16,450 ακόμη και αν δεν έχετε ιδέα τι μια επίθεση SQL ένεση μέσα. 601 00:30:16,450 --> 00:30:20,300 Γιατί αυτό δείχνει λίγο απίθανος; 602 00:30:20,300 --> 00:30:21,050 Τι είναι αυτό; 603 00:30:21,050 --> 00:30:21,550 [Δεν ακούγεται] 604 00:30:21,550 --> 00:30:24,260 DAVID Malan: Η ή είναι λίγο ύποπτο. 605 00:30:24,260 --> 00:30:26,310 Στην πραγματικότητα, αυτό είναι μια λέξη-κλειδί από την SQL. 606 00:30:26,310 --> 00:30:28,105 Έτσι, αυτό δεν αποτελεί καλό οιωνό. 607 00:30:28,105 --> 00:30:29,980 Το γεγονός ότι δεν υπάρχει Όλα αυτά τα μονά εισαγωγικά 608 00:30:29,980 --> 00:30:32,646 there-- στην πραγματικότητα, ένας από τους ευκολότερους τρόπους για να σπάσει μερικά βάσεις δεδομένων 609 00:30:32,646 --> 00:30:35,880 πληκτρολογώντας σε ένα όνομα όπως O'Reilly ότι έχει μια απόστροφο σε αυτό 610 00:30:35,880 --> 00:30:38,600 γιατί αν ο άνθρωπος που έγραψε ο κώδικας πίσω από τα παρασκήνια 611 00:30:38,600 --> 00:30:41,570 δεν λαμβάνει υπόψη το γεγονός ότι υπάρχει μπορεί να είναι μονά εισαγωγικά σε ένα χρήστη 612 00:30:41,570 --> 00:30:45,060 εισόδου, και αυτός ή αυτή χρησιμοποιεί μονά εισαγωγικά στον κώδικά τους, 613 00:30:45,060 --> 00:30:46,040 κακά πράγματα μπορούν να συμβούν. 614 00:30:46,040 --> 00:30:47,870 >> Στην πραγματικότητα, ακόμα χειρότερα, να εξετάσει αυτό. 615 00:30:47,870 --> 00:30:50,600 Εάν αυτό ήταν και πάλι ο κώδικας ότι κάποιος στο Χάρβαρντ χρόνια 616 00:30:50,600 --> 00:30:53,100 Πριν έγραψε για τον πείρο σύστημα, παρατηρήστε τι είναι 617 00:30:53,100 --> 00:30:56,220 για να πάρει υποκατασταθεί για το όνομα χρήστη και τον κωδικό πρόσβασης 618 00:30:56,220 --> 00:30:59,780 αν ο χρήστης πληκτρολογεί ξανά skroob το όνομα χρήστη τους 619 00:30:59,780 --> 00:31:03,960 και, στη συνέχεια, ένα, δύο, τρία, τέσσερα, πέντε, απόσπασμα ή απόσπασμα unquote ένα ίσον 620 00:31:03,960 --> 00:31:04,660 παραθέσω ένα. 621 00:31:04,660 --> 00:31:07,220 Και να παρατηρήσετε τι είναι κλειδί εδώ είναι ο χρήστης δεν έχει 622 00:31:07,220 --> 00:31:09,900 ξεκίνησε τον κωδικό τους ή pin τους με ένα απόσπασμα. 623 00:31:09,900 --> 00:31:12,610 Και δεν το έχουν έληξε με ένα απόσπασμα γιατί αυτός ή αυτή 624 00:31:12,610 --> 00:31:16,315 Θεωρείται ότι αν η προγραμματιστής δεν ήταν τόσο απότομη, 625 00:31:16,315 --> 00:31:18,690 πρόκειται να έχουν εκείνες μονά εισαγωγικά στον κώδικά τους. 626 00:31:18,690 --> 00:31:19,860 >> Έτσι, εδώ είναι ο κώδικας. 627 00:31:19,860 --> 00:31:23,820 Και η υποκατάσταση ότι μπορεί να συμβεί τώρα είναι αυτό. 628 00:31:23,820 --> 00:31:26,350 Και έχω υπογράμμισε τι ο χρήστης έχει πληκτρολογήσει. 629 00:31:26,350 --> 00:31:28,480 Έτσι, πριν, μετά. 630 00:31:28,480 --> 00:31:33,330 Και να παρατηρήσετε τι είναι ελαφρώς ανησυχητικό τώρα για το δεξί μισό του SQL κώδικα; 631 00:31:33,330 --> 00:31:36,300 Είναι λίγο πιο πολύπλοκο, ομολογουμένως, από τα ερωτήματα που έχουμε δει. 632 00:31:36,300 --> 00:31:38,550 Αλλά αυτό δεν είναι δυνατόν να είναι ένα καλό πράγμα, αν είστε 633 00:31:38,550 --> 00:31:42,240 λέγοντας επιλέξτε αστέρων, το οποίο βρίσκεται επιλέξτε τα πάντα, από τον πίνακα του χρήστη 634 00:31:42,240 --> 00:31:46,630 Όπου username ισούται skroob και κωδικό ισούται με ένα, δύο, τρία, τέσσερα, 635 00:31:46,630 --> 00:31:49,610 πέντε ή ένα ισούται με ένα. 636 00:31:49,610 --> 00:31:53,860 Ποια είναι η λογική επίπτωση της τελευταίας αυτής ρήτρας προφανώς; 637 00:31:53,860 --> 00:31:55,650 Είναι απλά πάντα αλήθεια. 638 00:31:55,650 --> 00:31:59,930 >> Και επειδή έχουμε το είδος των μαντέψατε ή κατάλαβα από τη δοκιμή και το λάθος 639 00:31:59,930 --> 00:32:02,760 ότι ο προγραμματιστής που έγραψε αυτός ο κώδικας δεν έκανε 640 00:32:02,760 --> 00:32:07,250 προβλέψει ένα ανθρώπινο ή κακό πρόσωπο πληκτρολογώντας σε μονά εισαγωγικά, καθώς και, 641 00:32:07,250 --> 00:32:10,350 μπορούμε να συντακτικά συμπληρώστε το ερώτημα SQL 642 00:32:10,350 --> 00:32:12,260 με κάτι ανόητο αλλά κάτι που 643 00:32:12,260 --> 00:32:15,930 είναι συντακτικά λανθασμένη ότι αξιολογεί πάντα σε αληθινή. 644 00:32:15,930 --> 00:32:19,130 Έτσι, εάν αυτός ο κωδικός χρησιμοποιείται για να απαντήσει το ερώτημα αληθής ή ψευδής πρέπει 645 00:32:19,130 --> 00:32:22,930 Αυτός ο χρήστης επιτρέπεται να περάσει, η απάντηση είναι πάντα προφανώς πρόκειται 646 00:32:22,930 --> 00:32:26,930 για να είναι αληθινό, γιατί αυτό θα είναι πάντα για να επιλέξετε κάτι από τη βάση δεδομένων 647 00:32:26,930 --> 00:32:29,280 διότι ένα από τα φυσικά ισούται πάντα με ένα. 648 00:32:29,280 --> 00:32:30,360 >> Έτσι ποια είναι η λύση; 649 00:32:30,360 --> 00:32:33,290 Καλά στην Pset 7, εμείς στην πραγματικότητα αποφευχθεί αυτό όλοι μαζί. 650 00:32:33,290 --> 00:32:37,360 Θα σας δώσω ένα ερώτημα λειτουργία, και εμείς Σας ενθαρρύνουμε να χρησιμοποιείτε ερωτηματικά 651 00:32:37,360 --> 00:32:40,430 ως σύμβολα κράτησης θέσης, παρόμοια στο πνεύμα με printf του% s, 652 00:32:40,430 --> 00:32:43,710 αλλά αυτό που είναι βασικό για τα ερωτηματικά εδώ είναι αν πραγματικά διαβάσετε 653 00:32:43,710 --> 00:32:46,950 functions.php, όπου μας ερώτημα λειτουργία υλοποιείται, 654 00:32:46,950 --> 00:32:52,780 αυτά τα ερωτηματικά δραπέτευσε, σύμφωνα με την οποία κάτι δυνητικά επικίνδυνο 655 00:32:52,780 --> 00:32:58,210 σαν ένα ενιαίο απόσπασμα είναι ενεργοποιημένη σε δραπέτευσε και μόνη προσφορά. 656 00:32:58,210 --> 00:33:00,590 >> Έτσι, αυτό είναι ό, τι είναι πραγματικά συμβαίνει αν 657 00:33:00,590 --> 00:33:04,850 χρησιμοποιήστε τη λειτουργία ερώτημα CS50 ή οποιοδήποτε αριθμό δωρεάν βιβλιοθήκες τρίτων που 658 00:33:04,850 --> 00:33:06,000 κάνουν το ίδιο. 659 00:33:06,000 --> 00:33:09,850 Δεν έχει σημασία σε αυτή την περίπτωση, το πράσινο, εάν ο χρήστης έχει πληκτρολογήσει σε ένα ενιαίο απόσπασμα 660 00:33:09,850 --> 00:33:12,070 επειδή το ερώτημα λειτουργία που γράψαμε είναι 661 00:33:12,070 --> 00:33:15,120 πρόκειται να προσθέσει αντικάθετοι πριν Οποιαδήποτε τέτοια επικίνδυνη απόσπασμα. 662 00:33:15,120 --> 00:33:17,360 Έτσι, αυτό δεν είναι, σε Πράγματι, πρόκειται να είναι legit. 663 00:33:17,360 --> 00:33:20,910 Αυτό είναι σαν την πληκτρολόγηση σε ένα τρελό ψάχνετε κωδικό πρόσβασης που είναι, φυσικά, δεν πρόκειται 664 00:33:20,910 --> 00:33:23,490 να είναι skroob της πραγματικής κωδικό πρόσβασης. 665 00:33:23,490 --> 00:33:28,260 >> Έτσι, το πακέτο για CS50 είναι μία, απολύτως χρησιμοποιείτε πάντα κάτι 666 00:33:28,260 --> 00:33:30,860 όπως η λειτουργία ερωτήματος CS50 του ή το υποκείμενο βιβλιοθήκη, 667 00:33:30,860 --> 00:33:32,560 η οποία συμβαίνει να ονομάζεται ΠΟΠ. 668 00:33:32,560 --> 00:33:35,880 Αλλά ποτέ, ποτέ, Ποτέ δεν κάνουμε κώδικα όπως αυτό 669 00:33:35,880 --> 00:33:39,472 χωρίς διαφυγή ή τρίψιμο όπως λένε εισόδους σας. 670 00:33:39,472 --> 00:33:42,430 Και θα σε κάποιο σημείο κατά πάσα πιθανότητα συναντήσετε κάποια ιστοσελίδα όπως αυτή. 671 00:33:42,430 --> 00:33:46,060 Στην πραγματικότητα, φαίνεται να είναι η περίπτωση όπως στα αεροδρόμια και ξενοδοχεία σε μέρη 672 00:33:46,060 --> 00:33:48,880 όπου έχουν δωρεάν Wi-Fi πρόσβασης που θα πρέπει να συνδεθείτε στο, 673 00:33:48,880 --> 00:33:51,010 Αυτές οι ιστοσελίδες είναι πάντα φρικτά υλοποιηθεί. 674 00:33:51,010 --> 00:33:55,680 Και έτσι ένα είδος διασκέδασης άσκηση στο σπίτι, όχι για κακόβουλους σκοπούς ή περισσότερα 675 00:33:55,680 --> 00:33:59,170 μια διασκέδαση στο δρόμο άσκηση, είναι να πληκτρολογήσετε μόνο 676 00:33:59,170 --> 00:34:02,850 μια απόστροφο, μια και μόνη προσφορά, σε μία μορφή σε κάποια ιστοσελίδα 677 00:34:02,850 --> 00:34:03,810 και να δούμε τι θα συμβεί. 678 00:34:03,810 --> 00:34:06,660 Και αν ο διακομιστής συντρίβεται ή δίνει σας κάποιο είδος του μηνύματος λάθους, 679 00:34:06,660 --> 00:34:09,690 μπορεί κάλλιστα να είναι ότι κάποιος δεν έχει αναμενόμενο αυτό. 680 00:34:09,690 --> 00:34:15,239 Και τότε θα πρέπει να ειδοποιεί την κατάλληλη αρχές και να προχωρήσει περαιτέρω. 681 00:34:15,239 --> 00:34:20,843 >> Έτσι τώρα εσείς πρέπει να ελπίζουμε καταλάβετε λίγο περισσότερο geek χιούμορ εδώ. 682 00:34:20,843 --> 00:34:24,120 >> [Γέλια] 683 00:34:24,120 --> 00:34:27,571 684 00:34:27,571 --> 00:34:29,070 DAVID Malan: Ξέρετε ότι είστε ένα geek. 685 00:34:29,070 --> 00:34:30,944 Για την επόμενη αρκετές χρόνια, θα θυμάστε 686 00:34:30,944 --> 00:34:33,520 ο οποίος λίγο πίνακες Bobby είναι λόγω του ότι αυτή η γελοιογραφία εδώ. 687 00:34:33,520 --> 00:34:36,760 Έτσι, να το έχουμε κατά νου, όπως εμείς πλαίσιο διακόπτη για μια τελευταία φορά 688 00:34:36,760 --> 00:34:38,770 σήμερα το JavaScript. 689 00:34:38,770 --> 00:34:41,600 Ξοδέψαμε σχετικά μικρή χρόνος για τη σύνταξη της PHP 690 00:34:41,600 --> 00:34:43,440 γιατί είναι πραγματικά Σούπερ παρόμοια με C. 691 00:34:43,440 --> 00:34:47,300 Και αρκετά ωραία, πάρα πολύ το JavaScript είναι εξαιρετικά παρόμοια με τη σύνταξη της C 692 00:34:47,300 --> 00:34:49,639 καθώς και όπως θα δούμε στη μόνο μια στιγμή και όπως θα 693 00:34:49,639 --> 00:34:51,205 δείτε αργότερα αυτή την εβδομάδα ειδικότερα. 694 00:34:51,205 --> 00:34:54,080 Τι μπορείτε να κάνετε με αυτή τη γλώσσα, όμως, είναι το πιο ισχυρό, 695 00:34:54,080 --> 00:34:55,790 ειδικά με τα API. 696 00:34:55,790 --> 00:34:56,960 >> Αλλά πρώτα μια γρήγορη περιήγηση. 697 00:34:56,960 --> 00:35:00,450 Έτσι, ένα, σε JavaScript, υπάρχει Δεν κύρια λειτουργία, η οποία είναι ωραία. 698 00:35:00,450 --> 00:35:02,650 Όπως και με την PHP, μπορείτε να γράψετε μόνο κωδικό. 699 00:35:02,650 --> 00:35:04,310 Όροι μοιάζει με αυτό. 700 00:35:04,310 --> 00:35:07,100 Και Boolean εκφράσεις θα μπορούσαν μοιάζει με αυτό ή σαν αυτό. 701 00:35:07,100 --> 00:35:09,530 Υπάρχουν διακόπτες, και θα μπορούσε να μοιάζει με αυτό. 702 00:35:09,530 --> 00:35:10,970 Τέσσερις βρόχους μοιάζει με αυτό. 703 00:35:10,970 --> 00:35:12,390 Ενώ βρόχους μοιάζει με αυτό. 704 00:35:12,390 --> 00:35:14,160 Κάντε whiles μοιάζει με αυτό. 705 00:35:14,160 --> 00:35:16,850 Και τότε συστοιχίες μοιάζουν Αυτό, πολύ παρόμοια με την PHP. 706 00:35:16,850 --> 00:35:20,740 Να σημειωθεί όμως, ότι το JavaScript σας να δηλώσει μια μεταβλητή δεν με ένα δολάριο 707 00:35:20,740 --> 00:35:25,190 υπογράψουν, όχι με έναν τύπο δεδομένων, αλλά κυριολεκτικά λέγοντας var για τη μεταβλητή πριν. 708 00:35:25,190 --> 00:35:27,900 Είναι πάρα πολύ χαλαρά πληκτρολογήσει το ότι έχει τύπων, 709 00:35:27,900 --> 00:35:29,729 αλλά δεν μπορείτε να τα δηλώσουν ρητά. 710 00:35:29,729 --> 00:35:31,520 Και τότε ένα κορδόνι, για παράδειγμα, μπορεί να μοιάζει 711 00:35:31,520 --> 00:35:34,350 όπως αυτό, αυτή η συμβολοσειρά καλείται στην παρούσα υπόθεση. 712 00:35:34,350 --> 00:35:35,410 Και στη συνέχεια ένα αντικείμενο. 713 00:35:35,410 --> 00:35:37,010 Και αυτά θα δούμε περισσότερα σε λίγο. 714 00:35:37,010 --> 00:35:41,470 Και ένα αντικείμενο είναι ίσως ένα από τα συνηθέστερα δει δομές δεδομένων 715 00:35:41,470 --> 00:35:44,050 σε ένα βασίζονται σε JavaScript πρόγραμμα επειδή επιτρέπει 716 00:35:44,050 --> 00:35:46,680 μπορείτε να συνδέσει αυθαίρετα βασικά ζεύγη αξία μόνο 717 00:35:46,680 --> 00:35:51,240 όπως συστοιχίες συνειρμική της PHP και ακριβώς όπως το δικό σας πίνακα κατακερματισμού 718 00:35:51,240 --> 00:35:54,042 ή να δοκιμάσετε όπως υλοποιήσαμε λίγες εβδομάδες πίσω. 719 00:35:54,042 --> 00:35:56,250 Ας δούμε πραγματικά τι μπορούμε να κάνουμε με το JavaScript. 720 00:35:56,250 --> 00:35:59,410 Και συγκεκριμένα, αυτό είναι ένας κατάλογος πλυντηρίων χαρακτηριστικά 721 00:35:59,410 --> 00:36:02,300 ότι τα προγράμματα περιήγησης έχουν ότι μας επιτρέπουν να συνδέσετε το JavaScript 722 00:36:02,300 --> 00:36:05,470 σε μια ιστοσελίδα με τον ακόλουθο τρόπο. 723 00:36:05,470 --> 00:36:09,340 Το JavaScript συχνά χρησιμοποιείται ως ένα πλευρά του πελάτη scripting γλώσσα. 724 00:36:09,340 --> 00:36:10,130 Δεν έχει συνταχθεί. 725 00:36:10,130 --> 00:36:11,370 Είναι πάρα πολύ ερμηνεύεται. 726 00:36:11,370 --> 00:36:15,740 Αλλά σε αντίθεση με την PHP, η οποία έχει σε λειτουργία στο διακομιστή, στον web server, 727 00:36:15,740 --> 00:36:18,220 ή βαθιά εσωτερικό του των πελατών, το JavaScript 728 00:36:18,220 --> 00:36:22,190 είναι διαφορετική σε αυτό το συνήθως εκτελείται στο πρόγραμμα περιήγησης. 729 00:36:22,190 --> 00:36:26,060 >> Έτσι, κάθε κώδικα JavaScript ξεκινήσετε τη σύνταξη για Pset 8, ή τελικό έργο σας, 730 00:36:26,060 --> 00:36:29,890 ή στον πραγματικό κόσμο είναι γενικά πηγαίνει πρέπει να αποθηκεύονται στο διακομιστή, απολύτως 731 00:36:29,890 --> 00:36:33,110 σε μια τελεία HTML ή τελεία JS για το αρχείο JavaScript. 732 00:36:33,110 --> 00:36:35,770 Όμως, το πρόγραμμα περιήγησης θα για να κατεβάσετε ότι το JavaScript 733 00:36:35,770 --> 00:36:39,530 κώδικα στο δικό σας παράδειγμα του Chrome, ή IE ή το Firefox, ή οτιδήποτε άλλο. 734 00:36:39,530 --> 00:36:43,870 Και ο κώδικας είναι πραγματικά πρόκειται να πάρει εκτελούνται μέσα από το δικό σας πρόγραμμα περιήγησης. 735 00:36:43,870 --> 00:36:46,560 Ακριβώς για να κάνουν αυτό το πιο πραγματικό, ας δούμε αυτό σε συγκεκριμένη μορφή. 736 00:36:46,560 --> 00:36:50,120 >> Δεν έχουμε ιδέα τι αυτός ο κώδικας κάνει χωρίς πραγματικά την ανάγνωση μέσα από αυτό. 737 00:36:50,120 --> 00:36:52,670 Αλλά επιτρέψτε μου να πάω στο Facebook.com χωρίς να συνδεθείτε. 738 00:36:52,670 --> 00:37:00,440 Επιτρέψτε μου να πάω να Επιθεωρήστε Element και να πάει να, ας πούμε, του Δικτύου και ανανεώστε την σελίδα. 739 00:37:00,440 --> 00:37:04,150 Και εμείς θα see-- επιτρέψτε μου να μετατοπίσει Ανανέωση της Σελίδα για να πάρετε όλα τα αιτήματα για νέες. 740 00:37:04,150 --> 00:37:08,850 Και η πρώτη αρχείο που βλέπω είναι CSS, CSS. 741 00:37:08,850 --> 00:37:10,880 Εδώ είναι η πρώτη Αρχείο JavaScript, και έχω 742 00:37:10,880 --> 00:37:14,600 Δεν έχω ιδέα τι κάνει αυτό, αλλά εδώ είναι μερικά από τα κώδικα JavaScript 743 00:37:14,600 --> 00:37:16,180 που οδηγεί στο Facebook. 744 00:37:16,180 --> 00:37:18,400 Δεν είναι καν πραγματικά ότι αποκαλύπτοντας για μεγέθυνση. 745 00:37:18,400 --> 00:37:20,260 Είναι εξακολουθεί να είναι εξίσου παράλογο. 746 00:37:20,260 --> 00:37:24,341 >> Αλλά θα δείτε ακόμα και κάτω κάτω, δεν υπάρχει ακόμα περισσότερα από αυτά τα αρχεία το JavaScript. 747 00:37:24,341 --> 00:37:24,840 Ωχ. 748 00:37:24,840 --> 00:37:25,440 Αυτό είναι ένα ping. 749 00:37:25,440 --> 00:37:28,550 Ας πάμε λίγο προς τα κάτω περαιτέρω, περαιτέρω, περαιτέρω. 750 00:37:28,550 --> 00:37:29,894 Υπάρχει μία. 751 00:37:29,894 --> 00:37:31,238 Υπάρχει μία. 752 00:37:31,238 --> 00:37:31,880 Υπάρχει μία. 753 00:37:31,880 --> 00:37:35,820 >> Έτσι, παρόλο που το Facebook, πίσω από το σκηνές, είναι γραμμένο εν μέρει σε PHP 754 00:37:35,820 --> 00:37:39,100 και το Facebook για τη δική του εκδοχή αυτής, υπάρχει ένα τεράστιο ποσό το JavaScript. 755 00:37:39,100 --> 00:37:41,330 Στην πραγματικότητα, οποιαδήποτε από τις κουβέντα που κάνετε στο Facebook, 756 00:37:41,330 --> 00:37:45,520 κάποια από τις ενημερώσεις inline χρονοδιάγραμμα που συμβαίνουν σε πραγματικό χρόνο, όλα αυτά 757 00:37:45,520 --> 00:37:47,944 οδηγείται από το JavaScript. 758 00:37:47,944 --> 00:37:48,444 Ναι; 759 00:37:48,444 --> 00:37:50,235 >> ΚΟΙΝΟ: Δεν είμαι σίγουρος αν αυτό είναι το Facebook, 760 00:37:50,235 --> 00:37:53,624 αλλά σκέφτηκα ότι το Facebook που αναπτύχθηκε δική τους in-house κωδικό γλώσσας; 761 00:37:53,624 --> 00:37:54,540 DAVID Malan: Έκαναν. 762 00:37:54,540 --> 00:37:58,110 Έτσι, γι 'αυτό και λέω μια διακύμανση των PHP που ονομάζεται Hip Hop ότι όντως 763 00:37:58,110 --> 00:38:03,440 πρόσθετα χαρακτηριστικά για τέτοια ώστε, όταν Mark εφάρμοσαν για πρώτη φορά το Facebook, 764 00:38:03,440 --> 00:38:04,710 ήταν γραμμένο σε PHP. 765 00:38:04,710 --> 00:38:07,370 Και έχει αυτό το είδος της παρέμεινε το είδος του μπροστινού άκρου γλώσσας 766 00:38:07,370 --> 00:38:09,030 που χρησιμοποιούν για πολύ της κωδικοποίησης τους, αλλά 767 00:38:09,030 --> 00:38:11,870 Δεν υπήρξε μια γλώσσα που είναι κλίμακες ιδιαίτερα καλά σε δισεκατομμύρια 768 00:38:11,870 --> 00:38:12,630 των ανθρώπων. 769 00:38:12,630 --> 00:38:15,300 Και έτσι έχουν προσθέσει τα δικά τους βελτιώσεις πίσω από τις σκηνές. 770 00:38:15,300 --> 00:38:17,049 Και η χρήση οποιουδήποτε αριθμού από άλλες γλώσσες 771 00:38:17,049 --> 00:38:19,170 για διάφορα κομμάτια της των υποδομών τους. 772 00:38:19,170 --> 00:38:24,080 Οπότε ναι, είναι μια διακύμανση της αυτό που σήμερα γνωρίζουμε ως PHP. 773 00:38:24,080 --> 00:38:26,610 >> Έτσι, ας ρίξουμε μια ματιά σε μερικά παραδείγματα 774 00:38:26,610 --> 00:38:28,890 για το πώς μπορούμε να χρησιμοποιήσουμε το JavaScript εδώ. 775 00:38:28,890 --> 00:38:32,530 Στο πηγαίο κώδικα του σήμερα, έχουμε ένα δέσμη των αρχείων, το πρώτο εκ των οποίων, 776 00:38:32,530 --> 00:38:34,090 ας ονομάζεται DOM μηδέν. 777 00:38:34,090 --> 00:38:36,770 Έτσι DOM μηδέν έχει ως εξής. 778 00:38:36,770 --> 00:38:40,730 Επιτρέψτε μου να πάω σε αυτόν τον κατάλογο και να ανοίξει domzero.html, 779 00:38:40,730 --> 00:38:44,970 η κορυφή του οποίου έχει ένα τύπο doc δήλωση, λέγοντας ότι εδώ έρχεται HTML 5. 780 00:38:44,970 --> 00:38:46,440 Και τώρα εδώ είναι μια ετικέτα HTML. 781 00:38:46,440 --> 00:38:47,540 Εδώ είναι η ετικέτα της κεφαλής. 782 00:38:47,540 --> 00:38:49,210 Και εδώ είναι ό, τι είναι νέο σήμερα. 783 00:38:49,210 --> 00:38:52,620 >> Έχουμε τώρα μια ετικέτα script στο εσωτερικό του κεφαλιού της σελίδας. 784 00:38:52,620 --> 00:38:55,290 Και αυτό το κάνει προφανώς πολύ λίγο, αλλά ειδοποίηση 785 00:38:55,290 --> 00:38:58,410 ότι έχω ορίζεται ένας σενάριο, ένα JavaScript. 786 00:38:58,410 --> 00:39:01,050 Και, παρεμπιπτόντως, δεδομένου ότι αυτό Είναι μια κοινή παρερμηνεία, 787 00:39:01,050 --> 00:39:05,220 Την Javascript δεν έχει απολύτως τίποτα να κάνει με τη Java, η γλώσσα 788 00:39:05,220 --> 00:39:08,010 ότι κάποιοι από εσάς μπορεί να έχουν μάθει σε APC. 789 00:39:08,010 --> 00:39:10,480 Ήταν περισσότερο από ένα μάρκετινγκ πράγμα από οτιδήποτε άλλο, 790 00:39:10,480 --> 00:39:12,980 ιππασία στο τρένο της Java χρόνια πριν. 791 00:39:12,980 --> 00:39:17,300 Αλλά το JavaScript, τίποτα να κάνει με Java, ακριβώς τον ίδιο τρόπο, και ενοχλητικά, 792 00:39:17,300 --> 00:39:18,480 συγκεχυμένα όνομά του. 793 00:39:18,480 --> 00:39:21,890 >> Έτσι, εδώ είναι το πώς θα κηρύξει λειτουργία σε JavaScript, κυριολεκτικά πω λειτουργία, 794 00:39:21,890 --> 00:39:24,556 τότε το όνομα της συνάρτησης, τότε οποιαδήποτε επιχειρήματα που θα μπορούσε να λάβει, 795 00:39:24,556 --> 00:39:25,530 ακριβώς όπως στην PHP. 796 00:39:25,530 --> 00:39:28,990 Βγάζει το JavaScript, μία από τις πιο ενοχλητικό λειτουργίες που υπάρχουν είναι σε εγρήγορση. 797 00:39:28,990 --> 00:39:31,392 Αυτό είναι ένα μικρό παράθυρο που θα εμφανιστεί και θα σας ειδοποιούν 798 00:39:31,392 --> 00:39:32,600 σε κάποιο κομμάτι των πληροφοριών. 799 00:39:32,600 --> 00:39:33,766 Είναι γενικά αποδοκιμαζόταν. 800 00:39:33,766 --> 00:39:35,980 Αλλά εμείς θα το χρησιμοποιήσει ως μας πρώτη άσκηση εδώ. 801 00:39:35,980 --> 00:39:37,900 >> Παρατηρήστε μερικά χαρακτηριστικά του το JavaScript. 802 00:39:37,900 --> 00:39:41,524 Μονά εισαγωγικά και διπλά εισαγωγικά στην πραγματικότητα, δεν έχει σημασία πια. 803 00:39:41,524 --> 00:39:43,690 Μονά εισαγωγικά και διπλά αποσπάσματα μπορούν να ανταλλαχθούν, 804 00:39:43,690 --> 00:39:46,220 ενώ σε C, θα πρέπει να χρησιμοποιήσετε διπλά εισαγωγικά για έγχορδα, 805 00:39:46,220 --> 00:39:48,150 και έχετε δύο μονά εισαγωγικά για χαρακτήρες. 806 00:39:48,150 --> 00:39:51,150 Στον κόσμο το JavaScript, πολλοί άνθρωποι, οι περισσότεροι άνθρωποι 807 00:39:51,150 --> 00:39:54,970 Χρησιμοποιήστε μονά εισαγωγικά γύρω από χορδές ακριβώς επειδή είναι μια υφολογική πράγμα. 808 00:39:54,970 --> 00:39:58,330 Αλλά τι είναι ο φορέας συν εδώ, το οποίο δεν έχουμε ξαναδεί; 809 00:39:58,330 --> 00:39:59,836 >> ΚΟΙΝΟ: Αλληλουχία. 810 00:39:59,836 --> 00:40:00,960 DAVID Malan: Αλληλουχία. 811 00:40:00,960 --> 00:40:02,450 Έτσι C δεν έχει ακόμη αυτό. 812 00:40:02,450 --> 00:40:04,820 PHP έχει το χειριστή τελεία, η οποία κάνει αυτό. 813 00:40:04,820 --> 00:40:09,710 Τη JavaScript έχει το χειριστή συν, η οποία συγκεχυμένα είναι ακριβώς όπως η Java. 814 00:40:09,710 --> 00:40:11,440 Τώρα τι συμβαίνει εδώ; 815 00:40:11,440 --> 00:40:14,260 >> Έτσι, εδώ είναι όπου ένα βασικό κατανόηση αυτής της εικόνας 816 00:40:14,260 --> 00:40:17,010 ρίξαμε ένα ζευγάρι ημέρες πριν από την έναρξη του παιχνιδιού. 817 00:40:17,010 --> 00:40:19,620 Να θυμάστε, όταν είχαμε μια απλή έκδοση ενός HTML page-- 818 00:40:19,620 --> 00:40:20,830 αυτό ακριβώς είπε, γεια κόσμο. 819 00:40:20,830 --> 00:40:22,770 Και τότε επέστησε ένα δέντρο προς τα δεξιά, η οποία 820 00:40:22,770 --> 00:40:27,320 είχε ένα μάτσο ορθογώνια και γραμμές συνδέοντας τους σαν ένα οικογενειακό δέντρο. 821 00:40:27,320 --> 00:40:30,820 Έτσι, αυτό είναι το λεγόμενο DOM ή Μοντέλου Αντικειμένου Εγγράφου. 822 00:40:30,820 --> 00:40:36,759 Και αποδεικνύεται ότι μπορείτε να αποκτήσετε πρόσβαση ορθογώνια σε αυτό το δέντρο με τη σύνταξη 823 00:40:36,759 --> 00:40:37,550 όπως τα ακόλουθα. 824 00:40:37,550 --> 00:40:41,370 Μπορείτε κυριολεκτικά να πω έγγραφο, το οποίο είναι ένα ειδικές παγκόσμια μεταβλητή σε ένα πρόγραμμα JavaScript 825 00:40:41,370 --> 00:40:45,890 πρόγραμμα που έχει μια λειτουργία που συνδέονται με αυτό ότι μπορείτε να αποκτήσετε πρόσβαση 826 00:40:45,890 --> 00:40:50,280 παρόμοιο με ένα struct, αλλά απλά λένε τελεία και στη συνέχεια το όνομα της συνάρτησης, 827 00:40:50,280 --> 00:40:52,390 πάρετε το στοιχείο με ID. 828 00:40:52,390 --> 00:40:55,460 >> Το στοιχείο που θέλω να πάρετε είναι προφανώς παραθέσω εισαγωγικά όνομα. 829 00:40:55,460 --> 00:40:57,150 Και τότε θέλω να πάρω την αξία του. 830 00:40:57,150 --> 00:40:58,330 Τώρα είμαστε να πάρει μπροστά από τον εαυτό μας. 831 00:40:58,330 --> 00:41:00,038 Δεν είμαι καν σίγουρος τι όλα αυτά είναι σχετικά. 832 00:41:00,038 --> 00:41:03,000 Ας γρήγορα προς τα εμπρός για την HTML για η σελίδα, η οποία είναι εξαιρετικά απλή. 833 00:41:03,000 --> 00:41:05,370 >> Ανακοίνωση που έχω οριστεί Μια φόρμα εδώ κάτω. 834 00:41:05,370 --> 00:41:07,940 Ανακοίνωση έχω δώσει μια μοναδική ID, ακόμα κι αν δεν έχετε χρησιμοποιήσει 835 00:41:07,940 --> 00:41:08,870 αυτό το χαρακτηριστικό πριν. 836 00:41:08,870 --> 00:41:11,300 Αλλά αυτό υπάρχει σε μορφή HTML. 837 00:41:11,300 --> 00:41:15,570 Μπορείτε μοναδικά μπορεί να εντοπίσει κάποιο κομμάτι της HTML με ένα αναγνωριστικό σαν αυτό. 838 00:41:15,570 --> 00:41:19,880 >> Παρατηρήστε τώρα this-- αποδεικνύεται HTML υποστηρίζει, ανά εν λόγω κατάλογο πλυντηρίων 839 00:41:19,880 --> 00:41:22,490 Πριν από μια στιγμή, μια ολόκληρη μάτσο χειρισμού συμβάντων. 840 00:41:22,490 --> 00:41:25,060 Και αυτό το πρόγραμμα χειρισμού συμβάντων λέει υποβάλει. 841 00:41:25,060 --> 00:41:28,730 Σχετικά με την υποβολή του χρήστη αυτού μορφή, καλέστε τον παρακάτω κώδικα. 842 00:41:28,730 --> 00:41:31,360 Και ο κώδικας που πρόκειται να κληθεί ή να εκτελεστεί 843 00:41:31,360 --> 00:41:35,260 είναι ακριβώς αυτό, η ελληνική λειτουργία που ακολουθείται από ανακριβούς δήλωσης. 844 00:41:35,260 --> 00:41:37,360 Οτιδήποτε άλλο θα πρέπει να να είναι αρκετά εξοικειωμένοι. 845 00:41:37,360 --> 00:41:42,050 >> Εδώ είναι μια είσοδος του τύπου κειμένου, του οποίου η ID, σε αυτήν την περίπτωση, πρόκειται να είναι το όνομα. 846 00:41:42,050 --> 00:41:45,430 Δεν έχουμε έναν πραγματικό όνομα χαρακτηριστικού Αυτό time-- και ένα κουμπί υποβολής. 847 00:41:45,430 --> 00:41:48,330 Έτσι, η σελίδα που μοιάζει με αυτό. 848 00:41:48,330 --> 00:41:52,890 Και η προκύπτουσα συμπεριφορά, θα δείτε, μοιάζει με αυτό. 849 00:41:52,890 --> 00:41:56,940 Η σελίδα αυτή τοπικούς οικοδεσπότες λέει, γειά σου Δαβίδ, σχεδόν ένα αισθητικά ευχάριστο 850 00:41:56,940 --> 00:41:58,340 τρόπος για να χαιρετήσει έναν χρήστη. 851 00:41:58,340 --> 00:41:59,950 Αλλά τι πραγματικά συμβαίνει; 852 00:41:59,950 --> 00:42:01,360 >> Λοιπόν, σκεφτείτε τι είναι αυτό. 853 00:42:01,360 --> 00:42:02,310 Αυτό είναι ένα πεδίο κειμένου. 854 00:42:02,310 --> 00:42:04,635 Και σύμφωνα με το HTML εδώ, έχω να δοθεί 855 00:42:04,635 --> 00:42:07,350 ένα μοναδικό αναγνωριστικό ονομάζεται απόσπασμα εισαγωγικά όνομα. 856 00:42:07,350 --> 00:42:09,770 Εν τω μεταξύ, έχω πει όταν ο χρήστης υποβάλλει την παρούσα μορφή 857 00:42:09,770 --> 00:42:13,820 πατώντας Enter ή κλικ στο Υποβολή κουμπί, καλέστε τη λειτουργία που ονομάζεται Greet 858 00:42:13,820 --> 00:42:15,410 και στη συνέχεια επιστρέφει false. 859 00:42:15,410 --> 00:42:16,870 Ας εξετάσουμε αυτές αντίστροφη. 860 00:42:16,870 --> 00:42:20,590 Ειδοποίηση όταν κάνω κλικ στο Υποβολή, η URL αυτής της σελίδας δεν αλλάζει. 861 00:42:20,590 --> 00:42:22,420 Το εικονίδιο του προγράμματος περιήγησης δεν αρχίσει να γυρίζει. 862 00:42:22,420 --> 00:42:27,050 Εγώ δεν πάω πουθενά, και αυτό είναι κυριολεκτικά γιατί είπα return false. 863 00:42:27,050 --> 00:42:31,534 Επιστροφή Λάθος βραχυκυκλώματα ή στάσεις η προεπιλεγμένη συμπεριφορά του μορφή. 864 00:42:31,534 --> 00:42:33,700 Έτσι ώστε, στη συνέχεια, μας αφήνει με Αυτή η μια τελευταία ερώτηση. 865 00:42:33,700 --> 00:42:34,764 Τι Greet κάνουμε; 866 00:42:34,764 --> 00:42:36,680 Λοιπόν, προφανώς Χαιρετήστε καλεί μια λειτουργία που ονομάζεται 867 00:42:36,680 --> 00:42:39,250 Ειδοποίησης, περνάει σε ένα μακρά επιχείρημα που είναι 868 00:42:39,250 --> 00:42:43,950 το αποτέλεσμα της συνένωση μαζί ένα μάτσο substrings, γεια χώρο κόμμα, 869 00:42:43,950 --> 00:42:45,810 τότε ό, τι αυτό επιστρέφει. 870 00:42:45,810 --> 00:42:51,490 Έτσι, το έγγραφο είναι σαν ένα παγκόσμιο μεταβλητή σε αυτή τη ρίζα του δέντρου, 871 00:42:51,490 --> 00:42:55,560 καλώντας μια ειδική λειτουργία, Αλλιώς τώρα γνωστή ως μέθοδος. 872 00:42:55,560 --> 00:42:57,650 Μια λειτουργία που είναι μέσα από μια μεταβλητή είναι 873 00:42:57,650 --> 00:42:59,640 ονομάζεται μέθοδος αντί για μια λειτουργία. 874 00:42:59,640 --> 00:43:01,570 >> Έτσι πάρτε το στοιχείο με ID. 875 00:43:01,570 --> 00:43:03,940 Ποιο στοιχείο κάνετε θέλουν να πάρουν με ID της; 876 00:43:03,940 --> 00:43:06,970 Παράθεση εισαγωγικά το όνομα και τότε η αξία ειδικά. 877 00:43:06,970 --> 00:43:12,000 Έτσι με άλλα λόγια, ότι ο κωδικός απλά βρίσκει το πεδίο κειμένου του οποίου η ταυτότητα είναι το όνομα 878 00:43:12,000 --> 00:43:13,380 και στη συνέχεια να παίρνει την αξία του. 879 00:43:13,380 --> 00:43:16,460 Έτσι, εάν επρόκειτο να αλλάξει αυτό και να πω Davin αντί του Δαβίδ, 880 00:43:16,460 --> 00:43:20,670 και κάντε κλικ στην επιλογή Υποβολή, τώρα είμαστε έχουν ένα χαιρετισμό για Davin. 881 00:43:20,670 --> 00:43:22,890 >> Εντάξει, οπότε όλα ωραία και καλά. 882 00:43:22,890 --> 00:43:25,480 Αλλά ας δούμε αν μπορούμε να κάνουμε Αυτό είναι λίγο καθαρότερο από μόνο 883 00:43:25,480 --> 00:43:28,190 τη σύνταξη κώδικα, όπως αυτό είναι γενικά θα πρέπει να αποδοκιμάζεται. 884 00:43:28,190 --> 00:43:30,060 Αυτό πρόκειται να δούμε χειρότερες. 885 00:43:30,060 --> 00:43:32,330 Αλλά ποια είναι η πρώτη διαφορά που μπορείτε να σημειώσετε εδώ 886 00:43:32,330 --> 00:43:35,970 σε αυτή την έκδοση, εκτός από το όνομα αλλάζει σε ένα DOM; 887 00:43:35,970 --> 00:43:41,110 Τι δομικά μοιάζει διαφορετικό για αυτό σε σχέση με την άλλη; 888 00:43:41,110 --> 00:43:41,932 Ναι; 889 00:43:41,932 --> 00:43:43,890 ΚΟΙΝΟ: Είναι η μορφή κορυφή του σεναρίου τώρα; 890 00:43:43,890 --> 00:43:46,570 DAVID Malan: Ναι, η μορφή είναι στην κορυφή του σεναρίου για κάποιο περίεργο λόγο. 891 00:43:46,570 --> 00:43:48,736 Έτσι, αυτό είναι το πρώτο πράγμα ότι πηδά έξω σε μένα, πάρα πολύ. 892 00:43:48,736 --> 00:43:50,990 Και ευτυχώς, τουλάχιστον, Αυτό το μέρος είναι πανομοιότυπα. 893 00:43:50,990 --> 00:43:53,470 Έτσι, το μόνο πράγμα που φαίνεται να είναι διαφορετική είναι αυτό. 894 00:43:53,470 --> 00:43:55,296 >> Έτσι, εδώ είναι ό, τι είναι τακτοποιημένο περίπου το JavaScript 2. 895 00:43:55,296 --> 00:43:57,420 Και αυτό καθιστά δύσκολο να καταλάβετε με την πρώτη ματιά, 896 00:43:57,420 --> 00:44:00,670 ειδικά για την τελική έργων αν ψάχνετε σε δείγμα κώδικα σε απευθείας σύνδεση, 897 00:44:00,670 --> 00:44:04,200 αλλά βράζει κάτω σε μερικά βασικά συντακτικά χαρακτηριστικά. 898 00:44:04,200 --> 00:44:06,230 Εδώ πάλι είναι ότι παγκόσμια μεταβλητή έγγραφο. 899 00:44:06,230 --> 00:44:09,540 Εδώ πάλι είναι ότι η μέθοδος ή η λειτουργία ότι λέει να πάρει το στοιχείο με ID. 900 00:44:09,540 --> 00:44:11,570 Αυτή τη φορά θέλω να να πάρει το αναγνωριστικό που ονομάζεται demo. 901 00:44:11,570 --> 00:44:12,490 Πού είναι αυτό; 902 00:44:12,490 --> 00:44:15,400 Αυτό είναι προφανώς το δικαίωμά Εδώ, η ίδια η μορφή. 903 00:44:15,400 --> 00:44:20,010 >> Και τώρα παρατηρήσετε ότι προφανώς αν μου να πάρει πίσω αυτόν τον κόμβο από το δέντρο που 904 00:44:20,010 --> 00:44:22,940 αντιπροσωπεύει την μορφή μόνη της, δεν είναι ένα πεδίο κειμένου, 905 00:44:22,940 --> 00:44:26,970 Αποδεικνύεται ότι η μορφή, ότι κόμβου ή ορθογώνιο από το δέντρο, 906 00:44:26,970 --> 00:44:30,450 έχει τι θα καλέσουμε ένα ακίνητο, πολύ, πολύ, πολύ παρόμοια 907 00:44:30,450 --> 00:44:35,390 το πνεύμα του σε ένα struct στη Γ Είναι απλά ένα μέλος των δεδομένων στο εσωτερικό αυτού του ορθογωνίου. 908 00:44:35,390 --> 00:44:38,300 >> Έτσι έχω τη μορφή εδώ, και είμαι επισυνάπτοντας, 909 00:44:38,300 --> 00:44:44,650 ή είμαι ανάθεση, σε On του Υποβολή χειριστή ή μάλλον Στις Υποβολή ακίνητο 910 00:44:44,650 --> 00:44:45,740 η παρακάτω λειτουργία. 911 00:44:45,740 --> 00:44:49,000 Και αυτό είναι, μακράν, το πιο τρελό πράγμα που μέχρι στιγμής συντακτικά. 912 00:44:49,000 --> 00:44:53,610 Αποδεικνύεται σε JavaScript και PHP, και ειλικρινά για το θέμα αυτό σε C, 913 00:44:53,610 --> 00:44:58,990 ακόμα κι αν δεν το κάνετε, μπορείτε να προσθέσετε ανώνυμος, ανώνυμα, ή AKA λάμδα 914 00:44:58,990 --> 00:45:03,000 λειτουργίες που δεν έχουν όνομα αλλά μπορεί να λέγεται παρόλα αυτά. 915 00:45:03,000 --> 00:45:07,050 >> Έτσι, αυτό που κάνω εδώ είναι ότι είμαι ανάθεση Αυτό Υποβολή στην ιδιοκτησία, η οποία 916 00:45:07,050 --> 00:45:14,330 είναι εντός αυτού του κόμβου του δέντρου DOM μου, ένα λειτουργία, ο δείκτης λειτουργία αν θέλετε. 917 00:45:14,330 --> 00:45:16,310 Αυτή η λειτουργία δεν έχει όνομα, αλλά ότι δεν κάνει 918 00:45:16,310 --> 00:45:19,110 σημασία, διότι θα δούμε σε μια στιγμή πώς να το ονομάσουμε. 919 00:45:19,110 --> 00:45:21,780 Όταν η λειτουργία αυτή ονομάζεται, Αυτός ο κώδικας δέχεται εκτελεστεί, τότε 920 00:45:21,780 --> 00:45:24,210 ψευδείς επιστρέφεται ακριβώς όπως πριν. 921 00:45:24,210 --> 00:45:25,800 >> Αλλά παρατηρήστε τι έχω κάνει. 922 00:45:25,800 --> 00:45:27,830 Σε αυτό το σημείο η ιστορία, έχω μια φόρμα. 923 00:45:27,830 --> 00:45:30,190 Έχει ένα μοναδικό αναγνωριστικό που ονομάζεται demo. 924 00:45:30,190 --> 00:45:33,740 Εδώ κάτω, έχω μια ετικέτα script που εκτελεί τον παρακάτω κώδικα. 925 00:45:33,740 --> 00:45:37,720 Αποδίδει σε αυτόν τον κόμβο στο το δέντρο να είναι στο Υποβολή 926 00:45:37,720 --> 00:45:40,260 ιδιοκτησίας η λειτουργία αυτή εδώ. 927 00:45:40,260 --> 00:45:44,310 Και μόνο από τη φύση του πώς λειτουργούν τα προγράμματα περιήγησης, όταν εγώ τώρα κάντε κλικ στο Υποβολή ή να πατήσετε το Enter, 928 00:45:44,310 --> 00:45:45,889 ότι η λειτουργία πρόκειται να πάρει ονομάζεται. 929 00:45:45,889 --> 00:45:48,680 Δεν χρειάζεται ένα όνομα, γιατί ποιος το καλό νοιάζεται για το τι λέγεται. 930 00:45:48,680 --> 00:45:52,540 Η μόνη φορά που πρόκειται ποτέ να πάρει ονομάζεται είναι όταν υποβάλετε τη φόρμα. 931 00:45:52,540 --> 00:45:55,130 Δεν υπάρχει καμία ανάγκη για μένα, η ανθρώπινη έργου, 932 00:45:55,130 --> 00:45:57,330 για να καλέσετε πραγματικά οπουδήποτε αλλού. 933 00:45:57,330 --> 00:46:00,720 >> Τώρα απλά ως ένα teaser, ως εάν αυτός δεν είχαν το μυαλό κάμψης αρκετά, 934 00:46:00,720 --> 00:46:03,330 μπορούμε να κάνουμε ακόμα και αυτό φαίνονται πιο αινιγματικά χρησιμοποιώντας 935 00:46:03,330 --> 00:46:05,850 ένα σούπερ δημοφιλής βιβλιοθήκη που ονομάζεται jQuery. 936 00:46:05,850 --> 00:46:08,760 Στην πραγματικότητα jQuery και JavaScript συχνά συγχέονται. 937 00:46:08,760 --> 00:46:12,790 Και τι θα κάνουμε την Τετάρτη είναι η αρχή χρησιμοποιώντας αυτή τη γλώσσα και αυτές τις βιβλιοθήκες 938 00:46:12,790 --> 00:46:16,030 για την κατασκευή όλο και ασύγχρονη και δυναμικές εφαρμογές 939 00:46:16,030 --> 00:46:18,950 όπως χάρτη πάρει εφαρμογές, εφαρμογές 940 00:46:18,950 --> 00:46:22,360 ότι η ενημέρωση της ιστοσελίδας σε πραγματικό χρόνο, πολύ όπως το Facebook ή Gchat 941 00:46:22,360 --> 00:46:27,130 κάνει, και περιορίζεται πλέον στους εαυτούς μας να Υποβολή χτύπημα από ένα get ή απλά μετά 942 00:46:27,130 --> 00:46:27,630 μόνο. 943 00:46:27,630 --> 00:46:29,055 Γι 'αυτό και θα σας δούμε την Τετάρτη. 944 00:46:29,055 --> 00:46:31,805 945 00:46:31,805 --> 00:46:35,550 >> [Παίζει μουσική] 946 00:46:35,550 --> 00:48:09,728