>> DOUG LLOYD: Vì vậy, trong chúng tôi video trên PHP cú pháp,
chúng tôi nói chuyện rất nhiều về cách PHP có thể được sử dụng tại các dòng lệnh
để chạy các chương trình trong một cách mà chúng tôi đang khá quen thuộc với từ C.
Nhưng như tôi cũng đã đề cập trong đó video, PHP
bước đầu đã được phát triển để thực hiện lập trình web, các trang web.
Và như vậy trong video này chúng tôi sẽ nói về cách chúng tôi
sử dụng PHP trong bối cảnh phát triển web.
>> Chúng tôi biết, đã có, từ video của chúng tôi trên HTML,
rằng các trang web được xây dựng ra một tập hợp các thẻ HTML
mà ngữ nghĩa xác định cấu trúc của một trang web.
Nhưng các trang web mà được xây dựng với tinh khiết HTML
bị một rất, hạn chế rất nghiêm trọng.
>> Và để minh họa cho sự hạn chế này, chúng ta hãy xem xét những điều sau đây.
Vì vậy, bây giờ tôi muốn xây dựng một trang web rằng, bất cứ khi nào người dùng truy cập nó,
nó mang lại cho tôi hiện nay Hiện tại Cambridge, Mass.,
hiển thị nó cho phút mới nhất.
Nếu tôi đã làm điều này ngay bây giờ, Tôi có thể nói một cái gì đó như thế này.
Thời gian hiện tại trong Cambridge-- vì vậy tôi có Thẻ HTML, thẻ đầu, thẻ tiêu đề,
cơ thể tags-- hiện nay Hiện tại là 14:08 Cambridge,
in ra thời gian quân sự.
>> Điều gì xảy ra nếu nó bây giờ 02:09, 14:09?
Vâng cho đến nay, với HTML, tôi có đi vào và thay đổi nó để 14:09.
Và sau đó một phút sau, Tôi phải thay đổi nó một lần nữa.
Và như bạn có thể tưởng tượng, đó là có lẽ là công việc tồi tệ nhất bao giờ hết.
Bạn là người quản trị trang web cho một trang web, và mỗi phút, 24 giờ một ngày,
bạn cần phải cập nhật thời điểm hiện tại tự mở time.html và thay đổi
Chỉ là đoạn mã để nói thời gian hiện tại trong giờ và phút.
Đó có lẽ không phải là một rất sử dụng tốt các nguồn lực của chúng tôi,
cả con người và tính toán.
>> Các trang web có tất cả HTML là hoàn toàn tĩnh.
Cách duy nhất bạn có thể cập nhật nội dung, như chúng ta đã thấy,
là để tự mở những nguồn các tập tin, chỉnh sửa, và lưu chúng.
Và sau đó khi người dùng làm mới trang,
hoặc thăm trang để là người đầu tiên thời gian, họ sẽ nhận được những nội dung mới nhất.
Nhưng chỉ vì chúng tôi đã tự chỉnh sửa nó.
>> Nếu chúng ta bắt đầu kết hợp một số PHP trong đó, mã của chúng tôi có thể nhận được rất nhiều linh hoạt hơn.
Và chúng ta có thể có một cách để trang của chúng tôi phải năng động, hoặc tự cập nhật,
mà không yêu cầu người nghèo của chúng tôi webmaster trong các ví dụ trước
để được tự cập nhật mọi thứ.
Họ có thể làm điều đó tự động.
Chúng tôi không cần phải can thiệp.
Chúng tôi có thể nhận được một số giấc ngủ.
Mà có lẽ là một điều tốt nếu bạn đang làm rất nhiều về lập trình web.
>> Vì vậy, trong CS50 IDE, chúng tôi chạy một máy chủ web được gọi là Apache.
Đó là một rất thường được sử dụng, mã nguồn mở hệ thống máy chủ web.
Hệ thống này có năng lực để giải thích
PHP, đó là sẽ có ích nếu bạn muốn làm bất kỳ lập trình PHP.
>> Và trong CS50 IDE, chúng tôi có một lệnh để thực hiện điều này rất dễ dàng để làm,
apache50 bắt đầu.
Và sau đó là dấu gạch chéo con đường, dấu gạch chéo để, dấu gạch chéo
dir, đó chỉ là một cách thực sự phổ biến của chỉ ra những gì bạn đã quy định ở đây
là một đường dẫn đến một đặc biệt thư mục mà bạn
muốn là người gốc trang web, hoặc các trang gốc,
hoặc thư mục mà từ đó máy chủ web của bạn sẽ bắt đầu kiểm tra các tập tin và phục vụ
họ lên các khách hàng yêu cầu họ.
Vì vậy, hãy bật hơn để CS50 IDE, chỉ để cho bạn thấy, thực sự nhanh chóng, cách làm việc này.
>> Vì vậy, ở đây trong CS50 IDE, tôi đang ở trong một thư mục gọi là Tuần Zero, Nine.
Và tôi có two-- Tôi có thực thi một lệnh LS chỉ
ở trên để cho bạn thấy rằng tôi có hai thư mục ở đây, PHP,
đó là tập hợp các tập tin mà tôi được sử dụng trong video cú pháp PHP, và sau đó PHP-web,
đó là tập hợp các tập tin mà tôi muốn sử dụng trong video này.
>> Và tôi muốn bắt đầu một ví dụ máy chủ web
với các nội dung của thư mục PHP-web như các tập tin đang được phục vụ lên.
Vì vậy, những gì tôi sẽ làm gì?
Tôi sẽ gõ apache50 gian bắt đầu, không gian PHP, dash web.
Đó là con đường dẫn đến thư mục từ nơi tôi hiện nay.
Sau đó tôi nhấn Enter.
Nó sẽ làm một chút chút về công cụ ở đây.
Và sau đó nó sẽ nói, Apache bắt đầu thành công.
Trang web của bạn bây giờ đã có at-- và sau đó có các URL cho trang web.
Vì vậy, những gì tôi sẽ làm gì?
Tôi sẽ nhanh chóng sao chép này.
Và tôi sẽ mở up-- và Tôi sẽ phóng to ra một chút here--
Tôi sẽ mở ra một tab mới trong Chrome.
Và tôi sẽ đến thăm URL đó.
>> Tôi sẽ nhấn Enter.
Nó sẽ load.
Và tôi sẽ thu nhỏ lại.
Và chúng ta có thể thấy ở đây là nội dung của thư mục web PHP của tôi.
>> Vì vậy, bây giờ những gì là cơ bản xảy ra ở đây là, ví dụ của tôi về CS50 IDE
đang phục vụ lên các tập tin này ai yêu cầu chúng.
Và trong quá trình video này, chúng tôi sẽ sắp xếp của
hãy nhìn vào một bó của các tập tin khác nhau trong ngữ cảnh.
>> Để kiểm tra rằng Apache của bạn máy chủ đang làm việc,
mà nói chung là đi là trường hợp trong CS50 IDE,
nhưng nếu bạn làm điều này nói chung, và bạn bắt đầu xây dựng trang web riêng của bạn
máy chủ, có một thực sự loại phổ biến của tương tự để,
"hello world", mà thường là được sử dụng để phát triển web PHP.
Mà là để có một tập tin chỉ bao gồm các code-- này
một dấu phân cách PHP thiết với thông tin PHP, dấu ngoặc đơn, dấu chấm phẩy ở giữa.
Mà về cơ bản là một đặc biệt PHP chức năng đó cho bạn
những phiên bản của PHP bạn đang chạy.
>> Vì vậy, trong CS50 IDE, tôi có file có sẵn chỉ
để cho bạn thấy những điều này sẽ như thế nào.
Vì vậy, tôi đang nhìn vào chỉ số của tôi từ ví dụ PHP của tôi.
Ví dụ Apache của tôi đang chạy các nội dung của PHP-Web.
Và tôi có một tập tin ở đây được gọi là info.php.
>> Tôi sẽ bấm vào nó, thu nhỏ.
Đây là những gì bạn đang đi để xem, khá nhiều.
Đây chỉ là nói cho tôi rằng máy chủ Apache của tôi đang làm việc.
Và đây là, rõ ràng, phiên bản của PHP rằng tôi đang chạy.
Điều này là tương tự của tôi để "hello thế giới."
>> Vì vậy, tôi biết mọi thứ đang hoạt động.
Vì vậy, chúng tôi đang tốt để đi.
Chúng tôi có thể tiến hành từ đây.
>> Vì vậy, chúng ta hãy xem lại mà thời gian ví dụ chúng tôi
nói về với webmaster nghèo của chúng tôi người đã phải cập nhật các trang liên tục.
Đây có thể là một sửa chữa cho cách Tôi sẽ thực hiện những điều
để các webmaster không phải tiếp tục cập nhật thời gian.
Nó sẽ chỉ là loại xảy ra tự động.
>> Các xuống bên dưới, HTML, nó khá giống nhau, với một ngoại lệ.
Nhưng ở đây tôi đã có một số PHP ở đầu trang.
Tôi đã, rõ ràng, gọi này chức năng date_default_timezone_set.
>> Và chúng tôi không nói về tất cả các chức năng này trong CS50,
vì PHP có lẽ Mười nghìn đồng.
Đó có thể là một chút của một cường điệu, nhưng nó không thể được.
Nó có rất nhiều chức năng được xây dựng trong.
Và vì vậy đây là một chức năng rõ ràng đặt múi giờ của tôi là Mỹ / Đông,
đó là múi giờ mà tôi hiện tại làm cho video này.
>> Sau đó, tôi thực hiện một cuộc gọi đến chức năng gọi, ngày tháng.
Và, rõ ràng, tôi đang lưu trữ HIS của một cái gì đó gọi là, thời gian.
Vì vậy, những gì đang xảy ra ở đây?
>> Vâng, về cơ bản những gì xảy ra là, tôi đang làm cho một cuộc gọi
một số máy chủ có nghĩa là sẽ cho tôi biết những gì thời gian hiện tại là.
Và tôi là chuyển đổi nó sang định dạng giờ, phút, giây.
Và lý do nó vốn là H này là sẽ cho tôi thời gian 24 giờ, không phải 12
Hiện giờ, đó sẽ là chữ thường h.
Và tôi chỉ cần lưu trữ đó trong một biến gọi, thời gian.
Vì vậy, dòng thứ hai của PHP ở đó, các cuộc gọi đến các chức năng,
ngày, chỉ là nhận được một số chuỗi, đó là
sẽ đưa cho tôi ngày đó, và các thời gian, và một loạt các thông tin khác.
Và các đối số đầu tiên ở đó, mà HIS, được chỉ trích các phần quan trọng
mà tôi quan tâm cho ví dụ này, đó là giờ, phút và giây.
Vì vậy, đó là tất cả những gì đang xảy ra.
Vì vậy, tôi lưu trữ trong một thời gian biến $.
Và sau đó xuống rất đáy ở đó, tôi
có mà viết tắt cho in ra thời gian hiện tại.
Vì vậy, tôi chỉ cần đi để in ra những gì thời gian hiện tại là.
>> Vì vậy, chúng ta hãy nhìn vào điều này trong CS50 IDE và xem cách chúng tôi bây giờ
tiết kiệm webmaster rằng rất nhiều rắc rối.
Tất cả các quyền, do đó tôi lại ngồi đây lại ở thư mục gốc
thẩm Apache của tôi.
Và tôi có một tập tin ở đây được gọi là time.php.
Tôi chỉ cần đi để bấm vào đó.
Và tôi sẽ di chuyển lên, bởi vì chúng tôi đang thu nhỏ trong khá xa.
Thời gian hiện tại là 14:20:34.
Vì vậy, tôi đang làm nó giờ, phút và giây.
Và tôi có thể làm mới trang và có được thời gian mới.
--41.
Tôi sẽ làm mới trang và có được thời gian mới, 44, 46, 47.
>> Vì vậy, tôi không rõ thay đổi bất cứ điều gì bản thân mình.
Tôi đang ở đây làm mới trang.
Vì vậy, tôi không thể qua lại có chỉnh sửa nó.
Và tôi hứa với các bạn, tôi không có bất kỳ confederates
người đang chỉnh sửa các tập tin thay mặt cho tôi bên cạnh.
>> Tôi chỉ sử dụng mà chức năng PHP, thời gian, để tạo ra thời gian cho tôi
tự động.
Vì vậy mà ngay cả khi tôi đang ngủ, và máy chủ web của tôi đang chạy,
người sử dụng những người thăm trang đó vẫn là sẽ nhận được chính xác thời gian hiện tại.
Vì vậy, đó là khá tốt.
Tôi đã thực hiện trang web của tôi năng động hơn với không quá nhiều code PHP.
Đó chỉ là hai dòng mã và sau đó một chút của một lệnh in.
Và đã được tôi có một trang web nhiều năng động hơn
hơn so với ví dụ đầu tiên chúng ta đã thấy ở đầu video.
>> Vì vậy, nhớ lại từ video về cú pháp PHP rằng khi các thông dịch viên PHP chạy
Chương trình của chúng tôi, nó bỏ qua tất cả mọi thứ đó không phải là ký tự phân cách bên trong của PHP,
nhổ ra.
Trong ví dụ này, những gì các điều rằng nó đã được phun ra là HTML.
Và điều này có nghĩa là tôi có thể bây giờ vãi ra HTML và PHP với nhau.
Bởi vì các phiên dịch viên sẽ chỉ bỏ qua HTML và nghĩa đen đầu ra nó.
Đó là tốt, phải không?
>> Bởi lẽ, cuối ngày,
Tôi muốn trang web của tôi để được xây dựng bằng HTML.
Vì vậy mà bất kỳ trình duyệt web có thể giải thích nó, hoặc hiểu HTML trên trang
và làm cho nó như là một cái gì đó mà chúng ta thực sự có thể hiểu như con người.
Và tôi chỉ có thể sử dụng PHP cho các bộ phận của trang web của tôi
các yêu cầu năng động, yêu cầu tôi để có những điều mà cập nhật liên tục.
Các thông tin tĩnh có thể ở lại cùng.
>> OK, vì vậy đó là tốt.
Nhưng tại sao tôi làm điều này?
Tại sao tôi sẽ trộn HTML và PHP?
Tôi chỉ có thể in ra tất cả các HTML, cách sử dụng chức năng PHP in.
Tại sao tôi không làm điều đó?
Hãy suy nghĩ về nó cho một thứ hai.
>> Tại sao, khi tôi chỉ có thể in out-- tôi có thể có dòng PHP mà chỉ nói,
tag HTML in, đầu in.
Tại sao tôi không làm điều đó?
Tại sao tôi trộn PHP và HTML?
>> Vâng, nếu bạn nghĩ về nó cho một thứ hai.
PHP, các thông dịch viên có để giải thích những gì nó thấy.
Và do đó, nó sẽ có để thực thi một dòng mã.
In ra HTML.
In thẻ đầu mở.
In thẻ tiêu đề mở.
Nó sẽ phải thực hiện và giải thích
rằng mỗi bước của con đường.
Tại sao không chỉ cho các thông dịch viên chỉ che đậy
điều nó không hiểu và làm điều đó tự động?
Nó sẽ tiết kiệm cho tôi rất nhiều thời gian để trộn HTML của tôi và PHP tôi lại với nhau.
>> Và đó là lý do tại sao chúng ta không làm chỉ có mở PHP delimiter
và sau đó chỉ cần in ra toàn bộ nội dung của các trang của chúng tôi là một trong PHP khổng lồ
gọi đến chức năng, in, và sau đó gần PHP delimiter và chúng tôi đang thực hiện.
Vì vậy, đó là lý do tại sao chúng ta trộn lẫn chúng với nhau.
>> Cho đến nay, chúng tôi đã không nhìn thấy quá nhiều một sự khác biệt từ cú pháp PHP nói chung.
Đó là khá đơn giản.
Chúng ta đã thấy các dấu hỏi, bình đẳng.
Chúng tôi đã nhìn thấy một vài cuộc gọi chức năng mới, nhưng không thực sự ưa thích xảy ra.
Hãy làm những điều có thể một chút fancier.
Điều gì nếu chúng tôi muốn truyền thông tin giữa các file PHP khác nhau,
vì vậy mà có lẽ người dùng có thể gửi thông tin cho tôi.
Và sau đó tôi có thể làm điều gì đó với nó trên một trang khác.
>> Vì vậy, PHP đã hỗ trợ cho một cái gì đó gọi là Super toàn cầu
Biến, mà âm thanh khá tuyệt vời.
Họ thực sự chỉ mảng kết hợp khổng lồ
mà có thể giúp thực hiện điều này chức năng của qua
thông tin giữa các file PHP đang tồn tại trên máy chủ web của chúng tôi.
>> Việc đầu tiên của những siêu globals được gọi là $ _GET.
Và nó có thể là đơn giản nhất để hiểu.
Điều gì xảy ra với $ _GET?
Vâng, về cơ bản, người dùng sẽ gõ thêm thông tin
vào cuối URL của chúng ta.
Và bất cứ điều gì họ gõ, giả sử nó được định dạng trong một cách đặc biệt
được gọi là một chuỗi truy vấn, mà chỉ là một tập hợp các cặp giá trị tách
bằng ký hiệu.
Những cặp giá trị sẽ được được lưu trữ trong một mảng kết hợp $ _GET.
Và từ video của chúng tôi trên PHP cú pháp, chúng ta biết
làm thế nào để làm việc với mảng kết đã.
Vì vậy, đây là một ví dụ về một số PHP, nơi mà có lẽ tôi là
nén tất cả các cặp giá trị mà người sử dụng được cung cấp trong các URL.
Vì vậy, tôi có mở PHP delimiter của tôi.
Tôi có một vòng lặp foreach.
Tôi lặp qua Super Mảng toàn cầu được gọi là $ _GET.
>> Và tôi muốn để có thể tham khảo để cả chìa khóa và giá trị.
Và tôi chỉ in chúng ra, mỗi cái trên dường
tag đoạn riêng của mình ở đây.
Tôi in ra một số HTML và nội suy các giá trị
các khóa và giá trị vào câu nói đó.
>> Vì vậy, chúng ta hãy xem làm thế nào đây thực sự sẽ làm việc trên IDE của chúng tôi.
Và có lẽ điều này sẽ giúp minh họa một chút
về những gì đang thực sự làm GET.
Vì vậy, tôi trở lại đây trong thư mục gốc web của tôi.
Và tôi sẽ phóng to một chút ít để cho thấy bạn
rằng tôi có một tập tin tên, get1.php.
>> Vì vậy, hãy click vào get1.php.
Và tôi không thấy bất kỳ nội dung.
Đó là lạ, phải không?
Vâng, không thực sự thực sự.
Bởi vì tôi đã không cung cấp bất cứ điều gì trong URL.
Tôi sẽ get1.php, nhưng tôi không cung cấp bất kỳ cặp giá trị
như là một phần của chuỗi truy vấn của tôi.
Vì vậy, hãy thêm một chuỗi truy vấn và xem những tập tin này có thể làm.
>> Để bắt đầu một chuỗi truy vấn bạn chỉ cần gõ dấu hỏi.
Sau đó, có lẽ tôi sẽ nói tên = Doug & năm = 2015.
Và sau đó tôi sẽ nhấn Enter.
Bây giờ thông báo những gì đang xảy ra.
Tôi vẫn đang trong get1.php.
Nhưng bây giờ tôi đã cung cấp cặp giá trị quan trọng, và tôi
in chúng ra trên riêng của họ Tên paragraph--, năm Doug--, 2015.
Đó chính là đoạn mã chúng ta chỉ thấy trên slide một chút thời gian trước đây.
>> Và nếu tôi muốn có thêm một cặp giá trị quan trọng, và class = CS50.
Bây giờ tôi có một giá trị quan trọng cặp đó được in ra
khi tôi xem lại các URL một lần nữa.
Bây giờ có lẽ đây không phải là định dạng khủng khiếp tốt.
Vì vậy, tôi có một phiên bản khác của get.php.
Đó là get2.php.
>> Sự khác biệt ở đây một là tôi có tập tin CSS,
và nó định dạng thứ một ít độc đáo hơn cho tôi.
Đó có lẽ không phải là nhất CSS đẹp trên thế giới.
Nhưng nó chỉ là một cách khác để làm việc đó.
Vì vậy, tôi vẫn có thể truy cập cho các biến của tôi bằng cách sử dụng $ _GET.
Và trong trường hợp này, tôi chỉ là loại làm cho CSS một chút ưa thích hơn.
Và nếu chúng ta bật qua IDE của tôi cho một thứ hai,
Tôi sẽ chỉ cho bạn trong web PHP của tôi thư mục ở đây, get2.php.
Chúng tôi sẽ mở nó lên, một số mã HTML ở đây.
Rõ ràng tôi đang liên kết trong đó File CSS Tôi đã nói về.
Tôi mở một thẻ bảng.
Và sau đó ở đây là vòng lặp foreach của tôi.
>> Ở đây là, những gì tôi thấy trên slide trước.
Sự khác biệt duy nhất là tôi có chìa khóa này và giá trị CSS
tạo kiểu tóc mà tôi đang áp dụng với nó.
Nhưng đó là tất cả tôi đang làm, là tôi iterating qua $ _GET để có được tất cả
của các cặp giá trị quan trọng.
>> Và tôi in ra như bảng.
Và, rõ ràng, tôi đang định dạng các phím trong một cách, với <td class = "key".
Vì vậy, rõ ràng đó áp dụng cho một số class selector trong GET.CSS file CSS của tôi.
Và, rõ ràng, tôi in ra giá trị của tôi một cách hoàn toàn khác nhau.
Mà là khá nhiều những gì chúng ta thấy ở đây, nơi
các giá trị của chúng tôi đã được in với một nền màu xanh,
và các phím của chúng tôi đã được in với một nền màu vàng.
Vì vậy, đó là cách tôi nhận được những phong cách khác nhau.
Bởi vì tôi đang sử dụng các lớp CSS khác nhau.
Nhưng đó là khá nhiều nó cho GET.
Giống như tôi là chỉ cần giải nén thông tin.
Và trong trường hợp này, tôi chỉ in nó ra màn hình.
Tôi nhận được nó ra khỏi URL, và đó là những gì GET làm cho chúng ta.
>> Bạn có thấy một thể vấn đề ở đây mặc dù?
Tại sao chúng ta có thể không muốn sử dụng $ _GET?
Nếu như, có lẽ, tôi đã làm cho truy vấn này?
get3.php --Để, mà tôi không có trên IDE của tôi.
Nó chỉ là một tập tin giả.
Nhưng cần chú ý ở đây là rõ ràng đi qua mật khẩu của tôi ở.
Và có lẽ mật khẩu của tôi là đáng xấu hổ.
Hoặc có lẽ tôi không muốn mọi người biết mật khẩu của tôi là, phải.
>> Nếu tôi là đi qua nó though-- nếu tôi đang sử dụng phương thức $ _GET, những gì xảy ra là,
đó là sẽ có trong URL.
Vì vậy, một số người sử dụng độc hại might có thể nhìn thấy những gì tôi đang làm.
Tôi có thể đi qua chúng thông tin nhạy cảm.
Hoặc có lẽ nó thậm chí không một người dùng độc hại.
Có lẽ nó chỉ là người bạn của bạn đang đứng trên vai của bạn.
Và bây giờ họ biết mật khẩu vào tài khoản Facebook của bạn.
>> Và có lẽ họ sẽ không làm bất cứ điều gì với nó.
Nhưng nếu mật khẩu của bạn là gửi qua $ _GET để Facebook,
bây giờ họ biết mật khẩu Facebook của bạn.
Bởi vì nó phải có trong URL khi bạn đã thực hiện gửi thông tin.
>> Và có lẽ đó không phải là tốt nhất cách để vượt qua các thông tin nhạy cảm.
Đó là một cách tốt để vượt qua thông tin rằng chúng tôi không đặc biệt
quan tâm là quá nhạy cảm.
Bởi vì GET là khá nhanh, tương đối so với các siêu globals khác
chúng ta sẽ nói về.
Nhưng có lẽ không phải là công cụ tốt nhất cho thông tin nhạy cảm.
>> Cho rằng chúng ta có thể muốn sử dụng một cái gì đó gọi là $ _POST,
mà là một biến siêu toàn cầu.
Đó là một mảng kết hợp.
Vì vậy, nó hoạt động khá nhiều chính xác giống như GET.
Ngoại trừ, thay vì giải nén Thông tin từ URL,
nó làm điều gì đó thông qua các tiêu đề HTTP.
Vì vậy, nhớ lại từ chúng tôi video trên HTTP, chúng tôi nói chuyện
về cách trình duyệt, máy chủ, và khách hàng giao tiếp.
Và thông tin được truyền lại và ra trong tiêu đề HTTP.
>> Với $ _POST, thông tin thường gửi thông qua những tiêu đề HTTP.
Và chúng ta sẽ thường thấy $ _POST trong bối cảnh nộp các biểu mẫu HTML.
Bạn vẫn có thể sử dụng các hình thức HTML trình điều để GET.
Nhưng họ đang thường được sử dụng trong bối cảnh POST.
>> Vì vậy, đây là một ví dụ của một dạng HTML.
Bây giờ chúng tôi đã nhìn thấy nó trước, nhưng chúng tôi có không nhìn thấy điều này một phần, action = "post.php".
Vì vậy, khi chúng tôi nói chuyện về hình thức trong bối cảnh của HTML, tôi đã có một nút Submit.
Và nếu bạn gọi lại, tôi muốn nhấn Submit và sau đó trang chỉ làm mới,
đã không làm bất cứ điều gì.
>> Trong trường hợp này, tôi là trình bất cứ điều gì tôi gõ vào biểu mẫu này,
vào một tập tin PHP tên post.php.
Và, rõ ràng, con đường tôi đang làm mà trong hình thức này được sử dụng phương thức POST.
Vì vậy, tất cả các mảnh thông tin rằng tôi gõ vào biểu mẫu này
sẽ được trình thông qua các tiêu đề HTTP.
>> Nó sẽ có thể truy cập trong post.php, bởi vì đó là hành động của các hình thức của tôi.
Nó sẽ có thể truy cập bằng cách vào $ _POST.
Và rõ ràng, cách tôi có thể nhận được ở mỗi phần tử cá nhân
với mảng kết là với thuộc tính này,
các thuộc tính Name của các thẻ đầu vào của chúng tôi.
>> Vì vậy, dường như tôi có thể nói $ _POST vuông khung tên để có được bất cứ điều gì người sử dụng
gõ vào trường đầu tiên.
Và $ _POST mật khẩu, các pw thay, để có được ở bất cứ người sử dụng gõ
trong lĩnh vực thứ hai.
>> Vì vậy, chúng ta hãy nhìn vào trên này trong CS50 IDE.
Vì vậy, ở đây chúng tôi đang có, và tôi sẽ phóng to cho một thứ hai.
Và chúng ta có một tập tin gọi là post.html.
Tôi bấm vào post.html.
Ở phía trên, ở đây tôi có một hình thức web rất đơn giản.
Đó là hình thức chúng ta chỉ nhìn thấy trên slide một giây trước đó.
>> Tôi có thể gõ, Doug, và tôi có thể gõ mật khẩu của tôi, mà tất cả chúng ta
biết là squadgoals.
Và tôi sẽ nhấn Submit.
Và rõ ràng, rằng trình để post.php.
Và tôi dường như in đó.
Vì vậy, tôi nhận được thoát khỏi tất cả các an ninh rằng POST mang lại cho tôi bởi chỉ cần in ra
tên người dùng và mật khẩu.
>> Tên của người dùng là Doug.
Mật khẩu của người dùng là squadgoals.
Làm thế nào tôi làm điều này?
Vâng, bật sang IDE một lần nữa cho một thứ hai.
Chúng tôi sẽ di chuyển xuống để lấy xem post.php, đó là
các hành động mà tôi sử dụng để gửi ở đây.
Đó là hành động của các hình thức HTML của tôi.
Và đó là tất cả tôi đang làm.
Tên của người dùng, và tôi in hiện các nội dung của $ _POST "tên".
Và sau đó mật khẩu của người dùng là $ _POST "password".
Vì vậy, tôi đã đưa ra thông tin rằng bằng cách gửi các mẫu HTML.
Và bây giờ tôi có thể giải nén nó bằng cách sử dụng $ _POST bởi vì các phương pháp tôi sử dụng để truyền
dữ liệu với hình thức đó là phương thức POST.
>> Bây giờ nó có lẽ không vì vậy great-- tôi sẽ
quay trở lại trong một giây để tập here-- của chúng tôi
nó có thể là không tuyệt vời như vậy nếu tôi gửi thông tin với POST,
đó là bề ngoài là an toàn hơn.
Đây có thể là không tuyệt vời như vậy nếu tôi làm điều đó và sau đó
in ra mật khẩu của người dùng.
Đó là nghĩa vụ để được an toàn hơn.
>> OK, nhưng nó không hoàn toàn an toàn.
Và như vậy trong ít này đoạn mã ở đây tôi muốn
chỉ chú ý vào một số mối quan tâm bảo mật dữ liệu, chỉ cần một cái gì đó
để suy nghĩ khi bạn đang làm việc hoặc sử dụng internet.
Đây chỉ là một cái gì đó để xem xét.
>> Tôi đã nói với bạn rằng thông tin là gửi qua HTTP header
khi bạn sử dụng phương thức POST.
Có nghĩa là chúng không hoàn toàn an toàn.
Họ đang rất khó tìm hơn sử dụng các phương thức GET, nơi
nó chỉ đúng trong URL.
Nhưng vẫn có một cách để tìm thấy nó.
Và tôi chỉ muốn hiển thị bạn này để bạn có thể
bắt đầu suy nghĩ về điều này như bạn đang làm việc, hoặc bằng cách sử dụng
các trang web trên Facebook mật khẩu, và có thể sử dụng
cùng một mật khẩu trong một rất nhiều nơi khác nhau.
Biết rằng là vẫn thực sự khá dễ dàng để tìm ra mật khẩu của ai đó.
>> Và như vậy ở đây, tôi sẽ để đi đến post2.html.
Và sự khác biệt với post2.html và post2.php là khá tinh tế.
Sự khác biệt chỉ là mà tôi không in ra
mật khẩu khi tôi gửi biểu mẫu.
>> Vì vậy, tôi sẽ đánh vào, Doug.
Và tôi sẽ gõ trong, squadgoals, thậm chí
mặc dù chúng ta biết đó là mật khẩu.
Trước khi tôi nộp hình thành mặc dù, tôi sẽ
để mở Công cụ phát triển, chỉ để cho bạn thấy những gì đang xảy ra ở đây.
Vì vậy, trong Chrome, tôi chỉ cần đi để nhấn F12.
Và điều đó sẽ mở ra của tôi Công cụ phát triển ở phía bên tay phải.
Tôi đã không gửi các hình thức nào.
Bây giờ tôi sẽ nhấn Submit trên mẫu của tôi.
Và dường như, tôi đã thực hiện một gọi đến, hoặc tôi đã thực hiện một yêu cầu
để post2.php, có ý nghĩa.
Tôi sẽ bấm vào đó.
>> Sau đó, ở đây, tôi sẽ bấm vào Headers.
Có rất nhiều thứ đang diễn ra ở đây.
Nhưng nếu tôi di chuyển xuống rất đáy, thông báo ngay there-- lịch của tôi
đã chặn nó cho một quyền second-- có ở góc rất thấp,
name-- Doug, squadgoals pw--.
Vì vậy, mặc dù tôi đang sử dụng POST phương pháp, đó là an toàn hơn,
chỉ cần lưu ý rằng khi bạn làm như vậy, bạn vẫn truyền thông tin
thông qua HTTP.
Và nó vẫn có thể được được tìm thấy bởi một kẻ thù.
Nó chỉ là cái gì chúng ta đang đi phải đối phó với thực sự.
Có thể có một số cách để mã hóa của chúng tôi mật khẩu trước khi chúng tôi gửi chúng qua,
đó sẽ là một tốt hơn, mà tôi không làm ở đây.
>> Nhưng chỉ cần lưu ý rằng các POST phương pháp có những hạn chế quá.
Đây là một cải tiến hơn GET trong về được ngay lập tức nhìn thấy được.
Nhưng nó không phải là một sửa chữa hoàn tất.
Vì vậy, đây là một ví dụ của một cách nhanh chóng tại nhà tập thể dục
mà bạn có thể sử dụng để có được một số thực hành làm việc với PHP.
Tạo các cặp sau đây của trang web.
Đầu tiên chỉ nên là một rất đơn giản hình thành với một lĩnh vực duy nhất và một Submit
nút.
Vì vậy, rất giống với những gì chúng tôi chỉ cần làm với post.html.
>> Và sau đó thứ hai file bạn nên tạo
là một file, một file PHP, mà được mong đợi đầu vào, qua POST,
và dựa vào những gì người dùng gõ, mà bạn có thể giả định sẽ là một số nguyên.
Bạn không cần phải làm bất cứ kiểm tra lỗi hoặc tương tự.
Bạn có thể giả định người sử dụng sẽ gõ một giá trị số nguyên,
hoặc một cái gì đó giống như một giải thích bởi PHP là một số nguyên, vào hình thức đó.
Bạn chỉ muốn tạo ra một n của bảng n nhân.
>> Vì vậy, nếu người dùng gửi 10, chúng tôi muốn có một bảng 10 của 10 nhân.
Nếu người dùng gửi một 12, chúng ta muốn một bảng 12 của 12 nhân.
Chỉ cần để bạn có thể xem những gì chúng tôi đang lái xe ở đây,
chúng ta sẽ có một cái nhìn tại tập tin này trong IDE của tôi.
>> Vì vậy, ở đây trong IDE, tôi có mult_form.html.
Tôi sẽ nhấp vào nó.
Tất cả tôi muốn làm là gửi một giá trị.
Gõ 10, nhấn Submit.
Và rõ ràng, mult_table.php, mà chúng ta có thể nhìn thấy ở phía trên có trong URL,
Tôi đang tạo 10 của 10 bảng cửu chương.
>> Nếu tôi gõ 15 và nhấn Submit, bây giờ tôi có một bảng 15 của 15 nhân.
Tôi, tất nhiên, sẽ không hiển thị bạn nội dung của mult_table.php,
vì đó sẽ có những niềm vui trong số này ở nhà tập thể dục.
Nhưng đó là một cách tuyệt vời để có được một số thực hành làm việc với các vòng PHP
và POST, rất đơn giản, hy vọng căng thẳng ví dụ miễn phí, chỉ cần
để làm một chút chút thực hành.
Và tôi đã có một chút CSS xảy ra ở đây để làm cho bảng cá nhân của tôi
tế bào chỉ là loại bật ra khỏi một chút và tìm kiếm nhiều hơn một chút
giống như một bảng nhân, như trái ngược với chỉ văn bản chỉ
loại ngồi ở đó.
Các siêu cuối cùng toàn cầu, chúng tôi sẽ nói về trong video này là một cái gì đó gọi là
$ _SESSION.
Và có lẽ điều này là thực sự ví dụ tốt nhất của một cái gì đó
chúng ta sẽ xem xét toàn cầu.
Đó là một mảng khác.
Đó là một mảng kết hợp.
Nhưng nó có thể truy cập thông qua mỗi File PHP mà tồn tại trên hệ thống của chúng tôi.
>> Chúng tôi không phải nộp thông tin một trang tại một thời gian
như chúng tôi làm với GET và POST với.
Nó luôn luôn ở đó.
Và vì vậy điều này là rất tốt cho một trang nơi bạn đang đăng nhập, ví dụ,
và bạn muốn thông tin đăng nhập của bạn để tồn tại từ trang này sang trang này sang trang.
>> Bạn chỉ có thể bắt đầu một phiên họp và sau đó sử dụng $ _SESSION để lưu những thứ như
Tên của người dùng, hoặc người dùng của Thông tin ID, và như vậy.
Và thông tin đó sẽ ở lại $ _SESSION Cho đến khi bạn tiêu diệt phiên
một chút sau này.
>> Viết trang web động với PHP làm cho họ tốt hơn rất nhiều.
Các trang web của bạn trở nên rất năng động, và bạn không
phải làm quá nhiều việc hơn những gì bạn nếu không sẽ đã làm được
làm việc đó với HTML.
Nhưng nó đòi hỏi thực tế, luyện tập rất nhiều.
>> Bạn đã biết làm thế nào để làm việc với C, và như vậy nhảy đến PHP không phải là quá khó khăn.
Có lẽ là những gì một chút hơi khó khăn đang làm việc
với ý tưởng mới này của GET và POST, và có thể trộn HTML và PHP của bạn
cùng với nhau.
Nhưng cũng phải nhận thức rằng internet là một kho thông tin khổng lồ.
Và tài liệu hướng dẫn của PHP có sẵn ở nhiều nơi, nhưng có lẽ nhất
giáo luật tại php.net.
Và bạn có thể tìm thấy ở đó, rất nhiều chức năng khác nhau,
và trường hợp sử dụng, và các ví dụ theo ví dụ, khi các ví dụ.
Trường hợp nếu bạn muốn thử và con số ra cách để làm một cái gì đó, tỷ lệ cược là,
người ấy có thể thực hiện nó trước khi bạn.
Và bạn có thể sử dụng chúng như nguồn cảm hứng để thực hiện bất cứ điều gì
nó là bạn đang cố gắng để thực hiện quá.
>> Tôi Doug Lloyd.
Đây là CS50.