[Powered by Google Translate] [Walkthrough समस्या सेट 7] [Zamyla चान] [हार्वर्ड विश्वविद्यालय] [यह CS50] [CS50.TV] सभी को नमस्कार, और 7 Walkthrough, CS50 वित्त में आपका स्वागत है. अब हम CS50 में आधिकारिक तौर पर कर रहे हैं psets के सभी के साथ किया है, और हम सिर्फ एक है जो एक मजेदार कार्यान्वयन किया जा रहा है साथ छोड़ रहे हैं एक वेबसाइट है जहाँ उपयोगकर्ताओं में CS50 वित्त करने के लिए लॉग इन कर सकते हैं और खरीदने और बेचने के शेयरों. आज, हम अपने निपटान में कुछ उपकरणों के लिए जा रहे हैं. हम करने के लिए अनुमति के बारे में बात कर रही हो जा रहे हैं. जब भी आप एक वेब फ़ोल्डर है, आप करने के लिए उपयोगकर्ताओं को कुछ फ़ाइलों को निष्पादित करने के लिए अनुमति देना चाहते करने के लिए जा रहे हैं लेकिन यह भी सिर्फ अन्य लोगों को पढ़ने के लिए, तो हम अनुमतियाँ में देखो और आप उन कैसे सेट कर सकते हैं. फिर हम PHP, HTML, और SQL कोड में देखने जा रहे हैं. पहले अनुमति,. , जब आप एक निश्चित निर्देशिका में टर्मिनल में कर रहे हैं तो आप क्या करना चाहते है आप chmod कमांड चलाना चाहते हैं. कि या तो अक्षर या संख्या के द्वारा पीछा किया है क्या आप मूल रूप से दुनिया को देखने के लिए करना चाहते हैं इसी तुम अपने आप को देखने के लिए, आदि उदाहरण के लिए, जब भी आप एक फ़ोल्डर है तो आपको लगता है कि फ़ोल्डर है कि हर किसी को यह देखता है द्वारा निष्पादन योग्य होना चाहते हैं, तो आप क्या करेंगे क्या है आप आदेश chmod + x चला सकता है और फिर अपने फ़ोल्डर का नाम. जब आप सीएसएस फ़ाइलों या छवि फ़ाइलों के रूप में एक फ़ाइल है - JPEGs और बिटमैप, कि चीजों की तरह, या किसी भी जावास्क्रिप्ट कोड की तरह - आप चाहते हैं कि हर किसी के द्वारा पठनीय हो, ऐसा है, तो आप क्या करते हैं आप वाइल्डकार्ड का उपयोग कर सकता है - जो एक asterisk है - उस फ़ोल्डर में सब कुछ करने के लिए मूल रूप से सीएसएस फ़ोल्डर में संकेत मिलता है -  मैं कहना है कि हर किसी के द्वारा पठनीय होने जा रहा है करने के लिए जा रहा हूँ. अनुमति के साथ, जब हम पत्र का उपयोग हम भी संख्या के बजाय का उपयोग कर सकते हैं. तो, आप देखते हैं कि अंततः जब आप एक्सक्यूटेबल होना करने के लिए कुछ करना चाहते हैं - कि एक संख्या से प्रतिनिधित्व किया है - कुछ पठनीय हो संख्या 4 और फिर है - लिखने योग्य 2 नंबर है - और इसलिए अनिवार्य रूप से जब आप उन में से एक संयोजन करना चाहते हैं, तो आप उन्हें जोड़ने के. , यदि आप कुछ करना चाहते हैं पठनीय, लिखने योग्य निष्पादन, और हो तो आप 4, 2, और 1 जोड़ सकते हैं और चाहते हैं कि तुम 7 देना होगा, तो जब भी आप एक फ़ोल्डर है आप चाहते हैं कि हर किसी के द्वारा कार्यान्वित नहीं किया जा के रूप में के रूप में अच्छी तरह से पठनीय और लिखने योग्य - तो तुम कि 7, 1 1, बनाते हैं. कि आप के लिए 7 हो सकता है, तो अन्य लोगों के लिए 1. जब आप कल्पना है, यह वास्तव में जो फ़ोल्डर्स और फ़ाइलों जो निर्दिष्ट करेंगे chmod एड विशेष रूप से होने की जरूरत है. उदाहरण के लिए, जब आप फ़ोल्डर्स है - उन 7-1-1 कर रहे हैं - जब आप छवियों या HTML, सीएसएस, जावास्क्रिप्ट, या 6, 4, 4 - तो उन लोगों के लिए 6, 4 0 हो जा रहे हैं - और फिर PHP फाइलों के लिए 6, 0 0 होने जा रहे हैं. विचार है कि पीछे है कि उपयोगकर्ताओं को वास्तव में अपने PHP कोड नहीं देखना चाहिए, लेकिन सिर्फ उत्पादन को देखने के लिए सक्षम हो. महान! PHP में चल रहा है. बस, जब भी आप एक PHP फ़ाइल चाहते हैं, फ़ाइल प्रत्यय है. Php. तुम भी HTML PHP कोड के साथ मिश्रण कर सकते हैं. यदि आप एक HTML फ़ाइल है, उदाहरण के लिए है, तो आप यह बायाँ कोण, प्रश्न चिह्न, php के साथ बंद कर सकते हैं - अपने php कोड डाल दिया और फिर एक और प्रश्न चिह्न और एक सही कोण के साथ है कि करीब. PHP में चर एक बहुत आसान सी में चर की तुलना के साथ सौदा कर रहे हैं किसी भी चर सिर्फ इसे के सामने में एक डॉलर के हस्ताक्षर के साथ शुरू होता है, और वे कमजोर टाइप कर रहे हैं. इसका मतलब है कि आप कुछ स्थापित करने के बारे में चिंता की जरूरत नहीं एक स्ट्रिंग या एक पूर्णांक के बराबर. तुम बस कह सकते हैं, इस चर के मेरा नाम है और फिर यह अपने मूल्य है, तो यह आसान करने के लिए वहाँ के साथ सौदा होने जा रहा है. एक और बात यह है कि आप PHP साहचर्य arrays का उपयोग करने की अनुमति देता है. तुम बस की तरह आप सी में एक सरणी को परिभाषित कर सकते हैं कह रही है, डॉलर के हस्ताक्षर के नाम सरणी के बराबर होती है, और फिर वर्ग कोष्ठक में मूल रूप से बस सरणी में सभी तत्वों के मूल्यों की सूची है. लेकिन, PHP में क्या आप भी कर सकते है कि मूल रूप से निर्दिष्ट - यह एक हैश समारोह की तरह की तरह है. तुम सूचकांक निर्दिष्ट कर सकते हैं - क्या आप इसे कॉल करने के लिए जा रहे हैं - और फिर है कि एक मूल्य से मेल खाती है. यदि आप वास्तव में एक = 1, बी 2, सी = 3 में पारित फिर सूचकांक में अपने सरणी आप 1 देना होगा. इस pset आप गर्म करने के लिए सवालों की एक खंड में कुछ PHP के साथ, और फिर हम CS50 वित्त में गोता. हम की एक जोड़ी है - हम कुछ कार्यक्षमता है, मूल रूप से, इस वेबसाइट में लागू करने के लिए. हम उपयोगकर्ताओं को हमारी वेबसाइट में एक उपयोगकर्ता नाम और पासवर्ड के साथ रजिस्टर करने की अनुमति चाहते हैं. हम उन्हें एक बोली देखने की अनुमति चाहते हैं, और फिर हम बाहर है कि बोली के नाम के रूप में के रूप में अच्छी तरह से वर्तमान कीमत है कि यह प्रिंट होगा. हम उन्हें शेयरों कि वे इस प्रकार अब तक खरीदा है सभी का एक पोर्टफोलियो को देखने के लिए अनुमति देना चाहते हैं. हम भी उन्हें शेयरों को खरीदने के लिए के रूप में के रूप में अच्छी तरह से उन्हें बेचते हैं की अनुमति चाहते हैं. और फिर अंत में, हम उन्हें इतिहास को देखने के लिए अनुमति देना चाहते हैं लेनदेन कर दिया है कि वे सभी के. फिर, अंत में, के बाद आप उस के सभी क्रियान्वित किया है, तो आप के लिए एक अतिरिक्त सुविधा को लागू करने के लिए स्वतंत्र हैं. हम उन लोगों में जाना होगा. वे या तो अनुमति उपयोगकर्ताओं के लिए अतिरिक्त नकदी जमा करने से अतिरिक्त नकदी प्राप्त कर सकते हैं, या आप उन्हें अपने पासवर्ड, या उस तरह कुछ बदलने के लिए अनुमति दे सकता है, उन्हें एक रसीद है जब वे खरीदने या बेचने के एक शेयर ईमेल. वहाँ सुविधाओं है कि आप अपने आप को लागू कर सकता है की एक सीमित सूची है, इतना है कि वहाँ पिछले एक है. चूंकि यह एक वेबसाइट है, तुम लोगों को भी स्वतंत्रता की एक बहुत कुछ करने के लिए इसे अनुकूलित है. हम कुछ सीएसएस कोड प्रदान करते हैं, लेकिन आप निश्चित रूप से कर रहे हैं यह tweak करने के लिए स्वतंत्र हैं, इसे बनाने के लिए अच्छे लग रहे हैं, लेकिन यह एक बुनियादी कार्यक्षमता अंतर्निहित है तो हमेशा क्या आप वास्तव में वहाँ शामिल करने की ज़रूरत के बारे में कल्पना करने के लिए देखें. कल्पना के बाद, हम करने के लिए एक सर्वर के रूप में भी उपकरण का उपयोग किया जा रहे हैं. यह हमारे लिए हमारी वेबसाइट की मेजबानी अपने स्थानीय सर्वर पर किया जा रहा है. यदि आप इन निर्देशों का पालन करें और pset 7 वितरण कोड खोलना अपने आभासी मेजबान मेजबान / स्थानीय फ़ोल्डर में,  तो आप सिर्फ उपकरण में गूगल क्रोम में http://localhost/ यात्रा कर सकते हैं, और फिर तुम कोड में आप pset 7 लिखा है तक पहुंच जाएगा. 7 Pset वितरण कोड का एक गुच्छा के साथ आता है, और उम्मीद है कि we 've - इस से पहले psets के सभी के माध्यम से - हमें वितरण कोड के माध्यम से पढ़ने के आदी रहे हैं, समझ क्या कार्य पहले से ही प्रदान की जाती हैं, और हम कैसे का उपयोग करने में सक्षम हो सकता है उन लोगों और अन्य कार्य करता है कि हम करने के लिए लागू किया जा रहे हैं. इस मामले में, हम 3 फ़ोल्डर्स है. हम एक HTML फ़ोल्डर, एक फ़ोल्डर शामिल है, और एक टेम्पलेट्स फ़ोल्डर है. हम इस pset के साथ कर रही हो जा रहे हैं, क्या सोच अलग करने की तरह है - PHP कोड का वास्तविक दृश्य पहलू के साथ - प्रोग्रामिंग सोच रही है. हम एक PHP फ़ाइल है कि सोच के सभी करता है, डेटाबेस में पढ़ता हूँ, चीजें बाहर प्रिंट है, अगर बयान कि चीजों की तरह - या template.php फ़ाइल - और तो यह है कि हमारे टेम्पलेट फ़ाइल में डेटा पारित करेंगे. क्या क्या करेंगे कि डेटा पढ़ा जाता है और फिर इसे इसे बाहर प्रिंट जाएगा. हम में है कि हम वास्तव में उन्हें नहीं करना चाहता "गूंगा" के रूप में टेम्पलेट्स का इलाज कर सकते हैं बातें की गणना में काम का एक बहुत कुछ कर रही हो. हम हमारे नियंत्रकों कि करने के लिए करना चाहते हैं. उस पर थोड़ा - वितरण कोड के कुछ पर एक नज़र रखना. यहाँ हम हमारे index.html फ़ाइल है, और यह बहुत खाली है. मूलतः यह क्या करता है - यह कहते हैं, ठीक है, मैं लिए configuration.php फ़ाइल की आवश्यकता के लिए जा रहा हूँ. हम जानते हैं कि वहाँ नहीं दिख रहा है, लेकिन यह मूलतः configuration.php फ़ाइल बुला रहा है, और कहा कि क्रियान्वित. के बाद यह है कि, यह पोर्टफोलियो प्रदान करने के लिए जा रहा है. प्रतिपादन एक समारोह है, इसलिए जब भी हम एक नियंत्रक में कर रहे हैं, हम सौंपनेवाला कॉल करेंगे, हम यह फाइल दे और फिर डेटा है कि हम गुजर रहे हैं, इतना है कि यह कि डेटा में पास की portfolio.php प्रकार में फोन इतना है कि पोर्टफोलियो उस के साथ सौदा कर सकते हैं. और अब, यहाँ, हम हमारे login.php रूप है.  इस नियंत्रक है कि मूल रूप से अंदर लॉगिंग का ख्याल रखता है यहाँ, यह जाँच करता है कि अगर एक फार्म प्रस्तुत मान्य के साथ इस फ़ाइल और सौदों के लिए प्रस्तुत की गई थी. हम इस माफी माँगता हूँ समारोह में देख लेंगे. , जब हम एक त्रुटि संदेश मुद्रित करना चाहते हैं हम क्षमा चाहते हैं का उपयोग करें और है कि एक विशेष पेज के लिए उपयोगकर्ता अनुप्रेषित करेगा कि विशिष्ट त्रुटि संदेश है कि हम से संकेत मिलता है प्रिंट होगा. पर सतत्, यह डेटाबेस क्वेरी करेगा - we'll कि अधिक में बाद में मिल. तो आप देखते हैं कि यहाँ नीचे अगर एक रूप नहीं प्रस्तुत किया गया है, तो यह एक फार्म renders. इसका मतलब है कि है कि यह login_form.php करने के लिए चला जाता है, तो हम उस पर विचार. Login.php वास्तव में है जहां हम वास्तविक दृश्य पहलू के साथ HTML निपटने देखते. यहाँ हम उपयोगकर्ता नाम, पासवर्ड के लिए एक इनपुट के लिए एक इनपुट टैग है, के रूप में अच्छी तरह से एक बटन सबमिट करें. यह वास्तव में है, जहां दृश्य पहलू और HTML फार्म के लिए आयोजित किया जा रहा है. यहाँ, इसे कहते हैं, पोस्ट कहा जाता है कि यह एक निश्चित विधि द्वारा प्रस्तुत किया जा रहा है. हम तरीकों के बीच मतभेद में मिलेगा - पोस्ट बनाम प्राप्त करने के लिए, वहाँ भी कुछ डाल कहा जाता है - हम उन तरीकों में बाद में मिल कर देंगे, लेकिन इस pset के हित के लिए, मैं अत्यधिक तुम पोस्ट का उपयोग करने के लिए प्रोत्साहित करेगा. हम जानते है कि मूल रूप से एक बार इस फार्म प्रस्तुत है - से login_form.php तो यह कार्रवाई करने के लिए जाना जाएगा - login.php - मूलतः login.php में उन सभी मानकों में उन रूपों से गुजरती हैं. उस रूप से परिणाम इस पोस्ट साहचर्य सरणी के भीतर समाहित कर रहे हैं. पोस्ट सरणी में विभिन्न तत्वों के अनुक्रमित वास्तव में आप क्या यहाँ निर्दिष्ट हैं. आप कहते हैं कि इस इनपुट के नाम USERNAME है. इस एक के नाम और पासवर्ड है. इसी तरह, आप साहचर्य सरणी के सूचकांक के रूप में उपयोगकर्ता नाम देखते हैं. यदि हम फ़ोल्डर शामिल करने के लिए जाते हैं, हम इस कार्यों फ़ाइल जो बहुत उपयोगी होने जा रहा है. इन सभी कार्यों के लिए लागू कर रहे हैं. आप के लिए विशेष रूप से अपने आप को इन के किसी भी लागू करने की जरूरत नहीं है, लेकिन वे काफी उपयोगी करने के लिए जा रहे हैं. हमें खेद है, जो जैसा कि मैंने पहले कहा, मूल रूप से एक त्रुटि संदेश मुद्रित करेगा apology.php - आप के लिए एक विशेष पृष्ठ पर. तो फिर हम डंप है, इसलिए यदि आप सिर्फ डंप कॉल और फिर चर में पारित तो यह आपको एक पृष्ठ है कि आप के लिए है कि चर प्रदर्शित करेगा लाएगा. तो फिर हम लॉगआउट है, जो मूल रूप से एक निश्चित उपयोगकर्ता के सत्र का अंत हो जाएगा. देखने के लिए उपयोगी होने जा रहा है. के बाद से हम उद्धरण और शेयरों के साथ काम कर रहे हैं, हम करने के लिए सक्षम होने के लिए जा रहे हैं - और यह अनिवार्य रूप से वास्तविक समय है. हम पता करने के लिए क्या कर रहे हैं उन शेयर मूल्यों की जरूरत है, तो हम देखने का समारोह जो शेयरों की याहू के दस्तावेज के साथ संबंधित है. एक बार जब आप एक शेयर की एक निश्चित प्रतीक देखो, यह आप स्टॉक प्रतीक वापस आ जाएगी के रूप में अच्छी तरह नाम और कि शेयर की मौजूदा कीमत के रूप में. यह देखने का समारोह है. तो फिर हम MySQL के साथ काम कर रहे हैं, तो हम करने के लिए हमारे SQL डेटाबेस पर कुछ क्वेरी को निष्पादित करने के लिए चाहते हो जा रहे हैं. हम सौदा प्रश्न किया है कि बाहर के कुछ सार की तरह. हम हमारे एसक्यूएल क्वेरी के पूरे स्ट्रिंग में पारित हो जा रहे हैं - और चर कि उस में जाने के सभी - और यह क्या करता है वास्तव में हमारे लिए कि निष्पादित. इस सब के बाहर हर समय है कि आप क्वेरी के लिए चाहते लिखने होने के बजाय - उस क्वेरी से परिणामों के सभी हो रही द्वारा - तो आप सिर्फ क्वेरी समारोह कॉल कर सकते हैं, और यह आप के लिए वापस कर देंगे - तुम क्या आपकी क्वेरी के लिए प्रयोग कर रहे हैं पर निर्भर करता है - शायद परिणाम है कि क्वेरी या इसी तरह के मैच की सभी की एक पंक्ति है. उस पर बाद में हालांकि. अंत में, हम अनुप्रेषित जो, जैसा कि नाम से पता चलता है, तो आप एक अलग पृष्ठ पर रीडायरेक्ट है. और फिर हम प्रस्तुत करना है, जो हम करने के लिए समय की एक जोड़ी बुला रहे हो जा रहे हैं. जब आप एक नियंत्रक में कर रहे हैं, आप टेम्पलेट पेज में प्रस्तुत करना कहते हैं और तो मूल्यों में पारित कि टेम्पलेट फिर साथ सौदा होगा. उन मूल्यों शायद उत्पादन के प्रकार है कि आप चाहते हैं के साथ काम किया जा रहे हैं अपने टेम्पलेट पृष्ठ पर दिखाया जा सकता है. ठीक है. वे कार्य कर रहे हैं, और वहाँ इस वितरण कोड के लिए एक बहुत अधिक है. मैं आप इस के माध्यम से जाने के लिए और यह अपने आप का पता लगाने के लिए प्रोत्साहित करते हैं. इसके अलावा, कल्पना शायद आप वितरण कोड के कुछ अन्य तत्वों के माध्यम से चलना होगा. यहाँ functions.php में पाए जाने वाले कार्यों का एक सारांश है. ठीक है. पहला काम करने के लिए उपयोगकर्ताओं को वेबसाइट पर रजिस्टर करने की अनुमति है. अभी, वहाँ वेबसाइट पर एक प्रवेश फार्म है, और आप पासवर्ड के साथ कुछ उपयोगकर्ताओं के साथ प्रदान की जाती हैं. आप उन उपयोगकर्ता नाम का उपयोग करने के लिए और में लॉग इन कर सकते हैं, लेकिन आप लोगों को उनके अपने उपयोगकर्ता नाम बनाने के लिए अनुमति देना चाहते हैं और खुद को वेबसाइट के लिए जोड़. पंजीकरण के लिए लेआउट सुंदर प्रवेश फार्म के लिए इसी तरह की है, को छोड़कर पूर्व मौजूदा उपयोगकर्ता नाम नहीं है, और उपयोगकर्ता को भी एक नया पासवर्ड प्रदान करने की जरूरत है, और तो आम तौर पर हम एक पासवर्ड की पुष्टि की है. एक बार जब उपयोगकर्ता इनपुट कि सूचना के सभी, हम उन उपयोगकर्ताओं के हमारे डेटाबेस को जोड़ना चाहते हैं. एक SQL डेटाबेस - हम एक डेटाबेस के लिए जा रहे हैं - कि हम संदर्भ के लिए जा रहे हैं. कि डेटाबेस में, हम सभी उपयोगकर्ताओं के साथ एक टेबल है उनका उपयोक्तानाम, उनके पासवर्ड, और भी कितना नकद वे युक्त. रजिस्टर में, हम उन्हें कि जानकारी दर्ज करने की अनुमति देना चाहते हैं. हम उस फार्म का प्रदर्शन करना चाहते हैं. हमें यकीन है कि उनके पासवर्ड बनाना चाहते हैं - कि वे एक में प्रवेश किया, और फिर यह भी है कि पासवर्ड मैच जब वे इसे दो बार दर्ज. कि के सब के बाद किया जाता है - यह सोचते हैं कि उन त्रुटियों की जाँच कर रहे हैं - तो हम हमारे डेटाबेस में उन उपयोगकर्ताओं को जोड़ने के लिए करना चाहते हैं. अंत में, एक बार आप पंजीकृत है, यह बहुत सुविधाजनक है अगर आप फिर से लॉग इन करने की जरूरत नहीं है एक बार आप पंजीकृत किया है, तो हम उन्हें वेबसाइट में लॉग इन करने के लिए जा रहे हैं अगर वे सफलतापूर्वक में पंजीकृत है. पहला काम के लिए फार्म का प्रदर्शन है, और यह वास्तव में होने जा रहा है - इस पूरे पंजीकरण प्रक्रिया को बहुत बारीकी से प्रवेश के बाद modeled किया जा रहा है बजाय login.php के अलावा आप register.php हो सकता है. इसके बजाय login_form.php जिनमें से टेम्पलेट है - आप प्रपत्र रजिस्टर करना होगा. एक पासवर्ड की पुष्टि क्षेत्र - तुम एक और क्षेत्र को जोड़ने के लिए चाहता हूँ - बजाय सिर्फ एक उपयोगकर्ता नाम और एक पासवर्ड के. अगला, हम करने के लिए जाँच करें कि क्या पासवर्ड मैच या खाली हैं चाहता हूँ. Register.php - जो इन जाँच कर का ख्याल रखना जा रहा है - हम नियंत्रक है. जब एक फार्म के बाद विधि के माध्यम से प्रस्तुत किया जाता है, तो उन चर के सभी पोस्ट सरणी के भीतर समाहित कर रहे हैं. आपको यह सुनिश्चित करना चाहते हैं कि सूचकांक पासवर्ड पर पोस्ट सरणी मूल्य पुष्टि तत्व से मेल खाता है. आप यकीन है कि वे खाली नहीं कर रहे हैं बनाना चाहते हैं, और आप यकीन है कि वे वही कर रहे हैं बनाना चाहते हैं. एक PHP के बारे में सुविधाजनक बात यह है कि हम स्ट्रिंग का उपयोग करने की जरूरत नहीं है अब की तुलना करते हैं. हम ऑपरेटर के बराबर होती है - बराबर होती है का उपयोग कर सकते हैं  जाँच करें कि क्या तार एक दूसरे के बराबर हैं. त्रुटि को संभालने के लिए, आप के लिए माफी चाहता हूँ. खेद है, आप केवल समारोह कॉल  और फिर संदेश का एक प्रकार है कि तुम उत्पादन के लिए चाहते हैं निर्दिष्ट. फिर आप डेटाबेस के लिए उपयोगकर्ता जोड़ना चाहते हैं. अब तक, हम कर दिया गया है सिर्फ प्रपत्र के परिणामों के साथ स्थानीय रूप से काम कर रहे हैं. अब, हम वास्तव में उन्हें हमारे डेटाबेस में जोड़ना चाहते हैं. इस के लिए, हम पहले यह सुनिश्चित करना है कि उपयोगकर्ता नाम रिक्त नहीं है चाहता हूँ. समझ है कि एक वेबसाइट पर, आप एक ही उपयोगकर्ता नाम के साथ कई उपयोगकर्ताओं नहीं हो सकता है, तो आप यह सुनिश्चित करें कि जब आप अपने डेटाबेस में कुछ डालने बनाना चाहता हूँ - एक नया उपयोगकर्ता सम्मिलित - तो आप एक पूर्व मौजूदा उपयोगकर्ता नाम के बीच एक टकराव नहीं मिलता है. और उपयोगकर्ता नाम है कि एक उपयोगकर्ता करने के लिए प्रस्तुत करने की कोशिश कर रहा है. इस के लिए, एक बार आप एक क्वेरी को निष्पादित करने के लिए - उनके पासवर्ड और नकदी का एक प्रारंभिक राशि के साथ एक निश्चित उपयोगकर्ता डालने एक बार आप फोन है कि प्रश्न है, तो mySQL वास्तव में वापसी झूठी अगर यह विफल रहता है. प्रयोक्ताओं की संरचना ऐसी है कि उपयोगकर्ता नाम एक अनूठा मूल्य है, तो आप एक से अधिक नहीं हो सकता. जब आप कोशिश करते हैं और एक उपयोगकर्ता नाम है कि पहले से ही मौजूद है के साथ एक नई पंक्ति सम्मिलित एक बूलियन मूल्य झूठी तरह है कि वापसी झूठी जा रहा है. यहाँ एक मुश्किल बात यह है कि आप जाँच करना चाहते अगर परिणाम आपकी क्वेरी का परिणाम है. अगर वह विफल रहता है, तो आप ऑपरेटर ट्रिपल बराबर होती है के साथ की जाँच करने के लिए चाहता हूँ. यह वास्तव में जाँच करें कि क्या वहाँ एक विफलता है या नहीं जा रहा है, जबकि, बस एक साधारण के बराबर होती है के बराबर होती है, यह सच है कि पंक्ति खाली था. अगर वहाँ उपयोगकर्ता नाम के बीच एक टकराव है एक विफलता का परिणाम वास्तविक झूठी मूल्य है. यहाँ आप कैसे एक डेटाबेस में सम्मिलित होगा. यहाँ क्वेरी कि तुम सख्ती एसक्यूएल में चला जाएगा. एक बात यह है कि आप वास्तव में वेबसाइट है कि अपने एसक्यूएल डाटाबेस का प्रबंधन करने के लिए जा सकते हैं और आसपास वहाँ खेलने के लिए मैन्युअल रूप से या तो मूल्यों या पंक्तियों में प्रवेश द्वारा. यह उत्पादन होगा एसक्यूएल उत्पादन में क्या है. आप भी अपने डेटाबेस के भीतर SQL कमान्ड रन कर सकते हैं  और फिर देखने के लिए वाक्यविन्यास क्या हो सकता है, और फिर क्वेरी समारोह कि हम 7 pset में है कि में अनुवाद करने के लिए, जो बहुत से प्रश्न है कि आप वास्तव में चलाने के लिए इसी तरह की होने जा रहा है. अगर मैं अपने उपयोगकर्ताओं को तालिका में एक नई पंक्ति सम्मिलित करना चाहता था, तो मैं उपयोगकर्ताओं में डालने निर्दिष्ट करते हैं, जो मेरी मेज के नाम है. तो मैं स्तंभ नाम निर्दिष्ट होगा. तब मैं अपना पासवर्ड के साथ मूल्यों को प्रदान करेगा. हमारे उपयोगकर्ताओं को तालिका में पासवर्डों सिर्फ स्ट्रिंग के रूप में संग्रहीत नहीं कर रहे हैं. वे एन्क्रिप्टेड संस्करण के रूप में जमा कर रहे हैं, तो आप वास्तविक पासवर्ड पर समारोह तहखाना चलाने के लिए चाहता हूँ, और है कि आप उपयोगकर्ताओं सरणी के लिए भंडारण की सही प्रकार दे देंगे. इस रनिंग अपने उपयोगकर्ताओं को तालिका में एक नई पंक्ति सम्मिलित करेगा. क्वेरी समारोह के साथ सौदा करने के लिए, सी में पहले हम एक placeholder प्रतिशत चिह्न के रूप में इस्तेमाल किया. इसी तरह, एक placeholder की इसी अवधारणा यहाँ लागू होता है. क्वेरी के साथ, आप पूरे क्वेरी निर्दिष्ट, जब भी आप क्वेरी में चर के साथ आपके निवेश के रूप में काम कर रहे हैं के अलावा, तो बजाय वास्तव में उन्हें अंदर डालने की तरह जब हम सी. में printf बयान था हम स्ट्रिंग डाल और फिर वहाँ एक प्लेसहोल्डर है, और फिर एक के बाद अल्पविराम निर्दिष्ट करने के लिए, हम जो चर था. यहाँ, हम हमारे प्लेसहोल्डर के रूप में प्रश्न चिह्न पर हस्ताक्षर का उपयोग करने के लिए जा रहे हैं और फिर प्रत्येक चर में पारित, क्रमशः क्रम में प्लेसहोल्डर्स के लिए - जहां उन चर जाना चाहिए. तो यहाँ, 1 प्रश्न चिह्न वास्तविक उपयोगकर्ता नाम द्वारा प्रतिस्थापित किया जाएगा तो पासवर्ड द्वारा 2 प्रश्न चिह्न. फिर अंत में, एक बार आप उन्हें पंजीकृत किया है और उन्हें डेटाबेस के लिए जोड़ा है, तो आप उन्हें वेबसाइट में लॉग इन करने के लिए करना चाहते हैं. हम एक सुपर वैश्विक चर बुलाया सत्र की तरह है. सत्र एक निश्चित पहचान लेता है, और है कि उपयोगकर्ता है कि वर्तमान में लॉग इन आईडी से मेल खाती है आप क्या करना चाहते है अपने उपयोगकर्ता आईडी क्या है और फिर है कि विशेष रूप से उपयोगकर्ता आईडी के रूप में है कि सत्र आईडी सेट. एक समारोह में कहा कि आप यहाँ का उपयोग करने के लिए चाहता हूँ एक SQL आदेश है कि आपकी मेज से पिछले सम्मिलित आईडी नंबर प्राप्त करेंगे. It'll आईडी कॉल - तो पंक्तियों कॉल it'll संख्या है कि इसे वापस करने के लिए एक नाम आवंटित है. ऐसा लगता है कि आईडी फोन करता हूँ. अब हम खत्म कर दिया है रजिस्टर, और हम पर स्थानांतरित करने के लिए उद्धृत कर सकते हैं. समीक्षा एक उपयोगकर्ता एक निश्चित स्टॉक के नाम इनपुट के लिए अनुमति देता है, और फिर यह कि शेयर के गुणों को वापस कर देंगे. क्या आप यहाँ करना चाहता हूँ एक नियंत्रक और कुछ टेम्पलेट्स है. इस मामले में, हम करने के लिए एक नियंत्रक है जो हमारे लिए सोच के सभी करने के लिए जा रहा है करने के लिए जा रहे हैं. यह प्रतीक लग रहा है और तो मूल्यों में टेम्पलेट्स में पारित करने के लिए है कि बाहर मुद्रित करेगा. हम 2 टेम्पलेट यहाँ है करने के लिए जा रहे हैं. हम 1 टेम्पलेट है कि के रूप में जो उपयोगकर्ताओं के लिए जा रहे हैं प्रदान करता है के लिए जा रहे हैं इनपुट शेयर के नाम - शेयर का नाम. तो फिर हम भी एक और टेम्पलेट है कि उन मूल्यों को प्रदर्शित करता चाहते करने के लिए जा रहे हैं. आप प्रवेश में कैसे आप एक रूप है कि इनपुट स्वीकार करना होगा का एक उदाहरण के लिए देख सकते हैं, यहाँ अलावा, हम केवल 1 क्षेत्र चाहते हैं. हम एक उपयोगकर्ता नाम और पासवर्ड क्षेत्र नहीं करना चाहती. हम सिर्फ 1 पाठ क्षेत्र चाहते हैं कि उपयोगकर्ता एक निश्चित स्टॉक के नाम इनपुट के लिए अनुमति देता है. एक बार आपको लगता है कि शेयर देखा है - तो फिर तुम कि डेटा भेजना चाहते हैं - quote_form.php. एक शेयर की प्रतीक, नाम, और एक मूल्य लुकअप वापस आ जाएगी. वे एक साहचर्य सरणी के भीतर समाहित कर रहे हैं. अधिक जानकारी के लिए देखो functions.php अंदर देखने का समारोह उन की वापसी प्रकार पर. महान! तो फिर अंत में, आप स्टॉक जानकारी प्रदर्शित करने के लिए चाहता हूँ. आप को शायद प्रदर्शित करने के लिए चाहता हूँ - you'll उन चर का उपयोग करना चाहते हैं. एक बार जब आप एक चर में कीमत है - नाम और प्रतीक के रूप में अच्छी तरह से है - तो आप अपने टेम्प्लेट पृष्ठ में प्रदर्शित करने के लिए चाहता हूँ. उस टेम्पलेट पेज show_quote.php या कुछ कहा जा सकता है. आपकी quote.php पृष्ठ शो बोली प्रस्तुत करना होता है और फिर उन मूल्यों के सभी में गुजरती हैं. फिर अपने php पृष्ठ में, आप वास्तव में पेज के HTML पहलू को उन मूल्यों को मुद्रित. आप सिर्फ प्रिंट समारोह का उपयोग और कीमत में गुजरती हैं. 2 तरीके हैं - या तो आप इसे डॉट ऑपरेटर के साथ जोड़ना कर सकते हैं, या एक प्लेसहोल्डर का उपयोग करें. उपयोगकर्ताओं को अंततः के लिए खरीद और बेच शेयरों जा रहे हैं. हम उन्हें शेयरों कि वे वर्तमान में है के सब देखकर कुछ रास्ते की अनुमति चाहते हैं. हम अपने पोर्टफोलियो है कि कॉल करने के लिए जा रहे हैं. पोर्टफोलियो, शायद प्रत्येक उपयोगकर्ता के लिए होगा, पंक्तियों का एक गुच्छा शामिल लिस्टिंग के शेयर प्रकार है कि वे और फिर कैसे वे उन लोगों के कई. हमारे मौजूदा तालिका - अभी हम हमारे डेटाबेस में उपयोगकर्ताओं को तालिका है. यह एक उपयोगकर्ता के रूप में के रूप में अच्छी तरह से उनके पासवर्ड और कितना नकद वे उपयोगकर्ता नाम शामिल हैं. भीतर है कि उनके शेयरों के सभी के संचय के लिए कोई असली तरीका है. ऐसा लगता है जैसे हम हर शेयर के लिए नए स्तंभ सम्मिलित कर सकते हैं नहीं है. यह एक बहुत, बहुत लंबे पंक्ति हो सकता है क्योंकि हम एक अनंत मात्रा शेयरों कि वे हो सकता है के प्रकार के. तो, बजाय हम क्या करेंगे एक ही डेटाबेस के भीतर है, हम एक उपयोगकर्ता तालिका होगा, लेकिन तब भी हम एक पोर्टफोलियो तालिका होगा. पोर्टफोलियो तालिका निश्चित रूप से उपयोगकर्ताओं को तालिका से लिंक किया जाएगा, लेकिन बजाय पोर्टफोलियो तालिका संरचना शेयर जानकारी होगी, उपयोगकर्ता है कि स्टॉक के कितने शेयर, के रूप में के रूप में अच्छी तरह से विशेष रूप से एक उपयोगकर्ता के आईडी नंबर. आप उपयोगकर्ताओं को तालिका जो एक आईडी के रूप में के रूप में अच्छी तरह से उपयोक्तानाम, हैश है - जो पासवर्ड, एन्क्रिप्टेड पासवर्ड है - और फिर वे नकदी की राशि है. आईडी नंबर पोर्टफोलियो से आईडी नंबर से जोड़ा जाएगा. पोर्टफोलियो सिर्फ शेयर के प्रतीक के रूप में के रूप में अच्छी तरह से शेयर होगा - कि शेयर कि उपयोगकर्ता के शेयरों की संख्या. उस पोर्टफोलियो तालिका में आप मूल रूप से करना होगा सभी शेयर अपने साइट पर उपयोगकर्ताओं के सभी के पास. बाद में, केवल एक निश्चित उपयोगकर्ता के शेयरों निर्दिष्ट - केवल अपने पोर्टफोलियो - आप अपने पोर्टफोलियो की है कि इस तरह की मेज से मूल्यों को पुनः प्राप्त होगा आईडी नंबर है कि उपयोगकर्ता के लिए विशिष्ट है. जब आप पोर्टफोलियो को प्रदर्शित करते हैं, तो आप एक उपयोगकर्ता के पोर्टफोलियो में शेयरों की प्रत्येक रिपोर्ट चाहता हूँ. आप शेयरों की संख्या और उन शेयरों के वर्तमान मूल्य को रिपोर्ट करने के लिए चाहता हूँ. उन शेयरों की है कि मौजूदा मूल्य पोर्टफोलियो तालिका में संग्रहीत नहीं है पर कम से कम है कि - हर दिन याहू द्वारा वजह है कि अद्यतन किया जा रहा है. कि जानकारी प्राप्त करने के लिए, आपको लगता है कि अपने एसक्यूएल क्वेरी से संदर्भित नहीं कर सकते हैं. समारोह हमें क्या प्रदान करता है? समारोह क्या कीमत मिल जाएगा? यह देखने का है, तो एक विशेष प्रतीक पर लुकअप का उपयोग कर आप जानकारी का एक बहुत कुछ दे देंगे. यह आप सूचना के 3 टुकड़े दे दूँगा - नाम, प्रतीक, के रूप में के रूप में अच्छी तरह से कीमत. एक बार जब आप एक निश्चित प्रतीक देखने का, तो आप कीमत मिल सकती है, और फिर तुम कीमत का उपयोग करने के लिए अपने पोर्टफोलियो में प्रदर्शित किया जा सकता है. पोर्टफोलियो भी उपयोगकर्ता की वर्तमान नकदी संतुलन को प्रदर्शित करना चाहिए. कि क्षेत्र अपने उपयोगकर्ताओं को तालिका में संग्रहीत किया जाता है. तो याद है कि हम मूल रूप से कर रहे हैं - हम PHP फ़ाइलों के विभिन्न प्रकार के कर रहे हैं. हम एक नियंत्रक है जो मूल रूप से आप के लिए सब सोच करता है के लिए जा रहे हैं. और फिर हम एक है जो टेम्पलेट में टेम्पलेट outputting डेटा के साथ सौदा किया है. तुम क्या चर नियंत्रक के अंदर लेने की आवश्यकता होगी के बारे में सोच है यदि हम एक पोर्टफोलियो जो हर नाम, प्रतीक, और शेयर संख्या outputs के साथ काम कर रहे हैं, के रूप में के रूप में अच्छी तरह से एक शेयर की मौजूदा कीमत, तो आप मूल रूप में पारित करने के कुछ तरीके खोजने के लिए चाहता हूँ - आप मूल्यों है कि है कि मैच की एक सरणी में पारित कर सकते हैं. चलो कैसे आप शेयरों की सभी पुनः प्राप्त हो सकता है का एक उदाहरण में जाने एक विशेष उपयोगकर्ता द्वारा स्वामित्व. अभी तक यह नहीं काम कर रहा है शेयर की कीमत के साथ. क्या यह करना होगा एक क्वेरी को चलाने के लिए है. यह प्रतीक के रूप में के रूप में अच्छी तरह के शेयरों से प्राप्त होता है - मैं इस तालिका को बुला रहा हूँ, लेकिन इस मामले में यह क्या होगा? तालिका का नाम क्या है कि हम कि प्रतीक और शेयरों है के साथ काम कर रहे हैं एक विशेष उपयोगकर्ता के लिए? यह या तो उपयोगकर्ताओं या पोर्टफोलियो है. पोर्टफोलियो. क्या यह करना होगा प्रतीकों और शेयरों के लिए क्वेरी पोर्टफोलियो एक विशेष उपयोगकर्ता के लिए. यहाँ मैं कहता हूँ, (SELECT प्रतीक tbl से शेयर - लेकिन तालिका के बजाय, आप को पोर्टफोलियो के साथ उस जगह जा रहे हैं. मूल रूप से 'जहां' मेरी हालत है. मैं कह रहा हूँ कि मैं केवल उन साहचर्य arrays है कि अनुरूप प्राप्त करना चाहते हैं  इस निम्नलिखित हालत - आईडी के बराबर होती है.  तो मैं एक placeholder डाल रहा हूँ वहाँ और फिर सत्र आईडी. क्या यह करना होगा पंक्तियों में प्रत्येक पंक्ति के लिए कह रहा है. यह एक साफ के बजाय वास्तव में पाश के लिए एक सेट करने के लिए है कि अनुक्रमित के सब से अधिक दोहराता है, तो PHP में आप एक के लिए प्रत्येक लूप हो सकता है. यदि आप किसी सरणी है, तो आप कह सकते हैं मैं हर लगातार तत्व कॉल करने के लिए जा रहा हूँ - मैं हर तत्व इस नाम को कॉल करने के लिए जा रहा हूँ. तो, इन तत्वों में से हर एक के लिए, मैं उन्हें इस फोन करने जा रहा हूँ, तो मैं यह कर सकते हैं. प्रत्येक के लिए इस में, आप अपने वास्तविक सरणी, और प्रत्येक पंक्ति आप पंक्ति को कॉल करने के लिए जा रहे हैं के रूप में पंक्तियाँ है. हर बार यह शरीर निष्पादित करता है, यह ऊपर जाना है और यह पंक्ति पंक्तियों में अगले तत्व को अद्यतन करेगा. अब, शेयर खरीदने के मामले में, हम क्या करना चाहते स्टॉक मिलता है कि उपयोगकर्ता के लिए खरीदना चाहता है और शेयरों की राशि है कि उपयोगकर्ता के लिए खरीदना चाहता है, और फिर - अगर वे चाहते हैं - कि शेयर को अपने पोर्टफोलियो में जोड़. जाहिर है, अगर वे कुछ खरीद रहे हैं, तो है कि कमी करने के लिए जा रहा है वे पैसे की राशि है, इसलिए, कि उनके नकदी को कम करने के लिए जा रहा है. हम पोर्टफोलियो के रूप में के रूप में अच्छी तरह से उपयोगकर्ताओं को तालिका को अद्यतन करने के साथ काम करने जा रहे हैं, जो नकद शामिल हैं. लेकिन पहले, आप वास्तविक स्टॉक और शेयरों की राशि है कि उपयोगकर्ता चाहता है पाने की जरूरत है. उस के लिए, आप एक HTML फार्म कि स्टॉक के प्रतीक के लिए पूछना होगा की आवश्यकता होगी है कि आप के रूप में के रूप में अच्छी तरह से शेयरों की संख्या खरीदना चाहते हैं. तो आप को जोड़ना चाहते हैं. आप निश्चित मूल्यों का चयन करने के लिए चाहता हूँ. हम यह एक छोटा सा के माध्यम से चला गया है पहले से ही है, लेकिन जब आप कुछ पंक्तियों को प्राप्त करने की कोशिश कर रहे हैं - एसक्यूएल तालिका से कुछ पंक्तियों को पुनः प्राप्त करने के लिए, यह निम्न सिंटैक्स का है. आप चयन किया है, और फिर अगर आप एक स्टार निर्दिष्ट, कि मूल रूप से पूरे, आप के लिए पूरी पंक्ति को वापस कर देंगे. तो फिर, तुम हालत जहां, और तो आप निर्दिष्ट है - मैं केवल उपयोगकर्ता नाम मेल में बराबर होना चाहते हैं, तो यह केवल उपयोगकर्ताओं में पंक्ति है कि मेल में मेल खाती है प्राप्त करेंगे. जब कोई उपयोगकर्ता एक पोर्टफोलियो के लिए एक शेयर में जोड़ना चाहता है, आप कुछ त्रुटियों के लिए जांच की जरूरत है. आप सुनिश्चित करें कि उपयोगकर्ता वास्तव में शेयर बर्दाश्त कर सकते हैं बनाना चाहते हैं, ताकि आप अपने नकदी की जाँच करने के लिए चाहता हूँ. इससे पहले, हम सितारा इस्तेमाल करने के लिए एक एसक्यूएल तालिका से एक पूरी पंक्ति को पुनः प्राप्त. लेकिन यहाँ, हम वास्तव में सिर्फ निर्दिष्ट कर सकते हैं कि मैं केवल 1 मूल्य चाहते हैं कर सकते हैं - मैं केवल नकदी चाहते हैं. तो यहाँ यह आईडी संख्या 1 के साथ उपयोगकर्ता के लिए नकद वापसी होगी. यदि पहले से ही एक उपयोगकर्ता एक निश्चित स्टॉक खरीदा गया है, लेकिन फिर उस स्टॉक के अधिक खरीदता है, तो आपके पोर्टफोलियो में आप एक अलग लाइन नहीं करना चाहती, एक और पंक्ति कि कि नए लेनदेन होता है. आप वास्तव में राशि का अद्यतन करना चाहते हैं. सब है कि वास्तव में बदल रहा है शेयरों की राशि है कि है कि उपयोगकर्ता का मालिक है. यदि आप क्वेरी में डालने का उपयोग करें - तो यह सिर्फ आपके पोर्टफोलियो में इन मूल्यों के सभी डालें उपयोगकर्ता आईडी संख्या के रूप में के रूप में अच्छी तरह से स्टॉक का प्रतीक है कि वे खरीद रहे हैं और शेयरों, तो आप भी निर्दिष्ट करने के लिए करना चाहते हूँ, ठीक है, अगर मैं एक नकली चाबी में चलाने - इस मामले में, नकली चाबी न केवल उपयोगकर्ता आईडी है, लेकिन यह भी स्टॉक प्रतीक क्योंकि आप ही कर सकते हैं - हमारे आधार यह है कि आप केवल 1 पंक्ति हो सकता है  कि 1 विशिष्ट प्रतीक से मेल खाती है. तो, नकली चाबी पर - अगर आप एक टक्कर में रन - तुम सिर्फ अपनी नई मूल्य के शेयरों को अद्यतन करने के लिए जा रहे हैं. शेयरों के बराबर होती है जो कुछ भी हम प्लस के शेयरों की संख्या है कि उपयोगकर्ता की खरीद की है से पहले था. अब है कि हम पोर्टफोलियो तालिका को नवीनीकृत किया है, हम उपयोगकर्ता नकद अद्यतन करने के लिए चाहता हूँ. उपयोगकर्ताओं को तालिका में है, तो हम नकदी से एक निश्चित राशि को घटाकर किया जा रहे हैं. - और फिर एक निश्चित राशि मुमकिन है, यह नकद नकद ऋण के बराबर हो जा रहा है. नकदी को अद्यतन करने के लिए, आप - अगर मैं मेल में दूर से पैसे ले जाना चाहता था, तो मैं इस क्वेरी को चलाने होगा - उपयोगकर्ताओं को 'अपडेट' और फिर नकदी के लिए नकद स्तंभ सेट - मैं 9999 डॉलर निकाल केवल अगर उपयोक्तानाम मेल में बराबर है. लेकिन, इस मामले में, हम करने के लिए विशेष रूप से 9999 घटाना नहीं करना चाहती. हम निर्दिष्ट करने के लिए करना चाहते हैं, ठीक है, हम करने के लिए शेयर की मौजूदा कीमत घटाना चाहते हैं शेयरों की संख्या है कि वे खरीद रहे हैं से गुणा. अब हम उन्हें शेयरों है कि वे सभी को देखने के लिए अनुमति दी है, के साथ ही और अधिक शेयर खरीदने की. हम भी पहले उन्हें एक शेयर की मौजूदा कीमत को देखने के लिए अनुमति दी. यहाँ हम उन्हें बेचने के लिए अनुमति देना चाहते हैं. पहले हम मूल रूप से प्रदर्शित करना चाहते हैं - हम उन्हें स्टॉक है कि वे सभी को देखने के लिए अनुमति देना चाहते हैं, तो यहाँ हम पोर्टफोलियो से पंक्तियों के सभी प्रदर्शित करना चाहते हैं. अगर वे एक निश्चित स्टॉक को बेचने के लिए चुनते हैं, तो हम मानते हैं कि वे यह सब बेचने के लिए जा रहे हैं. वे सिर्फ उनके शेयरों का 50% हिस्सा बेचने के लिए नहीं जा रहे हैं, वे यह 100% को बेचने के लिए जा रहे हैं. हम सिर्फ पोर्टफोलियो से पूरी पंक्ति को नष्ट कर सकते हैं. हम कुछ प्रतीक के दिए गए उपयोगकर्ता के शेयरों को नष्ट कर सकते हैं. वहाँ उस के लिए वाक्यविन्यास है. फिर हम नकद अद्यतन करना चाहते हैं. हम बराबर नकद में वे बेच रहे हैं शेयरों की राशि को जोड़कर किया जा जा रहे हैं शेयर की मौजूदा कीमत से गुणा - किस कीमत पर वे इसे खरीदा नहीं है, बल्कि कीमत पर जो वे कर रहे हैं - मौजूदा कीमत जब वे इसे बेच रहे हैं. एक शेयर की मौजूदा कीमत को संदर्भित करने के लिए, आप देखने का उपयोग करना चाहते हैं, जो आप एक शेयर की कीमत दे देंगे वर्तमान समय में. अब हम इतिहास के साथ छोड़ दिया जाता है, जो आप उनके लेनदेन के सभी का ट्रैक रखने के लिए एक उपयोगकर्ता की अनुमति चाहते हैं - देखने के लिए जब भी वे कुछ है, जब भी वे एक शेयर खरीदा बेचा चाहता है. हम करने के लिए समय है, जिस पर वे कहते हैं कि के रूप में वे कितने खरीदा के रूप में अच्छा प्रदर्शन किया था निर्दिष्ट करना चाहते हैं और शेयर क्या था. क्या हम किसी भी मौजूदा मौजूदा संरचना है कि निर्दिष्ट करता है कि क्या है? खैर, हम पोर्टफोलियो जो संख्या शेयरों कि एक उपयोगकर्ता को प्रदर्शित करता है एक भी शेयर के लिए. लेकिन हम जिस तरह से है कि यह अद्यतन में पोर्टफोलियो संरचना रहे हैं जब हम कई खरीद, जबकि इतिहास चाहिए - अगर आप एप्पल, यह 10 शेयर, और फिर 5 बेचने पर बाद में खरीदते हैं, तो आप उन अलग अलग कार्रवाई, अलग पंक्तियों के रूप में देखना चाहते हैं. जबकि कि कार्रवाई हमारे पोर्टफोलियो तालिका में कल्पना करने के लिए है कि बस है कि विशेष रूप से पंक्ति के लिए एक अद्यतन होगा,  तो हम शायद किसी अन्य तालिका चाहते करने जा रहे हैं. हमारे डेटाबेस में, हम अपने उपयोगकर्ताओं को तालिका है, हम अपने पोर्टफोलियो टेबल है, और अब हम शायद एक इतिहास तालिका चाहता हूँ. यही इतिहास तालिका वर्तमान दिनांक का ट्रैक रख सकते हैं, के रूप में के रूप में अच्छी तरह से विशेष रूप से स्टॉक प्रतीक के रूप में के रूप में अच्छी तरह से कितने शेयर, और फिर क्या कार्रवाई यह है - आप उन शेयरों को खरीद रहे थे कि या आप उन्हें बेच रहे थे. तारीख के साथ सौदा करने के लिए, वहाँ तरीके कि तुम यह कर सकते हैं के एक जोड़े हैं. PHP तारीख का ट्रैक रखने का एक तरीका है, जो आप खुद देख सकते हैं. एसक्यूएल में आप भी या तो अभी या वर्तमान टाइमस्टैम्प का उपयोग कर सकते हैं. यह आप पर निर्भर है. सिर्फ यकीन है कि हर बार जब कोई उपयोगकर्ता खरीदता या बेचता है, तो आप अपने नकदी अद्यतन हो जाएगा उपयोगकर्ताओं को तालिका में, आप विभागों तालिका में पंक्तियों को अद्यतन किया हूँ, तो आप भी इतिहास को अद्यतन करने जाएगा, इसलिए वहाँ के लिए 3 अलग एसक्यूएल प्रश्नों कि तुम वहाँ बुला रहे हो जाएगा होने जा रहे हैं. अब हम कार्यक्षमता का एक गुच्छा है. बस अनुस्मारक है कि अपने सूचकांक फाइल में, आप अपने कम से कम करने के लिए लिंक चाहता हूँ के एक जोड़े - लेकिन आप एक उपयोगकर्ता buy.php पृष्ठ पर लिंक करने के लिए अनुमति देने के लिए चाहता हूँ. यह अनुमति देने के लिए जा रहा है एक उपयोगकर्ता - buy.php नियंत्रक है, तो है कि या तो जा रहा है आप के लिए भेज कि आप फार्म का है कि आप चीजों को देखने के लिए अनुमति देता है के लिए भेज जा रहा है. हम इतिहास है. हम बाहर प्रवेश किया है, एक बोली हो रही है और फिर बेच रहे हैं. वे कम से कम तुम क्या दिखाना चाहते हैं. पोर्टफोलियो के संदर्भ में, पोर्टफोलियो वास्तव में सूचकांक पृष्ठ में दिखाया गया है. यदि हम इस सूचकांक के लिए जाना है, यहाँ हम देख है कि यह portfolio.php renders और साहचर्य सरणी में गुजरता है - मूलतः शीर्षक पोर्टफोलियो के बराबर है. तो, इस नियंत्रक है. यदि हम portfolio.php का टेम्पलेट के लिए जाना है, तो यह सब है - मूल रूप से एक चित्र प्रदर्शित करता है कि कहते हैं, ओह, यह साइट निर्माणाधीन है. बाद में, एक बार आप में पास - you'll मूल रूप से अधिक विशिष्ट जानकारी में पारित हो. सिर्फ शीर्षक के बजाय, आप शायद अधिक बातों में गुजर रहा हो जाएगा. एक बार जब आप उन मूल्यों है, तो portfolio.php उन मूल्यों के साथ सौदा कर सकते हैं और उन्हें आदेश के किसी भी प्रकार में बाहर मुद्रण. एक बार जब आप उन सभी को क्रियान्वित किया है, आप भी 1 अधिक सुविधा को लागू करने की जरूरत है. यह या तो एक उपयोगकर्ता अपने पासवर्ड को बदलने की अनुमति जा सकता है, अपने पासवर्ड रीसेट अगर वे यह भूल गए हैं तो पासवर्ड रीसेट के लिए तो, आप शायद यह भी रजिस्टर संपादित करने के लिए चाहता हूँ इतना है कि यह उन्हें एक ईमेल निर्दिष्ट करने की अनुमति देता है, यदि ऐसा है तो वे अपने पासवर्ड भूल जाते हैं, तो वे कहते हैं कि प्राप्त कर सकते हैं. वे शायद उनके उपयोगकर्ता नाम में प्रवेश कर सकते हैं और फिर उन्हें एक ईमेल के लिए भेजा जाएगा अपने पासवर्ड को रीसेट करने के लिए सक्षम होने के लिए एक लिंक के साथ. आप कुछ है कि उपयोगकर्ताओं को प्राप्तियों पाने के लिए अनुमति देता है हो सकता है हर बार वे खरीदने के लिए या कुछ और बेचते हैं, और फिर अंत में, उन्हें अपनी वेबसाइट के लिए नकद जोड़ने के लिए अनुमति देते हैं. बस नियंत्रकों और एक छोटा सा टेम्पलेट्स की अवधारणा में वापस जाने के लिए. आप एक तरह कुछ होगा तो आप एक नियंत्रक यहाँ होगा. अभी, हम login.php उदाहरण में देख रहे हैं. जब हम एक नियंत्रक है, मूल रूप से यह 2 मामलों ले जा रहा है. जब हम नियंत्रकों है, हम इस टुकड़े में कर रहे हैं कि हम भी कर रहे हैं के साथ निपटने की तरह जब हम के रूप में अच्छी तरह से किया है. नियंत्रक मूल रूप से अलग कार्यों को करना होगा - अगर पहले से ही एक फार्म प्रस्तुत किया गया है, और फिर यदि दो उपयोगकर्ता उस पृष्ठ के लिए आ रहा है पहली बार के लिए है और अभी भी निवेश करने के लिए है कि फार्म की जरूरत है. मैं उस मामले 1 कूद अंदर फार्म होने के पहले मामले के लिए जाने से पहले जा रहा हूँ यहाँ हम कहते हैं, यदि प्रपत्र विधि पोस्ट के साथ प्रस्तुत किया गया है - एक सा है कि के बारे में चिंता करने की ज़रूरत नहीं है. उस बारे में चिंता नहीं बहुत ज्यादा है, लेकिन समझने की है कि मूल रूप से इस समारोह के साथ सौदे कि एक फार्म प्रस्तुत किया गया है या नहीं. इस हालत सच है अगर एक उपयोगकर्ता के रूप में प्रस्तुत कर दी है. यदि नहीं, तो हम करने के रेंडर करने login_form.php कॉल करना चाहते जा रहे हैं, और फिर शीर्षक में पारित. यह शीर्षक सिर्फ मूल रूप से हैडर में प्रदर्शित होने जा रही है. यह क्या करता है मूल रूप से कहते हैं, ठीक है - ठीक है, यदि कोई उपयोगकर्ता के लिए चला जाता है login.php है और वास्तव में लॉग इन नहीं है, तो मैं उन्हें पृष्ठ कि कि फार्म है भेजना चाहते हैं जो उन्हें इनपुट उपयोगकर्ता नाम और पासवर्ड के लिए अनुमति देता है. तो मैं जाने के लिए login_form, और फिर है कि वास्तविक रूप है. तो, एक बार उपयोगकर्ता है कि फार्म प्रस्तुत है, वे इसे login.php करने के लिए प्रस्तुत करने के लिए जा रहे हैं विधि पोस्ट के साथ. तो मैं वास्तव में अपने पाश अगर किसी और के इस खंड में प्रवेश करने जा रहा हूँ. तो यह है कि यहाँ हम प्रपत्र में दर्ज किए गए मानों के साथ सौदा है. यह यहाँ है कि हम उन लोगों के साथ सौदा. फिर एक बार आप उन मूल्यों के साथ सौदा - अगर आप के साथ काम कर रहे हैं - का कहना है कि हम quote.php पेज जहां किसी एक शेयर है कि निवेश कर सकते हैं के साथ काम कर रहे हैं वे देखना चाहते हैं, और फिर उस प्रदर्शन को देखने - कि इसी तरह की तरह यहाँ है. यहाँ हम एक प्रवेश फार्म है - you'd शायद एक बोली फार्म है - लेकिन एक बार तो उपयोगकर्ता है कि वास्तव में जानकारी प्रस्तुत कर दी है, तो आप नियंत्रक अन्य टेम्पलेट में पारित करने के लिए चाहता हूँ कि उन्हें वास्तविक जानकारी दिखाएगा. तो फिर यहाँ के आसपास सही है, तो आप शायद हूँ - अपनी हालत के अंत के आसपास अगर विधि - पोस्ट के बराबर होती है - शो बोली - तो आप शायद एक पृष्ठ प्रस्तुत करना चाहता हूँ - जो आपको लगता है कि पेज के लिए भेजता है - show_quote.php - और फिर उस फ़ाइल में उन मूल्यों को संदर्भ जाएगा. क्या इसका यह मतलब है? हम एक नियंत्रक है कि मूल रूप से 2 मामलों के साथ सौदों है - कि क्या आप में है या नहीं, एक फार्म में प्रवेश कर लिया है. यदि आप एक फार्म नहीं दर्ज किया है, तो यह है कि प्रपत्र को अनुप्रेषित, जो है तो आप वापस रख उस पृष्ठ पर. तो, एक बार आप नियंत्रक में जानकारी है, जो शरीर के साथ सौदा होगा के रूप में आवश्यक जानकारी या तो शेयर के लिए मूल्यों को देख, और एक बार फिर यह उन मूल्यों को देखा है और उन्हें एक अच्छी तरह से स्वरूपित सरणी में है, तब टेम्पलेट पेज में कि सरणी पारित कर सकते हैं  कि जानकारी outputting के साथ कि सौदों. फिर, यह वेब के बाद से, यह मज़ा आने वाला है. हम सी के बाहर हो तो हम ASCII और कि टर्मिनल उत्पादन तक सीमित नहीं रहे, तो इस के साथ मजाक किया है. आप इसे के रूप में दृश्य के रूप में आप चाहते हैं कर सकते हैं. आप उपयोगकर्ताओं को एक समय में डॉलर के निवेश के लाखों लोगों के लिए अनुमति दे सकते हैं, या उन्हें सीमा और वास्तव में मतलब है और उन्हें केवल अनुमति देने के लिए एक समय में 1 पैसा दर्ज या ऐसा कुछ. निश्चित रूप से इस के साथ मज़ा है सुनिश्चित करें. PHP कोड थोड़ा सरल है कि यह थोड़ा आसान है अपने pseudocode नक्शा वास्तविक क्रियान्वयन में. तो, निश्चित रूप से इस के साथ मज़ा है, क्योंकि यह वास्तव में हमारे CS50 में पिछले टुकड़ा है. उस के साथ, यह 7 Walkthrough था. एक बार जब आप walkthrough देख समाप्त कर रहे हैं और अपने pset समाप्त, तो ये भी थे psets, और अब हम अंतिम उत्पाद पर कर रहे हैं - के बाद हम एक प्रश्नोत्तरी के माध्यम से मिलता है. तो उम्मीद है कि आप उपकरण है कि आप psets से सीखा है का उपयोग कर सकते हैं - न केवल वाक्यविन्यास, लेकिन कैसे लेने के लिए एक निश्चित अमूर्त विचार - पसंद है, मैं ऐसा करने के लिए और फिर है कि वास्तव में लागू करने के लिए करना चाहते हैं. सीखना कैसे वाक्यविन्यास और वितरण कोड के माध्यम से संघर्ष करने के लिए. अन्य लोगों के कोड को पढ़ना, और फिर है कि पूर्व मौजूदा कार्यों का उपयोग करने की व्याख्या. तो, पिछले pset साथ अच्छे भाग्य. यह एक खुशी walkthroughs नेतृत्व किया गया है. मुझे आशा है कि वे आप के लिए मददगार रहा है. ये Walkthroughs थे, और बहुत बहुत धन्यवाद. [CS50.TV]