>> DOUG لويد: حتى في موقعنا الفيديو على تركيب PHP،
تحدثنا كثيرا حول كيفية PHP يمكن استخدامها في سطر الأوامر
لتشغيل البرامج بطريقة نحن على دراية جدا مع من C.
ولكن كما ذكرت أيضا في هذا الفيديو، PHP
وقد وضعت في البداية ل تنفيذ برمجة الويب والمواقع الإلكترونية.
وحتى في هذا الفيديو نحن سنتحدث عن كيف يمكننا
استخدام PHP في سياق تطوير الشبكة.
>> ونحن نعلم، بالفعل، من لدينا شريط فيديو على HTML،
المواقع التي يتم بناؤها من مجموعة من الأكواد HTML
التي تحدد غويا هيكل صفحة الويب.
لكن المواقع التي هم بنيت مع نقية HTML
تعاني من جدا، قيدا خطيرا جدا.
>> وتوضيح هذا القيد، دعونا النظر في ما يلي.
وحتى الآن اريد بناء صفحة على شبكة الإنترنت أنه كلما الزيارات المستخدم ذلك،
انه يعطيني الحالي الوقت في كامبريدج، ماساشوستس،
عرض لآخر لحظة.
إذا كنت جعل هذا الحق الآن، قد أقول شيئا من هذا القبيل.
الوقت الحالي في Cambridge-- ذلك لدي علامات HTML، والعلامات الرأس، وعلامات العنوان،
هيئة tags-- الحالي الوقت في كامبريدج هو 14:08،
طبع الوقت العسكرية.
>> ماذا يحدث لو كان الآن 02:09، 14:09؟
بشكل جيد حتى الآن، مع HTML، ولدي للذهاب في وتغييره إلى 14:09.
ثم بعد دقيقة واحدة، لدي لتغييره مرة أخرى.
وكما يمكنك أن تتخيل، وهذا ربما أسوأ وظيفة من أي وقت مضى.
كنت المسؤول عن الموقع لصفحة ويب، وكل دقيقة، 24 ساعة في اليوم،
تحتاج لتحديث الوقت الحالي فتح time.html يدويا وتغيير
مجرد أن مقتطف من التعليمات البرمجية ليقول الوقت الحالي في الساعات والدقائق.
وهذا ربما ليس جدا حسن استخدام مواردنا،
سواء البشرية والحاسوبية.
>> المواقع التي هي كلها HTML ساكنة تماما.
الطريقة الوحيدة التي يمكن تحديث المحتوى، كما رأينا للتو،
هو فتح تلك المصادر يدويا الملفات، وتحريرها، وحفظها.
ثم عندما يقوم المستخدم ينعش الصفحة،
أو يزور الصفحة للمرة الأولى الوقت، أنها سوف تحصل على أحدث محتوى.
ولكن فقط لأننا تحريره يدويا.
>> إذا بدأنا لخلط بعض PHP هناك، لدينا قانون يمكن الحصول على الكثير أكثر مرونة.
ونحن يمكن أن يكون وسيلة لصفحاتنا أن تكون ديناميكية، أو تحديث نفسها،
دون الحاجة لدينا فقراء المسؤول عن الموقع في المثال السابق
أن يكون يدويا تحديث الأشياء.
يمكن أن تفعل ذلك تلقائيا.
ليس لدينا للتدخل.
يمكننا الحصول على بعض النوم.
الذي هو على الارجح شيء جيد إذا كنت تفعل الكثير من برمجة الويب.
>> حتى في CS50 IDE، ونحن تشغيل خادم الويب يسمى أباتشي.
انها تستخدم عادة للغاية، المصدر المفتوح نظام خادم الويب.
هذا النظام لديه القدرة على تفسير
PHP، والتي ستكون مفيدة إذا كنت تريد أن تفعل أي البرمجة PHP.
>> وفي IDE CS50، لدينا قيادة لجعل هذا من السهل جدا القيام به،
apache50 بدء.
ثم أن مائل المسار، خفض ل، خفض
دير، وهذا هو مجرد وسيلة شائعة حقا مشيرا إلى ما قمت بتحديدها هنا
هو المسار إلى خاص الدليل الذي
تريد أن تكون جذورها الموقع أو الصفحة الأولية،
أو المجلد الذي خادم الويب الخاص بك وسوف تبدأ في دراسة الملفات وخدمة
لهم حتى للعملاء الذين يطلبونها.
لذلك دعونا البوب ​​الى CS50 IDE، فقط ل تظهر لك، سريع حقا، كيف يعمل هذا.
>> حتى هنا في IDE CS50، وأنا في دليل يسمى أسبوع صفر تسعة.
ولدي two-- لدي أعدم أمر LS فقط
فوق لتظهر لك أن لدي دليلين هنا، PHP،
والذي هو مجموعة من الملفات التي استعملتها في فيديو تركيب PHP، ومن ثم PHP على شبكة الإنترنت،
الذي هو مجموعة من الملفات التي I أود أن استخدامها في هذا الفيديو.
>> وأود أن تبدأ مثيل خادم الويب
مع محتويات المجلد PHP على شبكة الإنترنت كما يتم تقديم الملفات حتى.
ذلك ما أنا ذاهب الى القيام به؟
أنا ذاهب لكتابة apache50 الفضاء بدء، PHP الفضاء، اندفاعة على شبكة الإنترنت.
هذا هو المسار إلى الدليل من أين أنا حاليا.
ثم أنا هاهنا.
انها تنوي القيام به ل قليلا من الاشياء هنا.
ثم انه ذاهب الى القول، التي أباتشي بنجاح.
الموقع الخاص بك هو متاح الآن at-- و ثم هناك URL للموقع.
ذلك ما أنا ذاهب الى القيام به؟
انا ذاهب الى نسخ هذا بسرعة.
وانا ذاهب لفتح up-- و أنا تصغير قليلا here--
انا ذاهب لفتح علامة تبويب جديدة في كروم.
وانا ذاهب لزيارة هذا العنوان.
>> انا ذاهب الى هاهنا.
انها تسير لتحميل.
وسوف تصغير مرة أخرى.
ويمكننا أن نرى هنا هو محتويات بلدي PHP دليل على الشبكة العالمية.
>> وحتى الآن ما يحدث في الأساس هنا، يا مثيل CS50 IDE
وتخدم ما يصل هذه الملفات ل أي شخص يطلب منهم.
وعلى مدار هذا الفيديو، ونحن سوف نوع من
نلقي نظرة على مجموعة من هذه الملفات المختلفة في السياق.
>> لاختبار هذا اباتشي يعمل الخادم،
الذي يجري عموما ليكون هذا هو الحال في CS50 IDE،
ولكن إذا قمت بذلك بشكل عام، والبدء في بناء الويب الخاص بك
الخوادم، وهناك حقا النوع الشائع من البث التناظري الى،
"مرحبا العالم"، والذي عادة ما يكون تستخدم لتطوير PHP على شبكة الإنترنت.
وهو أن يكون ملف تتألف من مجرد هذا code--
محدد PHP مع مجموعة من المعلومات PHP، بين قوسين، منقوطة بين بين.
الذي هو في الأساس الخاصة وظيفة PHP تخبرك
ما هو إصدار PHP تقوم بتشغيله.
>> حتى في CS50 IDE، ولدي هذا الملف متاح فقط
لتظهر لك ما هذا سيبدو.
لذلك أنا أبحث في مؤشر بلدي من وجهة نظري PHP سبيل المثال.
هو بلدي اباتشي سبيل المثال تشغيل محتويات PHP ويب.
ولدي ملف يسمى هنا info.php.
>> انا ذاهب الى فوقه، تصغير.
هذا هو ما كنت تريد الذهاب لمعرفة، الى حد كبير.
هذا هو مجرد تقول لي يعمل الخادم اباتشي بلدي.
وهذا هو، على ما يبدو، ل إصدار PHP أنني التشغيل.
هذا هو بلدي التناظرية إلى "مرحبا العالم".
>> إذا كنت لا تعرف الأمور التشغيلية.
لذلك نحن على ما يرام.
يمكننا أن ننطلق من هنا.
>> لذلك دعونا إعادة النظر في هذا مثال الوقت الذي كنا
الحديث عن مع مشرفي المواقع الفقراء الذين اضطروا إلى تحديث الصفحة باستمرار.
قد يكون هذا الإصلاح لكيفية وأود أن تنفيذ الأمور
بحيث لم يكن المسؤول عن الموقع لديهم للحفاظ على تحديث الوقت.
انها مجرد نوع من يحدث تلقائيا.
>> في الأسفل، وHTML، انها تشبه إلى حد ما، مع استثناء واحد.
ولكن هنا أنا عندي بعض PHP في الأعلى.
لقد، على ما يبدو، ودعا هذا وظيفة date_default_timezone_set.
>> ونحن لا نتحدث عن كل هذه الوظائف في CS50،
لديه ربما PHP عشرات الآلاف.
قد يكون هذا نوعا من مبالغة، ولكنه قد لا يكون.
انها حصلت على الكثير من الوظائف التي بنيت في.
ولذا فإن هذه الوظيفة على ما يبدو يحدد المنطقة الزمنية بصفتي الولايات المتحدة / الشرقية،
وهي المنطقة الزمنية التي أنا حاليا في صنع هذا الفيديو.
>> ثم أقوم بإجراء مكالمة ل دعت وظيفة، التاريخ.
وعلى ما يبدو، وأنا تخزين HIS من ما يسمى والوقت.
فما الذي يحدث هنا؟
>> حسنا، ما هو الأساس يحدث هو، أنا إجراء مكالمة
لبعض الخادم الذي يتم الانتقال إلى قل لي ما هو الوقت المناسب لعرضه.
وأنا تحويله إلى تنسيق ساعات والدقائق والثواني.
والسبب انها العاصمة H هو هذا سوف تعطيني 24 ساعة، وليس 12
ساعة، والتي ستكون ح الصغيرة.
وأنا مجرد تخزين أن في متغير يسمى، والوقت.
بحيث السطر الثاني من PHP هناك، والدعوة إلى وظيفة،
الآن، هو مجرد الحصول على بعض السلسلة، والذي هو
الذهاب الى تعطيني التاريخ، و الوقت، وحفنة من المعلومات الأخرى.
والحجة الأولى هناك، أن HIS، هو مجرد استخراج جزء مهم
أن ما يهمني في هذا المثال، وهو ساعة، دقيقة، والثانية.
لذلك هذا هو كل ما يجري.
لذلك أنا تخزين أنه في الوقت $ متغير.
ثم إلى أسفل في أسفل جدا هناك، وأنا
يكون هذا الاختزال ل طبع في الوقت الحالي.
لذلك أنا ذاهب لمجرد طباعة ما هو الوقت الحالي.
>> لذلك دعونا نلقي نظرة على هذا في IDE CS50، ونرى كيف نحن الآن
إنقاذ أن المسؤول عن الموقع الكثير من المتاعب.
كل الحق، لذلك أنا هنا مرة أخرى مرة أخرى في الدليل الجذر
الدرجة أباتشي بلدي.
ولدي ملف يسمى هنا time.php.
أنا ذاهب لمجرد النقر على ذلك.
وسوف انتقل لأعلى أو ل نحن في أسرع إلى حد الآن.
الوقت الحالي هو 14:20:34.
لذلك أنا أفعل ذلك ساعة، الدقائق والثواني.
ويمكنني تحديث الصفحة والحصول على الوقت الجديد.
--41.
انا ذاهب لتحديث الصفحة والحصول على موعد جديد، 44، 46، 47.
>> لذلك، وأنا واضح لا تغيير أي شيء بنفسي.
أنا هنا تحديث الصفحة.
لذلك لا يمكن أن يكون هناك مرة أخرى تحريره.
وأعدكم، وأنا لا لديك أي الحلفاء
الذين يعدلون الملف نيابة عني على الجانب.
>> أنا فقط باستخدام تلك الوظيفة PHP، الوقت، لتوليد الوقت بالنسبة لي
تلقائيا.
ذلك أنه حتى لو أنا نائمة، وخادم الويب الخاص بي قيد التشغيل،
المستخدم الذي يزور تلك الصفحة لا تزال ذاهب للحصول بالضبط الوقت الحالي.
لذلك هذا امر جيد جدا.
لقد قدمت موقعي أكثر ديناميكية مع ليس كثيرا كود PHP.
كان مجرد سطرين من التعليمات البرمجية ومن ثم قليلا من بيان الطباعة.
وبالفعل لدي موقع أكثر حيوية بكثير
من هذا المثال الأول رأينا في بداية الفيديو.
>> لذلك، نذكر من الفيديو على تركيب PHP أن عند تشغيل مترجم PHP
برنامجنا، فإنه يتجاهل كل شيء هذا ليس داخل المحددات PHP،
البصق بها.
في هذا المثال، ما الشيء انها بصق كان HTML.
ويعني هذا يمكنني الآن بعثر HTML و PHP معا.
لأن المترجم فقط تجاهل HTML والمخرجات حرفيا.
وهو أمر جيد، أليس كذلك؟
>> لأن يفترض، في نهاية اليوم،
وأود موقعي ل يتم بناؤها من HTML.
بحيث أن أي متصفح ويب يمكن ترجمة ، أو فهم HTML على الصفحة
وجعله كشيء نحن يمكن أن نفهم الواقع كبشر.
ويمكنني فقط استخدام PHP لأجزاء من موقعي
وتتطلب ديناميكية، التي تتطلب مني أن الأشياء التي تحديثه باستمرار.
المعلومات الثابتة يمكن أن تبقى نفسها.
>> حسنا، هذا جيد.
ولكن لماذا أفعل هذا؟
لماذا يمكنني المزج بين HTML و PHP؟
أنا فقط يمكن طباعة جميع HTML، وذلك باستخدام وظيفة PHP الطباعة.
لماذا أنا لا أفعل ذلك؟
التفكير في الامر لفترة ثانية.
>> لماذا، عندما أتمكن من مجرد طباعة out-- I يمكن أن يكون خطوط PHP أن نقول فقط،
طباعة العلامة HTML، رأس الطباعة.
لماذا أنا لا أفعل ذلك؟
لماذا أنا خلط PHP و HTML؟
>> حسنا، إذا كنت تعتقد عن ذلك لفترة ثانية.
PHP، المترجم له لتفسير ما يراه.
وهكذا ستكون لدينا لتنفيذ سطر من التعليمات البرمجية.
طباعة HTML.
طباعة العلامة رئيس المفتوح.
طباعة علامة العنوان مفتوحا.
انها ستكون لدينا ل تنفيذ وتفسير
أن كل خطوة واحدة على الطريق.
لماذا لا مجرد السماح لل مترجم يتستر ما يزيد قليلا
الأشياء التي لا يفهم وتفعل ذلك تلقائيا؟
انها سوف نجني الكثير من الوقت خلط بلدي HTML و PHP بلدي معا.
>> وولهذا السبب نحن لا يكون مجرد محدد PHP مفتوحة
ومن ثم طباعة فقط من أصل كامل محتوى الصفحة لدينا كما PHP واحدة عملاقة
الدعوة إلى وظيفة، طباعة، ثم وثيق محدد PHP وننتهي.
ولهذا السبب فإننا مزجها معا.
>> حتى الآن، لم نر الكثير من فرق من جملة PHP العام.
انها كانت واضحة جدا.
لقد رأينا بالفعل علامة استفهام، على قدم المساواة.
شاهدنا اثنين من المكالمات وظيفة جديدة، ولكن لا شيء يتوهم يحدث في الواقع.
دعونا ربما جعل الأمور مربي الحيوانات قليلا.
ماذا لو كنا نريد لتمرير المعلومات بين ملفات PHP مختلفة،
لذلك يمكن أن ربما المستخدم تقديم معلومات بالنسبة لي.
وبعد ذلك يمكن أن تفعل شيئا مع ذلك في صفحة أخرى.
>> لذلك PHP لديه الدعم ل ما يسمى السوبر العالمية
المتغيرات، التي تبدو رهيبة جدا.
انهم حقا فقط صفائف النقابي العملاقة
التي تساعد على تنفيذ هذه وظائف للمرور
المعلومات بين الملفات التي PHP والقائمة على خادم الويب لدينا.
>> أول هذه السوبر ويسمى غلوبالس $ _GET.
وانها على الارجح أبسط لفهم.
ما يحدث مع $ _GET؟
حسنا، في الأساس، المستخدم الذهاب إلى كتابة معلومات اضافية
في نهاية عناوين المواقع لدينا.
وكل ما اكتب، على افتراض لقد تنسيقه بطريقة معينة
دعا سلسلة الاستعلام، الذي هو مجرد مجموعة من أزواج قيمة المفتاح فصل
عن طريق اقحام.
وتلك أزواج قيمة المفتاح يكون تخزينها في مجموعة النقابي $ _GET.
ومن لدينا شريط فيديو على تركيب PHP، ونحن نعلم
كيفية العمل مع صفائف النقابي بالفعل.
حتى هنا هو مثال بعض PHP، حيث ربما أنا
استخراج كل من أزواج قيمة المفتاح أن المستخدم المتوفرة في URL.
لذلك لدي المفتوح محدد PHP.
لدي حلقة foreach.
أنا بالتكرار عبر السوبر دعا صفيف العالمي $ _GET.
>> وأريد أن أكون قادرة على الرجوع إلى كل من مفتاح وقيمة.
وأنا فقط طباعتها من كل واحد على ما يبدو
العلامة فقرتها الخاصة هنا.
أنا طبع بعض HTML والتحريف القيم
مفتاح وقيمة في هذا البيان.
>> لذلك دعونا نلقي نظرة على كيف يمكن لهذا سيعمل فعلا على IDE لدينا.
وربما هذا سوف يساعد توضيح قليلا
ما تحصل عليه هو القيام بالفعل.
لذلك أنا هنا مرة أخرى في جذر الويب الخاص بي.
وسوف التكبير في قليلا لتظهر لك
أن لدي ملف يسمى، get1.php.
>> لذلك دعونا انقر على get1.php.
وأنا لا نرى أي محتوى.
هذا غريب، أليس كذلك؟
حسنا، لا حقا في الواقع.
لأنني لم أكن توريد أي شيء في URL.
انا ذاهب الى get1.php، ولكن أنا لا تقدم أي أزواج قيمة المفتاح
كجزء من سلسلة الاستعلام بلدي.
لذلك دعونا إضافة سلسلة الاستعلام ونرى ما يمكن أن يفعله هذا الملف.
>> لتبدأ سلسلة استعلام لك فقط اكتب علامة استفهام.
ثم ربما أنا أقول اسم = دوغ والسنة = 2015.
وبعد ذلك سوف هاهنا.
لاحظ الآن ما يحدث.
ما زلت في get1.php.
ولكن الآن لقد زودت أزواج قيمة المفتاح، وأنا
طباعتها من تلقاء نفسها اسم paragraph--، العام Doug--، 2015.
هذا هو بالضبط رمز أننا فقط شاهدنا على الشريحة قبل لحظة.
>> وإذا كنت ترغب في إضافة وربما آخر زوج قيمة المفتاح، والطبقة = CS50.
الآن لدي قيمة أساسية أخرى الزوج هذا ما طباعتها
عندما كنت إعادة النظر في URL مرة أخرى.
الآن ربما هذا ليس تنسيق جيد بشكل فظيع.
لذلك ليس لدي نسخة أخرى من get.php.
انها get2.php.
>> الفرق في هذا واحد هو ولدي ملف CSS،
وذلك بتنسيق الأمور أكثر قليلا لطيف بالنسبة لي.
انها ربما ليس أكثر CSS جمالا في العالم.
ولكن انها مجرد طريقة أخرى للقيام بذلك.
إذن أستطيع الوصول لمتغيرات بي باستخدام $ _GET.
وفي هذه الحالة، أنا مجرد نوع من جعل CSS قليلا أكثر نزوة.
وإذا كنا البوب ​​ل IDE بلدي لثانية واحدة،
سأريكم في بلدي PHP على شبكة الإنترنت الدليل هنا، get2.php.
سنقوم فتحه، بعض HTML هنا.
على ما يبدو أنا ربط في ذلك ملف CSS كنت أتحدث عنه.
I فتح العلامة الجدول.
ثم وهنا قال لي حلقة Foreach.
>> هنا هو أنه، ما أظهر على الشريحة من قبل.
والفرق الوحيد هو أنا يكون هذا المفتاح والقيمة CSS
التصميم أنني تطبيق إليها.
ولكن هذا كل ما أفعله، وأنا بالتكرار عبر $ _GET للحصول على كل
من أزواج قيمة المفتاح.
>> وأنا طباعتها كما في الجدول.
وعلى ما يبدو، وأنا تنسيق مفاتيح في اتجاه واحد، مع <td الطبقة = "المفتاح".
لذلك يبدو أن ينطبق على بعض فئة محدد في بلدي ملف CSS GET.CSS.
وعلى ما يبدو، وأنا طبع قيمي بطريقة مختلفة تماما.
الذي هو الى حد كبير ما رأيناه هنا، حيث
طبعت قيمنا مع خلفية زرقاء،
وكانت تطبع لنا مفاتيح مع خلفية صفراء.
لذلك كيف لي ان اتلقى تلك الأنماط المختلفة.
لأن أنا باستخدام CSS الطبقات المختلفة.
ولكن هذا الى حد كبير لأنها GET.
وكأنني مجرد استخراج المعلومات.
وفي هذه الحالة، أنا فقط الطباعة على الشاشة.
أنا اخراجه من URL، وهذا ما يفعله GET بالنسبة لنا.
>> هل ترى ممكن المشكلة على الرغم من هنا؟
لماذا ونحن ربما لا تريد استخدام $ _GET؟
ماذا لو، ربما، لقد جعل هذا الاستعلام؟
get3.php --to، وأنا لم يكن لديك على IDE بلدي.
انها مجرد ملف افتراضي.
ولكن لاحظ هنا أن يبدو يمر كلمة المرور الخاصة بي في.
وربما كلمة المرور الخاصة بي هي محرجة.
أو ربما أنا لا نريد من الناس أن تعرف ما هي كلمة المرور الخاصة بي، والحق.
>> إذا أنا فمررها though-- إذا أنا باستخدام طريقة $ _GET، ما يحدث هو،
التي ستكون في URL.
لذلك ربما بعض المتطفلين تكون قادرا على رؤية ما أفعله.
أنا قد يمر عليها معلومات حساسة.
أو ربما انها ليست حتى المتطفلين.
ربما انها مجرد صديقك الذي يقف على كتفك.
والآن هم يعرفون كلمة المرور إلى حساب الفيسبوك الخاص بك.
>> وربما انهم لن فعل أي شيء معها.
ولكن إذا كانت كلمة السر المقدمة عبر $ _GET لالفيسبوك،
الآن أنهم يعرفون كلمة السر الفيسبوك.
لأنه هناك حق في URL عندما قمت به تقديم المعلومات.
>> وهكذا ربما هذا ليس الأفضل طريقة لتمرير معلومات حساسة.
انها وسيلة جيدة لتمرير المعلومات ما نقوم به لا سيما
يهتمون كما يكون حساسا جدا.
لأن GET سريع جدا، بالنسبة إلى جلوبل عظمى أخرى
ونحن في طريقنا للحديث عنها.
ولكن ربما ليس أفضل وسيلة للحصول على معلومات حساسة.
>> لأننا قد ترغب في استخدام ما يسمى $ _POST،
وهو متغير سوبر عالمي آخر.
انها مجموعة النقابي آخر.
لذلك يعمل الى حد كبير بالضبط نفس GET.
باستثناء، بدلا من استخراج معلومات من URL،
فإنه لا شيء من خلال رؤوس HTTP.
لذلك نذكر من وجهة نظرنا الفيديو على HTTP، تحدثنا
حول كيفية المتصفحات، الخوادم، ويتصل الزبائن.
ويتم تمرير المعلومات مرة أخرى وإيابا في رؤوس HTTP.
>> مع $ _POST، والمعلومات هي عادة أرسلت من خلال تلك رؤوس HTTP.
وسنرى الأكثر شيوعا $ _POST في في سياق تقديم أشكال HTML.
يمكنك الاستمرار في استخدام أشكال HTML أن يقدم أشياء للحصول على.
لكنهم عادة ما تستخدم في سياق POST.
>> حتى هنا مثال لشكل HTML.
ونحن الآن قد رأيت هذه من قبل، ولكن لدينا لم أر هذا الجزء، والعمل = "التدوينة".
لذلك عندما تحدثنا عن أشكال في سياق HTML، وكان لي على زر إرسال.
وإذا كنت تذكر، فما استقاموا لكم فاستقيموا انقر على إرسال ثم صفحة استرجعت فقط،
لم يفعل أي شيء.
>> في هذه الحالة، وأنا تقديم مهما كنت اكتب في هذا النموذج،
إلى ملف PHP دعا التدوينة.
وعلى ما يبدو، فإن الطريقة أنا أفعل ذلك في هذا النموذج يستخدم الأسلوب POST.
وذلك في كل قطعة من المعلومات انني اكتب في هذا النموذج
وسيقدم من خلال رؤوس HTTP.
>> وسوف تكون متاحة في التدوينة، لأن هذا العمل من مستواي.
وسوف تكون في متناول من خلال الذهاب الى $ _POST.
وعلى ما يبدو، فإن الطريقة يمكنني الحصول على كل عنصر الفردية
مع أن مجموعة النقابي هو مع هذه السمة،
السمة اسم من العلامات مساهمتنا.
>> لذلك يبدو لي أن أقول $ _POST مربع أسم قوسين للحصول على كل ما على المستخدم
كتبته في الحقل الأول.
و$ _POST كلمة السر، من PW بدلا من ذلك، للحصول على كل ما كتبته المستخدم
في الحقل الثاني.
>> لذلك دعونا نلقي نظرة على أكثر من هذا في IDE CS50.
لذلك نحن هنا، وسوف أكون تكبير لثانية واحدة.
ولدينا ملف يسمى post.html.
I انقر على post.html.
في أعلى جدا هنا ولدي نموذج ويب بسيط جدا.
انها شكل رأينا فقط على الشريحة قبل الثانية.
>> أستطيع أن اكتب، دوغ، ويمكنني اكتب كلمة المرور الخاصة بي، والتي علينا جميعا
أعرفه هو squadgoals.
وسأضرب إرسال.
وعلى ما يبدو، أن تقدم لالتدوينة.
وأنا على ما يبدو طباعة ذلك.
لذلك أنا التخلص من جميع أمن هذا المنصب يعطيني فقط عن طريق طبع
اسم المستخدم وكلمة المرور.
>> اسم المستخدم هو دوغ.
كلمة مرور المستخدم هو squadgoals.
كيف لم تفعل هذا؟
حسنا، البوب ​​إلى IDE مرة أخرى لفترة ثانية.
وسوف انزل الى اتخاذ نظرة على التدوينة، الذي كان
الإجراء الذي اعتدت أن تقدم هنا.
وهذا هو عمل شكل HTML بلدي.
وهذا كل ما أفعله.
اسم المستخدم هو، وأنا الطباعة من محتويات $ _POST "اسم".
ثم كلمة المرور الخاصة بالمستخدم هو $ _POST "كلمة السر".
لذلك أعطيت هذه المعلومات عن طريق تقديم نموذج HTML.
ويمكنني استخراج الآن باستخدام $ _POST لأن أسلوب I تستخدم لنقل
وكانت البيانات مع هذا النموذج الأسلوب POST.
>> الآن انها ربما لا great-- لذلك أنا ذاهب
للعودة لثانية واحدة لدينا مجموعة here--
انها على الارجح ليست كبيرة إذا أنا تقديم المعلومات مع POST،
وهو ظاهريا أكثر أمنا.
انها على الارجح ليست كبيرة إذا أنا أفعل ذلك وبعد ذلك
طبع كلمة المرور الخاصة بالمستخدم.
ومن المفترض أن تكون أكثر أمنا.
>> OK، ولكنها ليست آمنة تماما.
وحتى في هذا القليل مقتطف هنا أريد
لمجرد لفت الانتباه لبعض المخاوف الأمنية البيانات، مجرد شيء
لنفكر كما كنت العمل أو استخدام الإنترنت.
هذا هو مجرد شيء للنظر.
>> قلت لكم ان المعلومات قدمت من خلال رؤوس HTTP
عند استخدام الأسلوب POST.
وهو ما يعني أنهم يست آمنة تماما.
انهم من الصعب العثور على من باستخدام طريقة GET، حيث
انها مجرد حق في URL.
ولكن لا يزال هناك وسيلة للعثور عليه.
وأريد فقط أن تظهر لكم هذا لأنك ربما
البدء في التفكير في هذا الأمر كما كنت تعمل، أو استخدام
المواقع وتقديم كلمات السر، وربما استخدام
نفس كلمة المرور في الكثير من أماكن مختلفة.
أعرف أن ما زال في الواقع جميلة من السهل معرفة كلمة المرور لشخص ما.
>> وحتى هنا، وانا ذاهب للذهاب إلى post2.html.
والفرق مع post2.html وpost2.php غير دقيق جدا.
والفرق هو فقط أنني لا تطبع
كلمة السر عندما أقدم النموذج.
>> لذلك أنا ذاهب لكتابة، دوغ.
وانا ذاهب الى كتابة في، squadgoals، حتى
على الرغم من أننا نعرف أن هذا هو السر.
قبل أن تقدم تشكيل الرغم من ذلك، أنا ذاهب
لفتح أدوات المطور، فقط ل تظهر لك ما سيحدث هنا.
حتى في كروم، وأنا ذاهب لمجرد ضرب F12.
وهذا سوف يفتح لي أدوات المطور على الجهة اليمنى.
أنا لم تقدم النموذج حتى الآن.
الآن انا ذاهب الى ضرب إرسال في النموذج.
وعلى ما يبدو، ولقد تقدمت دعوة ل، أو أنني قدمت طلبا
لpost2.php، الأمر الذي يجعل الشعور.
انا ذاهب الى النقر على ذلك.
>> ثم أكثر من هنا، وانا ذاهب إلى الضغط على الرؤوس.
هناك الكثير من الاشياء يجري هنا.
ولكن إذا كنت انزل الى جدا أسفل، لاحظ there-- الحق تقويمي
وقد حجبه عن حق second-- هناك في أسفل الزاوية جدا،
name-- دوغ، squadgoals pw--.
حتى على الرغم من أنا باستخدام وظيفة طريقة، التي هي أكثر أمنا،
فقط أن ندرك أنه عندما قمت بذلك، كنت لا تزال نقل المعلومات
من خلال HTTP.
ويمكن أن يكون لا يزال وجدت من قبل العدو.
انها مجرد شيء ونحن في طريقنا لديك للتعامل مع الواقع.
ربما هناك بعض الطرق لتشفير لدينا كلمات المرور قبل أن نرسل لهم أكثر،
التي من شأنها أن تكون أفضل، وأنا لا أفعل هنا.
>> ولكن مجرد أن ندرك أن هذا المنصب طريقة حدودا أيضا.
انها تحسنا GET في حيث كونها مرئية على الفور.
ولكنها ليست إصلاحا كاملا.
حتى هنا مثال سريع في المنزل ممارسة
التي يمكنك استخدامها للحصول على بعض ممارسة العمل مع PHP.
إنشاء الزوج التالية من صفحات الويب.
يجب أن تكون أول مجرد بسيطة جدا تشكل مع حقل واحد وإرسال
زر.
لذلك تشبه الى حد بعيد ما كنا لم يفعلوا مع post.html.
>> وثم الثانية ملف يجب عليك إنشاء
هو ملف، ملف PHP، أن يتوقع المدخلات، عبر POST،
وبناء على ما كتبته المستخدم، والتي يمكنك أن تفترض ستكون عددا صحيحا.
لم يكن لديك للقيام بأي التحقق من الخطأ أو ما شابه ذلك.
يمكنك أن تفترض المستخدم سوف اكتب قيمة عددية،
أو شيء من هذا القبيل فسره PHP كعدد، في هذا النموذج.
كنت ترغب فقط في خلق ن ن حسب الجدول الضرب.
>> إذا كان الأمر كذلك يقوم المستخدم بإرسال 10، ونحن نريد ل لديك جدول 10 بنسبة 10 الضرب.
إذا قدم المستخدم 12، ونحن نريد جدول 12 بنسبة 12 الضرب.
فقط حتى تتمكن من معرفة ما نحن في القيادة هنا،
سوف نلقي نظرة على هذا الملف في IDE بلدي.
>> حتى هنا في IDE، لدي mult_form.html.
أنا فوقه.
كل ما أريد القيام به هو تقديم القيمة.
نوع في 10، وضرب إرسال.
وعلى ما يبدو، mult_table.php، التي يمكننا أن نرى في الجزء العلوي هناك في URL،
أنا خلق 10 10 جدول الضرب.
>> إذا كنت اكتب 15 وضرب إرسال، وأنا الآن لديك جدول 15 بنسبة 15 الضرب.
أنا، بالطبع، لن تظهر لك محتويات mult_table.php،
لأن ذلك من شأنه اتخاذ متعة للخروج من هذا في المنزل ممارسة.
لكنه وسيلة رائعة للحصول على بعض ممارسة العمل مع الحلقات PHP
وPOST، بسيطة جدا، ونأمل الإجهاد سبيل المثال مجانا، فقط
لتفعل قليلا من الممارسة.
ولقد حصلت على القليل CSS مستمرة هنا للجعل مائدتي الفردية
خلايا مجرد نوع من موسيقى البوب ​​قبالة قليلا وتبدو أكثر قليلا
مثل جدول الضرب، بدلا من مجرد النص فقط
نوع من يجلس هناك.
آخر السوبر العالمية سوف نتحدث عن في هذا الفيديو هو شيء يسمى
$ _SESSION.
وربما هذا هو في الواقع أفضل مثال على شيء
نحن سوف تنظر العالمي.
انها مجموعة أخرى.
انها مجموعة النقابي آخر.
ولكن يمكن الوصول إليها من خلال كل ملف PHP موجود على نظامنا.
>> ليس لدينا لتقديم معلومات من صفحة واحدة في وقت واحد
كما نفعل مع GET ومع POST.
انها دائما هناك.
وهكذا وهذا شيء عظيم لصفحة حيث يتم تسجيل دخولك، على سبيل المثال،
وتريد معلومات تسجيل الدخول الخاصة بك أن تستمر من صفحة الى صفحة إلى أخرى.
>> يمكنك فقط بدء جلسة ثم استخدام $ _SESSION لحفظ الأشياء مثل
اسم المستخدم، أو المستخدم معلومات معرف، وهلم جرا.
وستبقى تلك المعلومات في $ _SESSION حتى تدمير الدورة
قليلا في وقت لاحق.
>> كتابة المواقع الحيوية مع PHP يجعلها أفضل كثيرا.
المواقع أصبحت جدا دينامية، وكنت لا
يجب أن نفعل أكثر من ذلك بكثير جدا مما ما عدا ذلك قد فعلت فقط
يفعل ذلك مع HTML.
ولكنه يتطلب ممارسة، الكثير من الممارسة.
>> كنت تعرف كيفية العمل مع C، وهكذا قفز إلى PHP ليست صعبة للغاية.
ما هو ربما قليلا وتعمل صعبة بعض الشيء
مع هذه الفكرة الجديدة من GET و POST، وربما خلط الخاص بك HTML و PHP الخاصة بك
سويا.
ولكن أيضا أن ندرك أن الإنترنت هو مستودع هائل من المعلومات.
وثائق PHP هي المتاحة في كثير من الأماكن، ولكن ربما أكثر
قانوني في php.net.
ويمكنك أن تجد هناك، الكثير من وظائف مختلفة،
وحالات الاستخدام، والأمثلة على الأمثلة، على سبيل المثال.
حيث إذا كنت ترغب في محاولة والشكل معرفة كيف يفعل شيئا، كل الاحتمالات،
من المحتمل القيام به شخص ما من قبل لك.
ويمكنك استخدامها كما إلهام لتنفيذ كل ما
فمن كنت في محاولة لتنفيذ جدا.
>> أنا دوغ ويد.
هذا هو CS50.