SPEAKER 1: Tất cả, phải không chào đón trở lại. Đây là CS50. Và điều này là sự bắt đầu của tuần chín. Và điều này là sự bắt đầu của phần còn lại của thời gian của bạn trong CS50, trong đó chúng ta quá trình chuyển đổi bây giờ, cuối cùng, vào các trang web khía cạnh của khóa học, nơi bạn sẽ thấy rằng rất nhiều các nguyên tắc cơ bản mà chúng tôi đã được xuất khẩu cho tuần vẫn trở lại thăm, hoặc ám ảnh, chúng tôi. Nhưng bây giờ, bạn sẽ thấy rằng nó là một thứ tự cường độ dễ dàng hơn để hoàn thành nhiệm vụ nhất định và giải quyết vấn đề nhất định - nhiều đến nỗi ngay cả khi bạn nghĩ bộ vấn đề nào đó là niềm vui trong họ cách riêng, tôi nghĩ rằng bạn sẽ tìm thấy mà p thiết lập 7, trang thiết lập 8, và sau đó, cuối cùng, dự án cuối cùng sẽ được tất cả các hài lòng hơn bởi vì bạn sẽ thấy rằng chúng ta bắt đầu đưa cho các cấp bây giờ mọi thứ như quản lý bộ nhớ, và con trỏ, và những gì đang xảy ra trên dưới mui xe. Và một lần nữa, chủ đề, tất cả trong suốt học kỳ đã được lớp này và không giới hạn. Và bây giờ chúng tôi đang sắp xếp lên ở đây, đứng trên vai của tuần qua. Bây giờ, nhớ lại từ lần cuối cùng chúng tôi nói về cách mạng làm việc. Và điều này có lẽ là một đơn giản hóa, nhưng hãy nhớ rằng tất cả các máy tính trên thế giới có một địa chỉ IP giải quyết, mặc dù đó là một chút của một đơn giản hóa vẫn còn. Và những địa chỉ được sử dụng để duy nhất xác định máy móc để khi bạn gửi thông tin hoặc các gói, có thể nói, họ có thể có một nguồn gốc địa chỉ, địa chỉ đích. Và những địa chỉ IP tương tự có thể được sử dụng cả tốt và cũng cho cái ác, để theo dõi bạn, ví dụ. Trong thực tế, mỗi một người bạn với một máy tính xách tay mở ngay bây giờ, hoặc điện thoại của bạn trong túi, có một địa chỉ IP trên mạng của Đại học Harvard. Và nó không phải là tất cả những gì khó tương quan đó để bản thân và nơi là những ngày này. Nhưng thêm vào đó có lẽ trong tương lai. Bây giờ tôi nghĩ rằng tôi muốn mang lại một số kỷ niệm của [? nâng cao?] và cung cấp cho bạn một đoạn trích từ một chương trình bạn có thể thấy quen thuộc. Nếu chúng ta có thể tắt đèn cho chỉ một vài giây. Các Numb3rs chương trình. SPEAKER 2: Đó là một địa chỉ IPP4 32-bit. SPEAKER 3: IPP, như trong Internet? SPEAKER 2: mạng tư nhân. Để mạng riêng Amita của. Cô ấy thật tuyệt vời. SPEAKER 3: Thôi nào, Charlie. SPEAKER 2: Đó là. Một địa chỉ IP gương. Cô ấy cho chúng tôi xem những gì cô ấy làm trong thời gian thực. SPEAKER 1: OK, do đó, một vài điều sai với hình ảnh này. Vì vậy, một, và điều này là chấp nhận được, điều này thực sự không phải là một địa chỉ IP hợp lệ. Một địa chỉ IP hợp lệ phải được số của các hình thức w.x.y.z, nơi mà mỗi những chữ cái là 0-255. Nhưng đó là tốt bởi vì giống như các phim mà họ số điện thoại giả mạo, họ giả địa chỉ IP. Bạn không thực sự đánh máy chủ thực. Nhưng tâm trí bạn, đây là một trình duyệt. Và các trình duyệt không bắt đầu xuất mã máy tính như thế này. Và nếu chúng ta nhìn sâu hơn một chút, thông báo mà ngôn ngữ mà họ đang nhìn thấy trên màn hình là một ngôn ngữ được gọi là Mục tiêu C, đó là ngôn ngữ trong mà ứng dụng iPhone được viết, đặc biệt là những người liên quan bút màu, như bạn có thể nhìn thấy từ mã nguồn ở đây. OK, tôi nghĩ đây là buồn cười. Vì vậy, đoạn mã này đã hoàn toàn không có gì để làm với bất cứ điều gì này tập đặc biệt là về. Vì vậy, các câu nói đùa là loại trên các folks dùng cho việc này cấp. Nhưng điều này không phải là tất cả những khó khăn để có được những chi tiết kỹ thuật phải. Và tôi khuyến khích bạn. Và trên thực tế, 50 có thể rất tốt làm hỏng rất nhiều chương trình truyền hình và phim hay bạn bởi vì bạn sẽ thấy rằng nó chỉ là không có thể những gì họ đang làm trên màn hình. Nhưng thực sự, đây là mã mà bạn có thể nhìn thấy nó trong một ứng dụng iPhone hoặc ứng dụng hệ điều hành Mac. Nó không có gì ở tất cả để làm với an ninh. Vì vậy, giữ một mắt ra cho hơn những điều thú vị đó như thế. Nhưng hôm nay chúng ta bắt đầu đi sâu vào thực sự sâu sắc cho cả một loạt các ngôn ngữ. Một thực tế, một trong những bao quát bán đồ ăn của phần này của Tất nhiên là không học cách lập trình trong PHP, không để học SQL cho mỗi gia nhập, không để tìm hiểu JavaScript cho mỗi gia nhập, nhưng thay để dạy cho mình cách dạy bản thân ngôn ngữ mới bởi vì, thực sự, chúng ta bắt đầu có ngay bây giờ các bánh xe đào tạo ra để sau cuối Tất nhiên, bạn không mong đợi một 20 Trang đặc điểm kỹ thuật cho bạn biết cách thực hiện một số chương trình. Bạn có đủ các thành phần trong của bạn tâm trí, và đủ công cụ trong công cụ của bạn bộ, mà để bắt đầu xây dựng các giải pháp cho những vấn đề quan tâm bạn đối với một số nhóm sinh viên, đối với một số dự án nghiên cứu, hoặc thực sự bất cứ điều gì quan tâm đến bạn. Vì vậy, vào giai đoạn cuối đó, nhớ lại rằng đây là hình ảnh chúng tôi đã thu hút nó lần cuối cùng. Và đây là hai máy tính, khách hàng và cắt đứt, nói chuyện với nhau. Và các giao thức, ngôn ngữ, do đó, để nói, rằng hai máy tính xảy ra được nói chuyện được gọi là HTTP. Và đó chỉ là giao thức được sử dụng bởi máy tính để chuyển thông tin trên thế giới web. Các trang web, tất nhiên, chỉ là một dịch vụ chạy trên đầu trang của cái gọi là internet. Dịch vụ khác là những gì có sẵn trên đầu của Internet những ngày này? Một số giao thức khác - là những gì vậy? ĐỐI TƯỢNG: FTP. SPEAKER 1: FTP. Vì vậy, File Transfer Protocol là một. Hầu hết các bạn có lẽ đã không sử dụng nó. Nhưng hầu hết các bạn có thể đã sử dụng những thứ như Gchat, hoặc ngay lập tức tin nhắn nói chung, chắc chắn email. Và những người cũng vậy, các dịch vụ chạy trên đầu của internet vì, tại cuối ngày, internet chính nó thực sự chỉ có được dữ liệu từ điểm A đến điểm B. Và nó sử dụng một số hạt riêng của mình, một trong số họ hoặc hai trong số họ thường nhất được gọi là TCP / IP, mà là để nói rằng một máy tính trên Internet thực sự có thể làm được những thứ khác nhau, email, và các trang web, và vv. Google hiện rất nhiều về điều này. Vậy làm thế nào là những dịch vụ độc đáo xác định, chúng tôi đã nói, trên một máy tính mà thực sự có thể làm nhiều điều? Số cổng. Và đây chỉ là tùy ý của con người ước như 80 là web, 443 là web được mã hóa, 25 là email. Và có một bó của những người khác. Và những con số chỉ đơn giản là bao gồm trong những gói thông tin, những phong bì ảo, mà thực sự có yêu cầu hoặc đáp ứng. Vì vậy, khi bạn nhận được lại một phản ứng từ web, thông thường, bạn không nhìn thấy bất kỳ số nào trong các điều khoản của mã trạng thái của các phản ứng. Bạn không thực sự thấy hoạt động bên trong của các gói tin được đưa ra. Nhưng 200 không thực sự có nghĩa là OK. Và điều đó có nghĩa tất cả là tốt. Bạn có thể đã nhìn thấy một bó của các. Mà có lẽ là phổ biến nhất bạn đã thấy trên các trang web? 404. Nó chỉ có nghĩa là tập tin không được tìm thấy. Nó có nghĩa là một người nào đó hơi say lên. Bạn đã làm bằng cách đánh nhầm địa chỉ URL, hoặc một người nào đó khác đã làm bằng cách cho bạn một URL không hợp lệ, hoặc họ đã xóa tập tin và URL vẫn còn được sử dụng bởi người. Vì vậy, bất kỳ số lý do có thể giải thích lý do tại sao một tập tin không được tìm thấy. Và bạn sẽ thấy, trong những tuần tới, các mã lỗi khác, và bạn sẽ tận dụng lợi thế của một số người trong số họ. Điều tồi tệ nhất là 500. Nếu bạn nhận được một lỗi 500 trong mã của bạn đã viết, suy nghĩ về điều đó như sắp xếp của tương tự của seg lỗi trong thế giới về lập trình web. Nó không phải là khá nghiêm trọng. Nhưng nó chỉ có nghĩa rằng, ở đâu đó, bạn hơi say lên. Vì vậy, mong muốn những người. Nhưng chúng ta hãy xem nếu chúng ta có thể nhìn thấy những trong bối cảnh. Cho tôi đi đến một trình duyệt ở đây và làm như sau. Vì vậy, đây là Chrome, mà sẽ xảy ra được cài đặt trong thiết bị. Nhưng hầu hết tất cả các trình duyệt hiện nay có một số chức năng tương đương. Tôi sẽ đi lên menu của Chrome, và vào Tools, và tôi sẽ đi để Công cụ phát triển. Và bạn sẽ thấy bảng điều khiển này ít mở ra ở dưới cùng của cửa sổ. Phím tắt khác, phải trung thực, mà tôi thường sử dụng bản thân mình là Nhấp chuột phải hoặc kiểm soát vào bất cứ nơi nào trên web trang và chỉ cần đi để kiểm tra nguyên tố. Và điều đó sẽ không chỉ mở này có cho bạn. Nó cũng sẽ mở ra, cụ thể, phần yếu tố trên phía bên tay trái. Vì vậy, chúng tôi tất nhiên nhìn thấy Google. Họ đã thay đổi logo của họ ngày hôm nay. Nhưng trên nếu tôi di chuyển xuống ở đây, nhận thấy mà theo yếu tố, bạn thấy những gì được gọi là HTML, HyperText Markup Ngôn ngữ, và đây là ngôn ngữ rằng điều này và tất cả các trang web, thực sự, được viết in Nhưng nó thực sự được định dạng cho chúng tôi rất nhiều readably hơn hơn bình thường là. Trong thực tế, nếu tôi thu nhỏ, và tôi thay vì chỉ cần nhấp chuột phải hoặc Kiểm soát Nhấn bấm vào trang, và sau đó vào View Page Source, đây là nghĩa gì Google đã gửi xuống trình duyệt của tôi. Vì vậy, một số người hoặc những người đã viết Google.com sử dụng mã nguồn này. Hầu hết trong số này không phải là HTML. Nó thực sự là một ngôn ngữ được gọi là JavaScript, chúng tôi sẽ đến vào thứ tư. Nhưng những gì Chrome, và những gì mọi trình duyệt có thể làm cho chúng ta, là loại nhìn thấy qua tất cả những phiền nhiễu của cú pháp điên, và không gian lắp lại trắng cho chúng ta, và thậm chí cả cú pháp nổi bật, hoặc tô màu điều cho chúng ta. Vì vậy, bạn sẽ thấy rằng những cái gọi là công cụ phát triển được xây dựng trong trình duyệt sẽ làm cho cuộc sống của bạn như vậy, rất dễ dàng hơn nhiều bởi vì bạn có thể khám phá, thông qua menu này giao diện, chính xác những gì cơ bản mã nguồn cho bất kỳ trang nào trên internet. Và quả thực, đây là một trong những cách hiệu quả để học cách làm một cái gì đó mới, ít nhất là nếu trang không phải là quá phức tạp như áp đảo, được để bắt đầu phá đám đó là HTML, tìm tại cái gọi là CSS, mà chúng ta sẽ đến để một chút là tốt, để có được một sự hiểu biết về làm thế nào mà lập trình viên thực hiện một số đặc biệt tính năng của trang. Nhưng về mặt kỹ thuật chi tiết thú vị phải bây giờ nó sẽ được điều này. Nếu tôi đi sang tab Network, bây giờ chúng ta rõ ràng điều này. Tôi sẽ nhấp vào ít qua biểu tượng ở đây, và sau đó đi đến một trang web khác. Và tôi chỉ cần đi để gõ trong Facebook.com. Không HTTP, HTTPS không, không có cá nhân. Chúng ta hãy thực sự nhìn thấy những gì xảy ra ở đây. Nhập. Bây giờ nhận thấy một bó toàn bộ công cụ chỉ xuất hiện trong bảng dưới đây, trong Ngoài các trang web xuất hiện ở đầu trang. Tôi sẽ di chuyển trở lại vào Tab mạng ở đây, và tôi sẽ bấm vào dòng đầu tiên. Những gì công cụ này là sẽ tiết lộ cho chúng tôi là mỗi một trong những yêu cầu HTTP mà nhanh chóng chỉ quay trở lại và giữa trình duyệt của tôi và máy chủ của Facebook. Và như vậy mỗi một trong những hàng đại diện cho một trong những yêu cầu hoặc Đáp lại, một hoặc nhiều những phong bì ảo. Hoặc tình cờ hơn, nó giống như một người như một người, một khách hàng trong một nhà hàng, yêu cầu một cái gì đó một lần nữa, và một lần nữa, và một lần nữa. Và người phục vụ giúp mang lại nó trở lại tại một thời điểm. Vì vậy, bây giờ, nếu tôi phóng to trên này, thông báo và đây sẽ là loại điều mà bạn đang chào đón và khuyến khích chơi với mình, bởi vì chúng tôi sẽ không đi qua tất cả mọi thứ rất chi tiết. Nhưng nhận thấy có một vài phụ tab đây - Tiêu đề, Xem trước, đáp ứng, Cookies, và thời gian. Tôi chỉ cần đi để nhìn vào tiêu đề bây giờ bởi vì đây là ít thành phần bên trong phong bì mà giúp dữ liệu đến và từ các nơi. Vì vậy, đầu tiên, hãy để tôi bấm vào đây, xem Nguồn bên cạnh tiêu đề yêu cầu. Có yêu cầu mà trình duyệt của tôi, Chrome, trong trường hợp này, đưa vào bên trong của mà phong bì ảo. Bạn sẽ nhớ lại tuần trước tôi tay gõ nó trong khi giả vờ là một trình duyệt. Sau đó, nó nhắc nhở các máy chủ mà nó là tìm kiếm các máy chủ được gọi là Facebook.com. Và sau đó có một chút phức tạp hơn thông tin mà chúng tôi sẽ vẫy bàn tay của chúng tôi bây giờ. Nhưng nếu tôi bắt đầu di chuyển xuống tại trong cửa sổ này, hãy để tôi đến được với các tiêu đề phản ứng. Đây là những gì trong ảo phong bì mà trở về từ Facebook.com. Và nếu tôi nhấp vào View Source chỉ để xem nguyên văn bản của nó, nhận thấy một vài điều. Một, Facebook cũng nói cùng giao thức, phiên bản 1.1 của nó. Vì vậy, đó là tốt đẹp. Nhưng mã trạng thái 301, chuyển vĩnh viễn. Vâng, nơi quái đã Facebook đi đâu? Này là những gì cố gắng truyền đạt cho chúng tôi? Vâng, nhận thấy ở đây có khác tiêu đề được gọi là Location. Vì vậy, tại sao Facebook nói với tôi rằng họ di chuyển vĩnh viễn đến URL đó bên cạnh Địa điểm? Tôi quên www. Vì vậy, đó là sự lựa chọn của tôi. Trong thực tế, hầu hết chúng ta hiếm khi có thể, gõ www.whatever.com những ngày này. Nhưng nó quay ra một quản trị hệ thống, như Facebook, có thể cấu hình máy chủ của họ theo cách như vậy mà một trong hai Facebook.com hoạt động, hoặc www.Facebook.com hoạt động, hoặc, thực sự, mọi tiền tố như vậy trước mặt họ tên miền. Vì vậy, họ đã làm điều đó cho chúng ta. Và họ đang chuyển hướng chúng tôi, có thể đối với một số kỹ thuật, một số lý do tiếp thị. Họ chỉ muốn làm hợp tiêu chuẩn trên www.Facebook.com. Nhưng điều đó không hoàn toàn nó. Nếu tôi di chuyển xuống đây, chúng ta hãy xem những gì sẽ xảy ra. Đây là nói cho tôi chúng tôi di chuyển vĩnh viễn đến http://www.Facebook.com. Vì vậy, chúng ta hãy nhìn vào yêu cầu thứ hai rằng trình duyệt của tôi gửi. Thật không may, có vẻ như Facebook đã di chuyển một lần nữa vì thứ hai yêu cầu, bằng cách chọn URL mà thay vào đó, nói rằng, quá, di chuyển vĩnh viễn. Và cho tôi di chuyển xuống đây với tiêu đề phản ứng. Nơi đã Facebook đi ngay bây giờ? Vì vậy, HTTPS. Vì vậy bây giờ Facebook đã bắt đầu, đặc biệt trong bối cảnh hiện tại các sự kiện trong những tháng gần đây, đặc biệt và cũng trong vài năm qua buộc tất cả người dùng của họ, trong một tốt cách, sử dụng HTTPS, mà là nhiều hơn an toàn, mặc dù không hoàn toàn an toàn. Và vì vậy bây giờ trang của tôi, trình duyệt của tôi là sẽ yêu cầu URL thứ ba này. Và bây giờ, cuối cùng, chúng tôi nhận được nếu không vô hình 200 OK. Vì vậy, những gì trên thế giới hoặc tất cả các hàng khác xuống đây. Tôi nghĩa là gõ một điều, và tôi trình duyệt dường như đã yêu cầu như 20 một số những điều kỳ lạ. Đó là những gì? ĐỐI TƯỢNG: Script? SPEAKER 1: Kịch bản một số tập tin khác viết bằng một ngôn ngữ được gọi là JavaScript, trong đó, một lần nữa, chúng tôi sẽ thấy một chút vào thứ tư. Những gì khác? Phong cách trang. Vì vậy, một cái gì đó trong một ngôn ngữ được gọi là CSS, mà chúng ta sẽ thấy trong một chút. GIF, và JPEG, và pngs, và hình ảnh, và các tập tin phim - bất cứ một trang web đã có khả năng nhất trong các hình thức của một tập tin. Và vì vậy những gì chúng ta đang thấy trên bên trái bên tay có tất cả các file mà Chrome đã có để tải về, đệ quy, nếu bạn muốn, để soạn toàn bộ trang. Vì vậy, những gì chúng ta đã thấy một thời điểm trước với Google, nếu tôi bấm vào các yếu tố tab, điều này, chắc chắn, là HTML, ngôn ngữ sáng tác trang này. Nhưng có chùm những thứ khác. Có logo. Có những màu xanh-ish các biểu tượng trên đó. Và có các yếu tố khác vẫn trên trang mà mình có thể tập tin riêng biệt. Vì vậy, những gì là tốt đẹp về một trình duyệt nó nhìn vào ngôn ngữ chúng ta sẽ để bắt đầu viết, hoặc bạn đã đã văn bản bắt đầu trong bộ P 7, con số ra nơi mà các tập tin trực, và đi và lấy họ là tốt. Và tôi không thể nhấn mạnh đủ, thậm chí mặc dù một số của điều này có thể nhìn một chút phức tạp hoặc áp đảo ở cái nhìn đầu tiên, học cách lập trình các ứng dụng cho các trang web, nó vô giá để hiểu làm thế nào những công cụ này ít làm việc. Đây là những loại giống như GDB như công cụ, nhưng đơn giản hơn nhiều, cuối cùng, sử dụng - và thực sự mang lại cho bạn đôi mắt vào những gì chúng tôi đã được tham gia cho các cấp cho khá nhiều thời gian bây giờ. Vì vậy, những gì chúng ta có thể làm bây giờ với thông tin này? Vâng, chúng ta hãy thực sự có một cái nhìn tại các khái niệm cơ bản HTML. Và chúng tôi sẽ trì hoãn, như chúng ta đã có, để phần trong tuần này, cho vấn đề thiết lập 7 đặc điểm kỹ thuật, để một số chi tiết cụ thể của các thứ tiếng. Nhưng chúng ta hãy xem nếu chúng ta không có thể sơn một hình ảnh của những gì bạn nên hiểu tổng đây. Vì vậy, HTML, HyperText Markup Language, không phải là một ngôn ngữ lập trình. Điều đó thực sự có nghĩa là gì? Vì vậy, HTML trông như thế này. Và một số bạn đã biết điều này. Một số bạn đã được làm này một thời gian. Nhưng chúng ta hãy xem nếu chúng ta không có thể điền trong một số khoảng trống là tốt. Vì vậy, nhận thấy một vài điều ở đây. Một, nó chỉ là văn bản. Vì vậy, nó giống như mã nguồn trong C, hoặc một số ngôn ngữ khác. Nhận thấy rằng có vẻ như là một mô hình ở đây. Có thụt đầu dòng, nhưng về mặt kỹ thuật thụt đầu dòng chỉ là con người ước. Một trình duyệt không quan tâm nếu có mới đường và các tab như chúng ta thấy ở đó. Nhưng nhận thấy rằng có đối xứng ở đây. Có gì tôi sẽ gọi, ở đầu tập tin này, các thẻ mở, hoặc bắt đầu thẻ, gọi là HTML. Và sau đó, xuống dưới, hoàn toàn lót lên, giống như chúng tôi làm với dấu ngoặc nhọn, chúng ta thấy khung mở, phía trước dấu gạch chéo, HTML, dấu đóng ngoặc. Vì vậy, đó là gần tương ứng thẻ, hoặc kết thúc thẻ, cho điều đó. Với nhau, tất cả mọi thứ bên trong cái gọi là thẻ mở và thẻ đóng sáng tác những gì chúng tôi sẽ gọi một phần tử. Và chúng ta sẽ thấy, chỉ trong một thời điểm, đó là thực sự thích một nút trong một cây. Bởi vì nếu bạn suy nghĩ về bây giờ thụt đầu dòng đó là ngụ ý ở đây, bạn loại có, như thế, ông bà nút gọi là HTML. Bao nhiêu con bạn có thể nói, dựa trên hình ảnh này, các phần tử HTML có? Vì vậy, có thể là hai. Là một trong những yếu tố đầu, rõ ràng. Và là một trong những yếu tố cơ thể. Và lý do tại sao hai con? Vâng, tôi chỉ là loại suy luận rằng nếu Tôi có một thẻ đầu mở và sau đó một thẻ đầu gần gũi, đó là một yếu tố. Và sau đó, nếu có một cơ thể mở thẻ và một thẻ cơ thể gần gũi, đó là như yếu tố khác. Vì vậy, trong ý nghĩa là nếu tôi loại xoay hình ảnh trên mặt của nó, đó là giống như có một thẻ HTML, và sau đó một thẻ đầu, và sau đó một từ khóa cơ thể, và sau đó một số văn bản, xin chào thế giới, treo lủng lẳng tắt của các từ khóa cơ thể của chính nó. Vì vậy, chúng ta có thể vẽ một bức tranh mà có thể trông như thế này. Các hình dạng là tùy ý. Nhưng nhận thấy rằng tôi đã sử dụng loại một hình elip ở phía trên để đại diện cho bản thân tài liệu. Hóa ra có thể có công cụ khác bên trong một trang web mà tôi đã không rút ra ở đây. Vì vậy, chúng ta sẽ thậm chí treo HTML nút tắt của một nút tài liệu cái gọi là. Và sau đó, chúng tôi đã đầu và cơ thể và tiêu đề, thông báo, được lồng nhau hơn nữa. Tôi không bận tâm đặt dòng bổ sung phá vỡ bên trong các tag tiêu đề. Nó chỉ cảm thấy như nó đã nhận được một chút quá tiết. Vì vậy, tôi để lại nó trong một dòng có, với tiêu đề mở, hello thế giới, danh hiệu gần. Và sau đó chúng tôi có một số văn bản lơ lửng ra khỏi đây. Vì vậy, hình ảnh này sẽ quay trở lại chúng tôi khi chúng tôi đi sâu vào JavaScript. Và sự hiểu biết rằng khi bạn viết HTML như thế này, những gì là một trình duyệt đang làm gì? Vâng, chúng tôi không phải lo lắng về làm thế nào nó làm điều này, hoặc với những gì thuật toán, nhưng vào cuối ngày, khi nhận được một trình duyệt HTML như rằng, từ Facebook hay Google, nó phân tích nó, có thể nói, nó sẽ đọc, với một cái gì đó như fread, từ trên xuống phía dưới, từ trái sang phải, và vì nó nhận ra, oh, thẻ mở, và sau đó đóng thẻ, nó bắt đầu malloc, có thể nói, một nút trong một cây. Và khi nó gặp, như chúng tôi đã ngụ ý đây với sự thụt vào, một nút con, nó mallocs một nút cho rằng và kèm theo đó cho cây. Vì vậy, các cấu trúc cây, cây nhị phân, cây bậc ba, và cây lớn hơn, mà chúng tôi liếc nhìn một hoặc hai tuần trước đây, thông báo có cùng một nguyên tắc là quay trở lại với chúng ta. Và bất cứ ai thực hiện, Chrome bất cứ điều gì đội đã làm điều đó, có lẽ đã có thực hiện một số loại cấu trúc cây bên dưới mui xe. Và tự nó có thể trong một ngôn ngữ như C, C + +, hoặc thấp hơn ngôn ngữ cấp mà chúng tôi sẽ bây giờ sử dụng trên các trang web. Vì vậy, bây giờ, có thể, điều này sẽ có ý nghĩa hơn. Hình xăm thực tế từ một số anh chàng người có thể hối tiếc cuối cùng, loại. OK, được rồi, vì vậy rất nhiều sự hài hước web. Nó không thực sự đi hơn rất tốt ngày hôm nay. Vì vậy, chúng tôi sẽ tiếp tục. Được rồi. Vì vậy, chúng ta hãy có một cái nhìn tại một vài ví dụ. Các đơn giản nhất điều có thể này. Tôi sẽ đi trước và mở ra trong Gedit, một tập tin gọi là hello.php. Và bên trong ở đây, tôi sẽ nhanh chóng chỉ làm điều này, printf, trích dẫn unquote, "hello thế giới." Vì vậy, thông báo, và tôi sẽ làm dấu gạch chéo ngược n của tôi, Tôi đã không làm phiền để tuyên bố chính. Hóa ra, trong chương trình PHP, và rất nhiều ngôn ngữ, bạn không cần phải có chính chức năng cho mỗi gia nhập. Bạn chỉ có thể bắt đầu viết chương trình của bạn. Bây giờ, khi tôi lưu tập tin này, thông báo tôi sẽ phải làm như sau. Tôi sẽ không sử dụng thực hiện, và tôi không sẽ sử dụng kêu vang bởi vì PHP, không giống như C, không phải là một ngôn ngữ biên soạn. Đó là những gì được gọi là một giải thích ngôn ngữ, có nghĩa là bạn chạy nó như một đầu vào thông qua một chương trình khác được gọi là một thông dịch viên. Và chương trình đọc nó, từ trên xuống phía dưới, từ trái sang phải, và không bất cứ điều gì bạn nói với nó để làm. Vì vậy, trong trường hợp này đây tôi có Có một dòng mà nói printf. Vì vậy, khi tôi chạy mã nguồn này, hello.php, mặc dù một chương trình xảy ra, thuận tiện, được gọi là PHP, chương trình PHP sẽ đọc tập tin này, trên xuống dưới, từ trái sang phải, và nó sẽ làm những gì tôi nói cho nó để làm - thực thi mã, và nếu nó không nhận ra một cái gì đó, chỉ cần nhổ ra. Vì vậy, tôi sẽ đi trước và chạy PHP của hello.php. Nhập. Và đó không phải hoàn toàn những gì tôi dự định. Vâng, tại sao vậy? Vâng, PHP là một ngôn ngữ mà thực sự được thiết kế để được khá đan xen với các trang web. Khi làm cho các trang web với ngôn ngữ này PHP, như chúng ta sẽ sớm thấy, chúng tôi sẽ muốn làm một cái gì đó như in ra dòng như thế này. Vì vậy, tôi sẽ làm điều này. Mở khung, dấu hỏi, PHP, và bây giờ tôi chỉ cần đi thụt chỉ để giữ những điều tốt đẹp. Và bây giờ tôi sẽ làm một câu hỏi đánh dấu khung gần. Vì vậy, có một chút không đối xứng ở đây. Bạn không làm điều này. Và bạn không làm một dấu gạch chéo, vì vậy PHP là một chút khác nhau. Nhưng bây giờ, nếu tôi chạy chương trình này, PHP hello.php, bây giờ tôi thực sự có được Xin chào thế giới. Và chúng ta sẽ thấy tại sao điều này là có giá trị. Thứ nhất, nó cho phép tôi để xác định, siêu một cách rõ ràng, đây là mã, thực hiện điều này. Và đó thực sự là những gì các thẻ đặc biệt có nghĩa đây. Nhưng nó cũng có nghĩa là nếu tôi chỉ cần làm một cái gì đó như tôi nhằm mục đích trên đây, mà có nghĩa là, theo nghĩa đen, mà sẽ chỉ được in ra mà không cần phải thực sự gọi printf, hoặc in, hoặc bất kỳ chức năng tương tự. Vì vậy, chúng tôi sẽ trở lại với chỉ trong một thời điểm. Đầu tiên, chúng ta hãy làm điều này. Bên trong của thiết bị này, chúng ta có một thư mục gọi là vhosts, cho ảo máy chủ, máy chủ địa phương cắt giảm, cắt giảm công cộng. Vì vậy, đó là một tiết chút, nhưng câu chuyện dài Tóm lại, thiết bị này được thiết kế không chỉ để hỗ trợ C. Nó cũng được thiết kế để hỗ trợ PHP. Nhưng nó cũng được thiết kế để có một trang web máy chủ, và máy chủ cơ sở dữ liệu. Và nó được thiết kế, cấu hình và thực sự, là gợi nhớ của bất kỳ thương mại công ty lưu trữ web mà bạn có thể phải trả $ 5 một tháng, $ 100 một tháng cho. Bất cứ điều gì các dịch vụ, nó được cấu hình là rất tương tự như một thực máy chủ sản xuất trên thế giới. Và điều đó có nghĩa là chạy trên thiết bị này là phần mềm máy chủ web. Nó xảy ra được gọi là Apache. Nó chỉ là miễn phí và mã nguồn mở, và rất phổ biến. Và chúng ta đã cấu hình Apache để biết rằng nếu tôi truy cập vào một URL nhất định, với Chrome hoặc bất kỳ trình duyệt bên trong thiết bị, nhìn vào thư mục này cho các tập tin mà các người dùng yêu cầu. Nói cách khác, hãy để tôi đi trước và làm điều này. Bên trong thư mục công cộng của tôi, tôi sẽ đi trước và tạo ra một tập tin gọi là index.html. Cung cấp cho tôi các tab đây. Và tôi sẽ đi rất nhanh và đi trước và bang ra chương trình này ở đây. Loại tài liệu HTML, mà bây giờ, chỉ giả sử bạn phải gõ. Nó chỉ là một từ khóa phức tạp, đó là không thực sự là một thẻ HTML, mà chỉ rõ rằng ở đây có một số HTML. Tôi sẽ đi trước và tái tạo những gì chúng ta đã thấy một thời điểm trước đây. Đây là người đứng đầu của trang. Bên trong của người đứng đầu là - để tiêu đề. Vì vậy, chúng tôi sẽ chào hỏi, thế giới. Và sau đó xuống đây là từ khóa cơ thể. Hãy để tôi đóng thẻ cơ thể. Và sau đó ở đây tôi cũng sẽ nói, chỉ cho rõ ràng, xin chào thế giới. Vì vậy, đây là, cho là, đơn giản trang web có thể bạn có thể làm đó là hợp lệ. Đó là cú pháp hợp lệ. Tất cả mọi thứ đó là mở được đóng lại. Tất cả mọi thứ là độc đáo trong theo kiểu và thụt vào. Vì vậy, chúng ta thấy bây giờ làm thế nào tôi có thể truy cập tập tin này. Vâng, hãy để tôi đi đến Chrome đây. Và cho tôi đi đến http://localhost/index.html. Vì vậy, máy chủ địa phương là gì? Vâng, hầu hết bất kỳ máy tính trên thế giới, Linux, Mac OS, Windows, có một biệt danh gọi là chủ nhà. Vì vậy, nếu bạn đã bao giờ muốn nói chuyện vào máy tính của riêng bạn - mặc dù, một cách kỳ lạ theo phản xạ - bạn gọi mình là chủ nhà. Không có vấn đề gì máy tính thực tế của bạn gọi là, cho dù đó là MacBook của David Không khí, hoặc một cái gì đó hơn tiết như thế. Vì vậy, URL này là dường như sẽ sử dụng HTTP để nói chuyện với các máy chủ địa phương, cùng một máy tính, thiết bị, và nó sẽ yêu cầu, chỉ cần mang một đoán, những gì tập tin? Index.html. Vì vậy, thiết bị này đã được cấu hình trong tiến tới biết rằng nếu tôi yêu cầu cho một cái gì đó như index.html, tìm kiếm trong một thư mục có tên vhosts, trong một thư mục gọi là localhost, trong một thư mục trong đó được gọi là công khai. Đó là nơi mà tất cả các công cộng của tôi các tập tin đang có được. Vì vậy, bây giờ tôi sẽ nhấn Enter. Và chết tiệt, có cấm mà tin nhắn, hay còn gọi là 403, các mã số cho nó. Vì vậy, những gì sai ở đây? Vâng, đó là không đủ để chỉ cần đặt các tập tin bên trong thư mục của tôi. Tôi cần phải thực sự làm như sau. Hãy để tôi đi vào thư mục vhosts của tôi, vào localhost, thành công, và để cho tôi làm ls dấu gạch ngang l. Và có một số những thứ khác trong đây cho các mục đích của ngày hôm nay. Nhưng nhận thấy ở phía bên tay trái, bên cạnh để index.html, chúng tôi chỉ thấy một RW. Và trong quá khứ, những gì đã RW đứng cho? Chỉ cần đọc hoặc viết. Thực tế là nó nói rw trên bên trái có nghĩa là tôi, chủ sở hữu của tập tin này, có thể đọc hoặc viết nó. Nhưng tôi cần phải để cho tất cả mọi người trong thế giới đọc này, mặc dù không viết nó. Vì vậy, tôi sẽ thay đổi chế độ của tập tin, chmod, tất cả cộng với r để cung cấp cho tất cả mọi người quyền đọc các tập tin có tên index.htm. Và nếu tôi bây giờ nhập lại ls dấu gạch ngang l, thông báo rằng, ở đây, một số chi tiết R đã xuất hiện. Và bây giờ, các spec đi vào chi tiết hơn. Đối với P bộ 7, mà chỉ có nghĩa là tất cả mọi người bây giờ có thể đọc tập tin này. Nếu tôi quay trở lại trình duyệt của tôi bây giờ và tải lại, thì đấy. Xin chào thế giới. Và tôi thậm chí có thể mở công cụ Chrome của tôi và nhìn thấy, giống như với Google và Facebook có HTML của tôi, định dạng một chút khác nhau và colorized. Nếu tôi đi đến tab mạng và tải lại trang, nhận thấy rằng có là có được yêu cầu Chrome được gửi vào thiết bị. Có 200 cho rằng đặc biệt tập tin. Vì vậy, trong ngắn hạn, đây là cách tất cả các phần khác nhau đến với nhau. Nó chỉ như vậy sẽ xảy ra rằng các máy chủ web chúng tôi đang sử dụng hiện nay là không xa, như Facebook. Đó là nghĩa đen trên cùng một máy tính, đó là hoàn toàn OK. Vì vậy, nhiều hơn những gì chúng ta có thể làm trong một trang web? Vâng, chỉ cần, chúng ta hãy lướt qua một vài những điều này. Nhưng hãy để tôi đi trước và mở cửa trở lại Gedit với index.html. Và để cho tôi đi trước và nói lời chào CS50, lưu tập tin này, quay trở lại trình duyệt, thực sự underwhelming thay đổi. Nhưng nếu chúng ta muốn thực sự liên kết đến một cái gì đó bây giờ? Vì vậy, nó chỉ ra rằng chúng ta có thể có liên kết trong HTML mà chỉ là thẻ mình. Nó xảy ra được gọi là thẻ neo. a href bằng https://www.cs50.net, www.cs50.net quote gần, dấu đóng ngoặc. Và bây giờ chúng ta hãy xem những gì khác đến tiếp theo. Tôi đã mở thẻ. Bây giờ tôi cần phải cung cấp cho nó một cụm từ như CS50. Hãy để tôi đóng thẻ. Và nhận thấy một vài điều. Mặc dù có điều khó hiểu này ở đây, tôi đã không lặp đi lặp lại nó khi bạn đóng thẻ. Bạn chỉ cần đóng thẻ với tên của nó một mình. Và đây là những gì được gọi là một thuộc tính với một giá trị. Thuộc tính chỉ cần thay đổi hành vi của một số thẻ bên trong một trang. Vì vậy, đây được xác định rằng siêu tham khảo, cách nói các URL cho neo này, cho điều này liên kết, nên được CS50.net. Và các văn bản mà chúng tôi muốn hiển thị người sử dụng không phải là URL liệu, mà là các CS50 từ. Vì vậy, nếu bây giờ tôi lại, cho tôi phóng to cho rõ ràng, hãy để tôi tải lại trang, nhận thấy rằng chúng tôi có trường học cũ này màu xanh gạch chân liên kết. Và nếu tôi đưa chuột qua nó, và nó sẽ được khó khăn để thấy, phía dưới bên trái góc của màn hình, thông báo mà nó nói URL mà Tôi sẽ đi. Và nếu tôi nhấp vào đó, thì đấy, bây giờ tôi đang làm cho các trang web. Và chúng ta dẫn dắt mình trang chủ. Nhưng hãy chú ý những gì tiềm năng điều này cho chúng ta. An ninh là rất nhiều thịnh hành những ngày này. Nếu tôi thay vì nói điều gì đó như này, và tôi thay vì đi đến, nói rằng, chúng ta hãy thấy, fakeCS50.net. Nạp lại trang này. OK, vì vậy nhận thấy nó vẫn trông giống như tôi sẽ CS50, trừ khi một con mắt sắc sảo sẽ nhận thấy tôi sẽ CS50 giả. Tôi đoán miền này là không được. OK, vì vậy nó không có sẵn. Vì vậy, đó là tốt. Không ai thực sự có tên miền đó. Nhưng chúng ta hãy thêm một chút độc hại bởi vì đó là ngu ngốc. Nếu chúng ta thay đổi này để Paypal. Và nếu chúng ta gọi này, như thế, www.paypal.badguy.com, bất cứ điều gì tên miền là. Điều đó có thể tồn tại. Vì vậy, bây giờ hãy để tôi tải lại trang. Và ở đây chúng tôi có loại lừa đảo trực tuyến tấn công, P-H-I-S-H-I-N-G, đó là từ ngớ ngẩn đưa ra cho một vụ tấn công cố gắng thông tin cá, hoặc tốt hơn Chưa hết, tiền, ra của người dân bằng cách lừa chúng vào việc cung cấp thông tin họ có thể không nếu không làm được. Điều này có vẻ hoàn toàn hợp pháp, đúng không? Tôi phải có một liên kết ở đây để Paypal.com. Trong công bằng, nếu tôi xác định giới tính nó với một số đồ họa, chúng ta có thể làm cho nó trông giống như PayPal. Phải không? Bởi vì tôi có thể, như một sang một bên, Tôi có thể đi đến Paypal.com. Và chúng tôi đã thấy được làm thế nào tôi có thể xem tất cả các HTML của họ. Tôi chỉ có thể sao chép nó và tạo lại tính thẩm mỹ của Paypal thay vì đi trường học cũ ở đây. Nhưng hãy chú ý, tất nhiên, và đó là một chút nhỏ vẫn còn, chỉ có ở phía dưới tay trái góc, trong như một điểm 10 font chữ, bạn có thấy những gì URL bạn thực sự sẽ được dẫn đến. Và vì vậy nếu bạn đã bao giờ nhận được thư rác nói đi trước, và bạn tài khoản đã bị xâm nhập. Xin vui lòng nhấp vào liên kết này và cho chúng tôi biết mật khẩu của bạn vì vậy chúng tôi có thể đảm bảo bạn bạn, đừng bao giờ làm điều đó. Những điều này nên đi mà không nói. Nhưng đó là tuyệt vời, thú vị, và bi thảm, làm thế nào mỗi năm này có vẻ xảy ra với một số khác không số người. Và đó là vẻ đẹp các cuộc tấn công lừa đảo. Bạn có thể gửi một triệu email. Và ngay cả khi 0.01% của những người thực sự bấm vào Paypal và cung cấp cho bạn của bạn mật khẩu, đó là vẫn còn một số khác không của những người đã chỉ cho bạn tiền của họ. Và gửi email, tất nhiên, là khá dễ dàng và, về cơ bản, miễn phí những ngày này. Vì vậy, câu chuyện dài ngắn, tuyệt vời ý tưởng đẹp, phải không? Năm trước, đây là sớm nhất web, cho phép một trang web của liên kết giữa các tài nguyên. Nhưng một cách nhanh chóng nó có thể là sử dụng cho các mục đích xấu. Và email, nó đủ để nói, những ngày, đã HTML nhúng vào bên trong. Vâng, hãy để tôi chỉ có một điều khác. Và chúng tôi sẽ trì hoãn phần lớn phần trong vấn đề thiết lập bảy để cho phép bạn khám phá các nội. Nhưng hãy để tôi đi trước và làm một vài điều ở đây. Tôi sẽ đi vào và tuyên bố những gì được gọi là một div, hoặc chia, của trang. Hãy để tôi đóng mà thẻ div. Và tôi sẽ nói lên đây trên cùng của trang. Và sau đó sau này, tôi sẽ làm một cái gì đó như div khác, đóng cửa này thẻ, và làm dưới cùng của trang. Và chúng ta hãy lưu nó. Vì vậy, bây giờ chúng ta hãy quay trở lại tập tin của tôi. Rất underwhelming. Nhưng những gì bộ phận được sử dụng cho, bên dưới mui xe, là nó thực sự một yếu tố cấu trúc đẹp. Nó không có bất kỳ thẩm mỹ cho đến nay như chúng ta có thể thấy, khác hơn, rõ ràng, đưa mọi thứ trên một dòng mới. Nhưng thông báo, như một sang một bên, chỉ cần nhấn Nhập không cắt nó trong HTML như nó không trong C. Bạn có thể nghĩ rằng đó là sẽ đặt một khoảng cách lớn tốt đẹp giữa phía trên và dưới cùng của trang. Nhưng nó bỏ qua. Không gian màu trắng cơ bản bị bỏ qua trong các trang web khác ngoài đầu tiên thanh nhân vật không gian, hoặc vận chuyển trở lại, mà bạn đánh trên bàn phím. Nếu bạn muốn phá vỡ đường dây hơn, bạn phải xác định cho mình. Vì vậy, tôi sẽ làm một vài điều vào đây để hiển thị những gì đang xảy ra. Tôi sẽ thêm một thuộc tính tồn tại Và một lần nữa, cách bạn học những gì thuộc tính tồn tại, những gì thẻ tồn tại, thực sự, là tài liệu tham khảo trực tuyến. HTML là loại ngôn ngữ - đó là không phải là một ngôn ngữ lập trình. Đó là một ngôn ngữ đánh dấu - mà sau khi một nửa giờ tốt, có thể, một giờ với nó, bạn chắc chắn sẽ nắm bắt, nhất có khả năng, ý tưởng cơ bản. Và sau đó tìm kiếm trên Google đi là tất cả các thẻ có thể bạn có thể quan tâm Và theo các thông số, đó là khá hoan nghênh và khuyến khích ở đây. Vì vậy, bây giờ hãy để tôi đi trước và làm một cái gì đó như thế này. Background-color. Và bây giờ, tôi sẽ làm điều gì đó như màu đỏ, dấu chấm phẩy. Và bạn có thể làm điều này trong một vài cách khác nhau. Tôi chỉ là loại gõ nó như siêu một cách rõ ràng nhất có thể. Nhưng nó chỉ ra rằng giá trị này ở đây là những gì được gọi là CSS, Cascading Style Tờ, mà là một ngôn ngữ hoàn toàn. CSS không có gì để làm với mở thẻ và thẻ gần. Nó đã làm với tài sản. Và tài sản là giá trị chỉ đơn giản là chìa khóa cặp, mà chỉ có nghĩa một số từ, ruột kết, và sau đó một số từ khác. Và nếu bạn có nhiều người, hoặc chỉ ở đây, bạn có thể kết thúc bằng một dấu chấm phẩy, chỉ cho rõ ràng. Nhưng điều đó cũng sẽ làm việc ở đây. Bây giờ những gì này sẽ làm gì? Bạn có thể đoán. Hãy để tôi đi trước và tải lại trang này. Và bây giờ nó thực sự đến cùng. Vì vậy, đầu trang của tôi là màu đỏ. Nhưng điều quan trọng ở đây có nghĩa là, tôi đã đề cập trước đó, div cung cấp cho bạn một bộ phận của trang. Và đó thực sự là những gì nó làm. Nó chủ yếu chia trang thành một hình chữ nhật mà bạn có thể sau đó thao tác. Và khái niệm về hình chữ nhật là loại hấp dẫn trong đó, nếu bạn nghĩ hầu hết bất kỳ trang web, có lẽ một số cấu trúc cho nó. Hầu hết các bạn có thể hiếm thấy Trang chủ của Facebook, nếu bạn đã đăng nhập trong tất cả các thời gian. Nhưng trên trang chủ của Facebook, có một số loại div dọc trên đầu. Và nó có thể không thể đơn giản như một div, nhưng có một khu vực hình chữ nhật đó. Phần còn lại của trang là như một div rất lớn, giống như một nhiều khu vực hình chữ nhật lớn hơn. Vì vậy, câu chuyện dài ngắn, chỉ cần có những khối xây dựng nhỏ, khả năng mô hình thứ như hình chữ nhật, dù rộng hay hẹp, bạn cũng có thể làm cho cột có khả năng, cho phép bạn đặt ra các trang, thực sự, tuy nhiên bạn muốn. Chúng tôi thực sự chỉ trầy xước bề mặt ở đây. Thật vậy, nếu tôi thực hiện một một khác, hãy để tôi đi trước và làm phong cách, background-color, chúng tôi sẽ làm một cái gì đó như màu xanh, giá gần. Hãy tải lại này. Vì vậy bây giờ nó nhận được thậm chí còn xấu hơn. Nhưng bây giờ tôi có thể loại hiện P của tôi thiết lập năm kỹ năng, phải không? Màu đỏ. Nó nhắc tôi về RGB, Red Màu xanh lá cây màu xanh gấp ba. Vâng, nó quay ra trong lập trình web, hoặc thiết kế web, đó là điều này, chúng tôi đã chưa lập trình bất cứ điều gì cho mỗi gia nhập, bạn có thể thực sự có mã thập lục phân. Vì vậy, một cái gì đó một cái gì đó, một cái gì đó một cái gì đó, một cái gì đó một cái gì đó. Vì vậy, bạn có thể có sáu thập lục phân ký tự, hoặc ba, trong một số trường hợp, và mỗi người trong số những dấu hỏi có phải là một chữ số thập lục phân, không thông qua f. Nếu tôi muốn có rất nhiều màu đỏ, và không có màu xanh lá cây, và không có màu xanh, những gì là đối diện không khi sử dụng hex? Đó là f. Vì vậy, tôi có thể làm ff, không không, không không, tiết kiệm này, và bây giờ đến đây. Và tôi không thực sự nhìn thấy một sự thay đổi. Vì vậy, trích dẫn unquote "đỏ" là rõ ràng đồng nghĩa với tất cả các màu đỏ, không xanh, không có màu xanh. Trong khi đó, chúng ta hãy cố tình thay đổi cái này là cái gì ngẫu nhiên, như ABCDF. Hãy xem đó là những gì. Đó là một màu xanh thật sự tốt đẹp, thực sự, em bé màu xanh. Được rồi, đây chỉ là bây giờ kết hợp một chút ngẫu nhiên ký tự. Vì vậy, chúng tôi sẽ không bị sa lầy vào đây. Nhưng một lần nữa, điều này nói lên độ chính xác mà bạn có thể bắt đầu áp dụng - ngay cả khi bạn đang rất choáng ngợp bởi tính thẩm mỹ. Trong thực tế, nếu bạn thực sự muốn được ấn tượng, hãy để tôi đi trước và thay đổi kích thước font chữ, ví dụ. Và thông báo các dấu chấm phẩy, mà là cần thiết ở đó. Cỡ chữ, chúng ta có thể chỉ là vô lý ở đây, 96 điểm. Tiết kiệm đó. Wow, đó là một cỡ chữ lớn. Được rồi, vì vậy nó rất dễ dàng. Và trên thực tế, bạn đang nhìn thấy cơ bản các trang web đầu tiên tôi thực hiện năm trước, khi tôi lần đầu tiên học được công cụ này. Nó rất dễ dàng để làm cho rất điều ghê tởm một cách nhanh chóng. Và nếu bạn đã quen thuộc với Wayback Máy trên archive.org, bạn có thể tìm thấy tất cả các xấu xí của tôi các trang web undergrad. Ai có Kermit the Frog ở mặt trước. Tôi đã đi qua một giai đoạn mà tôi nghĩ nó đã được mát mẻ để có những nền tảng của một tấm màn màu đỏ, khi tôi biết làm thế nào bạn gạch có thể hình ảnh một lần nữa, và một lần nữa, và một lần nữa, để điền vào một trang với một bức màn đỏ dính lớn. Và sau đó, trên đầu trang này, là một biểu tượng bạn phải bấm vào để nhập nhà của tôi trang vì đó là rất thịnh hành. Và sau đó chương trình đầu tiên của tôi, tôi đã từng viết không phải trong PHP, nhưng trong một ngôn ngữ gọi là Pearl, đã viết một cuốn sách khách mời, trong đó là một điều thực sự mát mẻ mà một Rất nhiều người mong đợi bạn có trên trang chủ. Khi bạn nhận được để trang, họ muốn bạn đăng nhập, và nói rằng bạn là ai, và tại sao bạn đang ở đó. Điều này là rất năm 1990 thiết kế web phong cách. Nhưng những ngày này, chắc chắn, chúng tôi đã đi xa hơn rất nhiều. Và bạn sẽ thấy, trong phần, và thậm chí trong vấn đề thiết lập bảy, bởi tận dụng các thư viện những ngày này, nó dễ dàng hơn để làm cho điều đẹp hơn một cách nhanh chóng. Thực sự ở đây, chúng tôi chỉ bị trầy xước bề mặt của những gì bạn có thể làm phong cách. Và trong thực tế, đã, hãy để tôi nhấn mạnh rằng điều này đã nhận được xấu xí, không chỉ về mặt thẩm mỹ, nhưng trong điều kiện phong cách của mã của tôi, hoặc thiết kế các mã của tôi. Hiện tại tôi đã comingled HTML, mà là các thẻ mở xanh ở đó, với Thuộc tính CSS, là hoàn toàn hợp pháp. Đây thực sự là nơi mà ngôn ngữ có nguồn gốc của nó. Nhưng vì lợi ích của thiết kế sạch sẽ, giống như chúng tôi bắt đầu các công cụ thanh toán ra từ các tập tin C vào các tập tin h., cho tôi thực sự thực hành là loại nguyên tắc và bắt đầu làm này thay thế. Hãy để tôi đặt một từ khóa phong cách ở đây, mà cũng tồn tại trong HTML, và cho tôi xác định sau. Hãy để tôi xóa này. Màu nền sẽ là màu đỏ. Tôi sẽ xóa hoàn toàn này. Tôi sẽ thoát khỏi phong cách thuộc tính, và tôi sẽ duy nhất xác định div này bằng một từ - tùy tiện, nhưng hợp lý, báo giá unquote "hàng đầu." Và id là một đặc biệt thuộc tính duy nhất xác định một phần tử HTML nào đó như có id đó. Nếu bây giờ tôi muốn cách điệu nó, lên đây trong người đứng đầu trang của tôi, bên trong từ khóa phong cách, nhận thấy rằng Tôi có thể làm đầu băm. Và sau đó tôi có thể đặt một vài xoăn niềng răng, gợi nhớ đến C, và sau đó cho phép tôi dán trong cách điệu đó. Và để cho tôi đi trước đây và dự đoán nơi tôi sẽ có điều này. Hãy để tôi cũng tạo ra một cho div phía dưới. Hãy để tôi lấy đang xấu xí này từ xuống ở đây, đặt nó ở đây, và tôi sẽ một chút hậu môn nhiều hơn bây giờ và cách điệu nó bởi chỉ cần đặt những việc riêng của họ dòng, kết thúc bằng dấu chấm phẩy. Hãy để tôi thoát khỏi những từ khóa phong cách. Nhưng tôi không thực hiện được nêu ra. Tôi cần phải làm một việc khác. Yeah, id bằng unquote giá, "đáy" hoặc bất cứ điều gì tôi muốn id cho phần tử đó. Bây giờ, hãy để tôi quay trở lại đây. Và điều này là tàn bạo. Tôi không thể đối phó với 96 điểm. Chúng ta hãy làm 24 điểm. Hoặc bạn có thể được chính xác hơn. Bạn thực sự có thể sử dụng điểm ảnh, px, vì vậy mà bạn thực sự có được hạt mịn kiểm soát các trang của bạn. Như một sang một bên, đó là không nhất thiết phải điều tốt nhất nếu người dùng, cho lý do khả năng tiếp cận, muốn có thể tăng kích cỡ. Vì vậy, nhận ra rằng có những cách làm những thứ không nhất thiết phải tất cả mọi thứ đang khó khăn. Được rồi, vì vậy nó lớn hơn, 24 điểm, hơn bất cứ điều gì mặc định là. Nhưng bây giờ nó là một chút bụi. Và để cho tôi đi một bước xa hơn. Cũng giống như ý tưởng của tập tin tiêu đề, nhận thấy chúng tôi là một bước gần hơn đến đó. Tôi có yếu tố ra ngoài, nhưng vẫn còn để lại, bên trong trang của tôi, những quy tắc CSS. Lý do tại sao tôi có thể muốn đi một bước hơn nữa, loại bỏ điều này hoàn toàn, và đặt nó trong một file riêng biệt? Vì vậy, tôi có thể tái sử dụng nó, phải không? Đây chỉ là loại trực giác ngay bây giờ. Trước đây, tôi cho rằng đó chỉ là bị xấu xí có phong cách thuộc tính bên trong của divs mình. Nhưng chỉ cần loại nghĩ rằng qua. Như trang của bạn kéo dài hơn và lâu hơn, nếu bạn đang đặt ở đây, và ở đây, và ở đây, và ở đây, tất cả các khác nhau màu sắc và kích cỡ phông chữ, và khác thuộc tính, trang web của bạn là rất nhanh chóng sẽ trở thành không thể quản lý cho bạn. Nếu ai đó đến với bạn và nói, oh, bạn biết những gì? Tôi thực sự muốn thay đổi kích thước phông chữ bởi hai điểm bổ sung, bạn có thể phải đi và tìm và thay thế một số lượng lớn các dòng mã. Nó nhiều hơn nữa hấp dẫn để tập trung tất cả các thẩm mỹ như thế này. Nhưng nếu bạn muốn tái sử dụng những tính thẩm mỹ trong nhiều trang web, tất cả sự hấp dẫn hơn, cho Ví dụ, tạo ra một tập tin gọi với những nội dung. Và hãy để tôi làm điều này. Lưu tập tin này. Tôi nói styles.css, tùy ý, nhưng thông thường. Tôi sẽ đặt nó trong nhà John Harvard thư mục bây giờ cho đơn giản. Và những gì tôi có thể làm trong trang web của tôi là có được loại bỏ các từ khóa phong cách hoàn toàn, và phần nào unintuitively, sử dụng một liên kết thẻ, mà không cung cấp cho bạn một liên kết trong các siêu liên kết, cảm giác có thể click được, nhưng nơi tôi nói liên kết, href bằng styles.css. Và mối quan hệ rằng yếu tố này đã có các trang web là để phục vụ như phong cách của nó. Vì vậy, làm thế nào tôi biết điều này? Một, bạn chỉ cần đọc hướng dẫn sử dụng, hoặc bạn Google xung quanh, và bạn nhìn vào các nguồn tài nguyên khác nhau. Ý tôi là, đó thật sự là như thế nào bạn nhận kỹ thuật như thế này, và phù hợp với ý tưởng này của mình giảng dạy mới ngôn ngữ, một lần nữa, bạn sẽ thấy rằng chỉ có một số hữu hạn các điều với bất kỳ ngôn ngữ đó, khi bạn họ, bạn sẽ thấy rằng nó được nhanh hơn và nhanh hơn để viết. Thật vậy, học một chương trình mới ngôn ngữ như vậy là nhanh hơn nhiều so với một mới ngôn ngữ nói bởi vì những điều này nhỏ hơn nhiều và nhiều hơn nữa xác định chính xác. Nhưng tôi đã nêu bật một chút của một sự bất thường ở đây. Lý do tại sao tôi đã nêu bật này dấu gạch chéo ở đây? Bởi vì tôi phải đóng thẻ. Tôi nên đóng thẻ. Và bạn sẽ tìm thấy vô số tài nguyên trực tuyến mà không nhất thiết phải là thẻ gần. Và thực tế, nó không đúng cần thiết cho kỹ thuật và có lý do của thực tế, trình duyệt chỉ khá khoan dung của những sai lầm trong web trang, cho tốt hơn hoặc tồi tệ hơn, nhưng chủ yếu là tồi tệ hơn. Vì vậy, ở đây chỉ là một cách sạch hơn nói điều gì đó ngu ngốc như thế này, mà nếu bạn muốn mở thẻ liên kết nhưng đóng nó, có thực sự không có khái niệm nội dung cho một thẻ liên kết. Nó chỉ có nghĩa là tải này nộp và đặt nó ở đây. Nó giống như bao gồm mạnh C. Bạn có thể mở và đóng một thẻ cùng một lúc trong thẻ tương tự. Và có các ví dụ khác về điều này. Đây không phải là cách để làm điều này, nhưng thẻ br, cho các ngắt dòng, nếu tôi thực sự muốn đạt được những gì tôi đã cố gắng để trước bằng cách nhấn Enter, nếu Tôi nói rõ ràng ngắt dòng, ngắt dòng, ngắt dòng, ngắt dòng, và sau đó tải lại trang web này, bạn sẽ nhận thấy mà dưới cùng của trang là, thực sự, nhiều đi xa hơn nữa trong dưới cùng của trang. Nhưng ngay cả điều đó có thể được thực hiện nhiều hơn nữa sạch với CSS, và với biên độ, và với thẩm mỹ khác kỹ thuật. Vì vậy, hiện nay, các đồ ăn tay là này. Trong HTML, chúng ta có những điều được gọi là thẻ. Trong CSS, chúng ta có những việc này được gọi là bất động sản. Chúng ta có thể comingle hai ngôn ngữ này, hoặc bằng cách sử dụng các thuộc tính phong cách, hoặc từ khóa phong cách, hoặc tốt nhất chưa, bao thanh toán nó ra hoàn toàn, như chúng tôi trong vấn đề thiết lập 7. Câu hỏi, sau đó, về vấn đề cơ bản về khái niệm ở đây? Khán giả: Tôi có một câu hỏi. SPEAKER 1: Ồ, xin lỗi. ĐỐI TƯỢNG: Tại sao không phải là nó màu - SPEAKER 1: Oh, trong tab khác? Này đây? ĐỐI TƯỢNG: Không, nó giống như - SPEAKER 1: Ồ, đó là bởi vì Tôi đã được cẩu thả. Tôi đặt các tập tin ở vị trí sai. Vì vậy, nếu tôi thực sự đặt nó ở đây, và tôi chmod nó, tất cả + r cho styles.css, và bây giờ tải lại trang, bây giờ chúng tôi có được cách điệu trở lại. Và bởi vì kích thước phông chữ là khác nhau, chúng tôi không nhìn thấy khá nhiều không gian màu trắng. Chúng tôi thay vì xem những gì là mặc định là thay thế. Tốt câu hỏi. Có? ĐỐI TƯỢNG: Tại sao liên kết từ khóa trong tiêu đề? SPEAKER 1: Tại sao các liên kết thẻ bên trong tiêu đề - trả lời ngắn gọn, chỉ vì. Đó là những gì đã được quyết định. Đó là nơi mà các thẻ liên kết đi khi Bạn có những gì được gọi là một sheet bên ngoài. Câu hỏi khác? Được rồi, chúng ta hãy làm điều này. Chúng tôi có rất nhiều niềm vui phía trước chúng ta ngày hôm nay. Đó chỉ là gãi bề mặt của CSS. Chúng ta hãy làm điều này. Chúng ta hãy nghỉ năm phút đây bởi vì, mỗi email của tôi, chúng ta hãy treo trong đó cho đến 2:30-ish hôm nay. Nhưng nếu bạn không có để để lại, đó là tốt. Nhưng chúng tôi sẽ giả mạo trước sau nghỉ ngơi năm phút. Và chúng ta sẽ học một chút gì đó về PHP, MySQL, và nhiều hơn nữa. Được rồi, vì vậy hãy cố gắng, bây giờ, để buộc một vài trong số những ý tưởng với nhau và thực hiện, nói, công cụ tìm kiếm riêng của chúng tôi. Tôi nhận thấy, chứ không phải tò mò, sau. Khi bạn đang ở Google.com, bạn thường tại một URL như thế này đây không có gì sau dấu chấm com. Nhưng nếu tôi tìm kiếm một cái gì đó ngu ngốc như mèo, và nhấn Enter, chúng tôi sẽ nhận được - không ngu ngốc, nhưng bạn biết. OK, vì vậy nhận thấy, ở trên cùng của trang, bây giờ, các URL đã, tất nhiên, thay đổi. Và điều này không phải là bất cứ điều gì mới để mỗi người chúng ta. Bạn nhấp vào liên kết và các công cụ xảy ra trên web. Nhưng điều thú vị ở đây như sau. Có một toàn bộ rất nhiều lộn xộn, nhưng cho tôi vứt bỏ thứ mà tôi không hoàn toàn hiểu hoặc không thực sự xem xét có liên quan. Hãy để tôi thoát khỏi điều này. Hãy để tôi thoát khỏi điều này. Và hãy để tôi thoát khỏi của tất cả điều này. Và bây giờ nhận thấy rằng mèo là trong URL, theo sau với một q, sau đó là một bằng đăng nhập vào phía trước của nó. Thực ra, đây là cách Cách nó hoạt động khi nói cho đầu vào và đầu ra. Chúng tôi đã nói chuyện dài về hộp đen, phải không? Vì vậy, nếu điều này là một chức năng thực hiện đây như một hộp đen, nó có đầu vào và sản xuất sản lượng, tốt, có nghĩa là mà bạn cung cấp đầu vào cho một trang web là do cách, thường xuyên, các URL của nó. Bạn chỉ cần đặt một dấu hỏi và sau đó một phím bằng giá trị. Và sau đó có thể là một ký hiệu, và sau đó quan trọng khác bằng giá trị, sau đó có thể ký hiệu khác, quan trọng tương đương với giá trị. Đó là cách bạn vượt qua trong các phím và các giá trị, các cặp đầu vào. Vì vậy, nếu tôi nhấn Enter bây giờ, những gì thú vị về Google đó là tất cả lộn xộn tôi bị xóa sẽ không xuất hiện là sự cần thiết. Tất cả tôi cần phải gửi cho Google là câu hỏi dấu q bằng mèo để có được sao một số con mèo. Vâng, ý nghĩa đó, sau đó, là nếu tôi kéo lên gedit, tôi đã bắt đầu làm cho công cụ tìm kiếm của riêng tôi đây trong một tập tin gọi là seach0.html. Và để cho tôi đi trước và xóa một dòng hơn bạn đã không được nhìn thấy. Và bây giờ, hãy để tôi đi vào trình duyệt của riêng tôi, do đó, không cho Google, và đi đến http://localhost. Và đó là sẽ nhận được trong cách. Vì vậy, chúng ta sẽ phải nói lời tạm biệt rằng từ bây giờ, di chuyển này trên đây, oh, bây giờ chúng ta sẽ phải nói lời tạm biệt với tập tin đó. Bất cứ khi nào bạn có một tập tin gọi là index.html hoặc index.php trong một thư mục, nếu máy chủ web là cấu hình theo cách này, bạn sẽ thấy, mặc định, là các nội dung của tập tin chứ không phải là một danh sách các thư mục, như tôi muốn ở đây. Thêm về điều này trong spec. Bạn không thấy điều đó. Vì vậy, đây là những gì tôi thực sự muốn. Nhưng một thời điểm trước đây, đã có một tập tin trong thư mục này được gọi là index.html và index.php. Và các máy chủ web là hiển thị cho tôi những tập tin. Thay vào đó, tôi muốn thư mục này liệt kê ở đây. Vì vậy, tôi sẽ đi vào CSS và đi đến search0. Và tôi cho rằng điều này là nó sẽ được đầu cạnh tranh của riêng tôi công cụ tìm kiếm. Và để làm được điều này, tôi sẽ đi trong ở đây, vào CSS, và mở ra với gedit, tìm kiếm 0. Nhưng không may, có không nhiều đang xảy ra ở đây. Tất cả tôi đã làm là sử dụng một thẻ tiêu đề, mà xảy ra được gọi là h1, mà về cơ bản có nghĩa là lớn và táo bạo, và đó là nó. Nhưng các phương tiện mà chúng ta có thể cung cấp các yếu tố đầu vào thông qua các thứ được gọi là hình thức. Vì vậy, hãy để tôi đi trước và mở và đóng, đánh phủ đầu, một thẻ hình thức đó. Và để cho tôi đi trước và làm một cái gì đó như thế này. Đầu vào, loại bằng văn bản. Và sau đó chúng ta hãy đóng thẻ trong khung bản thân. Tôi không cần phải bắt đầu một trường văn bản và ngăn chặn một trường văn bản. Nó chỉ có mặt ở đó hay không. Và sau đó dưới đây, chúng ta hãy làm loại đầu vào bằng trình. Tiết kiệm này. Và bây giờ chúng ta chỉ cần làm một sự tỉnh táo nhanh chóng kiểm tra. Hãy tải lại. OK, vì vậy nó không phải là xấu. Nó không phải là phong cách của Google, nhưng nó khá gần. Có một trường văn bản. Tôi có thể gõ một số công cụ trong, nhấn Enter, nhưng không có gì xảy ra được nêu ra. Và đó là bởi vì tôi đã không quy định một hành động cho hình thức này, có thể nói. Vì vậy, nếu tôi trở lại các yếu tố hình thức, Hóa ra, và tôi chỉ biết này từ việc đọc tài liệu, mà thẻ form có một thuộc tính gọi hành động đó là URL của trang web mà bạn muốn gửi biểu mẫu. Tôi không thực sự nghĩ rằng chúng tôi có thời gian để thực hiện các kết thúc trở lại toàn bộ cho một công cụ tìm kiếm ngày hôm nay. Vì vậy, chúng tôi chỉ muốn nói, eh, truy cập google.com / tìm kiếm. Và bây giờ hãy để tôi đóng dấu của tôi. Và để cho tôi tiếp tục xác định rằng phương pháp sử dụng sẽ được gọi là được. Long câu chuyện ngắn, có hai cách, tại Ít nhất, bạn có thể gửi thông tin từ trình duyệt đến máy chủ. Một là nhận được, và, cho các mục đích của ngày hôm nay, đó chỉ có nghĩa trong URL. Bạn nhìn thấy chính xác những dấu hỏi, những dấu bằng, và ampersands mà chúng ta đã thấy. Hoặc có một sự thay thế được gọi là bài. Cho bây giờ, biết rằng bài thường được sử dụng khi bạn muốn tải lên các tập tin, như hình ảnh và vv, hoặc khi bạn muốn gửi thông tin thẻ tín dụng, hoặc mật khẩu, bất cứ điều gì mà nó không thực sự có ý nghĩa, khái niệm, hoặc an ninh khôn ngoan, để kết thúc trong URL của trình duyệt của bạn, nơi cha mẹ rình mò, hoặc bạn cùng phòng, hoặc bất cứ ai có quyền truy cập máy tính của bạn có thể nhìn thấy. Vì vậy hãy tiết kiệm ở đây. Và tôi cần phải làm một việc khác. Nó không đủ chỉ để nói cho tôi một trường văn bản. Tôi có để cung cấp cho lĩnh vực của giá trị một tên. Vì vậy, hãy để tôi vay lựa chọn của Google tên, q, và xác định rằng thứ hai thuộc tính tôi không thực sự quan tâm tên của nút Submit. Tất cả tôi quan tâm là trình những loại người sử dụng vào Và giờ đây là loại xấu xí. Nó chỉ nói trình. Hóa ra, và tôi biết điều này từ tài liệu hướng dẫn, tôi thực sự có thể nói giá trị tương đương với trích dẫn unquote "CS50 Kết, "trích dẫn gần. Sau đó, chúng ta hãy tải lại một lần nữa. Vì vậy, tôi tiếp tục nhấn Command-R, hoặc Kiểm soát-R trên bàn phím của tôi để tải lại. Bây giờ chúng tôi có một thú vị hơn công cụ tìm kiếm. Nó không hoàn toàn giống như Google, mặc dù. Vì vậy, chúng ta hãy đi trước trong đây và làm một ít xuống dòng. OK, vì vậy bây giờ chúng tôi có Google. Chúng tôi thực sự gần như không có Google. Vì vậy, bây giờ những gì sẽ xảy ra? Tôi sẽ gõ vào một cái gì đó như mèo. Và trình duyệt sẽ phân tích rằng hình thức mà tôi xác định. Và nó sẽ gửi người sử dụng URL đó. Vì vậy, thời gian này, vì một lý do tò mò, Tôi có thêm thông tin về chứng khoán hơn về con mèo thực tế. Nhưng đó là tiền phạt vì nhận thấy chúng ta vẫn kết thúc ở đây, q bằng mèo. Vì vậy, câu chuyện dài ngắn, nó có vẻ khá tầm thường để có được đầu vào từ người sử dụng. Và công bằng, có chùm của các loại biểu mẫu form. Có hộp kiểm tra, và ít lẫn nhau nút radio độc quyền, và thả menu, và nhiều hơn nữa xuống. Nhưng tất cả những người như tương đối dễ dàng thực hiện như lĩnh vực văn bản này là. Và cuối cùng, chúng ta phải làm chắc rằng ai đó đang lắng nghe trên khác kết thúc của dòng để có được điều đó thông tin xử lý, bằng cách nào đó, và cung cấp cho chúng ta trở lại con mèo của chúng tôi. Hãy xem xét một chút tham gia nhiều hơn ví dụ. Hãy để tôi đi vào thư mục vhost của tôi, vào máy chủ địa phương, công cộng, và nơi tôi đưa mã nguồn của ngày hôm nay. Tất cả điều này sẽ được của khóa học trang web cho bạn để tinker với. Và nếu tôi đi vào froshims, hãy để tôi mở lên tập tin này ngay bây giờ, froshim0.php. Điều này là một ít tiết, vì vậy chúng tôi sẽ không viết này từ đầu. Nhưng chỉ cần thông báo tại một vài hơi đặc điểm quen thuộc. Một, thẻ hình thức, hành động khác nhau. Nó không phải là một URL đầy đủ. Bây giờ, nó dường như nộp gọi register0.php bởi vì, trong một thời điểm, Tôi sẽ dạy cho bản thân mình một chút một cái gì đó về PHP, một lập trình ngôn ngữ, do PHP có thể được sử dụng để thực hiện những gì Google thực hiện như kết thúc sau của công cụ tìm kiếm của họ. Google, trong thực tế, có thể sử dụng một số Python, một số C + +, và chùm các ngôn ngữ khác. Nhưng chúng tôi chắc chắn có thể thực hiện tìm kiếm kết quả sử dụng PHP nếu chúng ta muốn. Nhưng hiện nay, chúng tôi sẽ giữ nó đơn giản. Và điều này thực sự gợi nhớ đến một các trang web đầu tiên khác tôi thực hiện năm trước. Trở lại trong ngày của tôi, bạn đăng ký thể thao intramural như một sinh viên năm nhất của điền vào một tờ giấy, đi bộ trên sân, và thả nó trong hộp thư của Proctor trong Wigglesworth, và đó là cách bạn đăng ký. Và do đó dự án của tôi một thời gian ngắn sau khi CS50, là đặt đó, mà làm cho hoàn hảo ý thức, vào các trang web, mà là không như thịnh hành sau đó như bây giờ. Nhưng tất cả chúng ta phải làm là tạo ra, về cơ bản, một hình thức HTML. Và hình thức mà nhìn gần như thế này. Tôi đã có một đầu vào cho các tên sinh viên năm nhất. Tôi đã kiểm tra hộp khác cho hay hoặc không họ muốn trở thành đội trưởng, những gì giới tính của họ, và ký túc xá của họ là gì. Và sau đó tôi cứng mã hoá trong điều như Apley Tòa án, và Canaday, Màu xám, và vv. Vì vậy, một lần nữa, thẻ mới. Đã không nhìn thấy những trước, mới thuộc tính, nhưng khá dễ tiếp cận. Một khi bạn thấy một ví dụ, bạn có thể loại vay của ý tưởng đó và làm giảm đơn cho hầu hết bất cứ điều gì xuống. Nhưng điều quan trọng là mỗi những điều này có tên. Và ở dưới cùng của mẫu đơn này, có một nút gửi có nhãn, hoặc giá trị, là đăng ký. Vì vậy, chúng ta hãy đi đến trang này. Hãy để tôi đi trở lại vào danh sách thư mục. Hãy để tôi đi vào froshims, và đi đến froshim0.php. Vì vậy, nó xấu xí, để được công bằng. Vì vậy, tôi chắc chắn có thể phong cách hóa này với một số CSS, tôi có thể làm cho một số đồ họa, có thể thêm một số màu sắc, và làm cho đẹp hơn. Nhưng chức năng, tôi cho rằng điều này thực sự là khá đầy đủ. Thật không may, khi tôi điền này ra, David, Đại úy, Nam, chúng tôi sẽ chọn, chúng ta hãy nói Matthews, đăng ký, tất cả những gì xảy ra là điều này. Nhưng thấy một số đồ ăn tay. Một, những gì tập tin trở lại những kết quả, rõ ràng? Vì vậy, nó là, thực sự, register0.php. Vì vậy, thực tế là chúng ta đã thấy hành động giá trị một thời điểm trước đây cho register0, điều này chứng thực rằng chúng tôi thực sự đã kết thúc tại tập tin cụ thể. Bây giờ đây chỉ là văn bản xấu xí. Nhưng nhận thấy rằng văn bản này là đến từ máy chủ địa phương, đó là ra khỏi thiết bị. Hãy suy nghĩ của thiết bị bây giờ như chỉ một máy chủ web có thể là trong các Trung tâm khoa học. Nó có thể là trên các trang web thực tế. Vì vậy, nó có thể truy cập công khai. Vì vậy, rõ ràng, có một số cách để đi qua hình thành đầu vào lĩnh vực đến một máy chủ để nó có thể làm điều gì đó với họ. Thật không may, register0 là khá ngu ngốc. Tất cả nó là in ra một mảng trông như thế này. Và nó không phải là một mảng trong nghĩa là chúng ta biết. Chỉ ra rằng PHP, và rất nhiều ngôn ngữ, không chỉ có số lượng mảng lập chỉ mục có chỉ số đầu tiên là bằng không, sau đó một, sau đó hai, sau đó chấm, dấu chấm, dấu chấm, n trừ đi 1. Đây là những gì được gọi là một mảng kết hợp. Một mảng kết hợp là một trong đó bạn có thể lưu trữ các cặp giá trị quan trọng mà phím không nhất thiết là số. Nó có thể trong thực tế là một chuỗi, một từ. Và vì vậy điều này có thể được thực hiện, bên dưới mui xe, nó quay ra, sử dụng một cấu trúc dữ liệu được biết đến như một? Nghĩ cái gì đó lớn sắp xảy ra - bảng băm. Vì vậy, một bảng băm, thu hồi, những người bạn người đã làm nó cho P tập 6, hoặc thậm chí nhớ lại nó, ít nhất là ngay cả khi bạn đã làm một thử, một bảng băm, trong việc sử dụng của chúng tôi, được sử dụng để chỉ lưu trữ từ. Nhưng thực sự, bạn được lưu trữ khóa và giá trị. Nếu bạn thực hiện một bảng băm cho P thiết lập 6 từ điển, các phím là từ chính họ, và các giá trị là hiệu quả đúng hay sai. Có, ở đây, hoặc ngầm, không, không phải ở đây. Vâng, chúng ta có thể khái quát hóa ý tưởng đó. Và chúng ta có thể sử dụng một dữ liệu rất giống nhau cấu trúc để lưu trữ không phải là chuỗi bản thân mình trong bảng băm của bạn, nhưng giả sử rằng trong mỗi một trong băm của bạn các nút của bảng. Và thậm chí bạn có thể làm điều này trong một thử thay vì chỉ có một bool. Bạn có thể có một cái gì đó khác. Nếu phím không Maxwell, cho Ví dụ, nhưng trích dẫn unquote "tên", hoặc trích dẫn unquote "đội trưởng." Và bên trong cấu trúc dữ liệu C của bạn, bạn đặt một giá trị, không chỉ là một Boolean, nhưng có giá trị như trích dẫn unquote "David", hoặc "M", hoặc "Matthews," và vv. Vì vậy, những cấu trúc dữ liệu cùng chúng tôi sử dụng dường như tồn tại trong các ngôn ngữ khác. Và tôi cho rằng họ đang thực sự nhiều, đơn giản hơn nhiều để truy cập vào đây. Chúng ta trong thực tế có một cái nhìn tại một số cú pháp như vậy. Tôi sẽ đi vào một thư mục PHP. Và tôi sẽ mở ra một tốt hơn phiên bản của hello-0 từ trước. Chú ý rằng tất cả tôi đã làm là thêm một số ý kiến. Vì vậy, chúng ta có thể thoát khỏi phân tâm đó. Và chương trình này không thực sự in xin chào vì tôi đã chỉ định giữa thẻ mà tôi muốn thực hiện mã. Bây giờ, chúng ta sẽ thấy trong một thời điểm tại sao điều này là hữu ích. Nhưng chúng ta hãy mở một ví dụ khác ở đây. Hãy để tôi đi trước và mở nói, gedit điều kiện một. Đây là cách trở lại trong thời gian bây giờ. Nhưng tuần trước đây, tôi nghĩ rằng, trong tuần một hoặc tuần thứ hai, chúng tôi đã có một ví dụ được gọi là conditions1.c. Và tôi quyết định reimplement nó trong PHP, chỉ để loại nhấn mạnh rằng PHP, cú pháp, là gần như giống hệt nhau để C. Đây không phải là một bước tiến lớn từ tuần trước đến nay. Nhận thấy ở trên cùng của chương trình này, mà bắt đầu, như trước đây, với một số ý kiến, mà tôi sẽ thoát khỏi như là một mất tập trung. Chú ý rằng tôi là trong PHP chế độ trong tập tin này. Vì vậy, mã này, chúng ta sẽ thấy, sẽ được thực hiện. Chú ý rằng có readline, mà có lẽ là tương tự trong PHP getString. Nhận thấy đó là một chút khác nhau. Bạn thực sự có thể chỉ định một dấu nhắc đến chức năng được gọi là dòng đọc, và đó là những gì người dùng thấy. Vì vậy, bạn không cần phải printf tay. Nhưng đó không phải là một việc lớn. Tôi sẽ để lưu trữ, bên trong $ n, trả lại giá trị này, vì vậy bất cứ điều gì loại dùng trong là int của họ. Và đây là sự tò mò khác. Hóa ra, trong PHP, bất kỳ biến chỉ cần có để được bắt đầu với một ký hiệu đô la. Đó là một chút khó chịu. Nhưng nhận thấy những gì tôi đã không thực hiện trong PHP. Những gì còn thiếu từ bàn tay trái bên dấu bằng? Không đề cập đến loại. Vì vậy, điều này khác với C. Đối với tốt hơn hoặc tồi tệ hơn, PHP là một cách lỏng lẻo ngôn ngữ đánh máy. Nó không có số. Nó không có dây. Nó có Booleans. Và nó không có một vài các kiểu dữ liệu khác. Nhưng bạn, các lập trình viên, thường không cần phải quan tâm đến họ. Ưu điểm của việc này là nó làm cho nó một chút dễ dàng hơn cho chương trình. Bạn có thể nghĩ rằng một chút ít. Nhược điểm là nó cũng mở ra cho bạn lỗi tiềm năng nếu bạn vô tình điều trị một số như là một chuỗi, một chuỗi như một số, có khả năng, nhưng thậm chí sau đó, PHP, và rất nhiều ngôn ngữ, là khá khoan dung. Họ sẽ sử dụng những gì được gọi là ép kiểu ngầm. Và nếu bạn cố gắng sử dụng n trong bối cảnh một tình huống số, nó sẽ chuyển đổi những gì ở đây là có được một chuỗi, bởi vì nếu loại người sử dụng một cái gì đó trong, và bạn sẽ có được kết quả, như với readline, hoặc nhận được chuỗi, đó là sẽ trả về một chuỗi. Nhưng thông báo, một vài dòng sau, tôi kiểm tra nếu n là lớn hơn không. Vì vậy, PHP sẽ mặc nhiên bỏ tôi "Chuỗi" 123, hoặc bất cứ điều gì người dùng loại trong, vào một int. Vì vậy, trong ngắn hạn, các công cụ chỉ hoạt động rất nhiều trực giác hơn. Vì vậy, bây giờ chúng tôi bắt đầu bỏ bớt một vài trong số các những điều mà chúng tôi đã làm trong quá khứ. Rất nhiều công cụ này là tương tự, mặc dù. Vẫn bằng bằng. Như một sang một bên PHP cũng đã tương đương với bằng bằng, nhưng thêm vào đó, có lẽ, trong tương lai. Đó là một. Lỗi đánh máy nhưng hai dấu bằng có nghĩa là giống điều như trước đây, để so sánh. printf có nghĩa là điều tương tự như trước đây. Dấu gạch chéo ngược n có nghĩa là giống điều như trước. Vì vậy, làm thế nào để chạy chương trình này? Cũng như trước đây, nếu tôi làm PHP, conditions1.php, và gõ một số như 123. Đó là một số dương. Nếu tôi gõ 0, tôi chọn 0. Và nếu tôi gõ vào 123 tiêu cực, tôi nhận được sao một số âm, mà chỉ là nói, cú pháp, PHP là siêu, siêu tương tự. Vì vậy, tại sao điều này bây giờ hữu ích trong một bối cảnh web? Vâng, chúng ta hãy quay trở lại froshims này Ví dụ, nhìn, một lần nữa, như thế này đây. Và chúng ta hãy thực sự kéo lên trang web một lần nữa, mà trông như thế này. Những gì chúng ta có thể làm với các dữ liệu đã được gửi? Vâng, hãy để tôi mở ra một phiên bản mới hơn phiên bản này. Và bạn sẽ thấy rằng vấn đề bộ kỹ thuật hướng dẫn cho bạn thông qua một vài trong số này. Thay vì bắt đầu với số không, chúng ta hãy nhìn vào froshims3, mà không nhiều hơn một chút. Chú ý đầu tiên, thực sự, chúng ta hãy mở những gì là 0, để bạn nhìn thấy những gì đăng ký 0. Thông báo những gì đăng ký 0 đã làm. Một, tôi có ý kiến ​​ở đầu trang. Xóa những người và chỉ tập trung vào điều này. Hầu hết các nội dung của register0.php là, rõ ràng, ngôn ngữ gì? Chỉ liệu PHP. Vì vậy, thông báo, tập tin này không bắt đầu với, vào lúc này, mở khung, dấu hỏi, PHP. PHP không cho phép bạn pha lộn Mã với thẻ HTML PHP. Nhưng tôi đã làm điều đó ở đây bên trong của trang trên đây. Bây giờ, một lần nữa, bạn sẽ chỉ biết điều này từ đã nhìn hướng dẫn. print_r, nó quay ra, là print_recursive. Đệ _quy Và đây chỉ là một tiện dụng chức năng tiện ích mà chỉ cần in ra, đệ quy, bất cứ điều gì bạn đưa cho nó. Nếu bạn đưa nó một mảng, nó sẽ in một mảng. Nếu bạn trao cho nó một số, nó sẽ in một số. Tay nó một chuỗi, nó sẽ in một chuỗi. Nếu bạn đưa nó một bảng băm, nó sẽ in ra một bảng băm. Bạn không phải viết tất cả của mã chính mình. Bây giờ nhận thấy rằng tôi đang bước vào Chế độ PHP trên đây. Tôi thoát khỏi chế độ PHP trên đây. Vì vậy, khi các máy chủ web đọc file này trên xuống dưới, từ trái sang phải, bởi vì nó kết thúc bằng một tên tập tin được gọi là. php, bất cứ điều gì không phải là bên trong các thẻ PHP là chỉ có được nhổ ra, như mã HTML. Không có việc lớn. Nhưng ngay sau khi máy chủ web thông báo này, nó sẽ nói, tôi không nên nhổ ra, theo nghĩa đen, print_r của bài. Tôi nên thực hiện như sau dòng mã. Vì vậy, câu hỏi cuối cùng, sau đó, của tập tin này được, tốt, những gì hôm nay là? Hãy đoán. $ _POST Là những gì, có lẽ? ĐỐI TƯỢNG: [nghe được] SPEAKER 1: Vâng, các dữ liệu được đăng. Nhớ lại, chúng ta hãy di chuyển trở lại trong thời gian cho một thời điểm. froshim0, một lần nữa, trông như thế này. Đa số siêu này chỉ là HTML. Một lần nữa, một số thẻ bạn có không thấy chưa, hay mà bạn đã quen thuộc. Nhưng điều thú vị là này. Này một dòng là những gì thực sự liên kết nó vào tập tin register0.php của chúng tôi. Tôi đang gửi thông qua phương pháp bài. Và điều đó có nghĩa rằng các thông số sử dụng các loại trong không sẽ kết thúc ở đâu. Họ sẽ không hiển thị trong URL. Họ vẫn sẽ được gửi từ khách hàng, từ trình duyệt, để các máy chủ, nhưng chỉ thông qua một số khác cơ chế mà chúng tôi sẽ từ bỏ bàn tay của chúng tôi tại ngày hôm nay, nhưng nó không có trong URL. Nhưng nhận thấy mối quan hệ bây giờ với bài, trong đó, theo quy ước, là chữ thường ở đây. Nhưng nếu tôi mở ra register0.php, Tôi dường như in ấn này. Vì vậy, đây là một loại kỳ lạ quy ước đặt tên. Nhưng những gì là tốt đẹp trong PHP là khi sử dụng PHP trong một bối cảnh web, không phải ở một dòng lệnh như tôi đã làm một thời điểm trước đây, khi bạn đang thực sự sử dụng nó trong một trang web trang, trong một thư mục vhost như chúng ta, sẽ tự động điền vào PHP này điều, đó là một mảng kết hợp, có thể nói, một bảng băm, với tất cả những gì người dùng đánh máy in Trong ngắn hạn, $ _POST trong tất cả các mũ là một biến toàn cầu PHP chỉ kỳ diệu tạo ra cho bạn khi sử dụng PHP trong một bối cảnh web. Và nó đặt bên trong của nó tất cả các tên của các thông số trong hình thức mà đã được trình lên tập tin này và tất cả các các giá trị mà người dùng đánh máy in Vì vậy, nó trao cho bạn những gì người sử dụng gõ vào hình thức đó. Vì vậy, trước, chúng tôi đã đầu ra thực sự ngu ngốc chỉ nhìn thấy điều này bởi vì tất cả tôi đã làm được đệ quy in mảng này. Điều quan trọng là tên, giá trị là David. Điều quan trọng là thuyền trưởng. Giá trị là trên. Và mũi tên đôi và góc khung có, đây chỉ là tùy ý. Đây không phải là mã. Đây chỉ là PHP cách hiển thị cho bạn những gì giá trị của một số quan trọng là. Nhưng bây giờ tôi đề nghị trong froshIMs3, nó gần như giống hệt nhau ngoại trừ nó nộp vào tập tin này. Và một lần nữa, chúng ta sẽ loại chỉ liếc nhìn này, chỉ để xem một số cú pháp, nhưng thông báo gì tập tin này không. Hãy đoán chỉ dựa trên dòng mã, mà có thể làm như thế Hy Lạp, một số phạm vi, dường như đang làm. Tập tin này bằng cách nào đó có liên quan để mail, email. Vì vậy, những gì chương trình này đang làm gì? Trong phiên bản này, nếu tôi thực sự điền vào mẫu này - và cho tôi đi đến froshIMs3, không froshIMs0 - hình thức trông giống nhau. David, đội trưởng, nam, ký túc xá, Matthews. Nhưng nếu tôi trình này, tập tin này là sẽ đi đến register3.php. Và tôi khẳng định, bằng cách nhìn vào nó mã nguồn, nó sẽ bằng cách nào đó liên quan đến email. Hãy để tôi đi trước và mở này lên trong một cửa sổ lớn hơn, vì vậy chúng tôi có thể nhìn thấy nó sạch hơn. Chúng tôi đang ở trong vhosts, máy chủ địa phương, công cộng, froshims. Tôi sẽ mở ra một khác nhau chương trình, chỉ cần để chúng tôi có thể xem thêm một lúc. Vì vậy, bây giờ đây, nhận thấy một vài điều. Ở phía trên của file được mở khung, dấu hỏi, PHP. Sau đó có một loạt các ý kiến, mà chúng ta có thể bỏ qua, là không thú vị cho bây giờ. Bây giờ có này. Nó quay ra PHP có rất nhiều mã được gọi là yêu cầu. Nó rất giống với tinh thần C bao gồm, băm bao gồm, mà chủ yếu lấy nội dung của một số tập tin khác và chỉ plops chúng ở đây, để bạn có thể sử dụng chúng. Trong trường hợp này, thiết bị có, cài đặt sẵn, một thư viện, miễn phí và thư viện mã nguồn mở được gọi là PHP bưu phẩm mà bất cứ ai có thể tải về từ Internet. Chúng tôi chỉ cần làm điều đó cho bạn. Và điều này có nghĩa là bây giờ tôi có email chức năng sắp xếp của tôi. Bây giờ, nhận thấy một vài điều. Tôi sẽ xác nhận hình thức trình của. Hóa ra PHP, một, có dấu chấm than điểm cho không điều hành, giống như C. Tuy nhiên, PHP cũng có một chức năng gọi là trống. Trống rỗng chỉ trả về true nếu giá trị trong những điều bạn đem nó đến ngoặc là trống rỗng, như các người sử dụng không nhập bất cứ điều gì in Vì vậy, đây đang nói, và nhận thấy sự cú pháp, rất giống với C, nếu chính tên, vì vậy các lĩnh vực tên trong biểu mẫu, mà đã được gửi qua đường bưu điện, bằng người sử dụng, không có sản phẩm nào, và họ giới tính là không có sản phẩm nào trong các hình thức như tốt, và ký túc xá của họ là không có sản phẩm nào - nhưng nhận thấy tôi không quan tâm đến thuyền trưởng, sau đó được những gì chúng ta sẽ làm gì? Tôi sẽ thực hiện dòng mã này. Và bạn có thể nghĩ loại như malloc, nhưng đó là một chút fancier hơn. Nhưng bây giờ điều này mang lại cho tôi một đặc biệt struct của PHP loại bưu phẩm. Nhưng bỏ qua các từ khóa mới cho ngày hôm nay. Bây giờ tôi sẽ gọi một chức năng được gọi là IsSMTP, trong đó nói rằng, sử dụng SMTP. Đây là cổng 25, giống như video tuần trước, khi điều đã được ném email vào các bức tường lửa. Cổng 25 là SMTP. SMTP có nghĩa là sử dụng các máy chủ mail. Cái nào, chúng ta có thể sử dụng Harvard SMTP.fas.harvard.edu. Chúng tôi có thể thiết lập từ địa chỉ là John Harvard. Nếu tôi di chuyển xuống thấp hơn nữa, tôi có thể thiết lập địa chỉ người nhận, chỉ tùy tiện, là John Harvard là là tốt. Vì vậy, anh ta sẽ được gửi email cho chính mình. Bây giờ tôi có thể thiết lập các chủ đề được đăng ký. Và tôi có thể thiết lập cơ thể của email như sau. Dòng này có vẻ hơi khó hiểu hơn, nhưng đó chỉ là vì có rất nhiều thông tin trong đó. Một, có một dấu chấm. Một người nào đó phải biết những gì đã dấu chấm không. Nó nối. Vì vậy, nếu bạn muốn thực hiện một chuỗi trong PHP, và thêm nó, hoặc thêm vào trước nó, để một chuỗi trong PHP, cảm ơn Thiên Chúa bạn không cần phải sử dụng strcopy và malloc, và tất cả điều đó nữa. Nếu bạn muốn nối hai chuỗi, những người quan tâm về bộ nhớ. Hãy để con số PHP ra cho bạn. Những gì PHP sẽ làm gì với các nhà điều hành chấm đây là làm một câu lớn ra của dòng này, dòng này, dòng này, dòng này. Và bây giờ thông báo, nó sẽ được cắm vào giá trị. Vì vậy, các email mà John Harvard sẽ để nhận được nghĩa đen sẽ nói tên, đại tràng, một cái gì đó, chứ không phải, sau đó chúng tôi đóng chuỗi và nối trên bất cứ điều gì người dùng gõ trong, sau đó một dòng mới. Sau đó, trên dòng tiếp theo của John Harvard email, nó sẽ nói Đội trưởng, trên hay không gì cả. Nó sẽ nói giới tính, nam hay nữ. Ký túc xá là có được Matthews trong trường hợp của tôi. Và sau đó nhận thấy dấu chấm phẩy quen thuộc ở cuối. Và sau đó, xuống đây, thông báo, phần nào bí ẩn vẫn còn, nhưng một lần nữa, sau một mô hình sẽ trở nên quen thuộc sau khi thiết lập P 7, nếu gửi qua đường bưu điện trả về false, sau đó đi trước và chết. Vì vậy, PHP có một chức năng gọi là chết, trong đó, nghĩa là, chỉ cần giết chết trang web và chỉ in ra bất cứ điều gì bạn nói với nó - nó đang hấp hối từ, vậy để nói chuyện. Và rằng, trong trường hợp, nó sẽ in ra những thông tin lỗi là cho bất cứ điều gì đã xảy ra để đi sai. Vì vậy, câu chuyện dài ngắn ở đây, những gì chúng tôi có là một ví dụ khi người dùng nộp mẫu đơn, froshim0, froshims3.php, nó đi vào register3.php. Nhưng register3.php sau đó tiến hành thực hiện tất cả những dòng này. Do đó, có một số trẻ bỏ mất ở đây. Một, nó dường như khá dễ dàng, lập trình, gửi email, đó là tốt. Khi người sử dụng đăng ký cho trang web của bạn, trong trường hợp này, khi đăng ký của bạn thể dục thể thao, bạn có thể gửi email cho các sinh viên năm nhất Proctor, hay John Đại học Harvard, trong trường hợp này. Nhưng nó cũng có nghĩa là bạn có thể làm những gì? Gửi email từ bất cứ ai bất cứ ai. Và điều này là rất đúng. Đây không phải là dễ dàng thực hiện nếu bạn đang sử dụng để sử dụng Gmail. Nhưng nếu bạn đã từng sử dụng Eudora hoặc Outlook, bạn có khá nhiều có thể kể một máy chủ mail mà bạn bất cứ ai bạn muốn. Và đây là nơi mà tôi cần phải đặt trên cái mũ và nói, không làm điều này. Nhưng điều này là minh chứng cho chỉ cách dễ dàng nó là để thực hiện các cuộc tấn công lừa đảo, và gửi email nặc danh, và thư rác, nói chung. Và nó thực sự nắm vào thực tế là tất cả các bạn cần là một số truy cập chương trình. Như một sang một bên, cuộc gặp gỡ gần nhất của tôi với hội đồng quản trị quảng cáo, năm sinh viên năm nhất của riêng tôi, là khi tôi phát hiện ra mát này lừa rằng, wow, bạn có thể gửi email từ bất cứ ai. Và vì vậy chúng tôi đã có một số ngu ngốc đối số, nghĩa là, trong Matthews, trong nhóm Proctor của tôi. Tôi thậm chí không nhớ những gì vấn đề là. Nhưng tôi đang cố gắng chấm kết thúc cuộc tranh luận ngu ngốc này. Vì vậy, tôi quyết định tôi sẽ chỉ gửi một email vào nhóm Proctor của tôi, giả vờ là người đàn ông khác, có ý kiến ​​với tôi không đồng ý, và anh ta đã chấp nhận sự để bất cứ điều gì quan điểm của tôi là trong cuộc tranh luận đặc biệt này. Và vì vậy tôi giả mạo thư điện tử này sử dụng một kỹ thuật tương tự trong tinh thần này. Nhưng nó đã thực sự dễ dàng hơn vào thời điểm đó. Nhấn gửi. Ông không hài lòng, và cũng không có đã được hội đồng quản trị quảng cáo. Và tôi đã rất nhanh chóng bị bắt trong giây bởi vì, như bạn đã biết, tôi ký email của tôi trong một cách nào đó. Và mặc dù tôi làm điều đó bằng tay, trong lớn phần, 15 năm sau đó bởi vì tôi bị tổn thương bằng cách đó. Tôi không có một chữ ký trên email của tôi bây giờ. Nhưng vào năm 1995, tôi chỉ có một sig, chữ ký trong email của tôi. Vì vậy, có ghi chú này nói rằng, thân mến Nhóm giám thị, tôi chấp nhận sự ý kiến ​​của tôi và đồng ý với David, đã ký như vậy và như vậy, dòng mới, đường mới, DJM. Vì vậy, không làm điều đó hay, nói chung, có Ưu điểm của kỹ thuật này. Nhưng khi thực hiện một trang web, như cho dự án cuối cùng của bạn, khi thực hiện một trang web cho một cái gì đó kinh doanh, đây là như thế nào, thực dụng, bạn có thể tận dụng các dịch vụ khác trên internet như mail và sau đó thực sự gửi những thứ sử dụng mã. Vậy làm thế nào chúng ta có thể cải tiến này? Vâng, đầu tiên chúng ta hãy một tour du lịch nhanh chóng một số trong những điều mà bạn sẽ thấy, và sau đó hãy xem một vài ví dụ. Vì vậy, một, để trấn an, bởi vì chúng tôi đang bay qua PHP. Và tôi biết, tại một số điểm, bạn sẽ có để thực sự bắt đầu viết này nếu bạn chưa có. Nhận ra rằng, một, chính là loại trong ra ngoài cửa sổ với PHP. Nếu bạn muốn viết code mà được thực hiện, bạn chỉ cần bắt đầu viết nó trong một tập tin gọi là. php miễn là bạn có khung mở dấu hỏi PHP tag. Nhưng nhận thấy đây là những điều kiện trong php. Chú ý, đây là cùng trượt chính xác chúng tôi đã có trong tuần đầu tiên khi chúng tôi đã có điều kiện trong C. Điều kiện trong PHP có cấu trúc và cú pháp giống nhau. Khác biệt duy nhất là nếu bạn đã có biến có liên quan, bạn có những ký hiệu đô la. Trong khi đó, biểu thức Boolean trông giống như thế này cho hoặc-ing hay và-ing với nhau. Chuyển mạch trông giống hệt nhau. Những gì tốt đẹp trong PHP, trong khi đó trong C, chuyển mạch phải trường hợp trên nguyên thủy như số nguyên hoặc ký tự, trong PHP báo cáo trường hợp của bạn thực sự có thể được trên toàn bộ một chuỗi, đó là loại thực sự tốt đẹp. Giúp bạn tiết kiệm thời gian. Không thể làm điều đó trong C. Đây là một vòng lặp cho trong PHP. Nó giống hệt nhau. Có thể có một số dấu hiệu đô la cho các biến. Bạn không có đề cập đến một cái gì đó là một int. Bạn chỉ cần khai báo nó bằng một ký hiệu đô la và tên của biến. Nhưng một vòng lặp for là như nhau. Một vòng lặp trong khi là như nhau. Một làm trong khi vòng lặp là như nhau. Đây là một chút khác nhau. Vì vậy, với PHP, với một mảng, bạn có thể tĩnh khai báo một mảng, như trong C, nhưng bạn sử dụng dấu ngoặc vuông. Trong C, bạn sẽ sử dụng dấu ngoặc nhọn, nếu bạn thậm chí biết điều đó. Nhưng điều này thực sự rất phổ biến trong PHP để khai báo một mảng, trong trường hợp này, các con số, và gọi số biến. Biến mình trông như thế này. Đây là một chuỗi, trích dẫn unquote "hello thế giới. "Bạn có thể có một dấu gạch chéo ngược n. Tôi chỉ đơn giản là không trong trường hợp này. Bây giờ đây là một cấu trúc thú vị. C không có điều này. Nhưng điều này là siêu hữu ích. Và bạn sẽ thấy điều này trong P bộ 7 spec - một cho mỗi xây dựng. Nếu bạn muốn nhắc lại trên tất cả các các yếu tố một mảng, bạn không có để đối phó với $ i $ n, và + +, và tất cả những gì. Bạn có nghĩa là có thể nói, trong PHP, điều này - cho mỗi con số như số lượng, vì vậy Tôi giả định rằng $ số là một dãy số. Và khi tôi nói cho mỗi số như số lượng, điều này sẽ tự động, như vòng lặp của tôi thực hiện, cập nhật, trên mỗi lần lặp, giá trị trong số ký hiệu đô la - một lần nữa, và một lần nữa, và một lần nữa đi cho tôi trên mảng đó. Vì vậy, nó chỉ tiết kiệm cho chúng tôi mã. Không có dấu chấm phẩy, không + + 's, không có tôi là, không của n, nó chỉ tốt đẹp. Tuy nhiên, PHP cũng có này. Và điều này là siêu mạnh mẽ. Và bạn sẽ sử dụng điều này, tay trên, trong P thiết lập 7. Và mảng kết hợp cũng được khai báo với dấu ngoặc vuông. Nhưng hãy chú ý cú pháp bây giờ. Nó gợi nhớ đến những gì chúng ta đã thấy với print_r một thời điểm trước đây. Bao nhiêu phím, như kiểm tra sự tỉnh táo chút, không mảng này dường như có. Vì vậy, nó có hai. Và tôi gọi đây là một mảng. Nhưng nếu nó giúp, bạn có thể nghĩ của bảng như băm này, hoặc như một mảng kết hợp. Nhưng nó chỉ là một khác nhau loại mảng. Và một lần nữa, ngôn ngữ khác nhau có những. Chúng ta sẽ thấy một cái gì đó tương tự trong JavaScript là tốt. Có hai phím. Là một trong những trích dẫn unquote, "biểu tượng", một là trích dẫn unquote "giá." Và những phím mỗi người đều có một giá trị. Trong trường hợp này giá trị biểu tượng là FB, cho Giá trị Facebook, và giá là 49, 26, đó là cổ phiếu của Facebook Giá như sáng nay. Vì vậy, những gì là hữu ích về một mảng kết hợp. Tôi có thể có một số lượng mảng lập chỉ mục chỉ với dấu ngoặc vuông đơn giản. Và tôi có thể đã có ký hiệu đô la trích dẫn chỉ tương đương với điều này. Hãy để tôi thực sự làm điều đó. Giả sử tôi thay vì chỉ tuyên bố mảng này như thế. Đó là hoàn toàn hợp lệ, cú pháp. Nó không mất bất kỳ thông tin, cho mỗi gia nhập. Tôi vẫn thấy biểu tượng là fb, và rằng giá cả là 49, 26. Vì vậy, tại sao kết hợp mảng hấp dẫn? ĐỐI TƯỢNG: Bạn không cần phải nhớ nơi bạn đặt các công cụ. SPEAKER 1: Chính xác, bạn không có phải nhớ nơi bạn đặt công cụ. Bạn không cần phải tự ý nhớ mà mã chứng khoán là trong khung không, và giá cổ phiếu là trong khung một, trong đó đặc biệt nguy hiểm nếu bạn thay đổi mọi thứ, cuối cùng. Nó đẹp hơn nhiều để liên kết những gì chúng tôi sẽ gọi cho siêu dữ liệu với các dữ liệu thực tế của bạn. Tôi muốn lập luận rằng những gì chúng ta thực sự quan tâm về đây là fb và 49, 26. Biểu tượng và giá cả là siêu dữ liệu mô tả các dữ liệu chúng tôi thực sự quan tâm. Nhưng đây chỉ là quá nhiều dễ dàng hơn để truy cập. Bây giờ, khi một sang một bên những gì cái giá phải trả? Chúng tôi đã làm điều này CS50 trong nhiều tuần. Tính năng này phải đến tại một số chi phí. Bộ nhớ. Vì vậy, bạn không chỉ lưu trữ một 32-bit số nguyên, ví dụ. Bạn đang lưu trữ biểu tượng / 0, có lẽ. Vì vậy, bạn đang sử dụng nhiều bộ nhớ hơn. Và việc thực hiện những gì tìm kiếm một cái gì đó trong một mảng kết hợp, có thể? Đây có thể là chậm hơn. Truy cập ngẫu nhiên là tốt đẹp, đặc biệt là khi bạn có thể thực hiện tìm kiếm nhị phân. Nhưng nếu bạn đang thực sự hiện đang tìm kiếm không cho số, nhưng cho chuỗi, điều này thực sự được thực hiện bên dưới mui xe, có lẽ là một bảng băm, nơi bạn sử dụng hoặc một bảng băm với chuỗi riêng biệt. Hoặc bạn sử dụng một thử để thực sự lưu trữ các giá trị. Vì vậy, có thể bạn có thể làm thời gian liên tục, nhưng bạn vẫn phải nhìn vào S-Y-M-B-O-L, có khả năng, thay vì chỉ 32 bit để tìm một cái gì đó. Vì vậy, một lần nữa, những ý tưởng tương tự đến lại tái diễn trong bối cảnh này. Nhưng một lần nữa, PHP bây giờ có một số siêu toàn cục đó, nó quay ra, là mảng kết hợp. Chúng ta đã thấy một một thời điểm trước đây, $ _POST. Và siêu toàn cầu có khóa và giá trị. Cụ thể, các phím xếp hàng với những gì? Nơi nào các phím trong $ _POST đến từ đâu? , Tóm lại là? ĐỐI TƯỢNG: Tên. SPEAKER 1: Tên, ở đâu? ĐỐI TƯỢNG: [nghe được] SPEAKER 1: Tên là thuộc tính. Cũng ở đâu, nơi đã làm họ ban đầu đến từ đâu? Hình thức. Vì vậy, nếu một trang HTML có một thẻ form, trong số đó là một số yếu tố đầu vào, như kiểm tra hộp, hộp văn bản, thả xuống thực đơn, mỗi trong số đó có một cái tên, những tên kết thúc như là chìa khóa trong $ _POST, và, thẳng thắn, cho rằng vấn đề, $ _GET. Nếu phương pháp này là get, cùng một ý tưởng. Nó chỉ là trong một siêu toàn cầu khác nhau. Và các giá trị, tất nhiên, đến từ bất cứ điều gì người dùng gõ vào hoặc người trình duyệt của mình. Nhưng có một vài người khác. Có cookie, mà chúng tôi sẽ trở lại để cuối cùng. Nhưng đó là những điều mà bạn biết các trang web sử dụng cho một số tốt hay xấu. Nhưng chúng tôi sẽ quay trở lại đó. Máy chủ và thời gian tự, và hai có một số tiện ích đặc biệt. Nhưng chúng ta hãy nhìn vào điều này. Hãy để tôi đi trước và mở ra một ví dụ Vì vậy, gọi là mvc0.php MVC viết tắt như sau. Và chúng tôi giới thiệu này sớm hơn là điển hình, thực sự, để giúp bạn thiết kế Vấn đề bộ 7, và cũng dự án cuối cùng, trong loại của một ngành công nghiệp cách tiêu chuẩn, và cách sạch sẽ. Đó là thiết kế tốt. Vì vậy, bạn đang về để xem, và bạn sẽ kinh nghiệm, trong bộ P 7, mô hình, sắp xếp của một tư duy lập trình, trông một chút gì đó như thế này. M cho Model, C cho điều khiển, V là View. Long câu chuyện ngắn, MVC là chỉ loại một phương pháp, một cách làm các trang web, cụ thể, nhờ đó mà bạn đặt tất cả các, cụm từ ngu ngốc của bạn - logic kinh doanh - tất cả các tài sản trí tuệ của bạn trong những gì được gọi là một bộ điều khiển, một tập tin như index.php, hoặc chúng ta sẽ thấy, quote.php, hoặc buy.php. Trong bối cảnh của vấn đề bộ 7, của bạn mô hình thường chứa dữ liệu của bạn, bất cứ điều gì liên quan đến một cơ sở dữ liệu, như chúng tôi sẽ cuối cùng nhìn thấy, và quan điểm của bạn có tính thẩm mỹ của bạn trang web, HTML, CSS. Vì vậy, chúng tôi đã thấy điều này trong C một chút bit bằng cách sử dụng các tập tin h.. Chúng tôi thực sự nhìn thấy nó một thời điểm trước với CSS, bằng cách xem các cách điệu CSS các công cụ của HTML. Vì vậy MVC thực sự chỉ là về bản vẽ đường trên cát và nói rằng, các lập trình mã thú vị cho bạn trang web thuộc về những gì chúng tôi sẽ gọi điều khiển. Công cụ liên quan đến cơ sở dữ liệu thường kết thúc trong một mô hình. Nhưng bạn sẽ thấy, trong vấn đề thiết lập 7, chúng tôi kết hợp C và M để giữ cho nó đơn giản. Nhưng xem là nơi mà tất cả các HTML của bạn và thẩm mỹ thường đi. Vì vậy, điều này có nghĩa là trong điều kiện thực tế? Vâng, hãy để tôi đi vào MVC của chúng tôi thư mục như sau. Và bạn sẽ thấy nhiều hơn những lưu diễn qua trong spec. Vì vậy, trong mvc0, tôi cho rằng điều này là, như, 0 phiên bản của trang web của CS50. Tất cả chúng ta có một số HTML, như một thẻ h1 lớn, rõ ràng. Và sau đó là một danh sách liệt kê. Tôi chưa bao giờ nhìn thấy một danh sách liệt kê trước đây, nhưng không có việc lớn. Hãy nhanh chóng nhìn vào mã nguồn. Hóa ra một danh sách không có thứ tự với đạn mở cửa khung ul với một hoặc danh sách các mặt hàng hơn, li. Vì vậy, thông báo đây là một thẻ neo. Chúng tôi thấy rằng một thời điểm trước. Vì vậy, đây là cách tôi thực hiện trang này. Tôi đã có hai liên kết, hai danh sách các mục, một ul cho danh sách không có thứ tự, và cuối cùng Kết quả, về mặt thẩm mỹ, điều này rất trang web đẹp, phiên bản 0 đây. Nhưng điều thú vị là làm thế nào điều này được thực hiện bên dưới mui xe. Hãy để tôi đi vào gedit và mở ra này Ví dụ đầu tiên để vẽ một bức tranh. Và chúng tôi sẽ nhìn vào những gì thiếu sót, có khả năng, trong đây. Bây giờ nếu tôi đi vào localhost, công cộng, MVC, nhận thấy một vài tập tin. Tôi sẽ gọi này, cho thời điểm, tất cả các bộ điều khiển. Nhưng đó là một chút của một sự lạm dụng vì bạn sẽ thấy tất cả mọi thứ đã trộn lẫn bên trong của họ. Và để cho tôi đi bên trong index.php. Và chúng ta thấy, theo nghĩa đen, giống HTML. Vì vậy, mặc dù tập tin này kết thúc trong . Php, Nó không có nghĩa là nó phải có bất kỳ mã PHP. Nó chỉ có thể được HTML liệu, mặc dù đó là loại ngớ ngẩn. Nhưng nhận thấy không có khung mở PHP thẻ, ngoại trừ này, trong đó, thẳng thắn, chỉ là để phục vụ như một bình luận. Nhưng đó là chức năng không thậm chí là thú vị. Nhưng thông báo này. Điều thú vị bây giờ là những gì thay đổi trên trang này. Hãy để tôi vào bài giảng. Và thông báo các URL đang thay đổi. Bây giờ tôi đang ở lectures.php. Hãy để tôi nhấn không. Bây giờ tôi đang ở week0.php Và bây giờ hãy tôi mở các tập tin trong gedit. Không chỉ chỉ số, nhưng cho tôi mở ra các bài giảng. Và hãy để tôi thoát khỏi những ý kiến tập trung vào phần này mà thôi. Và bây giờ hãy để tôi mở ra chỉ một nhiều hơn, week0.php, vứt bỏ các ý kiến, chỉ để làm sạch này lên. Và bây giờ chú ý sau đây. Suy nghĩ thực sự loại cẩn thận về thiết kế, và chúng ta hãy làm cho nó dòng lên nhau, những gì có thể được thực hiện tốt hơn ở đây, bạn có nghĩ? Làm thế nào tôi làm cho một tuần? Làm thế nào về việc này. Vì vậy, đây là cách tôi thực hiện một tuần. Tôi đã đi đến tập tin, mới, Paste, Lưu, week1.php, và sau đó tôi đã đi vào đây. Và tôi đã thay đổi một - là điều này, một đến thứ Sáu. Tôi đã thay đổi số không để một. Tôi đã thay đổi này một. OK, vì vậy bây giờ nhìn vào tác phẩm của tôi. Những gì có thể được thực hiện khác nhau không? Đâu là cơ hội, có lẽ? Do đó, có cơ hội để bắt đầu bao thanh công cụ này ra. Hãy để tôi mở ra, như một cánh lướt gió, cho những gì bạn sẽ thấy trong P bộ 7. Nếu tôi mở ra, bây giờ, index.php trong phiên bản năm trong số này, có vẻ cách khó hiểu hơn, thừa nhận. Nhưng điều này, bây giờ, là những gì tôi sẽ gọi một điều khiển đó là kiểm soát logic của trang của tôi. Và bạn có thể loại tái tạo, trực giác, có lẽ, những gì đang xảy ra. Trên dòng đầu tiên, đó là một chút khó hiểu. Nhưng nhận thấy tôi đang đòi hỏi, giống như với bao gồm sắc nét, tập tin tên helpers.php. Và sau đó tôi gọi điện thoại, rõ ràng, một chức năng, được gọi là render, đi qua trong hai đối số. Là một trong những trích dẫn unquote, tiêu đề. Và hai là, loại kiểu dữ liệu là điều này, dựa trên về cú pháp của chúng tôi trước đó? Nó là một mảng liên quan. Cụ thể, nó đi qua trong tiêu đề với một số siêu dữ liệu mà nhắc nhở tôi nó là gì và giá trị của nó. Sau đó, tôi nhìn thấy một mã hóa cứng ul, vì vậy một số mã HTML. Nhưng sau đó tôi trở lại trong chế độ PHP kêu gọi một render chức năng. Vì vậy, ngay cả khi bạn chưa bao giờ sử dụng HTML hoặc PHP trước, và mặc dù điều này có vẻ đáng sợ, tại sao điều này có thể thiết kế tốt hơn? Có gì tốt hơn về nó, dựa trên suy luận? ĐỐI TƯỢNG: [nghe được] SPEAKER 1: Ít dư thừa trong đó không có thẻ HTML hơn, không hơn người đứng đầu khóa, khóa cơ thể không trong tất cả các tập tin chết tiệt. Thay vào đó, tôi đã yếu tố ra tương đồng và có lẽ là đặt chúng vào một tập tin bằng cách nào đó có liên quan để một tiêu đề. Và điều tương tự cho cơ thể gần từ khóa, các thẻ HTML gần. Đó có thể là xuống đây trong của một nơi nào đó chân. Và bạn sẽ thấy, trong vấn đề thiết lập 7, một tour du lịch nhỏ thông qua này. Vì vậy, những gì ở phía trước? Một trong những điều chúng ta không có khả năng nhưng là để thực sự lưu trữ dữ liệu. Và vì vậy những gì chúng ta sẽ bắt đầu thấy Thứ tư, ví dụ, là của bạn người bạn cũ của Excel, hoặc số, cho phép bạn lưu trữ nhiều dữ liệu trong các hàng và cột. Hóa ra bạn có thể làm điều đó trong những gì được gọi là một cơ sở dữ liệu, lập trình. hưng Và nó quay ra, sau đó, chúng tôi sẽ có thể lưu trữ những thứ như này, bạn sẽ thấy một lần nữa trong bộ P 7, một bó toàn bộ các tên người dùng và mật khẩu, thì sau đó là thực sự mã hóa, giống như họ được trong phiên bản của hacker P bộ 2. Và cuối cùng, bạn sẽ thực hiện điều này, trang web ETrade-như của riêng bạn mà thực hiện chung CS50 tài chính. Cuối cùng, vì bạn ở đây quá muộn hôm nay, nếu bạn quay trở lại phần này của trường, lúc 4:00 PM ngày hôm nay, chúng tôi sẽ cung cấp cho bạn không chỉ tư vấn, tại SCES Tư vấn cho Hội chợ, lúc 4:00 PM trong Maxwell-Dworkin, chúng tôi sẽ cung cấp cho bạn một số Americone Dream, Cherry Garcia, Sô cô la Fudge Brownie, Sô cô la Chip Cookie Dough, và khi bạn Google Khỉ mập, bạn có được điều này. Vì vậy, tất cả đang chờ đợi at 4:00 PM trong Maxwell-Dworkin. Hẹn gặp lại vào thứ tư là tốt. SPEAKER 2: Vào tiếp theo CS50, RJ ngủ in RJ: phần của tôi! Ha! Oh,