[संगीत खेल] डेविड जे Malan: सब ठीक है. वापसी पर स्वागत है. इस CS50 है. इस सप्ताह 8 का अंत है. जैसा कि आप जानते हैं, हम बहुत है कुछ में नियमित रूप से कार्यालय समय डाइनिंग हॉल की, Annenberg सहित. और टीम के कुछ कृपया हाल ही में कुछ तस्वीरें ले ली. और के सम्मान में हैलोवीन, हम हम लगा बल्कि द्वारा हमें पकड़ा कि एक साझा आश्चर्य यहाँ Annenberg हॉल में बस उस रात. अपने सहपाठी याकूब के लिए समक्ष रखी इस तस्वीर, लेकिन अधिक मनोरंजक था फेसबुक पर था, आगामी बाद में हुआ कि बातचीत. जवाब में अपनी पहली पोस्ट उसकी तस्वीर के लिए यह किया गया था. कुछ मिनट बाद, वह फैसला किया इस के साथ खुद को एक करने के लिए. यह इस पर जाने के लिए तो पर चला गया और तो और भी अधिक amusingly उसकी माँ में chimed जब है. और फिर अंत में, यह इस बस था लगता है एक के लिए एक अद्भुत चाल उस पर हो रहा है खेलना. तो, अगर आप चाहेंगे याकूब और दूसरों को देखने के लिए, उनके बीच सिंथिया मेंग, कौन है CS50 क्षेत्र के कर्मचारियों की पर्दे के पीछे, इस यूआरएल और यहाँ इस नाटक के लिए सिर. तो आगे की हलचल के बिना, आज हम , वेब प्रोग्रामिंग में यह देखने के लिए जारी और कार्यक्रमों की वास्तविक निर्माण कि, अपने कमांड लाइन पर नहीं चला लेकिन बजाय एक ब्राउज़र के अंदर चला रहे हैं. मुमकिन है अब, या बहुत शीघ्र ही, आप जा रहे हैं को लागू करने के बीच में होने के लिए अपने स्वयं के वेब सर्वर, जो वेब प्रोग्रामिंग से अलग है. pset6 में वेब सर्वर सब के बारे में कैसे जानता है कि सॉफ्टवेयर लिख लेने के लिए एक ब्राउज़र से HTTP अनुरोध, या यहां तक ​​कि आप से, एक मानव, एक कार्यक्रम के साथ टेलनेट कहा जाता है, और तो या तो उन अनुरोधों का जवाब एक HTML फ़ाइल बाहर थूकना द्वारा, या एक जेपीईजी, या एक GIF, या यहां तक ​​कि एक php फ़ाइल. लेकिन एक वेब सर्वर के साथ, यह नहीं है सिर्फ एक PHP फ़ाइल को खोलने के लिए माना जाता है, .php में समाप्त होने वाले कुछ, और तो सामग्री बाहर थूक. यह क्या करने वाला है क्या पहले कि फाइल करने के लिए? इतनी बात करने के लिए. यह संकलन नहीं, हम सोमवार को कहा लेकिन rather-- तो, ​​यह व्याख्या. PHP के एक व्याख्या की भाषा है, और इसलिए कृपया अपने वेब में प्रमुख विशेषताओं में से एक सर्वर, हमारे द्वारा कार्यान्वित यद्यपि, अपने वेब सर्वर के लिए यह क्षमता है ओह, सूचना के लिए. इस .php में समाप्त होने वाले एक फाइल है. मुझे बस को भेज नहीं करते यह जैसे उपयोगकर्ता, स्थैतिक सामग्री है बल्कि मेरे द्वारा यह लाइन पढ़ें लाइन सही करने के लिए छोड़ दिया है, और यह व्याख्या. और ऐसा करने के लिए, आपको लगता है कि लोग अनिवार्य रूप से होगा उपकरण में एक कार्यक्रम में बाज़ी, और कंप्यूटर प्रणालियों के एक बहुत पर, बस PHP बुलाया. कि PHP का नाम है भाषा की अपनी ही दुभाषिया. तो, उस टुकड़े हम के लिए लागू तुम, और क्या, आप के लिए छोड़ दिया है अंत में, एक संख्या है टुकड़े का, जो बीच में समर्थन लागू कर रहा है स्थैतिक सामग्री के लिए. लेकिन अब, और साथ समस्या आप कर रहे हैं, सात सेट करने के लिए संक्रमण के लिए शुरू करने जा रहा वास्तव में PHP कोड लिखने कि व्याख्या हो जाता है एक वापस अंत करने के लिए बात करने में जानकारी संग्रहीत करता है डेटाबेस. तो पहले समझ में बेहतर चलो इन superglobals के एक जोड़े और अभी कितना शक्ति आप मुक्त करने के लिए बॉक्स से बाहर निकलना PHP जैसे एक भाषा के साथ. तुम नहीं है हालात अपने आप को लागू करने के लिए. तो, हम सोमवार $ _GET पर देखा जो एक superglobal है, PHP एक वैश्विक लिए जो बोलते हैं बस है आप कहीं भी उपयोग कर सकते हैं चर. और _GET डॉलर के अंदर क्या हो रहा है? इस के अंदर क्या हो रहा है हम देखते हैं कि superglobal? निश्चित रूप से सांख्यिकीय पर कम से कम एक व्यक्ति को जानता है. क्या _GET डॉलर अंदर है? हाँ? दर्शक: यह चर है आप क्वेरी स्ट्रिंग में डाल दिया. डेविड जे Malan: बिल्कुल सही. यह चर तुम हो क्वेरी स्ट्रिंग में डाल दिया. तो, के हमारे पुराने उदाहरण में हम था जब गूगल reimplementing एक यूआरएल, और फिर सवालिया निशान, जो एचटीटीपी की शुरुआत सीमांकित मापदंडों, तो हम बराबर क्यू था कुछ, क्यू बिल्लियों के बराबर होती है जैसे, स्वतः अंदर क्या जाना होगा आप के लिए सुपर वैश्विक कि $ _GET की, PHP का है, क्योंकि, क्यू की एक कुंजी है और बिल्लियों की उसके मूल्य का. दूसरे शब्दों में, $ _GET और सब में इन बातों साहचर्य सरणियों हैं, एक तरह की हैश तालिकाओं, कि दुकान कुंजी और मूल्यों. अब, वापस pset5 में, हैश तालिका आप कार्यान्वित हो सकता है, या तुम हो सकता है की कोशिश वास्तव में, लागू किया है प्रभावी ढंग से एक साहचर्य था सरणी, एक आंकड़ा संरचना जिससे आप संबद्ध कर सकते हैं मूल्यों के साथ चाबियाँ. लेकिन pset5 में, मूल्यों तुच्छ थे. मूल्य अनिवार्य रूप से सही है या गलत था. शब्दकोश में शब्द है? इसलिए, जब आप सेब की तरह एक शब्द hashed सेब शब्दकोश में है देखने के लिए, अपने चेक समारोह संभवतः सही है या गलत लौटे. तो, कि प्रभावी ढंग से है मूल्य हम वापस हो रही है. लेकिन हम सोमवार को देखा संक्षेप में, आप निश्चित रूप से कर सकते हैं अधिक दिलचस्प सहयोगी बस सही है या गलत की तुलना में मूल्यों सेब की तरह चाबियाँ, के साथ. आप वास्तव में एक लौट सकता है मनमाना स्ट्रिंग, और वास्तव में, कि क्या $ _GET और इन है अन्य चर आप करते हैं. तो $ _POST, भावना में समान है लेकिन अगर आप पोस्ट के माध्यम से एक फार्म जमा करते हैं, है कि एक अलग एचटीटीपी विधि क्रेडिट कार्ड जैसी चीजों के लिए इस्तेमाल किया, और निजी जानकारी, और भी तस्वीर की तरह द्विआधारी जानकारी, उन चीजों $ _POST के अंदर खत्म होता है. और वास्तव में फ़ाइलों के लिए jpegs और whatnot की तरह, भी नहीं है कि वहाँ एक और है यहाँ के रूप में अच्छी तरह से $ _FILES बुलाया. तो, सर्वर हम भी पर ध्यान केन्द्रित करना नहीं होगा ज्यादा, लेकिन यह आप पहुँच देता है के बारे में निचले स्तर के विवरण की तरह करने के लिए आप उपयोग कर रहे हैं कि सर्वर ही. कुकी और सत्र, हालांकि, हम प्रभावी रूप से अब देखेंगे. पिछले हम लागू करने के लिए उपयोग क्या है एक शॉपिंग कार्ट की धारणा. एक सुपर सरल है, लेकिन याद कि हम यहाँ इस उदाहरण था कितनी बार आप गिनती पहले इस पेज का दौरा किया था. लेकिन आज, बल्कि बस में देखने से इस के प्रभाव, के ऊपर खुला क्रोम के इंस्पेक्टर, जो आप आमतौर पर कर सकते हैं सही क्लिक करके या नियंत्रण से करना कहीं भी एक वेब पेज पर क्लिक करने, और फिर तत्व का निरीक्षण चुनें. या फिर आप मेनू के माध्यम से यात्रा कर सकते हैं हम pset6 की कल्पना में वर्णन है कि. और मैं नेटवर्क टैब के लिए जा रहा हूँ यहाँ, और एक पल के लिए देखो है कि HTTP यातायात आगे और पीछे जा रहा है. पहले मुझे आगे चलते हैं और स्पष्ट क्रोम का कैश. तो आप में से कुछ परिचित हो सकता है पहले से ही इस तकनीक के साथ, और हम इसका इस्तेमाल करने जा रहे हैं यहाँ प्रयोजनों डिबगिंग के लिए. अब हम कंप्यूटर के रूप में वैज्ञानिकों शुरू करने जा रहे हैं डिबगिंग के लिए यह कर रही है उद्देश्यों, जिससे हम कैश साफ हो जाएगा, आम तौर पर, इतना है कि हम कुकीज़ बुलाया बातों से छुटकारा मिल सकता है. तो आप शायद आम तौर पर परिचित हो क्या साथ कुकीज़ कम से कम कर रहे हैं, या कि वे मौजूद हैं, लेकिन क्या है उन की अपनी समझ, का सिर्फ एक उपयोगकर्ता के रूप में कंप्यूटर, एक कुकी क्या है? हाँ. दर्शक: यह of-- अच्छी तरह एक सा है नहीं कंप्यूटर विज्ञान की एक अवधि में सा. यह डेटा का एक टुकड़ा है कि एक वेबसाइट क्रम में आप के लिए भेजता है आप पर आंकड़े दर्ज करने के लिए सक्षम हो. डेविड जे Malan: ठीक है, अच्छा. तो यह डेटा का एक टुकड़ा है कि एक सर्वर, आपके कंप्यूटर पर डालता है और चलो यह भी सामान्यीकरण करते हैं अधिक, यह एक प्रमुख value-- अच्छी तरह से है, कि अधिक सटीक हो रही है. इसे का एक टुकड़ा है सूचना, डेटा का एक टुकड़ा, एक सर्वर में सक्षम है कि अपने कंप्यूटर पर डाल और बहुत बार, सर्वर करता है इस तुम कौन याद की जा सके. उदाहरण के लिए, बाधाओं के लिए तो आप शायद रहे हैं फेसबुक जैसी साइटों में लॉग इन, या जीमेल, या दूसरों से पहले और आप के साथ प्रवेश करें अपने यूज़रनेम और पासवर्ड और फिर उसके बाद, कुछ संख्या के लिए मिनटों या घंटों या दिनों की, सर्वर याद करते हैं कि आप कर रहे हैं, वास्तव में, में लॉग इन किया. अब, वास्तव में कैसे हो रहा है? आप निश्चित रूप से पुन: लिखने नहीं कर रहे हैं क्योंकि अपने यूज़रनेम और पासवर्ड हर बार आप एक को नेविगेट फेसबुक पर अलग पेज. तो यह पता चला है कुकीज़ जवाब हैं. आप के रूप में के बारे में सोच सकते हैं एक कुकी, की तरह, एक डिजिटल हाथ पसंद आप एक मनोरंजन पर मिल सकता है कि दुनिया भर के टिकट पार्क या एक क्लब है कि अनिवार्य रूप से आप यहाँ किया गया है इंगित करता है इससे पहले, और आप पहले से ही है के लिए, बाउंसर को अपनी पहचान से पता चला उदाहरण के लिए, और उस क्लब या पार्क अब आपको लगता है कि ग्रहण करना चाहिए पहले से ही प्रमाणीकृत किया है. आप पहले से ही यह द्वारा पहचान की गई है. साथ कि दिमाग में तो, यहाँ काउंटर खोल दें. मैं बस किया था, मुझे आगे चलते हैं, और मेरे सभी कुकीज़ के साफ है. और अब मैं क्या करने जा रहा हूँ है सिर्फ अच्छे उपाय के लिए, शिफ्ट पकड़, और जबरन पृष्ठ पुनः लोड. बस सुनिश्चित करने शिफ्ट कि कुछ नहीं कैश्ड हो जाता है. और यहाँ अनुरोध है कि आगे और पीछे चला गया. इसलिए यहाँ पर हम एक अनुरोध है, और जाने मुझे यहाँ नीचे में ज़ूम, और इस का एक बहुत के लिए की तरह रसहीन विवरण है ब्राउज़र स्वतः है कि अब भेजा, लेकिन हम देखें क्लिक करते हैं स्रोत कच्चे हेडर को देखने के लिए. और अगर आप पहले से ही pset6 में डुबकी लगाई किया है, आप निश्चित रूप से चीजों को मानेंगे इस तरह से, और शायद कुछ यहाँ इन अन्य लाइनों की, लेकिन क्या आज के लिए और अधिक रोचक है मैं नहीं अनुरोध करने के लिए नीचे स्क्रॉल अगर लेकिन तथाकथित प्रतिक्रिया के लिए, इस लाइन शायद परिचित लग रहा है. यह एक अच्छी बात है आप एक 200 ठीक है देखते हैं. जाहिर है यह सर्वर पर तारीख और समय और सामान का एक गुच्छा है. ओह, यह दिलचस्प है. आप का उपयोग जब भी बाहर वर्षगांठ कम से कम इस सर्वर में पीएचपी,, सर्वर बाहर spits क्या PHP के संस्करण आप उपयोग कर रहे हैं. सुरक्षा के लिए वास्तव में कौन सा, उद्देश्यों, एक अच्छी बात नहीं है. लेकिन, हम चाहते हैं कि करने के लिए वापस आ गया हूँ शायद कुछ अन्य समय. लेकिन अब यह रसदार लाइन आज और हम, संक्षेप में इन में से कुछ देखा हम poked जब मैं फेसबुक के साथ लगता है उस समय इंस्पेक्टर के आसपास, सेट कुकी रोपण किया जाता है क्या है जानकारी के उस छोटे टुकड़े अपने कंप्यूटर पर. यह एक HTTP शीर्षक है कि प्रभावी ढंग से है अपने ब्राउज़र बता रही है, क्रोम, आईई, जो भी हो, उपयोगकर्ता पर हे ब्राउज़र की दुकान हार्ड ड्राइव, या उपयोगकर्ता रैम में, एक है जो PHPSESSID नामक एक कुंजी, सत्र आईडी के लिए आशुलिपि संकेतन, और इसका एक मूल्य देना 0vlk8t, डॉट, डॉट, डॉट. एक बहुत लंबे छद्म यादृच्छिक अल्फ़ान्यूमेरिक स्ट्रिंग. यह सिर्फ एक बहुत बड़ी संख्या है, लेकिन यह पत्र और नंबर के साथ इनकोडिंग है इसलिए इसका आकार हो सकता है कि अकेले संख्या से भी बड़ा. और फिर, जिस तरह से, पथ = /, कि सिर्फ इस कुकी होना चाहिए कि इसका मतलब के साथ जुड़े वेबसाइट की सम्पूर्णता, बस एक विशिष्ट नहीं पेज पूरी बात. तो यह है कि आभासी हाथ मोहर है. यह सर्वर, फेसबुक के रूप में यद्यपि है या हमारे मामले उपकरणों में, सचमुच लिखा 0vlk8t है और बहुत आगे है, अपने हाथ पर. , क्या सर्वर का नोटिस कर नहीं यह नहीं है है निश्चित रूप से, मेरे उपयोगकर्ता नाम के भंडारण अपना पासवर्ड भंडारण के नहीं. इसके बजाय, यह प्रतीत होता है छद्म यादृच्छिक जानकारी संग्रहीत कोई भी अनुमान लगा सकते हैं कि इतना मेरे हाथ मोहर है क्या. सर्वर साइड पर, इस बीच, सर्वर शायद, याद करने के लिए जा रहा है एक डेटाबेस या कुछ में, कि उपयोगकर्ता, भविष्य में जो 0vlk8t का एक हाथ स्टाम्प प्रस्तुत करता है, डॉट डॉट, इस के साथ संबद्ध किया जाना चाहिए डॉट विशेष खरीदारी की टोकरी, तो बात करने के लिए. दूसरे शब्दों में, मैं अब जाओ यहाँ वापस और इस पृष्ठ पुनः लोड, सर्वर को पता है कि कैसे मैं एक बार दौरा किया है? मैं इसे फिर से करना या, यदि कैसे सर्वर करता है मैं यह दो बार गए हैं कि पता है? वैसे मैं यह करने के लिए नीचे जाना सबसे हाल अनुरोध, जो मैं भेज दिया है कि अब तीसरे नंबर पर कुल में, अब मेरे अनुरोध पर ध्यान दिया. अभी भी इस है यहां, एक ही अनुरोध पहले की तरह, अभी भी एक पूरी गुच्छा है हम पहले की तरह नजरअंदाज कर दिया गया है कि सामान की, लेकिन बहुत पिछले हैडर, इस समय, मैं यहाँ से पहले किया गया है, क्योंकि की एक प्रस्तुति है इस आभासी हाथ स्टाम्प. जिससे इस लाइन यहाँ, सेट नहीं कुकी लेकिन कुकी पेट के PHPSESSI = 0vlk8t, यह सिर्फ मेरी ब्राउज़र की स्वचालित है तो यह है कि इस हाथ के टिकट की प्रस्तुति अब सर्वर, यह पता चलता है के रूप में जल्द ही के रूप में, ओह, यह उपयोगकर्ता 0vlk8t डॉट है, दूरसंचार विभाग, दूरसंचार विभाग, मैं अब वह या वह है जो याद कर सकते हैं और कि उपयोगकर्ता के साथ reassociate जो कुछ भी जानकारी मैं चाहता हूँ, और सभी के जानकारी है कि, आप के द्वारा जमा किया जा सकता है $ देखना में प्रोग्रामर,. मैं असली जल्दी खोलो तो, अगर स्पष्ट होना एडिट में है कि वास्तविक फ़ाइल, counter.php, मेरे स्थानीय मेजबान सार्वजनिक निर्देशिका में पहले की तरह, वास्तव में, कि नोटिस, मैं अंत में भंडारण कर रहा हूँ $ देखना बोली गंदें शब्द बोलना "काउंटर" पिछले काउंटर का मूल्य जो मैं यहाँ हम कि इन पंक्तियों से मिलता है पिछली बार से अधिक एक को देखा. हुड के नीचे तो, कि सभी कुकी रहे है. यह डिजिटल के बस की तरह है हाथ स्टांप, आगे और पीछे जा रहा और स्पष्ट रूप से आप क्रोम का खुला किसी भी वेबसाइट पर इंस्पेक्टर आप के साथ, आज की यात्रा सुपर उच्च संभावना, आप शायद एक को देखने के लिए जा रहे हैं शायद आधा दर्जन कुकीज़ आप द्वारा याद किया जा रहा है. और भी बदतर अभी तक, अगर उन वेबसाइट आप का दौरा कर रहे हैं सभी विज्ञापनों, जो निश्चित रूप से आज बहुत आम है और उन विज्ञापनों को आ रहे हैं कुछ केंद्रीय पार्टी, किसी से गूगल या ऐडवर्ड्स की तरह के रूप में वे उनके उत्पादों में से एक कॉल या अन्य ऐसे विक्रेताओं कि विज्ञापनों को बेचने, दिलचस्प है क्या, और एक छोटे से क्या सच चिंताजनक, एचटीटीपी कैसे काम करता है के बारे में, अगर आपके पास कोई विज्ञापन एम्बेडेड कि है Facebook.com, और Google.com में, और Harvard.edu, किसी भी संख्या वेबसाइटों की है, तो यह इस तरह है सेवा कर रही है, जो एक मध्यम आदमी है कि वहाँ उन सभी वेबसाइटों के तीन के लिए विज्ञापन, यह पता चला है कि कुकीज़ डोमेन प्रति हैं. इसलिए यदि आप एक विज्ञापन से आ रही विभिन्न वेबसाइटों पर एक ही कंपनी कि कंपनी को प्रभावी ढंग से जो ट्रैक कर सकते हैं आप उन सभी वेबसाइटों के पार हैं. हार्वर्ड पता नहीं हो सकता आप फेसबुक का दौरा कर रहे हैं. फेसबुक पता नहीं हो सकता है और आप हार्वर्ड दौरा कर रहे हैं. लेकिन जो भी विज्ञापन सेवा कि डोमेन है अगर वे उपयोग कर रहे हैं दोनों Harvard.edu वेब में मौजूद पृष्ठों और Facebook.com वेबपेजों, इस आदमी के बीच निश्चित रूप से तुम कौन जानता है इन कुकीज़ साझा किया जा रहा है क्योंकि भर में, या यों कहें, को कि बिचौलिया तथाकथित. तो हम में यह करने के लिए वापस आ गया हूँ उसके सुरक्षा निहितार्थ लेकिन सूचना का एक बहुत कुछ है किसी भी समय आप के बारे में संग्रहित किया जा रहा आप पर सबसे अधिक किसी भी वेब पृष्ठ पर जाएँ इंटरनेट और यह वास्तव में यह बहुत ही सरल तंत्र को कम कर देता है. क्या है, तो क्या होता आप सुपर पागल हो और आप क्रोम या IE में जाना तय या जो कुछ भी और अपने कुकीज़ बंद कर देते हैं? क्या होता है? हाँ? आपको यह सही किया है really--? ठीक. नहीं, आगे बढ़ो. दर्शक: कुछ वेबसाइटों के लिए नहीं है इसके बिना एक समारोह फेसबुक जैसी. डेविड जे Malan: हाँ! तो कुछ वेबसाइटों बस काम बंद हो जाएगा. और सबसे वेबसाइटों में इन दिनों कि मौलिक, कुकीज़ पर भरोसा वे आप लॉग इन किया है, खासकर अगर में, वे बस को तोड़ने के लिए जा रहे हैं. विचार करें क्योंकि वैकल्पिक, अगर वेबसाइट तुम कौन हो, याद करने का कोई रास्ता नहीं है और इसलिए अपने वेब ब्राउज़र नहीं है हर HTTP के साथ का प्रतिनिधित्व इस हाथ के टिकट का अनुरोध, प्रभावी रूप से एक वेबसाइट फेसबुक के लिए जा रहा पसंद करने का संकेत करने के लिए है हर रफ़ू समय में प्रवेश करें आप पृष्ठों को बदलने, या एक लिंक पर क्लिक करें जो एक विशेष रूप से अच्छा उपयोगकर्ता निश्चित रूप से नहीं है अनुभव. वहाँ, भी, कि है तो व्यापार नापसंद के बीच में. आगे की हलचल के बिना तो, चलो ले चलो वेब प्रोग्रामिंग के साथ दी गई है कि के लिए, PHP जैसे भाषा में, आप याद कर सकते हैं समस्या में उस तरह की जानकारी सेट आप अपने खुद के लागू जब सात खरीदने के लिए जो के साथ ई * व्यापार की तरह वेबसाइट और शेयरों को बेचने, आप ठीक से याद करेंगे क्या उपयोगकर्ता खरीदा और बेचा गया है और वह है जो इस सत्र के माध्यम से. लेकिन हम जरूरत जा रहे हैं ईमेल से एक शौक़ीन रास्ता आसपास जानकारी रखने शुरू करने के लिए. है ना? सोमवार को हम Frosh आईएमएस के बारे में बात की थी और कैसे उस वेबसाइट के संस्करण में एक, साल पहले, हमने किया था सब कौन है प्रॉक्टर ईमेल अंदर का खेल के प्रभारी कार्यक्रम, नाम, और लिंग, और वे एक कप्तान रहे हैं या नहीं, और किसी के छात्रावास कौन है एक अंदर खेल के लिए दर्ज की गई. तो यह बुरा नहीं है, लेकिन वह या तो वह अपने ईमेल के माध्यम से ट्रोल के लिए किया था, एक स्प्रेडशीट या कुछ और की तरह बनाना कि, संगठित सब कुछ रखने के लिए. तो निश्चित रूप से हम प्रोग्रामर के रूप में कि प्रॉक्टर के लिए ऐसा कर सकते हैं. और तो एसक्यूएल में दर्ज, संरचित क्वेरी भाषा, सुंदर लग रहा है जो सी और PHP दोनों को अलग, और आप पर बहुत अधिक हाथों में डुबकी हूँ PHP और समस्या, भी सात लेकिन एसक्यूएल सेट या एसक्यूएल, यह एक भाषा है कि आप एक डेटाबेस से बात करने के लिए इस्तेमाल करते हैं. लेकिन एक डेटाबेस क्या है? वैसे आप एक के बारे में सोच डेटाबेस, कम से कम अब के लिए, के रूप में सिर्फ एक एक्सेल फ़ाइल की तरह किया जा रहा है, या आप एक मैक उपयोगकर्ता एक संख्या फ़ाइल रहे हैं, या आप किसी Google Apps रहे हैं उपयोगकर्ता एक गूगल स्प्रेडशीट, यह प्रभावी रूप से एक डेटाबेस है, या वास्तव में विशेष रूप से एक संबंधपरक डेटाबेस. एक संबंधपरक डेटाबेस बस है पंक्तियों और स्तंभों है कि कुछ, और आप किसी भी तरह का स्टोर कर सकते हैं इन पंक्तियों या स्तंभों में जानकारी. लेकिन, एसक्यूएल के बारे में अच्छा क्या है और वास्तविक डेटाबेस के बारे में ही नहीं, स्प्रेडशीट या गूगल स्प्रेडशीट, आप एक भाषा का उपयोग कर सकते हैं वास्तव में करने के लिए प्रश्न के लिए डेटा, डेटा को हटाने के लिए डालने, यहां तक ​​कि, डेटा के लिए देखने के लिए सबसे महत्वपूर्ण बात है, और आप काफी स्वयं इसे उपयोग करने के लिए नहीं है आप आम तौर पर एक गूगल हो सकता है के रूप में इस तरह स्प्रेडशीट. एसक्यूएल में तो, का एक गुच्छा है मौलिक बयान या टुकड़े कार्यक्षमता के में बनाया. इन तुलना में बहुत अधिक है, लेकिन आप एक विशाल दूरी जा सकते हैं बस जानते हुए भी कि द्वारा कहा जाता है इस भाषा एसक्यूएल कम से कम चार है आप उत्तोलन कर सकते हैं बयान. डेटा को हटाने के लिए, हटाएं, पंक्तियों को जोड़ने के लिए, डालें, अद्यतन, बदलने के लिए पंक्तियों, और चयन पंक्तियों वापस पाने के लिए और कि वास्तव में एसक्यूएल क्या करता है. यह तो पंक्तियों पर पूरी तरह से संचालित आप डालने, या हटाने जब कि, या अद्यतन, या आप क्या कर रहे हैं का चयन एक तथाकथित परिणाम सेट के रूप में वापस हो रही है, पंक्तियों की एक सरणी की तरह. एक मेज से पंक्तियों का एक गुच्छा. इसलिए दिन में वापस, और यहां तक ​​कि इस दिन के लिए, आप के साथ बातचीत कर सकते हैं एक कमांड लाइन का उपयोग कर डेटाबेस, लेकिन इसका इस्तेमाल करने के लिए विशेष रूप से मज़ा नहीं है इस काले और सफेद शैली खिड़की और वास्तव में आदेश पर अमल और अपने डेटाबेस के आसपास प्रहार. एक ग्राफिकल यूजर इंटरफेस, या जीयूआई, यकीनन, और अधिक बेहतर है और इसलिए हम अनुशंसा उपकरण और उपकरण पर आप के लिए preinstalled phpMyAdmin कहा जाता है. ऐसा लगता है कि कुल संयोग नहीं है इस बात का नाम, इसे में PHP है यह सिर्फ लोगों का मतलब है कि जो खुद को इस कार्यक्रम लिखा PHP में यह लिखा था. लेकिन यह प्रशासन के बारे में अंततः है एक सर्वर की तरह एक डाटाबेस सर्वर, तुम हो सकता है कि, आप के रूप में CS50 उपकरण में करते हैं. तो और अधिक विस्तार से यहाँ है हम आज के बारे में परवाह करने की जरूरत है लेकिन क्या कुंजी छोड़ दिया पर यह है कि हाथ की ओर डेटाबेस की एक सूची है आप अपने कंप्यूटर पर है कि, अपने CS50 उपकरण पर, या अंतिम परियोजनाओं में आ गए कि तुम हो सकता है एक तीसरी पार्टी, एक कंपनी पर है वेबसाइट या वेब सर्वर, कि आप अंतरिक्ष के लिए भुगतान किया जा सकता है. इतने पर छोड़ दिया है डेटाबेस, जिनमें से एक मैं अगले से उधार जो pset7 है शीर्ष पर फिर सप्ताह pset, और एक वहाँ वहाँ नोटिस टैब का गुच्छा, जिनमें से एक डेटाबेस, एसक्यूएल, स्थिति, है इसके आगे उपयोगकर्ताओं निर्यात और. तो अगर आप एक लंबी यात्रा कर सकते हैं जिस तरह से बस को साकार द्वारा कि यूजर इंटरफेस के सबसे ऊपर छोड़ दिया कॉलम में है और सही वहाँ शीर्ष भर में. इसलिए हम वास्तव में इस के साथ क्या कर सकते हैं? ठीक है, चलो एक का निर्माण शुरू करते हैं जानकारी के बिट के रूप में इस प्रकार है. निम्नलिखित मामला है मान लीजिए, बस कुछ ही दिनों में हो जाएगा, आप एक को लागू करना चाहते हैं CS50 वित्त बुलाया वेबसाइट, और इस वेबसाइट पर आप खरीदने की सुविधा देता है गंदें शब्द बोलना बोली और शेयर बेचने. और यह पता लगाने के लिए जा रहा है उन शेयरों की कीमत, अंत में आप देखेंगे के रूप में, याहू वित्त से बात करके. कौन सा, शानदार, एक मुफ्त सेवा है आप एक स्टॉक टिकर में पारित कर सकते हैं जिससे गूगल के लिए GOOG, और इसे पसंद करेंगे गूगल के मौजूदा शेयर तुम वापस दे अतीत के भीतर कीमत कुछ ही मिनट में कम से कम. तो तुम अंत में, कि इस्तेमाल करेंगे, उपयोगकर्ता के लिए ढोंग करने के लिए खरीदने और वास्तविक बेचने के लिए आभासी पैसे का उपयोग स्टॉक, लेकिन बहुत पहले की बात उपयोगकर्ता को देखने के लिए जा रहा है उन्हें पूछता है जो इस लॉगिन स्क्रीन है अपने यूज़रनेम और पासवर्ड के लिए. और हां, तो पहले से एक pset7 में आप के लिए चुनौतियों पीछे के अंत को लागू करने के लिए किया जा रहा है डेटाबेस, स्प्रेडशीट, अगर तुम जाएगा, उस स्टोर करने के लिए जा रहा है उपयोगकर्ताओं नाम और पासवर्ड और अंत में वे खुद क्या शेयर, और कितने, और कितना पैसा है वे है, इसलिए अन्य चीजों की एक गुच्छा में अन्य टेबल, या स्प्रेडशीट. तो चलो कैसे इस पर एक नज़र रखना पहली नज़र में प्रकट हो सकता है. मैं वापस जाने के लिए जा रहा हूँ मैं कर रहा हूँ और उपकरण यहाँ इस यूआरएल पर जाने के लिए जा रहा phpMyAdmin लोकलहोस्ट / phpMyAdmin और आप यह देखेंगे कि एक इंटरफेस के लिए मुझे लगता है वास्तव में हम पर देखा के रूप में स्क्रीन शॉट, और यहाँ मैं एक अतिरिक्त डेटाबेस है आज के लिए बुलाया व्याख्यान और मुझे आगे चलते हैं पहली और pset7 पर क्लिक करें. मैं विकल्पों में से एक जोड़ी है लगता है, नए के लिए एक, एक नई तालिका बनाने के लिए, उपयोगकर्ताओं के लिए और एक कड़ी है, जो मैं पहले से ही बनाया एक टेबल है. तो एक मेज क्या है? आप एक्सेल का इस्तेमाल किया तो अगर इससे पहले, और आप कर चुके हों सेकेंड हैंड नंबर या गूगल स्प्रेडशीट, आप एक खिड़की खोल और आप एक पूरी गुच्छा मिल पंक्तियों और स्तंभों की, लेकिन तब आप आमतौर पर कार्यपत्रकों है नीचे, या अलग टैब के साथ. आप प्रत्येक के बारे में सोच सकते हैं एक तालिका के रूप में वर्कशीट इसलिए कि डेटाबेस, अंत में, एक एक या अधिक तालिकाओं के संयोजन, एक या अधिक कार्यपत्रकों में एक सामान्य स्प्रेडशीट की दुनिया. तो मुझे आगे चलते हैं और इस वर्कशीट पर क्लिक करें मैं premade कि कहा जाता है, उपयोगकर्ताओं उर्फ डेटाबेस तालिका. और मैं यहाँ नीचे स्क्रॉल अगर, मुझे थोड़ा बाहर ज़ूम चलो, इस phpMyAdmin कह रहा है क्या है हमें अभी इस तालिका के अंदर है. यह पहली बार में थोड़ा भ्रमित है नज़र यूआई नहीं है क्योंकि दुनिया में सबसे सुंदर बात है, लेकिन क्या दिलचस्प है यहाँ यह हिस्सा है. आईडी, उपयोगकर्ता नाम और हैश. अग्रिम में, और आप हाथ हो जाएगा इस समस्या में, सात सेट हम आपको एक सुपर युक्त एक फ़ाइल दे छोटे डेटाबेस तालिका, वास्तव में उधार हैकर संस्करण से की समस्या दो, सेट जो के अंदर छह पंक्तियाँ हैं. सभी बेलिंडा के लिए एक रास्ते नीचे Zamyla के लिए एक करने के लिए, और उन के बाईं ओर नोटिस उपयोगकर्ता नाम, एक तरह अद्वितीय आईडी हैं दो, तीन, चार, पांच, छह, पूर्णांकों, और फिर सही करने के लिए हैश हैं. और बाधाओं रहे हैं, अगर, आप नहीं किया हैकर संस्करण समस्या, दो सेट लेकिन एक हैश एक एन्क्रिप्टेड की तरह ही है कुछ निरंतर के साथ पासवर्ड. और हां, आप कर रहे हैं यहाँ क्या देखना सभी छह की एन्क्रिप्टेड संस्करण समस्या से हमारे पासवर्ड की दो के हैकर संस्करण निर्धारित किया है. अब बाईं ओर बस कुछ जीयूआई सामान है, , इस पंक्ति संपादन इस पंक्ति को कॉपी, इस पंक्ति को हटाने. लेकिन क्या दिलचस्प है अब पीछा कर रहा है. मैं वास्तव में शुरू कर सकते हैं इस तालिका के साथ प्रयोग. तो मैं जाकर एसक्यूएल क्लिक करें टैब, मैं इस बड़े पाठ बॉक्स मिलता है. और यह हम करने जा रहे हैं कि कैसे नहीं है वास्तव में कोड लिखते समय यह करना. स्पष्ट होना, phpMyAdmin है कि सिर्फ एक उपकरण है हमें डेटाबेस आसपास प्रहार जाने वाला और हमें प्रश्नों के साथ प्रयोग करते हैं. तो उदाहरण के लिए, मान लीजिए मैं वास्तव में इस पर अमल. उन में से एक है जो चयन करें, कीवर्ड मैं, पहले, स्टार उल्लेख जो सभी का प्रतिनिधित्व करता है एक तालिका में कॉलम. क्या मेज से? खैर, उपयोगकर्ताओं. और नोटिस इस वहाँ एसक्यूएल में अजीब सम्मेलन जहां आप वास्तव में उपयोग पीठ, आम तौर पर, ticks एकल नहीं उद्धरण और डबल नहीं उद्धरण आप तालिकाओं के नाम के बारे में बात करते हैं, इसलिए वापस भाव पर बात है अपने कुंजीपटल के शीर्ष बाएँ हाथ सबसे संभावना. तो मुझे अब आगे चलते हैं और सिर्फ इतना है कि अकेला छोड़ दो और नीचे स्क्रॉल और क्लिक जाना है, और हम कर रहे हैं वास्तव में एक ही बात को देखने के लिए जा रहा है. हम सिर्फ एक एसक्यूएल क्वेरी मार डाला है चुनिंदा सब कुछ सितारा कह से मेज उपयोगकर्ताओं को कहा जाता है, और क्या आप को मिलने वाली यह है. अंत में, हम कर सकेंगे कोड में है कि एक ही बात करते हैं, लेकिन अब सब के लिए मैं करना चाहता था अपने ब्राउज़र में यह देखना था है. खैर हम कुछ करते हैं एक छोटे से अलग. , मुझे एसक्यूएल टैब के लिए वापस जाओ और चलो बस क्या कहते हैं? Zamyla उसके बारे में सब खो दिया है पैसे, और इसलिए यह है हमारे लिए समय एक उपयोगकर्ता के रूप में उसे नष्ट करने के लिए. वह अब में प्रवेश करने की है. तो मैं from-- हटाना कहने जा रहा हूँ खैर, पूंजीकरण बनाए रखने के स्थिरता के लिए, हटाएं जहां उपयोगकर्ताओं से. और हां, तो हम इन कर सकते हैं predicates, या इन मेरे बयान के अंत में क्वालिफायर, कहाँ और कैसे मैं Zamyla नष्ट कर सकता? उसका नाम Zamyla करके, तो स्तंभ, स्तंभों में से एक नाम दिया है, इसलिए जहां नाम = "Zamyla" किया गया था. और यहाँ मैं डबल का उपयोग उद्धरण या एक उद्धरण, आप केवल वापस जब ticks का उपयोग उदाहरण के लिए, के नाम के बारे में बात कर, टेबल या खेतों की. और मुझे यहां क्लिक करें जाने दो. और अब, वेब पेज है एक छोटी सी में uptight जा रहा है. या, क्या तुम सच में हटाना अमल करना चाहते हैं नाम Zamyla के बराबर होती है, जहां उपयोगकर्ता से? हां. तो अब, हम मेरी मेज पर वापस जाओ क्लिक उपयोगकर्ताओं द्वारा, एचएम कि नोटिस. मैं goofed. और वास्तव में, मैं एक तरह से इतनी तेजी से दूर क्लिक किया आप भी नहीं देखा था शायद लाल त्रुटि संदेश,. मैं गलत क्या किया? दर्शक: आप की जरूरत नहीं थी उसका नाम भुनाने के लिए. डेविड जे Malan: हाँ मैं उसका नाम पूंजीकृत लेकिन उसे मैं वास्तव में username-- सही, एक जोड़ी गलतियाँ की? एक, उसके उपयोगकर्ता नाम है zamyla, छोटा अक्षर जेड, और स्तंभ नाम उपयोगकर्ता नाम है, नाम नहीं है, तो फिर यह करते हैं. मुझे आगे चलते हैं और उपयोगकर्ताओं जहां से हटाना उपयोगकर्ता नाम बोली गंदें शब्द बोलना "Zamyla" के बराबर होती है. ठीक है? तो यह थोड़ा बेहतर लग रहा है, चलो मुझे नीचे स्क्रॉल जाने और जाएँ क्लिक करें. यह अभी भी जा रहा है यह सुनिश्चित हो मुझ पर चिल्लाना. , मैं हाँ क्लिक करें, और अब हम देखते हैं स्पष्ट रूप से यह सच हुआ तेजी से, कम से कम एक दूसरी निश्चित रूप से, यह वास्तव में मार डाला गया कि क्वेरी है. पुष्टि करने के लिए, मुझे उपयोगकर्ताओं को क्लिक करते हैं और वास्तव में अब Zamyla चला गया है. अब विपरीत करते हैं. Gabe करना चाहता है कि मान लीजिए वेबसाइट के लिए रजिस्टर. एसक्यूएल क्वेरी क्या है, क्या है मैं Gabe जोड़ने के लिए टाइप कर सकते कमान? वैसे यह बहुत स्पष्ट है. उपयोगकर्ताओं में डालें, और अब यह एक छोटे से गुप्त हो जाता है. मैं, सर्वर को निर्दिष्ट करने की जरूरत है क्या मैं प्रदान करना चाहते हैं क्षेत्रों. मैं वास्तव में परवाह नहीं है क्या Gabe की पहचान संख्या है, इसलिए मुझे लगता है कि छोड़ करने के लिए जा रहा हूँ. मैं बजाय कहने जा रहा हूँ उपयोगकर्ता नाम, हैश, और उसके बाद मानों मैं डाल करना चाहते हैं Gabe होने जा रहा है. और फिर उसके हैश, मैं नहीं जानता. तो अब, मैं जा रहा हूँ ऐसा करने के लिए एक बड़ा के रूप में छोड़ दो. हम करने के लिए वापस आ गया हूँ समस्या सेट में कि आप वास्तव में ऐसा कर के रूप में कैसे कल्पना. तो फिर, वाक्य रचना, नोटिस. तालिका नाम में, फिर एक डालें क्षेत्रों के parenthesized सूची, कॉलम आप जोड़ना चाहते हैं करने के लिए मूल्यों, और फिर बस एक ही सटीक आदेश के लिए छोड़ दिया आप जोड़ना चाहते हैं मूल्यों की सही, और यह सिर्फ इसलिए लपेटकर है पाठ एक थोड़ा लंबा है. तो अब मुझे जाने क्लिक करते हैं. एक पंक्ति डाला. और अब मैं वापस करने के लिए जाना उपयोगकर्ताओं क्या दिलचस्प है केवल Gabe में अब है नहीं कि है डेटाबेस, उसकी आईडी जाहिरा तौर पर क्या है? वैसे यह सात है. ऐसा क्यों है कि मैं यह नहीं जोड़ दिया सात है जब? यह इसलिए भी है, में से एक है सुविधाओं आप डेटाबेस से मिलता है. का एक बहुत कार्यक्षमता में बनाया. यह जब पता चला है कि इस तालिका बनाई गई, मैं यह स्वचालित है preconfigured इस तरह से एक आईडी आवंटित यह वेतन वृद्धि कि. तो आप कभी भी, आसपास poked किया है और क्या आपके फेसबुक आईडी को देखा संख्या, यह सच नहीं है इन दिनों है एक बात, एक एपीआई के रूप में, लेकिन फेसबुक ऐसा करने के लिए एप्लीकेशन प्रोग्रामिंग इंटरफेस, जिससे आपको वापस मिल सकता है डेटा की एक पूरी गुच्छा के बारे में अपने आप को, अपने दोस्तों के बारे में, और आपके कनेक्शन. और क्या प्रयोग किया जाता तरह हो शांत की, दिन में वापस, देखने के लिए क्या था अपने फेसबुक आईडी नंबर था. मार्क ज़ुकेरबर्ग की, उदाहरण के लिए, तीन है वह साइट के लेखक था के बाद से. कहानी जाता है और, जैसा कि वह बनाया दो परीक्षण खातों, उपयोगकर्ताओं को एक और दो, जो वह तो नष्ट कर दिया. और हां, Zuck, के रूप में अपने उपयोगकर्ता नाम है फेसबुक पर, आईडी नंबर तीन है और हम सब बहुत नंबर बड़े से तीन इन दिनों. वास्तव में, कुछ बिंदु पर फेसबुक से दूर ले जाया गया यहां तक ​​कि एक पूर्णांक, का उपयोग करने से जो एक 32-बिट मूल्य का उपयोग करने के लिए है, अगले कदम, अनिवार्य रूप से एक लंबे ताकि वे समायोजित कर सकता है कि पंजीकरण भी अधिक उपयोगकर्ताओं. तो एक मजाक सा ऐतिहासिक तथ्य. तो है कि बस बुनियादी वाक्य रचना के साथ जो हम की एक जोड़ी पर अमल हो सकता है प्रश्नों, लेकिन हम वास्तव में कर सकते हैं एसक्यूएल के साथ एक गुच्छा अधिक बातें करते हैं. और तुम, अंततः, देखेंगे समस्या में सात सेट आप एक बनाने के लिए है कि डिजाइन निर्णय की संख्या, उन के बीच होने जा रहा है क्या डेटा प्रकार का उपयोग करने के लिए. तो बस सी में की तरह, डेटा रहे हैं एक डेटाबेस में प्रकार, MySQL की तरह, और डेटा प्रकार आप चुनना होगा यहाँ से इन क्षेत्रों में शामिल हैं. चार, varchar, इंटरनैशनल, बड़ा पूर्णांक, दशमलव और तारीख समय, और कई अन्य. तो चलो वास्तव में यह करते हैं. हम नहीं किया था कि ढोंग करते हैं हाथ आप इस उपयोगकर्ता की तालिका और मेरे लिए, आगे बढ़ो और बनाने अपने आप को, व्याख्यान में database-- वास्तव में मुझे आगे जाना है और हटाना जाने मैं पहले से ही यहाँ है मेज इतना है कि हम वास्तव में इस बना सकते हैं. वूप्स. मैं इस ड्रॉप करने के लिए जा रहा हूँ मेज, और अब मैं कर रहा हूँ करने के लिए फिर से जाना जा रहा यहाँ पर डेटाबेस व्याख्यान, मैं एक तालिका बनाने के लिए जा रहा हूँ कहा जाता उपयोगकर्ताओं और चलो सिर्फ तीन स्तंभों करना शुरू में और जाएँ क्लिक करें. अब, अधिकांश भाग के लिए, फिर, यह सिर्फ है कहा जाता है इस ग्राफिकल उपकरण का उपयोग phpMyAdmin, और अब हम क्या कर रहे हैं एक मेज पैदा कर रही है. तो इस फ़ाइल जाने की तरह है, नई, और एक नया एक्सेल फाइल बनाने. तो यह मुझे कुछ पूछ रहा है सवालों से, सही करने के लिए छोड़ दिया पहले कॉलम का नाम क्या है, और फिर दूसरा स्तंभ का नाम, और तीसरे का नाम. तो चलो इस विश्राम करते हैं. आईडी, और तब उपयोगकर्ता नाम, एक था और फिर हैश एक और था. तो क्या डेटा प्रकार होना चाहिए आईडी की तरह एक क्षेत्र के लिए अब हो सकता है? यहाँ डेटा प्रकार की पूरी सूची है एक डेटाबेस में आप के लिए उपलब्ध, और अब के लिए सिर्फ पूर्णांक के साथ चलते हैं. 32-बिट मूल्य, मुझे नहीं पता मैं हूँ वास्तविक लगता है अधिक से अधिक 4 अरब के लिए जा रहा मेरे खाते में उपयोगकर्ताओं, मेरी सेवा में, इसलिए मैं आगे बढ़ रखने के लिए जा रहा हूँ अगला सवाल करने पर. मैं निर्दिष्ट करने के लिए नहीं जा रहा हूँ एक लंबाई या मूल्यों, यह लागू नहीं है यहां एक पूर्णांक के लिए, प्रति. और अब मैं, निर्दिष्ट कर सकते हैं जाहिर है, एक डिफ़ॉल्ट मैं निर्दिष्ट करने के लिए नहीं जा रहा हूँ जो मूल्य,. एक मिलान, मुझे लगता है कि क्या है पता नहीं है. एक विशेषता. अब हम वास्तव में कर एक डिजाइन निर्णय किया है. इसलिए सभी नहीं, यहाँ कुछ क्षेत्रों वहाँ जिनमें से लागू हो, लेकिन अहस्ताक्षरित हैं बस क्या मतलब है? यही पूर्णांक होना चाहिए? सिर्फ गैर-नकारात्मक. तो यह ऊपर की ओर 0 हो गया है. नहीं, मैं क्योंकि जांच करने के लिए नहीं जा रहा हूँ मैं हर उपयोगकर्ता एक आईडी है चाहता हूँ, यह रिक्त नहीं हो सकता. और फिर, हम कुछ और करने के लिए मिल इस तरह दिलचस्प डिजाइन निर्णय. हम एक पल में यह करने के लिए वापस आ गया हूँ डेटाबेस की लेकिन क्या एक और विशेषता है, आप बता सकते हैं कि है डाटाबेस सर्वर आगे बढ़ो और अपने आप को अनुकूलित, अपने राम और अपनी हार्ड डिस्क स्थान, कि चयन करता है, और सम्मिलित है, और इसलिए हटाता है, और अद्यतन वास्तव में तेजी से कर रहे हैं. Pset5 साथ इस विपरीत. आप कुछ को देखने के लिए चाहते थे अपने हैश तालिका, में जो यदि आप एक डेटाबेस के रूप में के बारे में सोच सब करना था जो अपने हैश तालिका तेजी से बनाने के लिए काम करते हैं. यह जाहिर है, आप की तरह है. है ना? आप हर समय ठीक करने में लगा दिया था एक हैश समारोह हो रही है, बातें ट्यूनिंग सही, बाहर कैसे लगाना कई बाल्टी है. लेकिन, फिर से, अच्छा क्या है के बारे में एक डेटाबेस है आप बस के सभी बाज़ी अन्य लोगों को इस जो इस बारे में सोचा है क्या आप के लिए के माध्यम से, और मैं तहत यहाँ कहने जा रहा हूँ सूचकांक है मेरी आईडी क्षेत्र है कि प्राथमिक रास्ता होने जा रहा है इस डेटाबेस में उपयोगकर्ताओं की पहचान. मुझे लगता है कि करने के लिए नहीं जा रहा हूँ Zamyla रूप Zamyla की, मैं सोच भी नहीं जा रहा हूँ उसका नंबर 6 के रूप में. क्यों, शायद, बेहतर यह है intuitively और मॉडल के बारे में सोचना का उपयोग अपने व्यक्तिगत पंक्तियों में से प्रत्येक के बजाय कुछ का एक नंबर Zamyla तरह एक स्ट्रिंग की तरह Gabe या अभी भी अब स्ट्रिंग या? हाँ? दर्शक: एक आईडी अद्वितीय है? डेविड जे Malan: फिर से कहो? दर्शक: एक आईडी अद्वितीय है? डेविड जे Malan: एक आईडी अद्वितीय है, लेकिन suppose-- सामान्य में मामले के रूप में उपयोगकर्ता नाम के साथ लगता है, मैं भी केवल वहाँ हो सकता है ने कहा कि एक दुनिया में Zamyla, और केवल एक Gabe. मैं विशिष्टता थोपना सकता है मैं चाहता था, तो भी, तार पर बाधा. तो एक बुरा नहीं सोचा. दर्शक: अधिक सुरक्षित. डेविड जे Malan: अधिक सुरक्षित, क्यों? दर्शक: आपको नहीं बता सकता जो उपयोगकर्ता के रूप में है, जो. डेविड जे Malan: ठीक है, तुम जो उपयोगकर्ता नहीं बता सकता इसलिए एक नहीं है, जो है यह करने के लिए गोपनीयता पहलू, खासकर यदि आईडी शायद यूआरएल में दिखाई दे. तो यकीन है, कि, जिस तरह का काम कर सकता है भी. अन्य विचार? हाँ? दर्शक: यह आसान है एक पूर्णांक पर कार्रवाई करते हैं. डेविड जे Malan: यह असली किकर है. यह सिर्फ अधिक कुशल है या कंप्यूटर के लिए आसान, एक पूर्णांक पर कार्रवाई करने के लिए. है ना? एक पूर्णांक की गारंटी है 32-सा हो Zamyla जबकि गेब्रियल कुछ वर्ण लंबा है , अधिक कुछ वर्ण लंबा है डेवनपोर्ट वास्तव में लंबे समय है, और इसलिए यह है उपयोग करने के लिए विशेष रूप से कुशल नहीं तार मूल्यों की तुलना और देखने के लिए क्षेत्रों, और अद्यतन क्षेत्रों के लिए, आप भाग ले सकते हैं सिर्फ एक पूर्णांक के साथ. सिर्फ 32 बिट. उपयोगकर्ता नाम तो, भी, इस तरह, अद्वितीय होने की जरूरत नहीं है, वे शायद चाहिए, हालांकि हो सकता है, और यहां तक ​​कि इस तरह से भी एक उपयोगकर्ता के लिए अनुमति दी जा सकती है अपने या अपने उपयोगकर्ता नाम बदल जाते हैं. तो चलो अब के रूप में इस छोड़ दें उपयोगकर्ता की पहचान के प्राथमिक साधन. इस डेटाबेस कह रही है आगे बढ़ो और अपने आप को अनुकूलित इसलिए आईडी पर कि देखो अप सुपर फास्ट हैं. एअर इंडिया, बुरी सिर्फ नाम ऑटो वेतन वृद्धि का मतलब है, और यह चेक है हम जांच की जरूरत बॉक्स करने के लिए आईडी क्षेत्र है कि निर्दिष्ट करने के लिए स्वचालित रूप से मेरे लिए अद्यतन किया, और फिर मैं जा रहा हूँ यहाँ सही करने के लिए स्क्रॉल और स्पष्ट रूप से मैं वास्तव में कोई दिलचस्पी नहीं हूँ इन क्षेत्रों में से किसी भी अधिक में. निश्चित रूप से आज नहीं. तो मैं यहाँ वापस जाने के लिए जा रहा हूँ, पहले कॉलम, जहां के लिए मैं उपयोगकर्ता नाम निर्दिष्ट करने की आवश्यकता और हैश, और चलो पर कम से कम फोकस में अब के लिए एक दूसरे के. इंटरनैशनल शायद सही कॉल नहीं है, तो क्या शायद अधिक समझ में आता है? दर्शक: पाठ. डेविड जे Malan: फिर से कहो? दर्शक: पाठ. डेविड जे Malan: पाठ? ठीक है, मैं पाठ सुना. और क्या? हम तरह के विकल्पों की एक गुच्छा है प्रकृति में शाब्दिक हैं. इसलिए जब, और क्यों, ऐसा आप इनमें से कुछ का उपयोग करें? चार खैर, के विपरीत क्या आप कर सकते हैं लगता है, एक ही चरित्र नहीं है. यह वर्ण की एक विशिष्ट संख्या है. हम जानते हैं कि सभी उपयोगकर्ता नाम कि आठ पात्रों की तरह होना चाहिए, पुराने में आम हुआ करता था के रूप में कंप्यूटर सिस्टम, मैं चार कह सकते हैं और फिर मैं यहाँ 8 कह सकते हैं. तीसरे स्तंभ बन जाता है कि जब लागू एक टेबल बनाते समय. लेकिन उस कष्टप्रद की तरह है कुछ लोगों को हो सकता है क्योंकि एक लंबे समय तक उपयोगकर्ता नाम है चाहता हूँ आठ वर्णों से, कुछ लोगों के लिए चाहते हो सकता है एक छोटी उपयोगकर्ता नाम है, तो क्यों अपने आप को प्रतिबद्ध एक विशिष्ट संख्या के लिए? क्यों एक चर नहीं वर्ण की संख्या और बस कहते हैं कि एक नाम की अधिकतम लंबाई है, मैं 64 पात्रों की तरह, पता नहीं है. मैं कोई टिप्पणी नहीं सोच सकते हैं, जो 64 अक्षरों से नाम अब है, वह भी कम है और अगर तुम सकता है निश्चित रूप से मनमाने ढंग से यह टक्कर. तो varchar एक चर रहा है वर्ण की संख्या. पाठ एक बुरा वृत्ति नहीं है, और स्पष्ट है कि तरह की यह क्या कहता है, लेकिन एक पाठ क्षेत्र हो सकता है कम से कम 65,000 बाइट्स की तरह. यही कारण है कि एक के लिए शायद overkill है क्षेत्र, और वास्तव में, हाँ, 65,535. यही कारण है कि एक के लिए शायद overkill है नाम है, तो हम आम तौर पर रहना होगा, शाब्दिक लिए varchars साथ भी क्षेत्र और हैश,. हैश, यह पता चला है, हम एक कर सकता है varchar के रूप में अच्छी तरह से या ऐसा कुछ, लेकिन हम पर आज ध्यान केंद्रित नहीं होगी वहाँ क्रिप्टोग्राफी और संख्या हम वास्तव में हो सकता है इसकी लंबाई के लिए उपयोग करना चाहते हैं. लेकिन मुझे सही करने के लिए नीचे स्क्रॉल करते हैं. आप केवल एक ही हो सकता है एक मेज के लिए प्राथमिक सूचकांक लेकिन मैं इनमें से किसी को लागू करना चाहते हैं, अब, उपयोगकर्ता नाम के लिए, आप कहेंगे? क्या उपयोगकर्ता नाम चाहिए एक अस्पष्ट पर आधारित होना इन चार विकल्पों में से समझ? बस उनके नाम से? दर्शक: अनोखा. डेविड जे Malan: इतना अद्वितीय, है ना? तो यह न केवल सकता है कि पता चला है आप अग्रिम में, एक डेटाबेस बताओ इस प्राथमिक तरीका है के क्षेत्रों की पहचान. आप यह भी कहना है कि यह कर सकते हैं एक अद्वितीय क्षेत्र होने जा रहा. यह नहीं होने जा रहा है मैं पर भरोसा करते हैं बात, लेकिन मैं करने के लिए डेटाबेस चाहेंगे अनिवार्य रूप से है कि अगर हालत है, तो है कि मैं कभी भी रजिस्टर करने की कोशिश की एक ही नाम के साथ दो उपयोगकर्ताओं डेटाबेस फ्लैट बाहर मुझे बताने के लिए नहीं जा रहा है. मैं कुछ अतिरिक्त कोड हो सकता है के रूप में ज्यादा से बचाता है कि PHP में, लेकिन डेटाबेस, भी, यह सुनिश्चित कर सकते हैं कि कभी नहीं होने जा रहा है कि. अब, एक तरफ, खासकर के रूप में के रूप में आप अंतिम परियोजनाओं के बारे में सोचना, मन में यह सूचकांक और पूर्ण में रखना पाठ वास्तव में काफी उपयोगी होते हैं. आप एक बड़ा डेटाबेस, नहीं के साथ है, तो दर्जनों, लेकिन सैकड़ों या हजारों के साथ क्षेत्रों के या यहां तक ​​कि लाखों, आप कर सकते हैं भी अग्रिम में डेटाबेस बताओ यह मैं जा रहा हूँ एक क्षेत्र है एक बहुत पर खोज करने के लिए. शायद इसकी उपयोगकर्ता नाम, अगर तुम शायद यह जैव है, एक फेसबुक जैसी वेबसाइट बनाने कि उपयोगकर्ता की अनुमति दी है कि पैराग्राफ है यदि आप चाहते हैं बचाने के लिए, और करने के लिए अग्रिम में डेटाबेस बताओ मैं इस क्षेत्र पर खोज करने जा रहा हूँ एक बहुत कुछ है, लेकिन यह जरूरी अद्वितीय नहीं है आप मुझे एक सूचकांक बनाने निर्दिष्ट कर सकते हैं. या, आप भी कहना मुझे ऐसा करने के लिए अनुमति दे सकते हैं कमान की तरह मनमाना खोजों की तरह या कंट्रोल एफ, आप की तरह एक शब्द संसाधक में हो सकता है, तो आप मनमाने ढंग से तार लग सकता है इस क्षेत्र में या substrings. दूसरे शब्दों में, हम कर रहे हैं सेमेस्टर में बात करने के लिए आप के बारे में चिंता करने की ज़रूरत नहीं है, जहां कैसे कुशलतापूर्वक चीजों को लागू करने के लिए. तुम बस के बारे में जानने की जरूरत है क्या डिजाइन निर्णय तो आप कर रहे हैं कि बनाने के लिए के लिए सही उपकरण का उपयोग सुविधाओं का लाभ उठाने के क्रम में व्यापार कि अन्य लोगों को आप के लिए बनाया गया है. तो संक्षिप्त करने के लिए, प्राथमिक तभी करना चाहिए एक है, आप केवल एक हो सकता है और यह आप के लिए करने से रहे हैं तो बात है विशिष्ट क्षेत्रों की पहचान करने के लिए इस्तेमाल करते हैं. अनोखा, आत्मा में सिर्फ समान है, लेकिन आप कभी कभी ही इसका इस्तेमाल हो सकता है, लेकिन आप डेटाबेस में इसे लागू करना चाहते हैं. सूचकांक बस preemptively मतलब भविष्य में काम की गति मैं के लिए खोज कर सकते हैं कि इतना इस क्षेत्र में बातें. और फिर पूरा पाठ के लिए आम तौर पर है पैराग्राफ, या निबंध, या बड़े निकायों जहां आप पाठ की भी करना चाह सकते हैं स्टार के समकक्ष की तरह जंगली कार्ड. ठीक है. तो उस तरह का था एक ही बार में सभी के लिए बहुत कुछ. हम गढ़ने नहीं कर सकते, तो चलो देखते हैं इन सुविधाओं के एक जोड़े और तो कुछ का निर्माण काफी सरल है, लेकिन शक्तिशाली. अन्य के बीच इतना डिजाइन निर्णय आप कर रहे हैं अंततः साथ है जा भंडारण इंजन की तर्ज. और मुझे बस इस बात का उल्लेख करते हैं अंतिम परियोजनाओं की प्रत्याशा में, और की प्रत्याशा चलो say-- कोई चलो यह करते हैं. के इस छोटे से निर्माण करते हैं पहले आवेदन. मैं अपने टर्मिनल में जाने के लिए जा रहा हूँ खिड़की, और यहाँ में नहीं है केवल counter.php, अब हम जा रहे हैं जो के रूप में अब कोई सार्थक से छुटकारा पाने के लिए, लेकिन हम एक पूरी गुच्छा है निर्देशिका और इस का भावना में बहुत समान होने जा रहा है आप समस्या में देखेंगे क्या करने के लिए सात सेट. इसलिए हम तीन निर्देशिका सार्वजनिक और टेम्पलेट्स शामिल हैं जो है वास्तव में, जहां हम पर से दूर छोड़ दिया हमारे पूरे MVC के प्रतिमान के साथ सोमवार. और हालात को, जनता में जाना जा रहा है मैं उपयोगकर्ताओं करना चाहते हैं जो किसी भी फ़ाइल वास्तव में वी में यात्रा करने में सक्षम हो यूआरएल के जरिए अपने ब्राउज़र. टेम्पलेट. हम टेम्पलेट्स में क्या रखा है? सामान किस तरह का? वहाँ नहीं था बहुत लेकिन एक जोड़े सोमवार को कम से कम फ़ाइलों. हाँ. दर्शक: लेख और पाद? डेविड जे Malan: लेख और पाद. तो हम भी, आज कुछ इसी तरह की है. हम कुछ और फ़ाइलों को मिल गया है लेकिन पाद मैं, मैं देख हैडर देखना और फिर अन्य फ़ाइलों का एक गुच्छा. तो यह बराबर है जो वी MVC के देखने के लिए, की, फिर, होगा थोड़ा और अधिक समस्या में स्पष्ट, सात सेट लेकिन यह मैं हूँ बस एक फ़ोल्डर है मेरे सौंदर्यशास्त्र की एक बहुत डाल. मेरे एचटीएमएल, मेरे रूपों का एक बहुत की एक बहुत. इस बीच, भी शामिल है, एक और है इन तीन फाइलों है कि निर्देशिका और इन पर एक त्वरित नज़र रखना. मैं आगे जाने के लिए जा रहा हूँ और config.php खुला. यह बहुत निकलता है अवधि में पहले की तरह, आप तेज शामिल Pset7 साथ CS50 डॉट एच. आज के उदाहरण में, आप जा रहे हैं उस के बराबर करने के लिए एक आवश्यकता के बयान के साथ कि प्रभावी ढंग से इन कई लाइनें शामिल हैं. तो स्पष्ट होना, यह है एक फ़ाइल config.php बुलाया. और यह क्या कर रहा है नोटिस. यह जाहिरा तौर पर कुछ कर रहा है गुप्त, पर मोड़ त्रुटि संदेश आप ब्राउज़र में उन्हें देख सकते हैं. यह जाहिर है, तो, चलो दो अन्य फ़ाइलों की आवश्यकता इसलिए इस सी में # शामिल की तरह है और फिर हम देखेंगे था इस एक, और हम पर भरोसा किया है, इस पर बदल जाता है कार्यक्षमता जैसे कि खरीदारी की टोकरी. यह एक कुकी इच्छा का मतलब आगे पीछे भेजा जाना. तो क्यों यह दिलचस्प है? ठीक है, हम यह करने के लिए वापस जाने के लिए अगर निर्देशिका और उदाहरण के लिए, खोल, constance.php. सूचना PHP समर्थन स्थिरांक करता है कि, यह काफी सी में परिभाषित की तरह नहीं है इसके बजाय, आप सचमुच परिभाषित कहना, और नोटिस मैं पहले से संग्रहीत किया है कि इस फाइल में चार स्थिरांक. आज के डेटाबेस के लिए एक, के लिए अपना पासवर्ड, अपना उपयोगकर्ता नाम के लिए, और सर्वर के नाम के लिए. तो ये वास्तव में होने जा रहे हैं समस्या में बहुत समान सात सेट. और अंत में, और यह मैं हूँ जहाँ है कुछ अच्छी कार्यक्षमता प्राप्त करने के लिए जा रहा कर्मचारियों से, functions.php में हम लिखा है कोड का एक गुच्छा है, और मैं इस में से कुछ चुराया समस्या सात सेट से आज के लिए, कि चीजों की एक गुच्छा करता है और सिर्फ उनमें से एक को देखो विशेष रूप से. यहां इस समारोह में, क्वेरी, होने जा रहा है हम फोन PHP समारोह एसक्यूएल निष्पादित करने के लिए आदेश में. एक क्षण पहले हम उपयोग कर रहे थे phpMyAdmin, लेकिन सिर्फ है कि सीखने प्रयोजनों के प्रकार के लिए और नैदानिक ​​प्रयोजनों और अपने डेटाबेस सेट भूल. जब आप वास्तव में इस्तेमाल अपने डेटाबेस, आप, मानव, जाहिर है नहीं जा रहे हैं एक वेब खींच किया जाना है पेज हर बार किसी पंजीकृत करता है. आप कोड लिखने जा रहे हैं कि सम्मिलित करता है और मांग पर उपयोगकर्ताओं को हटाता है, और हम ऐसा करने जा रहे हैं क्वेरी समारोह के माध्यम से. मैं अब नीचे स्क्रॉल, तो वहाँ कुछ और सुविधाओं होने जा रहा. रीडायरेक्ट करने जा रहा है हम लिखा एक समारोह आप के लिए है कि आपको अनुमति देता है एक और यूआरएल के लिए उपयोगकर्ता भेजने, और प्रस्तुत करना काफी पसंद है, एक समारोह है हम वास्तव में प्रस्तुत करने वाले, सोमवार को देखा एक टेम्पलेट, लेकिन अधिक में इन पर के माध्यम से pset7 के स्वयं के चलने के रूप में. अभी के लिए, आगे बढ़ो और यह करते हैं. मुझे मेरे व्याख्यान तालिका में चलते हैं और वर्तमान में कुछ भी नहीं है कि देखते हैं यहाँ बस अभी तक, और मुझे भी जाने दो मेरी सार्वजनिक निर्देशिका, जहां में सिर्फ एक फ़ाइल index.php, वहाँ है. इस फ़ाइल में सुपर सरल प्रतीत होता है फिलहाल, यह सिर्फ इस तरह दिखता है. बहुत ज्यादा कैसे की तरह हम सोमवार को दूर छोड़ दिया. मैं इस फ़ाइल की आवश्यकता हूँ में है जो config.php, एक निर्देशिका, जो भी शामिल डॉट डॉट में है, मेरे माता-पिता, और फिर यह सिर्फ इस फाइल प्रतिपादन है. तो इस फ़ाइल क्या है? चलो मेरे टेम्पलेट्स में खोल दें form.php, और हम इस देखेंगे. सुपर सरल, जाहिरा तौर पर इस फार्म है एक $ _GET या $ _POST द्वारा प्रस्तुत करने जा रहा है. त्वरित मानसिक स्वास्थ्य की जांच. वस्तुतः नेत्रहीन फ़ाइल खोज. विधि पद के बराबर होती है. तो यह की तरह, URL का उपयोग करने के लिए नहीं जा रहा है गूगल इसे छिपाने की तरह हो रहा है, करता है पीछे जानकारी दृश्यों और यह बात है एक को प्रस्तुत करने के लिए जा रहा register.php बुलाया फ़ाइल, और उस फ़ाइल है हम अभी तक नहीं लिखा है लेकिन क्या यह जा रहा है इस तरह देखने के लिए. मैं एक अलग पेज के लिए जाना है यह क्या लोकलहोस्ट / index.php की तरह लग रहा है. और फिर, सर्वर बस index.php संभालने. दर्ज करें. हम कर रहे हैं इतना है कि जहां पर, और क्या मैं करना चाहता हूँ बातों टाइप करने में सक्षम हो जाता है दाऊद की तरह, और उसके बाद मेरा फोन नंबर, कहेंगे जो अब के लिए 617-555-1212, रजिस्टर और अब register.php नहीं मिला था. इसलिए मैं इस लागू करने की जरूरत है. तो चलो जल्दी से कोड़ा जाने इस तरह कुछ. मुझे मेरी जनता निर्देशिका में चलते हैं और register.php की एडिट करना, और अब मैं आगे जाने के लिए जा रहा हूँ और हम सोमवार को किया था, पीएचपी मोड शुरू, और करीब है PHP टैग, और की चीजों की एक जोड़ी करते हैं. एक तो, मैं से जानते हैं, उस रूप में लिखा होने, मैं निम्नलिखित के लिए जाँच करना चाहते हैं. यह खाली है, तो जो कुछ उपयोगकर्ता तो, नाम क्षेत्र में टाइप किया मैं कुछ कहने जा रहा हूँ जैसे नाम गायब माफी माँगता हूँ. इस बीच, है, माफी माँगता हूँ नहीं PHP के बात में बनाया, यह हम लिखा एक समारोह है pset7 के लिए functions.php में इतनी है कि आप इसे करने के लिए उपयोग किया है. अन्य क्षेत्र अगर और खाली, संख्या है, तो मैं कर रहा हूँ के लिए माफी माँगने के लिए जा रहा उपयोगकर्ता और लापता संख्या कहते हैं. इस फाइल को सेव करें. अब अपने ब्राउज़र के लिए वापस जाओ, फिर से कोशिश वापस मंच पर जाएँ. रजिस्टर. ठीक. कुछ भी नहीं है जो अच्छा है, क्या हुआ. मैं कोई त्रुटि संदेश नहीं मिला. लेकिन इसके बजाय अगर, चलो यह फिर से लोड करते हैं पेज, और कुछ भी नहीं प्रदान की. लानत है. ऐसा करते हो. रजिस्टर. मैं गलत क्या किया? खाली हैं, $ _POST नाम. फिर से कहो? ओह, बिल्कुल. मैं सबसे महत्वपूर्ण हिस्सा भूल गया, जो ("../ / config.php भी शामिल है.") की आवश्यकता होती है. मैं करने के लिए उपयोग करने की आवश्यकता है , समारोह माफी माँगता हूँ जो कुछ भी नहीं हो रहा था क्यों है. समारोह वास्तव में मौजूद नहीं है. तो चलो फिर से कोशिश करते हैं. पृष्ठ को फिर से लोड चलो, रजिस्टर पर क्लिक करें. ठीक. वहाँ यह है. तो, उत्पादन हम कर रहे हैं यहाँ देखकर परिणाम है के माफी माँगने के एक बुला समारोह, सुपर सरल, और यह सिर्फ बाहर प्रिंट जो कुछ भी मैं एक तर्क के रूप में दे. सब ठीक है, तो चलो सहयोग करते हैं. मेरा नाम प्रदान करते हैं दाऊद की तरह, रजिस्टर, संख्या ठीक है चलो लापता भी, कि प्रदान करते हैं. 617-555-1212. रजिस्टर. ठीक. इतना सब, अब अच्छी तरह से अभी कुछ भी नहीं है दिलचस्प हो रहा है. तो अब चलो कुछ अधिक कर देना दिलचस्प इस तरह से होता है. मुझे phpMyAdmin में चलते हैं, और चलो वास्तव में, उपयोगकर्ताओं नामक एक टेबल बना मैं यह तीन देने के लिए जा रहा हूँ कॉलम, और मैं जल्दी से हूँ तो आईडी बनाते हैं, और नाम है, और फिर संख्या, और आईडी क्षेत्र मैं हूँ एक पूर्णांक के रूप में छोड़ने के लिए जा रहा है. मैं जा रहा हूँ नाम क्षेत्र एक varchar के रूप में छोड़ने के लिए, और हम कुछ हद तक मनमाने ढंग से, 64 कहूँगा. मैं जा रहा हूँ संख्या बनाने के लिए, तुम्हें पता है क्या? हम में जा रहे हैं यहाँ अमेरिका संख्या का समर्थन, इसलिए मैं कुछ करने जा रहा हूँ चार तरह और फिर 10 अक्षर एक क्षेत्र कोड के लिए अधिकतम और फिर सात अंक. और फिर यहाँ पर, मैं जा रहा हूँ , ऑटो वेतन वृद्धि इस क्षेत्र निर्दिष्ट यह एक प्राथमिक कुंजी बनाने, और मैं आगे और नहीं जा रहा हूँ इन अन्य बक्से में से किसी की जाँच करें. तो अब मैं अंत में सहेजें क्लिक करते हैं, और मैं अपने उपयोगकर्ताओं की मेज पर वापस जाओ यह बात अगर की तरह लग रहा है मैं अब एक नया टैब संरचना पर क्लिक करें. तो यह स्पष्ट होना करने के लिए सिर्फ phpMyAdmin की तरह है अपने डेटाबेस तालिका कहने का एक आईडी, नाम, और एक नंबर है उन विशेष विन्यास के साथ और हम क्षेत्र के बाकी की उपेक्षा करेंगे वहाँ अब के लिए. तो अब मैं क्या करना चाहते हैं? मैं में अब जाना तो अगर मेरे स्रोत कोड, सब कुछ ठीक है मैं निम्न क्वेरी को निष्पादित करने के लिए चाहते हैं. में डालें, और मैं बस कर सकते हैं उपयोगकर्ताओं मैं सख्ती से नहीं कहना अगर यह उन वापस ticks जरूरत उपयोगकर्ताओं की तरह नहीं एक खतरनाक शब्द. मैं नाम कहने जा रहा हूँ, संख्या, और फिर यहाँ मैं हूँ मुश्किल कोड नहीं जा रहा अभी तक मूल्यों के अंक. मैं दो प्रश्न चिह्न डाल करने के लिए जा रहा हूँ. और यह एक परंपरा है कई भाषाओं में जिससे आप करना चाहते हैं एक स्ट्रिंग के लिए एक प्लेसहोल्डर आप सवाल उपयोग करने के लिए जा रहे हैं अंक, कारणों के लिए हम करेंगे के बारे में बातचीत करने के लिए वापस आ गए सुरक्षा, और यहां मैं उन में पारित करने के लिए जा रहा हूँ दो क्षेत्रों नाम पोस्ट, और फिर, संख्या पोस्ट और अब फाइल को बचाने. और अब मैं जा रहा हूँ एक सुपर है यहाँ नीचे जाना बस rendersuccess.php कहते हैं, जो एक और टेम्पलेट होने जा रहा है. मैं वास्तव में तेजी से बनाने के लिए जा रहा हूँ. Geditsuccess.php और मैं अभी जा रहा हूँ उस फ़ाइल में एच 1 सफलता कहने के लिए. ठीक है. तो अब, चलो के लिए वापस जाओ मैं पहले का दौरा किया जहां ब्राउज़र. आगे चलते हैं और मैंने लिखा पुष्टि डेविड में, मैं एक फोन नंबर में लिखा रजिस्टर. लानत है. मैं गलत क्या किया? तो मैं यहाँ आपको एक त्रुटि देख रहा हूँ अपने एसक्यूएल वाक्य रचना में कोई त्रुटि है. मुझे वापस एडिट करने के लिए कूद चलो, चलो मुझे, register.php के लिए वापस जाओ और मुझे लगता है कि क्या न आना था महत्वपूर्ण पिछली बार गया था? मैं इस की जरूरत है. तुम से अधिक है कि अन्य जानना चाहते हैं होने से पहले देखा है, लेकिन मैं इस की जरूरत है. तो अब वापस चलते हैं, और इस ब्राउज़र में देखने के लिए उपयोगी था और यही कारण है कि config.php में है हम त्रुटियों बाहर थूक. चलो आगे जाना है और फिर से लोड करते हैं जारी रखें, सफलता क्लिक करें. तो अब मेरे पास चलते हैं मेरे यहाँ डेटाबेस और उपयोगकर्ता पर क्लिक करें, और ब्राउज़, और अब मैं नोटिस यहाँ अपने डेटाबेस में दाऊद है. अब तकनीकी रूप से इस वेबसाइट है नहीं अभी तक सार्वजनिक इंटरनेट पर, इसलिए मैं दूसरे नहीं कर सकते यहाँ डालने में लोगों, लेकिन मैं अब के लिए, चाहता था उदाहरण के लिए, अपने आप को एक पाठ संदेश भेजें. यहाँ एक अंग पर बाहर जाने दो यह वास्तव में काम करता है और देखते हैं. मैं आगे जाने के लिए जा रहा हूँ और इस पंक्ति को हटाना और हम इस कलंक करेंगे वीडियो में बाहर बाद में इसलिए हमारे पास नहीं है पूरे इंटरनेट, मुझे texting और हम अब तक जाना होगा ब्राउज़र और हम व्याख्यान पर जायेंगे और हम अलग में टाइप करेंगे संख्या, यहाँ, सफलता रजिस्टर. तो अब, अपने ही संख्या में संभवतः है डेटाबेस, और अब मजा हिस्सा. वास्तव में क्या करने के लिए PHP का उपयोग करते हैं कुछ प्रोग्राम या तो कमान से लाइन या कहीं और से, और अब के लिए मैं अभी कर रहा हूँ इसे सरल रखने के लिए जा रहा और मैं में जाने के लिए जा रहा हूँ मेरे यहां निर्देशिका और निम्नलिखित है. एडिट स्क्रिप्ट हम करेंगे, हम कहते हैं , पाठ, #! / उपयोगकर्ता / बिन / लि PHP का यह फोन जैसे हम आखिरी बार देखा था. PHP के. अब मैं आवश्यकता क्या करने जा रहा हूँ config.php शामिल है, यहां तक ​​कि इस सकता है एक मामूली त्रुटि प्रेरित. और अब मैं आगे जाना है और कहने के लिए जा रहा हूँ उपयोगकर्ताओं से पंक्तियों, क्वेरी, का चयन सितारा, और अब यहाँ मैं एक तकनीक क्या करने जा रहा हूँ पंक्ति के रूप में प्रत्येक पंक्तियों के लिए पिछली बार से. और मैं सरल कुछ करने जा रहा हूँ. के नाम यह है हम कहते हैं कि printf, और संख्या इस, बैकस्लैश n है. और अब मैं पारित करने के लिए जा रहा हूँ पंक्ति में, गंदें शब्द बोलना नाम बोली और पंक्ति बोली गंदें शब्द बोलना संख्या, और अब आगे चलते हैं और मेरे टर्मिनल विंडो chmod यह एक + X बनाने के लिए पाठ निष्पादन योग्य नामक इस स्क्रिप्ट. और अब का पाठ चलाते हैं. ठीक है, तो प्रगति. तो अब मैं लिखा है एक कमांड लाइन स्क्रिप्ट, कि, पीएचपी नामक एक भाषा में, उसकी वजह से, लाइन की आवश्यकता उन सभी विन्यास के लिए उपयोग किया मैं निर्दिष्ट स्थिरांक. डेटाबेस और इसके आगे का नाम. वास्तव में, अभी स्पष्ट होना यह एक अस्थायी नहीं है कि, , मुझे आगे जाना है और रजिस्टर दें रोब पसंद है और वास्तव में तेजी से, किसी को और उसे 555-1212 संख्या दे देंगे. और अब, मैं स्क्रिप्ट चलाते हैं फिर, बिजली नोटिस हम डाटाबेस के साथ क्या कर रहे हैं. अब मैं तुरंत देखा है क्या अन्य दो पंक्तियों अपने डेटाबेस में हैं. तो अब हम कुछ करने की कोशिश करते हैं के अंदर भी शौक़ीन, और यह हम है हिस्सा है अग्रिम में जांच नहीं की, इसलिए पिछली बार मैंने ऐसा किया बातें, बुरी तरह धराशायी हो गईं हम उस प्रभाव के लिए वीडियो है. दरअसल, हाँ, अजीब तरफ. पिछली बार तो, में एक दो साल पहले की तरह व्याख्यान, हम होना, मैंने फैसला, फैसला किया यह सब एक महान विचार होगा गतिशील रूप में ईमेल उत्पन्न करने के लिए वर्ग, पूरे डेटाबेस CS50 का उपयोग हमें उनकी संख्या दी थी जो छात्र, और उनके सेलफोन वाहक जो आप pset0 से याद हो सकता है, यह पता चला है, कारण कैसे मैं अपने कार्यक्रम में एक मामूली बग था और 2012 में एक युगल गलतियों किया था, मुझे लगता है. जिससे एक मैं पाश के लिए था कि , वास्तव में बात की इस तरह किया डेटाबेस से अधिक पुनरावृति, डेटाबेस से एक नाम हो रही है, प्रत्येक पर फिर डेटाबेस से नाम है, और कि पाश की यात्रा मैं एक ईमेल भेजा है. लेकिन बजाय एक ईमेल भेजने के, मैं एक ईमेल पहली यात्रा भेजा, और दो ईमेल एक दूसरी यात्रा, भेजा तीन ईमेल एक दूसरी यात्रा, जो आप से याद हो सकता है के रूप में हमारे उपगामी अंकन की चर्चा एन तरह खराब की इस बड़ी हे, चुकता , मैं भेजा कितने संदेश है लेकिन यह भी ईमेल नहीं था यह पाठ संदेश था. जैसा कि आप जानते है, उपस्थिति नहीं है अंत सेमेस्टर की ओर सुपर उच्च और इसलिए मैं इसे प्यारा होगा समय "क्यों तुम क्लास नहीं कर रहे हैं?", कहना पाठ संदेश मैं में पूरे वर्ग के लिए भेजा, और इसके बारे में 50% की तरह करने के लिए अजीब था वर्ग, लेकिन अन्य 50%, जिनमें से कुछ हालत खराब, मैं अविश्वसनीय रूप से भेजा क्षमाप्रार्थी मीठा नोट्स कर्मचारियों के लिए माफी मांग को व्याख्यान चूक होने बस इस बार, है ना? इसलिए कि बुरी तरह धराशायी होगा. कि भावना में तो, चलो इस कोशिश करते हैं फिर से, लेकिन अभी मेरा नंबर के साथ. अग्रिम में, functions.php में, मैं यहां इस समारोह में लिखा है. यह पाठ कहा जाता है, और यह बात है तीन तर्कों में लेता है. एक नंबर, एक वाहक है, और एक संदेश. मैं एक स्विच बयान का उपयोग कर रहा हूँ जो शानदार पीएचपी, न सिर्फ तार ले पूर्णांकों, और मैं लागू नहीं किया अभी तक इस बात के लिए सभी का समर्थन, मैं सिर्फ एटी एंड टी और Verizon किया है. यह पता चला है क्योंकि इन मार्गों के साथ कि वे, एसएमएस गेटवे के लिए ईमेल जिससे आप वास्तव में यह कर सकते हैं एक पते पर एक ईमेल भेजें vtext.com पर फोन नंबर की तरह और उपयोगकर्ता अवरुद्ध नहीं किया गया है संदेश, इसके माध्यम से जाना होगा एक पाठ संदेश है. अब ऐसा करने के लिए, मैं जोड़ने के लिए किया जा रहा हूँ अपने डेटाबेस के लिए वास्तव में तेजी से एक क्षेत्र. मैं में जाने के लिए जा रहा हूँ मेरे संरचना, और मैं कर रहा हूँ आगे जाकर एक जोड़ने के लिए जा तालिका के अंत में क्षेत्र. जाओ क्लिक करते हैं, और मैं कर रहा हूँ इस वाहक फोन करने वाला और अब मैं जा रहा हूँ एक बार पाठ के रूप में इस छोड़ना, लेकिन हम भविष्य में विशेषज्ञ हो सकता है. मैं जल्दी से जाने के लिए जा रहा हूँ मेरे तालिका में, और मैं कर रहा हूँ रोब से छुटकारा पाने के लिए जा रहा, कि एक नकली संख्या है क्योंकि, मैं यहाँ संपादित में जाने के लिए जा रहा हूँ और मैं कर रहा हूँ स्वयं अपने वाहक बदलने जा रहा Verizon के होने का जो यह , और अब यहाँ खत्म हो गया है. चलो एक त्वरित मानसिक स्वास्थ्य की जांच करते हैं. चलो हमारे पाठ स्क्रिप्ट, खोल दें जो इस तरह दिखता है, वाहक% की है. हम एक बहुत अधिक त्रुटि कर रहे हैं मैं 2012 में वाहक की तुलना में जाँच. और अब, मैं जा रहा हूँ आगे और स्क्रिप्ट फिर से चलाने के. ठीक. कैरियर जिसका मतलब है कि Verizon, है अब उम्मीद है कि मैं सिर्फ यह कर सकते हैं. सही ढंग से इस वर्ष, उम्मीद है, यहाँ हम चले. तो पाश के लिए इस के अंदर, मैं हूँ इस printf है ही नहीं जा रहा है, मैं भी पाठ कॉल करने के लिए जा रहा हूँ और इस समारोह में याद के उपयोग था यह एक, एक नंबर लेता है वाहक, और एक संदेश. तो चलो देखते हैं, संख्या के लिए जा रहा है पंक्ति बोली गंदें शब्द बोलना हो "संख्या" पंक्ति बोली गंदें शब्द बोलना "वाहक" और पिछले एक संदेश था. इस साल अर्धविराम बिगाड़ न करें. ठीक. उंगलियों को पार. अगर यह काम करता चलो देखते हैं. तो सब ठीक है,. ये रहा. का फोन अनलॉक करते हैं, अपनी उंगलियों को पार, अरे. अपरिभाषित चर may-- ओह असली तेजी, रुको, रुको, रुको. असली तेजी, असली तेजी. यह बात पूरी तरह से इसके लायक है. मुझे ओह, हड़पने चलो, मुझे ले लो. ग्रंथों है, धन्यवाद किसी और से करना शुरू कर दिया. मुझे आगे जाना है और असली खोल दें यहाँ में तेजी, dropbox.php / मेल. स्टैंडबाय. यह पूरी तरह से लायक. डाउनलोड. ठीक है, स्रोत src8m. ठीक. यहाँ एक और लाइन की जरूरत है. ओह वहाँ यह यह Frosh में है, है आईएमएस, यह तीन पर रजिस्टर में है. नमस्ते ओह, मार्गो, बहुत बहुत धन्यवाद. ठीक है, और मैं यहाँ इस पंक्ति याद आ रही थी. तो मुझे जल्दी से हड़पने चलो कोड की इस पंक्ति, जो मेल या पुस्तकालय में शामिल मैं वास्तव में उपयोग करना चाहते हैं, मैं जल्दी से जा रहा हूँ कार्यों में वापस जाना है, मैं इस के शीर्ष पर जाने के लिए जा रहा हूँ फाइल और साथ ही इस फ़ाइल की आवश्यकता होती है, और अब मैं वास्तव में पार करने के लिए जा रहा हूँ मेरे मैं आदेश को वापस जाने के लिए जब उंगलियां के अंदर जो लाइन स्क्रिप्ट, आज की स्थानीय मेजबान निर्देशिका. भागो पाठ. दर्ज करें. मेल. स्टैंडबाय. स्टैंडबाय. मेल. ठीक है, ओह. ये रहा. मेल नई PHP के मेलर हो जाता है. मैं यह सही नहीं किया था? लानत है. रुको, रुको, रुको, ओह To--. समर्थन करना. मैं यह है, वादा यह इतना लायक होने जा रहा. पता. मैं नहीं बनाते हैं यही कारण है कि सही वर्ग से पहले उदाहरण हैं. ऊ. निम्नलिखित प्राप्तकर्ताओं में विफल रहा है. की एक अंतिम बात की कोशिश करते हैं. पता जोड़ने से सेट एसएमटीपी, पता है कि वास्तव में है. के अभिभाषण में यह पिछले भाग की कोशिश करते हैं. अरे, मैं अभी वास्तव में दुखी हूँ. धन्यवाद. लेकिन मैं वास्तव में सभी की सराहना ग्रंथों आप भेज दिया गया है. आप इस डेविड मिल गया है. आप इसे उड़ा रहे हैं. वहाँ इसे छोड़ दें और हम सोमवार को ठीक कर देंगे. फिर मिलते हैं. दावेन Farnham: और अब दीप दावेन Farnham द्वारा विचार. एक द्विआधारी पेड़ एक जंगल में जाता है और कोई नहीं सी it-- [मुँह दबाकर हँसती] को चारों ओर है.