सैम LEVATICH: करने के लिए आपका स्वागत है इस सप्ताह के लिए अनुभाग। मैं एंडी नहीं हूँ। एंडी इस दिन बीमार गिर गया है, और मैं गया है क्रमबद्ध के अंतिम मिनट में बुलाया गया है कब्जे में लेने के लिए। यह फ्लू के मौसम है, तो सुनिश्चित करें कि आप स्वच्छ रह रहे हैं, अपने हाथ धोने, और स्वस्थ खाने के लिए इतना है कि आप भी अपाहिज नहीं हैं। लेकिन आगे के बिना हलचल, चलो शुरू हो जाओ। आज, हम बात करने जा रहे हैं पीएचपी के बारे में थोड़ा कैसे bit-- पीएचपी यह कैसे, एचटीएमएल से संबंधित है सीएसएस से संबंधित है, और वेब के कुछ सामान आप पिछले काम पर था। हम एक बात करने के लिए जा रहे हैं एसक्यूएल के बारे में थोड़ा सा और आप डेटाबेस के साथ काम कर सकते हैं, जो पी का एक बहुत महत्वपूर्ण घटक है सेट 8-- पी 7 निर्धारित किया है। पी 7 की स्थापना की। और फिर हम एक छोटे से बात करने के लिए जा रहे हैं दृश्य नियंत्रकों कैसे काम के बारे में थोड़ा और कहा कि कुछ के पीछे एक दर्शन है क्यों आधुनिक वेब पेज और विभिन्न डिजाइन। क्षुधा के प्रकार के बहुत ज्यादा एक बहुत और अनुप्रयोगों आप जहाज हो सकता है इस मॉडल का उपयोग कर रहे हैं, दृश्य नियंत्रक ढांचे, आप का उपयोग किया जाएगा पी 7 के लिए सेट है, तो मैं हूँ एक छोटा सा बात कि हो गया है के बारे में क्यों लोकप्रिय है, यह महत्वपूर्ण है और अच्छा है क्यों। और फिर मैं अंत के लिए कदम होगा पी निपटने के बारे में कुछ सुझाव 7 निर्धारित किया है। और हम समय है अंत में बचे, हम वास्तव में कुछ कर सकते हैं एक साथ उस पर काम करते हैं। तो, पीएचपी। वास्तव में, आप है- देखा हो सकता है आप वास्तव में it-- में गोता लगाने के लिए नहीं था लेकिन पी 6 सेट कुछ पीएचपी था पर जा रहा था कि कोड। और पीएचपी क्योंकि एक सी की तरह है भाषा, पीएचपी, एचटीएमएल और सीएसएस के विपरीत, एक प्रोग्रामिंग भाषा है, एचटीएमएल और सीएसएस जबकि स्थिर रहे हैं। वे निपटने मार्कअप भाषाओं रहे शैली और दृश्य लेआउट के साथ। पीएचपी असली सौदा है। पीएचपी यह conditions-- है, छोरों है सी के बारे में मजा आ रहा है कि वह सब सामान यह एक छोटे से कर रहे हैं कि कुछ चीजें है हम देखेंगे जो सी, की तुलना में बेहतर बिट, लेकिन मैं सबसे आसान तरीका है बात करने के लिए लगता है पीएचपी है के बारे में बस में गोता लगाने के लिए। तो मैं सही जाने के लिए जा रहा हूँ इस बिंदु पर आईडीई में। हम जा रहे हैं पहली बात वास्तव में देखिए करना कुछ पर एक छोटा सा पी में था कि पीएचपी कोड 6 निर्धारित किया है। इसलिए हम that-- करते हैं कि रास्ता हम चल रहे थे कि जिस तरह से, पहले उपकरण के लिए सर्वर हम type-- करने के लिए होता था कि या तो अपने कार्यान्वयन का उपयोग या स्टाफ का कार्यान्वयन निर्देशिका में जाने से server.c की और कोई किसी के साथ server.c चल arguments-- तो बस पर यह कॉल क्या आप जो शायद स्थानीय मेजबान, time-- के सबसे किया और फिर इसे खिला के साथ एक directory-- जो इसकी जड़ के रूप में उपयोग करने के लिए जहां वेबसाइट होगा मूल रूप से चलाने के लिए, हो सकता है। पी के लिए इस सप्ताह के रूप में, 7 सेट server.c के लिए हमारे कोड के रूप में महान है, जो पहले से ही लोग कर रहे हैं CS50 पर ये ठीक बातों पर लिखा कि एक छोटा सा है अधिक कार्यक्षमता, सक्षम है कि एक सर्वर के कार्यक्रम एक छोटे से अधिक के साथ निपटने की पेचीदगियों की है कि हम करेंगे दोनों पी में देखने के 7 सेट और पी 8 निर्धारित किया है। और आप शुरू कि रास्ता सर्वर सिर्फ लिखकर है "apache50।" और आप कुछ भी करने से पहले, आपको यह सुनिश्चित करना चाहते हैं अपाचे 50 नहीं है कि यह है के रूप में पहले से ही चल रहा है मैं यह परीक्षण करने के लिए किया था, जो मेरे मशीन पर। और अगर आप apache50 फोन करके ऐसा करते हो। बंद करो, और आप इसे रोक रहा है कि देखेंगे वेब सर्वर, यदि आप वहाँ देख सकते हैं टर्मिनल विंडो के तल पर। और फिर बस हम कर रहे हैं, शुरू करने के लिए , फोन करने वाला "शुरू apache50।" और फिर हम जा रहे हैं यह एक निर्देशिका खिलाने के लिए। अब, क्योंकि हम देखना चाहता हूँ पी में से कुछ पर 6 कोड सेट हम, मैं वास्तव में लागू किया था कि पी का एक छोटा सा की नकल की मेरे अपने फ़ोल्डर में 6 कोड सेट, जो तुम वहाँ छोड़ दिया पर देख सकते हैं। यह "SECTION8" कहा जाता है सभी बड़े अक्षरों में मैं सिर्फ बहुत उत्साहित हूँ क्योंकि आज रह-प्रदर्शित होने के लिए। हम इस चलाते हैं, तो यह चाहिए ताकि सब बहुत प्रभावी ढंग से काम करते हैं। यह ठीक है, हमारी साइट अब है, कहते हैं, आईडीई के पते पर उपलब्ध है, असल में, जो आप उपयोग कर रहे थे क्या है पी 7-- सेट में यह था बिल्कुल के रूप में पी 6 निर्धारित किया है। मेरे सभी अनुक्रमित एक सूचकांक आज कर रहे हैं। इसलिए हम चाहते हैं कि करने के लिए जा सकते हैं पता है, आपको याद होगा, तो बस इस छोटे क्लिक करके ऊपरी सही में बटन। और अगर आप इस कोड, याद होगा जो आप hello.php में चला गया जब हुआ। और कोड के लिए डिज़ाइन किया गया है क्या आप एक नाम में टाइप करना है जब है आप सैम कहना here-- यदि कि मेरी name-- है क्योंकि और मैं कहता हूँ हैलो क्लिक करें, जब हम अगले पृष्ठ के लिए गया था, उस नाम से प्रदर्शित किया जाना चाहिए था। यह कहेंगे, "हैलो, सैम" या "हैलो," जो भी नाम आप हम चले गए, भले ही इसे में डाल एक पूरी तरह से नए वेब पेज के लिए। और इस तरह की बात है पीएचपी तुम्हारे लिए क्या कर सकते हैं। पीएचपी डेटा पारित करने में सक्षम है दो वेब पृष्ठों के बीच। यह एक पूरी तरह से अलग पेज है। आप शीर्षक "नमस्ते" यहाँ है देखेंगे। वास्तव में, वे हैं इसी शीर्षक है, लेकिन मैं वे अलग वेब रहे हैं वादा पृष्ठों हम स्रोत पर नजर डालें तो। और तुम हो कि डेटा पारित कर सकते हैं इस पाठ क्षेत्र में प्रवेश किया, आप अगले करने के लिए इसे प्रस्तुत ऊपर कहा जा रहा है कि पेज, और फिर उस डेटा करने में सक्षम है अपने मौजूदा स्वरूप में हो। अब हम अभी तक लागू नहीं किया है इस खुद को, जो हम अभी के लिए क्या करने जा रहे हैं क्या है क्रमबद्ध, पीएचपी कैसे काम करता है के लिए एक स्वाद मिलता है लेकिन महत्वपूर्ण विचार है कि आप कर सकते हैं PHP-- यह है कि तरह का एक समारोह की तरह लगता है। पीएचपी आप दे सकते हैं कि कुछ यह पैरामीटर है ले जा सकते हैं कर कि एक HTML पृष्ठ में आप इनपुट PHP और रूपों के उपयोग के माध्यम से, और यह मापदंडों के रूप में उन लोगों के पास कर सकते हैं इसे लोड करता है कि अगले पृष्ठ पर। इस मामले में, हम इस लोड कर रहे हैं "नमस्ते कहो" बटन के साथ पेज। लेकिन अब के लिए, मैं वास्तव में कि कोड में से कुछ नष्ट hello.php में उस चलाया जा रहा था कि वास्तव में, "नमस्ते प्रदर्शित कर रहा था दुनिया "या" हैलो, सैम "या "हैलो," बस इनपुट जो कुछ भी था। अभी के लिए तो, हम कर रहे हैं असल में, कि क्या करने जा रहा। हम जानते हैं कि विश्राम करने के लिए जा रहे हैं और इसके अलावा, कुछ अधिक कार्यक्षमता जोड़ने अधिक इसके साथ एक छोटा सा है, देखते हैं क्या पीएचपी वास्तव में सक्षम है। तो पहले, के बारे में बात करते हैं इस फ़ाइल में hello.php। हम एक में ज़ूम तो अगर अब मैं कर रहा हूँ bit-- थोड़ा और एक तरह से सभी स्क्रॉल करने के लिए कोशिश कर रहा है रास्ता नहीं around-- हम चले। आप यह कहा जाता है देखेंगे hello.php, लेकिन वाक्य रचना में इसके बारे में एक HTML फ़ाइल की तरह लग रहा है। इसका कारण यह है इस फाइल में वास्तविक पीएचपी इन सब के बीच फंस गया है प्रश्न चिह्न-कैरट ब्लॉकों। यहीं सब कुछ PHP कोड माना जाता है। और आप उस पर ध्यान देंगे मैं एक टिप्पणी किया था, आप परिचित देखेंगे दो आगे स्लैश। और तुम में, याद होगा कि अगर एचटीएमएल, मैं एक टिप्पणी लिखते हैं, यह करने के लिए करीब कुछ लग रहा है HTML में एक टिप्पणी है जो इस,। के बीच तो सच में सब कुछ इन दो कोण कोष्ठक अब पीएचपी कोड है, जो वास्तव में परिलक्षित होता है इस छोटी सी टिप्पणी प्रतीक है कि एक टिप्पणी में बदल गया है। तो हर बार जब आप भी, पीएचपी कोड लिखने कोई एचटीएमएल कोड इसमें से बाहर है कि अगर वहाँ, यह हमेशा होने जा रहा है इन कोण कोष्ठक में संलग्न प्रश्न चिह्न के साथ। यह सब कैसे आप की तरह it-- के बारे में सोच सकते हैं अपनी सी कार्यक्रमों में भाग गया है कि कोड की एक int मुख्य शून्य में संलग्न किया गया था, घुंघराले गले लगा, अंत घुंघराले ब्रेस बयान। और तुम में सर्पाकार देखेंगे पीएचपी भी है, लेकिन इस तरह की है पीएचपी के मुख्य विधि की तरह। तो अब, हम कैसे PHP में कुछ भी कर सकता हूँ? अब, पीएचपी एक प्रोग्रामिंग है बहुत सी की तरह है कि भाषा, लेकिन यह वेब पर चल रही है। तो एक बात है कि आप एक immediately-- करेंगे क्या तुम सच के साथ किया था पहले चीजों में से सी तुम सही, सामान बाहर मुद्रित किया गया था? इतनी सी में हम किया है कि एक printf समारोह के साथ। हम इसे एक स्ट्रिंग दे दी है, शायद एक नई लाइन के साथ, और फिर हम समाप्त यह एक अर्धविराम। इसलिए हम ऐसा करने जा रहे हैं कि जिस तरह से PHP-- में यह काफी नहीं है printf है क्योंकि। यह अलग वाक्य रचना का एक छोटा सा है। हम चीजों को बाहर प्रिंट कि रास्ता पीएचपी में हम "हैलो गूंज कहते हैं," है या किसी शब्द "गूंज"। और कहा कि ऐसा करने का प्रभाव पड़ता है एक स्ट्रिंग, साथ printf "नमस्ते।" और यह करने के लिए नई लाइन कहते हैं। तो sure-- चलो ठीक है अब कर देना मैं फिर से एक छोटे से बाहर ज़ूम करेंगे bit-- के लिए सुनिश्चित करें कि चलो कोड है कि काम कर रहा है वहाँ बहुत हो सकती है क्योंकि अच्छी तरह से इस कोड में एक बग हो कि हम से निपटने के लिए होगा। इसलिए सर्वर पहले से ही चल रहा है। इसलिए हम वापस नीचे करने के लिए नीचे स्क्रॉल करें, हाँ, सर्वर अभी भी चल रहा है। हम सिर्फ इस पर नल तो अगर थोड़ा सा सही here-- welcome-- हम महान get-- चाहिए। हम अभी भी कर रहे हैं परिचित "नमस्ते कहो" बातचीत, मैं में टाइप लेकिन जब "हाय," हम देखेंगे पाठ कि "नमस्ते" वास्तव में था बिल्कुल के रूप में है, जो बाहर मुद्रित पीएचपी में गूंज क्योंकि हम उम्मीद सिर्फ एक printf बयान की तरह है। तो वापस कोड के लिए, कैसे पी में 6 किया सेट आप प्रदान की जाती हैं वितरण कोड पीएचपी इतना है कि इसे बनाने के लिए बात यह है कि उत्पादन है कि आप पिछले स्क्रीन पर टाइप किया? और एक तरह से जांच करने के लिए कि ऐसा क्यों होता है, हम कर रहे हैं , सूचकांक में जाना जा रहा है, जो मूल फ़ाइल, फ़ाइल है कि इस स्क्रीन पर दिखाता है "नमस्ते कहो" बटन के साथ। आप देखते है कि नोटिस सभी क्लासिक बातें हम एचटीएमएल इस तरह से आने की उम्मीद है इन चीजों के रूप में, इन टैग संलग्न कोण कोष्ठक में, पीएचपी की तरह लेकिन प्रश्न चिह्न के बिना, जो HTML करने के लिए एक विशेष बात यह इंगित करता है। हम है, जो शीर्षक है, "नमस्ते।" और तुम, जैसा कि हमने देखा है कि नोटिस देंगे शीर्षक दोनों ही मामलों में "नमस्ते" है। चलो इस एक को बदल दें सिर्फ इतना कहते हैं कि "" करने के लिए हम हम कर रहे हैं, जहां अपने आप को अलग कर सकते हैं। लेकिन हम एक शरीर मिला है। और फिर दिलचस्प सा है, एचटीएमएल में पता चलता है कि एक सा है, इस फार्म तत्व है। और इसलिए हम एक रूप मिल गया है। और यह महत्वपूर्ण है। हम PHP के साथ काम कर रहे हैं कि यह कैसे है। की कार्रवाई पैरामीटर प्रपत्र का कहना है कि hello.php हम भेजने के लिए जा रहे हैं क्या है इस फार्म में मूल्यों। हम गुजर रहे हैं, जहां यह है पैरामीटर, तो बात करो। आप यहाँ एक और बात पर ध्यान देंगे विधि यह है कि "मिलता है।" दो प्राथमिक रहे हैं तरीकों जिसके द्वारा डेटा पारित करने के लिए PHP का प्रयोग किया websites-- वेब पृष्ठों के बीच, इस काम में rather--। और उन तरीकों "मिल" और "पोस्ट।" कुछ सूक्ष्म रहे हैं जाओ और पोस्ट के बीच मतभेद हम into-- मिल जाएगा कि अगर तुम जाएगा, में "मिल" होगा। लेकिन सभी intents के लिए और उद्देश्यों, पाने के लिए और पोस्ट दोनों सिर्फ तरीके हैं कि आप पैरामीटर पारित थोड़ा अलग फांसी के साथ। अभी के लिए, हम मिलता है, क्योंकि प्रयोग करने जा रहे हैं मिल मूल रूप से इस्तेमाल किया गया था क्या था पी के PHP फ़ाइल में 6 की स्थापना की। हम में जाने के लिए और और अगर वास्तव में, देखो हम कुछ और संपादित किया है, इससे पहले मैं नमस्ते कहने के लिए जा रहा हूँ तुम्हारा नाम क्या है है--? दर्शकों: इलियट। सैम LEVATICH: हे भगवान, ओह। मुझे लगता है कि जादू करने के लिए कैसे पता नहीं है। तुम मेरे लिए कि जादू सकता है? दर्शकों: ई-एल-एल-मैं-ओ-टी। सैम LEVATICH: मैं-ओ-टी? दर्शकों: हाँ। सैम LEVATICH: बिल्कुल सही। ठीक। मुझे लगता है कि जादू करने के लिए कैसे पता चला लगता है। इसके बारे में खेद। लेकिन हम "हैलो कहते हैं," ऐसा नहीं है का कहना है कि यदि यह स्क्रीन पर दिखाने के लिए नहीं जा रहा है अभी तक हम संशोधित क्योंकि कोड एक छोटा सा। लेकिन हम "नमस्ते कहो" है - ठीक है, तो "नमस्ते" यहाँ है। लेकिन हम एक करीब ले अगर यूआरएल पर ही लग रही है, हम यह है कि अंत में देखेंगे साथ hello.php? नाम = इलियट। तो, इस का एक तरीका है अगले वेब पेज के लिए संचार हम पारित किया है कि मानकों। हम नाम = इलियट ने कहा। पी 6 कैसे सेट और कहा कि अंततः है हम में से पारित कर दिया है कि चर पहुँचा फार्म के माध्यम से। और यह कुछ ऐसा है कि एक अनुरोध प्राप्त करने के लिए अजीब है। एक अनुरोध प्राप्त मानकों को बनाता है वेबसाइट के यूआरएल में जाना जाता है। और तुम भी, याद होगा, पी में आपको लगता है कि 6 सेट एक समारोह में लिखने के लिए किया था तथ्य यह है कि निपटा इस क्वेरी स्ट्रिंग कि एक फ़ाइल के बाद मौजूद हो सकता है। बाद एक प्रश्न चिह्न हो सकता है पात्रों के मूल रूप से किसी भी नंबर से। और कहा कि वास्तव में यहाँ पर हो रहा है क्या। और आप था कारण यह है कि पार्स करने के लिए पी में server.c के अपने कार्यान्वयन में आपको बता सकता है कि इतनी 6 सेट है = इलियट नाम कि PHP कोड। आप करने में सक्षम होने की जरूरत है यूआरएल से बाहर है कि पार्स तो यह है कि प्रश्न में PHP फ़ाइल इसके साथ काम कर रहा था क्या पता था। इसलिए उम्मीद है कि इस देता है server.c के लिए प्रेरणा हम पर आगे बढ़ रहे हैं कि अब पीएचपी में सी के बाहर। तो चलो वास्तव में पहुँचने पर ध्यान केंद्रित करते हैं बातें अब एक अनुरोध प्राप्त के माध्यम से पारित इस समय। मैं इस को बचाने के लिए जा रहा हूँ। हम कुछ भी नहीं बदला। हम एक इनपुट क्षेत्र मिल गया है ऐसा लगता है। हम कुछ संपत्तियों की स्थापना कर रहे हैं, के रूप में हम एक HTML कर सकते हैं। इन सरल बातें कर रहे हैं। हम इन जरूरत नहीं है। लेकिन हम स्वत: पूर्ण बंद मिल गया है जो मूल रूप से, आप जानते हैं says-- आप चीजों को लिखते समय वेब में, कभी-कभी यह आप के लिए है कि में भरने की कोशिश करता है। तो यह एक अच्छी बात है। हम इस उद्देश्य के लिए इसे बंद करना चाहते हैं। यही कारण है कि एक CS50 निर्णय था। इसलिए हम चाहते थे कि अगर हटा सकते हैं। ऑटोफोकस बस कर्सर चिपक शुरुआत में फार्म ना में। फिर, भी महत्वपूर्ण नहीं। लेकिन नाम = "नाम" - यह एक छोटी सी है यह नाम और नाम है, क्योंकि मुश्किल। लेकिन हम बदल दिया जा सकता था कुछ और करने के लिए यह। और वास्तव में, यह है कि हम अभी क्या करेंगे। हम ", व्यक्ति" कहता हूँ जो क्रमबद्ध के नाम की तरह है एक व्यक्ति अपने नाम से परिभाषित किया गया है। तो चलो इस बंद करते हैं, हमारी वेबसाइट को फिर से खोलना हमारे सर्वर अभी भी चल रहा है, के बाद से अपाचे 50, और हम नमस्कार, यहाँ है, कह देंगे इलियट फिर से। क्यूँ नहीँ? नमस्ते। हम यहाँ ऊपर जाना और, अगर हम देखेंगे तो बजाय नाम के = इलियट, यह व्यक्ति इलियट = कहते हैं। और तथ्य यह है कि एक सीधा परिणाम है हम सिर्फ नाम = "व्यक्ति।" बदल गया है कि का एक इनपुट तत्व में तो एक HTML फार्म, नाम क्षेत्र के लिए पहचानकर्ता है पारित किया जा रहा है कि पैरामीटर। आप एक समारोह बना रहे हैं, तो ऐसा लगता है जैसे दो पूर्णांकों में ले लिया है कि "जोड़ने" और आप पूर्णांक एक और int ख कहा। यही कारण है कि नाम एक हो सकता है, और यदि होगा यदि आप किसी अन्य रूप है, जो चाहते थे हम नकल के कारण यह सिर्फ कर सकते हैं और चिपकाने, तो हम नाम ख होता है। तो अब हम दो मापदंडों होगा उस के माध्यम से पारित किया जा रहा अगले website-- के लिए मिलता है अगले वेब पेज, hello.php। और हम वास्तव में देख सकते हैं कि फिर अगर हम चाहते हैं। इस के साथ सौदा करने के लिए सबसे आसान तरीका है मूल रूप से आईडीई में वेब कोड,। आप सर्वर शुरू, इसे पाने के लिए हर बार जब आप चल रहे हैं, और उसके बाद बस पास, कुछ परिवर्तन करना उस फ़ाइल को सिर्फ सुरक्षित करने के लिए। वापस बटन दबाने थोड़ा मुश्किल है यह एक पहले से लोड हो सकता है क्योंकि संस्करण है, न सबसे अद्यतन एक। और फिर आप बस क्लिक करें अपने बटन फिर से, पॉप सही, ओह up-- और अब दो रूप हैं। और हम प्रत्येक में एक बात टाइप यदि हां instance-- के लिए one-- "जेसन Hirshhorn," हम कहते हैं हैलो। हम हमारे मानकों पर देखो। हम मिल गया है यह, के रूप में दिखता है उम्मीद है, एक = जेसन और बी = Hirshhorn, जो दो मापदंडों का प्रतिनिधित्व करता है हम इस समारोह को पारित कर दिया है। तो अब हम वास्तव में करने के लिए मिलता है कि कार्यक्षमता को लागू करने कि हम पी में था 6 निर्धारित किया है। इसलिए अभी हम बस नमस्ते गूंज रहे हैं। और कहा कि बहुत उपयोगी नहीं है। हम कुछ चर गूंज करना चाहते हैं कि हमारे लिए पारित किया गया था। और हम इस चर के नाम से जानते हैं। हम एक हैं और हम ख है। तो हम या तो एक गूंज के लिए चुन सकता है। लेकिन यह कैसे हम इसे उपयोग करते हैं? खैर, कुछ देखते हैं PHP में वैश्विक चर। और मैं लिखने जा रहा हूँ यहां उन टिप्पणियों में। दो सबसे महत्वपूर्ण लोगों को मिल रहे हैं और अभी हमारे उद्देश्यों के लिए पोस्ट। ये सरणियों या कर रहे हैं, तकनीकी तौर पर, शब्दकोशों जहां हम कर रहे हैं कि हमारे चर अगले वेब पेज को लाइव करने से गुजर रहा है। और हम जल्द ही उनका इस्तेमाल कैसे देखेंगे। PHP कोड के बारे में एक संक्षिप्त नोट और सी में it-- के कुछ बारीकियों एक चर घोषित करने के लिए या चर का उपयोग करने के लिए, आप पहली बार उन्हें घोषित करना पड़ा। जब आप और आप के लिए किया था कि क्या करना है उन्हें पूर्णांक एक या चार बी का कहना था की घोषणा की। आप इनमें से प्रकार की घोषणा करने के लिए किया था आप पहले चर उन्हें बनाया। PHP-- आप इस बात का कोई भी कार्य करने की जरूरत नहीं है। PHP के लिए पूछ नहीं है चर का प्रकार। और वैसे भी कि आप बल्कि एक variable-- बनाने कह से पूर्णांक, चार, string-- हम know-- के रूप में है, जो * वास्तव में चार है बल्कि सभी के कर की तुलना कि, क्योंकि सब कुछ , एक ही प्रकार का है typeless, हम सिर्फ यह कर सकते हैं एक चरित्र, का उपयोग करें जो डॉलर के हस्ताक्षर है। और अगर आप इसे पहले से ही popping देखेंगे थोड़ा स्वत: पूर्ण बातें, ऊपर। और यह कि _GET और _POST कह रहा है मैं उपलब्ध है कि दो विकल्प हैं मुझसे। इन अन्य चीजों में से कुछ कर रहे हैं पीएचपी में अन्य वैश्विक चर आप पर उपयोग कर सकता हूँ कि पी 7 कोर्स निर्धारित किया है। अब हम जा रहे हैं के लिए जाओ और पोस्ट पर ध्यान केंद्रित। लेकिन यह एक उपयोगी है आईडीई करता है कि बात जहां आपके द्वारा लिखा गया एक बार कि डॉलर के हस्ताक्षर में, यह वैश्विक चर में भरना शुरू कर देंगे या चर आप पहले से ही परिभाषित किया है। आप को परिभाषित करना चाहता था तो अगर कहा जाता है एक चर "स्ट्रिंग" आप बस इसे बराबर करने के लिए तैयार कर सकती है "हाय।" और यह है कि के रूप में सरल रूप में मूल रूप से है। और फिर हम क्या कर सकता जैसे कुछ "गूंज $ स्ट्रिंग।" आईडीई कुछ फेंक दिया जाना चाहिए मैं कुछ भी गलत कर रहा हूँ तो त्रुटियों, इसलिए उम्मीद है कि मैं सब कुछ सही कर रहा हूँ। लेकिन कीड़े हमेशा उठता है। के बारे में एक और मुश्किल बात पीएचपी यह संकलित नहीं है कि है। सी कार्यक्रमों के साथ तो, आप क्या करेंगे दैनिक दिनचर्या मूल रूप से of--, आप के लिए संपादन करना होगा अपने कोड है, आप इसे बचा था, और फिर तुम होगा यह बना था, जहां बनाना संकलक कहा जाता है कि कदम है, अपने कोड बनाने के लिए, बजना, इस पाठ एक निष्पादन योग्य में, फ़ाइल। पीएचपी सी की तरह है, लेकिन यह मार डाला अपने वेब ब्राउज़र से मक्खी पर। इतना पता करने के लिए कोई रास्ता नहीं है। उन फेंक देना होगा बनाओ सहायक त्रुटियों, है ना? यह आप की तरह होगा इस चर घोषित नहीं किया था आप इसका इस्तेमाल करने की कोशिश से पहले। तुम्हें पता है, यह सब बुरा stuff-- segfault किया segfault, सभी उस तरह का मज़ा बार कि मेकअप के साथ आया था। पीएचपी एक दोधारी तलवार है आप उन त्रुटियों को नहीं मिलेगा, क्योंकि लेकिन यह भी कहा कि आपको पता नहीं होगा कि इसका मतलब वास्तव में अपने कार्यक्रम के साथ गलत क्या है आप बस इसे चलाने के लिए और यह काम नहीं कर रहा है। लेकिन डिबगर कहना चाहिए कुछ उम्मीद है कि उपयोगी छोटी बातों आप तय कर सकते हैं कि वाक्य रचना। तो अब हम है-- पर चलते हैं की है कि बंद करते हैं, कहते हैं। फिर से खोलना। और हम यहाँ वापस करने के लिए कर रहे हैं। इसलिए हम एक चर मिल गया है और एक चर बी। और इन अंततः बात नहीं करेंगे। हम उन्हें एच और जी फोन करता हूँ कोई विशेष कारण के लिए। और हम कहते हैं हैलो। अब यह हमारी स्ट्रिंग की तरह लग रहा है "हाय" वास्तव में मुद्रण है। हम एक चर बुलाया बनाया "स्ट्रिंग," यह बराबर करने के लिए सेट "हाय।" हम क्या करने के लिए नहीं था कि नोटिस malloc या एक चरित्र सरणी बनाते हैं। पीएचपी में, चर, क्योंकि एक स्ट्रिंग typeless हैं के लिए एक चार के रूप में ही है सभी intents और प्रयोजनों। यह "हाय।" हो सकता है यह सिर्फ चरित्र कश्मीर हो सकता है। यह एक नंबर 1 हो सकता है। और उसे इसकी परवाह नहीं करता। PHP के बारे में परवाह नहीं करता अपने चर का प्रकार। या, यह ख्याल नहीं करता है। जब तुम कोशिश यह परवाह करता है और इसके साथ बातें करते हैं, लेकिन इसमें कोई परवाह नहीं है घोषणा कदम है। सिर्फ तुम सी में कर सकते हैं जैसे और, आप कर सकते हैं इस तरह के ढेर पर तार की घोषणा "ढेर" कहते हुए एक छोटे से अधिक है, हालांकि एक संभावित मिथ्या नाम जब से बिट हम PHP के बारे में बात कर रहे हैं। लेकिन हम उस के बारे में चिंता करने की जरूरत नहीं है। इसलिए हम अपने स्ट्रिंग मिला "हाय," और हम स्ट्रिंग गूंज। तो अब हम चर पर चर्चा की है। तो अब हम मिल के बारे में बात करने की जरूरत है और पोस्ट और है कि अंतिम बात यह है कि प्रदर्शन वास्तव में इस पीठ को पाने के लिए की जरूरत पी की कार्यक्षमता के लिए 6 निर्धारित किया है। इसलिए अभी हम कर रहे हैं स्ट्रिंग गूंज, लेकिन हम इन चर पाने के लिए और पद है। और हम प्रयोग कर रहे हैं, क्योंकि विधि मिलता है, यह स्वाभाविक लगता है हमारे चर कि कि हम, ए और बी, दोनों में रुचि रखते हैं सरणी में स्थित हो जाएगा या शब्दकोश, तकनीकी रूप से मिलता है। हम स्थापित तो अगर इस तरह मिल अपने groups-- साथ मैं प्रवेश दबाया और यह it-- पसंद नहीं आया लेकिन यहाँ हम प्राप्त किया है। और तो पहले से ही मौजूद मिलता है। इसलिए हम पहले से ही उपयोग करने के लिए शुरू कर सकते हैं मिल के तत्वों में से कुछ हैं। हम मिलता है, तो इस वाक्य रचना के लिए पीएचपी में सरणियों बहुत सी की तरह है। हम दो हमारे वर्ग कोष्ठक है। तो अगर हम एक सामान्य में मिल कहना सरणी, हम का उपयोग कर सकता zeroth सूचकांक, पहले सूचकांक। पीएचपी शून्य सूचकांक है। हम शून्य, एक कह सकते हैं इस तरह two-- सामान। और मुझे लगता है कि मिल कह रहा हूँ तकनीकी रूप से एक शब्दकोश है। तो पीएचपी हुड के नीचे क्या कर रहा है, जो सेल्सियस की तुलना में थोड़ा अच्छा है, यह पहले से ही है कि आप कुछ दे रहा है शब्दकोश कार्यक्षमता, जो वास्तव में हैश टेबल, है या माना जाता है, की कोशिश करता है। या, तकनीकी रूप से यह एक के रूप में अच्छी तरह से कोशिश हो सकती है। लेकिन पीएचपी एक हैश तालिका लागू कर रहा है, जो एक प्रभावी शब्दकोश रूपों। और इसलिए हम नाम से जानते हैं हमारे चर का, है ना? यह में पारित किया जा रहा है पीएचपी द्वारा क्वेरी स्ट्रिंग। हम एक = ज और ख है = छ जहां और ख चर के नाम हैं। तो जिस तरह से हम उपयोग कर सकते हैं कुंजी से मेल खाती है कि मूल्य हमारे शब्दकोश में है सिर्फ ["एक"] _GET_GET कह कर। तो अब हम _GET ["एक"] है। और हम बस के अंदर की जगह हमारे गूंज, हम _GET_GET गूंज यदि ["एक"] - और हम डिबगर यदि देखेंगे है- बारे में किसी भी त्रुटि फेंकता हम चाहते हैं कि बचाने के लिए और यह बंद कर देंगे। इसे खोलो। तो हम सिर्फ एक सही कर रहे हैं अब, तो ख बात नहीं करनी चाहिए। "उसे" और "उसे" - "हम।" "उसे" और "गुंजन।" सुनने में तो अच्छा लगता है। और इसे बाहर मुद्रित "उसे," जो पागलपन है। लेकिन यह है कि वास्तव में क्या है पी में हो रहा था 6 निर्धारित किया है। असल में, क्या पी 6 सेट था doing-- गूंज हैलो, name-- यह था, जहां एक चर नाम है और यह सिर्फ आप पाठ की कि बिट में टाइप करने के लिए पूछता है। वहाँ भी था कुछ अतिरिक्त कोड जहां अगर बयान में यह शामिल है, जो हम अभी क्या कर सकते हैं। मौजूद है, तो हम कह सकते हैं कि जो पीएचपी के भीतर एक कार्यक्षमता है, अंडरस्कोर साथ _GET, "नाम" - मूल रूप से जो कह रहा है, क्योंकि "नाम में भर दिया गया है, तो" हम सिर्फ बटन क्लिक किया जा सकता था बिना फार्म जमा करने के लिए कि क्षेत्र में कुछ भी टाइप। और हम उस में लपेट हमारे अनुकूल सर्पाकार। हम एक और बयान हो सकता है। और यह सब पीएचपी कोण के भीतर है ब्रैकेट, प्रश्न चिह्न, कोण ब्रैकेट, अगर आप करें तो। अगर यह काम करता है और अब हम देखेंगे। मैं डिबग करने के लिए इसके लिए इंतज़ार कर रखना और, मूल रूप से, मुझ पर बाहर बकवास लेकिन यह अभी तक नहीं किया है। शायद यह अब होगा मैं इस बारे में बात की है। हाँ। यह वास्तव में किया था। तो, कुछ भी नहीं दिख रहा है। ऐसा इसलिए है क्योंकि कुछ गड़बड़ की है मैं PHP कोड में लिखा है कि। और मैं डिबगिंग उल्लेख हम, क्योंकि पीएचपी में मुश्किल है पहले से यह संकलन नहीं किया और संकलक, की तरह नहीं था अपने त्रुटियाँ हैं जहां यहाँ है। लेकिन हम क्या कर सकते हैं है- लोगों को याद करते हैं अलग नेटवर्क पर देखने के लिए कैसे PHP-- या वेबसाइटों है कि कि अनुरोधों भेजा है? [? मालिन?] में ऐसा किया एक या दो बार व्याख्यान। हम खोजने के लिए जाना है, जहां आप याद विभिन्न ऋण और 200 Oks, भेजा जा रहा है कि इन सभी कोड वेब पेज के लिए वेब पेज से HTTP के माध्यम से? किसी को याद करता है जहां हम ऐसा करने के लिए जाना है? दर्शकों: पृष्ठ स्रोत। सैम LEVATICH: पृष्ठ स्रोत है। बिल्कुल सही। आप पृष्ठ Source-- सही करने के लिए जाना है। तो पृष्ठ स्रोत निरीक्षक को खींचती है। और मैं सफारी का उपयोग कर रहा हूँ। आप में से बहुत शायद जाएगा क्रोम या फ़ायरफ़ॉक्स का उपयोग किया। लेकिन जब तक आप कर रहे हैं के रूप में किसी भी आधुनिक browser-- में और पालन करने के लिए स्वतंत्र महसूस अगर आप चाहते हैं के साथ। आप इस कोड को टाइप कर सकते हैं या सिर्फ पी सेट 6 अंदर देखो कुछ इसी तरह के सामान के लिए निर्देशिका। hello.php हम क्या कर रहे है वर्तमान में नकल पर काम कर रहे। तो टैब की एक किस्म है। हम सभी संसाधनों पर देख सकते हैं। हम स्रोत कोड देख सकते हैं। यह नहीं था की तरह तो लग रहा है अंत में पिछले शरीर मिलता है। यह PHP और उस में एक त्रुटि पाया पूरे वेब पेज लोड करने से रोक दिया। हम भी एक अंत नहीं है एचटीएमएल या कुछ के लिए टैग। हम नेटवर्क पर नजर डालें तो और, हम कर सकते हैं हम एक अनुरोध भेजा जा रहा हो कि देखते हैं। इस डोमेन है। यह पता है। यह एक दस्तावेज है। हम मिल विधि का प्रयोग कर रहे हैं। और यह लाल है। या, यह लाल हो गया था जब मैं यह चयन नहीं किया गया था। मैं इसे कैसे रद्द करूं? खैर, यह लाल था। मुझे ताज़ा करते हैं। वहाँ है। अब यह लाल है। तो इसका मतलब है, जो लाल है यह बुरा है, जो विफल रहा है। तो यह असफल क्यों की जांच करते हैं। इसलिए सभी पृष्ठ स्रोत कर सकते हैं कि मूल रूप से आप अपनी बात है बताओ हम पहले से ही देख सकते हैं, जो काम नहीं किया। तो आदर्श वहाँ होगा एक अधिक उपयोगी उपकरण हो। और कुछ ब्राउज़र एक्सटेंशन देखते हैं कि, आप PHP डिबग करने की अनुमति लेकिन हम नहीं जा रहे हैं पीएचपी की एक टन लेखन किया, तो यह शायद सिर्फ सबसे अच्छा है अपने कोड के माध्यम से देखने के लिए ध्यान से और सिर्फ इतना है कि यह सुनिश्चित कर लें यह और कुछ नहीं कर रही है। तो चलो देखते हैं, तो इस बात का प्रारूप बयान है, तो जहां समस्या है। मैं यहाँ वापस कि लोड करने के लिए चाहते हैं। नमस्ते। तो वहाँ एक समस्या नहीं है। सही वाक्य रचना के लिए तो पीएचपी की, पीएचपी जा रहा है सी-जैसे आप छोरों देखेंगे कि में किया जाना है। आप अगर बयान देखेंगे। आप इन सभी दोस्तों को देखेंगे आप परिचित हो गए हैं कि पाठ्यक्रम पर साथ इस CS50 सेमेस्टर की। लेकिन सबसे अच्छा तरीका है कि कैसे करने के लिए बाहर निकालने के लिए ऐसा पीएचपी में कुछ यह गूगल के लिए है या PHP कोड के कुछ उदाहरण देखने के लिए आप कार्यक्षमता क्योंकि मुझे पता है। आप क्या कर सकते हैं पता है कार्यक्रम के साथ करते हैं। आप पाश कर सकते हैं। क्या आप चाहते हैं के रूप में लूप के रूप में कई बार कर सकते हैं। सभी में आप कर सकते हैं पाश अलग अलग तरीकों की तरह। आप कार्यों बना सकते हैं। आप कार्यों बना सकते हैं अन्य कार्यों, कार्यों फोन कि खुद कहते हैं। और अगर आप इन अवधारणाओं के लिए नाम है। तुम्हें पता है, छोरों, प्रत्यावर्तन मिल गया है अन्य नियंत्रण प्रवाह, यदि। और तो गूगल अपने सबसे अच्छे दोस्त है। यहाँ तक कि पीएचपी, तो कहते हैं, " बयान "और वहाँ हूँ साथ पदों की टन हो अन्य लोगों को जवाब कौन है, आप करने के लिए इसी तरह के सवालों को मिला है जो सिर्फ PHP के साथ शुरू कर रहे हैं और एक वाक्य रचना चीज़ के बारे में उत्सुक हैं। हम होने की विलासिता है, क्योंकि पी सेट 6 में कोड को देखने में सक्षम, हम वास्तव में यह ऊपर खींचने के लिए और देखना है कि ठीक है, यहाँ कुछ दिलचस्प है। तो यह है क्या वास्तव में यह पी में 6 सेट की तरह देखा। इसलिए हम इस के माध्यम से जाना है, हम हम है कि देख सकते हैं मिला इन छोटे के कई पीएचपी की तरह प्रश्न चिह्न बिट्स। और घुंघराले ब्रेसिज़ नहीं कर रहे हैं। कॉलन रहे हैं। और घुंघराले देखते हैं पीएचपी में ब्रेसेस, लेकिन इस एक प्रारूप है और ऐसा करने का एक तरीका है HTML के साथ अच्छी तरह से काम करता है कि पीएचपी जैसा कि आप देखेंगे, क्योंकि हम बंद कर रहे हैं elses bits-- इन पीएचपी बंद आईएफएस और फिर that-- और के सभी और हम उन्हें अंदर एचटीएमएल interspersing रहे अभी भी निम्न जबकि नियंत्रण प्रवाह पीएचपी से निकल पड़े। तो मैं बस करने के लिए जा रहा हूँ इस के माध्यम से जल्दी चलना यह उसी का एक बहुत है, क्योंकि हम पहले कर रहे थे कि अवधारणाओं। खाली नहीं, अगर हम मिल गया है कोष्ठक, _GET_GET ["नाम"]। यह सब एक ही सामान है। हम _GET शब्दकोश का उपयोग कर रहे हैं कि पीएचपी, रूपों के अनुरोध पर भेजता है यह के मापदंडों है क्योंकि कार्रवाई, और विधि मिलता है। और फिर उस कि समाप्त होता है। पेट के सिर्फ यह करने के लिए एक वाचक है यदि बयान सही मूल्यांकन है। यह एक घुंघराले ब्रेस की तरह है। और वास्तव में, यह एक घुंघराले ब्रेस है अजगर की तरह अन्य भाषाओं में, बस आप जो अगर आप मुठभेड़ हो सकता है अपने अंतिम परियोजना के लिए ऐसा करते हो। और फिर इस लाइन, नमस्कार। तो फिर हम इस अजीब बात यह है कि मिल गया है। हम और अधिक कोष्ठक मिल गया है। क्षमा करें, कोई HTTP there-- या पीएचपी है। लेकिन एक समान संकेत नहीं है। और फिर हम एक समारोह है, htmlspecialchars (_GEThtmlspecialchars (_GET ["नाम"])। यह एक और अधिक की तरह की तरह है गूंज के उन्नत संस्करण। हम एक तरीके के रूप में गूंज रहा था जैसे पीएचपी में चीजों को बाहर मुद्रित करने के लिए। यह है कि एक समारोह है पीएचपी में परिभाषित किया है कि कुछ और बुरा के साथ सौदा होगा वर्ण और बाइट मूल्यों आप इसे पारित कर सकता है। यह इस का उपयोग करने के लिए हमेशा सबसे सुरक्षित है। लेकिन काम करेंगे गूंज हम नहीं कर रहे हैं, तो बस ठीक बहुत बुरा कुछ भी साथ काम कर। और तो यह एक ही है मूल रूप से प्रभाव, सवाल के बीच में इस सामान निशान पीएचपी द्वारा मूल्यांकन किया है। htmlspecialchars एक अच्छा एचटीएमएल रिटर्न _GET_GET ["नाम"] है, यानी की मुद्रित मूल्य जो कुछ भी हम के रूप में टाइप। और फिर यह, नमस्ते कह देंगे अल्पविराम अंतरिक्ष, और फिर उस। के बीच है कि पूरी बात कोण कोष्ठक से बदल दिया जाएगा जो कुछ भी htmlspecialchars बाहर डालता है। वह मूल रूप से इसी तरह की है तो हम क्या कर रहे हैं। और हम है कि एक और बयान दिया है समझ में आता है, जो दुनिया नमस्ते,। तो अब के लिए वापस जाओ हमारे कोड और ओह exactly-- देखते हैं। मैं नहीं है, जो मौजूद कहा हम करना चाहते थे कि एक बात है। हम खाली नहीं कहना चाहता था। और तो यह एक छोटे से काम करना चाहिए थोड़ा बेहतर है, न कि खाली _GET_GET ["नाम"]। और कहा कि घुंघराले ब्रेस कि घुंघराले ब्रेस मेल खाता है। हम हमारे यहाँ सर्पाकार मिल गया है। गूंज हैलो _GET ["नाम"]। यह एक छोटे से बेहतर काम करता है, तो चलो देखते हैं। हम अभी भी हमारे सर्वर चला रहे हैं। जेसन नमस्कार। जेसन नमस्कार। और यह इस समय काम किया। और इतना है कि एक सबूत है आप वास्तव में कर सकते हैं कि घुंघराले ब्रेसिज़ उपयोग कि आप जानते हैं और एचटीएमएल में PHP कोड में प्यार। करने के लिए प्रदान की जाती PHP कोड pset में आप 6-- pset 6-- का एक और तरीका प्रदान करता है कि एक ही बात कर रहे हैं। तो अब हम शक्ति है। हम लागू करने की कार्यक्षमता है हम pset 6 में देखा था कि PHP कोड खुद के द्वारा, मूल रूप से। मैं आगे बढ़ने से पहले, कुछ कर रहे हैं आप इस बिंदु पर है कि प्रश्न? हाँ [सुनाई]। दर्शकों: pset6 में संस्करण में तो आप इसे चलाने के लिए, एक जगह नहीं है। जगह नहीं है और जहां मैं देख सकता हूँ अल्पविराम के बाद। [अश्राव्य] शुरुआत खुले ब्रैकेट। आप में अंतरिक्ष को शामिल करना कैसे आप अपने खुद के कोड लिखा तरीका है? अध्यक्ष: यह एक अच्छा सवाल है। और तो उसे बाहर निकालने दो। तो यह है कि एक बहुत अच्छा सवाल है और मैं विचार नहीं किया है कि एक। लेकिन चलो इसे एक साथ करते हैं। तो सब से पहले, क्या मैं गूंज के साथ क्या कर रहा हूँ हम सिर्फ गूंज जब है हैलो, यह हैलो outputs। हम अब गूंज तो यह एक अलग पर मिल लाइन, क्या होता है जांच करते हैं। तो हम इस पर क्लिक करें। हम जेसन हाय, कहते रहते हैं। तो फिर, हम इस जगह नहीं है। और उस में, क्योंकि है हम गूंज है जब पीएचपी, कोई फर्क नहीं पड़ता कि कितने spaces-- नहींं, नहीं V-- कोई फर्क नहीं पड़ता कि कितने रिक्त स्थान हम में डाल दिया हम अब फिर से उस तक लोड here-- हैं, जेसन हाय। हाँ, उन सभी को देखने के रिक्त स्थान को खाया गया। और है कि कुछ है कि गूंज कार्य करता है। तो की देखभाल करने के लिए कि अंतरिक्ष, और यह है कारणों में से एक आप गूंज उपयोग नहीं करते क्यों और आप के बजाय htmlspecialchars का उपयोग करें। मैं क्या होगा उत्सुक हूँ हम ऐसा किया तो क्या जहां हम एक स्ट्रिंग में एक अंतरिक्ष संलग्न। मैं ईमानदारी से यकीन नहीं है क्या जब मैं यह कर नहीं होगा। तो यह है कि एक ही रास्ता है। यही कारण है कि इसके बारे में देखभाल करने के लिए एक तरीका है। आप में अंतरिक्ष लपेटो फिर एक स्ट्रिंग, अंतरिक्ष गूंज से अच्छी तरह से उत्पादन होगा। ऐसा करने के लिए सबसे सुरक्षित बात है htmlspecialchars करने के लिए। वह हमेशा सुरक्षित शर्त है। लेकिन अब हम ऐसा करने के लिए एक रास्ता है यह आवश्यक हो तो गूंज के साथ। और एक समान तरीके में, हम कर सकते हैं नई लाइनों गूंज, सभी प्रकार सामान की आप PHP में क्या कर रही परिचित हो। किसी और को, किसी भी अधिक क्या कर रहे हैं अन्य लोगों को सवाल है कि PHP के बारे में इस बिंदु पर? लोग थोड़ी देर के लिए आए थे, तो मैं एक छोटा सा के बाद रहने के लिए खुश हूँ और शुरुआत से कुछ के बारे में बात करते हैं। और यह भी, सब livestreamed है और पागल है, जो संग्रहीत। वैसे भी, इसलिए अब हम कुछ करते हैं PHP के साथ और अधिक उन्नत सामान। और जल्द से जल्द चीजों में से एक आप सी छोरों के लिए था में करने के लिए शुरू किए गए थे। और पीएचपी के लिए एक अधिक शक्तिशाली है पाश foreach पाश बुलाया। और यह प्रत्येक खाली लिए है- तरह लग रहा है खाली, घुंघराले कोष्ठक, के रूप में काम करते हैं। तो यह मूल रूप से एक आशुलिपि है। एक के रूप में पाश के लिए, देखें वाक्य निर्माण सी में और विधानसभा में तैयार किया गया था भाषा और चीजें पसंद हैं। एक आशुलिपि के रूप में, ठीक सी में तैयार छोरों के प्रकार की एक बहुत कुछ के लिए लोग देखना होगा कि। तुम वहाँ एक पाश ने लिखा है जैसे जब अक्सर एक initialization कदम था शुरुआत में, एक पर सही मार डाला पाश stop-- होता है, जहां हालत और कहा कि सुविधा है कि, बस थोड़ी देर के पाश में है या थोड़ी देर के लिए वास्तव में है कि सिर्फ इतना है कि feature-- और उसके बाद अंत में एक incrementation कदम है। और तो आप अक्सर अपने आप पता था निम्नलिखित की तरह कोड लिखने। मैं इस में से कुछ मिटा करने के लिए जा रहा हूँ। लेकिन हम के माध्यम से पुनरावृति रहे हैं एक सरणी में वर्ण, उदाहरण के लिए, जैसे हम है पात्रों में से एक सरणी मिला है। मैं जानता हूँ कि सी को वापस लाने के लिए क्षमा करें, आप जब आप कर रहे थे। लेकिन यह उद्देश्य के लिए ही है पीएचपी सीखने की है, मैं वादा करता हूँ। तो अगर आप एक चार एसटीआर मिला लंबाई 8 की, और चलो यह hellooo कहते हैं, एक पीछे चल बातिल के साथ। बढ़िया है, इसलिए कि हमारे स्ट्रिंग है। और फिर हम एक पाश के लिए किया था। मैं 0 के बराबर होती है int हम लोगों की है। और हम str जब बाहर निकलना चाहते की मैं अशक्त करने के लिए बराबर नहीं के बराबर होती है, यह शून्य के बराबर होती है जब हम बाहर निकलने की वजह से। और फिर हम मैं प्रत्येक में ++ करना पाश के लिए बिंदु। मैं की एसटीआर के साथ कुछ कर रहा है। तो बुनियादी फार्मूला था, हम इस सरणी था कि हम के रूप में अलग तत्वों का इलाज करना चाहता था। लेकिन हम ऐसा करने के लिए क्या किया है हम करना पड़ा मूल रूप से एक अलग पूर्णांक बनाने चर हर भरोसा था कि समय हम पाश के माध्यम से चला गया। और फिर हम तो फोन करना होगा strstr [मैं] हम वास्तव में क्या करना चाहता था जब सिर्फ चरित्र जाना है चरित्र से, है ना? हम एक वेतन वृद्धि नहीं करना चाहते हैं पूर्णांक और फिर उस पूर्णांक का उपयोग व्यक्तिगत रूप से प्रत्येक चरित्र का उपयोग करने के लिए। हम वास्तव में चरित्र द्वारा चरित्र चाहते हैं। और इसलिए प्रत्येक होशियारी के लिए हमारे लिए खरीदते हैं। हम एक सरणी है, तो जो हम पीएचपी में घोषणा कर सकते हैं just-- के रूप में हम एक चर है, तो कहा जाता है, की सरणी कहते हैं। कोई टाइपिंग का चमत्कार, यह है बस किसी भी अन्य चर की तरह। यह सिर्फ एक सरणी है। और हम एक छोटे [सुनाई] 1 की तरह है Initialized सरणी के 2, 3, बस एक तरह से। यह ठीक है, यह मेरी foreach पसंद नहीं करता है। लेकिन हम वास्तव में foreach-- करते हैं तो मैं एक छोटे से गलत है कि टाइप। एक foreach पाश करने के लिए दो तरीके हैं। में वाक्य रचना के रूप में और वाक्य रचना नहीं है। और हम क्या करने जा रहे हैं पहला वाक्य रचना में, के रूप में नहीं। यही कारण है कि मेरी गलती है। सरणी में तो foreach NUM, इको गिन। और पीएचपी पर चिल्ला रहा है किसी कारण के लिए मुझे। यह एक अप्रत्याशित लग रहा है कुछ में, जो एक चिंता का एक छोटा सा है। लेकिन हम पता लगा लेंगे यही वजह है कि एक क्षण में है। तो ऐसा नहीं है। के रूप में प्रयोग करने की कोशिश करते हैं। यह वाक्य रचना लगती है के रूप में पसंद करते हैं। तो चलो NUM के रूप में foreach सरणी करते हैं। तो एक छोटे से स्पष्टीकरण अभी क्या हुआ की के रूप में वाक्य रचना पहले अच्छी तरह से saying-- है, चलो इस बाहर प्रिंट क्या देखो। इसलिए हम अपने आईडीई ऊपर खुला। हम यहाँ जाना। हम हैलो जेसन, कहते हैं। और यह सामग्री थे, जो 123 किया हम शीर्ष ऊपर बनाए गए सरणी की। इस foreach पाश में तो डाइविंग, हम एक चर बुलाया सरणी है जो तीन नंबर की एक सरणी है। और फिर हम foreach कर रहे हैं NUM के रूप में सरणी, इको गिन। और कहा कि अधिक है कलम के लिए एक से सहज ज्ञान युक्त। हम में से प्रत्येक के इलाज कह रहे हैं, NUM के रूप में सरणी में बातें करते हैं, मैं तुम मुझे NUM देना चाहता हूँ। और कहा कि यह कर रही है वास्तव में क्या है। पीएचपी कि गणना है आप foreach सरणी कहते हैं, और आप एक सरणी के साथ काम कर रहे हैं, क्या आप पर पुनरावृति करना चाहते करने जा रहे हैं उस सरणी में वर्ण, है उस सरणी में ints है, उस सरणी में तत्वों है। और यह आप की दुकान दे रहा है NUM के रूप में उन चर, और फिर सिर्फ उत्पादन NUM सही दूर बल्कि कह रहा से, मैं मैं एक चर बुलाया है, और तो मैं उत्पादन strstr [मैं] करना चाहते हैं। और इतना है कि हमें अच्छा काम करने के लिए अनुमति देता है। मूल रूप से की तरह हम बनाने की जरूरत नहीं है मैं और क्या कर सभी तरह इन चर अंत में इस incrementation सामान। पीएचपी कि आप के लिए सभी का ख्याल रखता है। तो अब के रूप में foreach के बारे में बात करते हैं यह हमारे _GET शब्दकोश में लागू होता है। इसलिए हम जल्दी से इस बाहर टिप्पणी करेंगे। इसलिए हम अपने _GET सरणी है। हम इस चर है। और यह उस में कुछ सामान मिला है। अभी, हम केवल एक चर राशि नाम है, जो यह करने के लिए पारित किया जा रहा है। लेकिन अब हम दर्ज दबाते हैं हम दो चर हो सकता है। हम, उदाहरण के लिए, नाम और उम्र में हो सकता है हम भी उम्र पाने के लिए और करना चाहते हैं काफी मजेदार एक व्यक्ति का नाम,। तो अब _GET एक होने जा रहा है दो तत्वों के साथ शब्दकोश, दो प्रमुख मूल्य जोड़े के साथ। और पहली key-- मैं करने जा रहा हूँ भी बोर्ड पर इस एक को लिखें। हम हमारे शब्दकोश _GET है। क्षमा करें, यह देखने के लिए थोड़ा मुश्किल है। लेकिन हमारे शब्दकोश के अंदर हमारे पास कुछ होने जा रहा है, जो नाम कि हम दिया हो। और हम जो भी है, उम्र होगा हम दिया हो कि कुछ होने जा रहा। और इस सम्पूर्णता है हमारे शब्दकोश की। तो यह उस में दो तत्व मिल गया है। और इसलिए क्योंकि foreach छोरों हम बहुत चालाक होते हैं लगता है, और सही ढंग से हो सकता है कि foreach लगता है कि हो सकता है इस के माध्यम से पुनरावृति कर सकते हैं शब्दकोश, बाहर मुद्रण मूल्यों नाम और उम्र के द्वारा दी गई। तो वास्तव में चलो बस वैसा ही करेगा। के एक foreach पाश का निर्माण करते हैं। और हम के रूप में _GET के लिए क्या करने जा रहे हैं। और हम निम्नलिखित क्या करने जा रहे हैं। तो चलो हम टाइप करता है, तो देखते हैं क्या होता तो बस शब्द है, और गूंज शब्द कहते हैं। हम भी एक नई लाइन गूंज लिए जा रहे हैं बस इसे एक छोटे से साफ करने के लिए, क्या चल रहा है। तो चलो देखते हैं। यह मुझे किसी भी त्रुटि नहीं दे रहा है। और हम इस बंद कर देंगे। हमारी वेबसाइट पर, आप क्या कर रही हो जा रहे हैं pset7 के पाठ्यक्रम पर इस बात का एक बहुत। इसलिए हम मेरा नाम सैम है कहना। मेरी उम्र 45 है। यह। लेकिन यह उम्मीद के रूप में, सैम 45 बाहर प्रिंट। और तो आप उस पर ध्यान देंगे क्या foreach पाश, यहां did-- यह हो रहा है तो चलो कि के लिए वापस जाओ board-- पर हम शब्द के रूप में _GET मिलता है। और _GET में चार बातें कर रहे थे। लेकिन यह केवल दो चीजें बाहर मुद्रित। foreach, अपनी खुफिया आत्म जा रहा है, मान लिया कि हम वास्तव में क्या करना चाहता था कि मूल्यों, नहीं चाबियाँ था। लेकिन हम प्रिंट सकता है कि वहाँ एक रास्ता है चाबियाँ बाहर के रूप में अच्छी तरह से, यदि हम चाहते थे। हम भी जानते हैं कि क्या करना चाहता था इन चर कहा जाता था, एक रास्ता है कि हम के रूप में अच्छी तरह से इस तक पहुंच सकते हैं। और वैसे भी तरह की है कि ऐसा करने के लिए, इसलिए हम वास्तव में देता है, कह सकते हैं महत्वपूर्ण मूल्य जोड़े में विभाजित। तो चलो अब देखते हैं क्या होता। इसलिए हम कुंजी है। हम मूल्य है। हम एक और नया है पठनीयता के लिए लाइन। और चलो देखते हैं क्या होता हम अब इस करते हैं। मैं जेसन कितनी पुरानी है पता नहीं है। जेसन 15। इसलिए हम नाम जेसन, 15 साल की उम्र की है। इसलिए हम कुंजी का उपयोग करने में सक्षम थे इस शब्दकोश का और मूल्य जोड़े सिर्फ मूल्य के रूप में महत्वपूर्ण बिंदुओं कह कर। और कहा कि एक foreach वाक्यात्मक है अनुमति देता है कि चीनी बिट आप शब्दकोश में चीजों का उपयोग करने के लिए। इसलिए उम्मीद है कि इस तरह की जोर देती है foreach पाश की शक्ति। तुम बहुत ज्यादा फेंक कर सकते हैं iterable लगता है कि कुछ भी हो, कुछ भी पसंद है कि कई है एक सरणी की तरह तत्वों, एक dictionary-- तरह उन दो हैं आप के साथ काम कर सकता हूँ प्राथमिक बातें जीवन में और pset 7 में दोनों। तो आपको लगता है कि सामान फेंक कर सकते हैं यह कम है, और यह पता लगाना होगा आप इसके साथ क्या करना चाहते हैं। यह ठीक है, मैं करने के लिए जा रहा हूँ, कहूँगा डेटा से इन बातों है कि मेरे लिए पारित किया गया था। और कहा कि आप कर रहे हैं कि कुछ है pset 7 में से एक बहुत का उपयोग किया जा रहा है। मैं त्वरित स्क्रॉल करने के लिए जा रहा हूँ मैं कहाँ पर हूँ नीचे सिर्फ देखने के लिए। लोग इस बात पर सवाल है? सभी को एक प्रश्न? हाँ? दर्शकों:, कुंजी और मान के साथ तो आप इसे कुछ और नाम सकता है और यह अभी भी काम करेगा? अध्यक्ष: उफ़। वाह, मैं पूरी तरह से पूरी लाइन को नष्ट कर दिया। महान काम। तो एक, एक। कुंजी और मान सिर्फ एक सम्मेलन है। यह उपयोगी है। आप कुछ डिजाइन मिल जाएगा अंक, शायद कुछ शैली अंक इसकी वजह यह है कि ऐसा करने के लिए वास्तव में इरादा बता देते हैं। लेकिन हम एक और yarp कहते हैं। दर्शकों: आप की जरूरत नहीं है एचटीएमएल फाइल में कुछ भी बदल आदेश में कहा कि प्रतिबिंबित करने के लिए? अध्यक्ष: बिल्कुल नहीं। दर्शकों: और यह सिर्फ इतना है कि जानता है अधिक से अधिक than-- के बराबर होती है की वजह से अध्यक्ष: हाँ। दर्शकों: that's-- कि --that सूचक अध्यक्ष: हाँ। यही कारण है कि हाँ लेकिन, एक foreach वाक्य रचना है। दर्शकों: प्रकार के होते नहीं हैं। इसलिए यदि आप चाहते थे क्या उम्र केवल एक संख्या हो सकता है? क्या ऐसा करने के लिए कोई रास्ता है? अध्यक्ष: अगर जाँच करने के तरीके हैं चर कुछ प्रकार के अनुरूप। तो पीएचपी से एक छोटे से अधिक पूछता आप में कोई प्रकार के होते हैं। कुछ मायनों में यह कम पूछता है। कुछ मायनों में यह अधिक पूछता है। आप बस है क्योंकि अगर एक चर में कुछ है, आप यह क्या प्रकार पता नहीं है। लेकिन अगर आप चर के बारे में बहुत चालाक होते हैं आप के लिए प्रकार आवंटित करने और यह सुनिश्चित कर लें कि कार्यों केवल आप return-- कि केवल वापसी करने के लिए कार्य करना चाहते हैं मूल्य का एक प्रकार है ताकि आप मूल रूप से यह कर सकते हैं कि चर आप वापस पाने की उम्मीद है कि एक समारोह से प्रकार का हो जाएगा आपको लगता है कि यह मूल रूप से, हो जाएगा। लेकिन कुछ तरीके हैं जिसके द्वारा आप जाँच कर सकते हैं। मैं उन्हें याद नहीं है मेरे सिर से नीचे। यह नीले रंग की बारी करने के लिए मैं इंतज़ार कर रहा हूँ। isint? isstr? तरीके हैं पीएचपी में बनाया गया है कि यह कर सकते हैं आप के लिए चर के प्रकार की जाँच करें। लेकिन अगर आप चर आवंटित यदि चालाकी, तुम नहीं करना चाहिए pset 7 में वह भी बहुत कुछ करना है। लेकिन उन तरीकों मौजूद है। और है कि कुछ है कि भाषा में ही है। और मैं सटीक वाक्य रचना याद नहीं है। हम भी यह लग सकता है। लेकिन समय का सार है। है किसी और को नहीं किसी भी अधिक प्रश्न हैं? हाँ। दर्शकों: मैं सिर्फ एक अधिक है। तो आपको मिल विधि का उल्लेख किया है, लेकिन आप पोस्ट विधि का उल्लेख नहीं किया। हम वापस करने के लिए आ रहे हैं? अध्यक्ष: हां, हम करेंगे वापस करने के लिए आ रही हो। यही कारण है कि मैं देख रहा था कि वास्तव में क्या है अब सो गया जो मेरे फोन, पर, लेकिन मैं यह मिल जाएगा। हम हिट यकीन है कि बस बनाने पीएचपी नोटों के सभी। हाँ, कोई डिबगिंग संस्करण है। हाँ, हम कुछ और बातें है कि हम इस बिंदु पर अब क्या करना चाहते हैं। तो पोस्ट के बारे में बात कर रही है, जो आप उल्लेख किया है, एकमात्र अंतर जाओ और पोस्ट के बीच हम देखा है कि जब याद और इस URL पर हम, ओह, देखा नाम एक बराबर होती है और उम्र yarp के बराबर होती है हमारे लिए सही वहाँ यूआरएल में हैं। पोस्ट एक छोटे से अधिक गोपनीय है जानकारी के अपने गुजरने के साथ। आप एक उपयोगकर्ता नहीं चाहता था तो अगर पता है, उदाहरण के लिए, आप उपयोगकर्ता नाम नहीं चाहता था और व्यक्ति का पासवर्ड वर्तमान में प्रदर्शित किया जा करने में लॉग इन एक उचित बात है, जो यूआरएल, यूआरएल में नहीं चाहते करने के लिए, किसी ने इसे देख सकते हैं। वे एक पृष्ठ के लिए किसी लिंक हैं, तो आप उनके यूआरएल वहाँ मदहोश नहीं करना चाहते हैं, कि लोगों को प्रवेश करने की अनुमति होगी, क्योंकि बस के बजाय एक यूआरएल की चिपकाने के साथ का वास्तव में बाहर एक फार्म भरने। पोस्ट एक छोटा सा और गोपनीय है। और केवल बातें है कि हम बदलना होगा इस विधि, परिवर्तन कर रहे हैं से पोस्ट करने के लिए मिलता है। और फिर HTTP अंदर, बजाय सरणी _GET पहुँचने की, हम सरणी _POST उपयोग करने के लिए जा रहे हैं। और हम हैं, तो उस पर ध्यान देंगे हम फिर से इस वापस ऊपर खुला जेसन धीरे धीरे उम्र में गिरावट आती है। जेसन, 14 साल की उम्र नाम है। एक ही चीज को चबूतरे। लेकिन हम यूआरएल के लिए जाने के लिए और उन चर नहीं कर रहे हैं। और वैसे भी उस पद इसलिए याद passes-- कैसे एक पृष्ठ के स्रोत को देखने के लिए। हम नेटवर्क के लिए जाना। हम ताज़ा। और यह एक और बात यह है कि पोस्ट में आप के बारे में चेतावनी दे देंगे। आप एक बॉक्स, एक पाठ देखा हो सकता है अपने ब्राउज़र में इस तरह बॉक्स। क्या आप असल मे चाहते है फिर एक फार्म भेजने के लिए? पोस्ट 'इन रूपों को भेजने रहा है। तुम्हें भेजा मूल रूप से क्योंकि अगर आपके किसी के लिए क्रेडिट कार्ड की जानकारी, कि यूआरएल में दिखाने के लिए नहीं जा रहा है। एक पोस्ट है कि अनुरोध किया जा रहा है। तो आप पृष्ठ ताज़ा करते हैं, यह उस पोस्ट अनुरोध पुन: भेजने की है। तो अब हम भेजना चाहते हैं यह नहीं जा रहा है क्योंकि एक बार फिर फार्म किसी भी डुप्लिकेट खरीद बनाने के लिए। और हम, कि यहाँ नीचे नोटिस देंगे हम प्रयोग कर रहे विधि पोस्ट है। और यह वास्तव में बाइट्स का स्थानांतरण किया था। यह उनमें से 401 स्थानांतरित कर दिया। कार्यक्रम के बहुत छोटे। लेकिन हम देख सकते हैं कि वहाँ कहीं नहीं है पारित किया जा रहा है कि मानों। खुद को देख सकते हैं वेब पेज, लेकिन उपयोगकर्ताओं के रूप में हम यह देखने के लिए सक्षम नहीं हैं आप एक हैकर रहे हैं जब तक। आप एक अच्छे हैकर रहे हैं, तो आप देख सकते हैं। आप बुनियादी जानते हैं HTML के प्रारूप, मूल्यों कर देगा खुद को पन्नों में जाना जाता है। आप देखने में सक्षम हो जाएगा। मानों वे कर रहे हैं, वहाँ हो जाएगा आप के लिए कम स्पष्ट सिर्फ एक छोटे से उपयोग करने के लिए, मूल रूप से। हम किसी भी अधिक है मिलता है, पोस्ट के बारे में सवाल हम आगे क्या करने जा रहे हैं before-- वास्तव में कोड से कुछ को देखो है आप pset 7 में दे रहे हैं कि, के बारे में बात यह इन अवधारणाओं से कुछ का उपयोग करता है, कैसे और के बारे में बात करते हैं आप जा रहे हैं कि चीजों को pset 7 में एक छोटा सा कर दिया है। उस से पहले कोई और सवाल? अधिक सवाल है कि तुम लोगों के लिए है? अच्छा है। ठीक है, हम देखते हैं pset 7 पर एक छोटा सा है, कोई संदेह नहीं है तुम क्या कर रहे हैं सब के बारे में सबसे ज्यादा उत्साहित। मेरा मतलब है, यह कुछ ऐसा है कि दाऊद ने एक छोटा सा के माध्यम से चला जाता है। लेकिन हम में तीन निर्देशिकाओं होगा शीर्ष, साथ ही एक विन्यास फाइल। यही कारण है कि जो हम करेंगे, डेटाबेस के लिए है पांच मिनट के बारे में के बारे में बात करते हैं। आप कभी नहीं की जरूरत है, शामिल है इस निर्देशिका में देखने के लिए आप नहीं करना चाहते हैं, लेकिन यह अच्छा है, तो सहायकों के सभी प्रकार के कर रहे हैं। सहायकों को सहायक कार्यों की तरह है। और फिर हम कॉन्फिग है, जो कुछ सामान सेट। CS50 है कि कुछ कार्य कर रहे हैं सहायक और config में हैं कि लिखा है। और पीएचपी के कुछ है कि पहले से ही फाइलों में बाहर निकलता है अधिक प्रकार की एक बहुत कुछ करना होगा आप के लिए की कुंठित पैर काम करते हैं। हम जनता में जाने की तरह login.php, जो क्या है आप pset 7 में जाने का अधिकार है जब तक पता चलता है। हम वहाँ देखेंगे कि इस बयान की आवश्यकता होती है। और एक तरह का है कि तरह तेज, हैशटैग शामिल आप एक नई पीढ़ी के हैं, तो शामिल हैं। लेकिन यह मूल रूप से मैं उपयोग की जरूरत है का कहना है कि config.php में सभी कार्यों के लिए। और आप की आवश्यकता एक हो सकता था अन्य चीजों के सभी प्रकार के लिए। कॉन्फिग वास्तव में सहायकों की आवश्यकता है। इसलिए जब भी आप की आवश्यकता होती है कॉन्फिग, आप भी कर रहे हैं सहित या के रूप में अच्छी तरह से सहायकों की आवश्यकता होती है। तो यह है कि आप सभी के लिए पहुँच देता है हम प्रयोग करने जा रहे हैं कि अच्छा काम करता है, चीजों को प्रस्तुत करना चाहते। मैं वास्तव में कम करने के लिए जा रहा हूँ यह नीचे एक छोटा सा। हम कर रहे हैं तो समारोह तो के माध्यम से चलने के लिए जा हम एक छोटे से एसक्यूएल पर ले जाने के लिए बस से पहले सा बस, login.php समारोह है यह विषयों में से कुछ का उपयोग करता है, क्योंकि हम सिर्फ पीएचपी में के बारे में बात की है कि। आप पहली बात $ _SERVER यदि है देखते हैं। यह एक वैश्विक चर रहा है कि आप के साथ काम करने जा रहे हैं। यह _GET और _POST, लेकिन क्या की तरह है सर्वर इस तुम चलो सकते है शामिल अगर आप जानते हैं अनुरोध विधि एक या एक पोस्ट किया गया। पहले हम क्या कर रहे थे की तरह , बस हम ने लिखा है कि हमारे कोड में है हम सिर्फ यह हो होने के लिए बदल रहे थे और पोस्ट एचटीएमएल गया है पर निर्भर करता है। लेकिन हो सकता है कि पन्नों रहे हैं अनुरोधों के दोनों प्रकार के साथ पहुँचा। और आप क्या करना चाहते हो सकता है आधार पर अलग अलग बातें अनुरोध के प्रकार पर, बस की तरह लॉगिन करता है। तो आप से अनुरोध है कि जांच कर सकते हैं पहुँचने कुंजी के माध्यम से विधि, एक कुंजी का उपयोग हो रही है और के माध्यम से शब्दकोश में किसी चीज का मूल्य _SERVER। तो यह है कि एक और वैश्विक है _GET और _POST तरह चर। इसे पाने के लिए है, तो हम करना चाहते हैं प्रवेश फार्म प्रस्तुत करना। प्रस्तुत करना है कि मूल रूप से एक समारोह है सिर्फ उचित एचटीएमएल डालता और यह कुछ मानकों से गुजरता है। यह शीर्षक है कि एक पैरामीटर है ताज्जुब है, प्रदर्शित करने में प्रयोग किया जाता है, पृष्ठ के शीर्षक में सवाल है, यहाँ बात है, कहते हैं या हमारे पिछले उदाहरण में नमस्कार। अब हम एक अलग बात है। यह पोस्ट है यदि नहीं तो, हम कुछ अन्य सामान करना। हम जानते हैं कि खाली विधि का प्रयोग कर रहे हैं। यह यह खाली है, जो अस्तित्व में नहीं है। और हम, पहले पीएचपी देखा निर्मित की एक उचित मात्रा में है तरीकों में डेविड यदि वहाँ will-- कि आप के लिए उपयोगी होते हैं तरीके हैं, वे आप के लिए सतर्क कर दिया जाएगा दाऊद के माध्यम से चलने में शुरुआत सिंहावलोकन पर देता है, और भी Zamyla के सहायक बिट्स। वह वापस हर कोई है। हम सभी को आनन्दित कर सकते हैं। माफी मांगने के एक जिसे उपयुक्त नाम समारोह है कि सिर्फ मूल रूप से बाहर प्रिंट कुछ त्रुटि संदेश, CS50 बहुत विनम्र है। और अब यह है, यह है एक इस वजह से मुश्किल सा हम डेटाबेस क्वेरी कर रहे हैं, जहां है। अब हम डेटाबेस के बारे में बात नहीं की है। और हम अगले में लिए जा रहे हैं पाँच मिनट या ऐसा करने के लिए, अधिकतम। लेकिन इस एक समारोह है कि CS50 लिखा है एक डेटाबेस से बुनियादी तौर पर एक मेज के लिए हम pset 7 में साथ काम कर रहे हैं। मैं सच के साथ बुरा हूँ मेरी शून्य अनुक्रमण आज। लेकिन हाँ, यह 7 है। तो यह एक वापस करने के लिए जा रहा है क्वेरी सरणी, मूल रूप से कुंजी सा है। और ये बातें नहीं है क्योंकि टाइपिंग, पंक्तियों इसलिए सरणियों की एक सरणी है। हम के बारे में सोच रहे हैं क्योंकि जब एक मेज, हम क्या करने जा रहे हैं आप psets में सीखा है, वैसे भी 15 के खेल की तरह है, आप एक का उपयोग किया था, जहां डबल सरणी, हम मूल रूप से अन्य की सरणी है सरणियों एक मेज बनाता है। और अगर आप पंक्तियों और स्तंभों मिल गया है। और फिर आप की तरह उन तक पहुँच सकते हैं [0] [1], आप मिल [0] [1]। लगता है कि जैसे बुनियादी चीजें। तो हम क्या कर रहे हैं यहां इस समारोह में, हम डेटाबेस पूछ रहे हैं यदि है कि उपयोगकर्ता लॉग इन करने के लिए कोशिश कर रहा है, कि हो जाएगा पोस्ट विधि के माध्यम से भेजा। हम हम कर रहे हैं देखेंगे _POST से उपयोगकर्ता नाम। वे उपयोगकर्ता भेजा होगा या आप, एक मूल्य भेज देंगे पोस्ट के माध्यम से एक फार्म के माध्यम से क्योंकि यह यूज़रनेम और पासवर्ड सामान है। हम उपयोगकर्ता नाम जाँच कर रहे हैं देखने के लिए, इस तालिका में है? एक उपयोगकर्ता लॉगिन कर रहा है क्योंकि अगर , तो अपने उपयोगकर्ता नाम में की तालिका में संग्रहित किया जाना चाहिए इस साइट के लिए मौजूद है कि उपयोगकर्ताओं। तो बुनियादी तौर पर, अगर उपयोगकर्ता, डेटाबेस में है क्वेरी वापस करने के लिए जा रहा है एक सरणी है जो कि पंक्ति,। लेकिन मुश्किल हिस्सा है कि भले ही यदि डबल सरणी, केवल एक पंक्ति का है यहां तक ​​कि यह एक एक पंक्ति है अगर array-- जैसे आप basically-- मिल गया है आप एक आकार एक सरणी मिल गया है कि, एक और सरणी पकड़ रखा है आप वास्तव में एक स्तंभ के साथ काम कर रहे हैं। लेकिन यह अभी भी इलाज किया जाता है एक डबल सरणी की तरह। कभी कभी ऐसा भी प्राप्त कर सकते हैं और यह है जहाँ मुश्किल है, हम यहाँ पंक्तियों मिल गया है। हमारे चर पंक्तियों है। और फिर हम बना रहे हैं एक नया चर बुलाया पंक्ति और बराबर इसे स्थापित पंक्तियों की पहली पंक्ति। और तुम उस टिप्पणी पर ध्यान देंगे यह पहली और एकमात्र पंक्ति का कहना है। तो यह मुश्किल है हिस्सा जहां अब कार्यों बहुत आसानी से सरणियों लौट सकते हैं। Mallocs नहीं है। आप mallocs नहीं देख सकेंगे। तो अगर आप SEG दोष नहीं देख सकेंगे। लेकिन कार्य अभी भी पारित हो जाएगा समूहों में सरणियों और डेटा के आसपास। और तुम क्या से सावधान रहना होगा वास्तव में अपने कार्यों के लिए वापस आ जाएगी। और यह एक है, भले ही इस तरह स्तंभ, क्वेरी अभी भी एक डबल सरणी वापस करने के लिए जा रहा है। उपयोग करने के लिए तो column-- या आपको लगता है कि उल्टे रूप में इस सब के बारे में सोच सकते हैं हम पंक्तियों के बारे में बात कर रहे हैं। लेकिन यह है कि एक पंक्ति का उपयोग करने के लिए, तुम सिर्फ पंक्तियों नहीं कह सकता। यह एक पंक्ति है, भले ही आप के लिए है rowsrows [0] की तरह इस समाप्त करने के लिए करते हैं सरणी के बाहरी सा है और सिर्फ एक पंक्ति है। कुछ अन्य बातें करते हैं। एक समारोह में नहीं है कहा जाता password_verify का सत्यापन पोस्ट किया गया था कि पासवर्ड। और फिर हम एक वैश्विक देखना यहाँ चर, देखना। असल में सत्र आईडी आप ट्रैक रखने के लिए है की किसी में लॉग इन किया है या नहीं। इसलिए अभी login.php साथ हम में एक उपयोगकर्ता प्रवेश कर रहे हैं। तो हम क्या करना चाहते हैं कि हम करना चाहते है सत्र आईडी पंक्ति के बराबर है कहना बस समझ क्योंकि बनाता है जो आईडी, प्रत्येक पंक्ति एक अलग पहचान करनी होगी तालिका के भाग के रूप में संख्या। हम एक में एसक्यूएल में मिल जाएगा दूसरे, इसलिए इस बात का कोई यदि ऐसा लगता है ब्ला की तरह एक छोटा सा है, उसके बाद सभी को साफ कर दिया जाएगा। लेकिन हम के बराबर आईडी स्थापित करने के लिए जा रहे हैं में उपयोगकर्ता के प्रवेश करने के लिए उचित बात है,। कुछ गलत हो जाता है, तो माफी माँगता हूँ। और कहा कि लॉगिन उद्देश्य में है प्रोफेसर मालन के रूप में जीवन कहेंगे। तो यह है कि login.php था। और आप लिखना पीएचपी कोड का एक बहुत pset 7 में, वे एक छोटा सा हो जाएगा। करने के लिए chmod के लिए मत भूलना उचित अनुमति। के बारे में थोड़ा सा हो जाएगा कल्पना की शुरुआत में। लेकिन आप कर रहे हैं कि पीएचपी लेखन होने जा रहा है यह करने के लिए इसी तरह की है कि सामान कर रही। आप हो जा रहे हैं कुछ बातें पहुँचने कि में आप के लिए दिया जाता है पीएचपी के वैश्विक चर कि वर्तमान के साथ काम कर रहे हैं कि क्या वहाँ, उपयोगकर्ता में लॉग इन इस के लिए भेजा गया अनुरोध किया है पेज, उस तरह अलग अलग चीजें हैं। और यह भी संभावित होगी इस बात की पंक्तियों के माध्यम से पुनरावृति। एक अलग समारोह, क्वेरी में इस दोहरे सरणी वापस करता है। और अधिक कर रहे हैं, तो उस में एक पंक्तियों से, हाँ, अगर वहाँ are-- यदि उस में एक से अधिक पंक्तियाँ हैं, तो यह एक मेज हो जाएगा। और अगर आप पुनरावृति करने के लिए चाहते हो सकता है का उपयोग करते हुए इस सरणी की पंक्तियों के माध्यम से हम वर्णित है कि foreach पाश। तो अगर आप एक डबल पर foreach करते हैं सरणी, क्या word-- यहां होगा, मैं वास्तव में यह लिख देंगे। मैं जल्दी इसे यहाँ लिख देंगे। हम पंक्तियों की एक foreach है, तो पंक्ति के रूप में, पंक्ति का प्रकार क्या है? किसी को पता नहीं? आपको यह मिला? पंक्तियों तो एक डबल सरणी है। तो foreach अनुमान करने के लिए क्या हो रहा है हम इस दोहरे सरणी से चाहते हैं कि यदि हम इस पर पुनरावृति कर रहे हैं? हम मूल रूप से मान सकते हैं कि यह या तो तत्व होने जा रहा है, मूल रूप से या पंक्तियों या स्तंभों,। और तो पंक्तियों और स्तंभों हम एक ही चीज के रूप में इलाज कर सकते हैं। असल में foreach पाश क्या हो रहा है ऐसा करने के लिए यह पंक्तियाँ वापस करने के लिए जा रहा है। पंक्ति, प्रकार पंक्ति का होने जा रहा है पंक्तियों जबकि एक डबल सरणी है। तो तुम foreach देते हैं एक डबल सरणी, यह है पुनरावृति करने के लिए नहीं जा रहा है एक से अधिक स्तर गहरी। कौन सा कहते हैं कि अगर मूल रूप से है वहाँ 1,2 इस table-- में आठ कोशिकाओं रहे हैं, 3 से 4, 5, 6, 7, 8-- foreach पाश नहीं है इन कोशिकाओं में से प्रत्येक के माध्यम से जाना जा रहा है। Foreach पाश क्या करेंगे यह इस पंक्ति के माध्यम से जाना होगा किया गया था, आप इस पूरी पंक्ति दे। और फिर यह कि पंक्ति के माध्यम से जाना होगा। तो यह केवल गहरी एक स्तर iterates। आप एक नेस्टेड जोड़ देते हैं तो foreach पाश, तुम तो से लौटे प्रत्येक पंक्ति का इलाज कर सकते हैं पंक्तियों, तुम तत्व के रूप में foreach पंक्ति करना हम कहते हैं। और फिर तुम तत्व गूंज सकता है। तो यह है कि एक संक्षिप्त है कैसे पर थोड़ा पुनश्चर्या आप foreach का उपयोग किया जा सकता है क्वेरी के संदर्भ में छोरों। पीएचपी पर किसी भी सवाल कर रहे हैं? सभी में कुछ भी हम पहले एसक्यूएल के बारे में बात करने के लिए पर स्थानांतरित और डेटाबेस का मजाक? अच्छा लग रहा है? अच्छा लग रहा है। ठीक है। वापस करने के लिए पर चलो आप शायद याद आती है जो PowerPoint,। एसक्यूएल, याय। आम तौर पर मेरे भाग में कर रहे हैं लोग पता चल जाएगा कि परिवर्णी शब्द के subheadings सिर्फ पहला शब्द हमेशा से रहे हैं मुझे लगता है कि मैच के बारे में सोच है कि कि परिचित करा algorithm--। यह एक एल्गोरिथ्म नहीं है। तो एसक्यूएल एक डेटाबेस है। यह एक भाषा है कि डेटाबेस के साथ काम करता है। और सभी डेटाबेस है कम से कम रास्ते में टेबल, कि एसक्यूएल उन्हें प्रतिनिधित्व करता है। डेटाबेस के बारे में सोचने के लिए एक और तरीका है डेटाबेस कुंजी और मूल्यों का एक सेट है मूल रूप से। आप एक डाटाबेस के रूप में के बारे में सोच सकते हैं एक तालिका के रूप में एक शब्दकोश और भी। असल में यह संबद्ध करने के लिए एक रास्ता है अन्य डेटा के साथ अलग-अलग डेटा, अक्सर पंक्तियों और स्तंभों के माध्यम से। और कहा कि जिस तरह से है कि एसक्यूएल सबसे अच्छा काम करता है। तो यह एक मेज का एक उदाहरण है। मैं कुछ उदाहरण मिल गया है मेरी खंड में लोगों को जो मैं बदलने के लिए समय नहीं था। लेकिन हम आईडी की तरह चीजें मिल गया है नाम, महाशक्ति, और गृहनगर। किसी को भी है, जहां मैं नहीं जानता मेरे भाग में से, इसलिए मैं सिर्फ कल्पना करने के लिए जा रहा हूँ हर किसी को न्यूयॉर्क से है शहर मैं सांख्यिकीय एक उच्च है, क्योंकि सही होने की संभावना है। एसक्यूएल स्वचालित रूप से ले जाएगा आप के लिए आईडी स्तंभ की परवाह है। आप एक नई पंक्ति सम्मिलित हैं एक एसक्यूएल डाटाबेस में, यह है कि वेतन वृद्धि होगी आईडी नंबर और बस मूल रूप से पांच नाम की तरह चिपके रहते हैं, महाशक्ति, गृहनगर, जो कोई भी उस मेज के अंत पर। तो आईडी एक स्तंभ आप करेंगे कभी नहीं के बारे में चिंता करने की ज़रूरत। लेकिन, इस मामले में की तरह login.php की, जब हम सत्र आईडी हो रहे थे एक मेज से और सिर्फ आईडी का उपयोग आईडी विशिष्ट पहचान करने के लिए एक रास्ता है एक डेटाबेस का एक तत्व। तो अगर हम दो Sams, दोनों के लिए किया था जो CS50 पढ़ाया जाता है, और जो दोनों मिल्वौकी से थे, उन होगा अभी भी अलग आईडी नंबर हैं और इस प्रकार में अलग हो तालिका के संदर्भ। तो इस एसक्यूएल काम कर रहा है क्या है पीछे के अंत में साथ काम कर रहे हैं, के साथ। अब इन चार कमानों रहे हैं आप एसक्यूएल के साथ काम करने के लिए की आवश्यकता होगी। और मैं एक स्लाइड पर उन सब को फेंक दिया। लेकिन हम के माध्यम से जाने के लिए जा रहे हैं उन सब को अलग-अलग। पहले आदेश, अद्यतन है जो आप उम्मीद कर सकते हैं क्या होता है। आप में से कुछ डेटा का कहना है कि तारीख से बाहर है कि मेज। आप रख रहे हैं जैसे कि अगर लोगों के नाम का ट्रैक और उम्र कोई है, यदि तो उम्र बढ़ जाती है, आप में जाना चाहते करने जा रहे हैं और सिर्फ इतना है कि व्यक्ति की उम्र का अद्यतन करें। काम करता है कि एक उदाहरण के लिए हमारी पहली table-- साथ के सभी लिखने के बारे में चिंता मत करो एक ही समय में इन आदेशों। लेकिन अगर आप नीचे अद्यतन मिल गया है, कि, इस हिस्से के लिए अच्छा होगा हम करने जा रहे हैं, क्योंकि मेज पर वापस जाओ। इसलिए हम मेज पर वापस जाना है, हुआ कुछ है कि हम कहते हैं एक भूकंप आया था या सीधे विभाजित है कि एक गलती लाइन न्यूयॉर्क शहर के माध्यम से। और हम सभी को अद्यतन करना चाहता था जो न्यूयॉर्क शहर में रहते थे। वे सभी पेंसिल्वेनिया के लिए ले जाने के लिए किया था। यही कारण है कि एक गृहनगर नहीं है। वे सभी न्यू हेवन के लिए ले जाने के लिए किया था। हम वहाँ चलें। न्यूयॉर्क में तो हर कोई न्यू हेवन के लिए ले जाता है। और इतना है कि है कि कुछ है इस तालिका में तीन पंक्तियों का संपादन। लेकिन एसक्यूएल में, आप कर सकते हैं सिर्फ एक बयान में कहा कि। इसलिए हम अद्यतन करने के लिए वापस जाओ। मुझे जल्दी फिर से इस बोर्ड को मिटा दें। जब हम के बारे में बात कर रहे हैं अद्यतन करने, देखते हैं महत्वपूर्ण हैं कि वाक्य रचना के कुछ भागों। खैर, वाक्य रचना के सभी प्रमुख है। लेकिन हरे रंग में सामान वैकल्पिक है। सफेद, आवश्यक हैं जैसे पूर्वनिर्धारित नाम। और हल्के नीले रंग बातें कर रहे हैं उस मेज पर निर्भर करता है। तो उस के साथ क्या हो रहा है यहाँ, वहाँ रंग योजना। हम सिर्फ उन पंक्तियों को अद्यतन करना चाहते हैं तो न्यूयॉर्क में रहने वाले लोगों की, हम अद्यतन कहा यदि ऐसा है तो हम क्या करेंगे? हम कहाँ रखा तो मेज है हमारे टेबल का नाम है। चलो बस नाम हम कहते हैं हमारे टेबल की मेज से एक है। तो हम तालिका में एक अद्यतन करना चाहते हैं। और हम set-- करना चाहते हैं क्या हम सेट करना चाहते हैं? खैर, हम कहना चाहते हैं, तो column-- पीएचपी अनन्य पहचानकर्ता के रूप में पंक्तियों को मानते हैं। और फिर स्तंभ हैं विभिन्न क्षेत्रों डेटाबेस के उन तत्वों की। डेटाबेस के पहले तत्व तो सैम, CS50 की महाशक्ति का एक नाम है और मिलवॉकी के गृहनगर। हम सेट ने कहा कि यदि ऐसा है तो, चलो को देखो मानकों को फिर से उस सेट लेता है। हम स्तंभ मूल्य के बराबर होती है। इसलिए हम कुछ कहना चाहता हूँ column-- याद जो एक field-- हम एक देखना चाहता हूँ है कुछ नया करने के लिए बराबर क्षेत्र। हम सिर्फ अद्यतन कहा तो अगर तालिका 1, सेट नाम बराबर इलियट। से कुछ लोगों को मिल इस पर में नई धारा। लेकिन हम सिर्फ अद्यतन 1 टेबल किया था कि अगर सेट नाम बराबर इलियट, क्या होगा उस के बाद की तरह टेबल दिखते हैं? लोगों को किसी भी विचार है? हाँ। दर्शकों: उस में सब कुछ पंक्ति इलियट बन जाएगा। अध्यक्ष: जो पंक्ति में सब कुछ? दर्शकों: पहली पंक्ति में। अध्यक्ष: पहली पंक्ति में? क्यों पहली पंक्ति? मैं तुम पर लेने के लिए मतलब नहीं है। दर्शकों: हो सकता है सब कुछ पूरे तालिका में? अध्यक्ष: सब कुछ में पूरे मेज, हाँ। और यह बिल्कुल सही because-- मैं है सिर्फ एक छोटा सा आप बाहर मदद कर रहा था there-- हम छोड़े गए क्योंकि जहां वैकल्पिक खंड। आप जहां नहीं है, तो खंड, इस आदेश का क्या करेंगे यह हर एक के साथ काम करेंगे है तालिका में एक पंक्ति। हर किसी का नाम होगा बन इलियट, मूल रूप से, जो इलियट के बारे में बहुत खुश है। या Yanni, दो में से एक। लेकिन हर किसी का नाम बदल जाएगा। तो जिस तरह से हम उपयोग जहां clause-- और इस Wheres के सभी पर लागू होता है में से प्रत्येक में हैं कि इन अलग अलग चीजें हैं। तो क्या आप उस सेट नोटिस देंगे स्तंभ बराबर महत्व है। और तो कहाँ है। लेकिन इन अलग हैं बयानों के प्रकार। तो स्तंभ मूल्य के बराबर होती है सेट में काम है। जैसा हम चाहते हैं कह रहे हैं इलियट के बराबर नाम स्थापित करने के लिए। लेकिन जहां खंड में, इन समानता बयान कर रहे हैं। तो चलो हम ही करना चाहते थे, हम कहते हैं इलियट के लिए व्यक्ति का नाम बदलने के लिए उनके नाम रयान था, तो हम कहते हैं। इसलिए जब हम कहते हैं जहां नाम रयान कि, के बराबर होती है सफलतापूर्वक ही बदल जाएगा name-- यह केवल होगा पंक्तियों में नाम क्षेत्र बदलने जहां नाम क्षेत्र रयान के बराबर है। तो अगर हम कई लोगों की थी रयान, उनके नाम के सभी नामित इलियट के लिए बदल जाएगा। इस उदाहरण के समान है एक गलती लाइन विभाजन की यदि न्यूयॉर्क शहर और हर किसी के लिए है न्यू हेवन के लिए हम कर सकते हैं जिस तरह से स्थानांतरित एक बयान में अद्यतन है कि ऐसा Table1 सेट गृहनगर = न्यू हेवन जहां गृहनगर न्यूयॉर्क शहर के बराबर होती है। इस की शक्ति है अद्यतन कथन। हम में से किसी भी संख्या का चयन कर सकते हैं सच बयान के माध्यम से पंक्तियों उन पंक्तियों में खेतों के बारे में। हम अद्यतन Table1 सेट नहीं कह सकता नाम = इलियट कहां पंक्ति = 1, हम आईडी = 1 कहना है कि अगर यह कर सकते हैं, सिवाय इसके कि। इसलिए हम होने जा रहे हैं समानता के साथ काम करना खेतों की, स्तंभों की समानता। लेकिन आईडी क्षेत्र का उपयोग करने के लिए एक रास्ता है विशेष रूप से अलग-अलग पंक्तियों का चयन करें, आईडी क्षेत्र एक अद्वितीय है क्योंकि एक एसक्यूएल डाटाबेस में पहचानकर्ता। तो एक पंक्ति को अद्यतन करने की तरह है, आईडी 1 के बराबर होती है। बस, पंक्ति दो अपडेट कर रहा है कि आईडी नंबर बदल जाते हैं। लेकिन बिजली कहां बयान कि हम है उसके आधार पर चीजों को अद्यतन कर सकते हैं उनके कुछ बातें की वर्तमान मान रहे हैं। इलियट हाँ? दर्शकों: और क्या आप है-- चाहते हैं फिर, यह एक और सवाल है। लेकिन मेरा पहला सवाल था, यह हो रहा है कहाँ है? मैं कहां से यह अद्यतन कर रहा हूँ? यह एक PHP कोड में है? अध्यक्ष: आप अद्यतन कहां, हाँ। हम बात करने जा रहे हैं इस बात का है जहां सभी के बारे में हम जाने की तरह एक बार होता है सभी आदेशों के माध्यम से। लेकिन तुम क्या करने की जरूरत अब मूल रूप से है के लिए पता अपने एसक्यूएल डाटाबेस है कि कुछ के रूप में मौजूद है क्वेरी द्वारा पहुँचा जा करने के लिए CS50 परिभाषित करता है जो समारोह,। आप क्वेरी समारोह का उपयोग करते हैं तो, आप इस तालिका का उपयोग कर सकते हैं। तो आप इन भेज दिया जाएगा PHP फाइलों में अपनी मेज करने के लिए आदेश क्वेरी समारोह के माध्यम से। तुम भी आसपास खेल सकते हैं अपनी मेज के साथ सीधे। और कहा कि सबसे अच्छा तरीका है आदेशों की इन प्रकार के परीक्षण। और हम वास्तव में कैसे माध्यम से जाना होगा सिर्फ एक छोटा सा में है कि क्या करना है। तो यह है कि अद्यतन आदेश है। और आदेशों के बाकी एक तरह से इसी तरह के होने जा रहे हैं, इसी तरह की चीजों पर काम कर रहे। सम्मिलित में शायद है अद्यतन से सबसे अलग। मैं वहाँ के लिए है कि ऊपर छोड़ने के लिए जा रहा हूँ यहाँ पर सिर्फ एक छोटा सा और काम करते हैं। इसलिए में डालने, आप देखेंगे उस मेज अभी भी वही है। आप में सम्मिलित करना चाहते हैं। पूंजीकरण, एसक्यूएल मामले असंवेदनशील है। तो अगर आप की जरूरत नहीं है इन बातों को भुनाने। परंपरा के अनुसार, शब्द सफेद में पूंजीकृत हैं। लेकिन मैं यह भी रंग उन्हें कोडित। आप भुनाने के ही कारण है कि उन जब आप उन्हें टाइप कर रहे हैं बस पर जोर देना है उन कि स्थिरांक हैं। और तो आप या तो पर देख सकते हैं पूंजीकरण या तथ्य कि मैं उन्हें अलग रंग का है। इसलिए हम सम्मिलित में मिल गया है चलो फिर से Table1 करते हैं। यह सब एक लाइन पर है। मैं बस से अलग कर रहा हूँ अलग-अलग बयान। तो तथ्य यह है कि के बारे में चिंता मत करो Table1 दूसरी लाइन पर इसे बनाया है। इसलिए हम सम्मिलित करना चाहते हैं कुछ मूल्यों Table1 में। और अगर आप वैकल्पिक नोटिस देंगे मैं एक सेकंड में के लिए मिल जाएगा, जो बिट,। तो हम मूल्यों मिल गया है। तो चलो हम एंडी जोड़ना चाहते हैं, हम कहते हैं हमारे टेबल के लिए, क्योंकि हम एंडी याद आती है। एंडी बीमार है। तो चलो हमारे टेबल के लिए एंडी जोड़ दें। आईडी नंबर याद रखें कि स्वचालित रूप से अद्यतन किया जाता है। केवल खेतों इसलिए हम के बारे में चिंता करने की जरूरत नाम, महाशक्ति, और गृहनगर हैं। और इसलिए हम ऐसा है कि जिस तरह से, हमारे वाक्य रचना में देख रहे हैं, हम है है सिर्फ अल्पविराम के साथ, एक कोष्ठकों मिला अलग मान, जिनमें से प्रत्येक का एक मूल्य है। तो अगर हम में एंडी डालने के लिए चाहते थे कि हमारे मेज, हमें क्या करना है सब ठीक एंडी है। एंडी की महाशक्ति क्या है, एंडी के अनुभाग में लोगों को? वह उड़ान पसंद है, या पसंद गति, या कुछ और। हम पहले से ही वहाँ क्या हो रहा है क्या? हम CS50, उड़ान है गति, और शक्ति। दर्शकों: समय यात्रा। अध्यक्ष: समय यात्रा, अद्भुत। इसलिए हम एंडी, समय मिल गया है यात्रा, और उनके गृहनगर। यह एक बहुत अच्छा सवाल है। न्यूयॉर्क शहर, जब तक किसी को जानता है। न्यू यॉर्क में है से हर कोई है सबक आज से दूर लेने के लिए। इसलिए इस बयान होगा एक पांचवीं पंक्ति के रूप में, डालें, महाशक्ति समय यात्रा के साथ और न्यूयॉर्क शहर के एक गृहनगर। लेकिन वैकल्पिक फ़ील्ड मूल रूप से एक रास्ता है वास्तव में जो कॉलम निर्दिष्ट करने के लिए आप में चीजों को सम्मिलित करना चाहते हैं। अब हम यह कर रहे हैं कि जिस तरह से, एंडी, समय यात्रा, न्यूयॉर्क सिटी, की सही क्रम में हो रहा है हमारे table-- नाम, महाशक्ति, गृहनगर। और अगर आप ऐसा करना चाहते थे उस के अलावा अन्य कुछ है, जैसे आप नहीं जानते थे कहना किसी के महाशक्ति, मैं एंडी का पता नहीं था कि कैसे की तरह शुरुआत में महाशक्ति। इतना सब मुझे पता था कि उसका था नाम है और उनके गृहनगर। मैं क्या कर सकता है मैं कर सकता है do-- मैं इस त्वरित मिटा देंगे। मैं केवल स्तंभों को अद्यतन करना चाहते हैं। और इस जहां वैकल्पिक है स्तंभ सूची खेलने में आता है। मैं केवल नाम और गृहनगर अद्यतन करना चाहते हैं। और फिर मैं मान नहीं कहेगा। मैं एंडी और न्यूयॉर्क शहर से करेंगे। मैं स्तंभों की सूची छोड़ा गया था, तो और सिर्फ इन दो बातें किया, न्यूयॉर्क शहर जहां होता चला गया? जो स्तंभ होगा न्यू यॉर्क में शहर में रखा गया है? लोगों को किसी भी विचार है? महाशक्ति, बिल्कुल। तो यह सिर्फ क्रम में जाना होगा। और यह के अंत तक पहुँच जाता है एक बार सूची, यह सिर्फ में चीजों को भरने बंद कर देंगे। और मूल्यों में यह छड़ी हूँ कि सभी स्तंभों को सिर्फ रिक्त हो जाएगा। हम निर्दिष्ट क्योंकि तो नाम और गृहनगर हम, आईडी 5 के लिए जा रहे हैं एंडी, महाशक्ति शून्य नाम। तो महाशक्ति एक शुरू नहीं मान रही है। तुम जरूरी नहीं मिलेगा एक ही वेलग्रिंड त्रुटियों अगर तुम कोशिश और इसे उपयोग। सब कुछ अच्छी तरह से चुना हो जाएगा बाहर, नल एसक्यूएल में एक मूल्य है। यही कारण है कि एक स्थिर है। और फिर गृहनगर न्यूयॉर्क शहर हो जाएगा। तो यह है कि आदेश में सम्मिलित है। हम बढ़ने से पहले, वहाँ दो और आदेशों। लोगों के बारे में किसी भी सवाल है अद्यतन, सम्मिलित में के बारे में, एसक्यूएल के बारे में आम तौर पर हम आगे बढ़ने से पहले हमारे अंतिम बिट्स पर? लोग महान, अच्छा लग रहा है। इसे प्यार करना। तो चलो चयन के बारे में बात करते हैं। यहाँ पर खाई अद्यतन जा रहे हैं। और चयन बहुत ही किया जा रहा है। चयन का लक्ष्य है, जीवन में चयन के उद्देश्य आप स्तंभों का एक गुच्छा दे रहा है कि कुछ शर्तों को पूरा करना। और मैं संतुष्ट कहना है कि जब कुछ शर्तें, अपने मन तुरंत हो सकता है कहां खंड है कि करने के लिए वापस जाना अद्यतन में आया था। और कहा कि खंड है वास्तव में वहाँ का चयन करें। हम जहां डाल नहीं है खंड और हम चुनें नाम कहते हैं, hometown-- एक छोटे कि वर्तनी wrong-- नाम, Table1 से गृहनगर। हम सिर्फ इतना है कि कहते हैं, क्या चयन हमें देने के लिए जा रहा है यह है हमें एक देने जा रहा बल्कि, एक मेज double--। एक डबल सरणी हम कर रहे हैं पीएचपी होश में के बारे में सोच रही है। लेकिन यह सिर्फ हमें एक देने जा रहा है दो columns-- नाम की डबल सरणी, और गृहनगर। और यह आईडी की अनदेखी करेंगे। और यह महाशक्ति की अनदेखी करेंगे। और यह सिर्फ हमें हर दे दूँगा उस मेज के एकल पंक्ति। हम सिर्फ डाला तो अगर एंडी, हम एंडी होगा। और हम मूल चार होगा। वे अद्यतन किया गया है, कि करेंगे परिलक्षित होना, वगैरह, वगैरह। तो यह है कि हम क्योंकि कहां खंड का उपयोग नहीं किया। लेकिन हम वास्तव में में इसका इस्तेमाल कर सकते हैं एक ही तरीका है कि हम अद्यतन में इसका इस्तेमाल किया। हम केवल नाम की एक तालिका चाहते हैं और लोगों की सुपर शक्तियों के रहने वाले न्यूयॉर्क में, हम एक बयान निष्पादित कर सकते हैं चयन नाम की तरह, superpower-- मैं बस से that-- छोड़ने के लिए जा रहा हूँ Table1 कहां गृहनगर = न्यूयॉर्क सिटी। तो यह आप कर सकते हैं कि दिखाने के लिए चला जाता है पूरी तरह से अलग कॉलम मिलता है, और फिर तुम नहीं हो कि कॉलम डाला यहां तक ​​कि वापस कहां खंड में हो रही है। हम भी नहीं करना चाहते हैं हर किसी के गृहनगर। लेकिन हम नाम चाहते हैं और लोगों की महाशक्ति जिसका गृहनगर न्यूयॉर्क शहर है। तो कुछ है कि हम जहां के साथ क्या कर सकते हैं खंड हम कॉलम के साथ सौदा कर सकते है हम जरूरी वापस नहीं करना चाहती है। अद्यतन में उसी तरह, हम सौदा कर सकते हैं कि कॉलम के साथ हम जरूरी नहीं है अद्यतन करना चाहते हैं। हम हर किसी के शहर अद्यतन कर सकते हैं कौन नाम है, उदाहरण के लिए, सैम है। हम के शहर अद्यतन कर सकते हैं जिसका आईडी नंबर हर किसी को 2 है। तो बस अद्यतन दूसरी पंक्ति के शहर हम से निपटने के लिए नहीं है, जहां आवश्यक आम सवाल। और जैसा कि आप चाहते हैं, हटाना Table1 से हटाएँ, उम्मीद है। और फिर हम एक और कहां खंड मिल गया है। तो हम कहाँ आईडी = 1 कह सकते हैं। पहली पंक्ति हटाएं। और हमेशा एक पंक्ति को हटाना होगा हटाएँ, या यह पंक्तियों की कुछ संख्या को हटाना होगा। तालिका कहां से हटाएं गृहनगर = न्यूयॉर्क शहर न्यूयॉर्क शहर में हर किसी को हटाना होगा। एक नहीं था कि अगर अचानक दुखद प्लेग और तुम सिर्फ दूर करना चाहता था मेज से हर कोई है जो किसी नगर में रहते थे उस बीमारी से मारा गया था। वे चिरशांति प्राप्त कर सकें। इन चार एसक्यूएल कमांड कर रहे हैं कि आप का उपयोग करने की आवश्यकता होगी। आप भी उन सब का उपयोग जरूरत नहीं होगी। लेकिन इन चार हैं CS50 आप को उम्मीद है कि में जाने के साथ सहज होने के लिए प्रश्नोत्तरी 1 और भी pset7 और pset8 दोनों। सिर्फ इतना है कि तालिका में फिर से नहीं है। इस एक में, रॉय की महाशक्ति है लेजर बीम में अद्यतन किया गया है, जो मैं का उपयोग नहीं किया एक उदाहरण है। मैं नहीं जानता कि जो एक रॉय पसंद करते हैं, लेकिन ताकत। रॉय ताकत का एक महाशक्ति है। कैथरीन यह आज नहीं बना था। बदकिस्मती से। लेकिन वह सुपर गति है। अच्छा है कि पीएचपी था। हम MVC के बारे में बात करने से पहले करता है, किसी को भी पीएचपी के बारे में प्रश्न हैं? अब एसक्यूएल, या पीएचपी आप अचानक अगर आपके पास PHP के बारे में एक प्रश्न के साथ आते हैं? अच्छा है। ठीक है, हम सब तो सेट कर रहे हैं। तो एक छोटा सा बात कर मॉडल दृश्य नियंत्रकों के बारे में, चलो कुछ के लिए वापस जाओ pset7 में सामान की। तो क्या मॉडल देखें नियंत्रक मैं नहीं हूँ है- लॉगिन करने के लिए अपने परिवर्तनों को बचाने के लिए जा मैं पूरी तरह से यह हत्या की वजह। लेकिन मूल रूप से हम दो हैं अलग बातें चल रहा है। हम एक सार्वजनिक है जो होता है निर्देशिका क्रियान्वित किया जा रहा है कि कोड और दौरा किया जाएगा कि वेब पृष्ठों की है। और हम भी इस विचारों निर्देशिका है। और विचारों टेम्पलेट्स शामिल हैं। यह क्या कार्य है render-- हम प्रस्तुत करना देखा PHP कोड का एक गुच्छा में समारोह कि CS50 पहले से ही आप के लिए लिखा गया है कि कुछ मापदंडों में लेता है। क्या है कि कोड से कर रही है यह विचारों में जा रहा है, के सेट की तरह जो prewritten एचटीएमएल कोड, और यह मूल्यों डालने है कुछ स्थानों में। यह कैसे होता है जब आप CS50 वित्त में जाना है, एक ही हेडर हर पृष्ठ पर है। एक ही पाद हर पृष्ठ पर है। क्योंकि इस तरह है काम करता है प्रस्तुत करना है कि यह जाएगा स्वचालित रूप से उस शीर्षक में पैच और आप विचारों में मिल सकता है, जो दर्शक। हम वास्तव में शीर्षक में जाना है, और कर सकते हैं देखो, यह एक सिर के साथ एक HTML फ़ाइल है। यह कुछ स्टाइलशीट मिल गया है। आप सीएसएस को देखने की जरूरत नहीं है pset7 के लिए आप नहीं करना चाहते हैं। लेकिन अगर आप संशोधित कर सकते हैं उन्हें आप चाहते हैं, तो सुनिश्चित अपने वित्त के एक छोटे से अलग दिखते हैं। यह कुछ PHP में मिल गया है एक सा देखने के लिए हैडर एक अलग शीर्षक है कि अगर वहाँ यह इस शीर्षक में डाल देना चाहिए। लेकिन अभी कुछ अन्य लिपियों, और लिंक, और अन्य चीजें। हेड उफ़ समाप्त हो जाती है, शरीर शुरू होता है, और, हम इस अजीब सा अंत सा है। और बस की तरह, एक div वहाँ तत्व का एक निराकार प्रकार कि बीच के एक विचार है। और फिर हम, पाद जब देखते हैं हम एक div का अंत है। हम है, जो एक नीचे है जहां पाद लेख पाठ है। Div, शरीर के अंत में, एचटीएमएल के अंत के अंत। तो क्या प्रस्तुत करना है प्रस्तुत करना है कर रहा तरह है हैडर पट्टी की, एक अलग PHP फ़ाइल है कि वास्तविक बातें शामिल होंगे आप शेयरों की अपनी मेज की तरह, देखने करेंगे अगर आप शेयरों की खरीद या बेच रहे हैं। और फिर यह पाद लेख में जोड़ देंगे। और मॉडल देखें नियंत्रक विचार है कि हम है कैसे अलग करना चाहते हैं बातों के कोड से देखो। यह हम दृश्यपटल अलग करना चाहते है और दृश्यपटल बैकएंड है, जहां उपयोगकर्ता देखता है कि सामान, अच्छा visuals-- एचटीएमएल, सीएसएस, इस तरह बातें, छवियों, वगैरह। और बैकएंड पीएचपी है। यह है कि आप लिखने कोड है। कोड है कि जहां यह है वास्तविक संचालन कर रही है। आप जोड़ रहे हैं जब यह वह जगह है अपनी मेज पर एक शेयर, जब आप खरीद रहे हैं और बिक्री, कि बैकएंड है। और हम तुम्हें देखा, के रूप में एचटीएमएल में सीधे पीएचपी भी शामिल है। हम के लिए किया जा सकता है तो क्या हुआ इस काम सिर्फ था है लॉगिन तरह प्रत्येक पृष्ठ के लिए एक HTML फ़ाइल,। और फिर उस पृष्ठ पर, बस , पीएचपी कोड का एक बड़ा ब्लॉक था कोड के सभी सहित कि उस पृष्ठ विशेष रूप से की आवश्यकता होगी। और फिर हम कर सकते थे पोर्टफोलियो के लिए जो कुछ किया। हम खरीद के सभी कर सकता था और अलग-अलग पृष्ठों के भीतर बेच रही है। लेकिन हम प्रतिपादन कर रहे हैं क्योंकि अलग से जहां से हम बैकएंड लिख रहे हैं कोड, हम आसानी से कर सकते हैं चीजों के बिना कैसे लग बदल हर एक फ़ाइल बदल रहा है। हम बस जोड़ने की तरह बातें नीचे करने के लिए एक नया div हैलो of-- मैं पाद संशोधित। आप बस ऐसे ही चीजें कर सकते हैं। लेकिन यह भी, आप बदल सकते हैं पूरे दृश्य लेआउट प्रभावित किए बिना क्या है बैकएंड में जा रहा है। और आप बदल सकते हैं पूरे बैकएंड और अभी भी यह पहले किया था की तरह लग रही है। इस मॉडल देखें नियंत्रक का विचार है। और यह वास्तव में एक लगाया प्रतिमान है प्रोग्रामिंग भाषाओं में से कुछ में आप उपयोग करना चाहते हो सकता है अंतिम परियोजनाओं के लिए। आप आईओएस विकास करते हैं, वे विचार हैं, आप iPhone पर देखते हैं, और जो है क्या तो एक अलग बात की तरह के रूप में बैकएंड। आप एक छोटा सा के बारे में सोच सकते हैं। बायनेरिज़ का एक बहुत में नहीं है हास्यास्पद है जो कंप्यूटर विज्ञान, सब कुछ बाइनरी में है, क्योंकि। मुझे लगता है कि योजना नहीं थी। यही कारण है कि एक यमक अनपेक्षित था। हाँ, यमक इरादा नहीं है। लेकिन ज फ़ाइलें और ग फ़ाइलों की तरह नहीं है, चीजों की अलग करने का एक बहुत है कि हम जरूरत नहीं होगी। तो हम बस ज फ़ाइलों को संपादित कर सकते हैं या किसी को सिर्फ एक ज फ़ाइल देख सकते हैं और पता कर सकते हैं में हैं कि वास्तव में कार्य करता है जरूरी जानने के बिना ग फ़ाइल उनके क्रियान्वयन। अलग होने के घटकों का यह विचार एक-दूसरे पर निर्भर करती है कि लेकिन एक तरह से एक दूसरे को एक्सेस कर सकते हैं विभिन्न चैनलों के माध्यम से गुजर चर का, बस बयान, बातें शामिल ऐसे ही, इस सिद्धांत आवेदन पत्र बनाने में मदद करता है कि और अधिक आसानी से किया जा सकता है कई लोगों द्वारा संपादित और अधिक आसानी से बदला जा सकता है या एक बड़े पैमाने पर संशोधित, और आसान कर रहे हैं तरीके का एक बहुत में डिबग। बहुत जल्दी, मेरे पास है pset7 के लिए कुछ सुझाव दिए गए, जो मैं पूर्ण स्क्रीन यदि आप ऐसा नहीं कर दूँगा सिर्फ the-- टिप टिप Tippee पर देख रहे हैं। कई सुझाव है कि वहाँ नहीं कर रहे हैं। लेकिन मैं PHP डिबग करने के लिए कठिन है उल्लेख किया है। यह जाँच डबल और ट्रिपल। अपने कोड में अभी नहीं है पेज पर दिखा, यह खेद है, शायद एक PHP त्रुटि है। आप को देखने की जरूरत कभी नहीं सीएसएस आप नहीं करना चाहते हैं। आप समाप्त कर रहे हैं लेकिन, एक बार यह हो सकता है एक अच्छा सा मजेदार बात यह है कि बस में जाने के लिए और सीएसएस मानकों के साथ गड़बड़। सीएसएस और एचटीएमएल एक मॉडल का एक उदाहरण है दृश्य नियंत्रक शैली बात भी है, है ना? आप शैली टैग हो सकता था HTML तत्वों के अंदर। लेकिन अगर आप की तरह सीएसएस के लिए उन्हें आउटसोर्सिंग, वे संपादित करने के लिए आसान कर रहे हैं, और खेलने चारों ओर के साथ, और साथ मजाक किया है। CS50 सहायक समझो ब्लैक बॉक्स के रूप में कार्य करता है। तुम्हें पता करने की जरूरत नहीं है वास्तव में क्या कर रहा है प्रस्तुत करना, लेकिन हमेशा सही करने के लिए यह विश्वास आप इसे पारित आधार पर क्या बात है, इस तरह से बातें। और मुझे लगता है की सिफारिश करेंगे दाऊद का पूर्वाभ्यास देख रहा है, के माध्यम से जाने वाले सभी सामान नहीं है, बस सब, लेकिन क्या तुम सच में इलाज कर सकते हैं इन के रूप में काले बक्से। इन में मत जाना कार्यों के कीड़ों के लिए देख रहे हैं। और वापसी का स्वागत हमारे अधिपति Zamyla की। अच्छा है। किसी भी अंतिम सवाल से पहले देखते हैं हम की तरह दिन के लिए उछाल? मैं अभी भी जीवित रहा हूँ? अच्छा है। हाय Livestream लोग। अच्छा है। सवाल अब भी हैं? नहीं? और फिर मैं हम कर रहे हैं आज के लिए जाने के लिए अच्छा है। मैं थोड़ा के आसपास रहना होगा लोग सवाल किया था बाद में यदि वे धारा पर पूछने से डरते थे। लेकिन अन्यथा, एक अच्छा दिन है।