[عزف الموسيقى] ROB BOWDEN: مرحبا. أنا روب، وآمل أن تكون مستعدا لوضع الأسهم في هذا الحل. أولا، دعونا نلقي نظرة على السجل. لذلك تذكر أن هنا نحن فحص لمعرفة ما إذا كان نموذج المرسلة لهذه الصفحة. أولا حتى شيء ونحن في طريقنا القيام به هو الذهاب إلى آخر. ونحن في طريقنا لتقديم شكل السجل. وبالتالي فإن شكل السجل يجري لنشر register.PHP. وما هو الذهاب الى ارسال؟ انها بصدد ارسال اسم مستخدم أن المستخدم هو الذهاب الى ملء، كلمة السر، وتأكيدا - كلمة المرور كتبته من جديد. حتى الآن عندما يتم نشر هذا النموذج ل register.PHP سنقوم بتنفيذ هذا إذا. شاهدوا هذا إذا، نحن الأولى الذهاب الى التحقق من صحة الإدخال. نحن نريد أن نتأكد من أن اسم المستخدم وكلمة المرور لم تكن فارغة وأن تأكيد الواقع مباريات كلمة المرور. مرة واحدة لقد التحقق ما في وسعنا في الواقع تسجيل المستخدم. ماذا يعني ذلك؟ حسنا، نحن نريد أن إدراج المستخدم في قاعدة البيانات الخاصة بنا. وهذه هي الطريقة التي سوف نفعل ذلك. لذلك نحن ذاهبون لتضاف الى المستخدمين جدول اسم المستخدم الحقول، التجزئة، والنقد. القيمة الافتراضية النقدية سيكون 10،000. ونحن في طريقنا لتمرير مثل اسم المستخدم، المستخدم، من خلال سوبر بوست العالمية وهذا ما قدم من النموذج. ونحن في طريقنا لتشفير كلمة المرور. حتى إذا نجحت، ثم النتائج وسوف تكون غير صحيحة. إذا فشلت، ثم نحن أريد أن أعتذر. ذهب شيئا خاطئا. وما يمكن أن تقع فيه أخطاء؟ كذلك، يجب أن يكون هناك اسم مستخدم فريدة من نوعها. وهكذا يمكن الاستعلام فشلت إذا كان اسم المستخدم بالفعل موجودة في الجدول. لذلك على افتراض انه كان اسم مستخدم فريدة من نوعها، ثم ونحن في طريقنا للاستعلام للاستيلاء على معرف المستخدم. تذكر أن الرقم هو لصناعة السيارات في تزايد. وحتى إذا كان هذا يحدث لتفشل لبعض السبب، ثم نريد أن تعتذر أننا لا يمكن الاستيلاء على الهوية. ولكن على افتراض أن لم تفشل، ثم نحن انتزاع ID عما الاستعلام عاد، تخزين أنه في دورتنا - لذلك نحن نريد لتسجيل هذا المستخدم في كتبها تخزين معرف في الدورة السوبر العالمية، وأخيرا إعادة توجيه إلى محفظتنا الاستثمارية. وهذا كل شيء عن السجل. الآن ونحن في طريقنا للانتقال إلى الاقتباس. لذلك الاقتباس وستكون لدينا مجموعة تصل مماثلة حقا. نرى هنا أن هذا هو الرمز الذي ونحن في طريقنا لتنفيذ عندما يكون نموذج المرسلة لهذه الصفحة. ولكن علينا أولا الواقع لتقديم هذا النموذج. ذلك أن نلقي نظرة على شكل الاقتباس، ما هي المجالات هناك؟ ونحن نرى أن كل اقتباس واحد هو مربع النص مع رمز الاسم. وحتى عندما يتم نشر نموذج عرض السعر لquote.PHP ونحن في طريقنا الآن ل تنفيذ هذه التعليمات البرمجية. والمتغير الوحيد في منطقتنا ما بعد السوبر العالمية ستكون رمزا. نحن التحقق من أن للتأكد من أن أنها نشرت بالفعل الرمز. وإذا لم يفعلوا ذلك، ونحن نقول لكم يجب توفير رمزا. على افتراض أنها لم تقدم رمزا، ننظر حتى هذا الرمز. الآن نتذكر أن ننظر إلى أعلى قد يكون فشلت منذ ذلك الحين، حسنا، ربما لم يكن رمز صالحة لتبدأ. حتى إذا كان هذا البحث عن عودة كاذبة، نحن نريد أن تعتذر أن لم يتم العثور على الرمز. مرة واحدة وجدنا الرمز، ونحن الآن يمكن أن تجعل القالب quote.PHP. ماذا تشبه؟ ان مجرد الذهاب الى طباعة أن حصة من كل ما هو اسم الأسهم الجدير أيا كان سعر السهم. الآن لماذا لا نستخدم هذا htmlspecialchars تعمل؟ وهذا لأن اسم ورمز الأسهم قد تحتوي في الواقع خاصة الأحرف التي لا ينبغي أن تفسر على أنها HTML. كل الحق، لذلك هذا كل شيء عن الاقتباس. الآن نريد أن ننظر إلى index.PHP والمحفظة. ولكن أولا نحن بحاجة فعلا لبناء الجدول المحافظ. وهنا كيف ونحن في طريقنا للقيام بذلك. لذلك دعونا نلقي نظرة على الهيكل. ونحن نرى أن المحافظ الجدول ستكون لدينا معرف. بحيث سيكون المستخدم ID الذي تم إدراج أسهم الشركة. لدينا رمزا، والتي ستكون رمز الشركة التي نحن إدراج أسهم. ثم سهم هو عدد الأسهم التي يتم إدراجها. حتى أن نتذكر أن لكل المواصفات pset، نحن تحديد أن الرقم والرمز - نحن تحقق من الفهارس، والهوية و الرمز هو المفتاح الأساسي. لذلك هوية المستخدم ورمز الاقتران يجب أن يظهر واحد فقط الوقت في هذا الجدول. الآن دعونا ننظر في التعليمات البرمجية. وحتى الآن index.PHP هو الذهاب الى الاستيلاء على كل المعلومات محفظتنا و عرضه للمستخدم. حتى الأولى، ونحن في طريقنا لانتزاع النقدية أن المستخدم لديه حاليا من الجدول النقدية. تذكر، هذا الاستعلام دائما ما للعودة مجموعة من المصفوفات. ذلك على الرغم اخترنا فقط النقدية من صف واحد، ونحن لا تزال بحاجة إلى الاستيلاء على تلك الأموال عن طريق فهرسة في مؤشر الصفري الصفوف والاستيلاء على مؤشر النقدية. وحتى الآن نحن نريد لتحديد كل من المعلومات من الجدول المحافظ هذا هو ذات الصلة حاليا تسجيل الدخول للمستخدم. نحتاج بطبيعة الحال إلى التحقق من أن التي نجحت في الواقع، ونحن يجب أن تفعل دائما كلما كنا الاستعلام. مرة واحدة لدينا جميع هذه المعلومات، المواصفات pset يخبرنا بأننا وينبغي القيام بذلك من أجل تخزين جيد جميع المعلومات في هذه مواقف مجموعة. لذلك نحن على حلقات كل من المعلومات محفظة، وتبحث حتى الأسهم المرتبطة بكل صف في المعلومات محفظة، ومن ثم تخزين في مجموعة موقف الاسم، سعر والأسهم ورمز كل المرتبطة بتلك الأسهم. وأخيرا، ونحن في طريقنا لتقديم portfolio.PHP، ويمر في كمية من النقد لدينا حاليا، و مواقف مجموعة أننا فقط شيدت، وعنوان هذا الصفحة التي سوف تكون المحفظة. دعونا نلقي نظرة على portfolio.PHP. ونحن نرى أن اهتمام كبرى جزء هو هذه الحلقة. لذلك نحن على حلقات مواقف مجموعة، وخلق الجدول، حيث أن الجدول - نحن ملء كل صف مع المعلومات التي وضعنا داخل مواقف مجموعة. مرة أخرى، نحن بحاجة إلى استخدام htmlspecialchars في حالة هذا الرمز أو اسم تحتوي على أحرف HTML. وهنا نحن ضرب الأسعار و كمية الأسهم التي لدينا من أجل الحصول على مقدار هذا تبلغ قيمتها حاليا للمستخدم. وهذا كل شيء لمحفظة. الآن سوف نلقي نظرة على البيع. حتى بيع ستذهب إلى الشكل الذي كان لدينا في register.PHP. ونحن نرى أن نموذج يجري ليتم نشرها في هذه الصفحة. ولكن أولا، عندما كنا تحميل الصفحة، ونحن في طريقنا للقيام بذلك. فما هو هذا تفعل؟ كذلك، فإننا يمكن أن يكون مجرد صفحة بيع لديك مربع نص واحد أن المستخدم يدخل هذا الرمز الذي نحن نريد لبيع. ولكن ونحن في طريقنا إلى أن تكون أكثر قليلا ذكية ونحن في طريقنا لديهم انخفاض أسفل التي تسمح للمستخدم لتحديد رموز الفعلية التي لديهم بالفعل. لذلك نحن الحصول على محفظة للمستخدم. ونحن في طريقنا لاختيار من المحافظ كل الرموز التي المستخدم في الوقت الحالي، وحاليا تسجيل الدخول للمستخدم. تأكد من أن ذلك نجحت. والآن ونحن في طريقنا إلى حلقة على مدى إرجاع معلومات، مجرد الاستيلاء كل رمز، وتخزينه في هذه الرموز مجموعة. والآن ونحن في طريقنا ل تقديم شكل بيع. بحيث تسير في شكل بيع للتو تكون القائمة المنسدلة، وحدد. ولكل خيار في شكل بيع هو الذهاب الى طباعة لتو الرمز أننا انتزع من محافظ الجدول. بحيث تسير في شكل بيع ل تقدم إلى sell.PHP. تبحث في sell.PHP، وهذا هو رمز ما يجري لتنفيذ عندما كنا تقديم في هذه الصفحة. نحن نريد للتحقق من أن المستخدم دخلت فعلا رمزا. على افتراض أن فعلوا الآن - وحتى الآن نحن نريد لتحديد عدد تشترك المستخدم هو بيع في الواقع وكم النقدية يجب ان تحصل على المستخدم للبيع أن العديد من الأسهم. لذلك نحن والاستيلاء على عدد من الأسهم التي المستخدم لديه لهذا الرمز. نحن نبحث حتى في محافظ ل نظرا مستخدم ورمز معين. الآن تأكد من أن هذا الواقع عاد على التوالي. لأنه إذا لم يفعل ذلك، يقوم المستخدم لا فعلا هذا الرمز للبيع. على افتراض أن لديهم هذا الرمز، نحن نريد للاستيلاء على عدد من الأسهم التي لديهم. والآن نريد أن ننظر كيف تصل الكثير كل سهم يستحق. ولذا فإننا استخدام الدالة بالبحث. نحن نبحث عن القيمة من الرمز. على افتراض أن نظرة لأعلى نجحت، والآن ونحن في طريقنا لتحديث الواقع كل المعلومات. لذلك نحن نريد أن تحذف من المحافظ الأسهم التي نقوم ببيعها. نحن نريد لتحديث مستخدم المبلغ النقدي. ونحن تحديثه من الأسهم أضعاف سعر السهم - ولهذا كم من المال المستخدم أدلى به للتو. والآن نريد أن تحديث تاريخنا. لذلك نحن لم تتخذ نظرة على طاولة التاريخ حتى الآن. ولذا فإننا سوف نعود إلى هذا. الآن أخيرا ونحن في طريقنا لإعادة توجيه نسخ إلى الحافظة. الآن دعونا نلقي نظرة على شراء. لذلك، يجب أن تكون جميلة شراء مماثلة للبيع. ونحن نرى أننا في طريقنا مرة أخرى لتحقق لمعرفة ما إذا كنا الخضوع لهذه الصفحة. على افتراض اننا لا، نحن الذهاب لتحميل استمارة شراء. فماذا شكل شراء تبدو وكأنها؟ نرى هنا انها مجرد العادية النموذج الذي يحدث ل تقدم إلى buy.PHP. وانها ستكون لدينا الرمز الذي المستخدم يدخل، وعدد من الأسهم التي يريد المستخدم لشراء من هذا الرمز، وهذا كل شيء. حتى عندما وتقدم إلى buy.PHP، نحن الآن ذاهب لتنفيذ هذه التعليمات البرمجية. نريد مرة أخرى للتحقق من أن دخلت المستعمل شيء صالح. حتى هنا نحن التأكد من أنها دخلت فعلا رمزا. نحن هنا كنت التأكد من أنها سهم دخلت فعلا. وهنا نحن التأكد من أنها دخل عدد صحيح للسهم، وذلك انهم لا تحاول شراء أسهم ABC. الآن نريد أن ننظر يصل سعر رمز حتى نعرف كم نحن النقدية يجب طرح من المستخدم. الآن سنقوم بتحديد مقدار النقدية المستخدم في الواقع، والتأكد من أن التي نجحت. نحن هنا كنت الاستيلاء على النقود. والآن هنا، ونحن والتأكد من أن المستخدم لديه ما يكفي من النقود. لذلك إذا كان عدد الاسهم المستخدم يريد أن يشتري أضعاف سعر كل من تلك الأسهم أكبر من المبالغ النقدية التي لدينا، ثم يمكن للمستخدم لا تستطيع ذلك. على افتراض أن المستخدم لديه ما يكفي من النقود، الآن نحن نريد لتضاف الى محفظة المستخدم. كذلك، ونحن سوف تضاف الى المستخدم محفظة إذا كان هذا يحدث ليكون المرة الأولى كان المستخدم شراء هذا الرمز بالذات. ولكن ماذا لو حدوثها بالفعل لدينا بعض الأسهم أبل؟ حسنا، نحن الآن الاستفادة من يوم تكرار عبارة التحديث الرئيسية. لذلك هذا هو السبب في أننا في وقت سابق أن المحدد يجب أن يكون رقم ورمز مشترك المفتاح الأساسي، بحيث لو كنا في محاولة ل إدراج رمز الهوية والتي هي بالفعل هناك، سنقوم بتحديث فقط أسهم لتشمل الأسهم الجديدة التي المستخدم هو شراء. الآن نحن نريد لتحديث كمية النقدية أن المستخدم لديه، لأنها قضى بعض المال على تلك الأسهم. وأخيرا، سنقوم بتحديث الجدول التاريخ مرة أخرى. والتي، مرة أخرى، ونحن سوف ننظر في في الثانية. وأخيرا سنقوم إعادة توجيه عد إلى portfolio.PHP. لذلك دعونا نلقي نظرة على الجدول التاريخ. أتذكر الآن أن الجدول التاريخ من المفترض أن تتبع كل ما يمكن شراؤه و تبيع لكافة المستخدمين جعل، وليس فقط العدد الحالي للسهم أن المستخدمين لديهم، وهو ما المحفظة ل. لذلك نحن تتبع المستخدم الذي هو شراء أو بيع، سواء كان هذه الصفقة خاصة شراء أو بيع، الرمز الذي يجري ، وعدد الأسهم المشتراة أو المباعة أننا شراء أو بيع، و سعر سهم واحد وهذا ما يجري شراؤها أو بيعها، وأخيرا، فإن الوقت أن هذا الشراء أو البيع يحدث. وهذا كل شيء من التاريخ المعلومات التي نحتاجها لتتبع. لذلك عندما نظرنا في بيع، رأينا أن كنا إدخالها في التاريخ بيع، ما إذا نحن شراء أو بيع، الطابع الزمني الحالي، و المستخدم الحالي، الرمز الذي يجري تباع، وعدد الأسهم التي هي تباع، وسعر الأسهم في هذا الوقت. وبالمثل، في شراء، وأنها سوف تبدو تقريبا نفس. والفرق الوحيد هو بدلا من ذلك البيع، ونحن شراء. حتى في بيع وشراء، ونحن إدخالها في الجدول تاريخها كل من يشتري ويبيع التي تحدث. لذلك كل history.PHP يحتاج إلى القيام به هو انتزاع المعلومات من التاريخ الجدول، تأكد من أنه نجح، وتقديم تلك المعلومات. لذلك تبحث في قالب history.PHP، معلومات مثيرة للاهتمام هو الحق هنا. نحن على كل حلقات من المعاملات، طباعة ما إذا كان هذا كان شراء أو بيع، وتنسيق التاريخ والوقت التي قطعناها على أنفسنا هذه الصفقة. أتذكر أننا في حاجة إلى استخدام htmlspecialchars على رمز، فقط في حالة. وأخيرا، تنسيق عدد من الأسهم التي تم شراؤها وسعر من حصة واحدة في ذلك الوقت. وتعرض كل من التاريخ المعلومات التي نحتاجها. وهذا كل شيء لهذا pset. اسمي روب، وهذا كان CS50 المالية.