>> DOUG LLOYD: ასე, რომ ჩვენს ვიდეო PHP სინტაქსი,
ჩვენ ვისაუბრეთ ბევრი შესახებ, თუ როგორ PHP შეიძლება გამოყენებულ იქნას ბრძანებათა ზოლს
პროგრამების გასაშვებად ისე, რომ ჩვენ საკმაოდ იცნობს C.
მაგრამ, როგორც მე ასევე აღნიშნა, ამ ვიდეოში, PHP
თავდაპირველად შემუშავებული განახორციელოს ვებ პროგრამირების, ვებ.
ასე რომ, ამ ვიდეო ჩვენ აპირებს ვისაუბროთ, თუ როგორ
გამოყენება PHP ვებ განვითარების კონტექსტში.
>> ჩვენ ვიცით, უკვე, ეხლა ჩვენი ვიდეო HTML,
რომ საიტებზე შენდება გარეთ კომპლექტი HTML tags
რომ სემანტიკურად განსაზღვროს სტრუქტურა ვებ გვერდზე.
მაგრამ საიტებზე, რომლებიც აშენდა სუფთა HTML
განიცდიან ძალიან, ძალიან სერიოზული შეზღუდვა.
>> და ასახავს ამ შეზღუდვა, განვიხილოთ შემდეგ.
ასე რომ, ახლა მე მინდა ავაშენოთ ვებ გვერდი ყოველთვის, როცა შესახებ ვიზიტების ის,
ეს მაძლევს მიმდინარე დრო კემბრიჯში, Mass.,
აჩვენებს, რომ ეს უკანასკნელი წუთი.
თუ მე ვაკეთებდი ამ წუთას, შეიძლება ითქვას, რაღაც მსგავსი.
მიმდინარე დრო Cambridge-- ასე მაქვს HTML tags, ხელმძღვანელი tags, სათაური tags,
სხეულის tags-- მიმდინარე დრო კემბრიჯის არის 14:08,
ბეჭდვის სამხედრო დრო.
>> რა მოხდება, თუ ეს არის 2:09 PM, 14:09?
ისე ჯერჯერობით, HTML, მაქვს წავიდეს და შეცვალოს იგი 14:09.
და მაშინ ერთი წუთის შემდეგ კი, უნდა შეიცვალოს კიდევ ერთხელ.
და თქვენ წარმოიდგინეთ, რომ ალბათ, ყველაზე უარესი სამუშაო ოდესმე.
თქვენ სუპერვიზორს ვებ გვერდზე, და ყოველ წუთს, 24 საათის განმავლობაში,
თქვენ უნდა განაახლოთ მიმდინარე დროს ხელით გახსნის time.html და შეცვლის
მხოლოდ ის, რომ snippet კოდი რომ ვთქვათ, მიმდინარე დრო საათი და წუთი.
ეს, ალბათ, არ არის ძალიან კარგი გამოყენება, ჩვენი რესურსების,
როგორც ადამიანის და გამოთვლითი.
>> საიტები, რომლებიც ყველა HTML სრულიად სტატიკური.
ერთადერთი გზა შეგიძლიათ განაახლოთ შინაარსი, ჩვენ უბრალოდ ჩანს,
არის ხელით გახსნა იმ წყარო ფაილი, შეცვალონ მათ, და მათი შენახვა.
და მაშინ, როდესაც მომხმარებელი ამხნევებს გვერდზე,
ან სტუმრობს გვერდზე პირველი დროს, მათ მიიღებთ უახლესი მობილურისთვის.
მაგრამ მხოლოდ იმიტომ, რომ ჩვენ ხელით დამონტაჟებული იგი.
>> თუ ჩვენ დავიწყებთ აურიეთ ზოგიერთი PHP იქ, ჩვენი კოდი შეგიძლიათ მიიღოთ ბევრი უფრო მოქნილი.
და ჩვენ შეგვიძლია აქვს გზა ჩვენი გვერდები იყოს დინამიური, ან განაახლოთ თავს,
გარეშე მოითხოვს ჩვენი ცუდი საიტის წინა მაგალითად
უნდა იყოს ხელით განახლება რამ.
მათ შეუძლიათ ამის გაკეთება ავტომატურად.
ჩვენ არ უნდა ჩაერიოს.
ჩვენ შეგვიძლია მივიღოთ ძილის.
რაც ალბათ კარგია, თუ თქვენ აკეთებთ ბევრი ვებ პროგრამირების.
>> ასე რომ, CS50 IDE, ჩვენ აწარმოებს ვებ სერვერზე მოუწოდა Apache.
ეს არის ძალიან ხშირად გამოიყენება, ღია სერვერზე სისტემა.
ეს სისტემა სიმძლავრე ინტერპრეტაცია
PHP, რომელიც იქნება სასარგებლო, თუ გსურთ რაიმე PHP პროგრამირების.
>> და CS50 IDE, ჩვენ გვაქვს ბრძანება იმისათვის, რომ ეს ძალიან ადვილია ამის გაკეთება,
apache50 დაიწყება.
და მაშინ, რომ ხაზი გზა, ირიბის, სლეში
რეჟ, რომ უბრალოდ ძალიან გავრცელებული გზა მითითებით, თუ რა თქვენ აქ მითითებული
არის გზა, კონკრეტული დირექტორია, რომ თქვენ
გვინდა, რომ იყოს root საიტი, ან root გვერდი,
ან საქაღალდეში, რომელიც თქვენს სერვერზე დაიწყება შეამოწმოს ფაილი და ემსახურება
მათ კლიენტებს, რომლებიც მოითხოვენ.
მოდით პოპ მეტი CS50 IDE, უბრალოდ გაჩვენებთ, მართლაც სწრაფი, როგორ მუშაობს.
>> ასე რომ, აქ CS50 IDE, მე ვარ დირექტორია მოუწოდა კვირა Zero Nine.
და მე two-- მაქვს გაფორმებული აქვს LS ბრძანება მხოლოდ
ზემოთ გაჩვენებთ, რომ მე მაქვს ორი დირექტორიები აქ, PHP,
რომელიც არის კომპლექტი ფაილი რომ მე გამოიყენება რომ PHP სინტაქსი ვიდეო და შემდეგ PHP-ვებგვერდი,
რომელიც არის კომპლექტი ფაილი, რომელიც მე მინდა გამოვიყენო ამ ვიდეო.
>> და მე მინდა, რომ დაიწყოს ვებ სერვერზე მაგალითად
ერთად შინაარსი PHP ვებ დირექტორია როგორც ფაილი ემსახურება up.
რა ვარ მე აპირებს?
მე ვაპირებ აკრიფოთ apache50 სივრცეში დაიწყოს, სივრცე PHP, dash ვებ.
სწორედ გეზი დირექტორია სადაც მე გაკეთებული ვარ.
მერე მოხვდა შეიტანეთ.
ის აპირებს გააკეთოს ცოტა პერსონალის აქ.
და მაშინ ის ვთქვათ, Apache წარმატებულად დაიწყო.
თქვენი საიტი არის შესაძლებელი at-- და მაშინ იქ URL საიტი.
რა ვარ მე აპირებს?
მე ვაპირებ სწრაფად კოპირება ამ.
და მე ვაპირებ გახსნას up-- და მე დააშორებს ცოტა აქ
მე ვაპირებ გახსენით ახალი tab in Chrome.
და მე ვაპირებ, რომ URL.
>> მე ვაპირებ დააჭიროთ.
ის აპირებს ჩატვირთვა.
და მე დააშორებს ერთხელ.
და ჩვენ ვხედავთ აქ არის შინაარსი ჩემი PHP ვებ დირექტორია.
>> ასე რომ, ახლა რა არის ძირითადად ხდება აქ არის, ჩემი ინსტანციის CS50 IDE
ემსახურება ეს ფაილი ყველას, ვინც ითხოვს.
და მეტი კურსი ამ ვიდეო, ჩვენ დასალაგებლად
შევხედოთ რამოდენიმე ეს სხვადასხვა ფაილი კონტექსტში.
>> შესამოწმებლად, რომ თქვენი Apache სერვერზე მუშაობს,
რომელიც ზოგადად აპირებს უნდა იყოს საქმე CS50 IDE,
მაგრამ თუ ეს უფრო ზოგადად, და თქვენ დაიწყოს მშენებლობის თქვენი საკუთარი ვებ
სერვერები, იქ ნამდვილად საერთო ერთგვარი ანალოგი,
"Hello World", რომელიც, როგორც წესი, გამოიყენება PHP ვებ განვითარების.
რომელი გაქვთ ფაილი შედგება მხოლოდ ამ code--
არის PHP delimiter მითითებული PHP ინფორმაცია, ფრჩხილებში, მძიმით შორის.
რომელიც ძირითადად სპეციალური PHP ფუნქცია რომ გიჩვენებთ
რა ვერსია PHP თქვენ გაშვებული.
>> ასე რომ, CS50 IDE, მაქვს რომ ფაილი ხელმისაწვდომია მხოლოდ
რათა ნახოთ თუ რა ეს გამოიყურება ასე.
ასე რომ, ვეძებ ჩემი ინდექსი ჩემი PHP მაგალითად.
ჩემი Apache მაგალითად გაშვებული შინაარსი PHP-Web.
და მე მაქვს ფაილი აქ მოუწოდა info.php.
>> მე ვაპირებ დააჭირეთ მას, დააშორებს.
ეს არის ის, რაც თქვენ ვაპირებთ იმისათვის, რომ ნახოთ, საკმაოდ ბევრი.
ეს არის მხოლოდ მეუბნებოდა, რომ ჩემი Apache სერვერი მუშაობს.
და ეს არის, როგორც ჩანს, მობილური PHP, რომ მე გაშვებული.
ეს არის ჩემი ანალოგი "Hello World".
>> ასე რომ, მე ვიცი, რამ ფუნქციონირებს.
ასე რომ, ჩვენ კარგი წასვლა.
ჩვენ შეგიძლიათ გააგრძელოთ აქ.
>> მოდით დავუბრუნდეთ, რომ დროის მაგალითად ჩვენ
ვსაუბრობთ ჩვენი ცუდი webmaster ვისაც ჰქონდა განაახლოთ გვერდზე მუდმივად.
ეს შეიძლება იყოს სარემონტო, როგორ მე განახორციელოს რამ
ისე, რომ webmaster არ უნდა შეინახოთ განახლება დროს.
ეს იქნებოდა მხოლოდ ერთგვარი მოხდება ავტომატურად.
>> ქვემოთ ქვემოთ, HTML, ეს საკმაოდ მსგავსია, ერთი გამონაკლისი.
მაგრამ აქ მაქვს რაღაც PHP ზედა.
მე, როგორც ჩანს, უწოდა ფუნქცია date_default_timezone_set.
>> და ჩვენ არ ვსაუბრობთ ყველა ამ ფუნქციების CS50,
იმიტომ, რომ PHP აქვს, ალბათ, ათიათასობით.
ეს შეიძლება ცოტა გაზვიადება, მაგრამ ეს არ უნდა იყოს.
მას აქვს ბევრი ფუნქციები აშენდა.
ასე რომ, ეს არის ფუნქცია, როგორც ჩანს, ადგენს ჩემი დროის ზონაში, როგორც აშშ / აღმოსავლეთ,
რომელიც დროის ზონაში, რომ მე ვარ ამჟამად მიღების ამ ვიდეო.
>> მაშინ მე ზარი ფუნქცია მოუწოდა, თარიღი.
და, როგორც ჩანს, მე შენახვის მისი რაღაც მოუწოდა, დრო.
ასე რომ, რა ხდება აქ?
>> ისე, ძირითადად რა არის ხდება, მე მიღების ზარი
ზოგიერთ სერვერზე, რომ აპირებს მითხარით, რა დროს გაკეთებული.
და მე კონვერტაცია ის ფორმატში საათი, წუთი, წამი.
და მიზეზი ის დედაქალაქში H არის ეს აპირებს მომეცი 24 საათიანი დრო, არა 12
საათიანი დრო, რომელიც იქნება ამას თ.
და მე უბრალოდ შენახვა, რომ ცვლადში, დრო.
ასე რომ, მეორე ხაზი PHP იქ, ზარი ფუნქცია,
დღემდე, მხოლოდ მისაღებად რამდენიმე სტრიქონი, რომელიც
აპირებს მომეცი თარიღი და დრო, და რამოდენიმე სხვა ინფორმაცია.
და პირველი არგუმენტი არსებობს, რომ მისი, მხოლოდ მოპოვების მნიშვნელოვანი ნაწილი
რომ მე აინტერესებს ამ მაგალითად, რომელიც არის საათი, წუთი, და მეორე.
ასე რომ, ყველა, რომ ხდება.
ასე რომ, მე შესანახად, რომ ცვლადი $ დროს.
და მერე ქვემოთ ძალიან ბოლოში, მე
აქვს, რომ სტენოგრამის დაბეჭდვისას მიმდინარე დრო.
ასე რომ, მე უბრალოდ აპირებს ბეჭდვა რა მიმდინარე დრო.
>> მოდით შევხედოთ ამ CS50 IDE და ვნახოთ, როგორ ჩვენ ახლა
გადარჩენის, რომ webmaster ბევრი უბედურება.
ყველა უფლება, აქ ვარ ისევ უკან root დირექტორია
ჩემი Apache მაგალითად.
და მე მაქვს ფაილი აქ მოუწოდა time.php.
მე უბრალოდ აპირებს დააჭირეთ რომ.
და მე გადახვევა, რადგან ჩვენ მიახლოება საკმაოდ შორს.
მიმდინარე დრო 14:20:34.
ასე რომ, მე ვაკეთებ საათის განმავლობაში, წუთი, და წამში.
და შემიძლია ამოცნობა გვერდი და მიიღოს ახალი დრო.
--41.
მე ვაპირებ, რომ ამოცნობა გვერდზე და მიიღეთ ახალი დრო, 44, 46, 47.
>> ასე რომ, მე ვარ აშკარად არ შეცვლის არაფერს თავს.
მე აქ გამაგრილებელი გვერდზე.
ასე რომ, მე არ შეიძლება იყოს იქ რედაქტირების იგი.
და მე გპირდებით, მე არ გაქვთ რაიმე კონფედერატების
რომლებიც რედაქტირების ფაილი ჩემი სახელით მხარეს.
>> მე უბრალოდ გამოყენებით, რომ PHP ფუნქცია, დრო, გენერირება დრო ჩემთვის
ავტომატურად.
ასე რომ, მაშინაც კი, თუ მე ეძინა, და ჩემი სერვერზე გაშვებული,
მომხმარებელი, რომელიც ჩამოდის, რომ გვერდზე ჯერ კიდევ აპირებს მიიღოს ზუსტად მიმდინარე დრო.
ასე რომ, საკმაოდ კარგი.
მე მივიღე ჩემი საიტი უფრო დინამიური არა ძალიან ბევრი PHP კოდი.
ეს იყო მხოლოდ ორი ხაზი კოდი და შემდეგ ცოტა ბეჭდვითი განცხადებაში.
და უკვე მაქვს ბევრად უფრო დინამიური საიტი
ვიდრე, რომ პირველი მაგალითი ჩვენ ვნახეთ დასაწყისში ვიდეო.
>> ასე რომ, გავიხსენოთ, ვიდეო PHP სინტაქსი რომ როდესაც PHP ინტერპრეტატორი გადის
ჩვენი პროგრამა, იგი უგულებელყოფს ყველაფერი ეს არ არის შიგნით PHP delimiters,
spitting ის.
რომ მაგალითად, რა რამ რომ ეს იყო იფურთხება, იყო HTML.
ეს კი იმას ნიშნავს, რომ მე შეიძლება ახლა ენაცვლება HTML და PHP ერთად.
იმის გამო, რომ თარჯიმნის იქნება მხოლოდ იგნორირება HTML და ფაქტიურად დაბეჭდვა.
რაც კარგია, არა?
>> იმის გამო, რომ, სავარაუდოდ, ბოლოს დღეს,
მინდა ჩემი საიტი აშენდეს HTML.
ასე რომ, ნებისმიერ ბრაუზერში შეიძლება ინტერპრეტაცია ის, ან გვესმის HTML გვერდზე
და შესწირე ის, როგორც ის, რომ ჩვენ შეიძლება რეალურად ესმის როგორც ადამიანები.
და მე შემიძლია მხოლოდ გამოიყენოთ PHP ნაწილებისა ჩემი საიტი
მოითხოვს დინამიკას, რომელიც მოითხოვს me აქვს რამ, რომ განახლება მუდმივად.
სტატიკური ინფორმაცია შეიძლება იგივე რჩება.
>> OK, ასე რომ ჯარიმა.
მაგრამ რატომ უნდა გავაკეთო ეს?
რატომ მე აურიეთ HTML და PHP?
მე ვერ უბრალოდ ამობეჭდოთ ყველა HTML გამოყენებით PHP ბეჭდვის ფუნქცია.
რატომ არ აკეთებს ამას?
დაფიქრდით მეორე.
>> ამიტომ, როდესაც მე შეიძლება მხოლოდ ბეჭდვა out-- მე შეეძლო ხაზი PHP, რომ უბრალოდ, ვამბობთ,
ბეჭდვითი HTML tag, ბეჭდვითი ხელმძღვანელი.
რატომ არ აკეთებს ამას?
რატომ შერევას PHP და HTML?
>> ისე, თუ თქვენ ფიქრობთ ამის შესახებ მეორე.
PHP, თარჯიმანი აქვს ინტერპრეტაცია თუ რას ხედავს.
ასე რომ, ეს აპირებს შეასრულოს ხაზი კოდი.
ამობეჭდვა HTML.
ამობეჭდვა ღია ხელმძღვანელი tag.
ამობეჭდვა ღია ტიტული აქვს.
ის აპირებს უნდა შეასრულოს და ინტერპრეტაცია
რომ ყოველი შემდგომი ნაბიჯით.
რატომ არ მისცეს თარჯიმანი მხოლოდ სიპრიალის მეტი
რამ ეს არ მესმის და ამას ავტომატურად?
ის აპირებს გადარჩენა ჩემთვის ბევრი დრო ავურიოთ ჩემი HTML და ჩემი PHP ერთად.
>> და ისე, რომ, თუ რატომ არ უბრალოდ ღია PHP delimiter
და შემდეგ უბრალოდ ამობეჭდოთ მთელი შინაარსი ჩვენი გვერდი, როგორც ერთ-ერთი გიგანტური PHP
მოვუწოდებთ ფუნქცია, ბეჭდვა, და შემდეგ ახლოს PHP delimiter და ჩვენ გავაკეთეთ.
ასე რომ, რატომ ჩვენ ავურიოთ მათ ერთად.
>> ჯერჯერობით, ჩვენ არ მინახავს ძალიან ბევრი განსხვავება ზოგადი PHP სინტაქსი.
ეს იყო საკმაოდ მარტივია.
ჩვენ უკვე მინახავს კითხვის ნიშნის, თანაბარი.
ჩვენ ვნახეთ რამდენიმე ახალი ფუნქცია მოუწოდებს, მაგრამ არაფერი ნამდვილად ლამაზი ხდება.
მოდით იქნებ რამ პატარა fancier.
რა მოხდება, თუ ჩვენ გვინდა გავლა ინფორმაცია შორის სხვადასხვა PHP ფაილები,
ასე რომ, შესაძლოა, მომხმარებელს შეუძლია წარუდგინოს ინფორმაცია ჩემთვის.
და მერე შეიძლება რაღაც ეს კიდევ ერთი გვერდი.
>> ასე რომ, PHP მხარდაჭერა რაღაც მოუწოდა Super Global
ცვლადები, რომელიც ჟღერს საკმაოდ გასაოცარია.
ისინი მართლაც მხოლოდ გიგანტური ასოციაციური მასივების
რომ დაეხმაროს განახორციელოს ეს ფუნქციონალური მიღება
შორის ინფორმაციის PHP ფაილი, რომელიც არსებული ჩვენს სერვერზე.
>> პირველი ეს სუპერ globals ეწოდება $ _GET.
და ეს, ალბათ, მარტივი გასაგებია.
რა ხდება $ _GET?
ისე, ძირითადად, მომხმარებელი ვაპირებ აკრიფოთ დამატებითი ინფორმაცია
ბოლოს ჩვენი მისამართები.
და რასაც ისინი აკრიფოთ, ვთქვათ, ის ფორმატირებული კონკრეტული გზა
მოუწოდა შეკითხვის სიმებიანი, რომელიც მხოლოდ კომპლექტი გასაღები ღირებულება წყვილი გამოყოფილი
მიერ ampersands.
ისინი გასაღები ღირებულება წყვილი იქნება შენახული $ _GET ასოციაციურ მასივში.
და ჩვენი ვიდეო PHP სინტაქსი, ჩვენ ვიცით,
როგორ უნდა იმუშაოს ასოციაციური მასივების უკვე.
ასე რომ, აქ არის მაგალითი ზოგიერთი PHP, სადაც შესაძლოა, მე
მოპოვების ყველა გასაღები ღირებულება წყვილი რომ მომხმარებელს მიეწოდება URL.
ასე რომ, მე მაქვს ჩემი Open PHP delimiter.
მაქვს foreach loop.
მე iterating მასშტაბით Super Global Array მოუწოდა $ _GET.
>> და მე მინდა, რომ შეუძლია მიმართოს ორივე გასაღები და მნიშვნელობა.
და მე უბრალოდ ბეჭდვა მათ გარეთ, ყოველი ერთი, როგორც ჩანს,
საკუთარი პუნქტი აქვს აქ.
მე დაბეჭდვისას გარკვეული HTML და interpolating ღირებულებების
ძირითადი და ღირებულება შევიდა, რომ განცხადებაში.
>> მოდით შევხედოთ, თუ როგორ ეს რომ რეალურად მუშაობა ჩვენი IDE.
და, შესაძლოა, ეს ხელს შეუწყობს ცხადყოფს, ცოტა
რა GET რეალურად აკეთებს.
ამიტომ დავბრუნდი აქ ჩემს ვებ root.
და მე მიუახლოვდით ცოტა გაჩვენებთ
რომ მაქვს ფაილი მოუწოდა, get1.php.
>> მოდით დააჭირეთ get1.php.
და მე არ ხედავს რაიმე შინაარსი.
ეს არის უცნაური, არა?
ისე, ნამდვილად არ რეალურად.
იმიტომ, რომ მე არ მიაწოდოს არაფერი URL.
მე ვაპირებ get1.php, მაგრამ მე არ მიაწოდოს ნებისმიერ გასაღები ღირებულება წყვილი
როგორც ნაწილი ჩემი შეკითხვის სიმებიანი.
მოდით დავამატოთ შეკითხვის სიმებიანი და ვნახოთ რა ეს ფაილი შეუძლია გააკეთოს.
>> დასაწყისისთვის შეკითხვის სიმებიანი თქვენ მხოლოდ ჩაწერეთ კითხვის ნიშნის.
მაშინ იქნებ მე ვიტყვი name = Doug & year = 2015.
და მაშინ მე დააჭიროთ.
ახლა შეამჩნია, რა ხდება.
მე მაინც get1.php.
მაგრამ ახლა მე მიეწოდება გასაღები ღირებულება წყვილი, და მე
ბეჭდვის მათ საკუთარი paragraph-- სახელი, Doug-- წელს, 2015 წელს.
სწორედ კოდი ჩვენ უბრალოდ დაინახა on the slide მომენტში წინ.
>> და თუ მინდა იქნებ დაამატოთ სხვა გასაღები ღირებულება წყვილი, და კლასის = CS50.
ახლა მე მაქვს კიდევ ერთი ძირითადი ღირებულება წყვილი, რომელიც იბეჭდება out
როდესაც მე დავუბრუნდეთ URL ერთხელ.
ახლა, შესაძლოა, ეს არ არის ფორმატირებული საშინლად კარგად.
ასე რომ, მე კიდევ ერთი ვერსია get.php.
ეს get2.php.
>> განსხვავება ამ ერთი მაქვს CSS ფაილი,
და ეს ფორმატების რამ ცოტა უფრო ლამაზად ჩემთვის.
ეს ალბათ არ არის ყველაზე ლამაზი CSS მსოფლიოში.
მაგრამ ეს მხოლოდ ერთი გზა ვაკეთებთ.
ასე რომ, მე მაინც მიიღოთ დაშვება ჩემს ცვლადები გამოყენებით $ _GET.
და ამ შემთხვევაში, მე უბრალოდ სახის მიღების CSS ცოტა უფრო ლამაზი.
და თუ ჩვენ პოპ მეტი ჩემი IDE მეორე,
მე გაჩვენებთ ჩემი PHP ვებ დირექტორია აქ, get2.php.
ჩვენ გასახსნელად, ზოგიერთი HTML აქ.
როგორც ჩანს მე აკავშირებს ამ CSS ფაილი იყო საუბარი.
მე გახსნას მაგიდაზე აქვს.
და მერე აქ არის ჩემი foreach loop.
>> აქ ის არის, რომ ის, რაც მე აჩვენა slide ადრე.
ერთადერთი განსხვავება ის არის, რომ მე გვაქვს ეს გასაღები და მნიშვნელობა CSS
სტილის რომ მე გამოყენებით მას.
მაგრამ ეს ყველაფერი, მე ვაკეთებ, არის მე iterating მასშტაბით $ _GET მისაღებად ყველა
ერთი გასაღები ღირებულება წყვილი.
>> და მე დაბეჭდვის მათ, როგორც მაგიდასთან.
და, როგორც ჩანს, მე გაფორმებით გასაღებები ერთი გზა, რომელზეც <td class = "გასაღები".
ასე რომ, როგორც ჩანს, რომ მიმართავს ზოგიერთი კლასის selector ჩემი CSS ფაილი GET.CSS.
და, როგორც ჩანს, მე დაბეჭდვისას ჩემი ღირებულებები სრულიად განსხვავებული გზა.
რომელიც საკმაოდ ბევრი რაც ჩვენ ვნახეთ, აქ, სადაც
ჩვენი ღირებულებები დაიბეჭდა ერთად ლურჯ ფონზე,
და ჩვენი გასაღებები დაიბეჭდა ყვითელი ფონზე.
ასე რომ, როგორ მე მისაღებად იმ სხვადასხვა სტილის.
იმის გამო, რომ მე გამოყენებით სხვადასხვა CSS კლასი.
მაგრამ, რომ საკმაოდ ბევრი მას GET.
ისევე, როგორც მე უბრალოდ მოპოვების ინფორმაცია.
და ამ შემთხვევაში, მე მხოლოდ დაბეჭდვის მას ეკრანზე.
მე მისაღებად მას გარეთ URL, და რომ ის, რაც GET ჩვენთვის აკეთებს.
>> ხედავთ შესაძლებელია პრობლემა იმისა?
რატომ ჩვენ, შესაძლოა, არ გსურთ გამოიყენოთ $ _GET?
რა მოხდება, თუ, იქნებ, მე მიღების ამ შეკითხვაზე?
--to get3.php, რომელიც მე არ აქვს ჩემს IDE.
ეს არის უბრალოდ ჰიპოთეტური ფაილი.
მაგრამ შეამჩნია, რომ, როგორც ჩანს, ჩაბარების ჩემი პაროლი.
და შესაძლოა დაგავიწყდათ უხერხულია.
ან იქნებ მე არ მინდა, ხალხს იცით, რა ჩემი პაროლი, მარჯვნივ.
>> თუ მე გავლით მას though-- თუ მე გამოყენებით იმ $ _GET მეთოდი, რა ხდება
რომ იქნება URL.
ასე რომ, გარკვეული მუქარის შესახებ შეიძლება ნახოს, რასაც მე ვაკეთებ.
მე შეიძლება გავლით მათ გასაცვლელად.
ან იქნებ ის კი არ არის მუქარის შესახებ.
იქნებ ეს მხოლოდ თქვენი მეგობარი, რომელიც დგას თქვენი მხრის.
და ახლა მათ იციან დაგავიწყდათ თქვენი Facebook ანგარიშის.
>> და, შესაძლოა, ისინი არ არაფერი მას.
მაგრამ, თუ თქვენი პაროლი იყვნენ წარმოდგენილი გავლით $ _GET Facebook,
ახლა მათ იციან თქვენი Facebook დაგავიწყდათ.
იმიტომ, რომ ეს უფლება იქ URL როდესაც თქვენ გაკეთდეს წარდგენის ინფორმაცია.
>> ასე რომ, ალბათ, რომ ეს არ არის საუკეთესო გზა უნდა გაიაროს გასაცვლელად.
ეს არის კარგი გზა უნდა გაიაროს ინფორმაცია რომ ჩვენ არ განსაკუთრებით
აინტერესებს, როგორც ძალიან მგრძნობიარე.
იმის გამო, რომ GET საკმაოდ სწრაფად, შედარებით სხვა სუპერ globals
ჩვენ ვაპირებთ ვისაუბროთ.
მაგრამ შესაძლოა არა საუკეთესო საშუალებაა გასაცვლელად.
>> იმისათვის, რომ ჩვენ დაგვჭირდება გამოიყენოთ რაღაც მოუწოდა $ _POST,
რომელიც არის კიდევ ერთი სუპერ გლობალური ცვლადი.
ეს არის კიდევ ერთი ასოციაციურ მასივში.
ასე რომ, ეს მუშაობს საკმაოდ ბევრი ზუსტად ისევე, როგორც GET.
გარდა, ნაცვლად მოპოვების ინფორმაცია URL,
ეს იმას რაღაც მეშვეობით HTTP სათაურებში.
ასე რომ გავიხსენოთ, ჩვენი ვიდეო HTTP, ჩვენ ვისაუბრეთ
იმაზე, თუ როგორ ბრაუზერები, სერვერები, და კლიენტებს კომუნიკაცია.
და ინფორმაციის გავიდა უკან და მეოთხე HTTP სათაურებში.
>> ერთად $ _POST, ინფორმაცია, როგორც წესი, იგზავნება იმ HTTP სათაურებში.
და ჩვენ ყველაზე ხშირად ვხედავ $ _POST კონტექსტში წარდგენის HTML ფორმები.
თქვენ შეგიძლიათ კვლავ გამოიყენოთ HTML ფორმები წარუდგინოს რამ მისაღებად.
მაგრამ ისინი, როგორც წესი, გამოიყენება კონტექსტში POST.
>> ასე რომ, აქ არის მაგალითი იმისა, HTML ფორმით.
ახლა ჩვენ ვნახეთ ეს ადრე, მაგრამ ჩვენ არ გვაქვს არ მინახავს ამ ნაწილში, action = "Post.php".
ასე რომ, როდესაც ჩვენ ვისაუბრეთ ფორმები კონტექსტში HTML, მე მქონდა ღილაკს.
და თუ გავიხსენებთ, მე დაწკაპეთ გაგზავნა და შემდეგ გვერდზე მხოლოდ განახლება,
არც არაფერი.
>> ამ შემთხვევაში, მე წარდგენის რასაც მე აკრიფოთ ამ ფორმით,
to PHP ფაილი მოუწოდა Post.php.
და, როგორც ჩანს, გზა მე ვაკეთებ, რომ ამ ფორმით გამოყენებით POST მეთოდით.
ასე რომ ყველა ინფორმაცია რომ მე აკრიფოთ ამ ფორმით
წარმოდგენილი იქნება მეშვეობით HTTP სათაურებში.
>> ეს იქნება ხელმისაწვდომი Post.php, იმიტომ, რომ აქციის ჩემი სახით.
ეს იქნება ხელმისაწვდომი აპირებს $ _POST.
და, როგორც ჩანს, არ შემიძლია მიიღეთ ცალკეულ ელემენტს
რომ ასოციაციურ მასივში არის ეს ატრიბუტი,
სახელი ატრიბუტი ჩვენი შეყვანის tags.
>> ასე რომ, როგორც ჩანს, შემიძლია ვთქვა, $ _POST მოედანზე ფრჩხილებში ასახელებს, რომ მიიღოთ რასაც შესახებ
აკრეფილი პირველ სფეროში.
და $ _POST დაგავიწყდათ, pw უფრო სწორად, მისაღებად რასაც მომხმარებლის აკრეფილი
მეორე სფეროში.
>> მოდით შევხედოთ ამ დასრულდა CS50 IDE.
ასე რომ აქ ვართ, და მე მიუახლოვდით მეორე.
და ჩვენ გვაქვს ფაილი სახელად post.html.
მე დააწკაპუნეთ post.html.
ძალიან ზევით აქ მაქვს ძალიან მარტივი ვებ ფორმით.
ეს ფორმა ჩვენ ვნახეთ on the slide მეორე წინ.
>> შემიძლია აკრიფოთ, Doug, და მე არ შემიძლია ჩაწერეთ ჩემი პაროლი, რომელსაც ჩვენ ყველა
ვიცი, არის squadgoals.
და მე მოხვდა წარუდგინოს.
და როგორც ჩანს, რომ წარუდგენს Post.php.
და მე აშკარად დაბეჭდვის რომ.
ასე რომ, მე მოშორების ყველა უსაფრთხოების რომ POST მაძლევს მხოლოდ ბეჭდვა
მომხმარებლის სახელი და პაროლი.
>> მომხმარებლის სახელი Doug.
მომხმარებლის პაროლი squadgoals.
როგორ გავაკეთო ეს?
ისე, პოპ მეტი IDE ერთხელ მეორე.
ჩვენ გადახვევა ქვემოთ მიიღოს შევხედოთ Post.php, რომელიც იყო
ქმედება, რომელიც მე უნდა წარმოადგინოს აქ.
ეს იყო სამოქმედო ჩემი HTML ფორმა.
და ეს ყველაფერი მე ვაკეთებ.
მომხმარებლის სახელი, და მე ბეჭდვა შინაარსი $ _POST "სახელი".
და შემდეგ მომხმარებლის პაროლი არის $ _POST "password".
ასე რომ, მე იმის გათვალისწინებით, რომ ინფორმაცია წარდგენის HTML ფორმა.
და მე შეგიძლიათ ამონაწერი ის გამოყენებით $ _POST იმიტომ, რომ მეთოდი მე გამოიყენება გადასცეს
მონაცემები, რომ ფორმა იყო POST მეთოდით.
>> ახლა ეს, ალბათ, არ ასე great-- მე ვაპირებ
უნდა დაბრუნდეს მეორე ჩვენი ნაკრები აქ
ეს, ალბათ, არ არის იმდენად დიდი, თუ მე ვარ წარდგენის ინფორმაცია POST,
რომელიც თითქოს უფრო უსაფრთხო.
ეს, ალბათ, არც ისე დიდი თუ მე ვაკეთებ და შემდეგ
დაბეჭდვისას მომხმარებლის პაროლი.
ეს უნდა იყოს უფრო უსაფრთხო.
>> OK, მაგრამ ეს არ არის მთლად უსაფრთხო.
ასე რომ, ამ პატარა snippet აქ მინდა
უბრალოდ თქვენი ყურადღება გავამახვილო რამდენიმე მონაცემთა უსაფრთხოების საკითხებში, უბრალოდ რაღაც
ვიფიქროთ, როგორც თქვენ მუშაობს ან გამოყენებით ინტერნეტში.
ეს არის მხოლოდ რაღაც განიხილოს.
>> მე ვუთხარი, რომ ინფორმაცია წარმოდგენილი HTTP სათაურებში
როდესაც თქვენ იყენებთ POST მეთოდით.
რაც იმას ნიშნავს, რომ ისინი მთლად უსაფრთხო.
ისინი რთული მოძიების, ვიდრე გამოყენებით GET მეთოდით, სადაც
უბრალოდ უფლება URL.
მაგრამ მაინც გზა, რათა იპოვოს იგი.
და მე მინდა, რომ ნახოთ თქვენ ისე, რომ თქვენ შესაძლოა,
დაიწყოს ფიქრი როგორც თქვენ სამუშაო, ან
ვებ და წარდგენის პაროლები, და იქნებ გამოყენებით
იგივე პაროლი in a ბევრი სხვადასხვა ადგილებში.
ვიცი, რომ არის ჯერ კიდევ საკმაოდ ადვილად გაირკვეს, ვიღაცის დაგავიწყდათ.
>> ასე რომ, აქ, მე ვაპირებ წასვლა post2.html.
და სხვაობა post2.html და post2.php არის საკმაოდ დახვეწილი.
განსხვავება არის მხოლოდ რომ მე არ ამობეჭდოთ
დაგავიწყდათ როცა წარმოადგინონ ფორმა.
>> ამიტომ, მე ვაპირებ აკრიფოთ, Doug.
და მე ვაპირებ აკრიფოთ წელს, squadgoals, მაშინაც კი,
მიუხედავად იმისა, რომ ჩვენ ვიცით, რომ ის დაგავიწყდათ.
სანამ მე წარუდგინოს შექმნას, თუმცა, მე ვაპირებ
გახსნა up შემქმნელი ინსტრუმენტები, უბრალოდ აჩვენებს, თუ რა მოხდება აქ.
ასე რომ, Chrome, მე უბრალოდ აპირებს მოხვდა F12.
და რომ აპირებს გახსნას ჩემი შემქმნელი ინსტრუმენტები მარჯვენა მხარეს.
მე არ ფორმის არის.
ახლა მე ვაპირებ მოხვდა წარუდგინოს ჩემი სახით.
და როგორც ჩანს, მე მივიღე მოვუწოდებთ, ან მე თხოვნით
რომ post2.php, რომელსაც აქვს აზრი.
მე ვაპირებ დააჭირეთ რომ.
>> მაშინ აქ, მე ვაპირებ დააჭირეთ ზედა.
არსებობს უამრავი პერსონალის მიმდინარეობს აქ.
მაგრამ თუ გადაფურცლეთ ქვემოთ ძალიან ბოლოში, გაფრთხილების უფლება იქ ჩემი კალენდარი
დაბლოკა იგი დიდი second-- უფლება იქ ძალიან ქვედა კუთხეში,
name-- Doug, pw-- squadgoals.
ასე რომ, მიუხედავად იმისა, რომ მე გამოყენებით POST მეთოდი, რომელიც არის უფრო უსაფრთხო,
უბრალოდ უნდა იცოდეს, რომ როდესაც თქვენ ამის გაკეთება, თქვენ ჯერ კიდევ გადამცემი ინფორმაცია
მეშვეობით HTTP.
და ის მაინც უნდა იყოს ნაპოვნია მიერ მოწინააღმდეგეს.
ეს არის მხოლოდ ის, რომ ჩვენ ვაპირებთ უნდა გაუმკლავდეთ ნამდვილად.
იქნებ არის გზები დაშიფვრა ჩვენი პაროლები სანამ ჩვენ მათ მეტი,
რომელიც იქნება უკეთესი, რომელიც მე არ აკეთებს აქ.
>> მაგრამ უბრალოდ უნდა იცოდეს, რომ POST მეთოდი აქვს შეზღუდვები ძალიან.
ეს არის უკეთესი მიიღონ თვალსაზრისით, რომ დაუყოვნებლივ შესამჩნევი.
მაგრამ ეს არ არის სრული სარემონტო.
ასე რომ, აქ არის მაგალითი იმისა, სწრაფი სახლში exercise
რომელიც შეგიძლიათ გამოიყენოთ, რომ რაღაც პრაქტიკაში მუშაობის PHP.
შექმენით შემდეგ წყვილი ვებ გვერდებზე.
პირველი უნდა იყოს მხოლოდ ძალიან მარტივია ჩამოყალიბდეს ერთ სფეროში და წარუდგინოს
ღილაკს.
ასე რომ, ძალიან ჰგავს იმას, რასაც ჩვენ უბრალოდ გააკეთა post.html.
>> და მაშინ მეორე ფაილი თქვენ უნდა შექმნათ
არის ფაილი, PHP ფაილი, რომელიც ელოდება შეყვანის მეშვეობით POST,
და რის საფუძველზე შესახებ აკრეფილი, რომელიც თქვენ შეიძლება ვივარაუდოთ, იქნება მთელი რიცხვი.
თქვენ არ გაქვთ რაიმე შეცდომა შემოწმება და სხვა.
თქვენ შეიძლება ვივარაუდოთ შესახებ აკრიფოთ მთელი ღირებულება,
ან რაღაც ინტერპრეტაციას PHP როგორც მთელი რიცხვი, შევიდა, რომ ფორმა.
თქვენ უბრალოდ უნდა შევქმნათ n მიერ n გამრავლება მაგიდასთან.
>> ასე რომ, თუ მომხმარებლის მიერ 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 გადარჩენა რამ, როგორიცაა
მომხმარებლის სახელი ან მომხმარებლის ID ინფორმაცია და ასე შემდეგ.
და რომ ინფორმაცია დარჩება $ _SESSION სანამ განადგურება სხდომაზე
ცოტა მოგვიანებით.
>> წერა დინამიური საიტები PHP ხდის მათ უკეთესი.
შენი საიტები გახდა ძალიან დინამიური, და თქვენ არ
უნდა გავაკეთოთ ძალიან ბევრი იმაზე მეტი, ვიდრე თქვენ სხვაგვარად არ კეთდება მხოლოდ
აკეთებს ეს HTML.
მაგრამ ეს მოითხოვს პრაქტიკა, ბევრი პრაქტიკა.
>> თქვენ უკვე იცით, თუ როგორ უნდა ვიმუშაოთ C, და ასე jumping, PHP არის ძალიან სახიფათო.
რა არის იქნებ ცოტა ცოტა სახიფათო მუშაობს
ეს ახალი იდეა GET და POST, და შესაძლოა შერევით თქვენი HTML და PHP
ერთად.
მაგრამ ასევე უნდა იცოდეს, რომ ინტერნეტ არის დიდი საცავი ინფორმაცია.
და PHP დოკუმენტაცია ხელმისაწვდომია ბევრგან, მაგრამ ალბათ ყველაზე
კანონიკურად at php.net.
და ნახავთ იქ, უამრავი განსხვავებული ფუნქციები,
და გამოყენების შემთხვევაში და მაგალითები საფუძველზე მაგალითები, იმ მაგალითები.
სად თუ გსურთ ცდილობენ და ფიგურა თუ როგორ უნდა გავაკეთოთ რაღაც, შანსები,
ვინმეს ალბათ გაკეთდეს, სანამ.
თქვენ შეგიძლიათ გამოიყენოთ ისინი როგორც შთაგონების განახორციელოს რასაც
ეს თქვენ ცდილობს განახორციელოს ძალიან.
>> მე Doug Lloyd.
ეს არის CS50.