[Powered by Google Translate] [8 सप्ताह जारी] [डेविड जे Malan] [हार्वर्ड विश्वविद्यालय] [यह CS50 है.] [CS50.TV] यह CS50 है, तो यह 8 सप्ताह के अंत है. हम निश्चित रूप से इस सप्ताह के शुरू में एक तूफान की एक सा था, इसलिए अभी यह वास्तव में सिर्फ तुम और मुझे इस लेक्चर हॉल में, लेकिन आज हम PHP के बारे में हमारी बातचीत जारी और वेब प्रोग्रामिंग के बारे में आम तौर पर और अधिक, और हम भी विचार शुरू डेटाबेस के, विशेष रूप से एक MySQL, जो इन दिनों काफी लोकप्रिय है कहा जाता है, इसके साथ ही scalability क्योंकि इसकी स्वतंत्र और खुला स्रोत होने की वजह से बड़े हिस्से में. लेकिन पहले, जहां हम पिछली बार छोड़ दिया है पर एक नज़र. याद है कि हम कई Frosh आईएमएस उदाहरणों को देख रहे थे, और इस घृणित रूप था कि मैं 15 साल पहले कुछ + के साथ आया क्रम में परिसर में रजिस्टर पर नए अंदर खेल के लिए छात्रों के लिए वास्तव में अब यात्रा यार्ड में Wigglesworth के बिना कुछ प्रॉक्टर के दरवाजे के नीचे कागज के एक भौतिक टुकड़ा स्लाइड. इसके बजाय हम सब कुछ ऑनलाइन चले गए, लेकिन है कि हम उपयोग कर की जरूरत है कुछ प्रौद्योगिकियों के, इसलिए, हम HTML, हाइपरटेक्स्ट मार्कअप लैंग्वेज की जरूरत है, जो फिर से इस मार्कअप भाषा चुनें जिसमें आप वेब पृष्ठों structurally करना है. सीएसएस के एक बिट का उपयोग इन दिनों, व्यापक शैली पत्रक, जिससे हम वेब पेज के stylizations का उपयोग एक से थोड़ा अलग वाक्यविन्यास का उपयोग कर, जबकि HTML उसके संरचना के बारे में सब कुछ था. हम भी एक वेब प्रोग्रामिंग भाषा शुरू करने की जरूरत है. इस मामले में, हम PHP का उपयोग करें, और PHP के लिए हमें अनुमति देने के लिए जा रहा है गतिशील उत्पादन सामग्री के रूप में अच्छी तरह के रूप में की तरह कार्यक्रम संबंधी बातें करते हैं ईमेल भेजने के रूप में ध्यान दें कि हम पिछले हफ्ते छोड़ दिया पर मामला था. याद है कि इस के लिए कोड 2 भागों में किया गया था. एक, हम froshims3.php था, और यह इसे के अंदर एक HTML फार्म के साथ बड़े पैमाने पर मार्कअप था, सीएसएस के एक छोटे से शैली विशेषताओं में बिट यहाँ इसलिए है कि फार्म ही पृष्ठ पर, लेकिन उस पार केंद्रित किया जाएगा हम कुछ प्रतिनिधि रूप आदानों, एक पाठ क्षेत्र, एक चेकबॉक्स था, कुछ रेडियो बटन, एक का चयन करें मेनू, और एक बटन सबमिट करें. और इस फ़ॉर्म के माध्यम से, हम एक फ़ाइल है कि जाहिरा तौर पर register3.php बुलाया गया था प्रस्तुत जो खुद इस तरह एक छोटे से कुछ देखा. अब,, याद है, register3.php कोड के सबसे ईमेल के बारे में सब कुछ था. यह सत्यापन के रूप है कि सुनिश्चित करने के लिए प्रस्तुत किया गया की एक छोटा सा था कि खेतों वास्तव में प्रदान किया गया है कि उम्मीद की गई थी. फिर हम कुछ PHP कार्यों बुलाया थोड़ा नया वाक्यविन्यास का उपयोग कर, भले ही यह सी से उधार लिया है यह तीर ऑपरेटर हमें ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग बुलाया कुछ का उपयोग करने के लिए अनुमति देता है. हम उस में यहाँ किसी भी विस्तार में नहीं जाना है, लेकिन अब के लिए पता यह वस्तुओं के साथ जुड़े कार्यों के होने का एक तरीका है, जो संरचना का एक विशेष प्रकार के होते हैं, जैसा कि हम सी. में देखा लेकिन अब के लिए, सिर्फ विश्वास पर ले कि यह सही उपयोग करने के लिए वाक्यविन्यास है जब इस PHPMailer पुस्तकालय की तरह एक पुस्तकालय का उपयोग कर. और फिर इस फाइल के अंत तक हम गतिशील एक ईमेल उत्पन्न किया था कि मेरे jharvard@cs50.net खाते में भेजा गया मेरे jharvard@cs50.net खाते से, और हम तदनुसार उपयोगकर्ता को सूचित किया है कि वे इस खेल के लिए पंजीकृत किया गया था. यह बहुत ज्यादा है Frosh आईएमएस साइट क्या उन सभी साल पहले किया था जब मैं इसे लागू, एक अलग भाषा में दी जाती है, लेकिन यह आप शायद शक्ति है कि आप से पता चलता है अब है कि आप अपने आप को व्यक्त कर सकते हैं न केवल प्रोग्राम सी की तरह एक भाषा में एक निम्न स्तर पर है, लेकिन एक बहुत उच्च स्तर पर इन ईमेल की तरह बहुत ही वास्तविक दुनिया अनुप्रयोगों के लिए वास्तव में हल के साथ कुछ असली दुनिया की समस्याओं. अब, ज़ाहिर है, भले ही मैं कुछ उत्पन्न करने के लिए इस स्क्रिप्ट का उपयोग करें jharvard@cs50.net, जो वास्तव में एक खाता है से गतिशील ईमेल कि मैं का उपयोग किया है, के लिए भेजने के लिए काफी सावधान रहना है कि वास्तव में अपने खुद के खातों से ही मेल, ऐसा न हो कि चीजें आप जीवन में गर्म पानी के एक बिट में मिलता है. साथ ही कहा, अब हम पूरी तरह एक अलग समस्या को हल करने के लिए संक्रमण, को बनाए रखना है राज्यों के. अब, यह वास्तव में क्या मतलब है? HTTP, हाइपरटेक्स्ट ट्रांसफर प्रोटोकॉल, वास्तव में एक राज्यविहीन प्रोटोकॉल है, और क्या इसका मतलब यह है कि जब आप Google.com की तरह कुछ खींचने के लिए और फिर एन्टर आमतौर पर अपने ब्राउज़र कताई आइकन के कुछ प्रकार है कि है तो कुछ वेब पेज में परिणामों को डाउनलोड किया जा रहा है, और फिर उस छोटे से आइकन कताई बंद हो जाता है, और कहा कि वास्तव में पता चलता है कि HTTP सर्वर से कनेक्शन के कुछ प्रकार पूरा कर लिया है और यह बात है. HTTP समझ में आता है कि इसे बनाए रखने नहीं राज्यविहीन है उसी तरह स्काइप में एक सर्वर के लिए लगातार कनेक्शन या Gchat क्योंकि HTTP के साथ धारणा यह है कि एक बार आप एक वेब पेज है कि यह दिलवाया है. अब, फेसबुक और गूगल मैप्स की तरह साइटों पर वास्तविकता में इन दिनों और चहचहाना और इस तरह एक बहुत अधिक गतिशीलता है जिससे के बाद भी कि आइकन कताई बंद हो जाता है कि आप वास्तव में अधिक अपडेट प्राप्त कर सकते सर्वर, अधिक tweets, फेसबुक पर स्थिति अद्यतन और इस तरह से. लेकिन यह भी है कि एक तकनीक है कि हम एक या दो सप्ताह के बारे में बात करेंगे उपयोग कर रहा है Ajax जावास्क्रिप्ट बुलाया भाषा का उपयोग कर के रूप में जाना जाता है, लेकिन दिन के अंत में, HTTP अभी भी राज्यविहीन है. और फिर भी अगर आप किसी भी तरह से एक उपयोगकर्ता के बारे में बातें याद रखना चाहते हैं के बाद भी वे अपने सर्वर से काट दिया PHP आप ऐसा करने का एक साधन वहन करता है क्योंकि, जैसा कि पिछली बार हमने देखा, PHP superglobals की एक संख्या है, और एक superglobal है, फिर से, एक विशेष वैश्विक चर कि वेब सर्वर और PHP के द्वारा ही आप को सौंप दिया है. आप के लिए कुछ भी करने के लिए इसे में मूल्यों डाल नहीं है, और superglobals हम इस प्रकार अब तक देखा है के बीच मिल रहे हैं और पोस्ट, जो है, जहां प्रपत्र फ़ील्ड स्वचालित रूप से आप के लिए डाल रहे हैं, के रूप में के रूप में अच्छी तरह से दूसरों की एक जोड़ी है कि हम अभी तक नहीं देखा है. $ _SERVER के अंदर कुछ विशेष चर स्वयं सर्वर से संबंधित हैं. क्या आईपी पता, प्रोटोकॉल HTTP या HTTPS क्या आप का उपयोग किया है, अनुरोध विधि क्या आप का उपयोग किया था की तरह है, तो वहाँ कुछ दिलचस्प है, सर्वर के बारे में रसदार विवरण, और वास्तव में, वहाँ में उपयोगकर्ता के रूप में अच्छी तरह से. वहाँ $ _cookie, जो है, जहां इन बातों कुकीज़ संग्रहित कर रहे हैं कहा जाता है. हम कुकीज़ पर समय नहीं आज स्वयं खर्च करेगा, लेकिन अब पता चला है कि एक कुकी सिर्फ जानकारी का एक छोटा सा टुकड़ा है कि एक वेब सर्वर एक वेब ब्राउज़र पर संयंत्र कर सकते हैं और अपने राम या अपने कंप्यूटर की हार्ड ड्राइव बारी एक उपयोगकर्ता के बारे में जानकारी की दुकान है, उदाहरण के लिए, अपने उपयोगकर्ता नाम इतना है कि वे इसे टाइप हर बार वे करें या कुछ नहीं है अद्वितीय संख्या या कि उपयोगकर्ता के लिए पहचानकर्ता इतनी है कि आप के बारे में सवालों की एक ही प्रकार के साथ उन्हें तंग नहीं है भविष्य में वरीयताओं, लेकिन ब्याज की सबसे अब सही $ देखना है. इस superglobal है, जो दूसरों की तरह, आप के लिए सौंप दिया है PHP द्वारा स्वचालित रूप से जब आप लिख रहे हैं PHP आधारित वेबसाइटों कुछ भी आप चाहते हैं, तार, integers स्टोर कर सकते हैं, अस्थायी अंक, मूल्यों, arrays, वस्तुओं, वास्तव में कुछ भी है कि आप चाहते हैं, और यह आप इसे इस तरह से स्टोर करने के लिए अनुमति देता है कि भले ही उपयोगकर्ता अब और फिर का दौरा वापस अब या 5 मिनट से अब एक मिनट आता है, क्योंकि वे कुछ अन्य लिंक पर क्लिक करने से पहले अपने समय लगेगा PHP यह सुनिश्चित करेंगे कि जो भी आप कि सत्र superglobal में डाल एक मिनट या 5 मिनट पहले अभी भी वहाँ हो सकता है जब उपयोगकर्ता रिटर्न. और हुड के नीचे इस superglobal के माध्यम से कार्यान्वित किया जाता है उन चीजों कुकीज़ कहा जाता है, लेकिन अब के लिए, यह सिर्फ एक अमूर्त है जिससे यह खरीदारी की टोकरी के कार्यक्रम बराबर की तरह है. आप जो भी हो, प्रोग्रामर, कि में डाल दिया superglobal साहचर्य सरणी वहाँ कुछ मिनट के बाद नंबर एक हो जाएगा जब तक आप इसे हटा या जब तक कि उपयोगकर्ता अपने या अपने ब्राउज़र पूरी तरह इस्तीफा. चलो कैसे इस बात को वास्तव में प्रयोग किया जाता है का एक उदाहरण पर एक नज़र रखना. कोड के टुकड़े आज के बीच counter.php में हम निम्नलिखित पंक्ति है. इस फाइल के शुरू में हम नीले टिप्पणी है, जो अब के लिए शुष्क कर रहे हैं की एक गुच्छा है. लेकिन 13 लाइन में हम एक नई लाइन है, session_start, और है कि वास्तव में क्या करता है वास्तव में यह क्या कहते हैं. यह सत्र शुरू होता है. यह आपको सक्षम बनाता है कि बड़ी superglobal देखना $ का उपयोग करने के लिए, और यह कि जैसे ही आसान है. अब, अगर हम 16 लाइन को देखने के लिए आगे बढ़ना है, इस वेब पेज के लिए क्या करने जा रहा है के लिए बाहर आंकड़ा करने की कोशिश. अगर (isset ($ _SESSION ["काउंटर"]) तो आगे जाओ काउंटर चर में दुकान, लोअरकेस काउंटर, $ देखना ["काउंटर"]. यह करने के लिए एक स्थानीय काउंटर चर बुलाया घोषित किया जा रहा है जो अंदर की यह जो कुछ भी superglobal के अंदर है की एक प्रति रख रहा है स्थान पर सत्र बुलाया "काउंटर. वरना, जाहिरा तौर पर, इस छोटे से स्थानीय चर काउंटर, 0 से प्रारंभ है. लेकिन फिर कुछ लाइनों के बाद 26 नोटिस में है कि काउंटर के सत्र की प्रतिलिपि, इसकी कुंजी, एक नया मूल्य सौंपा है जो इसके मौजूदा मूल्य प्लस 1 है. संक्षेप में, इस फाइल को अद्यतन करने के किया जा रहा है एक काउंटर है कि अंदर सत्र superglobal की संग्रहीत है यह 1 से incrementing, लेकिन यह पहली बार पिछले मूल्य के एक प्रतिलिपि को बरकरार रखे हुए है यह एक स्थानीय चर में संग्रहीत करके काउंटर $ कहा जाता है, और फिर यहाँ नीचे देखते हैं क्या रहता है. यह पता चला है यह बहुत ज्यादा है बस HTML. इस पेज के नीचे हम 37 लाइन में देख रहा हूँ कि मैं इस साइट का दौरा किया बार के काउंटर संख्या तो, वहाँ कुछ दिलचस्प सुविधाओं यहाँ है. एक, यह स्पष्ट रूप से एक चर है, लेकिन यह सिर्फ डालने के लिए पर्याप्त नहीं है अपने HTML के पाठ्यक्रम की वजह से शरीर में काउंटर $ अगर यह अपने HTML PHP के बीच सिर्फ वहाँ है लगता है कि बस HTML जा रहा है. आप सचमुच चाहते हैं कि स्क्रीन पर मुद्रित किया काउंटर. लेकिन बजाय PHP मोड में छोड़ने के द्वारा वाक्यविन्यास के इस टुकड़े के साथ हम गतिशील रूप से एक मान सम्मिलित कर सकते हैं बहुत क्या हम साथ पिछली बार किया था के लिए इसी तरह की भावना में तार में मूल्यों डालने. वास्तव में, यह सिर्फ कुछ इस तरह कह के लिए सचमुच एक आशुलिपि संकेतन है, (काउंटर $) प्रिंट या printf (काउंटर% s) की तरह कुछ भी, या यहाँ तक कि, जैसा कि आप ऑनलाइन या पाठ्यपुस्तकों में देखा हो सकता है, वहाँ PHP में एक समारोह गूंज कहा जाता है जो एक ही बात करता है, और उन सभी को बस अब winded तरीके हैं कह <=? इस मामले में एक तुम डाल की जरूरत नहीं है प्रश्न चिह्न के बाद शब्द PHP. इस लिए आशुलिपि संकेतन है, फिर से, क्या हम सिर्फ एक पल पहले देखा जो कुछ मूल्य गूंज रहा है. चलो देखते हैं क्या वास्तव में इस के अंत परिणाम है. मुझे हमारे counter.php फ़ाइल में खत्म हो जाना, और हम देखेंगे कि दाऊद सिर्फ कोड के साथ खेल के द्वारा एक गलती की है. चलो जाना तय है जो कुछ भी वह बँधा हुआ, और त्रुटि के लिए वहाँ हो लगता है, 37 लाइन पर चला गया. इस पृष्ठ के शीर्ष के अनुसार मैं इस साइट 0 बार दौरा किया है. ठीक है, चलो अब आगे जाना है, और ब्राउज़र के शीर्ष पर क्लिक करें आइकन पुनः लोड करें, और मैं लोड करें क्लिक करें, और अब मैं साइट समय 1, 2, 3, 4, 5, 6, 7, 8 का दौरा किया है. और वास्तव में, अगर हम इस पृष्ठ के स्रोत पर देखो वास्तविक स्रोत कोड बदल रहा है, और किसी भी PHP के पूर्ण अभाव नोटिस, और है कि क्योंकि PHP कोड का मूल्यांकन किया है या सर्वर साइड व्याख्या की है, और तो इसका मतलब है कि PHP स्क्रिप्ट के उत्पादन में है जो अंततः ब्राउज़र के लिए भेजा है, जो इस मामले में कुछ कच्चे HTML और कुछ कच्चे पाठ है. यहाँ पर क्या हो रहा है? खैर, कोड के अपेक्षाकृत कुछ लाइनों के साथ मैं स्टोर करने के लिए कर रहा हूँ लगातार कई सेकंड के पाठ्यक्रम खत्म हो गया है, या अगर हम लंबे समय के लिए पर्याप्त इंतजार कर रहे थे, मिनट, घंटे, एक तरीका है कि HTTP बनाता में कुछ मूल्य स्टेटफुल लगता है के रूप में हालांकि हम बनाए रखा है सर्वर के लिए इस कनेक्शन है, और यह सिर्फ याद रखने के मैं क्या यह पिछली बार से कहा, लेकिन वास्तविकता में वहाँ जटिलता की एक पूरी गुच्छा हुड के नीचे जा रहा है कुकीज़ है कि PHP मुझे इस भ्रम देने के लिए सक्षम है शामिल इस खरीदारी की गाड़ी की तरह सुविधा. अभी के लिए, एक तुच्छ उदाहरण है जहाँ हम सिर्फ एक पूर्णांक भंडारण कर रहे हैं, लेकिन यह है कि सुविधा वापस आने के लिए महान मूल्य का हो जाएगा जब हम अधिक जटिल परियोजनाओं के बारे में बात शुरू, उन के बीच समस्या 7 सेट. यह आपके बहुत पिछले CS50 में सेट समस्या है. मुझे पता है, यह बहुत दुख की बात है, लेकिन क्या आप मिल जाएगा कि हम समाप्त करने के लिए जा रहे हैं वास्तव में संक्रमण द्वारा सेमेस्टर के इस भाग सी के संदर्भ से निश्चित रूप से PHP के संदर्भ लेकिन जब बहुत ही बुनियादी बातों में से कुछ का उपयोग के बारे में हम कुछ समय के लिए बात की है. उद्देश्य के साथ 7 pset लिए CS50 वित्त को लागू करने के लिए है, जो अपने याहू वित्त या Google वित्त का अपना संस्करण है या यहाँ तक कि जिससे आप करने की क्षमता है Etrade.com दिए गए प्रतीकों के लिए शेयर कीमतों में लग रही है, लेकिन उससे भी अधिक आप "खरीदने" और "बेचने" स्टॉक करने की क्षमता है कि विभिन्न शेयर बाजारों पर कारोबार कर रहे हैं क्योंकि इस घर पृष्ठ के रूप यहाँ से पता चलता है, जो वास्तव में किस हद तक हम शुरू कर दिया है आप के लिए समस्या सेट, आप एक प्रवेश फार्म है कि एक उपयोगकर्ता नाम और पासवर्ड के लिए पूछ रहा है. यह एक बटन सबमिट करें है, लेकिन उसके बाद, जैसा कि हम अंत में देखेंगे, वहाँ कुछ भी नहीं है वास्तव में हुड के नीचे पर अभी तक चल रहा है क्योंकि यह रहता है के लिए आप नए उपयोगकर्ताओं को रजिस्टर करने की क्षमता को लागू करने के लिए, शेयर खरीदने के लिए, करने के लिए शेयरों को बेचने की क्षमता, वास्तव में मौजूदा स्टॉक की कीमतों में देखो. और वास्तव में, यह संभव के रूप में असली दुनिया के रूप में हो सकता है क्योंकि हम किया जाएगा कोड का एक सा है कि आप एक समारोह के साथ की अनुमति देगा शामिल याहू वित्त, जिसमें शानदार उपलब्ध मुक्त डेटा बनाता क्वेरी स्टॉक स्टॉक प्रतीक या टिकर प्रतीक के आधार पर कीमतों की तलाश के लिए, और आप दिन के मौजूदा स्टॉक की कीमत वापस मिलता है. आप वास्तव में देख रहे हैं इस विशेष pset में डेटा होगा के बारे में असली दुनिया के रूप में रूप में यह इतना मिलता है कि आप वास्तव में interfacing रहे हैं कर सकते हैं असली दुनिया स्टॉक, वास्तविक दुनिया की कीमतों के साथ, और हम देखेंगे कि कितना पैसा आप शायद कर सकते हैं अपनी समस्या सेट के साथ खेल के अगले कई दिनों में. लेकिन हम पहले कैसे डिजाइन करने के लिए कुछ है कि निश्चित रूप से अधिक जटिल है के लिए मंच तैयार counter.php की तुलना में, कि Frosh आईएमएस उदाहरण के इस प्रकार अब तक किसी की तुलना में अधिक जटिल है, और के लिए कुछ मानदंड लागू करने के लिए यहाँ की कोशिश है कि हमें की अनुमति दोनों 7 pset के लिए और शायद अपने अंतिम परियोजना के लिए अगर आप कुछ वेब आधारित अपने कोड अच्छी तरह से संगठित रखने के लिए, अपने आप को समझदार रखने, और सहयोग की ओर एक कदम उठाने के लिए, चाहे CS50 अंतिम परियोजना में या यदि आप भविष्य में कुछ कार्यक्रम जारी रखने से परे. यह सामान्य डिजाइन प्रतिमान कंप्यूटर विज्ञान के क्षेत्र में और अधिक आम तौर पर सॉफ्टवेयर के विकास में MVC, मॉडल दृश्य नियंत्रक के रूप में जाना जाता है, और यह एक मूर्खतापूर्ण परिचित करा रहा है कि एक बहुत अच्छा विचार का वर्णन है, जो एक कार्यक्रम के विभिन्न पहलुओं की अलग है, विशेष रूप से अलग तर्क या एक वेबसाइट के व्यापार तर्क रखते हुए इसलिए कि कुछ भी है कि चीजों की तरह शामिल कार्यों बुला और डेटाबेस querying और की तरह अपने HTML के बीच नहीं होता लेकिन बजाय अलग - अलग फ़ाइलों में, और वास्तव में, इस एक फ़ाइल आम तौर पर है कि आप नियंत्रक बुलाया है है कि वास्तव में आपरेशन के पीछे दिमाग, और हम एक उदाहरण देखेंगे बस एक पल में इस का. एक मॉडल है जो कोड प्रोग्रामिंग है कि अपने डेटाबेस के लिए बात कर रही है, कि याहू वित्त और इस तरह बात करती है, और फिर वहाँ वी MVC में देखा गया है, सामान के सभी कि सौंदर्यशास्त्र फ़ाइलें है कि वास्तव में होते हैं से संबंधित है अपने HTML, शायद अपने सीएसएस और पसंद है. यहाँ विचार है, के रूप में इस तस्वीर से पता चलता है, कि नियंत्रक फ़ाइल है, के रूप में हम जल्द ही देख सकते हैं और के रूप में आप विशेष रूप से 7 pset में देखेंगे, कि दुनिया अपने वेब ब्राउज़र के माध्यम से बात करती है. कि फाइल जो सार्वजनिक इंटरनेट पर दौरा किया जाता है, लेकिन संभवतः एक मॉडल नियंत्रक से बात करती है, जो एक या एक से अधिक अन्य फ़ाइलों कि डेटा से संबंधित कोड शामिल है, कोड डेटाबेस और तरह से संबंधित है, और फिर इसे करने के लिए वार्ता नियंत्रक एक या एक से अधिक अन्य विचारों के रूप में जाना जाता फाइलें, जो एक वेब पेज के सौंदर्यशास्त्र, एक तरह की टेम्पलेट्स हैं, कि निवेश के रूप में कुछ डेटा ले सकता है, लेकिन दिन के अंत में एक दृश्य के अंदर ही तर्क है कि डेटा का प्रतिपादन किया जाना चाहिए, एक पाश पर iterating और वास्तव में बाहर कुछ थूकना HTML आधारित गायन एक पीडीएफ की तरह उसके या कुछ भी. MVC के बारे में अच्छी बात यह है कि आप अलग अलग विचार हैं कर सकते हैं युक्ति के प्रकार, फ़ाइल है कि आप वास्तव में प्रारूप के प्रकार के आधार पर पर आधारित उपयोगकर्ता को दिखाना चाहते हैं. चलो कुछ उदाहरण उत्तरोत्तर अधिक जटिल और अच्छी तरह से डिजाइन पर एक नज़र रखना 0 यहाँ संस्करण के साथ शुरू करने से पहले. मुझे आगे जाना है और हमारे MVC निर्देशिका में आज खोल एक फ़ाइल 0 निर्देशिका में index.php कहा जाता है. सूचना यह एक सुपर सरल और बहुत underwhelming वेबसाइट कि CS50 के लिए एक होमपेज में से 0 संस्करण की तरह है, नोटिस और कैसे हम व्याख्यान के लिए एक कड़ी है, हम सिलेबस के लिए एक कड़ी है, और अगर मैं व्याख्यान नोटिस कड़ी का अनुसरण कि यूआरएल ऊपर तक lectures.php के लिए बदलने जा रहा है. अगर मैं तो 1 सप्ताह के नोटिस के लिए लिंक का पालन करें कि week1.php URL परिवर्तन. वहाँ एक काफी सरल सौपानिक संरचना यहाँ किया जा रहा है. चलो यह कैसे बाहर रखी है हुड के नीचे एक त्वरित देखो, और वास्तव में, अगर मैं index.php में देखो यह बहुत आसान है. वास्तव में, हालांकि मैं यह एक PHP फ़ाइल कहा जाता है वहाँ कोई वास्तविक प्रोग्रामिंग कोड है. वहाँ एक टिप्पणी है कि मैं PHP में यहाँ सिर्फ इतना लिखा उपयोगकर्ता अंत नहीं इसे देखने के है. बेशक, कुछ के रूप में पहले है कि PHP टैग के बीच में है हो जाता है व्याख्या की है, भले ही यह एक टिप्पणी है, और एक टिप्पणी की व्याख्या करने के लिए बस का अर्थ है यह दिन के अंत में दूर फेंक नहीं है और वास्तव में ब्राउज़र के लिए भेज तो यहाँ सब कुछ सिर्फ सौंदर्यशास्त्र है. अगर मैं ऊपर खुला इसी तरह lectures.php यह अभी भी एक कठिन कोडित फाइल है. यह करने के लिए कुछ कहा जा होता php. लेकिन यह वास्तव में सिर्फ html, और week1.php, week2.php. इसी तरह बस मार्कअप रहे हैं, तो इस डिजाइन की कमियों का एक गुच्छा है. एक, यह कॉपी / पेस्ट की एक बड़ी राशि है. हालांकि केवल बात यह है कि इन फाइलों में बदल रहा है unordered सूची है, li टैग, मैं फिर भी डॉक्टर प्रकार, HTML, सिर, शीर्षक, शरीर के करीब, करीब HTML और अधिक हर एक फ़ाइल में है, जिसका मतलब है कि अगर मैं कभी चाहता पुनर्गठन करने के लिए इस वेब पेज या यह restylize मैं में जाना है और बदलने के लिए है इन सभी स्वयं या कुछ भारी फ़ाइलों को खोजने के लिए और जगह. चलो यहाँ 1 संस्करण में एक चालाक, अब सोच डिजाइन की ओर एक कदम ले के रूप में प्रति जिससे मुझे पढ़ा है कि हम तो शामिल है कि आप के साथ साथ खेल सकते हैं इन अधिक घर नोटिस में इत्मीनान से है कि हम यहाँ है संस्करण 1 में फ़ाइलों का एक इस साइट के सारांश, और ऐसा लगता है कि मैं इसे ले लिया है पर अपने आप को बाहर कारक कुछ आम कोड, header.php और footer.php. ठीक है, क्या उन में से 1 के अंदर है पर एक नज़र रखना. Header.php परिचित लग रहा है, लेकिन यह जहां काट नोटिस? सही लाइन 19 के बाद, कि है कि सब कुछ सामान्य था फ़ाइलों index.php, lectures.php से, Week1 और पिछले उदाहरण से week2.php. मैंने क्या किया था कॉपी और कटौती सब कुछ है कि उन सभी फ़ाइलों को आम था, यह एक अलग हेडर फाइल में डाल दिया, और इसी तरह footer.php में मैं एक ही सिद्धांत लागू किया जिसके तहत केवल दिलचस्प लाइनों footer.php में इन दो, शरीर के करीब और करीब HTML हैं. लेकिन क्या अब इस का मतलब है कि नए संस्करण में index.php नोटिस का कितना सरल इसे प्राप्त कर सकते हैं. दी, थोड़ा अधिक गुप्त देख रहे हैं, थोड़ा कम एक सहज ज्ञान युक्त ऊपर से नीचे तक का पालन करें, लेकिन मेरे भगवान, कि अतिरेक के सभी अब चला गया है. हम बुलाया सचमुच ऊपर ऊपर की आवश्यकता होती है एक PHP समारोह का उपयोग करने की आवश्यकता है, जो बहुत याद ताजा करती है, याद है, सी # तंत्र में शामिल हैं. हम शीर्ष पर header.php की आवश्यकता. हम तल पर footer.php की आवश्यकता होती है, और केवल एक चीज है कि अलग है या इस फाइल के बारे में विशेष सामग्री है कि यह करने के लिए अद्वितीय होने का मतलब है है. अगर मैं तो कहते हैं, में lectures.php जाना, एक ही सिद्धांत लागू होता है. फिर, शीर्ष ऊपर कुछ टिप्पणी की, लेकिन फिर मैं शीर्षक की आवश्यकता होती है, पाद लेख की आवश्यकता होती है, और बीच में यह केवल सामग्री है कि वास्तव में बदल गया है. और अगर हम 1 सप्ताह और सप्ताह में देखा 2 हम देखना चाहते हैं कि एक ही सिद्धांत लागू किया गया था. ठीक है, हम काफी वहाँ नहीं कर रहे हैं. चलो 2 संस्करण पर एक नज़र, जो एक समान संरचना है, लेकिन अब नोटिस मैं कुछ और शुरू की है. लाइन 10 में मैं helpers.php शुरू की है, जो जाहिरा तौर पर सहायक कार्यों में शामिल है. एक सहायक समारोह आम तौर पर एक समारोह में अपेक्षाकृत कम है कि आप के लिए आप विभिन्न स्थानों में बाहर मदद लिखते हैं, और देखते हैं क्या helpers.php के अंदर है. इस मामले में, ऐसा लगता है जैसे कि यह 2 कार्य किया है. हमारे घन उदाहरण के साथ दूसरे दिन से याद आप PHP में अपने खुद के कार्यों को परिभाषित कर सकते हैं, और अब मैं क्या किया है मैंने परिभाषित कार्यों पाद लेख प्रस्तुत करना और शीर्ष लेख प्रस्तुत करना करने के लिए कहा जाता है, जो पहले के एक पैरामीटर लेता डेटा कहा जाता है, डिफ़ॉल्ट जिसका मूल्य एक खाली सरणी, वहाँ के रूप में सुझाव दिया गया है, और हम वास्तव में इस PHP के नवीनतम संस्करण में लिख सकते हैं और भी अधिक succinctly खुले वर्ग कोष्ठक कह कर, वर्ग कोष्ठक में बंद कर दिया. यह 0 आकार के एक खाली सरणी, लेकिन फिर भी एक सरणी का मतलब है. इस निकालने के समारोह में कहा कि एक छोटे से विशेष है यह क्या करता है यह अपने तर्क के रूप में एक साहचर्य सरणी लेता है कि 0 या अधिक महत्वपूर्ण मूल्य जोड़े हैं, और यदि आप foo की कुंजी है और निकालने समारोह बार के एक मूल्य ऐसी स्थिति में अब 11 लाइन के रूप में बनाता है, आप एक स्थानीय चर $ foo मूल्य जिसका बार है कहा जाता है. और, यदि आप डेटा सरणी में अधिक कुंजी और मूल्यों था इसी तरह वे स्थानीय दायरे में निकाला जाएगा नाम या अंतरिक्ष इतना है कि footer.php और यहाँ नीचे एक ही विचार है कि header.php उन चर के लिए उपयोग किया है. वास्तव में, मुझे फिर से खोलने के header.php और अब यह क्या इस संस्करण में की तरह लग रहा है की ओर ध्यान आकर्षित. बजाय हर पृष्ठ के लिए शीर्षक के रूप में कड़ी मेहनत CS50 कोडिंग नोटिस गतिशीलता है कि अब संभव है. लाइन में 5 मैं एक शीर्षक चर गूंज रहा है, लेकिन पहले मैं एक htmlspecialchars बुलाया समारोह है कि शीर्षक चर गुजर रहा हूँ. किसी समारोह में भाग लेने के लिए एक बेवकूफ नाम, लंबे समय के रूप में यह है, लेकिन यह सच है कि वह क्या कहते हैं. यह सुनिश्चित करता है कि कोई विशेष वर्ण कि स्ट्रिंग में पारित किया गया है में ठीक से HTML बच रहे हैं. यह वास्तव में कुछ से बचने का एक तरीका एक क्रॉस साइट स्क्रिप्टिंग हमले बुलाया है किसी जिससे दुर्भावनापूर्ण रूप से गलती से या कर सकते हैं अपनी वेबसाइट में अपने खुद के HTML इंजेक्षन कुछ फार्म में चिपकाने के द्वारा, उदाहरण के लिए, कुछ है कि आप काफी नहीं है, विशेष रूप से जावास्क्रिप्ट कोड की उम्मीद कर रहे थे, के रूप में हम के बारे में एक सप्ताह या दो बार में बात करेंगे. अब यह header.php, यह एक दृश्य है इस अर्थ में है कि यह आप aesthetically कुछ डेटा सेट की सामग्री को देखने की अनुमति देता है. लेकिन और अधिक विशेष रूप से, यह एक टेम्पलेट है. यह एक खाका की तरह अब हम क्या हर पृष्ठ के शीर्षक की तरह देखने के लिए करना चाहते हैं, लेकिन वहाँ कुछ गतिशीलता में है कि हम शीर्षक गतिशील सम्मिलित करने के लिए करना चाहते हैं शीर्षक चर के आधार पर कि जब हम फोन फिर से निकाला गया था, सौंपनेवाला हैडर समारोह. अब, अगर हम पाद लेख में प्रस्तुत करना देखा, वहाँ वास्तव में सही है कि अब ज्यादा इस्तेमाल नहीं क्योंकि footer.php में वहाँ जो भी कोई गतिशीलता है. वहाँ हो सकता है, लेकिन फिलहाल यह 2 टैग के एक कठिन कोडित सूची सकता है, लेकिन एक ही विचार पर लागू होता है, इतना है कि वास्तव में क्यों पता चलता है हम समय बर्बाद सौंपनेवाला हैडर और एक प्रस्तुत करना पाद लेख समारोह होने? मुझे बजाय अब संस्करण 3 में जाना, और सहायकों में 3 संस्करण में मैं करने के लिए यह और भी अधिक को आसान बनाने में करने का फैसला किया. चलो मुझे एक सौंपनेवाला समारोह है. मुझे यह एक और तर्क ले, इस समय टेम्पलेट कहा जाता है, जो एक टेम्पलेट के नाम होने का मतलब है, और फिर मैं ढिठाई से उस चर के मूल्य के लिए. php जुटना होगा, और फिर अगर यह foo.php bar.php, या header.php और footer.php मौजूद है, तो मैं आगे जाना है और चर डेटा निकालने के लिए जा रहा हूँ और फिर उस पथ की आवश्यकता है. दूसरे शब्दों में, इस का उपयोग करने के लिए अब, अगर मैं index.php को खोलने के लिए सूचना है कि मैं सौंपनेवाला हैडर अब फोन नहीं करते. मैं बस से प्रस्तुत करना कहते हैं, लेकिन मैं शीर्ष लेख की एक उद्धृत मूल्य में पारित यह स्पष्ट करने के जो टेम्पलेट मैं वास्तव में लोड करने के लिए करना चाहते हैं. तो यहाँ नोटिस कि मैं क्या कर रहा हूँ. मैं गतिशील शीर्षक की एक चाबी में गुजर रहा हूँ, CS50 के एक मूल्य है, और यह भी, जैसा कि हम पहले देखा था, PHP के नवीनतम संस्करण में अधिक संक्षिप्त किया जा सकता है जहां मैं वर्ग कोष्ठक के साथ सरणी समारोह की जगह ले सकता है, जो मैं प्रस्ताव भी अधिक पठनीय और निश्चित रूप से है एक छोटे से टाइप करने के लिए आसान है. और जाहिर है, नीचे में प्रस्तुत करना पाद लेख फोन के साथ, हम सभी में एक दूसरा तर्क में गुजर रहा है, कोई साहचर्य सरणी परेशान नहीं है, क्योंकि वहाँ कुछ भी नहीं है कि पाद लेख के अंदर गतिशील है. यह सिर्फ HTML के लिए कुछ करीबी टैग है. अच्छा, हम वास्तव में बातें यहाँ सफाई की दिशा में कदम उठा रहे हैं, लेकिन मुझे 2 अंतिम उदाहरण खुला. यह एक, 4 नंबर, सूचना है कि मैं एक सचेत निर्णय कर लिया है अब अंत में मेरी फाइल करने के लिए कुछ पदानुक्रम का उपयोग करके पिछले उदाहरण पर सुधार. सूचना है कि इस सारांश में, यह मेरे पढ़ने में, मैं शुरू की है एक निर्देशिका और एक नमूना निर्देशिका शामिल जिसका सामग्री बातें मैं शामिल करना चाहते हो जा रहे हैं और टेम्पलेट्स कि मैं करने के लिए प्रस्तुत करना चाहते हैं, क्रमशः. यह सच है कि मुझे गुदा किया जा रहा है और चीजों को साफ रखने की कोशिश कर रहा है, संबंधित फ़ाइलों को एक साथ रखने के लिए, लेकिन अंत परिणाम है कि अब हम एक थोड़ा tidier सेटअप है, लेकिन हम अब याद है उदाहरण के लिए, index.php, जब हम फ़ाइल helpers.php की आवश्यकता होती है हम अब यह आवश्यकता होती है माध्यम / helpers.php है के बजाय सिर्फ helpers.php कह रही है क्योंकि अब यह वास्तव में एक उप निर्देशिका में है. अब, एक अलग रूप में, आप इन उदाहरणों और कुछ अन्य लोगों में देखेंगे आवश्यकता की तरह काम करता है, एक बार की आवश्यकता है. वहाँ वास्तव में एक समारोह में ही शामिल कहा जाता है, और वे सब थोड़ा अलग व्यवहार किया है. यहाँ मैं का कहना है कि एक बार की आवश्यकता के लिए सुपर स्पष्ट कर दूं कि मैं केवल उन चाहते सहायकों को अपने प्रोजेक्ट में एक बार भी शामिल हैं. लेकिन अगर मैं सावधान कर रहा हूँ और अगर मैं वास्तव में अपने तर्क के माध्यम से ठीक से सोच रहा हूँ यह भी सिर्फ कहने के लिए पर्याप्त ऊपर शीर्ष की आवश्यकता होती है चाहिए इतने लंबे समय के रूप में मैं अपने आप को गलती से है कि एक ही फाइल में कहीं नहीं की आवश्यकता नहीं है. वास्तव में, यह थोड़ा और अधिक कुशल बातें तो कर रहे हैं का उपयोग करने का एक तरीका है एक बार की आवश्यकता होती है, तो मैं इसे नीचे ट्रिम करने के लिए बस की आवश्यकता होगी. चलो एक कदम आगे ले. अब यह आखिरी उदाहरण, 5 संस्करण, एक भी क्लीनर फ़ोल्डर पदानुक्रम है. सूचना मैं यहाँ क्या किया है प्रति मुझे इस अंतिम संस्करण में पढ़ा अब मैं अपने HTML निर्देशिका है, जो मैं यह सब समय पड़ा है, लेकिन वहाँ के अंदर अब केवल index.php lectures.php, है, week1.php और week2.php. भी शामिल है निर्देशिका अब HTML निर्देशिका के बगल में रहता है, तो एक भाई के रूप में एक ही स्तर पर है, तो बात करो. तो टेम्पलेट्स फ़ोल्डर करता. यहाँ कुंजी takeaway है मैं थोड़ा और अधिक संरचना शुरू की है, लेकिन अब प्रमुख विशेषता है कि केवल फाइल है कि वेब सुलभ, सार्वजनिक रूप से पता होना चाहिए सार्वजनिक इंटरनेट पर एक यूआरएल द्वारा अपने HTML निर्देशिका में हैं. इस बीच अन्य, फाइलें, helpers.php, footer.php, header.php, कि यकीनन शायद अधिक संवेदनशील होते हैं, शायद सहायकों वास्तव में कुछ उपयोगकर्ता नाम और पासवर्ड या कुछ बौद्धिक खदान की संपत्ति हैं, के कार्यों मैं वास्तव में दुनिया को देखने के लिए नहीं करना चाहते हैं, यहां तक ​​कि अगर गलती से. यह सार्वजनिक HTML निर्देशिका के बाहर रखने के लिए अच्छा अभ्यास है किसी भी फाइल है कि खुद की जरूरत नहीं सार्वजनिक होना. आप सभी को इस मामले में क्या करना है जब में देख रहे हैं, उदाहरण के लिए, है, HTML निर्देशिका index.php फ़ाइल, नोटिस हम सिर्फ एक छोटे से अधिक सावधान रहना है जब आवश्यकता होती है या एक बार इस फ़ाइल की आवश्यकता है. मैं पहले करने की जरूरत है .. मूल निर्देशिका पर जाना, तो / / helpers.php शामिल पीठ में नीचे गोता फ़ाइल है कि मैं के बारे में परवाह है. MVC पर तो कोई सवाल या यह अपेक्षाकृत सरल उसके अवतार? और मुझे स्पष्ट है कि हम पर काफी एक सा ध्यान केंद्रित यहाँ वी, विचारों और इन खाकों के बाहर फैक्टरिंग. हम वास्तव में से एम सी प्रतिष्ठित नहीं है अभी. वास्तव में, वहाँ वास्तव में कोई एम यहाँ है, और यहां तक ​​कि हमारे सी, नियंत्रक, सच है कि सब कुछ नहीं कर रही है, लेकिन आप बहुत अधिक मिल जाएगा दोनों MVC से उन 2 पत्र के साथ परिचित, या यों कहें, तुम सी के साथ बहुत अधिक परिचित मिल जाएगा समस्या 7 सेट है, इसलिए वहाँ क्षितिज पर उस से अधिक के लिए MVC में. प्रश्न? वास्तव में यहाँ कोई नहीं है. ठीक है, चलो अब आज के लिए दूसरे और अंतिम विषय पर कदम. यह एक डेटाबेस की शुरूआत है. इस बिंदु तक हम भंडारण डेटा के कुछ तरीके लिया है. हम चर का उपयोग किया है. वापस हमारे सी फाइल में, मैं / हे चर्चा हम पाठ फ़ाइलों का उपयोग शुरू कर दिया है और fprintf तरह फ़ाइलों का उपयोग कर, और फिर हम भी शुरू CSV के बारे में बात कर एक छोटा सा, अल्पविराम से अलग मान फ़ाइलें, तो इन सब के हमें डेटा संग्रहीत की अनुमति दी या तो गैर लगातार या लगातार. लेकिन फिर भी CSVs वास्तव में खोज करने के लिए अनुकूल नहीं हैं और डालने और हटाने. यह वास्तव में सिर्फ एक बेवकूफ पाठ फ़ाइल अल्पविराम के द्वारा अलग है पंक्ति से पंक्ति से पंक्ति से पंक्ति, इसलिए यदि आप चाहते हैं खोज अच्छा तुम कर सकते है कि फ़ाइल वास्तव में रैखिक खोज है. आप फ़ाइल के शीर्ष पर शुरू कर दिया है, में पूरी बात पढ़ें, और ब्याज की कुछ मूल्य के लिए देखो. यदि आप इसे में सम्मिलित करना चाहते हैं आप एक ही बात करना है, इसे खत्म पुनरावृति और एक खास जगह में डालने, और वास्तव में, आप खोज तर्क अपने आप के सभी करना है. आप एक CSV फ़ाइल पर चालाक मिलान जब तक आप अपने आप को कोड लिखने के पैटर्न नहीं कर सकते. आप एक CSV फ़ाइल के छानने का काम नहीं कर सकते हैं जब तक आप अपने आप को कोड लिखें. यह अच्छा नहीं होगा अगर किसी और के सभी प्रयास में डाल दिया वास्तव में आसान है और आसान प्रविष्टि खोज और विलोपन और अद्यतन और इतना आगे? यह वास्तव में एक डेटाबेस क्या है. एसक्यूएल, संरचित क्वेरी भाषा है, अभी तक एक और भाषा है कि हम आज यहां शुरू कर रहे हैं, लेकिन यह भी काफी सुलभ है, और क्या हम वास्तव में करने जा रहे हैं सिर्फ यह है बाहर सबसे प्रमुख के कुछ बांधना विशेषताओं है कि तो 7 pset के लिए, और अगर आप कुछ वेब आधारित, अपने अंतिम परियोजना है, आप अपने आप को अभिव्यक्त करने की क्षमता है डेटा प्रश्नों के मामले में. आप के लिए एक छोटे से स्टोर करने की क्षमता या डेटा का एक बहुत है एक बहुत अधिक संरचित तरीका है कि दिन के अंत में अपने जीवन को आसान बनाने के क्योंकि एसक्यूएल के साथ आप अपने आप को व्यक्त कर सकते हैं और अधिक ठीक है, बहुत प्रक्रिया के क्रम में डेटा के कुछ सबसेट डेटा का एक बड़ा कोष से वापस मिलता है. आप एक डेटाबेस के बारे में सोच कर सकते हैं, इस मामले में, एक SQL डेटाबेस में वास्तव में एक्सेल की तरह, नंबर या जहां यह एक स्प्रेडशीट, या शायद कई स्प्रेडशीट्स, और पाठ्यक्रम के एक स्प्रेडशीट,, पंक्तियों और स्तंभों है, और है कि क्योंकि SQL डेटाबेस अर्थों में संबंधपरक संबंधपरक, कि वे इन तालिकाओं के मामले में डेटा स्टोर, पंक्तियों और स्तंभों. वे उच्च एक स्प्रेडशीट की तरह कुछ की तुलना में प्रदर्शन कर रहे हैं, और एक स्प्रेडशीट के लिए एक मानव द्वारा इस्तेमाल के लिए होती है. एक डेटाबेस के लिए एक प्रोग्रामर द्वारा इस्तेमाल किया जा मतलब है तो इसके खिलाफ कोड लेखन, एक डेटाबेस का अवतार या तो कमांड लाइन होने जा रहा है. वहाँ से बाहर सबसे लोकप्रिय संबंधपरक डेटाबेस की एक है, फिर से, MySQL, जो शानदार मुक्त है, बहुत उच्च प्रदर्शन, और यह है कि क्या फेसबुक पर है और कुछ हद तक बहुत जल्दी है आज भी इस्तेमाल किया अपने डेटा का एक बहुत की दुकान है, और हम एक पल में देखेंगे अपेक्षाकृत सरल आज्ञाओं का उपयोग करते हुए कहा कि हम डेटा डालने डेटा, अद्यतन डेटा का चयन कर सकते हैं, डेटा और इस तरह हटाने के लिए, लेकिन शुक्र है, वहाँ एक और अधिक उपयोगकर्ता के अनुकूल इंटरफेस है की तुलना में सिर्फ एक काले और सफेद प्रॉम्प्ट पर यहाँ टाइप. हम 7 pset के लिए और एक मुक्त phpMyAdmin नामक उपकरण से परे का उपयोग करेंगे. नाम संयोग है. उपकरण के लिए PHP में लागू होता है, लेकिन यह है कि मूल रूप से अप्रासंगिक है. PhpMyAdmin के बारे में उपयोगी है यह है कि यह एक वेब आधारित उपयोगिता है. हम है यह आप के लिए उपकरण में पहले से स्थापित है, और इसके साथ आप एक डेटाबेस में तालिका बना सकते हैं, आप डेटा सम्मिलित करने के लिए, डेटा को हटा सकते, और आम तौर पर देख एक काफी उपयोगकर्ता के अनुकूल वातावरण में अपने डेटा. अपने उपयोगकर्ताओं के लिए phpMyAdmin का उपयोग करने के लिए नहीं जा रहे हैं. यह वास्तव में सिर्फ एक प्रशासनिक या डेवलपर उपकरण है जो के साथ देख सकते हैं और अपने डेटा के आसपास प्रहार और बाहर आंकड़ा यह कैसे संरचना करने के लिए, आप की तरह अपने आप को एक्सेल या संख्या का उपयोग हो सकता है, लेकिन यह visualizing क्या हुड के नीचे जा रहा है का एक शानदार तरीका होने जा रहा है इतनी है कि आप दिलचस्प समस्या को हल करने पर ध्यान केंद्रित कर सकते हैं और इतना नहीं रहस्यमय आज्ञाओं पर. चलो डेटा का एक उदाहरण है कि सारणी के रूप में संग्रहित किया जा सकता है पर एक नज़र रखना एक संबंधपरक डेटाबेस में. यहाँ ऐसा ही एक उदाहरण है. अब, दुर्भाग्य से, phpMyAdmin फेंक रास्ते से पक्ष पर भी गलती कई शब्दों और तुम पर ग्राफिक्स, लेकिन अगर आप पर बस में सान ID स्तंभ, उपयोगकर्ता नाम स्तंभ, और हैश स्तंभ, यह प्रभावी रूप से एक स्प्रेडशीट है, लेकिन यह एक टुकड़ा होता है उपकरण की एक तालिका के अंदर एक फ़ाइल का उपयोग है कि हम आप के साथ समस्या 7 सेट में प्रदान. विशेष रूप से, हम आप का प्रतिनिधित्व करता है कि एक फ़ाइल दे एक उपयोगकर्ता की मेज, तो एक 3 कॉलम के साथ उपयोगकर्ताओं युक्त स्प्रेडशीट, एक जो की एक अद्वितीय आईडी 1 से शुरू किया जा रहा है और उसके बाद incremented है. दूसरे स्तंभ एक उपयोगकर्ता नाम है, और आप में से जो हैकर किया, 2 pset के लिए हैकर संस्करण, कुछ कम से कम इन उपयोगकर्ता नामों की पहचान हो सकती है. दाएँ हाथ की ओर पर पासवर्ड रहे हैं, लेकिन वे शाब्दिक पासवर्ड नहीं कर रहे हैं. वे उसके hashes हो तो, यह पता चला कि एक डेटाबेस में पासवर्ड भंडारण एक बहुत बुरा विचार है. तुम सब शायद कुछ वेबसाइट के कुछ बिंदु पर पढ़ा है या कुछ कंपनी के डेटाबेस के साथ समझौता किया जा रहा है और फिर आप के लिए है अपना पासवर्ड बदलने के लिए, आप चीजों पर रिफंड प्राप्त करने की आवश्यकता है क्योंकि कुछ बुरा आदमी वास्तव में एक परिणाम के रूप में अपने खाते में तोड़ दिया. स्पष्ट पाठ में पासवर्ड भंडारण, एक डेटाबेस में अनएन्क्रिप्टेड पूरी तरह से गदहे के बारे में है, और अभी तक यह बहुत मनोरंजक है तो कुछ बहुत अच्छी तरह से ज्ञात कंपनियों के बारे में पढ़ने के लिए कभी कभी प्रेस में जिसका डेटाबेस से समझौता कर रहे हैं, और वह हिस्सा अजीब बात है, नहीं है, लेकिन तथ्य यह है कि डेटाबेस होते unencrypted पासवर्ड कोड की एक पंक्ति के साथ क्योंकि सचमुच हास्यास्पद है आप है कि विशेष रूप से खतरे के खिलाफ की रक्षा कर सकते हैं, और है कि हम यहाँ क्या किया है. यहां तक ​​कि हमारे नकली थोड़ा CS50 वित्त संस्करण के लिए हम सिर्फ अच्छे उपाय के लिए पासवर्ड encrypting कर रहे हैं, और तथ्य यह है कि इन सभी पासवर्ड की शुरू करने के साथ $ 1 $ सिर्फ एक सम्मेलन है. बस का अर्थ है कि वे एन्क्रिप्टेड या वास्तव में hashed हो, जो एक तरह से एक एन्क्रिप्शन समारोह की तरह है आप MD5 बुलाया कुछ के साथ अपने प्रभाव जिससे पलट नहीं सकते. तथ्य यह है कि उस के बाद 50 का मतलब है कि एक नमक मूल्य 50 के लिए एक को छोड़कर इन सभी पासवर्ड की hashing के लिए इस्तेमाल किया गया था. पाठ्यक्रम के, मेरा, जैसा कि आप देख सकते हैं, हा, एक अलग नमक का उपयोग कर रहा था, तो आप में से जो थोड़ा फिसल गया शायद 2 हैकर कि हमारे प्रयुक्त होने का परिणाम रहा है हो सकता है दूसरों की तुलना में एक अलग हैश क्योंकि मेरे पासवर्ड वास्तव में है ही वहाँ कुछ अन्य उपयोगकर्ता के रूप में. वास्तव में, यदि आप इंतजार कर रहा है पता लगाने के लिए इन सभी सप्ताह यहाँ क्या उन पासवर्ड पासवर्ड है कि आप को चुनौती दी थी थे समस्या 2 सेट है, तो कोई भी मुश्किल के हैकर संस्करण में दरार. वास्तव में, मालन jharvard के रूप में एक ही था, लेकिन अगर हम वापस जाने के लिए वे अलग देखा. क्रिमसन में jharvard पर ध्यान दें क्योंकि वे अलग नमकीन थे. एक तरीका है कि एल्गोरिथ्म में परेशान किया गया था मूल्य हैश, एन्क्रिप्टेड मूल्य एक छोटे से अलग लग रहा है क्योंकि जानकारी थोड़ा अलग थे, लेकिन हुड के नीचे पासवर्ड अभी भी अंततः गहरा लाल था. अब, जो इस बारे में कौन परवाह करता है? खैर, हम आपको नमूना उपयोगकर्ताओं के साथ प्रदान कर रहे हैं, नमूना उपयोगकर्ता नाम और उनके पासवर्ड की hashes इतनी है कि आप वास्तव में कुछ है ग्राहकों CS50 वित्त के लिए जब आप पहली बार अपने कोड के साथ जमीन मिलता है. आप MySQL के अंदर और अधिक तालिकाओं को लागू करने के लिए डेटाबेस के अंदर करना होगा. आप अधिक स्प्रैडशीट्स बनाने, प्रभावी ढंग से होगा, लेकिन हम आपको यह एक देने का फैसला किया तुम्हें पाने के लिए शुरू कर दिया है, और आप देखेंगे कि समस्या सेट विनिर्देश आप इस तालिका आयात करने की प्रक्रिया के माध्यम से चलता है और यह भी समझा विशेषताओं में से कुछ क्या कर रहे हैं, और आप यह भी देखना है कि हम आप कोड के साथ प्रदान करेंगे hashing या इन पासवर्ड एन्क्रिप्शन संभाल करने के लिए, ताकि आप MD5 या की तरह सब के बारे में वास्तव में क्या है के बारे में बहुत ज्यादा चिंता करने की जरूरत नहीं है. तो, SQL, संरचित क्वेरी भाषा. यह वह जगह है, काफी बस, भाषा हम 7 pset में उपयोग के बारे में शुरू कर रहे हैं और शायद कुछ डेटाबेस से डेटा का अनुरोध करने से परे. डेटा, फिर से, इन संबंधपरक तालिकाओं, स्तंभों और पंक्तियों में सारणी के रूप में संग्रहीत किया जाता है, लेकिन हटाना चाहते कुछ अपेक्षाकृत सरल वाक्यविन्यास का उपयोग, सम्मिलित करने के लिए, अद्यतन का चयन करें और हम बिल्कुल कर सकते हैं. हम डेटाबेस से हटाने के लिए, सम्मिलित कर सकते हैं, डेटा, के रूप में के रूप में अच्छी तरह का चयन करें, कि, डेटाबेस से डेटा पुनर्प्राप्त करने के लिए अद्यतन. हम ऐसा करने के बारे में कैसे जाना है? मुझे उपकरण में आगे जाना है. मुझे http://localhost खींच, जो, फिर से, स्थानीय उपकरण ही है. वह अपने डिफ़ॉल्ट उपनाम है. और मुझे / phpmyadmin जाना. यह करने के लिए एक विशेष URL होना होता है कि उपकरण को समझने के preconfigured कि मुझे तुरंत एक उपयोगकर्ता नाम और पासवर्ड के लिए संकेत देता है. हमेशा की तरह, मैं के लिए jharvard और लाल टाइप करने के लिए जा रहा हूँ, लेकिन एहसास है कि कंप्यूटर पर व्यवस्थापक खाते. यह सिर्फ एक संयोग है कि वहाँ भी एक jharvard CS50 वित्त के लिए पंजीकृत है. Jharvard, लाल, दर्ज मुझे यूजर इंटरफेस है कि हमने देखा देता है पहले एक पल की एक झलक, और यह पहली बार में थोड़ा भारी है, लेकिन बाकी का आश्वासन दिया, आप इस उपकरण में लिंक का सबसे क्लिक कभी नहीं जा रहे हैं. तुम अंत में एक छोटे सबसेट है कि सुपर उपयोगी हैं का प्रयोग करेंगे, डेटाबेस जिसमें से 1 यहाँ है. अगर मैं डेटाबेस के लिए ऊपर जाना, सूचना है कि मैं एक डेटाबेस बनाने के लिए प्रेरित कर रहा हूँ. यह एक नया एक्सेल फाइल बनाने की तरह प्रभावी रूप से है,. मुझे आगे जाना है और इस व्याख्यान कॉल करने के लिए जा रहा हूँ, और मैं सिर्फ वहाँ क्षेत्र, मिलान की अनदेखी करने के लिए जा रहा हूँ. यह डेटा के प्रतिनिधित्व के साथ उसमें क्या करना है, और मैं के लिए क्लिक करें बनाने के लिए जा रहा हूँ, और अब सूचना के रूप में बनाने के लिए जाना जाने बाएँ हाथ की ओर जहां यह कहना है कि कोई डेटाबेस मैं जल्द ही व्याख्यान डेटाबेस देखना चाहिए. अगर मैं अब बाईं ओर, व्याख्यान डेटाबेस पर क्लिक करें, नोटिस मेरे टैब्स एक थोड़ा बदल. मैं संरचना, एसक्यूएल, निर्यात, आयात और कुछ अन्य बातें मिल गया है. संरचना बहुत ज्यादा खाली है. कोई तालिकाओं डेटाबेस में पाया गया है, क्योंकि यह यहाँ का कहना है, तो चलो एक तालिका बनाने के लिए, और हम आगे जाने के लिए और एक तालिका बनाने छात्रों को पसंद है, और कितने कॉलम हम चाहते हो? हर विद्यार्थी के लिए चलो यह सरल रखने के लिए, और हम रिकॉर्ड एक आईडी नंबर, एक नाम है, और एक ईमेल पते. हम की तरह है कि यह सरल रखने के लिए, 3 कॉलम तो, जाओ. फार्म का है कि आप यहाँ देख अब एक छोटा सा गन्दा और भारी है, लेकिन हम सिर्फ यह पंक्ति से पंक्ति के माध्यम से जाना है, तो वास्तव में जल्दी चलो दे इस डेटाबेस में अद्वितीय पहचानकर्ता के लिए आईडी के नाम प्रथम स्तंभ. यह एक पूर्णांक होगा. मैं वास्तव में लंबाई और मूल्यों को अनदेखा कर सकते हैं. एक int 32 बिट्स हो कोई फर्क नहीं पड़ता कि तुम क्या वहाँ में टाइप करने के लिए जा रहा है, तो हम इसे खाली छोड़ दें. डिफ़ॉल्ट मान, मैं यह शून्य बनाने के लिए, के रूप में परिभाषित किया है. मैं कि अकेले छोड़ने के लिए जा रहा हूँ. मूलभूत मूल्यों के बारे में चिंता करने की ज़रूरत नहीं है. चलो यहाँ स्क्रॉल सही विशेषताओं,. यह दिलचस्प है. चलो आगे जाना है और कुछ हद तक मनमाने ढंग से कहना है कि आईडी अहस्ताक्षरित होना चाहिए. किसी भी नकारात्मक संख्या बर्बाद नहीं करते हैं. 0 की 4 अरब जाना, दे या ले, और फिर हम बस अभी तक स्पर्श नहीं इन क्षेत्रों के किसी भी वहाँ पर, लेकिन फिर मुझे नाम में यहाँ नीचे लिखें, और फिर अन्य ईमेल था, तो पकड़ ईमेल है और नाम, जाहिर integers नहीं, तो चलो एक अलग क्षेत्र के लिए इन परिवर्तन. यह बाहर varchar, चर लंबाई चार बदल जाता है, एक SQL डेटाबेस में एक स्ट्रिंग की तरह है लेकिन एक चर लंबाई, और आप वास्तव में अग्रिम में यह बताने के लिए है स्ट्रिंग की अधिकतम लंबाई, इसलिए मैं कुछ हद तक मनमाने ढंग से करने के लिए जा रहा हूँ सम्मेलन प्रकार 255 वर्ण से. मैं पूरी तरह से 32 कह सकते हैं. मैं 1,000 कह सकते हैं. आप अपने क्या है जनसांख्यिकी के आधार पर खुद के लिए तय की जरूरत की तरह सबसे लंबे समय तक छात्र का नाम और कि संख्या या एक छोटे से बड़ा के साथ जाना है, लेकिन एक varchar के बारे में अच्छी बात यह है कि यह बर्बाद करने के लिए नहीं जा रहा है हर छात्र के नाम पर 255 बाइट्स. यदि यह डेविड यह एक पूरे 255 बाइट्स का उपयोग नहीं हो रहा है, लेकिन वह एक ऊपरी सीमा है, तो मैं 255 के साथ सम्मेलन द्वारा ही जाना होगा, लेकिन हम है कि कुछ कम मूल्य होने के लिए बहस सकता है, और ईमेल पते के लिए सिर्फ 255 अनुरूप हो, लेकिन फिर, हम एक ही बहस हो सकता है. लेकिन मैं यहाँ पर दाएँ हाथ की ओर एक अन्य बात करने के लिए जा रहा हूँ. एक डेटाबेस के बारे में शक्तिशाली है कि यह भारी उठाने का एक बहुत कुछ कर सकते हैं या आप के लिए जटिल काम है. विशेष रूप से, मैं वास्तव में परवाह नहीं है कि मेरे छात्र आईडी नंबर क्या हैं. यह सिर्फ एक डेटाबेस में एक अद्वितीय पहचानकर्ता के होने का मतलब है तो मैं एक 32-bit कि छात्र का संक्षिप्त प्रतिनिधित्व किया है इतना है कि मैं विशिष्ट उन्हें पहचान का कोई रास्ता है ऐसा न हो कि एक वर्ग में 2 डेविड्स, उदाहरण के लिए, हो सकता है. वास्तव में, मैं इस ऐ बॉक्स, ऑटो वेतन वृद्धि की जांच करने के लिए जा रहा हूँ, इतना है कि डेटाबेस, MySQL, बाहर के आंकड़े हर हाल में डाला छात्र आईडी के लिए क्या किया जा रहा है. मैं भी अपने कोड में उस के बारे में परवाह नहीं है, और मैं भी सूचकांक मेनू के तहत कुछ का चयन करने के लिए जा रहा हूँ. सूचकांक नीचे ड्रॉप यहाँ प्राथमिक, अद्वितीय गया है, सूचकांक और पूरा पाठ. आप शायद लगता है कि इन चीजों की एक जोड़ी क्या कर सकते हैं, लेकिन यह संबंधपरक डेटाबेस में पता चला है आप प्रोग्रामर या डेटाबेस व्यवस्थापक preemptively डेटाबेस क्या खेतों के रूप में संकेत दे एक तालिका में एक छोटे से विशेष कर रहे हैं. उदाहरण के लिए, इस मामले में मैं कि आईडी कहने जा रहा हूँ एक प्राथमिक सूचकांक, अन्यथा एक प्राथमिक कुंजी के रूप में जाना जाता है होने जा रहा है. इस परिभाषा के द्वारा क्या मतलब है कि अब से आईडी है विशिष्ट इस तालिका में छात्रों की पहचान करेगा. कोई छात्र एक ही आईडी है, क्योंकि मैं इस बाधा या इस सूचकांक थोप रहा हूँ. इसके अलावा, यह मेरे लिए नहीं जा रहा है क्या है यह बताने के लिए जा रहा है MySQL ID कि खास है. मैं आईडी के बारे में विशेष रूप से ध्यान, तो आगे जाओ और अपनी कल्पना डेटा संरचना जादू करते हैं, पेड़ के किसी तरह का निर्माण. आम तौर पर यह कुछ बी वृक्ष है, जो हम सप्ताह में पहले नहीं लग रही थी कहा जाता है, लेकिन यह द्विआधारी पेड़ों को एक और इस तरह के डेटा की भावना में समान संरचना है की कोशिश करता है और यह कि हम में देखा है, लेकिन यह कहने जा रहा है डेटाबेस के लिए इस क्षेत्र इतना है कि मैं शायद महत्वपूर्ण है इस पर खोज करने में सक्षम होना चाहता हूँ, आगे बढ़ो और कुछ कल्पना का निर्माण स्मृति में डेटा संरचना की खोज में तेजी लाने के लिए इतना है कि आदर्श वे लगातार समय कर रहे हैं या कम से कम के रूप में उस के रूप में संभव करीब इतना है कि यह रैखिक खोज में नहीं उतरना है, जो करने के लिए नहीं जा रहा है सबसे उच्च दृष्टिकोण प्रदर्शन. इसके विपरीत करके, ईमेल पते एक प्राथमिक कुंजी हो सकता है. सिद्धांत रूप में, हर किसी के ईमेल पते अद्वितीय है, जब तक आप कुछ साझा कर रहे हैं, लेकिन यह आम तौर पर एक स्ट्रिंग की तरह कुछ का उपयोग करने के लिए अच्छा नहीं एक प्राथमिक कुंजी के रूप में है क्योंकि अगर जीवन में अपने उद्देश्य के लिए विशिष्ट पहचान है अपनी तालिका में पंक्तियों वहाँ 255 बाइट्स ज़्यादा से ज़्यादा इस्तेमाल के लिए कोई कारण नहीं है के लिए विशिष्ट पहचान अगर आप सिर्फ 4 बाइट्स के साथ दूर प्राप्त कर सकते हैं या एक 32-bit int. सामान्य में, एक प्राथमिक कुंजी लघु और संक्षिप्त होना चाहिए और आदर्श एक पूर्णांक या एक बड़ा int है, जो 64 बिट के लिए होता है की तरह कुछ. लेकिन एक ईमेल पते अद्वितीय हो सकता है, करना चाहिए और एक डेटाबेस की सुविधाओं का भी एक मेरे लिए विशिष्टता लागू है. अद्वितीय यहाँ ईमेल करने के लिए बगल में चुना जाता है, भले ही ही ईमेल बंद स्क्रीन scrolled, मैं डेटाबेस के लिए कह रहा हूँ मुझे भरोसा नहीं है. मुझे डेटाबेस में सम्मिलित मत देना उसी ईमेल में दो बार पता है, भले ही मैं एक मूर्ख हूँ और नहीं कर रहा हूँ मेरे अगर और अगर वास्तविक PHP कोड के साथ बहुत अच्छा और मैं गलती से उपयोगकर्ता मौजूदा ईमेल पते के साथ रजिस्टर डेटाबेस अभी तक रक्षा की शुद्धता के लिए एक अन्य स्तर पर है सुनिश्चित करें कि कि डुप्लिकेट ईमेल पते को तालिका में अंत नहीं है. अब, इसके विपरीत, नाम के लिए तो आप शायद कि अद्वितीय बनाने के लिए नहीं करना चाहती क्योंकि तब दाऊद के 2 या 2 उदाहरण के लिए माइक Smiths, कभी नहीं हो सकता है, अपने डेटाबेस में एक इतना है कि हम सिर्फ अकेले छोड़ देंगे. मैं आगे जाने के लिए क्लिक करें और नीचे सही पर बचाने के लिए जा रहा हूँ, और सब कुछ अच्छा लग रहा है, लेकिन यहाँ नोटिस यह एक हिस्सा है कि अब के लिए हम पर बहुत अधिक समय नहीं बिताना होगा क्योंकि वाक्यविन्यास थोड़ा जटिल है, और हम करने के लिए टेबल तैयार नहीं है कि अक्सर, लेकिन SQL अपने आप में एक भाषा है, वाक्यविन्यास जो यहाँ के लिए सही है कि मैं प्रकाश डाला है. PhpMyAdmin वास्तव में क्या करता है यह आप के लिए एक वेब आधारित जीयूआई बनाता है जिसके साथ आप समय बचाने के लिए और स्वयं टाइप नहीं कर सकते हैं एक की तरह है कि काफी लंबे समय एसक्यूएल क्वेरी. दूसरे शब्दों में, अगर तुम चाहते थे स्वयं इस तालिका बनाने, या तो है कि काले और सफेद संकेत या में भी phpMyAdmin में यह अन्य टैब का उपयोग करके, इस एसक्यूएल टैब जहाँ आप किसी भी एसक्यूएल प्रश्नों में टाइप कर सकते हैं आप चाहते हैं, स्पष्ट रूप से, यह मुझे ले लिया है एक मिनट वास्तव में पूरे वाक्य रचना को याद करने के लिए, और फिर भी मैं शायद होगा कुछ typos बनाया है, तो इस उपकरण को इस तरह की बातों के लिए उपयोगी है, और यह भी शिक्षाप्रद. आप के लिए अनुमान वाक्यविन्यास क्या है शुरू कर सकते हैं बस अच्छा रंग से कोडिंग कि phpMyAdmin जोड़ने है हमारे दृश्य की सुविधा के लिए. लेकिन अब इस बजाय करते हैं. मुझे शीर्ष पर डालने टैब पर जाना है, और मुझे आगे जाना है और उदाहरण के लिए डालने चलो एक आईडी का कहना है कि वास्तव में मुझे परवाह नहीं है. यह ऑटो वेतन वृद्धि करने के लिए जा रहा है. मैं इस के साथ डेटाबेस सौदा करने के लिए जा रहा हूँ. लेकिन मैं दाऊद को हो सकता है, करेगा और मेरे ईमेल malan@harvard.edu होना चाहिए. चलो आगे यहाँ जाने के लिए और एक दूसरे के रूप में माइक स्मिथ में डाल दिया. मैं खुद को एक अंतिम नाम के रूप में अच्छी तरह से दे देंगे, और हम उसे smith@example.com हो जाएगा, और फिर मैं अगले कहाँ जाना है? ठीक है, ऐसा लगता है जैसे जाने बटन क्लिक करने के लिए है, और देखा है. शीर्ष 2 डाला पंक्तियों में सूचना. यह वास्तविक एसक्यूएल क्वेरी है. कि phpMyAdmin मेरे लिए मार डाला उपकरण है, लेकिन अंतिम परिणाम, नोटिस, अगर मैं अब ब्राउज़ टैब पर जाना, इस तालिका में 2 पंक्तियां देखने, बहुत aesthetically याद ताजा करती है तालिका के हम अपने उपयोगकर्ताओं के लिए पहले 7 pset से देखा, जिनमें से एक डेविड Malan, जिनमें से एक अब माइक स्मिथ है. लेकिन अभी स्पष्ट होना करने के लिए, मैं phpMyAdmin का उपयोग नहीं की जरूरत नहीं है, और वास्तव में, आप जल्द ही 7 pset के लिए कोड लिखने जा रहे हैं है कि पंक्तियों जोड़ने, पंक्तियों को हटाने, अद्यतन पंक्तियों और तरह की प्रक्रिया automates, तो मुझे बजाय एसक्यूएल टैब पर जाना ऊपर यहाँ और जहां छात्रों से चयन * "ईमेल malan@harvard.edu." = दूसरे शब्दों में लगता है कि अब आप कुछ HTML फार्म, और अन्य क्षेत्रों के बीच अपने ईमेल पते में उपयोगकर्ता प्रकार, और लक्ष्य अब PHP में वापस अंत कोड पर है वास्तव में है कि उपयोगकर्ता के अन्य विवरण. अपना पूरा नाम क्या है? अपना आईडी नंबर क्या है? आप इस तरह एक एसक्यूएल क्वेरी लिख सकता है, छात्रों से चुनें * ईमेल जहाँ "malan@harvard.edu." = और अगर मैं तो जाने के लिए क्लिक नोटिस, कि मैं वास्तव में मैं, क्या करना चाहिए सिर्फ एक पंक्ति वापस पाने के. माइक इस परिणाम सेट से पंक्तियों के संग्रह के रूप में छोड़ दिया जाता है, आम तौर पर कहा जाता है, क्योंकि वह मुझे उसी ईमेल पते के रूप में नहीं है. अब, फिर से, यहाँ 7 pset के लिए आप एक प्रशासनिक उपकरण के रूप में phpMyAdmin का उपयोग करेंगे और अपने तरीके से सीखने के लिए एक शैक्षणिक उपकरण एसक्यूएल के दुनिया भर में है, लेकिन दिन के अंत में आप वास्तविक PHP कोड के अंदर इन प्रश्नों लेखन किया जा रहे हैं, और इसलिए विशेष रूप से है Zamyla walkthrough में देखते रहें जहाँ आप इस समस्या सेट के लिए वितरण कोड के एक दौरे मिलेगा जहां हम आपको न केवल सौंदर्यशास्त्र प्रवेश पृष्ठ के लिए दिया है और अच्छा सेक्सी लोगो कि CS50 वित्त कहते हैं, लेकिन हम भी तुम्हें दे दिया है कार्यों का एक गुच्छा है कि अपने जीवन थोड़ा आसान कर देगा. हम भी आप के लिए है pset का हिस्सा लिखा है, विशेष रूप में यह लॉगिन भाग, आप एक प्रतिनिधि डिजाइन की भावना देने के लिए कि वास्तव में index.php, उदाहरण के लिए एक नियंत्रक का उपयोग करता है, login.php और पसंद है, और फिर आप देखेंगे pset भी एक नमूना निर्देशिका कि अपने विचारों के सभी है, सौंदर्यशास्त्र के सभी. और तो 7 pset में समग्र कार्यप्रवाह कि होने जा रहा है अपने उपयोगकर्ताओं को एक ब्राउज़र में एक यूआरएल के माध्यम से एक नियंत्रक जाएँ. नियंत्रक कि PHP कोड है कि आप ने लिखा होता है, और अपने PHP कोड के अंदर एसक्यूएल की कुछ लाइनों को दोहरे उद्धरण चिह्नों के बीच में नेस्टेड हो सकता है और एक समारोह के लिए पारित हम कहते क्वेरी लिखा कि आप डेटाबेस के लिए बात की तरह कुछ का उपयोग कर के बिना में मदद मिलेगी phpMyAdmin की तरह एक प्रशासनिक उपकरण. आप PHP कोड में SQL बयान लिखने में सक्षम हो जाएगा और परिणाम सेट एक PHP सरणी वापस पाने के लिए, पंक्तियाँ है कि वास्तव में क्वेरी से मेल खाने की. और इसी तरह आप आवेषण या नष्टकरण करने में सक्षम हो जाएगा या अद्यतन या पसंद है, वाक्यविन्यास जिसके लिए काफी समान है, और आप कुछ ऑनलाइन संदर्भ से वितरण कोड से देखेंगे, और ही pset से पैक वास्तव में करने के बारे में जाने के लिए. एहसास अंततः हम वास्तव में सिर्फ SQL की सतह scratching रहे हैं और MySQL के, लेकिन यह की शक्ति वास्तव में यह है कि यह आप को मुक्त आप समस्याओं को हल करने के लिए करना चाहते हैं पर ध्यान केंद्रित करने के लिए, उपयोग के मामलों को लागू करने के लिए करना चाहते हैं काफी के रूप में ज्यादा चिंता है, पर कम से कम जल्दी करने के लिए बिना, कहाँ और कैसे स्टोर करने के लिए और अपने डेटाबेस खोज के बारे में, और यह काफी का शाब्दिक है जहां खुद फेसबुक इसकी शुरुआत है MySQL का उपयोग कर तो और अधिक MySQL सर्वर और तो और अधिक MySQL सर्वर का उपयोग पहले लंबे समय तक वे फिर से करने के बारे में वास्तव में कठिन सोच शुरू करने के लिए किया था डेटा की दुकान, कैसे चीजों को स्टोर करने के लिए भी अधिक कुशलता से, तो भले ही हम के लिए वास्तव दी ले जाएगा कि अनुक्रमित और अद्वितीय बाधाओं और इतना आगे सिर्फ काम वहाँ एक बहुत ही दिलचस्प बातचीत कि यह सब अंततः के लिए नेतृत्व कर सकते हैं, तो पता है कि हम सिर्फ सतह scratching रहे हैं क्या के अंत के लिए आप या अपनी परियोजनाओं के काफी बड़ा डेटा का एक सा हो सकता है. साथ उस ने कहा, चलो यहीं खत्म, और हम अगले सप्ताह आप देखेंगे. [CS50.TV]