1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [8 सप्ताह जारी] 2 00:00:02,000 --> 00:00:04,000 [डेविड जे Malan] [हार्वर्ड विश्वविद्यालय] 3 00:00:04,000 --> 00:00:08,000 [यह CS50 है.] [CS50.TV] 4 00:00:08,000 --> 00:00:13,000 >> यह CS50 है, तो यह 8 सप्ताह के अंत है. 5 00:00:13,000 --> 00:00:16,000 हम निश्चित रूप से इस सप्ताह के शुरू में एक तूफान की एक सा था, 6 00:00:16,000 --> 00:00:19,000 इसलिए अभी यह वास्तव में सिर्फ तुम और मुझे इस लेक्चर हॉल में, 7 00:00:19,000 --> 00:00:22,000 लेकिन आज हम PHP के बारे में हमारी बातचीत जारी 8 00:00:22,000 --> 00:00:25,000 और वेब प्रोग्रामिंग के बारे में आम तौर पर और अधिक, और हम भी विचार शुरू 9 00:00:25,000 --> 00:00:29,000 डेटाबेस के, विशेष रूप से एक MySQL, जो इन दिनों काफी लोकप्रिय है कहा जाता है, 10 00:00:29,000 --> 00:00:34,000 इसके साथ ही scalability क्योंकि इसकी स्वतंत्र और खुला स्रोत होने की वजह से बड़े हिस्से में. 11 00:00:34,000 --> 00:00:37,000 >> लेकिन पहले, जहां हम पिछली बार छोड़ दिया है पर एक नज़र. 12 00:00:37,000 --> 00:00:40,000 याद है कि हम कई Frosh आईएमएस उदाहरणों को देख रहे थे, 13 00:00:40,000 --> 00:00:44,000 और इस घृणित रूप था कि मैं 15 साल पहले कुछ + के साथ आया 14 00:00:44,000 --> 00:00:49,000 क्रम में परिसर में रजिस्टर पर नए अंदर खेल के लिए छात्रों के लिए 15 00:00:49,000 --> 00:00:52,000 वास्तव में अब यात्रा यार्ड में Wigglesworth के बिना 16 00:00:52,000 --> 00:00:56,000 कुछ प्रॉक्टर के दरवाजे के नीचे कागज के एक भौतिक टुकड़ा स्लाइड. 17 00:00:56,000 --> 00:00:59,000 इसके बजाय हम सब कुछ ऑनलाइन चले गए, लेकिन है कि हम उपयोग कर की जरूरत है 18 00:00:59,000 --> 00:01:03,000 कुछ प्रौद्योगिकियों के, इसलिए, हम HTML, हाइपरटेक्स्ट मार्कअप लैंग्वेज की जरूरत है, 19 00:01:03,000 --> 00:01:07,000 जो फिर से इस मार्कअप भाषा चुनें जिसमें आप वेब पृष्ठों structurally करना है. 20 00:01:07,000 --> 00:01:10,000 >> सीएसएस के एक बिट का उपयोग इन दिनों, व्यापक शैली पत्रक, 21 00:01:10,000 --> 00:01:16,000 जिससे हम वेब पेज के stylizations का उपयोग एक से थोड़ा अलग वाक्यविन्यास का उपयोग कर, 22 00:01:16,000 --> 00:01:19,000 जबकि HTML उसके संरचना के बारे में सब कुछ था. 23 00:01:19,000 --> 00:01:21,000 हम भी एक वेब प्रोग्रामिंग भाषा शुरू करने की जरूरत है. 24 00:01:21,000 --> 00:01:25,000 इस मामले में, हम PHP का उपयोग करें, और PHP के लिए हमें अनुमति देने के लिए जा रहा है 25 00:01:25,000 --> 00:01:28,000 गतिशील उत्पादन सामग्री के रूप में अच्छी तरह के रूप में की तरह कार्यक्रम संबंधी बातें करते हैं 26 00:01:28,000 --> 00:01:33,000 ईमेल भेजने के रूप में ध्यान दें कि हम पिछले हफ्ते छोड़ दिया पर मामला था. 27 00:01:33,000 --> 00:01:35,000 >> याद है कि इस के लिए कोड 2 भागों में किया गया था. 28 00:01:35,000 --> 00:01:38,000 एक, हम froshims3.php था, 29 00:01:38,000 --> 00:01:42,000 और यह इसे के अंदर एक HTML फार्म के साथ बड़े पैमाने पर मार्कअप था, 30 00:01:42,000 --> 00:01:45,000 सीएसएस के एक छोटे से शैली विशेषताओं में बिट यहाँ 31 00:01:45,000 --> 00:01:48,000 इसलिए है कि फार्म ही पृष्ठ पर, लेकिन उस पार केंद्रित किया जाएगा 32 00:01:48,000 --> 00:01:51,000 हम कुछ प्रतिनिधि रूप आदानों, एक पाठ क्षेत्र, एक चेकबॉक्स था, 33 00:01:51,000 --> 00:01:55,000 कुछ रेडियो बटन, एक का चयन करें मेनू, और एक बटन सबमिट करें. 34 00:01:55,000 --> 00:02:01,000 और इस फ़ॉर्म के माध्यम से, हम एक फ़ाइल है कि जाहिरा तौर पर register3.php बुलाया गया था प्रस्तुत 35 00:02:01,000 --> 00:02:04,000 जो खुद इस तरह एक छोटे से कुछ देखा. 36 00:02:04,000 --> 00:02:08,000 अब,, याद है, register3.php कोड के सबसे ईमेल के बारे में सब कुछ था. 37 00:02:08,000 --> 00:02:11,000 यह सत्यापन के रूप है कि सुनिश्चित करने के लिए प्रस्तुत किया गया की एक छोटा सा था 38 00:02:11,000 --> 00:02:14,000 कि खेतों वास्तव में प्रदान किया गया है कि उम्मीद की गई थी. 39 00:02:14,000 --> 00:02:18,000 फिर हम कुछ PHP कार्यों बुलाया थोड़ा नया वाक्यविन्यास का उपयोग कर, 40 00:02:18,000 --> 00:02:20,000 भले ही यह सी से उधार लिया है 41 00:02:20,000 --> 00:02:24,000 >> यह तीर ऑपरेटर हमें ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग बुलाया कुछ का उपयोग करने के लिए अनुमति देता है. 42 00:02:24,000 --> 00:02:27,000 हम उस में यहाँ किसी भी विस्तार में नहीं जाना है, लेकिन अब के लिए पता 43 00:02:27,000 --> 00:02:31,000 यह वस्तुओं के साथ जुड़े कार्यों के होने का एक तरीका है, 44 00:02:31,000 --> 00:02:34,000 जो संरचना का एक विशेष प्रकार के होते हैं, जैसा कि हम सी. में देखा 45 00:02:34,000 --> 00:02:37,000 लेकिन अब के लिए, सिर्फ विश्वास पर ले कि यह सही उपयोग करने के लिए वाक्यविन्यास है 46 00:02:37,000 --> 00:02:41,000 जब इस PHPMailer पुस्तकालय की तरह एक पुस्तकालय का उपयोग कर. 47 00:02:41,000 --> 00:02:44,000 और फिर इस फाइल के अंत तक हम गतिशील एक ईमेल उत्पन्न किया था 48 00:02:44,000 --> 00:02:47,000 कि मेरे jharvard@cs50.net खाते में भेजा गया 49 00:02:47,000 --> 00:02:50,000 मेरे jharvard@cs50.net खाते से, 50 00:02:50,000 --> 00:02:54,000 और हम तदनुसार उपयोगकर्ता को सूचित किया है कि वे इस खेल के लिए पंजीकृत किया गया था. 51 00:02:54,000 --> 00:02:57,000 यह बहुत ज्यादा है Frosh आईएमएस साइट क्या उन सभी साल पहले किया था 52 00:02:57,000 --> 00:03:00,000 जब मैं इसे लागू, एक अलग भाषा में दी जाती है, 53 00:03:00,000 --> 00:03:02,000 लेकिन यह आप शायद शक्ति है कि आप से पता चलता है 54 00:03:02,000 --> 00:03:05,000 अब है कि आप अपने आप को व्यक्त कर सकते हैं न केवल प्रोग्राम 55 00:03:05,000 --> 00:03:08,000 सी की तरह एक भाषा में एक निम्न स्तर पर है, लेकिन एक बहुत उच्च स्तर पर 56 00:03:08,000 --> 00:03:11,000 इन ईमेल की तरह बहुत ही वास्तविक दुनिया अनुप्रयोगों के लिए वास्तव में हल के साथ 57 00:03:11,000 --> 00:03:13,000 कुछ असली दुनिया की समस्याओं. 58 00:03:13,000 --> 00:03:16,000 >> अब, ज़ाहिर है, भले ही मैं कुछ उत्पन्न करने के लिए इस स्क्रिप्ट का उपयोग करें 59 00:03:16,000 --> 00:03:20,000 jharvard@cs50.net, जो वास्तव में एक खाता है से गतिशील ईमेल 60 00:03:20,000 --> 00:03:23,000 कि मैं का उपयोग किया है, के लिए भेजने के लिए काफी सावधान रहना 61 00:03:23,000 --> 00:03:26,000 है कि वास्तव में अपने खुद के खातों से ही मेल, 62 00:03:26,000 --> 00:03:30,000 ऐसा न हो कि चीजें आप जीवन में गर्म पानी के एक बिट में मिलता है. 63 00:03:30,000 --> 00:03:35,000 साथ ही कहा, अब हम पूरी तरह एक अलग समस्या को हल करने के लिए संक्रमण, 64 00:03:35,000 --> 00:03:37,000 को बनाए रखना है राज्यों के. 65 00:03:37,000 --> 00:03:39,000 अब, यह वास्तव में क्या मतलब है? 66 00:03:39,000 --> 00:03:42,000 HTTP, हाइपरटेक्स्ट ट्रांसफर प्रोटोकॉल, 67 00:03:42,000 --> 00:03:45,000 वास्तव में एक राज्यविहीन प्रोटोकॉल है, और क्या इसका मतलब यह है कि 68 00:03:45,000 --> 00:03:48,000 जब आप Google.com की तरह कुछ खींचने के लिए और फिर एन्टर 69 00:03:48,000 --> 00:03:51,000 आमतौर पर अपने ब्राउज़र कताई आइकन के कुछ प्रकार है कि है तो 70 00:03:51,000 --> 00:03:54,000 कुछ वेब पेज में परिणामों को डाउनलोड किया जा रहा है, 71 00:03:54,000 --> 00:03:57,000 और फिर उस छोटे से आइकन कताई बंद हो जाता है, और कहा कि वास्तव में पता चलता है 72 00:03:57,000 --> 00:04:02,000 कि HTTP सर्वर से कनेक्शन के कुछ प्रकार पूरा कर लिया है और यह बात है. 73 00:04:02,000 --> 00:04:05,000 HTTP समझ में आता है कि इसे बनाए रखने नहीं राज्यविहीन है 74 00:04:05,000 --> 00:04:08,000 उसी तरह स्काइप में एक सर्वर के लिए लगातार कनेक्शन 75 00:04:08,000 --> 00:04:11,000 या Gchat क्योंकि HTTP के साथ 76 00:04:11,000 --> 00:04:15,000 धारणा यह है कि एक बार आप एक वेब पेज है कि यह दिलवाया है. 77 00:04:15,000 --> 00:04:18,000 >> अब, फेसबुक और गूगल मैप्स की तरह साइटों पर वास्तविकता में इन दिनों 78 00:04:18,000 --> 00:04:21,000 और चहचहाना और इस तरह एक बहुत अधिक गतिशीलता है जिससे 79 00:04:21,000 --> 00:04:25,000 के बाद भी कि आइकन कताई बंद हो जाता है कि आप वास्तव में अधिक अपडेट प्राप्त कर सकते 80 00:04:25,000 --> 00:04:29,000 सर्वर, अधिक tweets, फेसबुक पर स्थिति अद्यतन और इस तरह से. 81 00:04:29,000 --> 00:04:33,000 लेकिन यह भी है कि एक तकनीक है कि हम एक या दो सप्ताह के बारे में बात करेंगे उपयोग कर रहा है 82 00:04:33,000 --> 00:04:36,000 Ajax जावास्क्रिप्ट बुलाया भाषा का उपयोग कर के रूप में जाना जाता है, 83 00:04:36,000 --> 00:04:38,000 लेकिन दिन के अंत में, HTTP अभी भी राज्यविहीन है. 84 00:04:38,000 --> 00:04:42,000 और फिर भी अगर आप किसी भी तरह से एक उपयोगकर्ता के बारे में बातें याद रखना चाहते हैं 85 00:04:42,000 --> 00:04:44,000 के बाद भी वे अपने सर्वर से काट दिया 86 00:04:44,000 --> 00:04:47,000 PHP आप ऐसा करने का एक साधन वहन करता है 87 00:04:47,000 --> 00:04:52,000 क्योंकि, जैसा कि पिछली बार हमने देखा, PHP superglobals की एक संख्या है, 88 00:04:52,000 --> 00:04:55,000 और एक superglobal है, फिर से, एक विशेष वैश्विक चर 89 00:04:55,000 --> 00:04:59,000 कि वेब सर्वर और PHP के द्वारा ही आप को सौंप दिया है. 90 00:04:59,000 --> 00:05:02,000 >> आप के लिए कुछ भी करने के लिए इसे में मूल्यों डाल नहीं है, 91 00:05:02,000 --> 00:05:05,000 और superglobals हम इस प्रकार अब तक देखा है के बीच मिल रहे हैं और पोस्ट, 92 00:05:05,000 --> 00:05:08,000 जो है, जहां प्रपत्र फ़ील्ड स्वचालित रूप से आप के लिए डाल रहे हैं, 93 00:05:08,000 --> 00:05:11,000 के रूप में के रूप में अच्छी तरह से दूसरों की एक जोड़ी है कि हम अभी तक नहीं देखा है. 94 00:05:11,000 --> 00:05:17,000 $ _SERVER के अंदर कुछ विशेष चर स्वयं सर्वर से संबंधित हैं. 95 00:05:17,000 --> 00:05:22,000 क्या आईपी पता, प्रोटोकॉल HTTP या HTTPS क्या आप का उपयोग किया है, 96 00:05:22,000 --> 00:05:25,000 अनुरोध विधि क्या आप का उपयोग किया था की तरह है, तो वहाँ कुछ दिलचस्प है, 97 00:05:25,000 --> 00:05:29,000 सर्वर के बारे में रसदार विवरण, और वास्तव में, वहाँ में उपयोगकर्ता के रूप में अच्छी तरह से. 98 00:05:29,000 --> 00:05:33,000 वहाँ $ _cookie, जो है, जहां इन बातों कुकीज़ संग्रहित कर रहे हैं कहा जाता है. 99 00:05:33,000 --> 00:05:36,000 हम कुकीज़ पर समय नहीं आज स्वयं खर्च करेगा, 100 00:05:36,000 --> 00:05:40,000 लेकिन अब पता चला है कि एक कुकी सिर्फ जानकारी का एक छोटा सा टुकड़ा है 101 00:05:40,000 --> 00:05:43,000 कि एक वेब सर्वर एक वेब ब्राउज़र पर संयंत्र कर सकते हैं 102 00:05:43,000 --> 00:05:46,000 और अपने राम या अपने कंप्यूटर की हार्ड ड्राइव बारी 103 00:05:46,000 --> 00:05:49,000 एक उपयोगकर्ता के बारे में जानकारी की दुकान है, उदाहरण के लिए, अपने उपयोगकर्ता नाम 104 00:05:49,000 --> 00:05:52,000 इतना है कि वे इसे टाइप हर बार वे करें या कुछ नहीं है 105 00:05:52,000 --> 00:05:55,000 अद्वितीय संख्या या कि उपयोगकर्ता के लिए पहचानकर्ता 106 00:05:55,000 --> 00:05:58,000 इतनी है कि आप के बारे में सवालों की एक ही प्रकार के साथ उन्हें तंग नहीं है 107 00:05:58,000 --> 00:06:00,000 भविष्य में वरीयताओं, लेकिन ब्याज की सबसे 108 00:06:00,000 --> 00:06:02,000 अब सही $ देखना है. 109 00:06:02,000 --> 00:06:07,000 >> इस superglobal है, जो दूसरों की तरह, आप के लिए सौंप दिया है PHP द्वारा स्वचालित रूप से 110 00:06:07,000 --> 00:06:10,000 जब आप लिख रहे हैं PHP आधारित वेबसाइटों 111 00:06:10,000 --> 00:06:13,000 कुछ भी आप चाहते हैं, तार, integers स्टोर कर सकते हैं, 112 00:06:13,000 --> 00:06:16,000 अस्थायी अंक, मूल्यों, arrays, वस्तुओं, 113 00:06:16,000 --> 00:06:20,000 वास्तव में कुछ भी है कि आप चाहते हैं, और यह आप इसे इस तरह से स्टोर करने के लिए अनुमति देता है 114 00:06:20,000 --> 00:06:23,000 कि भले ही उपयोगकर्ता अब और फिर का दौरा 115 00:06:23,000 --> 00:06:26,000 वापस अब या 5 मिनट से अब एक मिनट आता है, क्योंकि 116 00:06:26,000 --> 00:06:28,000 वे कुछ अन्य लिंक पर क्लिक करने से पहले अपने समय लगेगा 117 00:06:28,000 --> 00:06:32,000 PHP यह सुनिश्चित करेंगे कि जो भी आप कि सत्र superglobal में डाल 118 00:06:32,000 --> 00:06:37,000 एक मिनट या 5 मिनट पहले अभी भी वहाँ हो सकता है जब उपयोगकर्ता रिटर्न. 119 00:06:37,000 --> 00:06:40,000 और हुड के नीचे इस superglobal के माध्यम से कार्यान्वित किया जाता है 120 00:06:40,000 --> 00:06:44,000 उन चीजों कुकीज़ कहा जाता है, लेकिन अब के लिए, यह सिर्फ एक अमूर्त है 121 00:06:44,000 --> 00:06:47,000 जिससे यह खरीदारी की टोकरी के कार्यक्रम बराबर की तरह है. 122 00:06:47,000 --> 00:06:50,000 आप जो भी हो, प्रोग्रामर, कि में डाल दिया 123 00:06:50,000 --> 00:06:53,000 superglobal साहचर्य सरणी वहाँ कुछ मिनट के बाद नंबर एक हो जाएगा 124 00:06:53,000 --> 00:06:59,000 जब तक आप इसे हटा या जब तक कि उपयोगकर्ता अपने या अपने ब्राउज़र पूरी तरह इस्तीफा. 125 00:06:59,000 --> 00:07:02,000 >> चलो कैसे इस बात को वास्तव में प्रयोग किया जाता है का एक उदाहरण पर एक नज़र रखना. 126 00:07:02,000 --> 00:07:07,000 कोड के टुकड़े आज के बीच counter.php में 127 00:07:07,000 --> 00:07:09,000 हम निम्नलिखित पंक्ति है. 128 00:07:09,000 --> 00:07:13,000 इस फाइल के शुरू में हम नीले टिप्पणी है, जो अब के लिए शुष्क कर रहे हैं की एक गुच्छा है. 129 00:07:13,000 --> 00:07:15,000 लेकिन 13 लाइन में हम एक नई लाइन है, 130 00:07:15,000 --> 00:07:18,000 session_start, और है कि वास्तव में क्या करता है वास्तव में यह क्या कहते हैं. 131 00:07:18,000 --> 00:07:20,000 यह सत्र शुरू होता है. 132 00:07:20,000 --> 00:07:25,000 यह आपको सक्षम बनाता है कि बड़ी superglobal देखना $ का उपयोग करने के लिए, और यह कि जैसे ही आसान है. 133 00:07:25,000 --> 00:07:30,000 अब, अगर हम 16 लाइन को देखने के लिए आगे बढ़ना है, इस वेब पेज के लिए क्या करने जा रहा है के लिए बाहर आंकड़ा करने की कोशिश. 134 00:07:30,000 --> 00:07:35,000 अगर (isset ($ _SESSION ["काउंटर"]) तो आगे जाओ 135 00:07:35,000 --> 00:07:39,000 काउंटर चर में दुकान, लोअरकेस काउंटर, 136 00:07:39,000 --> 00:07:42,000 $ देखना ["काउंटर"]. 137 00:07:42,000 --> 00:07:45,000 यह करने के लिए एक स्थानीय काउंटर चर बुलाया घोषित किया जा रहा है 138 00:07:45,000 --> 00:07:48,000 जो अंदर की यह जो कुछ भी superglobal के अंदर है की एक प्रति रख रहा है 139 00:07:48,000 --> 00:07:52,000 स्थान पर सत्र बुलाया "काउंटर. 140 00:07:52,000 --> 00:07:56,000 वरना, जाहिरा तौर पर, इस छोटे से स्थानीय चर काउंटर, 0 से प्रारंभ है. 141 00:07:56,000 --> 00:08:01,000 >> लेकिन फिर कुछ लाइनों के बाद 26 नोटिस में है कि काउंटर के सत्र की प्रतिलिपि, 142 00:08:01,000 --> 00:08:06,000 इसकी कुंजी, एक नया मूल्य सौंपा है जो इसके मौजूदा मूल्य प्लस 1 है. 143 00:08:06,000 --> 00:08:09,000 संक्षेप में, इस फाइल को अद्यतन करने के किया जा रहा है 144 00:08:09,000 --> 00:08:13,000 एक काउंटर है कि अंदर सत्र superglobal की संग्रहीत है 145 00:08:13,000 --> 00:08:16,000 यह 1 से incrementing, लेकिन यह पहली बार पिछले मूल्य के एक प्रतिलिपि को बरकरार रखे हुए है 146 00:08:16,000 --> 00:08:20,000 यह एक स्थानीय चर में संग्रहीत करके काउंटर $ कहा जाता है, 147 00:08:20,000 --> 00:08:22,000 और फिर यहाँ नीचे देखते हैं क्या रहता है. 148 00:08:22,000 --> 00:08:24,000 यह पता चला है यह बहुत ज्यादा है बस HTML. 149 00:08:24,000 --> 00:08:29,000 इस पेज के नीचे हम 37 लाइन में देख रहा हूँ कि मैं इस साइट का दौरा किया 150 00:08:29,000 --> 00:08:33,000 बार के काउंटर संख्या तो, वहाँ कुछ दिलचस्प सुविधाओं यहाँ है. 151 00:08:33,000 --> 00:08:36,000 एक, यह स्पष्ट रूप से एक चर है, लेकिन यह सिर्फ डालने के लिए पर्याप्त नहीं है 152 00:08:36,000 --> 00:08:39,000 अपने HTML के पाठ्यक्रम की वजह से शरीर में काउंटर $ 153 00:08:39,000 --> 00:08:43,000 अगर यह अपने HTML PHP के बीच सिर्फ वहाँ है लगता है कि बस HTML जा रहा है. 154 00:08:43,000 --> 00:08:48,000 आप सचमुच चाहते हैं कि स्क्रीन पर मुद्रित किया काउंटर. 155 00:08:48,000 --> 00:08:51,000 >> लेकिन बजाय PHP मोड में छोड़ने के द्वारा 156 00:08:51,000 --> 00:08:55,000 वाक्यविन्यास के इस टुकड़े के साथ हम गतिशील रूप से एक मान सम्मिलित कर सकते हैं 157 00:08:55,000 --> 00:08:58,000 बहुत क्या हम साथ पिछली बार किया था के लिए इसी तरह की भावना में 158 00:08:58,000 --> 00:09:00,000 तार में मूल्यों डालने. 159 00:09:00,000 --> 00:09:04,000 वास्तव में, यह सिर्फ कुछ इस तरह कह के लिए सचमुच एक आशुलिपि संकेतन है, 160 00:09:04,000 --> 00:09:12,000 (काउंटर $) प्रिंट या printf (काउंटर% s) की तरह कुछ भी, 161 00:09:12,000 --> 00:09:14,000 या यहाँ तक कि, जैसा कि आप ऑनलाइन या पाठ्यपुस्तकों में देखा हो सकता है, 162 00:09:14,000 --> 00:09:17,000 वहाँ PHP में एक समारोह गूंज कहा जाता है 163 00:09:17,000 --> 00:09:20,000 जो एक ही बात करता है, और उन सभी को बस अब winded तरीके हैं 164 00:09:20,000 --> 00:09:25,000 कह <=? 165 00:09:25,000 --> 00:09:28,000 इस मामले में एक तुम डाल की जरूरत नहीं है 166 00:09:28,000 --> 00:09:30,000 प्रश्न चिह्न के बाद शब्द PHP. 167 00:09:30,000 --> 00:09:34,000 इस लिए आशुलिपि संकेतन है, फिर से, क्या हम सिर्फ एक पल पहले देखा 168 00:09:34,000 --> 00:09:37,000 जो कुछ मूल्य गूंज रहा है. 169 00:09:37,000 --> 00:09:39,000 >> चलो देखते हैं क्या वास्तव में इस के अंत परिणाम है. 170 00:09:39,000 --> 00:09:43,000 मुझे हमारे counter.php फ़ाइल में खत्म हो जाना, 171 00:09:43,000 --> 00:09:47,000 और हम देखेंगे कि दाऊद सिर्फ कोड के साथ खेल के द्वारा एक गलती की है. 172 00:09:47,000 --> 00:09:50,000 चलो जाना तय है जो कुछ भी वह बँधा हुआ, 173 00:09:50,000 --> 00:09:54,000 और त्रुटि के लिए वहाँ हो लगता है, 37 लाइन पर चला गया. 174 00:09:54,000 --> 00:09:59,000 इस पृष्ठ के शीर्ष के अनुसार मैं इस साइट 0 बार दौरा किया है. 175 00:09:59,000 --> 00:10:02,000 ठीक है, चलो अब आगे जाना है, और ब्राउज़र के शीर्ष पर क्लिक करें 176 00:10:02,000 --> 00:10:05,000 आइकन पुनः लोड करें, और मैं लोड करें क्लिक करें, 177 00:10:05,000 --> 00:10:12,000 और अब मैं साइट समय 1, 2, 3, 4, 5, 6, 7, 8 का दौरा किया है. 178 00:10:12,000 --> 00:10:16,000 और वास्तव में, अगर हम इस पृष्ठ के स्रोत पर देखो वास्तविक स्रोत कोड बदल रहा है, 179 00:10:16,000 --> 00:10:19,000 और किसी भी PHP के पूर्ण अभाव नोटिस, और है कि क्योंकि 180 00:10:19,000 --> 00:10:23,000 PHP कोड का मूल्यांकन किया है या सर्वर साइड व्याख्या की है, 181 00:10:23,000 --> 00:10:27,000 और तो इसका मतलब है कि PHP स्क्रिप्ट के उत्पादन में है जो अंततः ब्राउज़र के लिए भेजा है, 182 00:10:27,000 --> 00:10:31,000 जो इस मामले में कुछ कच्चे HTML और कुछ कच्चे पाठ है. 183 00:10:31,000 --> 00:10:33,000 यहाँ पर क्या हो रहा है? 184 00:10:33,000 --> 00:10:37,000 >> खैर, कोड के अपेक्षाकृत कुछ लाइनों के साथ मैं स्टोर करने के लिए कर रहा हूँ 185 00:10:37,000 --> 00:10:40,000 लगातार कई सेकंड के पाठ्यक्रम खत्म हो गया है, या अगर हम लंबे समय के लिए पर्याप्त इंतजार कर रहे थे, 186 00:10:40,000 --> 00:10:44,000 मिनट, घंटे, एक तरीका है कि HTTP बनाता में कुछ मूल्य 187 00:10:44,000 --> 00:10:47,000 स्टेटफुल लगता है के रूप में हालांकि हम बनाए रखा है 188 00:10:47,000 --> 00:10:51,000 सर्वर के लिए इस कनेक्शन है, और यह सिर्फ याद रखने के मैं क्या यह पिछली बार से कहा, 189 00:10:51,000 --> 00:10:55,000 लेकिन वास्तविकता में वहाँ जटिलता की एक पूरी गुच्छा हुड के नीचे जा रहा है 190 00:10:55,000 --> 00:10:59,000 कुकीज़ है कि PHP मुझे इस भ्रम देने के लिए सक्षम है शामिल 191 00:10:59,000 --> 00:11:02,000 इस खरीदारी की गाड़ी की तरह सुविधा. 192 00:11:02,000 --> 00:11:05,000 अभी के लिए, एक तुच्छ उदाहरण है जहाँ हम सिर्फ एक पूर्णांक भंडारण कर रहे हैं, 193 00:11:05,000 --> 00:11:08,000 लेकिन यह है कि सुविधा वापस आने के लिए महान मूल्य का हो जाएगा 194 00:11:08,000 --> 00:11:10,000 जब हम अधिक जटिल परियोजनाओं के बारे में बात शुरू, 195 00:11:10,000 --> 00:11:12,000 उन के बीच समस्या 7 सेट. 196 00:11:12,000 --> 00:11:16,000 यह आपके बहुत पिछले CS50 में सेट समस्या है. 197 00:11:16,000 --> 00:11:19,000 मुझे पता है, यह बहुत दुख की बात है, लेकिन क्या आप मिल जाएगा कि हम समाप्त करने के लिए जा रहे हैं 198 00:11:19,000 --> 00:11:22,000 वास्तव में संक्रमण द्वारा सेमेस्टर के इस भाग 199 00:11:22,000 --> 00:11:25,000 सी के संदर्भ से निश्चित रूप से PHP के संदर्भ 200 00:11:25,000 --> 00:11:27,000 लेकिन जब बहुत ही बुनियादी बातों में से कुछ का उपयोग 201 00:11:27,000 --> 00:11:29,000 के बारे में हम कुछ समय के लिए बात की है. 202 00:11:29,000 --> 00:11:33,000 >> उद्देश्य के साथ 7 pset लिए CS50 वित्त को लागू करने के लिए है, 203 00:11:33,000 --> 00:11:37,000 जो अपने याहू वित्त या Google वित्त का अपना संस्करण है 204 00:11:37,000 --> 00:11:40,000 या यहाँ तक कि जिससे आप करने की क्षमता है Etrade.com 205 00:11:40,000 --> 00:11:43,000 दिए गए प्रतीकों के लिए शेयर कीमतों में लग रही है, लेकिन उससे भी अधिक 206 00:11:43,000 --> 00:11:48,000 आप "खरीदने" और "बेचने" स्टॉक करने की क्षमता है 207 00:11:48,000 --> 00:11:51,000 कि विभिन्न शेयर बाजारों पर कारोबार कर रहे हैं क्योंकि इस घर पृष्ठ के रूप 208 00:11:51,000 --> 00:11:55,000 यहाँ से पता चलता है, जो वास्तव में किस हद तक हम शुरू कर दिया है 209 00:11:55,000 --> 00:11:59,000 आप के लिए समस्या सेट, आप एक प्रवेश फार्म है कि एक उपयोगकर्ता नाम और पासवर्ड के लिए पूछ रहा है. 210 00:11:59,000 --> 00:12:03,000 यह एक बटन सबमिट करें है, लेकिन उसके बाद, जैसा कि हम अंत में देखेंगे, 211 00:12:03,000 --> 00:12:06,000 वहाँ कुछ भी नहीं है वास्तव में हुड के नीचे पर अभी तक चल रहा है क्योंकि यह 212 00:12:06,000 --> 00:12:09,000 रहता है के लिए आप नए उपयोगकर्ताओं को रजिस्टर करने की क्षमता को लागू करने के लिए, 213 00:12:09,000 --> 00:12:12,000 शेयर खरीदने के लिए, करने के लिए शेयरों को बेचने की क्षमता, 214 00:12:12,000 --> 00:12:14,000 वास्तव में मौजूदा स्टॉक की कीमतों में देखो. 215 00:12:14,000 --> 00:12:17,000 >> और वास्तव में, यह संभव के रूप में असली दुनिया के रूप में हो सकता है क्योंकि हम किया जाएगा 216 00:12:17,000 --> 00:12:20,000 कोड का एक सा है कि आप एक समारोह के साथ की अनुमति देगा शामिल 217 00:12:20,000 --> 00:12:25,000 याहू वित्त, जिसमें शानदार उपलब्ध मुक्त डेटा बनाता क्वेरी 218 00:12:25,000 --> 00:12:31,000 स्टॉक स्टॉक प्रतीक या टिकर प्रतीक के आधार पर कीमतों की तलाश के लिए, 219 00:12:31,000 --> 00:12:34,000 और आप दिन के मौजूदा स्टॉक की कीमत वापस मिलता है. 220 00:12:34,000 --> 00:12:37,000 आप वास्तव में देख रहे हैं इस विशेष pset में डेटा होगा 221 00:12:37,000 --> 00:12:40,000 के बारे में असली दुनिया के रूप में रूप में यह इतना मिलता है कि आप वास्तव में interfacing रहे हैं कर सकते हैं 222 00:12:40,000 --> 00:12:43,000 असली दुनिया स्टॉक, वास्तविक दुनिया की कीमतों के साथ, 223 00:12:43,000 --> 00:12:47,000 और हम देखेंगे कि कितना पैसा आप शायद कर सकते हैं 224 00:12:47,000 --> 00:12:51,000 अपनी समस्या सेट के साथ खेल के अगले कई दिनों में. 225 00:12:51,000 --> 00:12:55,000 >> लेकिन हम पहले कैसे डिजाइन करने के लिए कुछ है कि निश्चित रूप से अधिक जटिल है के लिए मंच तैयार 226 00:12:55,000 --> 00:12:59,000 counter.php की तुलना में, कि Frosh आईएमएस उदाहरण के इस प्रकार अब तक किसी की तुलना में अधिक जटिल है, 227 00:12:59,000 --> 00:13:02,000 और के लिए कुछ मानदंड लागू करने के लिए यहाँ की कोशिश है कि हमें की अनुमति 228 00:13:02,000 --> 00:13:06,000 दोनों 7 pset के लिए और शायद अपने अंतिम परियोजना के लिए अगर आप कुछ वेब आधारित 229 00:13:06,000 --> 00:13:11,000 अपने कोड अच्छी तरह से संगठित रखने के लिए, अपने आप को समझदार रखने, 230 00:13:11,000 --> 00:13:15,000 और सहयोग की ओर एक कदम उठाने के लिए, चाहे CS50 अंतिम परियोजना में 231 00:13:15,000 --> 00:13:18,000 या यदि आप भविष्य में कुछ कार्यक्रम जारी रखने से परे. 232 00:13:18,000 --> 00:13:21,000 यह सामान्य डिजाइन प्रतिमान 233 00:13:21,000 --> 00:13:24,000 कंप्यूटर विज्ञान के क्षेत्र में और अधिक आम तौर पर सॉफ्टवेयर के विकास में 234 00:13:24,000 --> 00:13:27,000 MVC, मॉडल दृश्य नियंत्रक के रूप में जाना जाता है, 235 00:13:27,000 --> 00:13:30,000 और यह एक मूर्खतापूर्ण परिचित करा रहा है कि एक बहुत अच्छा विचार का वर्णन है, 236 00:13:30,000 --> 00:13:34,000 जो एक कार्यक्रम के विभिन्न पहलुओं की अलग है, 237 00:13:34,000 --> 00:13:39,000 विशेष रूप से अलग तर्क या एक वेबसाइट के व्यापार तर्क रखते हुए 238 00:13:39,000 --> 00:13:42,000 इसलिए कि कुछ भी है कि चीजों की तरह शामिल 239 00:13:42,000 --> 00:13:45,000 कार्यों बुला और डेटाबेस querying और की तरह 240 00:13:45,000 --> 00:13:48,000 अपने HTML के बीच नहीं होता 241 00:13:48,000 --> 00:13:51,000 लेकिन बजाय अलग - अलग फ़ाइलों में, और वास्तव में, इस एक फ़ाइल 242 00:13:51,000 --> 00:13:54,000 आम तौर पर है कि आप नियंत्रक बुलाया है 243 00:13:54,000 --> 00:13:56,000 है कि वास्तव में आपरेशन के पीछे दिमाग, और हम एक उदाहरण देखेंगे 244 00:13:56,000 --> 00:13:58,000 बस एक पल में इस का. 245 00:13:58,000 --> 00:14:01,000 >> एक मॉडल है जो कोड प्रोग्रामिंग है 246 00:14:01,000 --> 00:14:05,000 कि अपने डेटाबेस के लिए बात कर रही है, कि याहू वित्त और इस तरह बात करती है, 247 00:14:05,000 --> 00:14:08,000 और फिर वहाँ वी MVC में देखा गया है, 248 00:14:08,000 --> 00:14:11,000 सामान के सभी कि सौंदर्यशास्त्र फ़ाइलें है कि वास्तव में होते हैं से संबंधित है 249 00:14:11,000 --> 00:14:14,000 अपने HTML, शायद अपने सीएसएस और पसंद है. 250 00:14:14,000 --> 00:14:17,000 यहाँ विचार है, के रूप में इस तस्वीर से पता चलता है, कि नियंत्रक 251 00:14:17,000 --> 00:14:21,000 फ़ाइल है, के रूप में हम जल्द ही देख सकते हैं और के रूप में आप विशेष रूप से 7 pset में देखेंगे, 252 00:14:21,000 --> 00:14:24,000 कि दुनिया अपने वेब ब्राउज़र के माध्यम से बात करती है. 253 00:14:24,000 --> 00:14:27,000 कि फाइल जो सार्वजनिक इंटरनेट पर दौरा किया जाता है, 254 00:14:27,000 --> 00:14:30,000 लेकिन संभवतः एक मॉडल नियंत्रक से बात करती है, 255 00:14:30,000 --> 00:14:34,000 जो एक या एक से अधिक अन्य फ़ाइलों कि डेटा से संबंधित कोड शामिल है, 256 00:14:34,000 --> 00:14:37,000 कोड डेटाबेस और तरह से संबंधित है, और फिर इसे करने के लिए वार्ता 257 00:14:37,000 --> 00:14:40,000 नियंत्रक एक या एक से अधिक अन्य विचारों के रूप में जाना जाता फाइलें, 258 00:14:40,000 --> 00:14:43,000 जो एक वेब पेज के सौंदर्यशास्त्र, एक तरह की टेम्पलेट्स हैं, 259 00:14:43,000 --> 00:14:47,000 कि निवेश के रूप में कुछ डेटा ले सकता है, लेकिन दिन के अंत में 260 00:14:47,000 --> 00:14:50,000 एक दृश्य के अंदर ही तर्क है कि डेटा का प्रतिपादन किया जाना चाहिए, 261 00:14:50,000 --> 00:14:53,000 एक पाश पर iterating और वास्तव में बाहर कुछ थूकना 262 00:14:53,000 --> 00:14:56,000 HTML आधारित गायन एक पीडीएफ की तरह उसके या कुछ भी. 263 00:14:56,000 --> 00:14:59,000 >> MVC के बारे में अच्छी बात यह है कि आप अलग अलग विचार हैं कर सकते हैं 264 00:14:59,000 --> 00:15:02,000 युक्ति के प्रकार, फ़ाइल है कि आप वास्तव में प्रारूप के प्रकार के आधार पर पर आधारित 265 00:15:02,000 --> 00:15:04,000 उपयोगकर्ता को दिखाना चाहते हैं. 266 00:15:04,000 --> 00:15:10,000 चलो कुछ उदाहरण उत्तरोत्तर अधिक जटिल और अच्छी तरह से डिजाइन पर एक नज़र रखना 267 00:15:10,000 --> 00:15:13,000 0 यहाँ संस्करण के साथ शुरू करने से पहले. 268 00:15:13,000 --> 00:15:16,000 मुझे आगे जाना है और हमारे MVC निर्देशिका में आज खोल 269 00:15:16,000 --> 00:15:21,000 एक फ़ाइल 0 निर्देशिका में index.php कहा जाता है. 270 00:15:21,000 --> 00:15:26,000 सूचना यह एक सुपर सरल और बहुत underwhelming वेबसाइट 271 00:15:26,000 --> 00:15:29,000 कि CS50 के लिए एक होमपेज में से 0 संस्करण की तरह है, 272 00:15:29,000 --> 00:15:32,000 नोटिस और कैसे हम व्याख्यान के लिए एक कड़ी है, हम सिलेबस के लिए एक कड़ी है, 273 00:15:32,000 --> 00:15:35,000 और अगर मैं व्याख्यान नोटिस कड़ी का अनुसरण कि यूआरएल 274 00:15:35,000 --> 00:15:39,000 ऊपर तक lectures.php के लिए बदलने जा रहा है. 275 00:15:39,000 --> 00:15:44,000 अगर मैं तो 1 सप्ताह के नोटिस के लिए लिंक का पालन करें कि week1.php URL परिवर्तन. 276 00:15:44,000 --> 00:15:46,000 वहाँ एक काफी सरल सौपानिक संरचना यहाँ किया जा रहा है. 277 00:15:46,000 --> 00:15:49,000 >> चलो यह कैसे बाहर रखी है हुड के नीचे एक त्वरित देखो, 278 00:15:49,000 --> 00:15:53,000 और वास्तव में, अगर मैं index.php में देखो यह बहुत आसान है. 279 00:15:53,000 --> 00:15:57,000 वास्तव में, हालांकि मैं यह एक PHP फ़ाइल कहा जाता है वहाँ कोई वास्तविक प्रोग्रामिंग कोड है. 280 00:15:57,000 --> 00:16:01,000 वहाँ एक टिप्पणी है कि मैं PHP में यहाँ सिर्फ इतना लिखा उपयोगकर्ता अंत नहीं इसे देखने के है. 281 00:16:01,000 --> 00:16:05,000 बेशक, कुछ के रूप में पहले है कि PHP टैग के बीच में है 282 00:16:05,000 --> 00:16:08,000 हो जाता है व्याख्या की है, भले ही यह एक टिप्पणी है, और एक टिप्पणी की व्याख्या करने के लिए 283 00:16:08,000 --> 00:16:11,000 बस का अर्थ है यह दिन के अंत में दूर फेंक नहीं है और वास्तव में 284 00:16:11,000 --> 00:16:15,000 ब्राउज़र के लिए भेज तो यहाँ सब कुछ सिर्फ सौंदर्यशास्त्र है. 285 00:16:15,000 --> 00:16:20,000 अगर मैं ऊपर खुला इसी तरह lectures.php यह अभी भी एक कठिन कोडित फाइल है. 286 00:16:20,000 --> 00:16:23,000 यह करने के लिए कुछ कहा जा होता php. 287 00:16:23,000 --> 00:16:27,000 लेकिन यह वास्तव में सिर्फ html, और week1.php, week2.php. 288 00:16:27,000 --> 00:16:31,000 इसी तरह बस मार्कअप रहे हैं, तो इस डिजाइन की कमियों का एक गुच्छा है. 289 00:16:31,000 --> 00:16:33,000 एक, यह कॉपी / पेस्ट की एक बड़ी राशि है. 290 00:16:33,000 --> 00:16:37,000 हालांकि केवल बात यह है कि इन फाइलों में बदल रहा है unordered सूची है, 291 00:16:37,000 --> 00:16:41,000 li टैग, मैं फिर भी डॉक्टर प्रकार, HTML, सिर, 292 00:16:41,000 --> 00:16:44,000 शीर्षक, शरीर के करीब, करीब HTML और अधिक 293 00:16:44,000 --> 00:16:47,000 हर एक फ़ाइल में है, जिसका मतलब है कि अगर मैं कभी चाहता पुनर्गठन करने के लिए 294 00:16:47,000 --> 00:16:50,000 इस वेब पेज या यह restylize मैं में जाना है और बदलने के लिए है 295 00:16:50,000 --> 00:16:54,000 इन सभी स्वयं या कुछ भारी फ़ाइलों को खोजने के लिए और जगह. 296 00:16:54,000 --> 00:17:01,000 >> चलो यहाँ 1 संस्करण में एक चालाक, अब सोच डिजाइन की ओर एक कदम ले 297 00:17:01,000 --> 00:17:04,000 के रूप में प्रति जिससे मुझे पढ़ा है कि हम तो शामिल है कि आप के साथ साथ खेल सकते हैं 298 00:17:04,000 --> 00:17:07,000 इन अधिक घर नोटिस में इत्मीनान से है कि हम यहाँ है 299 00:17:07,000 --> 00:17:10,000 संस्करण 1 में फ़ाइलों का एक इस साइट के सारांश, 300 00:17:10,000 --> 00:17:13,000 और ऐसा लगता है कि मैं इसे ले लिया है पर अपने आप को बाहर कारक 301 00:17:13,000 --> 00:17:17,000 कुछ आम कोड, header.php और footer.php. 302 00:17:17,000 --> 00:17:20,000 ठीक है, क्या उन में से 1 के अंदर है पर एक नज़र रखना. 303 00:17:20,000 --> 00:17:23,000 Header.php परिचित लग रहा है, 304 00:17:23,000 --> 00:17:26,000 लेकिन यह जहां काट नोटिस? 305 00:17:26,000 --> 00:17:30,000 सही लाइन 19 के बाद, कि है कि सब कुछ सामान्य था 306 00:17:30,000 --> 00:17:33,000 फ़ाइलों index.php, lectures.php से, 307 00:17:33,000 --> 00:17:36,000 Week1 और पिछले उदाहरण से week2.php. 308 00:17:36,000 --> 00:17:40,000 मैंने क्या किया था कॉपी और कटौती सब कुछ है कि उन सभी फ़ाइलों को आम था, 309 00:17:40,000 --> 00:17:44,000 यह एक अलग हेडर फाइल में डाल दिया, और इसी तरह footer.php में 310 00:17:44,000 --> 00:17:48,000 मैं एक ही सिद्धांत लागू किया जिसके तहत केवल दिलचस्प लाइनों 311 00:17:48,000 --> 00:17:52,000 footer.php में इन दो, शरीर के करीब और करीब HTML हैं. 312 00:17:52,000 --> 00:17:55,000 >> लेकिन क्या अब इस का मतलब है कि नए संस्करण में 313 00:17:55,000 --> 00:17:59,000 index.php नोटिस का कितना सरल इसे प्राप्त कर सकते हैं. 314 00:17:59,000 --> 00:18:02,000 दी, थोड़ा अधिक गुप्त देख रहे हैं, थोड़ा कम एक सहज ज्ञान युक्त 315 00:18:02,000 --> 00:18:06,000 ऊपर से नीचे तक का पालन करें, लेकिन मेरे भगवान, कि अतिरेक के सभी अब चला गया है. 316 00:18:06,000 --> 00:18:10,000 हम बुलाया सचमुच ऊपर ऊपर की आवश्यकता होती है एक PHP समारोह का उपयोग करने की आवश्यकता है, 317 00:18:10,000 --> 00:18:15,000 जो बहुत याद ताजा करती है, याद है, सी # तंत्र में शामिल हैं. 318 00:18:15,000 --> 00:18:17,000 हम शीर्ष पर header.php की आवश्यकता. 319 00:18:17,000 --> 00:18:20,000 हम तल पर footer.php की आवश्यकता होती है, और केवल एक चीज है कि अलग है 320 00:18:20,000 --> 00:18:25,000 या इस फाइल के बारे में विशेष सामग्री है कि यह करने के लिए अद्वितीय होने का मतलब है है. 321 00:18:25,000 --> 00:18:29,000 अगर मैं तो कहते हैं, में lectures.php जाना, एक ही सिद्धांत लागू होता है. 322 00:18:29,000 --> 00:18:32,000 फिर, शीर्ष ऊपर कुछ टिप्पणी की, लेकिन फिर मैं शीर्षक की आवश्यकता होती है, पाद लेख की आवश्यकता होती है, 323 00:18:32,000 --> 00:18:35,000 और बीच में यह केवल सामग्री है कि वास्तव में बदल गया है. 324 00:18:35,000 --> 00:18:38,000 और अगर हम 1 सप्ताह और सप्ताह में देखा 2 हम देखना चाहते हैं 325 00:18:38,000 --> 00:18:42,000 कि एक ही सिद्धांत लागू किया गया था. 326 00:18:42,000 --> 00:18:44,000 ठीक है, हम काफी वहाँ नहीं कर रहे हैं. 327 00:18:44,000 --> 00:18:48,000 >> चलो 2 संस्करण पर एक नज़र, जो एक समान संरचना है, 328 00:18:48,000 --> 00:18:50,000 लेकिन अब नोटिस मैं कुछ और शुरू की है. 329 00:18:50,000 --> 00:18:53,000 लाइन 10 में मैं helpers.php शुरू की है, 330 00:18:53,000 --> 00:18:55,000 जो जाहिरा तौर पर सहायक कार्यों में शामिल है. 331 00:18:55,000 --> 00:18:58,000 एक सहायक समारोह आम तौर पर एक समारोह में अपेक्षाकृत कम है 332 00:18:58,000 --> 00:19:01,000 कि आप के लिए आप विभिन्न स्थानों में बाहर मदद लिखते हैं, 333 00:19:01,000 --> 00:19:04,000 और देखते हैं क्या helpers.php के अंदर है. 334 00:19:04,000 --> 00:19:07,000 इस मामले में, ऐसा लगता है जैसे कि यह 2 कार्य किया है. 335 00:19:07,000 --> 00:19:10,000 हमारे घन उदाहरण के साथ दूसरे दिन से याद 336 00:19:10,000 --> 00:19:13,000 आप PHP में अपने खुद के कार्यों को परिभाषित कर सकते हैं, और अब मैं क्या किया है मैंने 337 00:19:13,000 --> 00:19:17,000 परिभाषित कार्यों पाद लेख प्रस्तुत करना और शीर्ष लेख प्रस्तुत करना करने के लिए कहा जाता है, 338 00:19:17,000 --> 00:19:21,000 जो पहले के एक पैरामीटर लेता डेटा कहा जाता है, 339 00:19:21,000 --> 00:19:25,000 डिफ़ॉल्ट जिसका मूल्य एक खाली सरणी, वहाँ के रूप में सुझाव दिया गया है, 340 00:19:25,000 --> 00:19:29,000 और हम वास्तव में इस PHP के नवीनतम संस्करण में लिख सकते हैं और भी अधिक succinctly 341 00:19:29,000 --> 00:19:32,000 खुले वर्ग कोष्ठक कह कर, वर्ग कोष्ठक में बंद कर दिया. 342 00:19:32,000 --> 00:19:35,000 यह 0 आकार के एक खाली सरणी, लेकिन फिर भी एक सरणी का मतलब है. 343 00:19:35,000 --> 00:19:38,000 >> इस निकालने के समारोह में कहा कि एक छोटे से विशेष है 344 00:19:38,000 --> 00:19:41,000 यह क्या करता है यह अपने तर्क के रूप में एक साहचर्य सरणी लेता है 345 00:19:41,000 --> 00:19:45,000 कि 0 या अधिक महत्वपूर्ण मूल्य जोड़े हैं, और यदि आप foo की कुंजी है 346 00:19:45,000 --> 00:19:48,000 और निकालने समारोह बार के एक मूल्य 347 00:19:48,000 --> 00:19:51,000 ऐसी स्थिति में अब 11 लाइन के रूप में बनाता है, 348 00:19:51,000 --> 00:19:57,000 आप एक स्थानीय चर $ foo मूल्य जिसका बार है कहा जाता है. 349 00:19:57,000 --> 00:19:59,000 और, यदि आप डेटा सरणी में अधिक कुंजी और मूल्यों था 350 00:19:59,000 --> 00:20:03,000 इसी तरह वे स्थानीय दायरे में निकाला जाएगा 351 00:20:03,000 --> 00:20:06,000 नाम या अंतरिक्ष इतना है कि footer.php और 352 00:20:06,000 --> 00:20:09,000 यहाँ नीचे एक ही विचार है कि header.php 353 00:20:09,000 --> 00:20:12,000 उन चर के लिए उपयोग किया है. 354 00:20:12,000 --> 00:20:15,000 वास्तव में, मुझे फिर से खोलने के header.php 355 00:20:15,000 --> 00:20:18,000 और अब यह क्या इस संस्करण में की तरह लग रहा है की ओर ध्यान आकर्षित. 356 00:20:18,000 --> 00:20:22,000 >> बजाय हर पृष्ठ के लिए शीर्षक के रूप में कड़ी मेहनत CS50 कोडिंग 357 00:20:22,000 --> 00:20:24,000 नोटिस गतिशीलता है कि अब संभव है. 358 00:20:24,000 --> 00:20:29,000 लाइन में 5 मैं एक शीर्षक चर गूंज रहा है, 359 00:20:29,000 --> 00:20:34,000 लेकिन पहले मैं एक htmlspecialchars बुलाया समारोह है कि शीर्षक चर गुजर रहा हूँ. 360 00:20:34,000 --> 00:20:38,000 किसी समारोह में भाग लेने के लिए एक बेवकूफ नाम, लंबे समय के रूप में यह है, लेकिन यह सच है कि वह क्या कहते हैं. 361 00:20:38,000 --> 00:20:41,000 यह सुनिश्चित करता है कि कोई विशेष वर्ण 362 00:20:41,000 --> 00:20:46,000 कि स्ट्रिंग में पारित किया गया है में ठीक से HTML बच रहे हैं. 363 00:20:46,000 --> 00:20:49,000 यह वास्तव में कुछ से बचने का एक तरीका एक क्रॉस साइट स्क्रिप्टिंग हमले बुलाया है 364 00:20:49,000 --> 00:20:52,000 किसी जिससे दुर्भावनापूर्ण रूप से गलती से या कर सकते हैं 365 00:20:52,000 --> 00:20:55,000 अपनी वेबसाइट में अपने खुद के HTML इंजेक्षन 366 00:20:55,000 --> 00:20:59,000 कुछ फार्म में चिपकाने के द्वारा, उदाहरण के लिए, 367 00:20:59,000 --> 00:21:02,000 कुछ है कि आप काफी नहीं है, विशेष रूप से जावास्क्रिप्ट कोड की उम्मीद कर रहे थे, 368 00:21:02,000 --> 00:21:05,000 के रूप में हम के बारे में एक सप्ताह या दो बार में बात करेंगे. 369 00:21:05,000 --> 00:21:08,000 >> अब यह header.php, यह एक दृश्य है 370 00:21:08,000 --> 00:21:12,000 इस अर्थ में है कि यह आप aesthetically कुछ डेटा सेट की सामग्री को देखने की अनुमति देता है. 371 00:21:12,000 --> 00:21:14,000 लेकिन और अधिक विशेष रूप से, यह एक टेम्पलेट है. 372 00:21:14,000 --> 00:21:19,000 यह एक खाका की तरह अब हम क्या हर पृष्ठ के शीर्षक की तरह देखने के लिए करना चाहते हैं, 373 00:21:19,000 --> 00:21:23,000 लेकिन वहाँ कुछ गतिशीलता में है कि हम शीर्षक गतिशील सम्मिलित करने के लिए करना चाहते हैं 374 00:21:23,000 --> 00:21:26,000 शीर्षक चर के आधार पर 375 00:21:26,000 --> 00:21:30,000 कि जब हम फोन फिर से निकाला गया था, 376 00:21:30,000 --> 00:21:33,000 सौंपनेवाला हैडर समारोह. 377 00:21:33,000 --> 00:21:36,000 अब, अगर हम पाद लेख में प्रस्तुत करना देखा, वहाँ वास्तव में सही है कि अब ज्यादा इस्तेमाल नहीं 378 00:21:36,000 --> 00:21:40,000 क्योंकि footer.php में वहाँ जो भी कोई गतिशीलता है. 379 00:21:40,000 --> 00:21:43,000 वहाँ हो सकता है, लेकिन फिलहाल यह 2 टैग के एक कठिन कोडित सूची सकता है, 380 00:21:43,000 --> 00:21:46,000 लेकिन एक ही विचार पर लागू होता है, इतना है कि वास्तव में क्यों पता चलता है 381 00:21:46,000 --> 00:21:49,000 हम समय बर्बाद सौंपनेवाला हैडर और एक प्रस्तुत करना पाद लेख समारोह होने? 382 00:21:49,000 --> 00:21:52,000 मुझे बजाय अब संस्करण 3 में जाना, 383 00:21:52,000 --> 00:21:56,000 और सहायकों में 3 संस्करण में मैं करने के लिए यह और भी अधिक को आसान बनाने में करने का फैसला किया. 384 00:21:56,000 --> 00:21:58,000 >> चलो मुझे एक सौंपनेवाला समारोह है. 385 00:21:58,000 --> 00:22:02,000 मुझे यह एक और तर्क ले, इस समय टेम्पलेट कहा जाता है, 386 00:22:02,000 --> 00:22:05,000 जो एक टेम्पलेट के नाम होने का मतलब है, 387 00:22:05,000 --> 00:22:11,000 और फिर मैं ढिठाई से उस चर के मूल्य के लिए. php जुटना होगा, 388 00:22:11,000 --> 00:22:17,000 और फिर अगर यह foo.php bar.php, या header.php और footer.php मौजूद है, 389 00:22:17,000 --> 00:22:20,000 तो मैं आगे जाना है और चर डेटा निकालने के लिए जा रहा हूँ 390 00:22:20,000 --> 00:22:23,000 और फिर उस पथ की आवश्यकता है. 391 00:22:23,000 --> 00:22:29,000 दूसरे शब्दों में, इस का उपयोग करने के लिए अब, अगर मैं index.php को खोलने के लिए 392 00:22:29,000 --> 00:22:32,000 सूचना है कि मैं सौंपनेवाला हैडर अब फोन नहीं करते. 393 00:22:32,000 --> 00:22:36,000 मैं बस से प्रस्तुत करना कहते हैं, लेकिन मैं शीर्ष लेख की एक उद्धृत मूल्य में पारित 394 00:22:36,000 --> 00:22:39,000 यह स्पष्ट करने के जो टेम्पलेट मैं वास्तव में लोड करने के लिए करना चाहते हैं. 395 00:22:39,000 --> 00:22:41,000 >> तो यहाँ नोटिस कि मैं क्या कर रहा हूँ. 396 00:22:41,000 --> 00:22:44,000 मैं गतिशील शीर्षक की एक चाबी में गुजर रहा हूँ, 397 00:22:44,000 --> 00:22:47,000 CS50 के एक मूल्य है, और यह भी, जैसा कि हम पहले देखा था, 398 00:22:47,000 --> 00:22:51,000 PHP के नवीनतम संस्करण में अधिक संक्षिप्त किया जा सकता है 399 00:22:51,000 --> 00:22:54,000 जहां मैं वर्ग कोष्ठक के साथ सरणी समारोह की जगह ले सकता है, 400 00:22:54,000 --> 00:22:57,000 जो मैं प्रस्ताव भी अधिक पठनीय और निश्चित रूप से है 401 00:22:57,000 --> 00:22:59,000 एक छोटे से टाइप करने के लिए आसान है. 402 00:22:59,000 --> 00:23:02,000 और जाहिर है, नीचे में प्रस्तुत करना पाद लेख फोन के साथ, 403 00:23:02,000 --> 00:23:05,000 हम सभी में एक दूसरा तर्क में गुजर रहा है, कोई साहचर्य सरणी परेशान नहीं है, 404 00:23:05,000 --> 00:23:07,000 क्योंकि वहाँ कुछ भी नहीं है कि पाद लेख के अंदर गतिशील है. 405 00:23:07,000 --> 00:23:10,000 यह सिर्फ HTML के लिए कुछ करीबी टैग है. 406 00:23:10,000 --> 00:23:14,000 अच्छा, हम वास्तव में बातें यहाँ सफाई की दिशा में कदम उठा रहे हैं, 407 00:23:14,000 --> 00:23:17,000 लेकिन मुझे 2 अंतिम उदाहरण खुला. 408 00:23:17,000 --> 00:23:21,000 यह एक, 4 नंबर, सूचना है कि मैं एक सचेत निर्णय कर लिया है अब 409 00:23:21,000 --> 00:23:26,000 अंत में मेरी फाइल करने के लिए कुछ पदानुक्रम का उपयोग करके पिछले उदाहरण पर सुधार. 410 00:23:26,000 --> 00:23:29,000 >> सूचना है कि इस सारांश में, यह मेरे पढ़ने में, मैं शुरू की है 411 00:23:29,000 --> 00:23:32,000 एक निर्देशिका और एक नमूना निर्देशिका शामिल 412 00:23:32,000 --> 00:23:35,000 जिसका सामग्री बातें मैं शामिल करना चाहते हो जा रहे हैं 413 00:23:35,000 --> 00:23:38,000 और टेम्पलेट्स कि मैं करने के लिए प्रस्तुत करना चाहते हैं, क्रमशः. 414 00:23:38,000 --> 00:23:42,000 यह सच है कि मुझे गुदा किया जा रहा है और चीजों को साफ रखने की कोशिश कर रहा है, 415 00:23:42,000 --> 00:23:45,000 संबंधित फ़ाइलों को एक साथ रखने के लिए, लेकिन अंत परिणाम 416 00:23:45,000 --> 00:23:48,000 है कि अब हम एक थोड़ा tidier सेटअप है, लेकिन हम अब याद है 417 00:23:48,000 --> 00:23:51,000 उदाहरण के लिए, index.php, 418 00:23:51,000 --> 00:23:55,000 जब हम फ़ाइल helpers.php की आवश्यकता होती है 419 00:23:55,000 --> 00:24:01,000 हम अब यह आवश्यकता होती है माध्यम / helpers.php है 420 00:24:01,000 --> 00:24:06,000 के बजाय सिर्फ helpers.php कह रही है क्योंकि अब यह वास्तव में एक उप निर्देशिका में है. 421 00:24:06,000 --> 00:24:09,000 अब, एक अलग रूप में, आप इन उदाहरणों और कुछ अन्य लोगों में देखेंगे 422 00:24:09,000 --> 00:24:11,000 आवश्यकता की तरह काम करता है, एक बार की आवश्यकता है. 423 00:24:11,000 --> 00:24:15,000 वहाँ वास्तव में एक समारोह में ही शामिल कहा जाता है, और वे सब थोड़ा अलग व्यवहार किया है. 424 00:24:15,000 --> 00:24:18,000 यहाँ मैं का कहना है कि एक बार की आवश्यकता के लिए सुपर स्पष्ट कर दूं कि मैं केवल उन चाहते 425 00:24:18,000 --> 00:24:20,000 सहायकों को अपने प्रोजेक्ट में एक बार भी शामिल हैं. 426 00:24:20,000 --> 00:24:24,000 लेकिन अगर मैं सावधान कर रहा हूँ और अगर मैं वास्तव में अपने तर्क के माध्यम से ठीक से सोच रहा हूँ 427 00:24:24,000 --> 00:24:27,000 यह भी सिर्फ कहने के लिए पर्याप्त ऊपर शीर्ष की आवश्यकता होती है चाहिए 428 00:24:27,000 --> 00:24:31,000 इतने लंबे समय के रूप में मैं अपने आप को गलती से है कि एक ही फाइल में कहीं नहीं की आवश्यकता नहीं है. 429 00:24:31,000 --> 00:24:34,000 वास्तव में, यह थोड़ा और अधिक कुशल बातें तो कर रहे हैं का उपयोग करने का एक तरीका है 430 00:24:34,000 --> 00:24:38,000 एक बार की आवश्यकता होती है, तो मैं इसे नीचे ट्रिम करने के लिए बस की आवश्यकता होगी. 431 00:24:38,000 --> 00:24:40,000 >> चलो एक कदम आगे ले. 432 00:24:40,000 --> 00:24:46,000 अब यह आखिरी उदाहरण, 5 संस्करण, एक भी क्लीनर फ़ोल्डर पदानुक्रम है. 433 00:24:46,000 --> 00:24:50,000 सूचना मैं यहाँ क्या किया है प्रति मुझे इस अंतिम संस्करण में पढ़ा 434 00:24:50,000 --> 00:24:54,000 अब मैं अपने HTML निर्देशिका है, जो मैं यह सब समय पड़ा है, 435 00:24:54,000 --> 00:24:58,000 लेकिन वहाँ के अंदर अब केवल index.php lectures.php, है, 436 00:24:58,000 --> 00:25:01,000 week1.php और week2.php. 437 00:25:01,000 --> 00:25:05,000 भी शामिल है निर्देशिका अब HTML निर्देशिका के बगल में रहता है, 438 00:25:05,000 --> 00:25:08,000 तो एक भाई के रूप में एक ही स्तर पर है, तो बात करो. 439 00:25:08,000 --> 00:25:10,000 तो टेम्पलेट्स फ़ोल्डर करता. 440 00:25:10,000 --> 00:25:14,000 यहाँ कुंजी takeaway है मैं थोड़ा और अधिक संरचना शुरू की है, 441 00:25:14,000 --> 00:25:17,000 लेकिन अब प्रमुख विशेषता है कि केवल फाइल है 442 00:25:17,000 --> 00:25:21,000 कि वेब सुलभ, सार्वजनिक रूप से पता होना चाहिए 443 00:25:21,000 --> 00:25:25,000 सार्वजनिक इंटरनेट पर एक यूआरएल द्वारा अपने HTML निर्देशिका में हैं. 444 00:25:25,000 --> 00:25:28,000 >> इस बीच अन्य, फाइलें, helpers.php, footer.php, 445 00:25:28,000 --> 00:25:32,000 header.php, कि यकीनन शायद अधिक संवेदनशील होते हैं, 446 00:25:32,000 --> 00:25:35,000 शायद सहायकों वास्तव में कुछ उपयोगकर्ता नाम और पासवर्ड या कुछ बौद्धिक 447 00:25:35,000 --> 00:25:39,000 खदान की संपत्ति हैं, के कार्यों मैं वास्तव में दुनिया को देखने के लिए नहीं करना चाहते हैं, यहां तक ​​कि अगर गलती से. 448 00:25:39,000 --> 00:25:45,000 यह सार्वजनिक HTML निर्देशिका के बाहर रखने के लिए अच्छा अभ्यास है 449 00:25:45,000 --> 00:25:48,000 किसी भी फाइल है कि खुद की जरूरत नहीं सार्वजनिक होना. 450 00:25:48,000 --> 00:25:51,000 आप सभी को इस मामले में क्या करना है जब में देख रहे हैं, उदाहरण के लिए, है, 451 00:25:51,000 --> 00:25:55,000 HTML निर्देशिका index.php फ़ाइल, 452 00:25:55,000 --> 00:25:58,000 नोटिस हम सिर्फ एक छोटे से अधिक सावधान रहना है जब आवश्यकता होती है 453 00:25:58,000 --> 00:26:00,000 या एक बार इस फ़ाइल की आवश्यकता है. 454 00:26:00,000 --> 00:26:03,000 मैं पहले करने की जरूरत है .. मूल निर्देशिका पर जाना, 455 00:26:03,000 --> 00:26:06,000 तो / / helpers.php शामिल 456 00:26:06,000 --> 00:26:12,000 पीठ में नीचे गोता फ़ाइल है कि मैं के बारे में परवाह है. 457 00:26:12,000 --> 00:26:16,000 >> MVC पर तो कोई सवाल 458 00:26:16,000 --> 00:26:20,000 या यह अपेक्षाकृत सरल उसके अवतार? 459 00:26:20,000 --> 00:26:23,000 और मुझे स्पष्ट है कि हम पर काफी एक सा ध्यान केंद्रित 460 00:26:23,000 --> 00:26:27,000 यहाँ वी, विचारों और इन खाकों के बाहर फैक्टरिंग. 461 00:26:27,000 --> 00:26:30,000 हम वास्तव में से एम सी प्रतिष्ठित नहीं है अभी. 462 00:26:30,000 --> 00:26:33,000 वास्तव में, वहाँ वास्तव में कोई एम यहाँ है, और यहां तक ​​कि हमारे सी, 463 00:26:33,000 --> 00:26:36,000 नियंत्रक, सच है कि सब कुछ नहीं कर रही है, लेकिन आप बहुत अधिक मिल जाएगा 464 00:26:36,000 --> 00:26:39,000 दोनों MVC से उन 2 पत्र के साथ परिचित, 465 00:26:39,000 --> 00:26:43,000 या यों कहें, तुम सी के साथ बहुत अधिक परिचित मिल जाएगा 466 00:26:43,000 --> 00:26:49,000 समस्या 7 सेट है, इसलिए वहाँ क्षितिज पर उस से अधिक के लिए MVC में. 467 00:26:49,000 --> 00:26:51,000 प्रश्न? 468 00:26:51,000 --> 00:26:53,000 वास्तव में यहाँ कोई नहीं है. 469 00:26:53,000 --> 00:26:57,000 >> ठीक है, चलो अब आज के लिए दूसरे और अंतिम विषय पर कदम. 470 00:26:57,000 --> 00:27:00,000 यह एक डेटाबेस की शुरूआत है. 471 00:27:00,000 --> 00:27:03,000 इस बिंदु तक हम भंडारण डेटा के कुछ तरीके लिया है. 472 00:27:03,000 --> 00:27:05,000 हम चर का उपयोग किया है. 473 00:27:05,000 --> 00:27:08,000 वापस हमारे सी फाइल में, मैं / हे चर्चा हम पाठ फ़ाइलों का उपयोग शुरू कर दिया है 474 00:27:08,000 --> 00:27:11,000 और fprintf तरह फ़ाइलों का उपयोग कर, और फिर हम भी शुरू 475 00:27:11,000 --> 00:27:14,000 CSV के बारे में बात कर एक छोटा सा, अल्पविराम से अलग मान फ़ाइलें, 476 00:27:14,000 --> 00:27:17,000 तो इन सब के हमें डेटा संग्रहीत की अनुमति दी 477 00:27:17,000 --> 00:27:19,000 या तो गैर लगातार या लगातार. 478 00:27:19,000 --> 00:27:23,000 लेकिन फिर भी CSVs वास्तव में खोज करने के लिए अनुकूल नहीं हैं 479 00:27:23,000 --> 00:27:25,000 और डालने और हटाने. 480 00:27:25,000 --> 00:27:28,000 यह वास्तव में सिर्फ एक बेवकूफ पाठ फ़ाइल अल्पविराम के द्वारा अलग है 481 00:27:28,000 --> 00:27:30,000 पंक्ति से पंक्ति से पंक्ति से पंक्ति, इसलिए यदि आप चाहते हैं 482 00:27:30,000 --> 00:27:32,000 खोज अच्छा तुम कर सकते है कि फ़ाइल वास्तव में रैखिक खोज है. 483 00:27:32,000 --> 00:27:34,000 आप फ़ाइल के शीर्ष पर शुरू कर दिया है, में पूरी बात पढ़ें, 484 00:27:34,000 --> 00:27:36,000 और ब्याज की कुछ मूल्य के लिए देखो. 485 00:27:36,000 --> 00:27:39,000 यदि आप इसे में सम्मिलित करना चाहते हैं आप एक ही बात करना है, 486 00:27:39,000 --> 00:27:41,000 इसे खत्म पुनरावृति और एक खास जगह में डालने, 487 00:27:41,000 --> 00:27:45,000 और वास्तव में, आप खोज तर्क अपने आप के सभी करना है. 488 00:27:45,000 --> 00:27:49,000 >> आप एक CSV फ़ाइल पर चालाक मिलान जब तक आप अपने आप को कोड लिखने के पैटर्न नहीं कर सकते. 489 00:27:49,000 --> 00:27:51,000 आप एक CSV फ़ाइल के छानने का काम नहीं कर सकते हैं 490 00:27:51,000 --> 00:27:53,000 जब तक आप अपने आप को कोड लिखें. 491 00:27:53,000 --> 00:27:56,000 यह अच्छा नहीं होगा अगर किसी और के सभी प्रयास में डाल दिया 492 00:27:56,000 --> 00:27:59,000 वास्तव में आसान है और आसान प्रविष्टि खोज 493 00:27:59,000 --> 00:28:01,000 और विलोपन और अद्यतन और इतना आगे? 494 00:28:01,000 --> 00:28:04,000 यह वास्तव में एक डेटाबेस क्या है. 495 00:28:04,000 --> 00:28:07,000 एसक्यूएल, संरचित क्वेरी भाषा है, अभी तक एक और भाषा है 496 00:28:07,000 --> 00:28:10,000 कि हम आज यहां शुरू कर रहे हैं, लेकिन यह भी काफी सुलभ है, 497 00:28:10,000 --> 00:28:13,000 और क्या हम वास्तव में करने जा रहे हैं सिर्फ यह है बाहर सबसे प्रमुख के कुछ बांधना 498 00:28:13,000 --> 00:28:16,000 विशेषताओं है कि तो 7 pset के लिए, और अगर आप कुछ वेब आधारित, 499 00:28:16,000 --> 00:28:19,000 अपने अंतिम परियोजना है, आप अपने आप को अभिव्यक्त करने की क्षमता है 500 00:28:19,000 --> 00:28:22,000 डेटा प्रश्नों के मामले में. 501 00:28:22,000 --> 00:28:25,000 आप के लिए एक छोटे से स्टोर करने की क्षमता या डेटा का एक बहुत है 502 00:28:25,000 --> 00:28:28,000 एक बहुत अधिक संरचित तरीका है कि दिन के अंत में 503 00:28:28,000 --> 00:28:32,000 अपने जीवन को आसान बनाने के क्योंकि एसक्यूएल के साथ आप अपने आप को व्यक्त कर सकते हैं 504 00:28:32,000 --> 00:28:35,000 और अधिक ठीक है, बहुत प्रक्रिया के क्रम में 505 00:28:35,000 --> 00:28:40,000 डेटा के कुछ सबसेट डेटा का एक बड़ा कोष से वापस मिलता है. 506 00:28:40,000 --> 00:28:45,000 >> आप एक डेटाबेस के बारे में सोच कर सकते हैं, इस मामले में, एक SQL डेटाबेस में वास्तव में एक्सेल की तरह, 507 00:28:45,000 --> 00:28:48,000 नंबर या जहां यह एक स्प्रेडशीट, 508 00:28:48,000 --> 00:28:50,000 या शायद कई स्प्रेडशीट्स, और पाठ्यक्रम के एक स्प्रेडशीट,, 509 00:28:50,000 --> 00:28:53,000 पंक्तियों और स्तंभों है, और है कि क्योंकि 510 00:28:53,000 --> 00:28:56,000 SQL डेटाबेस अर्थों में संबंधपरक संबंधपरक, 511 00:28:56,000 --> 00:28:59,000 कि वे इन तालिकाओं के मामले में डेटा स्टोर, 512 00:28:59,000 --> 00:29:01,000 पंक्तियों और स्तंभों. 513 00:29:01,000 --> 00:29:03,000 वे उच्च एक स्प्रेडशीट की तरह कुछ की तुलना में प्रदर्शन कर रहे हैं, 514 00:29:03,000 --> 00:29:05,000 और एक स्प्रेडशीट के लिए एक मानव द्वारा इस्तेमाल के लिए होती है. 515 00:29:05,000 --> 00:29:08,000 एक डेटाबेस के लिए एक प्रोग्रामर द्वारा इस्तेमाल किया जा मतलब है 516 00:29:08,000 --> 00:29:12,000 तो इसके खिलाफ कोड लेखन, एक डेटाबेस का अवतार 517 00:29:12,000 --> 00:29:14,000 या तो कमांड लाइन होने जा रहा है. 518 00:29:14,000 --> 00:29:18,000 >> वहाँ से बाहर सबसे लोकप्रिय संबंधपरक डेटाबेस की एक है, फिर से, MySQL, 519 00:29:18,000 --> 00:29:22,000 जो शानदार मुक्त है, बहुत उच्च प्रदर्शन, और यह है कि क्या 520 00:29:22,000 --> 00:29:24,000 फेसबुक पर है और कुछ हद तक बहुत जल्दी है आज भी इस्तेमाल किया 521 00:29:24,000 --> 00:29:27,000 अपने डेटा का एक बहुत की दुकान है, और हम एक पल में देखेंगे 522 00:29:27,000 --> 00:29:30,000 अपेक्षाकृत सरल आज्ञाओं का उपयोग करते हुए कहा कि 523 00:29:30,000 --> 00:29:33,000 हम डेटा डालने डेटा, अद्यतन डेटा का चयन कर सकते हैं, 524 00:29:33,000 --> 00:29:37,000 डेटा और इस तरह हटाने के लिए, लेकिन शुक्र है, वहाँ एक और अधिक उपयोगकर्ता के अनुकूल इंटरफेस है 525 00:29:37,000 --> 00:29:39,000 की तुलना में सिर्फ एक काले और सफेद प्रॉम्प्ट पर यहाँ टाइप. 526 00:29:39,000 --> 00:29:43,000 हम 7 pset के लिए और एक मुक्त phpMyAdmin नामक उपकरण से परे का उपयोग करेंगे. 527 00:29:43,000 --> 00:29:45,000 नाम संयोग है. 528 00:29:45,000 --> 00:29:47,000 उपकरण के लिए PHP में लागू होता है, 529 00:29:47,000 --> 00:29:49,000 लेकिन यह है कि मूल रूप से अप्रासंगिक है. 530 00:29:49,000 --> 00:29:53,000 PhpMyAdmin के बारे में उपयोगी है यह है कि यह एक वेब आधारित उपयोगिता है. 531 00:29:53,000 --> 00:29:55,000 हम है यह आप के लिए उपकरण में पहले से स्थापित है, 532 00:29:55,000 --> 00:29:58,000 और इसके साथ आप एक डेटाबेस में तालिका बना सकते हैं, 533 00:29:58,000 --> 00:30:01,000 आप डेटा सम्मिलित करने के लिए, डेटा को हटा सकते, और आम तौर पर देख 534 00:30:01,000 --> 00:30:04,000 एक काफी उपयोगकर्ता के अनुकूल वातावरण में अपने डेटा. 535 00:30:04,000 --> 00:30:07,000 अपने उपयोगकर्ताओं के लिए phpMyAdmin का उपयोग करने के लिए नहीं जा रहे हैं. 536 00:30:07,000 --> 00:30:09,000 >> यह वास्तव में सिर्फ एक प्रशासनिक या डेवलपर उपकरण है 537 00:30:09,000 --> 00:30:12,000 जो के साथ देख सकते हैं और अपने डेटा के आसपास प्रहार और बाहर आंकड़ा यह कैसे संरचना करने के लिए, 538 00:30:12,000 --> 00:30:15,000 आप की तरह अपने आप को एक्सेल या संख्या का उपयोग हो सकता है, 539 00:30:15,000 --> 00:30:19,000 लेकिन यह visualizing क्या हुड के नीचे जा रहा है का एक शानदार तरीका होने जा रहा है 540 00:30:19,000 --> 00:30:22,000 इतनी है कि आप दिलचस्प समस्या को हल करने पर ध्यान केंद्रित कर सकते हैं और इतना नहीं 541 00:30:22,000 --> 00:30:25,000 रहस्यमय आज्ञाओं पर. 542 00:30:25,000 --> 00:30:28,000 चलो डेटा का एक उदाहरण है कि सारणी के रूप में संग्रहित किया जा सकता है पर एक नज़र रखना 543 00:30:28,000 --> 00:30:30,000 एक संबंधपरक डेटाबेस में. 544 00:30:30,000 --> 00:30:32,000 यहाँ ऐसा ही एक उदाहरण है. 545 00:30:32,000 --> 00:30:35,000 अब, दुर्भाग्य से, phpMyAdmin फेंक रास्ते से पक्ष पर भी गलती कई शब्दों 546 00:30:35,000 --> 00:30:38,000 और तुम पर ग्राफिक्स, लेकिन अगर आप पर बस में सान 547 00:30:38,000 --> 00:30:42,000 ID स्तंभ, उपयोगकर्ता नाम स्तंभ, और हैश स्तंभ, 548 00:30:42,000 --> 00:30:45,000 यह प्रभावी रूप से एक स्प्रेडशीट है, लेकिन यह एक टुकड़ा होता है 549 00:30:45,000 --> 00:30:49,000 उपकरण की एक तालिका के अंदर 550 00:30:49,000 --> 00:30:53,000 एक फ़ाइल का उपयोग है कि हम आप के साथ समस्या 7 सेट में प्रदान. 551 00:30:53,000 --> 00:30:57,000 >> विशेष रूप से, हम आप का प्रतिनिधित्व करता है कि एक फ़ाइल दे 552 00:30:57,000 --> 00:31:01,000 एक उपयोगकर्ता की मेज, तो एक 3 कॉलम के साथ उपयोगकर्ताओं युक्त स्प्रेडशीट, 553 00:31:01,000 --> 00:31:05,000 एक जो की एक अद्वितीय आईडी 1 से शुरू किया जा रहा है और उसके बाद incremented है. 554 00:31:05,000 --> 00:31:08,000 दूसरे स्तंभ एक उपयोगकर्ता नाम है, और आप में से जो हैकर किया, 555 00:31:08,000 --> 00:31:12,000 2 pset के लिए हैकर संस्करण, कुछ कम से कम इन उपयोगकर्ता नामों की पहचान हो सकती है. 556 00:31:12,000 --> 00:31:16,000 दाएँ हाथ की ओर पर पासवर्ड रहे हैं, लेकिन वे शाब्दिक पासवर्ड नहीं कर रहे हैं. 557 00:31:16,000 --> 00:31:19,000 वे उसके hashes हो तो, यह पता चला 558 00:31:19,000 --> 00:31:22,000 कि एक डेटाबेस में पासवर्ड भंडारण एक बहुत बुरा विचार है. 559 00:31:22,000 --> 00:31:25,000 तुम सब शायद कुछ वेबसाइट के कुछ बिंदु पर पढ़ा है 560 00:31:25,000 --> 00:31:28,000 या कुछ कंपनी के डेटाबेस के साथ समझौता किया जा रहा है और फिर आप के लिए है 561 00:31:28,000 --> 00:31:31,000 अपना पासवर्ड बदलने के लिए, आप चीजों पर रिफंड प्राप्त करने की आवश्यकता है 562 00:31:31,000 --> 00:31:34,000 क्योंकि कुछ बुरा आदमी वास्तव में एक परिणाम के रूप में अपने खाते में तोड़ दिया. 563 00:31:34,000 --> 00:31:38,000 >> स्पष्ट पाठ में पासवर्ड भंडारण, एक डेटाबेस में अनएन्क्रिप्टेड 564 00:31:38,000 --> 00:31:41,000 पूरी तरह से गदहे के बारे में है, और अभी तक यह बहुत मनोरंजक है 565 00:31:41,000 --> 00:31:44,000 तो कुछ बहुत अच्छी तरह से ज्ञात कंपनियों के बारे में पढ़ने के लिए 566 00:31:44,000 --> 00:31:47,000 कभी कभी प्रेस में जिसका डेटाबेस से समझौता कर रहे हैं, 567 00:31:47,000 --> 00:31:50,000 और वह हिस्सा अजीब बात है, नहीं है, लेकिन तथ्य यह है कि डेटाबेस होते unencrypted 568 00:31:50,000 --> 00:31:53,000 पासवर्ड कोड की एक पंक्ति के साथ क्योंकि सचमुच हास्यास्पद है 569 00:31:53,000 --> 00:31:57,000 आप है कि विशेष रूप से खतरे के खिलाफ की रक्षा कर सकते हैं, और है कि हम यहाँ क्या किया है. 570 00:31:57,000 --> 00:32:00,000 यहां तक ​​कि हमारे नकली थोड़ा CS50 वित्त संस्करण के लिए 571 00:32:00,000 --> 00:32:03,000 हम सिर्फ अच्छे उपाय के लिए पासवर्ड encrypting कर रहे हैं, और तथ्य यह है कि 572 00:32:03,000 --> 00:32:07,000 इन सभी पासवर्ड की शुरू करने के साथ $ 1 $ सिर्फ एक सम्मेलन है. 573 00:32:07,000 --> 00:32:10,000 बस का अर्थ है कि वे एन्क्रिप्टेड या वास्तव में hashed हो, 574 00:32:10,000 --> 00:32:13,000 जो एक तरह से एक एन्क्रिप्शन समारोह की तरह है 575 00:32:13,000 --> 00:32:17,000 आप MD5 बुलाया कुछ के साथ अपने प्रभाव जिससे पलट नहीं सकते. 576 00:32:17,000 --> 00:32:21,000 >> तथ्य यह है कि उस के बाद 50 का मतलब है कि एक नमक मूल्य 577 00:32:21,000 --> 00:32:24,000 50 के लिए एक को छोड़कर इन सभी पासवर्ड की hashing के लिए इस्तेमाल किया गया था. 578 00:32:24,000 --> 00:32:27,000 पाठ्यक्रम के, मेरा, जैसा कि आप देख सकते हैं, हा, 579 00:32:27,000 --> 00:32:30,000 एक अलग नमक का उपयोग कर रहा था, तो आप में से जो थोड़ा फिसल गया 580 00:32:30,000 --> 00:32:33,000 शायद 2 हैकर कि हमारे प्रयुक्त होने का परिणाम रहा है हो सकता है 581 00:32:33,000 --> 00:32:36,000 दूसरों की तुलना में एक अलग हैश क्योंकि मेरे पासवर्ड वास्तव में है ही 582 00:32:36,000 --> 00:32:38,000 वहाँ कुछ अन्य उपयोगकर्ता के रूप में. 583 00:32:38,000 --> 00:32:41,000 वास्तव में, यदि आप इंतजार कर रहा है पता लगाने के लिए इन सभी सप्ताह 584 00:32:41,000 --> 00:32:44,000 यहाँ क्या उन पासवर्ड पासवर्ड है कि आप को चुनौती दी थी थे 585 00:32:44,000 --> 00:32:48,000 समस्या 2 सेट है, तो कोई भी मुश्किल के हैकर संस्करण में दरार. 586 00:32:48,000 --> 00:32:50,000 वास्तव में, मालन jharvard के रूप में एक ही था, 587 00:32:50,000 --> 00:32:54,000 लेकिन अगर हम वापस जाने के लिए वे अलग देखा. 588 00:32:54,000 --> 00:32:58,000 >> क्रिमसन में jharvard पर ध्यान दें क्योंकि वे अलग नमकीन थे. 589 00:32:58,000 --> 00:33:01,000 एक तरीका है कि एल्गोरिथ्म में परेशान किया गया था 590 00:33:01,000 --> 00:33:05,000 मूल्य हैश, एन्क्रिप्टेड मूल्य एक छोटे से अलग लग रहा है 591 00:33:05,000 --> 00:33:08,000 क्योंकि जानकारी थोड़ा अलग थे, लेकिन हुड के नीचे पासवर्ड 592 00:33:08,000 --> 00:33:10,000 अभी भी अंततः गहरा लाल था. 593 00:33:10,000 --> 00:33:12,000 अब, जो इस बारे में कौन परवाह करता है? 594 00:33:12,000 --> 00:33:15,000 खैर, हम आपको नमूना उपयोगकर्ताओं के साथ प्रदान कर रहे हैं, नमूना उपयोगकर्ता नाम 595 00:33:15,000 --> 00:33:18,000 और उनके पासवर्ड की hashes इतनी है कि आप वास्तव में कुछ है 596 00:33:18,000 --> 00:33:23,000 ग्राहकों CS50 वित्त के लिए जब आप पहली बार अपने कोड के साथ जमीन मिलता है. 597 00:33:23,000 --> 00:33:27,000 आप MySQL के अंदर और अधिक तालिकाओं को लागू करने के लिए डेटाबेस के अंदर करना होगा. 598 00:33:27,000 --> 00:33:30,000 आप अधिक स्प्रैडशीट्स बनाने, प्रभावी ढंग से होगा, लेकिन हम आपको यह एक देने का फैसला किया 599 00:33:30,000 --> 00:33:33,000 तुम्हें पाने के लिए शुरू कर दिया है, और आप देखेंगे कि समस्या सेट विनिर्देश 600 00:33:33,000 --> 00:33:37,000 आप इस तालिका आयात करने की प्रक्रिया के माध्यम से चलता है 601 00:33:37,000 --> 00:33:39,000 और यह भी समझा विशेषताओं में से कुछ क्या कर रहे हैं, 602 00:33:39,000 --> 00:33:41,000 और आप यह भी देखना है कि हम आप कोड के साथ प्रदान करेंगे 603 00:33:41,000 --> 00:33:44,000 hashing या इन पासवर्ड एन्क्रिप्शन संभाल करने के लिए, 604 00:33:44,000 --> 00:33:49,000 ताकि आप MD5 या की तरह सब के बारे में वास्तव में क्या है के बारे में बहुत ज्यादा चिंता करने की जरूरत नहीं है. 605 00:33:49,000 --> 00:33:53,000 >> तो, SQL, संरचित क्वेरी भाषा. 606 00:33:53,000 --> 00:33:56,000 यह वह जगह है, काफी बस, भाषा हम 7 pset में उपयोग के बारे में शुरू कर रहे हैं 607 00:33:56,000 --> 00:34:01,000 और शायद कुछ डेटाबेस से डेटा का अनुरोध करने से परे. 608 00:34:01,000 --> 00:34:06,000 डेटा, फिर से, इन संबंधपरक तालिकाओं, स्तंभों और पंक्तियों में सारणी के रूप में संग्रहीत किया जाता है, 609 00:34:06,000 --> 00:34:09,000 लेकिन हटाना चाहते कुछ अपेक्षाकृत सरल वाक्यविन्यास का उपयोग, 610 00:34:09,000 --> 00:34:12,000 सम्मिलित करने के लिए, अद्यतन का चयन करें और हम बिल्कुल कर सकते हैं. 611 00:34:12,000 --> 00:34:15,000 हम डेटाबेस से हटाने के लिए, सम्मिलित कर सकते हैं, 612 00:34:15,000 --> 00:34:19,000 डेटा, के रूप में के रूप में अच्छी तरह का चयन करें, कि, डेटाबेस से डेटा पुनर्प्राप्त करने के लिए अद्यतन. 613 00:34:19,000 --> 00:34:21,000 हम ऐसा करने के बारे में कैसे जाना है? 614 00:34:21,000 --> 00:34:23,000 मुझे उपकरण में आगे जाना है. 615 00:34:23,000 --> 00:34:28,000 मुझे http://localhost खींच, 616 00:34:28,000 --> 00:34:30,000 जो, फिर से, स्थानीय उपकरण ही है. 617 00:34:30,000 --> 00:34:32,000 वह अपने डिफ़ॉल्ट उपनाम है. 618 00:34:32,000 --> 00:34:35,000 और मुझे / phpmyadmin जाना. 619 00:34:35,000 --> 00:34:39,000 यह करने के लिए एक विशेष URL होना होता है कि उपकरण को समझने के preconfigured 620 00:34:39,000 --> 00:34:42,000 कि मुझे तुरंत एक उपयोगकर्ता नाम और पासवर्ड के लिए संकेत देता है. 621 00:34:42,000 --> 00:34:46,000 >> हमेशा की तरह, मैं के लिए jharvard और लाल टाइप करने के लिए जा रहा हूँ, 622 00:34:46,000 --> 00:34:48,000 लेकिन एहसास है कि कंप्यूटर पर व्यवस्थापक खाते. 623 00:34:48,000 --> 00:34:53,000 यह सिर्फ एक संयोग है कि वहाँ भी एक jharvard CS50 वित्त के लिए पंजीकृत है. 624 00:34:53,000 --> 00:34:56,000 Jharvard, लाल, दर्ज मुझे यूजर इंटरफेस है कि हमने देखा देता है 625 00:34:56,000 --> 00:34:59,000 पहले एक पल की एक झलक, और यह पहली बार में थोड़ा भारी है, 626 00:34:59,000 --> 00:35:02,000 लेकिन बाकी का आश्वासन दिया, आप इस उपकरण में लिंक का सबसे क्लिक कभी नहीं जा रहे हैं. 627 00:35:02,000 --> 00:35:05,000 तुम अंत में एक छोटे सबसेट है कि सुपर उपयोगी हैं का प्रयोग करेंगे, 628 00:35:05,000 --> 00:35:08,000 डेटाबेस जिसमें से 1 यहाँ है. 629 00:35:08,000 --> 00:35:11,000 अगर मैं डेटाबेस के लिए ऊपर जाना, सूचना है कि मैं एक डेटाबेस बनाने के लिए प्रेरित कर रहा हूँ. 630 00:35:11,000 --> 00:35:14,000 यह एक नया एक्सेल फाइल बनाने की तरह प्रभावी रूप से है,. 631 00:35:14,000 --> 00:35:18,000 मुझे आगे जाना है और इस व्याख्यान कॉल करने के लिए जा रहा हूँ, और मैं सिर्फ वहाँ क्षेत्र, मिलान की अनदेखी करने के लिए जा रहा हूँ. 632 00:35:18,000 --> 00:35:20,000 यह डेटा के प्रतिनिधित्व के साथ उसमें क्या करना है, 633 00:35:20,000 --> 00:35:24,000 और मैं के लिए क्लिक करें बनाने के लिए जा रहा हूँ, और अब सूचना के रूप में बनाने के लिए जाना जाने 634 00:35:24,000 --> 00:35:27,000 बाएँ हाथ की ओर जहां यह कहना है कि कोई डेटाबेस 635 00:35:27,000 --> 00:35:30,000 मैं जल्द ही व्याख्यान डेटाबेस देखना चाहिए. 636 00:35:30,000 --> 00:35:32,000 >> अगर मैं अब बाईं ओर, व्याख्यान डेटाबेस पर क्लिक करें, 637 00:35:32,000 --> 00:35:34,000 नोटिस मेरे टैब्स एक थोड़ा बदल. 638 00:35:34,000 --> 00:35:38,000 मैं संरचना, एसक्यूएल, निर्यात, आयात और कुछ अन्य बातें मिल गया है. 639 00:35:38,000 --> 00:35:40,000 संरचना बहुत ज्यादा खाली है. 640 00:35:40,000 --> 00:35:43,000 कोई तालिकाओं डेटाबेस में पाया गया है, क्योंकि यह यहाँ का कहना है, 641 00:35:43,000 --> 00:35:47,000 तो चलो एक तालिका बनाने के लिए, और हम आगे जाने के लिए और एक तालिका बनाने 642 00:35:47,000 --> 00:35:53,000 छात्रों को पसंद है, और कितने कॉलम हम चाहते हो? 643 00:35:53,000 --> 00:35:55,000 हर विद्यार्थी के लिए चलो यह सरल रखने के लिए, और हम रिकॉर्ड 644 00:35:55,000 --> 00:35:58,000 एक आईडी नंबर, एक नाम है, और एक ईमेल पते. 645 00:35:58,000 --> 00:36:02,000 >> हम की तरह है कि यह सरल रखने के लिए, 3 कॉलम तो, जाओ. 646 00:36:02,000 --> 00:36:05,000 फार्म का है कि आप यहाँ देख अब एक छोटा सा गन्दा और भारी है, 647 00:36:05,000 --> 00:36:08,000 लेकिन हम सिर्फ यह पंक्ति से पंक्ति के माध्यम से जाना है, तो वास्तव में जल्दी चलो दे 648 00:36:08,000 --> 00:36:14,000 इस डेटाबेस में अद्वितीय पहचानकर्ता के लिए आईडी के नाम प्रथम स्तंभ. 649 00:36:14,000 --> 00:36:17,000 यह एक पूर्णांक होगा. मैं वास्तव में लंबाई और मूल्यों को अनदेखा कर सकते हैं. 650 00:36:17,000 --> 00:36:21,000 एक int 32 बिट्स हो कोई फर्क नहीं पड़ता कि तुम क्या वहाँ में टाइप करने के लिए जा रहा है, तो हम इसे खाली छोड़ दें. 651 00:36:21,000 --> 00:36:24,000 डिफ़ॉल्ट मान, मैं यह शून्य बनाने के लिए, के रूप में परिभाषित किया है. 652 00:36:24,000 --> 00:36:27,000 मैं कि अकेले छोड़ने के लिए जा रहा हूँ. मूलभूत मूल्यों के बारे में चिंता करने की ज़रूरत नहीं है. 653 00:36:27,000 --> 00:36:29,000 चलो यहाँ स्क्रॉल सही विशेषताओं,. 654 00:36:29,000 --> 00:36:31,000 यह दिलचस्प है. 655 00:36:31,000 --> 00:36:33,000 चलो आगे जाना है और कुछ हद तक मनमाने ढंग से कहना है कि आईडी अहस्ताक्षरित होना चाहिए. 656 00:36:33,000 --> 00:36:35,000 किसी भी नकारात्मक संख्या बर्बाद नहीं करते हैं. 657 00:36:35,000 --> 00:36:37,000 >> 0 की 4 अरब जाना, दे या ले, 658 00:36:37,000 --> 00:36:40,000 और फिर हम बस अभी तक स्पर्श नहीं इन क्षेत्रों के किसी भी वहाँ पर, 659 00:36:40,000 --> 00:36:43,000 लेकिन फिर मुझे नाम में यहाँ नीचे लिखें, 660 00:36:43,000 --> 00:36:46,000 और फिर अन्य ईमेल था, तो पकड़ ईमेल है 661 00:36:46,000 --> 00:36:50,000 और नाम, जाहिर integers नहीं, तो चलो एक अलग क्षेत्र के लिए इन परिवर्तन. 662 00:36:50,000 --> 00:36:53,000 यह बाहर varchar, चर लंबाई चार बदल जाता है, 663 00:36:53,000 --> 00:36:56,000 एक SQL डेटाबेस में एक स्ट्रिंग की तरह है 664 00:36:56,000 --> 00:36:59,000 लेकिन एक चर लंबाई, और आप वास्तव में अग्रिम में यह बताने के लिए है 665 00:36:59,000 --> 00:37:02,000 स्ट्रिंग की अधिकतम लंबाई, इसलिए मैं कुछ हद तक मनमाने ढंग से करने के लिए जा रहा हूँ 666 00:37:02,000 --> 00:37:05,000 सम्मेलन प्रकार 255 वर्ण से. 667 00:37:05,000 --> 00:37:08,000 मैं पूरी तरह से 32 कह सकते हैं. मैं 1,000 कह सकते हैं. 668 00:37:08,000 --> 00:37:11,000 आप अपने क्या है जनसांख्यिकी के आधार पर खुद के लिए तय की जरूरत की तरह 669 00:37:11,000 --> 00:37:14,000 सबसे लंबे समय तक छात्र का नाम और कि संख्या या एक छोटे से बड़ा के साथ जाना है, 670 00:37:14,000 --> 00:37:17,000 लेकिन एक varchar के बारे में अच्छी बात यह है कि यह बर्बाद करने के लिए नहीं जा रहा है 671 00:37:17,000 --> 00:37:19,000 हर छात्र के नाम पर 255 बाइट्स. 672 00:37:19,000 --> 00:37:23,000 यदि यह डेविड यह एक पूरे 255 बाइट्स का उपयोग नहीं हो रहा है, 673 00:37:23,000 --> 00:37:26,000 लेकिन वह एक ऊपरी सीमा है, तो मैं 255 के साथ सम्मेलन द्वारा ही जाना होगा, 674 00:37:26,000 --> 00:37:30,000 लेकिन हम है कि कुछ कम मूल्य होने के लिए बहस सकता है, और ईमेल पते के लिए 675 00:37:30,000 --> 00:37:34,000 सिर्फ 255 अनुरूप हो, लेकिन फिर, हम एक ही बहस हो सकता है. 676 00:37:34,000 --> 00:37:36,000 लेकिन मैं यहाँ पर दाएँ हाथ की ओर एक अन्य बात करने के लिए जा रहा हूँ. 677 00:37:36,000 --> 00:37:40,000 >> एक डेटाबेस के बारे में शक्तिशाली है कि यह भारी उठाने का एक बहुत कुछ कर सकते हैं 678 00:37:40,000 --> 00:37:42,000 या आप के लिए जटिल काम है. 679 00:37:42,000 --> 00:37:46,000 विशेष रूप से, मैं वास्तव में परवाह नहीं है कि मेरे छात्र आईडी नंबर क्या हैं. 680 00:37:46,000 --> 00:37:49,000 यह सिर्फ एक डेटाबेस में एक अद्वितीय पहचानकर्ता के होने का मतलब है 681 00:37:49,000 --> 00:37:52,000 तो मैं एक 32-bit कि छात्र का संक्षिप्त प्रतिनिधित्व किया है 682 00:37:52,000 --> 00:37:55,000 इतना है कि मैं विशिष्ट उन्हें पहचान का कोई रास्ता है 683 00:37:55,000 --> 00:37:58,000 ऐसा न हो कि एक वर्ग में 2 डेविड्स, उदाहरण के लिए, हो सकता है. 684 00:37:58,000 --> 00:38:01,000 वास्तव में, मैं इस ऐ बॉक्स, ऑटो वेतन वृद्धि की जांच करने के लिए जा रहा हूँ, 685 00:38:01,000 --> 00:38:04,000 इतना है कि डेटाबेस, MySQL, बाहर के आंकड़े 686 00:38:04,000 --> 00:38:08,000 हर हाल में डाला छात्र आईडी के लिए क्या किया जा रहा है. 687 00:38:08,000 --> 00:38:11,000 मैं भी अपने कोड में उस के बारे में परवाह नहीं है, 688 00:38:11,000 --> 00:38:13,000 और मैं भी सूचकांक मेनू के तहत कुछ का चयन करने के लिए जा रहा हूँ. 689 00:38:13,000 --> 00:38:17,000 सूचकांक नीचे ड्रॉप यहाँ प्राथमिक, अद्वितीय गया है, 690 00:38:17,000 --> 00:38:19,000 सूचकांक और पूरा पाठ. 691 00:38:19,000 --> 00:38:21,000 आप शायद लगता है कि इन चीजों की एक जोड़ी क्या कर सकते हैं, 692 00:38:21,000 --> 00:38:24,000 लेकिन यह संबंधपरक डेटाबेस में पता चला है 693 00:38:24,000 --> 00:38:28,000 आप प्रोग्रामर या डेटाबेस व्यवस्थापक preemptively 694 00:38:28,000 --> 00:38:32,000 डेटाबेस क्या खेतों के रूप में संकेत दे 695 00:38:32,000 --> 00:38:34,000 एक तालिका में एक छोटे से विशेष कर रहे हैं. 696 00:38:34,000 --> 00:38:37,000 >> उदाहरण के लिए, इस मामले में मैं कि आईडी कहने जा रहा हूँ 697 00:38:37,000 --> 00:38:42,000 एक प्राथमिक सूचकांक, अन्यथा एक प्राथमिक कुंजी के रूप में जाना जाता है होने जा रहा है. 698 00:38:42,000 --> 00:38:44,000 इस परिभाषा के द्वारा क्या मतलब है कि अब से आईडी है 699 00:38:44,000 --> 00:38:48,000 विशिष्ट इस तालिका में छात्रों की पहचान करेगा. 700 00:38:48,000 --> 00:38:53,000 कोई छात्र एक ही आईडी है, क्योंकि मैं इस बाधा या इस सूचकांक थोप रहा हूँ. 701 00:38:53,000 --> 00:38:55,000 इसके अलावा, यह मेरे लिए नहीं जा रहा है क्या है यह बताने के लिए जा रहा है 702 00:38:55,000 --> 00:38:58,000 MySQL ID कि खास है. 703 00:38:58,000 --> 00:39:03,000 मैं आईडी के बारे में विशेष रूप से ध्यान, तो आगे जाओ और अपनी कल्पना डेटा संरचना जादू करते हैं, 704 00:39:03,000 --> 00:39:05,000 पेड़ के किसी तरह का निर्माण. 705 00:39:05,000 --> 00:39:08,000 आम तौर पर यह कुछ बी वृक्ष है, जो हम सप्ताह में पहले नहीं लग रही थी कहा जाता है, 706 00:39:08,000 --> 00:39:11,000 लेकिन यह द्विआधारी पेड़ों को एक और इस तरह के डेटा की भावना में समान संरचना है 707 00:39:11,000 --> 00:39:15,000 की कोशिश करता है और यह कि हम में देखा है, लेकिन यह कहने जा रहा है 708 00:39:15,000 --> 00:39:18,000 डेटाबेस के लिए इस क्षेत्र इतना है कि मैं शायद महत्वपूर्ण है 709 00:39:18,000 --> 00:39:22,000 इस पर खोज करने में सक्षम होना चाहता हूँ, आगे बढ़ो और कुछ कल्पना का निर्माण 710 00:39:22,000 --> 00:39:25,000 स्मृति में डेटा संरचना की खोज में तेजी लाने के लिए इतना है कि आदर्श 711 00:39:25,000 --> 00:39:28,000 वे लगातार समय कर रहे हैं या कम से कम के रूप में उस के रूप में संभव करीब 712 00:39:28,000 --> 00:39:32,000 इतना है कि यह रैखिक खोज में नहीं उतरना है, जो करने के लिए नहीं जा रहा है 713 00:39:32,000 --> 00:39:34,000 सबसे उच्च दृष्टिकोण प्रदर्शन. 714 00:39:34,000 --> 00:39:37,000 इसके विपरीत करके, ईमेल पते एक प्राथमिक कुंजी हो सकता है. 715 00:39:37,000 --> 00:39:41,000 >> सिद्धांत रूप में, हर किसी के ईमेल पते अद्वितीय है, जब तक आप कुछ साझा कर रहे हैं, 716 00:39:41,000 --> 00:39:45,000 लेकिन यह आम तौर पर एक स्ट्रिंग की तरह कुछ का उपयोग करने के लिए अच्छा नहीं 717 00:39:45,000 --> 00:39:49,000 एक प्राथमिक कुंजी के रूप में है क्योंकि अगर जीवन में अपने उद्देश्य के लिए विशिष्ट पहचान है 718 00:39:49,000 --> 00:39:55,000 अपनी तालिका में पंक्तियों वहाँ 255 बाइट्स ज़्यादा से ज़्यादा इस्तेमाल के लिए कोई कारण नहीं है 719 00:39:55,000 --> 00:39:58,000 के लिए विशिष्ट पहचान अगर आप सिर्फ 4 बाइट्स के साथ दूर प्राप्त कर सकते हैं 720 00:39:58,000 --> 00:40:00,000 या एक 32-bit int. 721 00:40:00,000 --> 00:40:03,000 सामान्य में, एक प्राथमिक कुंजी लघु और संक्षिप्त होना चाहिए 722 00:40:03,000 --> 00:40:07,000 और आदर्श एक पूर्णांक या एक बड़ा int है, जो 64 बिट के लिए होता है की तरह कुछ. 723 00:40:07,000 --> 00:40:11,000 लेकिन एक ईमेल पते अद्वितीय हो सकता है, करना चाहिए और एक डेटाबेस की सुविधाओं का भी एक 724 00:40:11,000 --> 00:40:14,000 मेरे लिए विशिष्टता लागू है. 725 00:40:14,000 --> 00:40:18,000 अद्वितीय यहाँ ईमेल करने के लिए बगल में चुना जाता है, भले ही ही ईमेल 726 00:40:18,000 --> 00:40:21,000 बंद स्क्रीन scrolled, मैं डेटाबेस के लिए कह रहा हूँ 727 00:40:21,000 --> 00:40:23,000 मुझे भरोसा नहीं है. 728 00:40:23,000 --> 00:40:26,000 मुझे डेटाबेस में सम्मिलित मत देना 729 00:40:26,000 --> 00:40:29,000 उसी ईमेल में दो बार पता है, भले ही मैं एक मूर्ख हूँ और नहीं कर रहा हूँ 730 00:40:29,000 --> 00:40:32,000 मेरे अगर और अगर वास्तविक PHP कोड के साथ बहुत अच्छा 731 00:40:32,000 --> 00:40:37,000 और मैं गलती से उपयोगकर्ता मौजूदा ईमेल पते के साथ रजिस्टर 732 00:40:37,000 --> 00:40:40,000 डेटाबेस अभी तक रक्षा की शुद्धता के लिए एक अन्य स्तर पर है 733 00:40:40,000 --> 00:40:44,000 सुनिश्चित करें कि कि डुप्लिकेट ईमेल पते को तालिका में अंत नहीं है. 734 00:40:44,000 --> 00:40:49,000 >> अब, इसके विपरीत, नाम के लिए तो आप शायद कि अद्वितीय बनाने के लिए नहीं करना चाहती 735 00:40:49,000 --> 00:40:51,000 क्योंकि तब दाऊद के 2 या 2 उदाहरण के लिए माइक Smiths, कभी नहीं हो सकता है, 736 00:40:51,000 --> 00:40:55,000 अपने डेटाबेस में एक इतना है कि हम सिर्फ अकेले छोड़ देंगे. 737 00:40:55,000 --> 00:40:58,000 मैं आगे जाने के लिए क्लिक करें और नीचे सही पर बचाने के लिए जा रहा हूँ, 738 00:40:58,000 --> 00:41:02,000 और सब कुछ अच्छा लग रहा है, लेकिन यहाँ नोटिस 739 00:41:02,000 --> 00:41:04,000 यह एक हिस्सा है कि अब के लिए हम पर बहुत अधिक समय नहीं बिताना होगा 740 00:41:04,000 --> 00:41:07,000 क्योंकि वाक्यविन्यास थोड़ा जटिल है, और हम करने के लिए टेबल तैयार नहीं है 741 00:41:07,000 --> 00:41:10,000 कि अक्सर, लेकिन SQL अपने आप में एक भाषा है, 742 00:41:10,000 --> 00:41:13,000 वाक्यविन्यास जो यहाँ के लिए सही है कि मैं प्रकाश डाला है. 743 00:41:13,000 --> 00:41:18,000 PhpMyAdmin वास्तव में क्या करता है यह आप के लिए एक वेब आधारित जीयूआई बनाता है 744 00:41:18,000 --> 00:41:23,000 जिसके साथ आप समय बचाने के लिए और स्वयं टाइप नहीं कर सकते हैं 745 00:41:23,000 --> 00:41:26,000 एक की तरह है कि काफी लंबे समय एसक्यूएल क्वेरी. 746 00:41:26,000 --> 00:41:29,000 >> दूसरे शब्दों में, अगर तुम चाहते थे स्वयं इस तालिका बनाने, 747 00:41:29,000 --> 00:41:32,000 या तो है कि काले और सफेद संकेत या में भी phpMyAdmin में 748 00:41:32,000 --> 00:41:35,000 यह अन्य टैब का उपयोग करके, इस एसक्यूएल टैब जहाँ आप किसी भी एसक्यूएल प्रश्नों में टाइप कर सकते हैं 749 00:41:35,000 --> 00:41:38,000 आप चाहते हैं, स्पष्ट रूप से, यह मुझे ले लिया है एक मिनट 750 00:41:38,000 --> 00:41:41,000 वास्तव में पूरे वाक्य रचना को याद करने के लिए, और फिर भी मैं शायद होगा 751 00:41:41,000 --> 00:41:45,000 कुछ typos बनाया है, तो इस उपकरण को इस तरह की बातों के लिए उपयोगी है, और यह भी शिक्षाप्रद. 752 00:41:45,000 --> 00:41:49,000 आप के लिए अनुमान वाक्यविन्यास क्या है शुरू कर सकते हैं 753 00:41:49,000 --> 00:41:52,000 बस अच्छा रंग से कोडिंग कि phpMyAdmin जोड़ने है 754 00:41:52,000 --> 00:41:54,000 हमारे दृश्य की सुविधा के लिए. 755 00:41:54,000 --> 00:41:56,000 लेकिन अब इस बजाय करते हैं. 756 00:41:56,000 --> 00:42:00,000 मुझे शीर्ष पर डालने टैब पर जाना है, और मुझे आगे जाना है और उदाहरण के लिए डालने 757 00:42:00,000 --> 00:42:04,000 चलो एक आईडी का कहना है कि वास्तव में मुझे परवाह नहीं है. 758 00:42:04,000 --> 00:42:07,000 यह ऑटो वेतन वृद्धि करने के लिए जा रहा है. मैं इस के साथ डेटाबेस सौदा करने के लिए जा रहा हूँ. 759 00:42:07,000 --> 00:42:11,000 लेकिन मैं दाऊद को हो सकता है, करेगा और मेरे ईमेल malan@harvard.edu होना चाहिए. 760 00:42:11,000 --> 00:42:16,000 >> चलो आगे यहाँ जाने के लिए और एक दूसरे के रूप में माइक स्मिथ में डाल दिया. 761 00:42:16,000 --> 00:42:18,000 मैं खुद को एक अंतिम नाम के रूप में अच्छी तरह से दे देंगे, 762 00:42:18,000 --> 00:42:22,000 और हम उसे smith@example.com हो जाएगा, 763 00:42:22,000 --> 00:42:24,000 और फिर मैं अगले कहाँ जाना है? 764 00:42:24,000 --> 00:42:27,000 ठीक है, ऐसा लगता है जैसे जाने बटन क्लिक करने के लिए है, और देखा है. 765 00:42:27,000 --> 00:42:30,000 शीर्ष 2 डाला पंक्तियों में सूचना. 766 00:42:30,000 --> 00:42:32,000 यह वास्तविक एसक्यूएल क्वेरी है. 767 00:42:32,000 --> 00:42:36,000 कि phpMyAdmin मेरे लिए मार डाला उपकरण है, 768 00:42:36,000 --> 00:42:40,000 लेकिन अंतिम परिणाम, नोटिस, अगर मैं अब ब्राउज़ टैब पर जाना, 769 00:42:40,000 --> 00:42:43,000 इस तालिका में 2 पंक्तियां देखने, बहुत aesthetically याद ताजा करती है 770 00:42:43,000 --> 00:42:46,000 तालिका के हम अपने उपयोगकर्ताओं के लिए पहले 7 pset से देखा, 771 00:42:46,000 --> 00:42:51,000 जिनमें से एक डेविड Malan, जिनमें से एक अब माइक स्मिथ है. 772 00:42:51,000 --> 00:42:54,000 लेकिन अभी स्पष्ट होना करने के लिए, मैं phpMyAdmin का उपयोग नहीं की जरूरत नहीं है, 773 00:42:54,000 --> 00:42:56,000 और वास्तव में, आप जल्द ही 7 pset के लिए कोड लिखने जा रहे हैं 774 00:42:56,000 --> 00:43:01,000 है कि पंक्तियों जोड़ने, पंक्तियों को हटाने, अद्यतन पंक्तियों और तरह की प्रक्रिया automates, 775 00:43:01,000 --> 00:43:04,000 तो मुझे बजाय एसक्यूएल टैब पर जाना ऊपर यहाँ 776 00:43:04,000 --> 00:43:14,000 और जहां छात्रों से चयन * 777 00:43:14,000 --> 00:43:18,000 "ईमेल malan@harvard.edu." = 778 00:43:18,000 --> 00:43:21,000 >> दूसरे शब्दों में लगता है कि अब आप 779 00:43:21,000 --> 00:43:26,000 कुछ HTML फार्म, और अन्य क्षेत्रों के बीच अपने ईमेल पते में उपयोगकर्ता प्रकार, 780 00:43:26,000 --> 00:43:29,000 और लक्ष्य अब PHP में वापस अंत कोड पर है 781 00:43:29,000 --> 00:43:31,000 वास्तव में है कि उपयोगकर्ता के अन्य विवरण. 782 00:43:31,000 --> 00:43:34,000 अपना पूरा नाम क्या है? अपना आईडी नंबर क्या है? 783 00:43:34,000 --> 00:43:37,000 आप इस तरह एक एसक्यूएल क्वेरी लिख सकता है, छात्रों से चुनें * 784 00:43:37,000 --> 00:43:40,000 ईमेल जहाँ "malan@harvard.edu." = 785 00:43:40,000 --> 00:43:46,000 और अगर मैं तो जाने के लिए क्लिक नोटिस, कि मैं वास्तव में मैं, क्या करना चाहिए सिर्फ एक पंक्ति वापस पाने के. 786 00:43:46,000 --> 00:43:50,000 माइक इस परिणाम सेट से पंक्तियों के संग्रह के रूप में छोड़ दिया जाता है, 787 00:43:50,000 --> 00:43:53,000 आम तौर पर कहा जाता है, क्योंकि वह मुझे उसी ईमेल पते के रूप में नहीं है. 788 00:43:53,000 --> 00:43:57,000 >> अब, फिर से, यहाँ 7 pset के लिए आप एक प्रशासनिक उपकरण के रूप में phpMyAdmin का उपयोग करेंगे 789 00:43:57,000 --> 00:44:00,000 और अपने तरीके से सीखने के लिए एक शैक्षणिक उपकरण 790 00:44:00,000 --> 00:44:03,000 एसक्यूएल के दुनिया भर में है, लेकिन दिन के अंत में 791 00:44:03,000 --> 00:44:08,000 आप वास्तविक PHP कोड के अंदर इन प्रश्नों लेखन किया जा रहे हैं, 792 00:44:08,000 --> 00:44:11,000 और इसलिए विशेष रूप से है Zamyla walkthrough में देखते रहें 793 00:44:11,000 --> 00:44:14,000 जहाँ आप इस समस्या सेट के लिए वितरण कोड के एक दौरे मिलेगा 794 00:44:14,000 --> 00:44:18,000 जहां हम आपको न केवल सौंदर्यशास्त्र प्रवेश पृष्ठ के लिए दिया है 795 00:44:18,000 --> 00:44:21,000 और अच्छा सेक्सी लोगो कि CS50 वित्त कहते हैं, लेकिन हम भी तुम्हें दे दिया है 796 00:44:21,000 --> 00:44:24,000 कार्यों का एक गुच्छा है कि अपने जीवन थोड़ा आसान कर देगा. 797 00:44:24,000 --> 00:44:27,000 हम भी आप के लिए है pset का हिस्सा लिखा है, 798 00:44:27,000 --> 00:44:32,000 विशेष रूप में यह लॉगिन भाग, आप एक प्रतिनिधि डिजाइन की भावना देने के लिए 799 00:44:32,000 --> 00:44:36,000 कि वास्तव में index.php, उदाहरण के लिए एक नियंत्रक का उपयोग करता है, 800 00:44:36,000 --> 00:44:40,000 login.php और पसंद है, और फिर आप देखेंगे pset भी एक नमूना निर्देशिका 801 00:44:40,000 --> 00:44:43,000 कि अपने विचारों के सभी है, सौंदर्यशास्त्र के सभी. 802 00:44:43,000 --> 00:44:46,000 और तो 7 pset में समग्र कार्यप्रवाह कि होने जा रहा है 803 00:44:46,000 --> 00:44:49,000 अपने उपयोगकर्ताओं को एक ब्राउज़र में एक यूआरएल के माध्यम से एक नियंत्रक जाएँ. 804 00:44:49,000 --> 00:44:53,000 नियंत्रक कि PHP कोड है कि आप ने लिखा होता है, और अपने PHP कोड के अंदर 805 00:44:53,000 --> 00:44:57,000 एसक्यूएल की कुछ लाइनों को दोहरे उद्धरण चिह्नों के बीच में नेस्टेड हो सकता है 806 00:44:57,000 --> 00:45:00,000 और एक समारोह के लिए पारित हम कहते क्वेरी लिखा 807 00:45:00,000 --> 00:45:03,000 कि आप डेटाबेस के लिए बात की तरह कुछ का उपयोग कर के बिना में मदद मिलेगी 808 00:45:03,000 --> 00:45:05,000 phpMyAdmin की तरह एक प्रशासनिक उपकरण. 809 00:45:05,000 --> 00:45:08,000 >> आप PHP कोड में SQL बयान लिखने में सक्षम हो जाएगा 810 00:45:08,000 --> 00:45:11,000 और परिणाम सेट एक PHP सरणी वापस पाने के लिए, 811 00:45:11,000 --> 00:45:14,000 पंक्तियाँ है कि वास्तव में क्वेरी से मेल खाने की. 812 00:45:14,000 --> 00:45:18,000 और इसी तरह आप आवेषण या नष्टकरण करने में सक्षम हो जाएगा 813 00:45:18,000 --> 00:45:22,000 या अद्यतन या पसंद है, वाक्यविन्यास जिसके लिए काफी समान है, 814 00:45:22,000 --> 00:45:25,000 और आप कुछ ऑनलाइन संदर्भ से वितरण कोड से देखेंगे, 815 00:45:25,000 --> 00:45:29,000 और ही pset से पैक वास्तव में करने के बारे में जाने के लिए. 816 00:45:29,000 --> 00:45:33,000 एहसास अंततः हम वास्तव में सिर्फ SQL की सतह scratching रहे हैं 817 00:45:33,000 --> 00:45:36,000 और MySQL के, लेकिन यह की शक्ति वास्तव में यह है कि यह आप को मुक्त 818 00:45:36,000 --> 00:45:40,000 आप समस्याओं को हल करने के लिए करना चाहते हैं पर ध्यान केंद्रित करने के लिए, उपयोग के मामलों को लागू करने के लिए करना चाहते हैं 819 00:45:40,000 --> 00:45:43,000 काफी के रूप में ज्यादा चिंता है, पर कम से कम जल्दी करने के लिए बिना, 820 00:45:43,000 --> 00:45:47,000 कहाँ और कैसे स्टोर करने के लिए और अपने डेटाबेस खोज के बारे में, 821 00:45:47,000 --> 00:45:50,000 और यह काफी का शाब्दिक है जहां खुद फेसबुक इसकी शुरुआत है 822 00:45:50,000 --> 00:45:53,000 MySQL का उपयोग कर तो और अधिक MySQL सर्वर और तो और अधिक MySQL सर्वर का उपयोग 823 00:45:53,000 --> 00:45:57,000 पहले लंबे समय तक वे फिर से करने के बारे में वास्तव में कठिन सोच शुरू करने के लिए किया था 824 00:45:57,000 --> 00:46:00,000 डेटा की दुकान, कैसे चीजों को स्टोर करने के लिए भी अधिक कुशलता से, 825 00:46:00,000 --> 00:46:04,000 तो भले ही हम के लिए वास्तव दी ले जाएगा कि अनुक्रमित और अद्वितीय बाधाओं 826 00:46:04,000 --> 00:46:08,000 और इतना आगे सिर्फ काम वहाँ एक बहुत ही दिलचस्प बातचीत 827 00:46:08,000 --> 00:46:12,000 कि यह सब अंततः के लिए नेतृत्व कर सकते हैं, तो पता है कि हम सिर्फ सतह scratching रहे हैं 828 00:46:12,000 --> 00:46:17,000 क्या के अंत के लिए आप या अपनी परियोजनाओं के काफी बड़ा डेटा का एक सा हो सकता है. 829 00:46:17,000 --> 00:46:22,000 >> साथ उस ने कहा, चलो यहीं खत्म, और हम अगले सप्ताह आप देखेंगे. 830 00:46:28,000 --> 00:46:30,000 [CS50.TV]