1 00:00:00,000 --> 00:00:05,720 2 00:00:05,720 --> 00:00:07,620 >> DOUG LLOYD: Vì vậy, trong chúng tôi video trên PHP cú pháp, 3 00:00:07,620 --> 00:00:10,480 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 4 00:00:10,480 --> 00:00:13,620 để 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. 5 00:00:13,620 --> 00:00:15,370 Nhưng như tôi cũng đã đề cập trong đó video, PHP 6 00:00:15,370 --> 00:00:19,572 bước đầu đã được phát triển để thực hiện lập trình web, các trang web. 7 00:00:19,572 --> 00:00:21,780 Và như vậy trong video này chúng tôi sẽ nói về cách chúng tôi 8 00:00:21,780 --> 00:00:23,890 sử dụng PHP trong bối cảnh phát triển web. 9 00:00:23,890 --> 00:00:26,360 >> Chúng tôi biết, đã có, từ video của chúng tôi trên HTML, 10 00:00:26,360 --> 00:00:29,820 rằng các trang web được xây dựng ra một tập hợp các thẻ HTML 11 00:00:29,820 --> 00:00:32,850 mà ngữ nghĩa xác định cấu trúc của một trang web. 12 00:00:32,850 --> 00:00:35,910 Nhưng các trang web mà được xây dựng với tinh khiết HTML 13 00:00:35,910 --> 00:00:39,510 bị một rất, hạn chế rất nghiêm trọng. 14 00:00:39,510 --> 00:00:42,690 >> 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. 15 00:00:42,690 --> 00:00:45,665 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ó, 16 00:00:45,665 --> 00:00:49,760 nó mang lại cho tôi hiện nay Hiện tại Cambridge, Mass., 17 00:00:49,760 --> 00:00:52,620 hiển thị nó cho phút mới nhất. 18 00:00:52,620 --> 00:00:57,910 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. 19 00:00:57,910 --> 00:01:01,330 Thời gian hiện tại trong Cambridge-- vì vậy tôi có Thẻ HTML, thẻ đầu, thẻ tiêu đề, 20 00:01:01,330 --> 00:01:04,610 cơ thể tags-- hiện nay Hiện tại là 14:08 Cambridge, 21 00:01:04,610 --> 00:01:06,690 in ra thời gian quân sự. 22 00:01:06,690 --> 00:01:11,390 >> Điều gì xảy ra nếu nó bây giờ 02:09, 14:09? 23 00:01:11,390 --> 00:01:16,470 Vâng cho đến nay, với HTML, tôi có đi vào và thay đổi nó để 14:09. 24 00:01:16,470 --> 00:01:19,390 Và sau đó một phút sau, Tôi phải thay đổi nó một lần nữa. 25 00:01:19,390 --> 00:01:22,132 Và sau đó một phút sau, Tôi phải thay đổi nó một lần nữa. 26 00:01:22,132 --> 00:01:24,590 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. 27 00:01:24,590 --> 00:01:29,420 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, 28 00:01:29,420 --> 00:01:35,970 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 29 00:01:35,970 --> 00:01:41,750 Chỉ là đoạn mã để nói thời gian hiện tại trong giờ và phút. 30 00:01:41,750 --> 00:01:45,850 Đó 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, 31 00:01:45,850 --> 00:01:48,880 cả con người và tính toán. 32 00:01:48,880 --> 00:01:51,297 >> Các trang web có tất cả HTML là hoàn toàn tĩnh. 33 00:01:51,297 --> 00:01:53,630 Cách duy nhất bạn có thể cập nhật nội dung, như chúng ta đã thấy, 34 00:01:53,630 --> 00:01:56,339 là để tự mở những nguồn các tập tin, chỉnh sửa, và lưu chúng. 35 00:01:56,339 --> 00:01:58,088 Và sau đó khi người dùng làm mới trang, 36 00:01:58,088 --> 00:02:01,080 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. 37 00:02:01,080 --> 00:02:03,970 Nhưng chỉ vì chúng tôi đã tự chỉnh sửa nó. 38 00:02:03,970 --> 00:02:07,980 >> 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. 39 00:02:07,980 --> 00:02:11,940 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, 40 00:02:11,940 --> 00:02:15,360 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 41 00:02:15,360 --> 00:02:16,662 để được tự cập nhật mọi thứ. 42 00:02:16,662 --> 00:02:17,870 Họ có thể làm điều đó tự động. 43 00:02:17,870 --> 00:02:19,130 Chúng tôi không cần phải can thiệp. 44 00:02:19,130 --> 00:02:20,410 Chúng tôi có thể nhận được một số giấc ngủ. 45 00:02:20,410 --> 00:02:24,850 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. 46 00:02:24,850 --> 00:02:28,360 >> Vì vậy, trong CS50 IDE, chúng tôi chạy một máy chủ web được gọi là Apache. 47 00:02:28,360 --> 00:02:35,250 Đó là một rất thường được sử dụng, mã nguồn mở hệ thống máy chủ web. 48 00:02:35,250 --> 00:02:37,320 Hệ thống này có năng lực để giải thích 49 00:02:37,320 --> 00:02:41,260 PHP, đó là sẽ có ích nếu bạn muốn làm bất kỳ lập trình PHP. 50 00:02:41,260 --> 00:02:45,230 >> 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, 51 00:02:45,230 --> 00:02:47,280 apache50 bắt đầu. 52 00:02:47,280 --> 00:02:49,445 Và sau đó là dấu gạch chéo con đường, dấu gạch chéo để, dấu gạch chéo 53 00:02:49,445 --> 00:02:53,350 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 54 00:02:53,350 --> 00:02:56,510 là một đường dẫn đến một đặc biệt thư mục mà bạn 55 00:02:56,510 --> 00:03:00,800 muốn là người gốc trang web, hoặc các trang gốc, 56 00:03:00,800 --> 00:03:05,430 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ụ 57 00:03:05,430 --> 00:03:07,850 họ lên các khách hàng yêu cầu họ. 58 00:03:07,850 --> 00:03:12,110 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. 59 00:03:12,110 --> 00:03:30,930 60 00:03:30,930 --> 00:03:36,240 >> Vì vậy, ở đây trong CS50 IDE, tôi đang ở trong một thư mục gọi là Tuần Zero, Nine. 61 00:03:36,240 --> 00:03:38,890 Và tôi có two-- Tôi có thực thi một lệnh LS chỉ 62 00:03:38,890 --> 00:03:41,910 ở trên để cho bạn thấy rằng tôi có hai thư mục ở đây, PHP, 63 00:03:41,910 --> 00:03:46,410 đó 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, 64 00:03:46,410 --> 00:03:49,380 đó là tập hợp các tập tin mà tôi muốn sử dụng trong video này. 65 00:03:49,380 --> 00:03:53,480 >> Và tôi muốn bắt đầu một ví dụ máy chủ web 66 00:03:53,480 --> 00:03:59,089 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. 67 00:03:59,089 --> 00:04:00,130 Vì vậy, những gì tôi sẽ làm gì? 68 00:04:00,130 --> 00:04:05,710 Tôi sẽ gõ apache50 gian bắt đầu, không gian PHP, dash web. 69 00:04:05,710 --> 00:04:08,100 Đó là con đường dẫn đến thư mục từ nơi tôi hiện nay. 70 00:04:08,100 --> 00:04:09,127 Sau đó tôi nhấn Enter. 71 00:04:09,127 --> 00:04:10,960 Nó sẽ làm một chút chút về công cụ ở đây. 72 00:04:10,960 --> 00:04:14,030 Và sau đó nó sẽ nói, Apache bắt đầu thành công. 73 00:04:14,030 --> 00:04:20,689 Trang web của bạn bây giờ đã có at-- và sau đó có các URL cho trang web. 74 00:04:20,689 --> 00:04:21,730 Vì vậy, những gì tôi sẽ làm gì? 75 00:04:21,730 --> 00:04:26,234 Tôi sẽ nhanh chóng sao chép này. 76 00:04:26,234 --> 00:04:28,900 Và tôi sẽ mở up-- và Tôi sẽ phóng to ra một chút here-- 77 00:04:28,900 --> 00:04:31,570 Tôi sẽ mở ra một tab mới trong Chrome. 78 00:04:31,570 --> 00:04:34,320 Và tôi sẽ đến thăm URL đó. 79 00:04:34,320 --> 00:04:35,299 >> Tôi sẽ nhấn Enter. 80 00:04:35,299 --> 00:04:36,090 Nó sẽ load. 81 00:04:36,090 --> 00:04:37,510 Và tôi sẽ thu nhỏ lại. 82 00:04:37,510 --> 00:04:41,350 Và chúng ta có thể thấy ở đây là nội dung của thư mục web PHP của tôi. 83 00:04:41,350 --> 00:04:45,290 >> 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 84 00:04:45,290 --> 00:04:49,620 đang phục vụ lên các tập tin này ai yêu cầu chúng. 85 00:04:49,620 --> 00:04:51,620 Và trong quá trình video này, chúng tôi sẽ sắp xếp của 86 00:04:51,620 --> 00:04:55,400 hãy nhìn vào một bó của các tập tin khác nhau trong ngữ cảnh. 87 00:04:55,400 --> 00:04:57,614 >> Để kiểm tra rằng Apache của bạn máy chủ đang làm việc, 88 00:04:57,614 --> 00:04:59,780 mà nói chung là đi là trường hợp trong CS50 IDE, 89 00:04:59,780 --> 00:05:02,696 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 90 00:05:02,696 --> 00:05:04,990 máy chủ, có một thực sự loại phổ biến của tương tự để, 91 00:05:04,990 --> 00:05:08,500 "hello world", mà thường là được sử dụng để phát triển web PHP. 92 00:05:08,500 --> 00:05:12,855 Mà là để có một tập tin chỉ bao gồm các code-- này 93 00:05:12,855 --> 00:05:18,247 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. 94 00:05:18,247 --> 00:05:20,580 Mà về cơ bản là một đặc biệt PHP chức năng đó cho bạn 95 00:05:20,580 --> 00:05:23,970 những phiên bản của PHP bạn đang chạy. 96 00:05:23,970 --> 00:05:26,850 >> Vì vậy, trong CS50 IDE, tôi có file có sẵn chỉ 97 00:05:26,850 --> 00:05:28,680 để cho bạn thấy những điều này sẽ như thế nào. 98 00:05:28,680 --> 00:05:32,860 Vì vậy, tôi đang nhìn vào chỉ số của tôi từ ví dụ PHP của tôi. 99 00:05:32,860 --> 00:05:35,870 Ví dụ Apache của tôi đang chạy các nội dung của PHP-Web. 100 00:05:35,870 --> 00:05:39,290 Và tôi có một tập tin ở đây được gọi là info.php. 101 00:05:39,290 --> 00:05:41,164 >> Tôi sẽ bấm vào nó, thu nhỏ. 102 00:05:41,164 --> 00:05:43,080 Đây là những gì bạn đang đi để xem, khá nhiều. 103 00:05:43,080 --> 00:05:45,729 Đây chỉ là nói cho tôi rằng máy chủ Apache của tôi đang làm việc. 104 00:05:45,729 --> 00:05:48,270 Và đây là, rõ ràng, phiên bản của PHP rằng tôi đang chạy. 105 00:05:48,270 --> 00:05:51,590 Điều này là tương tự của tôi để "hello thế giới." 106 00:05:51,590 --> 00:05:53,070 >> Vì vậy, tôi biết mọi thứ đang hoạt động. 107 00:05:53,070 --> 00:05:54,150 Vì vậy, chúng tôi đang tốt để đi. 108 00:05:54,150 --> 00:05:55,730 Chúng tôi có thể tiến hành từ đây. 109 00:05:55,730 --> 00:05:57,790 >> Vì vậy, chúng ta hãy xem lại mà thời gian ví dụ chúng tôi 110 00:05:57,790 --> 00:06:01,950 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. 111 00:06:01,950 --> 00:06:05,020 Đây có thể là một sửa chữa cho cách Tôi sẽ thực hiện những điều 112 00:06:05,020 --> 00:06:08,080 để các webmaster không phải tiếp tục cập nhật thời gian. 113 00:06:08,080 --> 00:06:10,270 Nó sẽ chỉ là loại xảy ra tự động. 114 00:06:10,270 --> 00:06:13,710 >> Các xuống bên dưới, HTML, nó khá giống nhau, với một ngoại lệ. 115 00:06:13,710 --> 00:06:16,720 Nhưng ở đây tôi đã có một số PHP ở đầu trang. 116 00:06:16,720 --> 00:06:19,940 Tôi đã, rõ ràng, gọi này chức năng date_default_timezone_set. 117 00:06:19,940 --> 00:06:22,106 >> Và chúng tôi không nói về tất cả các chức năng này trong CS50, 118 00:06:22,106 --> 00:06:24,670 vì PHP có lẽ Mười nghìn đồng. 119 00:06:24,670 --> 00:06:27,540 Đó có thể là một chút của một cường điệu, nhưng nó không thể được. 120 00:06:27,540 --> 00:06:29,490 Nó có rất nhiều chức năng được xây dựng trong. 121 00:06:29,490 --> 00:06:33,290 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, 122 00:06:33,290 --> 00:06:36,320 đó là múi giờ mà tôi hiện tại làm cho video này. 123 00:06:36,320 --> 00:06:38,430 >> Sau đó, tôi thực hiện một cuộc gọi đến chức năng gọi, ngày tháng. 124 00:06:38,430 --> 00:06:43,850 Và, rõ ràng, tôi đang lưu trữ HIS của một cái gì đó gọi là, thời gian. 125 00:06:43,850 --> 00:06:45,320 Vì vậy, những gì đang xảy ra ở đây? 126 00:06:45,320 --> 00:06:48,040 >> 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 127 00:06:48,040 --> 00:06:51,650 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à. 128 00:06:51,650 --> 00:06:56,150 Và tôi là chuyển đổi nó sang định dạng giờ, phút, giây. 129 00:06:56,150 --> 00:07:00,540 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 130 00:07:00,540 --> 00:07:02,362 Hiện giờ, đó sẽ là chữ thường h. 131 00:07:02,362 --> 00:07:04,570 Và tôi chỉ cần lưu trữ đó trong một biến gọi, thời gian. 132 00:07:04,570 --> 00:07:07,028 Vì vậy, dòng thứ hai của PHP ở đó, các cuộc gọi đến các chức năng, 133 00:07:07,028 --> 00:07:09,037 ngày, chỉ là nhận được một số chuỗi, đó là 134 00:07:09,037 --> 00:07:12,120 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. 135 00:07:12,120 --> 00:07:16,480 Và các đối số đầu tiên ở đó, mà HIS, được chỉ trích các phần quan trọng 136 00:07:16,480 --> 00:07:20,614 mà tôi quan tâm cho ví dụ này, đó là giờ, phút và giây. 137 00:07:20,614 --> 00:07:22,030 Vì vậy, đó là tất cả những gì đang xảy ra. 138 00:07:22,030 --> 00:07:23,562 Vì vậy, tôi lưu trữ trong một thời gian biến $. 139 00:07:23,562 --> 00:07:25,270 Và sau đó xuống rất đáy ở đó, tôi 140 00:07:25,270 --> 00:07:28,980 có mà viết tắt cho in ra thời gian hiện tại. 141 00:07:28,980 --> 00:07:32,050 Vì vậy, tôi chỉ cần đi để in ra những gì thời gian hiện tại là. 142 00:07:32,050 --> 00:07:37,220 >> 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ờ 143 00:07:37,220 --> 00:07:40,002 tiết kiệm webmaster rằng rất nhiều rắc rối. 144 00:07:40,002 --> 00:07:42,570 Tất cả các quyền, do đó tôi lại ngồi đây lại ở thư mục gốc 145 00:07:42,570 --> 00:07:45,040 thẩm Apache của tôi. 146 00:07:45,040 --> 00:07:51,585 Và tôi có một tập tin ở đây được gọi là time.php. 147 00:07:51,585 --> 00:07:53,559 Tôi chỉ cần đi để bấm vào đó. 148 00:07:53,559 --> 00:07:55,850 Và tôi sẽ di chuyển lên, bởi vì chúng tôi đang thu nhỏ trong khá xa. 149 00:07:55,850 --> 00:07:57,257 Thời gian hiện tại là 14:20:34. 150 00:07:57,257 --> 00:07:59,090 Vì vậy, tôi đang làm nó giờ, phút và giây. 151 00:07:59,090 --> 00:08:01,910 Và tôi có thể làm mới trang và có được thời gian mới. 152 00:08:01,910 --> 00:08:02,420 --41. 153 00:08:02,420 --> 00:08:07,240 Tôi sẽ làm mới trang và có được thời gian mới, 44, 46, 47. 154 00:08:07,240 --> 00:08:10,490 >> Vì vậy, tôi không rõ thay đổi bất cứ điều gì bản thân mình. 155 00:08:10,490 --> 00:08:11,720 Tôi đang ở đây làm mới trang. 156 00:08:11,720 --> 00:08:13,711 Vì vậy, tôi không thể qua lại có chỉnh sửa nó. 157 00:08:13,711 --> 00:08:15,710 Và tôi hứa với các bạn, tôi không có bất kỳ confederates 158 00:08:15,710 --> 00:08:18,230 người đang chỉnh sửa các tập tin thay mặt cho tôi bên cạnh. 159 00:08:18,230 --> 00:08:21,260 >> Tôi chỉ sử dụng mà chức năng PHP, thời gian, để tạo ra thời gian cho tôi 160 00:08:21,260 --> 00:08:22,340 tự động. 161 00:08:22,340 --> 00:08:24,800 Vì vậy mà ngay cả khi tôi đang ngủ, và máy chủ web của tôi đang chạy, 162 00:08:24,800 --> 00:08:28,884 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. 163 00:08:28,884 --> 00:08:29,800 Vì vậy, đó là khá tốt. 164 00:08:29,800 --> 00:08:33,609 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. 165 00:08:33,609 --> 00:08:36,650 Đó chỉ là hai dòng mã và sau đó một chút của một lệnh in. 166 00:08:36,650 --> 00:08:38,441 Và đã được tôi có một trang web nhiều năng động hơn 167 00:08:38,441 --> 00:08:42,750 hơn so với ví dụ đầu tiên chúng ta đã thấy ở đầu video. 168 00:08:42,750 --> 00:08:46,660 >> 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 169 00:08:46,660 --> 00:08:50,000 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, 170 00:08:50,000 --> 00:08:51,500 nhổ ra. 171 00:08:51,500 --> 00:08:54,410 Trong ví dụ này, những gì các điều rằng nó đã được phun ra là HTML. 172 00:08:54,410 --> 00:08:58,080 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. 173 00:08:58,080 --> 00:09:01,920 Bởi vì các phiên dịch viên sẽ chỉ bỏ qua HTML và nghĩa đen đầu ra nó. 174 00:09:01,920 --> 00:09:04,140 Đó là tốt, phải không? 175 00:09:04,140 --> 00:09:06,100 >> Bởi lẽ, cuối ngày, 176 00:09:06,100 --> 00:09:08,360 Tôi muốn trang web của tôi để được xây dựng bằng HTML. 177 00:09:08,360 --> 00:09:12,880 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 178 00:09:12,880 --> 00:09:17,270 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. 179 00:09:17,270 --> 00:09:19,430 Và tôi chỉ có thể sử dụng PHP cho các bộ phận của trang web của tôi 180 00:09:19,430 --> 00:09:23,390 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. 181 00:09:23,390 --> 00:09:26,630 Các thông tin tĩnh có thể ở lại cùng. 182 00:09:26,630 --> 00:09:27,540 >> OK, vì vậy đó là tốt. 183 00:09:27,540 --> 00:09:28,540 Nhưng tại sao tôi làm điều này? 184 00:09:28,540 --> 00:09:30,400 Tại sao tôi sẽ trộn HTML và PHP? 185 00:09:30,400 --> 00:09:33,850 Tôi chỉ có thể in ra tất cả các HTML, cách sử dụng chức năng PHP in. 186 00:09:33,850 --> 00:09:35,870 Tại sao tôi không làm điều đó? 187 00:09:35,870 --> 00:09:37,100 Hãy suy nghĩ về nó cho một thứ hai. 188 00:09:37,100 --> 00:09:41,220 >> Tại sao, khi tôi chỉ có thể in out-- tôi có thể có dòng PHP mà chỉ nói, 189 00:09:41,220 --> 00:09:43,841 tag HTML in, đầu in. 190 00:09:43,841 --> 00:09:44,840 Tại sao tôi không làm điều đó? 191 00:09:44,840 --> 00:09:48,230 Tại sao tôi trộn PHP và HTML? 192 00:09:48,230 --> 00:09:50,080 >> Vâng, nếu bạn nghĩ về nó cho một thứ hai. 193 00:09:50,080 --> 00:09:52,824 PHP, các thông dịch viên có để giải thích những gì nó thấy. 194 00:09:52,824 --> 00:09:54,990 Và do đó, nó sẽ có để thực thi một dòng mã. 195 00:09:54,990 --> 00:09:56,450 In ra HTML. 196 00:09:56,450 --> 00:09:57,700 In thẻ đầu mở. 197 00:09:57,700 --> 00:09:58,969 In thẻ tiêu đề mở. 198 00:09:58,969 --> 00:10:00,760 Nó sẽ phải thực hiện và giải thích 199 00:10:00,760 --> 00:10:02,671 rằng mỗi bước của con đường. 200 00:10:02,671 --> 00:10:04,670 Tại sao không chỉ cho các thông dịch viên chỉ che đậy 201 00:10:04,670 --> 00:10:06,878 điều nó không hiểu và làm điều đó tự động? 202 00:10:06,878 --> 00:10:11,365 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. 203 00:10:11,365 --> 00:10:16,220 >> Và đó là lý do tại sao chúng ta không làm chỉ có mở PHP delimiter 204 00:10:16,220 --> 00:10:19,450 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ồ 205 00:10:19,450 --> 00:10:24,330 gọi đến chức năng, in, và sau đó gần PHP delimiter và chúng tôi đang thực hiện. 206 00:10:24,330 --> 00:10:27,620 Vì vậy, đó là lý do tại sao chúng ta trộn lẫn chúng với nhau. 207 00:10:27,620 --> 00:10:32,345 >> 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. 208 00:10:32,345 --> 00:10:33,720 Đó là khá đơn giản. 209 00:10:33,720 --> 00:10:35,553 Chúng ta đã thấy các dấu hỏi, bình đẳng. 210 00:10:35,553 --> 00:10:39,012 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. 211 00:10:39,012 --> 00:10:40,720 Hãy làm những điều có thể một chút fancier. 212 00:10:40,720 --> 00:10:44,360 Đ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, 213 00:10:44,360 --> 00:10:47,280 vì vậy mà có lẽ người dùng có thể gửi thông tin cho tôi. 214 00:10:47,280 --> 00:10:50,230 Và sau đó tôi có thể làm điều gì đó với nó trên một trang khác. 215 00:10:50,230 --> 00:10:52,990 >> Vì vậy, PHP đã hỗ trợ cho một cái gì đó gọi là Super toàn cầu 216 00:10:52,990 --> 00:10:55,297 Biến, mà âm thanh khá tuyệt vời. 217 00:10:55,297 --> 00:10:57,130 Họ thực sự chỉ mảng kết hợp khổng lồ 218 00:10:57,130 --> 00:10:59,900 mà có thể giúp thực hiện điều này chức năng của qua 219 00:10:59,900 --> 00:11:05,010 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. 220 00:11:05,010 --> 00:11:07,760 >> Việc đầu tiên của những siêu globals được gọi là $ _GET. 221 00:11:07,760 --> 00:11:10,140 Và nó có thể là đơn giản nhất để hiểu. 222 00:11:10,140 --> 00:11:12,430 Điều gì xảy ra với $ _GET? 223 00:11:12,430 --> 00:11:16,240 Vâng, về cơ bản, người dùng sẽ gõ thêm thông tin 224 00:11:16,240 --> 00:11:18,390 vào cuối URL của chúng ta. 225 00:11:18,390 --> 00:11:21,460 Và bất cứ điều gì họ gõ, giả sử nó được định dạng trong một cách đặc biệt 226 00:11:21,460 --> 00:11:25,830 đượ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 227 00:11:25,830 --> 00:11:27,810 bằng ký hiệu. 228 00:11:27,810 --> 00:11:32,362 Những cặp giá trị sẽ được được lưu trữ trong một mảng kết hợp $ _GET. 229 00:11:32,362 --> 00:11:34,070 Và từ video của chúng tôi trên PHP cú pháp, chúng ta biết 230 00:11:34,070 --> 00:11:40,080 làm thế nào để làm việc với mảng kết đã. 231 00:11:40,080 --> 00:11:44,090 Vì vậy, đây là một ví dụ về một số PHP, nơi mà có lẽ tôi là 232 00:11:44,090 --> 00:11:50,180 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. 233 00:11:50,180 --> 00:11:51,970 Vì vậy, tôi có mở PHP delimiter của tôi. 234 00:11:51,970 --> 00:11:53,410 Tôi có một vòng lặp foreach. 235 00:11:53,410 --> 00:11:57,410 Tôi lặp qua Super Mảng toàn cầu được gọi là $ _GET. 236 00:11:57,410 --> 00:12:00,160 >> Và tôi muốn để có thể tham khảo để cả chìa khóa và giá trị. 237 00:12:00,160 --> 00:12:02,410 Và tôi chỉ in chúng ra, mỗi cái trên dường 238 00:12:02,410 --> 00:12:03,780 tag đoạn riêng của mình ở đây. 239 00:12:03,780 --> 00:12:07,620 Tôi in ra một số HTML và nội suy các giá trị 240 00:12:07,620 --> 00:12:12,900 các khóa và giá trị vào câu nói đó. 241 00:12:12,900 --> 00:12:16,980 >> 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. 242 00:12:16,980 --> 00:12:18,980 Và có lẽ điều này sẽ giúp minh họa một chút 243 00:12:18,980 --> 00:12:21,880 về những gì đang thực sự làm GET. 244 00:12:21,880 --> 00:12:23,610 Vì vậy, tôi trở lại đây trong thư mục gốc web của tôi. 245 00:12:23,610 --> 00:12:25,318 Và tôi sẽ phóng to một chút ít để cho thấy bạn 246 00:12:25,318 --> 00:12:28,620 rằng tôi có một tập tin tên, get1.php. 247 00:12:28,620 --> 00:12:31,830 >> Vì vậy, hãy click vào get1.php. 248 00:12:31,830 --> 00:12:36,600 Và tôi không thấy bất kỳ nội dung. 249 00:12:36,600 --> 00:12:38,390 Đó là lạ, phải không? 250 00:12:38,390 --> 00:12:39,740 Vâng, không thực sự thực sự. 251 00:12:39,740 --> 00:12:42,030 Bởi vì tôi đã không cung cấp bất cứ điều gì trong URL. 252 00:12:42,030 --> 00:12:46,270 Tôi sẽ get1.php, nhưng tôi không cung cấp bất kỳ cặp giá trị 253 00:12:46,270 --> 00:12:47,450 như là một phần của chuỗi truy vấn của tôi. 254 00:12:47,450 --> 00:12:50,510 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. 255 00:12:50,510 --> 00:12:53,040 >> Để bắt đầu một chuỗi truy vấn bạn chỉ cần gõ dấu hỏi. 256 00:12:53,040 --> 00:13:00,820 Sau đó, có lẽ tôi sẽ nói tên = Doug & năm = 2015. 257 00:13:00,820 --> 00:13:02,914 Và sau đó tôi sẽ nhấn Enter. 258 00:13:02,914 --> 00:13:04,080 Bây giờ thông báo những gì đang xảy ra. 259 00:13:04,080 --> 00:13:05,480 Tôi vẫn đang trong get1.php. 260 00:13:05,480 --> 00:13:08,445 Nhưng bây giờ tôi đã cung cấp cặp giá trị quan trọng, và tôi 261 00:13:08,445 --> 00:13:14,940 in chúng ra trên riêng của họ Tên paragraph--, năm Doug--, 2015. 262 00:13:14,940 --> 00:13:17,970 Đó 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. 263 00:13:17,970 --> 00:13:22,290 >> Và nếu tôi muốn có thêm một cặp giá trị quan trọng, và class = CS50. 264 00:13:22,290 --> 00:13:25,325 265 00:13:25,325 --> 00:13:27,580 Bây giờ tôi có một giá trị quan trọng cặp đó được in ra 266 00:13:27,580 --> 00:13:30,025 khi tôi xem lại các URL một lần nữa. 267 00:13:30,025 --> 00:13:31,900 Bây giờ có lẽ đây không phải là định dạng khủng khiếp tốt. 268 00:13:31,900 --> 00:13:33,660 Vì vậy, tôi có một phiên bản khác của get.php. 269 00:13:33,660 --> 00:13:36,350 Đó là get2.php. 270 00:13:36,350 --> 00:13:39,070 >> Sự khác biệt ở đây một là tôi có tập tin CSS, 271 00:13:39,070 --> 00:13:41,690 và nó định dạng thứ một ít độc đáo hơn cho tôi. 272 00:13:41,690 --> 00:13:43,940 Đó có lẽ không phải là nhất CSS đẹp trên thế giới. 273 00:13:43,940 --> 00:13:45,650 Nhưng nó chỉ là một cách khác để làm việc đó. 274 00:13:45,650 --> 00:13:52,840 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. 275 00:13:52,840 --> 00:13:56,610 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. 276 00:13:56,610 --> 00:13:58,360 Và nếu chúng ta bật qua IDE của tôi cho một thứ hai, 277 00:13:58,360 --> 00:14:06,870 Tôi sẽ chỉ cho bạn trong web PHP của tôi thư mục ở đây, get2.php. 278 00:14:06,870 --> 00:14:10,010 Chúng tôi sẽ mở nó lên, một số mã HTML ở đây. 279 00:14:10,010 --> 00:14:13,220 Rõ ràng tôi đang liên kết trong đó File CSS Tôi đã nói về. 280 00:14:13,220 --> 00:14:14,570 Tôi mở một thẻ bảng. 281 00:14:14,570 --> 00:14:15,970 Và sau đó ở đây là vòng lặp foreach của tôi. 282 00:14:15,970 --> 00:14:18,450 >> Ở đây là, những gì tôi thấy trên slide trước. 283 00:14:18,450 --> 00:14:21,007 Sự khác biệt duy nhất là tôi có chìa khóa này và giá trị CSS 284 00:14:21,007 --> 00:14:22,340 tạo kiểu tóc mà tôi đang áp dụng với nó. 285 00:14:22,340 --> 00:14:25,622 Nhưng đó là tất cả tôi đang làm, là tôi iterating qua $ _GET để có được tất cả 286 00:14:25,622 --> 00:14:26,580 của các cặp giá trị quan trọng. 287 00:14:26,580 --> 00:14:28,890 >> Và tôi in ra như bảng. 288 00:14:28,890 --> 00:14:33,230 Và, rõ ràng, tôi đang định dạng các phím trong một cách, với 00:14:40,057 Vì vậy, rõ ràng đó áp dụng cho một số class selector trong GET.CSS file CSS của tôi. 290 00:14:40,057 --> 00:14:42,890 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. 291 00:14:42,890 --> 00:14:45,530 Mà là khá nhiều những gì chúng ta thấy ở đây, nơi 292 00:14:45,530 --> 00:14:47,710 các giá trị của chúng tôi đã được in với một nền màu xanh, 293 00:14:47,710 --> 00:14:49,969 và các phím của chúng tôi đã được in với một nền màu vàng. 294 00:14:49,969 --> 00:14:52,010 Vì vậy, đó là cách tôi nhận được những phong cách khác nhau. 295 00:14:52,010 --> 00:14:54,054 Bởi vì tôi đang sử dụng các lớp CSS khác nhau. 296 00:14:54,054 --> 00:14:55,470 Nhưng đó là khá nhiều nó cho GET. 297 00:14:55,470 --> 00:14:58,380 Giống như tôi là chỉ cần giải nén thông tin. 298 00:14:58,380 --> 00:15:01,000 Và trong trường hợp này, tôi chỉ in nó ra màn hình. 299 00:15:01,000 --> 00:15:04,310 Tôi nhận được nó ra khỏi URL, và đó là những gì GET làm cho chúng ta. 300 00:15:04,310 --> 00:15:06,470 >> Bạn có thấy một thể vấn đề ở đây mặc dù? 301 00:15:06,470 --> 00:15:11,720 Tại sao chúng ta có thể không muốn sử dụng $ _GET? 302 00:15:11,720 --> 00:15:15,440 Nếu như, có lẽ, tôi đã làm cho truy vấn này? 303 00:15:15,440 --> 00:15:18,000 get3.php --Để, mà tôi không có trên IDE của tôi. 304 00:15:18,000 --> 00:15:19,640 Nó chỉ là một tập tin giả. 305 00:15:19,640 --> 00:15:22,187 Nhưng cần chú ý ở đây là rõ ràng đi qua mật khẩu của tôi ở. 306 00:15:22,187 --> 00:15:23,770 Và có lẽ mật khẩu của tôi là đáng xấu hổ. 307 00:15:23,770 --> 00:15:28,070 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. 308 00:15:28,070 --> 00:15:33,140 >> 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à, 309 00:15:33,140 --> 00:15:34,970 đó là sẽ có trong URL. 310 00:15:34,970 --> 00:15:39,890 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. 311 00:15:39,890 --> 00:15:42,040 Tôi có thể đi qua chúng thông tin nhạy cảm. 312 00:15:42,040 --> 00:15:43,310 Hoặc có lẽ nó thậm chí không một người dùng độc hại. 313 00:15:43,310 --> 00:15:45,790 Có lẽ nó chỉ là người bạn của bạn đang đứng trên vai của bạn. 314 00:15:45,790 --> 00:15:47,650 Và bây giờ họ biết mật khẩu vào tài khoản Facebook của bạn. 315 00:15:47,650 --> 00:15:49,483 >> Và có lẽ họ sẽ không làm bất cứ điều gì với nó. 316 00:15:49,483 --> 00:15:53,749 Nhưng nếu mật khẩu của bạn là gửi qua $ _GET để Facebook, 317 00:15:53,749 --> 00:15:55,290 bây giờ họ biết mật khẩu Facebook của bạn. 318 00:15:55,290 --> 00:15:59,000 Bởi vì nó phải có trong URL khi bạn đã thực hiện gửi thông tin. 319 00:15:59,000 --> 00:16:01,887 >> 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. 320 00:16:01,887 --> 00:16:04,470 Đó là một cách tốt để vượt qua thông tin rằng chúng tôi không đặc biệt 321 00:16:04,470 --> 00:16:05,886 quan tâm là quá nhạy cảm. 322 00:16:05,886 --> 00:16:09,347 Bởi vì GET là khá nhanh, tương đối so với các siêu globals khác 323 00:16:09,347 --> 00:16:10,430 chúng ta sẽ nói về. 324 00:16:10,430 --> 00:16:13,330 Nhưng có lẽ không phải là công cụ tốt nhất cho thông tin nhạy cảm. 325 00:16:13,330 --> 00:16:15,990 >> Cho rằng chúng ta có thể muốn sử dụng một cái gì đó gọi là $ _POST, 326 00:16:15,990 --> 00:16:18,560 mà là một biến siêu toàn cầu. 327 00:16:18,560 --> 00:16:20,750 Đó là một mảng kết hợp. 328 00:16:20,750 --> 00:16:23,240 Vì vậy, nó hoạt động khá nhiều chính xác giống như GET. 329 00:16:23,240 --> 00:16:26,850 Ngoại trừ, thay vì giải nén Thông tin từ URL, 330 00:16:26,850 --> 00:16:29,870 nó làm điều gì đó thông qua các tiêu đề HTTP. 331 00:16:29,870 --> 00:16:32,080 Vì vậy, nhớ lại từ chúng tôi video trên HTTP, chúng tôi nói chuyện 332 00:16:32,080 --> 00:16:34,850 về cách trình duyệt, máy chủ, và khách hàng giao tiếp. 333 00:16:34,850 --> 00:16:38,070 Và thông tin được truyền lại và ra trong tiêu đề HTTP. 334 00:16:38,070 --> 00:16:43,330 >> Với $ _POST, thông tin thường gửi thông qua những tiêu đề HTTP. 335 00:16:43,330 --> 00:16:49,770 Và chúng ta sẽ thường thấy $ _POST trong bối cảnh nộp các biểu mẫu HTML. 336 00:16:49,770 --> 00:16:52,390 Bạn vẫn có thể sử dụng các hình thức HTML trình điều để GET. 337 00:16:52,390 --> 00:16:56,120 Nhưng họ đang thường được sử dụng trong bối cảnh POST. 338 00:16:56,120 --> 00:17:00,280 >> Vì vậy, đây là một ví dụ của một dạng HTML. 339 00:17:00,280 --> 00:17:06,750 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". 340 00:17:06,750 --> 00:17:10,756 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. 341 00:17:10,756 --> 00:17:13,630 Và nếu bạn gọi lại, tôi muốn nhấn Submit và sau đó trang chỉ làm mới, 342 00:17:13,630 --> 00:17:14,660 đã không làm bất cứ điều gì. 343 00:17:14,660 --> 00:17:18,250 >> 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, 344 00:17:18,250 --> 00:17:20,750 vào một tập tin PHP tên post.php. 345 00:17:20,750 --> 00:17:25,810 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. 346 00:17:25,810 --> 00:17:29,040 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 347 00:17:29,040 --> 00:17:31,470 sẽ được trình thông qua các tiêu đề HTTP. 348 00:17:31,470 --> 00:17:36,440 >> 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. 349 00:17:36,440 --> 00:17:39,811 Nó sẽ có thể truy cập bằng cách vào $ _POST. 350 00:17:39,811 --> 00:17:42,310 Và rõ ràng, cách tôi có thể nhận được ở mỗi phần tử cá nhân 351 00:17:42,310 --> 00:17:44,765 với mảng kết là với thuộc tính này, 352 00:17:44,765 --> 00:17:48,130 các thuộc tính Name của các thẻ đầu vào của chúng tôi. 353 00:17:48,130 --> 00:17:53,540 >> 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 354 00:17:53,540 --> 00:17:55,440 gõ vào trường đầu tiên. 355 00:17:55,440 --> 00:18:01,030 Và $ _POST mật khẩu, các pw thay, để có được ở bất cứ người sử dụng gõ 356 00:18:01,030 --> 00:18:03,650 trong lĩnh vực thứ hai. 357 00:18:03,650 --> 00:18:06,414 >> Vì vậy, chúng ta hãy nhìn vào trên này trong CS50 IDE. 358 00:18:06,414 --> 00:18:08,330 Vì vậy, ở đây chúng tôi đang có, và tôi sẽ phóng to cho một thứ hai. 359 00:18:08,330 --> 00:18:12,380 Và chúng ta có một tập tin gọi là post.html. 360 00:18:12,380 --> 00:18:13,690 Tôi bấm vào post.html. 361 00:18:13,690 --> 00:18:16,300 Ở phía trên, ở đây tôi có một hình thức web rất đơn giản. 362 00:18:16,300 --> 00:18:18,750 Đó là hình thức chúng ta chỉ nhìn thấy trên slide một giây trước đó. 363 00:18:18,750 --> 00:18:25,610 >> 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 364 00:18:25,610 --> 00:18:27,340 biết là squadgoals. 365 00:18:27,340 --> 00:18:30,100 Và tôi sẽ nhấn Submit. 366 00:18:30,100 --> 00:18:32,290 Và rõ ràng, rằng trình để post.php. 367 00:18:32,290 --> 00:18:33,810 Và tôi dường như in đó. 368 00:18:33,810 --> 00:18:36,490 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 369 00:18:36,490 --> 00:18:37,720 tên người dùng và mật khẩu. 370 00:18:37,720 --> 00:18:38,960 >> Tên của người dùng là Doug. 371 00:18:38,960 --> 00:18:40,810 Mật khẩu của người dùng là squadgoals. 372 00:18:40,810 --> 00:18:42,480 Làm thế nào tôi làm điều này? 373 00:18:42,480 --> 00:18:44,800 Vâng, bật sang IDE một lần nữa cho một thứ hai. 374 00:18:44,800 --> 00:18:51,340 Chúng tôi sẽ di chuyển xuống để lấy xem post.php, đó là 375 00:18:51,340 --> 00:18:54,040 các hành động mà tôi sử dụng để gửi ở đây. 376 00:18:54,040 --> 00:18:55,739 Đó là hành động của các hình thức HTML của tôi. 377 00:18:55,739 --> 00:18:56,780 Và đó là tất cả tôi đang làm. 378 00:18:56,780 --> 00:19:01,370 Tên của người dùng, và tôi in hiện các nội dung của $ _POST "tên". 379 00:19:01,370 --> 00:19:04,660 Và sau đó mật khẩu của người dùng là $ _POST "password". 380 00:19:04,660 --> 00:19:08,920 Vì vậy, tôi đã đưa ra thông tin rằng bằng cách gửi các mẫu HTML. 381 00:19:08,920 --> 00:19:13,790 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 382 00:19:13,790 --> 00:19:17,470 dữ liệu với hình thức đó là phương thức POST. 383 00:19:17,470 --> 00:19:20,640 >> Bây giờ nó có lẽ không vì vậy great-- tôi sẽ 384 00:19:20,640 --> 00:19:24,510 quay trở lại trong một giây để tập here-- của chúng tôi 385 00:19:24,510 --> 00:19:30,120 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, 386 00:19:30,120 --> 00:19:32,532 đó là bề ngoài là an toàn hơn. 387 00:19:32,532 --> 00:19:34,740 Đây có thể là không tuyệt vời như vậy nếu tôi làm điều đó và sau đó 388 00:19:34,740 --> 00:19:36,470 in ra mật khẩu của người dùng. 389 00:19:36,470 --> 00:19:38,540 Đó là nghĩa vụ để được an toàn hơn. 390 00:19:38,540 --> 00:19:40,870 >> OK, nhưng nó không hoàn toàn an toàn. 391 00:19:40,870 --> 00:19:42,910 Và như vậy trong ít này đoạn mã ở đây tôi muốn 392 00:19:42,910 --> 00:19:46,410 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ì đó 393 00:19:46,410 --> 00:19:51,200 để suy nghĩ khi bạn đang làm việc hoặc sử dụng internet. 394 00:19:51,200 --> 00:19:53,890 Đây chỉ là một cái gì đó để xem xét. 395 00:19:53,890 --> 00:19:57,980 >> Tôi đã nói với bạn rằng thông tin là gửi qua HTTP header 396 00:19:57,980 --> 00:19:59,724 khi bạn sử dụng phương thức POST. 397 00:19:59,724 --> 00:20:01,390 Có nghĩa là chúng không hoàn toàn an toàn. 398 00:20:01,390 --> 00:20:05,610 Họ đang rất khó tìm hơn sử dụng các phương thức GET, nơi 399 00:20:05,610 --> 00:20:06,882 nó chỉ đúng trong URL. 400 00:20:06,882 --> 00:20:08,340 Nhưng vẫn có một cách để tìm thấy nó. 401 00:20:08,340 --> 00:20:10,423 Và tôi chỉ muốn hiển thị bạn này để bạn có thể 402 00:20:10,423 --> 00:20:12,940 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 403 00:20:12,940 --> 00:20:14,560 các trang web trên Facebook mật khẩu, và có thể sử dụng 404 00:20:14,560 --> 00:20:16,518 cùng một mật khẩu trong một rất nhiều nơi khác nhau. 405 00:20:16,518 --> 00:20:22,060 Biết rằng là vẫn thực sự khá dễ dàng để tìm ra mật khẩu của ai đó. 406 00:20:22,060 --> 00:20:25,190 >> Và như vậy ở đây, tôi sẽ để đi đến post2.html. 407 00:20:25,190 --> 00:20:28,850 Và sự khác biệt với post2.html và post2.php là khá tinh tế. 408 00:20:28,850 --> 00:20:31,420 Sự khác biệt chỉ là mà tôi không in ra 409 00:20:31,420 --> 00:20:33,520 mật khẩu khi tôi gửi biểu mẫu. 410 00:20:33,520 --> 00:20:35,260 >> Vì vậy, tôi sẽ đánh vào, Doug. 411 00:20:35,260 --> 00:20:38,365 Và tôi sẽ gõ trong, squadgoals, thậm chí 412 00:20:38,365 --> 00:20:40,770 mặc dù chúng ta biết đó là mật khẩu. 413 00:20:40,770 --> 00:20:42,540 Trước khi tôi nộp hình thành mặc dù, tôi sẽ 414 00:20:42,540 --> 00:20:45,864 để mở Công cụ phát triển, chỉ để cho bạn thấy những gì đang xảy ra ở đây. 415 00:20:45,864 --> 00:20:47,530 Vì vậy, trong Chrome, tôi chỉ cần đi để nhấn F12. 416 00:20:47,530 --> 00:20:54,120 417 00:20:54,120 --> 00:20:57,230 Và điều đó sẽ mở ra của tôi Công cụ phát triển ở phía bên tay phải. 418 00:20:57,230 --> 00:20:59,480 Tôi đã không gửi các hình thức nào. 419 00:20:59,480 --> 00:21:02,680 Bây giờ tôi sẽ nhấn Submit trên mẫu của tôi. 420 00:21:02,680 --> 00:21:05,370 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 421 00:21:05,370 --> 00:21:07,620 để post2.php, có ý nghĩa. 422 00:21:07,620 --> 00:21:10,040 Tôi sẽ bấm vào đó. 423 00:21:10,040 --> 00:21:13,802 >> Sau đó, ở đây, tôi sẽ bấm vào Headers. 424 00:21:13,802 --> 00:21:15,410 Có rất nhiều thứ đang diễn ra ở đây. 425 00:21:15,410 --> 00:21:21,310 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 426 00:21:21,310 --> 00:21:25,180 đã chặn nó cho một quyền second-- có ở góc rất thấp, 427 00:21:25,180 --> 00:21:27,386 name-- Doug, squadgoals pw--. 428 00:21:27,386 --> 00:21:30,010 Vì vậy, mặc dù tôi đang sử dụng POST phương pháp, đó là an toàn hơn, 429 00:21:30,010 --> 00:21:33,570 chỉ cần lưu ý rằng khi bạn làm như vậy, bạn vẫn truyền thông tin 430 00:21:33,570 --> 00:21:34,430 thông qua HTTP. 431 00:21:34,430 --> 00:21:36,770 Và nó vẫn có thể được được tìm thấy bởi một kẻ thù. 432 00:21:36,770 --> 00:21:39,270 Nó chỉ là cái gì chúng ta đang đi phải đối phó với thực sự. 433 00:21:39,270 --> 00:21:41,980 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, 434 00:21:41,980 --> 00:21:44,410 đó sẽ là một tốt hơn, mà tôi không làm ở đây. 435 00:21:44,410 --> 00:21:47,010 >> Nhưng chỉ cần lưu ý rằng các POST phương pháp có những hạn chế quá. 436 00:21:47,010 --> 00:21:49,801 Đây là một cải tiến hơn GET trong về được ngay lập tức nhìn thấy được. 437 00:21:49,801 --> 00:21:51,280 Nhưng nó không phải là một sửa chữa hoàn tất. 438 00:21:51,280 --> 00:21:53,280 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 439 00:21:53,280 --> 00:21:56,350 mà bạn có thể sử dụng để có được một số thực hành làm việc với PHP. 440 00:21:56,350 --> 00:21:58,300 Tạo các cặp sau đây của trang web. 441 00:21:58,300 --> 00:22:00,960 Đầ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 442 00:22:00,960 --> 00:22:01,460 nút. 443 00:22:01,460 --> 00:22:04,070 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. 444 00:22:04,070 --> 00:22:07,450 >> Và sau đó thứ hai file bạn nên tạo 445 00:22:07,450 --> 00:22:11,687 là một file, một file PHP, mà được mong đợi đầu vào, qua POST, 446 00:22:11,687 --> 00:22:14,770 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. 447 00:22:14,770 --> 00:22:16,160 Bạn không cần phải làm bất cứ kiểm tra lỗi hoặc tương tự. 448 00:22:16,160 --> 00:22:18,284 Bạn có thể giả định người sử dụng sẽ gõ một giá trị số nguyên, 449 00:22:18,284 --> 00:22:22,230 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 đó. 450 00:22:22,230 --> 00:22:24,790 Bạn chỉ muốn tạo ra một n của bảng n nhân. 451 00:22:24,790 --> 00:22:28,480 >> 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. 452 00:22:28,480 --> 00:22:31,832 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. 453 00:22:31,832 --> 00:22:33,790 Chỉ cần để bạn có thể xem những gì chúng tôi đang lái xe ở đây, 454 00:22:33,790 --> 00:22:36,040 chúng ta sẽ có một cái nhìn tại tập tin này trong IDE của tôi. 455 00:22:36,040 --> 00:22:38,080 >> Vì vậy, ở đây trong IDE, tôi có mult_form.html. 456 00:22:38,080 --> 00:22:41,370 457 00:22:41,370 --> 00:22:43,100 Tôi sẽ nhấp vào nó. 458 00:22:43,100 --> 00:22:46,020 Tất cả tôi muốn làm là gửi một giá trị. 459 00:22:46,020 --> 00:22:47,590 Gõ 10, nhấn Submit. 460 00:22:47,590 --> 00:22:51,190 Và rõ ràng, mult_table.php, mà chúng ta có thể nhìn thấy ở phía trên có trong URL, 461 00:22:51,190 --> 00:22:53,970 Tôi đang tạo 10 của 10 bảng cửu chương. 462 00:22:53,970 --> 00:22:59,365 >> 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. 463 00:22:59,365 --> 00:23:02,240 Tôi, tất nhiên, sẽ không hiển thị bạn nội dung của mult_table.php, 464 00:23:02,240 --> 00:23:04,781 vì đó sẽ có những niềm vui trong số này ở nhà tập thể dục. 465 00:23:04,781 --> 00:23:07,480 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 466 00:23:07,480 --> 00:23:10,889 và POST, rất đơn giản, hy vọng căng thẳng ví dụ miễn phí, chỉ cần 467 00:23:10,889 --> 00:23:12,180 để làm một chút chút thực hành. 468 00:23:12,180 --> 00:23:16,540 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 469 00:23:16,540 --> 00:23:19,710 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 470 00:23:19,710 --> 00:23:22,205 giống như một bảng nhân, như trái ngược với chỉ văn bản chỉ 471 00:23:22,205 --> 00:23:23,261 loại ngồi ở đó. 472 00:23:23,261 --> 00:23:26,260 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à 473 00:23:26,260 --> 00:23:27,597 $ _SESSION. 474 00:23:27,597 --> 00:23:29,930 Và có lẽ điều này là thực sự ví dụ tốt nhất của một cái gì đó 475 00:23:29,930 --> 00:23:31,700 chúng ta sẽ xem xét toàn cầu. 476 00:23:31,700 --> 00:23:33,189 Đó là một mảng khác. 477 00:23:33,189 --> 00:23:34,480 Đó là một mảng kết hợp. 478 00:23:34,480 --> 00:23:40,580 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. 479 00:23:40,580 --> 00:23:43,410 >> Chúng tôi không phải nộp thông tin một trang tại một thời gian 480 00:23:43,410 --> 00:23:45,400 như chúng tôi làm với GET và POST với. 481 00:23:45,400 --> 00:23:46,380 Nó luôn luôn ở đó. 482 00:23:46,380 --> 00:23:50,040 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ụ, 483 00:23:50,040 --> 00:23:53,120 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. 484 00:23:53,120 --> 00:23:58,180 >> 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ư 485 00:23:58,180 --> 00:24:02,320 Tên của người dùng, hoặc người dùng của Thông tin ID, và như vậy. 486 00:24:02,320 --> 00:24:07,600 Và thông tin đó sẽ ở lại $ _SESSION Cho đến khi bạn tiêu diệt phiên 487 00:24:07,600 --> 00:24:09,550 một chút sau này. 488 00:24:09,550 --> 00:24:12,375 >> Viết trang web động với PHP làm cho họ tốt hơn rất nhiều. 489 00:24:12,375 --> 00:24:14,250 Các trang web của bạn trở nên rất năng động, và bạn không 490 00:24:14,250 --> 00:24:17,670 phải làm quá nhiều việc hơn những gì bạn nếu không sẽ đã làm được 491 00:24:17,670 --> 00:24:18,920 làm việc đó với HTML. 492 00:24:18,920 --> 00:24:21,630 Nhưng nó đòi hỏi thực tế, luyện tập rất nhiều. 493 00:24:21,630 --> 00:24:26,897 >> 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. 494 00:24:26,897 --> 00:24:28,730 Có lẽ là những gì một chút hơi khó khăn đang làm việc 495 00:24:28,730 --> 00:24:33,180 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 496 00:24:33,180 --> 00:24:34,220 cùng với nhau. 497 00:24:34,220 --> 00:24:37,570 Nhưng cũng phải nhận thức rằng internet là một kho thông tin khổng lồ. 498 00:24:37,570 --> 00:24:41,670 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 499 00:24:41,670 --> 00:24:43,354 giáo luật tại php.net. 500 00:24:43,354 --> 00:24:45,520 Và bạn có thể tìm thấy ở đó, rất nhiều chức năng khác nhau, 501 00:24:45,520 --> 00:24:48,330 và trường hợp sử dụng, và các ví dụ theo ví dụ, khi các ví dụ. 502 00:24:48,330 --> 00:24:51,340 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à, 503 00:24:51,340 --> 00:24:52,964 người ấy có thể thực hiện nó trước khi bạn. 504 00:24:52,964 --> 00:24:55,840 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ì 505 00:24:55,840 --> 00:24:58,230 nó là bạn đang cố gắng để thực hiện quá. 506 00:24:58,230 --> 00:24:59,230 >> Tôi Doug Lloyd. 507 00:24:59,230 --> 00:25:01,210 Đây là CS50. 508 00:25:01,210 --> 00:25:02,608