Выступающий 1: Все, прямо с возвращением. Это CS50. А это в начале недели девять. И это начало остальных Ваше время в CS50, в котором мы Переход вот, наконец, на веб- аспект курса, где вы будете обнаружите, что многие из основных принципов, которые мы экспортируем в течение недели еще вернуться, чтобы посетить, или преследовать, мы. Но теперь, вы обнаружите, что это порядок легче выполнения определенных задач и решить некоторые проблемы - да так, что даже если вы думали, определенных наборов проблемы были интересны в их собственный путь, я думаю, что вы найдете установлено, что р 7, стр. установлено 8, а затем, В конечном счете, окончательный проект будет Тем более приятно, потому что вы найти, что мы начинаем принимать как должное Сейчас такие вещи, как управление памятью и указатели и что происходит на под капотом. И опять же, тематические, в течение всего семестре было это наслоение и слоев. И теперь мы вроде до Здесь, стоя на плечи недели прошлого. Теперь вспомним с прошлого раза, что мы говорили о том, как интернет работал. И это был, возможно, упрощение, но помните, что каждый компьютер в мире имеет IP решения, хотя это немного упрощением еще. И эти адреса используются для однозначной идентификации компьютера таким образом, чтобы при отправке информации, или пакеты, если можно так выразиться, они могут иметь происхождение адрес и адрес назначения. И те же самые адреса IP может быть использован как во благо, так и для зла, чтобы отслеживать вас, например. На самом деле, каждый из вас с ноутбуком открыть сейчас, или в вашем телефоне карман, имеет IP-адрес на сеть Гарварда. И это еще не все, что трудно коррелируют, что, кто и где вы в эти дни. Но об этом, возможно, в будущем. Теперь я думал, что я вернуть часть воспоминания о [? повышения?] и дать вам Еще один ролик из шоу, которое вы могли бы найти знакомых. Если бы мы могли приглушить свет всего за несколько секунд. Показать Numb3rs. Докладчик 2: Это 32-разрядная IPP4 адресу. Выступающий 3: IPP, как и в интернете? Докладчик 2: частной сети. Для частных сетей Амита автора. Она так удивительно. Выступающий 3: Давай, Чарли. Докладчик 2: Это. IP адрес зеркала. Она позволяя нам смотреть то, что она делает в реальном времени. Выступающий 1: Итак, несколько вещей, так с этой картиной. Таким образом, один и этот один является приемлемым, это на самом деле не правильный адрес IP. Действительный адрес IP должен быть числами формы w.x.y.z, где каждый из эти письма от 0 до 255. Но это нормально, потому что так же, как фильмы, где они поддельные номера телефонов, они поддельные IP адресов. Вы на самом деле не ударил реальных серверов. Но заметьте, это браузер. И браузеры не начать вывод компьютерный код, как это. И если мы посмотрим немного глубже, обратите внимание что язык, который они видят на экране язык, называемый Objective C, который является языком в которых iPhone приложения написаны, Особенно те, с участием мелки, как вы можете видеть из здесь исходный код. Хорошо, я думал, что это было забавно. Так что этот фрагмент кода имеет абсолютно ничего общего с тем, что эта конкретном эпизоде ​​был о. Так что шутки вроде на людей принимая для этого само собой разумеющееся. Но это не все, что трудно получить эти технические подробности прямо. И я хотел бы призвать вас. А на самом деле, 50 вполне может испортить Многие ТВ-шоу и фильмы или вы потому что вы найдете, что это просто не возможно, что они делать на экране. Но на самом деле, это код, который вы могли бы видеть его в iPhone приложении или Mac OS приложения. Она не имеет ничего на всех общего с безопасностью. Так что следите за новыми такие забавные вещи вроде этого. Но сегодня мы начинаем погружаться в действительно глубоко, чтобы целый ряд языков. Действительно, одной из всеобъемлющих вынос из этой части конечно, не научиться программировать В PHP не учиться SQL как таковой, не узнать JavaScript как такового, а скорее научить себя, как учить себя новые языки, потому что, действительно, чем приступить к принятию сейчас подготовки колес от так, что после концу курса, вы не ожидаете, 20 Страница спецификации рассказать вам, как реализовать некоторые программы. У вас достаточно ингредиентов в вашей ума, и достаточно инструментов в вашем инструмент комплект, с которым, чтобы начать строительство решения проблем, представляющих интерес для Вы для некоторой группы студентов, для некоторых Исследовательский проект, или действительно ничего представлять интерес для Вас. Так что в этом направлении, вспомним, что это было картина, которую мы обратили ее в последний раз. И это два компьютера, и клиент Sever, говорить друг с другом. И протокол, язык, так говорить, что эти два компьютера происходить , говорил называется HTTP. И это только протокол, используемый компьютеров для передачи информации через World Wide Web. Интернет, конечно, является одним из сервисов , который работает на верхней части так называемые Интернет. Что другую службу доступны на верхней части Интернета в эти дни? Некоторые другие протокол или - что это такое? АУДИТОРИЯ: FTP. Выступающий 1: FTP. Так протокол передачи файлов это совсем другое. Большинство из вас, вероятно, не использовал его. Но большинство из вас, вероятно, использовали вещи, как Gchat или мгновенного сообщениями в более общем конечно, электронная почта. И те тоже являются услуги, которые работают на верхней части интернет, потому что, по крайней конце концов, сам Интернет на самом деле просто получить данные из точки А в точки В. И он использует ряд Частицы себя, один из них или два из них наиболее обычно называют TCP / IP который должен сказать, что на одном компьютере Интернет действительно может делать разные вещи, электронную почту, и Интернет, и так далее. Google делает многое из этого. Так как же эти услуги однозначно определены, мы сказали, на компьютере , что может на самом деле делает несколько вещей? Номер порта. И это только произвольные человека 80 конвенций, как это веб, 443 зашифрованной сети, 25 является электронная почта. И есть пучки другие. И эта цифра постоянно просто включены в эти пакеты информации, эти виртуальная конверте, что на самом деле содержал запроса или ответа. Так что, когда вы вернетесь ответа от Интернет, обычно, вы не видите любые Номера бы то ни было с точки зрения код состояния ответа. Вы фактически не видите внутренние работы пакетов, которые возвращаются. Но 200 действительно означает OK. А это значит, все хорошо. Возможно, вы видели кучу этих. Что, вероятно, наиболее распространенный Вы видели в Интернете? 404. Это просто значит, файл не найден. Это означает, что кто-то облажался. Вы сделали, опечаток URL, или кто-то другой не делал, давая вам Неправильный URL, или они удалили файлов и URL-прежнему используются людьми. Таким образом, любое количество причин может объяснить почему файл не найден. И вы увидите, в ближайшие недели, эти другие коды ошибок, и Вы будете воспользоваться некоторыми из них. Хуже всего 500. Если вы получаете ошибку 500 в код, который вы написано, думаю об этом как своего рода аналог сегментам неисправностей в мире веб-программирования. Это не так страшно. Но это всего лишь означает, что где-то, Ты облажался. Так что с нетерпением ждем тех. Но давайте посмотрим, если мы можем увидеть их в контексте. Пустите меня к браузеру здесь и выполните следующие действия. Так что это Chrome, который, оказывается, быть установлен в устройстве. Но больше всех браузерах днях некоторую эквивалентную функциональность. Я пойду меню в Chrome, и перейдите в меню Сервис, а я пойду для разработчика. И вы увидите, что эта маленькая панель открывается в нижней части окна. Еще одна клавиша, честно говоря, что я Обычно сам использую это кликнуть правой кнопкой мыши или управления мыши в любом месте веб- страницы и просто пойти на проверку элементов. И это не только откроет это имеет для вас. Она также будет открыт, в частности, Элементы части на левой стороне. Так что мы, конечно, видим Google. Они изменили свой логотип сегодня. Но если я прокрутите вниз до заметьте, что под элементы, вы видите то, что называется HTML, разметки гипертекста Язык и это язык что это и все веб-страницы, действительно, написаны дюйма Но это на самом деле отформатирована для нас гораздо больше читаемо чем это обычно и бывает. В самом деле, если я уменьшить масштаб, и я вместо Нажмите правой кнопкой мыши или управления выберите нажмите на странице, а затем выберите Вид Исходный код страницы, это буквально то, что Google ниспослано моем браузере. Таким образом, некоторые лица или лиц, писал Google.com с помощью этого исходного кода. Большинство это не HTML. На самом деле это язык, называемый JavaScript, который мы придем к в среду. Но то, что Chrome, и то, что каждый браузер может сделать для нас, это своего рода см. мимо всех отвлечений сумасшедшие синтаксиса и снова вставьте пробел для нас, и даже подсветка синтаксиса, или раскрасить вещи для нас. Таким образом, вы увидите, что эти так называемые разработчик инструментов, встроенных в браузеры сделает вашу жизнь так, так гораздо проще потому что вы можете изучить, с помощью этого меню Интерфейс, именно то, что основной исходный код для любую страницу в Интернете. И в самом деле, это одна из наиболее эффективные способы, чтобы узнать, как это сделать что-то новое, по крайней мере, если страница не настолько сложны, чтобы подавлять, И.С. начать ковыряться это HTML, посмотрите на его так называемые CSS, который мы приедем к биту, а также, чтобы получить понимание того, как, что программист реализованы некоторые частные Особенностью этой странице. Но технически более интересным право Ну вот, теперь, чтобы быть этим. Если я иду на вкладку Сеть, давайте теперь снимите этот. Я собираюсь нажмите на маленькую крест символ здесь, а затем перейти на другой сайт. И я просто хочу, чтобы ввести в Facebook.com. Нет HTTP, HTTPS Нет, нет WWW. Давайте посмотрим, что на самом деле здесь происходит. Enter. Теперь обратите внимание целую кучу вещи просто появились в этом нижняя панель, в Дополнительно к веб-странице , появляются в верхнем. Я собираюсь прокрутить обратно в Вкладка Сеть здесь, и я собираюсь нажмите на первую строку. То, что это инструмент собирается открыть нам является каждый из HTTP-запросов которые быстро просто вернулся и вперед между моим браузером и Facebook, сервере. И так каждый из этих строк представляет собой одно такое ходатайство или ответ один или более эти виртуальные конверт. Или в более непринужденной обстановке, это как человек как человек, клиент в ресторан, просят что-то снова, и снова, и снова. И официант держит чего его обратно по одному. Так что теперь, если я увеличить на этом, заметьте, и это будет та вещь, что вы всегда можете, и призвал играть с по своему усмотрению, потому что мы не буду перечислять все, в мельчайших подробностях. Но обратите внимание, что есть несколько суб вкладки здесь - Заголовки, предварительный просмотр, ответ, Печенье, и сроки. Я просто хочу посмотреть на заголовки на данный момент, потому что это мало ингредиентов внутри оболочки, что справочные данные добраться до и от места. Итак, сначала, позвольте мне этого нажмите, Красивый вид Источник рядом с заголовков запроса. Существует просьбой моего браузера, Хром, в данном случае, посланный внутри что виртуальные конверт. Вы помните, на прошлой неделе я вручную ввели его в то время как притворяясь браузера. Затем он напомнил сервере, что это ищет хозяина называется Facebook.com. А тут еще немного больше тайной Информация, которую мы будем махать наши руки на данный момент. Но если я начинаю прокручивать вниз в настоящее время в это окно, позвольте мне добраться до заголовки ответа. Это было то, что в виртуальном конверт, который вернулся из Facebook.com. И если я нажимаю View Source просто чтобы увидеть сырой текст из него, заметить несколько вещей. Один из них, Facebook также говорят на одном протокол, версия 1.1 его. Так что это хорошо. Но код состояния 301, переехал на постоянное жительство. Ну, и где, черт возьми, Facebook идти? Что это пытаются донести до нас? Ну, заметить здесь есть еще один заголовка с именем Местоположение. Так почему же Facebook говорят мне, что они переехал в URL, что рядом с расположением? Я забыл WWW. Так, чтобы был мой выбор. В самом деле, большинство из нас редко, возможно, введите www.whatever.com в эти дни. Но оказывается, системный администратор, как Facebook, могут настроить свои серверы таким образом что либо Facebook.com работ, или www.Facebook.com работает, или, на самом деле, любой такой префикс перед их доменное имя. Так что они сделали это для нас. И они перенаправляют нас, вероятно, для некоторых технических, некоторых маркетинговых соображений. Они просто хотят канонизировать на www.Facebook.com. Но это не совсем так. Если я прокрутите вниз здесь, давайте посмотрим, что произойдет. Это говорит мне, что мы переехал на постоянное жительство в http://www.Facebook.com. Итак, давайте посмотрим на второй запрос что мой браузер посылает. К сожалению, похоже, что Facebook переехала снова, потому что второй запрос, выбрав, что URL вместо этого, говорит, что тоже переехал на постоянной основе. И позвольте мне здесь прокрутить вниз для заголовков ответа. Куда Facebook уже нет? Так HTTPS. Так что теперь Facebook началась, особенно в свете текущих событий в последние месяцы, особенно и Также в последние пару лет , чтобы заставить всех своих пользователей, в хорошем Кстати, использовать HTTPS, которая является более обеспечить, хотя и не совсем безопасно. И вот теперь моя страница, мой браузер собирается запросить эту третью URL. И вот, наконец, мы получаем иным причинам увидеть 200 OK. Так что в мире или все эти другие строки здесь. Я буквально набрали одно, а моя браузер, кажется, просил, как 20 некоторые странные вещи. Что это? АУДИТОРИЯ: сценарии? Выступающий 1: Сценарии, поэтому другие файлы написана на языке, называемом JavaScript, которые, опять же, мы будем посмотреть немного в среду. Что еще? Таблиц стилей. Так что-то на языке, называемом CSS, который мы увидим в немного. GIF-и JPEG, и PNG, и изображения, и видео файлов - все, что веб-страница имеет, скорее всего, в виде файла. И так, что мы видим на левой стороны есть все файлы Chrome, что пришлось скачать, рекурсивно, если хотите, для того, чтобы составляют полноту странице. Итак, что мы видели несколько минут назад с Google, Если я нажимаю на элементы закладка, это, конечно, является HTML, язык, который сочиняет этой странице. Но есть пучки других вещей. Там в логотипе. Там в эти голубые-иш Значки там. И есть еще другие элементы на страницы, которые сами могут быть отдельные файлы. Так что приятно об браузера является то, что он смотрит на языке, который мы собираемся , чтобы начать писать, или вы уже начал писать на множество Р 7, рисунков , где живут эти файлы, и идет и хватает их, а также. И я не могу не подчеркнуть, даже хотя некоторые из этого может выглядеть немного тайными или подавляющее на первый взгляд, обучения программированию приложений для Интернета, это неоценимую понять, как эти мало рабочих инструментов. Это вроде как GDB как инструменты, но гораздо проще, в конечном счете, в использовании - и действительно дает вам глаза на то, что мы принимали как должное для достаточно долгого времени теперь. Так что мы можем сейчас сделать с эту информацию? Ну, давайте на самом деле взглянуть на концепции, лежащие HTML. И мы отложим, а у нас уже есть, чтобы разделах этой неделе, к проблеме установлены 7 спецификации, в некоторых из более сведения об этих языках. Но давайте посмотрим, если мы не можем нарисовать картину того, что вы должны понимать, общее здесь. Так HTML, язык гипертекстовой разметки, не является языком программирования. Что это действительно означает? Так HTML выглядит следующим образом. И некоторые из вас уже знают это. Некоторые из вас делали это в течение некоторого времени. Но давайте посмотрим, если мы не можем заполнить некоторые пробелы, а также. Так заметить несколько вещей здесь. Один из них, это просто текст. Так что это просто, как в исходном коде C, или какой-либо другой язык. Обратите внимание, что, кажется, быть образцом здесь. Там в отступы, но технически отступ просто человеческая Конвенции. Браузеры не заботится, если есть новые линий и вкладки, как мы видим, есть. Но обратите внимание, что есть симметрии здесь. Там то, что я буду называть, в верхней части Этот файл, открытый тег или начало тег, называется HTML. И потом, внизу, прекрасно выстроились вверх, так же, как мы делаем с фигурными скобками, мы видим, открывающая скобка, вперед слэш, HTML, закрывающая скобка. Так вот соответствующий близко тег или закрывающего тега для этой вещи. Вместе все внутри так называемых открытых тегов и закрывающий тег сочинять, что мы назовем элементом. И мы увидим, только в данный момент, это очень нравится узла в деревьях. Потому что, если вы думаете о сейчас углубление, которое подразумевается, здесь, вы отчасти есть, вроде бы, бабушки и дедушки узел, который называется HTML. Сколько детей вы могли бы сказать, основанное На этой картине, HTML элемент имеет? Так, вероятно, два. Одним из них является головной элемент, по-видимому. И одно это тело элемента. А почему бы и двое детей? Ну, я только отчасти выведение, что если У меня есть открытый тег головы, а затем закрывающий тег голову, это элемент. И потом, если есть еще один открытый кузов тега и закрывающего тега тела, это все равно что другого элемента. Таким образом, в том смысле, что если я как бы поворот изображение на его стороне, это как с HTML тегов, а затем голова тег, а затем тело тега, и Затем текст, привет мир, болтая от тела сам тег. Так что мы можем нарисовать картину, что может выглядеть следующим образом. Формы могут быть любыми. Но обратите внимание, что я использовал рода эллипс в верхней представлять Сам документ. Оказывается, могут быть и другие вещи внутри веб-страницы, которые я не сделанные здесь. Таким образом, мы собираемся даже повесить HTML узла прочь так называемых узла документа. А то у нас голова и тела и названия, заметьте, который вложен дальше. Я не беспокоить положить дополнительную линию разрывов внутри заголовка. Он просто чувствовал, что это становилось слишком громоздким. Поэтому я оставил его в одну линию там, с Открытое название, привет мир, закрыла титул. И тогда у нас есть некоторый текст свисающие прочь здесь. Так что это картина вернется к нас, когда мы погружаемся в JavaScript. И понимание того, что, когда вы написать HTML, как это, то, что это браузер делает? Ну, мы не должны беспокоиться о как он это делает, или с тем, что алгоритм, но в конце концов, Когда браузер получает HTML как что с Facebook или Google, он анализирует это, так сказать, он читает, с чем-то вроде FREAD, сверху вниз, слева направо, и, как понимает, о, открывающего тега, а затем закройте тега, он начинает Malloc, так сказать, узла в дереве. И когда он сталкивается, как мы уже подразумевается здесь с отступом, дочерний узел, он mallocs узлом для этой и прикреплен что к дереву. Так древовидные структуры, бинарные деревья, тройных деревья, и больше деревьев, что мы поглядели на неделю или две назад, уведомления , что тот же принцип возвращаются к нам. И тот, кто реализован, что Chrome Команда сделала, что предположительно было осуществить какой-то структуры дерева под капотом. И это само по себе, вероятно, в язык, как C или C + +, или низшей уровне языка, что мы будем теперь использовать поверх Интернета. Так что теперь, может быть, это будет больше смысла. Фактические татуировки от какой-то парень, который может сожалеть об этом в конце концов, отчасти. Хорошо, все в порядке, так что многие веб-юмора. Это на самом деле не собирается за сегодня так хорошо. Таким образом мы будем двигаться дальше. Хорошо. Итак, давайте посмотрим теперь на несколько примеров. Простейшая вещь может быть в этом. Я собираюсь идти вперед и открывать в Gedit файл с именем hello.php. И внутри здесь, я иду быстро просто сделай это, Е, цитирую конец цитаты, "привет мир". Так уведомления, и я сделаю все от меня обратную косую черту N, Я не потрудился объявить основные. Оказывается, в PHP, и много языков, вам не нужны основные функции как таковой. Вы можете просто начать писать Вашей программе. Теперь, когда я сохранить этот файл, я замечаю придется выполнить следующие действия. Я не собираюсь пользоваться косметикой, и я не собираетесь использовать PHP лязг потому, в отличие от C, не компилируемый язык. Это то, что называется интерпретированы языка, что означает, что вы запустили его в качестве входного через другую программу называют переводчиком. И эта программа читает его, сверху вниз, слева направо, и делает все, что вы скажете ей сделать. Так что в этом случае у меня есть здесь одна строка, которая говорит Е. Поэтому, когда я запускаю этот исходный код, hello.php, хотя это программа, которая бывает, удобно, которое будет называться PHP, эта программа PHP будет читать Этот файл, сверху вниз, слева направо, и он будет делать то, что я скажете ей сделать - выполнения кода, а если он не признает что-то, просто плевки его. Так что я собираюсь идти вперед и Запустить PHP из hello.php. Enter. И это еще не совсем то, что я намеревался. Ну, почему же? Ну, PHP является языком, который на самом деле разработаны, чтобы быть достаточно переплетается с Интернета. При создании веб-страниц с этим языком PHP, как мы скоро увидим, мы хотим сделать что-то вроде печати из линий, как это. Так что я собираюсь сделать это. Открывающей скобки, знак вопроса, PHP, и Сейчас я просто хочу, отступ только, чтобы держать вещи хорошие. А теперь я собираюсь сделать вопрос марка ЗАКРЫТЬ кронштейна. Таким образом, есть немного асимметрии здесь. Вы не делаете этого. И вы не сделаете косой черты, так PHP это немного другое. Но теперь, если я повторно эту программу, PHP hello.php, теперь я на самом деле получить Hello World. И мы увидим, почему это ценно. Один из них, это позволяет мне указать, супер явно, это кода, выполнить это. И это действительно то, что эти специальные теги подразумевает здесь. Но это также означает, что, если я просто делаю что-то вроде я стремлюсь сюда, что означает, что, буквально, что будет просто распечатывается без необходимости на самом деле назвать Е, или печать, или любые аналогичные функции. Поэтому мы вернемся к этому через минуту. Во-первых, давайте сделаем это. Внутри прибора, у нас есть каталоге с именем VHosts, для виртуальных Хозяева, слэш локальный хост, подсечно-общественности. Так что это немного многословный, но длинная история Короче говоря, прибор предназначен не только поддерживать C. Это также предназначена для поддержки PHP. Но он также предназначен для веб- сервер и сервер базы данных. И он предназначен, и действительно настроен, быть напоминает любой коммерческие веб-хостинга компании, которая вы могли бы заплатить $ 5 в месяц в течение, $ 100 в месяц для. Какой бы ни была услуга, он настроен быть очень похож на реальный сервер мирового производства. А что это значит, что работает на прибор ПО веб-сервера. Это, оказывается, называется Apache. Это просто свободным, и с открытым исходным кодом, и очень популярны. И мы настроили Apache знать что, если я посещаю определенный URL, с Хром или любой браузер внутри Прибор, заглянуть в этот каталог для файлов, которые запрашивает пользователь. Другими словами, позвольте мне идти вперед и делать это. Внутри моего общего каталога, я собираюсь идти вперед и создать файл именем index.html. Это дает мне вкладку здесь. И я собираюсь пойти очень быстро и идти вперед и строчить этой программе. Doctype HTML, которая на данный момент, просто Предположим, у вас есть, чтобы напечатать. Это просто тайные тега, это не действительно теги HTML, который указывает, что вот идет некоторый HTML. Я собираюсь идти вперед и воссоздать что мы видели несколько минут назад. Вот глава странице. Внутри головы было - таким названием. Поэтому мы поздороваться, мира. И тогда здесь было тело тега. Позвольте мне в тело тега. А потом здесь я также говорю, просто для ясности, привет мир. Так что это, пожалуй, простейшая возможно веб-страницей может сделать это в силе. Это синтаксически правильные. Все, что открыт закрыт. Все это приятно в стиле и с отступом. Итак, давайте посмотрим теперь, как я может получить доступ к этому файлу. Ну, позвольте мне перейти к Chrome здесь. И позвольте мне перейти к http://localhost/index.html. Так что локальный хост? Ну, большинство любого компьютера в мире, Linux, Mac OS, Windows, имеет прозвище называется локальным хостом. Так что, если вы хотите поговорить на свой компьютер - хотя, как ни рефлекторно - Вы называете себя локальный хост. Неважно, что ваш фактический компьютер называется, будь то MacBook Давида Воздух, или что-то более подробный подобное. Так что этот URL очевидно собирается использовать HTTP поговорить с локальным хостом, том же компьютере, устройство и он собирается попросить, просто взять гадать, какой файл? Index.html. Таким образом, прибор был настроен в перейти к знаю, что если я прошу за то, как index.html, ищите в папке под названием виртуальных доменов, в Папка называется локальный, в папке в нем называется общественности. Вот где все мои общественные Файлы будут. Так что я сейчас ударю Enter. И, черт побери, есть то, что запрещенная сообщение, иначе известный как 403, Числовой код для него. Так что тут не так? Ну, это не достаточно, чтобы просто положить файле внутри моей папке. Мне нужно, чтобы на самом деле сделать следующее. Отпустите меня в мой каталог виртуальных доменов, в локальный, в общественную, и пусть мне сделать Ls тире л. И есть несколько других вещей здесь для целей сегодня. Но обратите внимание на левой стороне, в следующем к index.html, мы видим только одну RW. И в прошлом, что была RW стоял? Просто читать, ни писать. Тот факт, что он говорит RW слева означает, что я, владелец этого файла, может читать или писать. Но мне нужно, чтобы все люди в мир читаете это, хотя и не писать. Так что я собираюсь изменить режим файла, CHMOD, все плюс R, чтобы дать все права на чтение файл с именем index.html. И если я сейчас Повторите Ls тире л, уведомления , что, здесь, еще несколько R в выскочили. И на данный момент, идет спекуляция более подробно. Для множества Р 7, что как раз означает, что каждый теперь могут читать этот файл. Если я вернусь в моем браузере Теперь и перезагрузите, вуаля. Привет мир. И я могу даже открыть Chrome инструменты и посмотреть, как и с Google Facebook, что есть мой HTML, отформатированные немного по-разному и раскрашенный. Если я иду на вкладку Сеть и перезагрузите страницы, заметить, что есть получить просить Chrome посылает к прибору. Там в 200, что для конкретный файл. Короче говоря, это, как все эти различные части собираются вместе. Просто так случилось, что веб-сервер мы используем сейчас не удаленных, как Facebook. Это буквально на том же компьютере, которая совершенно в порядке. Итак, что еще мы можем сделать в веб-страницу? Ну, просто, давайте ветер через пару таких вещей. Но позвольте мне идти вперед и вновь Gedit с index.html. И позвольте мне идти вперед и поздороваться CS50, сохранить этот файл, вернитесь к браузере, на самом деле изменения в восторг. Но что, если мы хотим на самом деле ссылку на что-то сейчас? Вот и получается, что мы можем иметь Ссылки в HTML, которые являются только теги собой. Это, оказывается, называется тега привязки. HREF равно https://www.cs50.net, www.cs50.net Закрыть цитаты, закрывающая скобка. А теперь давайте посмотрим, что еще будет дальше. Я открыл тега. Теперь нужно, чтобы дать ему фраза типа CS50. Позвольте мне закрыть тег. И обратите внимание несколько вещей. Хотя есть это загадочные вещи Здесь, я не повторил это, когда вы закрыть тег. Вы просто закрыть тег с его имени. И это то, что называется атрибут со значением. Атрибуты просто изменить поведение некоторых тег внутри страницы. Так что это уточнив, что гипер справки, причудливый способ сказать Ссылка на этот якорь, для этого ссылка, должны быть CS50.net. И текст, который мы хотим показать пользователь не URL, что сырой, а скорее Слово CS50. Так что если сейчас я перезагрузить, позвольте мне увеличить для ясности, позвольте мне перезагрузите страницу, заметить, что у нас есть эта старая школа синие подчеркнутые ссылки. И если я навести на нее, и это будет быть жестким, чтобы видеть, в левом нижнем углу углу экрана, заметит что он говорит, адрес, на который Я собираюсь пойти. И если я щелкаю, вуаля, Сейчас я создания веб-страниц. И мы привели себя на главную страницу. Но обратите внимание на то, что потенциал Тем самым нам. Безопасность очень много в моде в наши дни. Что делать, если я вместо этого сказать что-то вроде: это, и я вместо этого пойти, скажем, давайте см., fakeCS50.net. Перезагрузите данную страницу. Итак, заметили это все еще выглядит, как я Не собираюсь CS50, если проницательный глаз заметите, что я собираюсь поддельные CS50. Я предполагаю, что эта область не принимается. ОК, так что это не доступно. Так что это хорошо. На самом деле никто не имеет этого домена. Но давайте быть немного злее потому что это как-то глупо. Что, если мы изменить это на Paypal. А что, если мы называем это, вроде бы, www.paypal.badguy.com, независимо от домена. Это, вероятно, существует. Так что теперь позвольте мне перезагрузите страницу. А вот у нас вроде фишинга атаки, P-H-I-S-H-I-N-G, который является глупо слово, данное для атаки, Рыба пытается информации, или, лучше сказать Тем не менее, деньги, из людей, обманывая их в предоставлении информации, что они не могли бы сделать. Это выглядит совершенно законно, правильно? Я должен иметь ссылку здесь, чтобы Paypal.com. Справедливости ради, если я сексуально его с некоторыми графики, мы можем сделать это выглядеть больше похоже PayPal. Верно? Потому что я мог, как в сторону, Я мог пойти в Paypal.com. И мы только что видели, как я могу см. все свои HTML. Я мог бы просто скопировать его и воссоздать Эстетика Paypal, а не идти старой школы здесь. Но обратите внимание, конечно, и это немного еще небольшой, только в нижнем левом углу, как в 10 пунктов шрифт, вы видите то, что вы URL самом деле будет привело. И поэтому, если вы когда-либо получали спам говоря идти вперед, а ты счета был взломан. Пожалуйста, нажмите на эту ссылку и сообщите нам Ваш пароль, мы можем гарантировать, что вы Вы, никогда не делайте этого. Эти вещи должны пойти, не говоря. Но это удивительно забавным, и трагическая, как каждый год это, кажется, случается, некоторые ненулевые количество людей. И в этом вся прелесть фишинговых атак. Вы можете отправить миллионов писем. И даже если 0,01% людей, на самом деле нажмите на Paypal и дать вам ваши пароль, это все еще ненулевое число людей, которые уже просто дать вам свои деньги. И отправки электронной почты, конечно, вполне легко и, по сути, бесплатно в эти дни. Такая длинная короткая история, прекрасно Красивая идея, не так ли? Много лет назад, это был самый ранний Интернет, позволяя паутине гиперссылки между ресурсами. Но так быстро, это может быть использоваться для больных целей. И электронной почте, достаточно сказать, эти дней, обладают встроенным HTML внутри. Ну, позвольте мне еще одну вещь. И мы отложим в значительной степени к разделу Проблема задать семь, чтобы позволить вам изучение частностей. Но позвольте мне идти вперед и сделать несколько вещей. Я собираюсь пойти и объявить то, что называется DIV или деление, на этой странице. Позвольте мне близко, что тег DIV. И я собираюсь сказать, до Здесь верхней части страницы. А потом ниже этого, я собираюсь сделать что-то вроде другой DIV, закройте это тег и сделать внизу страницы. И давай его сохранения. Итак, теперь давайте вернемся к моему файлу. Очень восторг. Но то, что разделение используется для, под капотом, это на самом деле хороший структурный элемент. Это не имеет эстетики так далеко, мы можем видеть, кроме, по-видимому, положить вещи по-новому. Но обратите внимание, как в сторону, просто нажимая Введите не режет его в HTML, как это делается в С. Можно подумать, что это собираются поставить хороший большой разрыв между верхней и нижней части страницы. Но оно игнорируется. Пробелы по существу игнорируется в веб-страниц кроме первой пробел характера, или возврат каретки, что вы попали на клавиатуре. Если вы хотите больше разрывов строк, вы должны определить это самостоятельно. Так что я собираюсь сделать несколько вещей здесь, чтобы показать, что происходит. Я собираюсь добавить атрибут, который существует, и снова, как вы узнаете какие атрибуты существуют, какие теги существуют, действительно, сейчас на ссылках. HTML является своего рода язык - это не является языком программирования. Это язык разметки, - что после добрых полчаса, может быть, час с его, вы, безусловно, понимаем, большинство вероятно, основная идея. И тогда поиск Google от отеля находится все возможных тегов, которые вы могли бы быть заинтересовать И в спецификации, что является довольно приветствуется и поощряется здесь. Так что теперь позвольте мне идти вперед и сделать что-то вроде этого. Цвет фона. И теперь, я собираюсь сделать что-то как красный, точка с запятой. И вы можете сделать это в несколькими различными способами. Я просто вид введя его как супер явно насколько это возможно. Но оказывается, что это значение здесь то, что называется CSS, каскадные таблицы Листы, что является еще одним языка в целом. CSS не имеет ничего общего с открытые теги и закрывают теги. Это связано со свойствами. И свойства просто ключевое значение пар, так как некоторые слова, толстой кишки, а затем некоторые другие слова. И если у вас есть несколько из них, или просто один здесь, вы можете закончить его точка с запятой, просто для ясности. Но это тоже будет работать здесь. Теперь то, что это будет делать? Вы, вероятно, догадываетесь. Позвольте мне идти вперед и перезагрузите данную страницу. И теперь это действительно идет. Так что первое, что пришло страница красным. Но то, что ключевым здесь является то, что я упомянул, ранее, что дает вам DIV Разделение страницы. И это действительно то, что он делает. Это существенно делит страницу в прямоугольник, который затем можно манипулировать. И это понятие прямоугольников вида убедительными в том, что если вы думаете о Наиболее любого веб-сайта, там, наверное, некоторые структуры к нему. Большинство из вас, наверное, редко можно увидеть Facebook домашнюю страницу, если вы вошли за все время. Но на главной странице Facebook, есть своего рода дел в верхней части. И это может быть не так просто, как один DIV, но есть прямоугольную область там. Остальная часть страницы, как огромный DIV, как много большую прямоугольную область. Так короче говоря, только при наличии этих маленьких строительных блоков, способность моделировать вещи, как прямоугольники, ли широкая или узкая, вы также можете сделать колонки потенциально, позволяет выложить страницах, на самом деле, однако вы хотелось бы. Мы действительно просто царапать Поверхность здесь. В самом деле, если я сделаю один другого, Позвольте мне пойти дальше и сделать стиль, фонового цвета, мы будем делать то, как синий, близкий кавычки. Давайте перезагрузить. Так что теперь это становится еще более уродливой. Но теперь я могу вид хвастаться мой P установил пять навыков, правильно? Красный. Это напоминает мне о RGB, красный Зеленый Синий троек. Что ж, оказывается, в веб-программировании, или веб-дизайн, который этого, у нас не запрограммирован ничего как такового, вы можете на самом деле есть шестнадцатеричный код. Так что-то что-то, что-то что-то, что-то чем-то. Таким образом, вы можете иметь шесть шестнадцатеричных символов или три, в некоторых случаях и каждая из этих знаков вопроса Должно быть шестнадцатеричных цифр, от нуля до F. Если я хочу иметь много красного, и Нет зеленый, и не синий, что противоположное нулю при использовании HEX? Это ф. Так что я могу сделать, и далее, ноль-ноль, ноль-ноль, сохранить, и теперь приехал сюда. И я на самом деле не видят изменений. Так кавычках "красный" является по-видимому синонимом для всех красных, Нет зеленый, не синий. Между тем, давайте сознательно изменить этого должно быть что-то случайными, как ABCDF. Давайте посмотрим, что это такое. Это действительно хороший синий, На самом деле, Baby Blue. Ладно, так что это только сейчас несколько случайных комбинаций символов. Поэтому мы не будем вязнуть здесь. Но опять же, это говорит о точности что вы можете начать применять - даже если вы очень перегружены по эстетике. В самом деле, если вы действительно хотите быть впечатлило, позвольте мне идти вперед и изменить размер шрифта, например. И обратите внимание на точку с запятой, которая Необходимо там. Размер шрифта, мы можем быть просто смешно Здесь, 96 точки. Сохраните это. Ничего себе, это большой размер шрифта. Ладно, так что это очень легко. А на самом деле, вы, по сути виде первых веб-страницы я сделал лет назад, когда я впервые узнал этот материал. Это очень легко сделать очень ужасные вещи быстро. И если вы знакомы с Wayback Машина на archive.org, вы можете найти все мои отвратительные страницы веб-старшекурсника. Надо было Кермит Лягушка на передней панели. Я прошел через этап, когда я думал, это было круто взять фоне красный занавес, когда я узнал, как вы изображения могут плитки снова, и снова, и снова, чтобы заполнить страницы с большой липким красным занавесом. И потом, на вершине этого, была икона что нужно было нажать, чтобы войти в мой дом страницу, так как это было очень в моде. А потом моя первая программа, которую я написал не было в PHP, но на языке, называется Pearl, написала гостевой книге, которая это действительно здорово, что Многие люди ожидают, что вы иметь на главной странице. Когда вы попадаете на страницу, они хотят, чтобы вы войти в систему, и сказать, кто вы, и почему вы там. Это очень 1990-х годов стиль веб-дизайна. Но в эти дни, конечно, у нас приходят намного дальше. И вы увидите, в разделе, и даже в задаче задать семь, по Используя библиотеки в эти дни, это гораздо легче сделать красивее вещи быстро. Здесь на самом деле, мы просто царапины поверхности того, что вы можете сделать стилистически. И в самом деле, уже, позвольте мне подчеркнуть, что это уже становится уродливым, не только эстетически, но с точки стиля моего кода, или дизайн моего кода. Я в настоящее время comingled HTML, которая является зеленовато открытые теги там, с CSS свойства, которые является абсолютно законным. Это действительно, где язык имеет свои истоки. Но в интересах чистого дизайна, так же, как мы начали факторинг вещи C из файлов в. файлы ч, не говоря меня на самом деле практикуют такую Принцип и начать делать это вместо. Позвольте мне сказать стиля тега здесь, которая существует и в HTML, и позвольте мне указать следующие. Позвольте мне удалить эту. Цвет фона будет красным. Я собираюсь удалить это полностью. Я собираюсь избавиться от стиля атрибут, а я буду однозначно идентифицировать этот DIV со словом - произвольно, но разумно, цитаты конец цитаты "сверху". И ID является специальным атрибут, который однозначно определяет определенный элемент HTML как имеющие, что ID. Если сейчас я хочу это стилизованная, здесь, в глава моей странице, внутри стиль тега, заметить, что Я могу сделать хэш вершине. И тогда я могу поставить пару фигурных скобки, напоминающий C, а потом пусть Мне вставьте в этой стилизации. И позвольте мне идти вперед и предвидеть здесь куда я иду с этим. Позвольте мне также создать один для нижнего дел. Позвольте мне захватить этот отвратительный код вниз Здесь, положил его здесь, и я буду немного больше анальный сейчас и это стилизованные просто положить на вещи сами по себе линии, заканчивая точкой с запятой. Позвольте мне избавиться от стиля тега. Но я еще не закончил. Мне нужно сделать еще одну вещь. Да, идентификатор равен кавычках, "дно" или что ID я хочу дать этому элементу. Теперь, позвольте мне вернуться сюда. И это ужасно. Я не могу иметь дело с 96 точкой. Давайте сделаем 24 точки. Или вы могли бы быть более точным. Вы можете использовать пикселы, PX, поэтому что вы действительно получите тонкое зерно контроль над вашей странице. Как в стороне, это не обязательно Лучше всего, если пользователи, для доступность причинам, хотят иметь возможность увеличить размеров. Так понимаю, что есть способы сделать вещи, которые не обязательно все жесткие кода. Ладно, так что это больше, 24 точка, чем все, что по умолчанию. Но теперь это немного чище. И позвольте мне сделать еще один шаг вперед. Так же, как идея файлы заголовков, заметить, что мы на один шаг ближе к этому. У меня есть вынесена, но еще осталось, Внутри моей странице, те правила CSS. Почему может я хочу сделать еще один шаг Кроме того, удалить эту в целом, и положите его в отдельный файл? Так что я могу использовать его, не так ли? Это просто какая-то интуиция Прямо сейчас. Раньше я утверждал, что это было просто получать уродливые имеющие стиль атрибуты внутри ДИВС себя. Но только отчасти думаю, что до конца. Как вашей страницы все дольше и дольше, если Вы приобрели здесь, и здесь, и здесь, и здесь, все эти различные цветов и размеров шрифта и другие подобные атрибуты, ваша страница очень быстро собирается стать неуправляемой для вас. Если кто-то приходит к вам и говорит, ой, вы знаете, что? Я бы очень хотел, чтобы изменить размер шрифта два дополнительных очков, вы возможно, придется пойти и найти и заменить Огромное количество строк кода. Это гораздо более привлекательным для централизации все такие эстетики здесь. Но если вы хотите повторно использовать те эстетику в нескольких веб-страниц, все Чем более привлекательны для, для Например, создайте файл называется с тех содержание. И позвольте мне сделать это. Сохраните этот файл. Я говорю styles.css, произвольным, но обычные. Я поставлю его в доме Джона Гарварда каталог сейчас для простоты. А что я могу сделать в моей веб-странице, это получить избавиться от стиля тега в целом, и несколько unintuitively, используйте ссылку тег, который не дает вам ссылку в гиперссылки, интерактивные смысле, но где я говорю ссылке, HREF равно styles.css. И отношения, что этот элемент была с веб-страницы в качестве его таблицу стилей. Итак, как же я узнаю это? Один из них, вы только что прочитали руководство, или вы Google вокруг, и вы смотреть на различные ресурсы. Я хочу сказать, что действительно, как вы поднимаете методов, как это, и в соответствии с этой идеей преподавания себя новые языках, опять же, вы обнаружите, что есть только конечное число вещей на любом языке, который, как только вы получите их, вы увидите, что он получает все быстрее и быстрее писать. Действительно, изучение нового программирования язык намного быстрее, чем новые разговорный язык, потому что эти вещи гораздо меньше, и многое другое точно определены. Но я выделил немного аномалии здесь. Почему я выделил эту косая черта здесь? Потому что я должен закрыть тег. Я должен закрыть тег. И вы найдете огромный объем ресурсов Интернете, которые не обязательно закрывают теги. И реально, это не совсем необходимых для технического и есть Причины реальности, браузеры просто довольно терпимы ошибок в веб- Страницы, к лучшему или к худшему, но в основном хуже. Так что здесь просто экологически чистых способов сказать что-нибудь глупое, как это, где, если вы хотите открыть ссылку тега но закрыть его, нет действительно никакого понятия содержания для связи тега. Это просто означает, загрузить этот файл и положить его здесь. Это как резкие включить в C. Вы можете открывать и закрывать тег все сразу в пределах одного тега. И есть другие примеры. Это не способ сделать это, но бр тегов, для разрыва строки, если я действительно хотели добиться того, что я был пытаются перед нажав Enter, если Я явно говорят строки, строки, строки, строки, и перезагрузить страницу, в настоящее время вы заметите, что внизу страницы есть, В самом деле, гораздо дальше вниз в в нижней части страницы. Но даже это может быть сделано намного больше чисто с CSS, и с полями, и с другими такими эстетическими методов. Так что на данный момент, являются вынос этого. В HTML, у нас есть эти вещей, называемых тегами. В CSS, у нас есть эти вещи называются свойствами. Мы можем comingle этих двух языков, либо с помощью атрибута стиля, или стиль тега, или еще лучше, факторинг его в целом, как мы это делаем В задачу, поставленную 7. Вопросов, то, о концептуальные основы здесь? Зала: У меня вопрос. Выступающий 1: Ой, простите. Зал: А почему он не был цветным - Выступающий 1: О, В другой вкладке? Это здесь? АУДИТОРИЯ: Нет, это как - Выступающий 1: О, это потому, что Я был небрежен. Я положил файл в неправильном месте. Так что, если я на самом деле положил его здесь, и я CHMOD это все + R для styles.css и Теперь перезагрузить страницу, теперь мы получить стилизацию назад. И потому, что размеры шрифтов разные, мы не видим в той же степени пробелов. Вместо этого мы посмотрим, что умолчанию вместо этого. Хороший вопрос. Да? Зал: А почему это связь тег внутри заголовка? Выступающий 1: Почему ссылки тег внутри заголовка - Короткий ответ, просто потому что. Это то, что было принято решение. Вот где ссылка теги идти, когда у вас есть то, что называется Внешняя таблица стилей. Другие вопросы? Хорошо, ну давайте сделаем это. Мы так весело перед нами сегодня. Вот только царапины поверхность CSS. Давайте сделаем это. Давайте пятиминутный перерыв здесь , потому что, на мой e-mail, давайте висеть в там до 2:30-иш сегодня. Но если у вас есть, чтобы оставить, это нормально. Но мы будем двигаться вперед после пятиминутным перерывом. А мы будем знать кое-что о PHP, MySQL, и многое другое. Ладно, давай попробуем, сейчас, чтобы связать Некоторые из этих идей вместе и сделать, разумеется, наш собственный поисковик. Я заметил, весьма любопытно, следующем. Когда вы находитесь на Google.com, ты как правило, на адрес, такой как этот здесь с ничего после точка ком. Но если я ищу что-то глупое, как Кошки, и нажмите ввод, то мы получим - не глупо, но вы знаете. Итак, заметили, в верхней части страницы Теперь, адрес или она, конечно, изменены. И это далеко не все, новое для любого из нас. Вы нажимайте на ссылки и прочее происходит в Интернете. Но что здесь интересно состоит в следующем. Там целая много беспорядка, но пусть мне выбросить вещи, которые я не вполне понимает или не действительно выглядят актуальными. Позвольте мне избавиться от этого. Позвольте мне избавиться от этого. И позвольте мне просто избавиться всего этого. А теперь обратите внимание, что кошки в URL, следуют с Q, то равных знак перед ней. Вот и получается, это, как Как это работает, когда речь идет на входе и выходе. Мы давно говорили о черные ящики, не так ли? Так что, если это функция, выполняемая Здесь, как черный ящик, он принимает входные и производит выдачу, ну, значит, с помощью которого вы внести свой вклад в Веб-сайт является путем, часто, его URL. Вы просто поставил знак вопроса а затем ключ равна значению. И тогда, возможно, амперсанд, а затем Другим ключевым равна стоимости, то, возможно, другой амперсанд, ключевые равна значению. Вот как вы передаете ключи и значений, пары входов. Так что, если я ударил Введите Теперь, что интересное о Google в том, что все , которые загромождают я удалил не появляется строго необходимым. Все что мне нужно отправить Google является вопрос знак Q равна кошек, чтобы получить назад некоторые кошек. Ну, смысл этого, то, если я подтянуть Gedit, я начал сделать мои собственные поисковой здесь в файле с именем seach0.html. И позвольте мне идти вперед и удалить еще одна линия, что вы не должны были видеть. А теперь, отпусти меня в мой собственный браузер, так, чтобы не Google, и перейти к http://localhost. И что происходит, чтобы получить в пути. Итак, мы собираемся иметь, чтобы сказать до свидания что на данный момент, переместить этот здесь, О, теперь мы собираемся должны Попрощайтесь с файлом. Всякий раз, когда у вас есть файл с именем index.html или index.php в каталог, если веб-сервер настроена таким образом, что вы будете видите, по умолчанию, является содержание этого файла, а не перечнем каталог, как я хотел здесь. Подробнее об этом в спецификации. Вы не видели этого. Так это то, что я на самом деле хотел. Но минуту назад, был файл в этой папке index.html и index.php. И поэтому веб-сервер был показывал мне эти файлы. Вместо этого я хочу этого каталога перечислены здесь. Так что я собираюсь идти в CSS и перейти к search0. И я утверждаю, что это он будет начале моей собственной конкурентоспособной поисковой системе. А для этого, я собираюсь пойти в Сюда, в CSS, и открыть с Gedit, поиск 0. Но, к сожалению, есть не так много здесь происходит. Все, что я делал, было использовать тег заголовка, который , случается, называют h1, которая по существу означает большой и смелый, и этим все сказано. Но средства, с помощью которых мы можем обеспечить входы через эти что называется формами. Итак, позвольте мне идти вперед и открывать и закрывать, превентивно, а тег формы там. И позвольте мне идти вперед и делать что-то вроде этого. Вход, типа равна текста. А потом давайте закроем теге сами скобки. Мне не нужно, чтобы начать текстовое поле и остановить текстового поля. Это просто будет там или нет. А потом, что ниже, давайте сделаем Тип входа равна представить. Сохранить. А теперь давайте просто сделаем быстрая проверка исправности. Давайте перезагрузить. Хорошо, таким образом, это не плохо. Это не в стиле Google, но это довольно близко. Там в текстовом поле. Я могу напечатать некоторые вещи в, нажмите Enter, но ничего не происходит пока. И это потому, что я не указал действие для этой формы, так сказать. Так что, если я вернусь в элемент формы, Оказывается, и я знаю, что это только от прочитали документацию, что Форма метка имеет атрибут называют действие, которое URL веб-сайт, к которому необходимо отправить форме. Я действительно не думаю, что у нас есть время осуществлять весь конца назад для поисковой сегодня. Таким образом, мы просто будем говорить, а, перейти на google.com / поиска. А теперь позвольте мне в моих цитат. И позвольте мне указать, что дальнейшее метод, используемый собирается называть получить. Короче говоря, есть два пути, по крайней мере, что вы можете подать информацию от браузера к серверу. Один из них получить, и для целей сегодняшнего, это просто означает, в URL. Вы видите точно вопросительными знаками, знак равенства, и что амперсандах мы видели ранее. Или есть альтернатива называется пост. На данный момент известно, что пост часто используется когда вы хотите, чтобы загрузить файлы, например, изображения и т. д., или когда вы хотите представить информацию о кредитных картах, или пароли, все, что он не действительно имеет смысл, концептуально, или Мудрая безопасность, в конечном итоге в адрес ваш браузер, когда родители слежка, или соседей по комнате, или у кого есть доступ на компьютер, может видеть. Так давайте сохраним это здесь. И мне нужно сделать еще одну вещь. Это не достаточно просто сказал, дают мне текстовое поле. Я должен дать этого поля цените имя. Так что позвольте мне взять выбор Google о имена, Q, и указать, что второй приписываем Я действительно не заботятся о Название кнопки Submit. Все, что я заботятся о представлении что пользователь вводит дюйма А теперь это вроде уродливой. Он просто говорит представить. Оказывается, и я знаю это от документацию, я могу на самом деле сказать значение равно кавычках "CS50 Seach, "близкие цитаты. Тогда давайте еще раз перезагрузить. Так что я бьют Command-R или Control-R на клавиатуре, чтобы перезагрузить. Теперь у нас есть более интересные поисковой системе. Однако это не совсем похожи Google же, все же. Так что давайте идти вперед сюда и сделать небольшой перерыв линии. Итак, теперь у нас есть Google. Мы на самом деле почти меня есть Google. Так что теперь произойдет? Я собираюсь ввести в чем-то как кошки. И браузер будет разобрать эта форма, что я определен. И он собирается отправить пользователю, что URL. Поэтому в этот раз, для некоторых любопытных причин, Я получил больше информации о запасах , чем о реальных кошек. Но это нормально, потому что мы все еще замечают закончил здесь, Q равна кошек. Такая длинная короткая история, кажется, довольно тривиальным, чтобы получить входные данные от пользователя. И быть справедливыми, есть пучки других типов полей формы. Там в флажков, и мало взаимно эксклюзивные кнопки радио и выпадающие меню и многое другое. Но все эти являются относительно легко реализована в виде это текстовое поле было. И в конечном счете, мы просто должны сделать уверен, что кто-то слушает на другой Конец линии для того, чтобы получить, что обрабатываемой информации, так или иначе, и верните нам наши кошки. Давайте посмотрим на несколько Более сложный пример. Отпустите меня в мой каталог Vhost автора, в локальный хост, общественных, и где я положить исходный код сегодня. Все это будет на курсы Веб-сайт для вас, чтобы возиться с. И если я иду в froshims, позвольте мне открыть этот файл сейчас, froshim0.php. Это одна немного более многословным, так мы не будем писать это с нуля. Но только заметить теперь несколько несколько знакомые характеристики. Один из них, тег формы, различные действия. Это не полный URL. Теперь, это видимо, файл с именем register0.php потому, что в момент, Я собираюсь научить себя немного что-то о PHP, программировании языка, так как PHP может быть использован для осуществить то, что Google реализован в виде задней части их поисковыми системами. Google, на самом деле, вероятно, использует некоторые Python, некоторые C + +, и пучками других языках. Но мы, безусловно, может реализовать поиск результатов с помощью PHP, если мы хотели. Но пока, мы будем держать его проста. И это на самом деле напоминает одну других первых сайтов я сделанный лет назад. Еще в свое время, ты зарегистрирован в очной спорта, как на первом курсе по заполнив бумажку, ходьба через двор, и, положив его в почтовый ящик в Proctor Wigglesworth, и это было, как вы зарегистрирован. И так мой проект вскоре после того, CS50, было поставить, что, что делает идеальным смысле на полотно, которое не было как и в моде, то, как сейчас. Но все, что нам нужно было создать, По существу, HTML формы. И эта форма выглядела примерно так. У меня был вклад в Имя новичка. У меня был другой флажок или они или не хотел быть капитаном, то, что их пол был и то, что их общежитие было. И тогда я жестко в вещах как Apley суда и Canaday, Серые, и так далее. Итак, еще раз, новые теги. Давно не видел их прежде, новое атрибутов, но довольно доступным. Как только вы видите, например, вы можете вида из заимствовать эту идею и сделать падение меню для большинства ничего. Но то, что ключевым является то, что каждый из эти вещи имеют имена. А внизу этой формы, есть кнопку отправки, метку, или ценность, регистр. Так что давайте идти на эту страницу. Позвольте мне вернуться в каталогов. Отпустите меня в froshims, и перейти к froshim0.php. Так что это отвратительное, чтобы быть справедливым. Так что я мог определенно стилизовать эту с некоторыми CSS, я мог бы сделать некоторые графика, может быть, добавить некоторые цвета, и сделать это красивее. Но функционально я бы утверждать, что это на самом деле довольно полно. К сожалению, когда я заполняю это, Дэвид, капитан, Мужской, мы выберем, скажем Matthews, регистрации, все, что происходит это. Но заметим пару вынос. Один из них, какой файл вернулись те, Результаты, по-видимому? Так что это, действительно, register0.php. Тот факт, что мы увидели, что действия Значение минуту назад для register0, это подтверждает, что мы действительно закончилась до в тот конкретный файл. Теперь это просто безобразно текста. Но обратите внимание, что этот текст является Исходя из локального хоста, который из устройства. Подумайте о прибор сейчас, как только веб-сервер, который может быть в Научный центр. Это может быть на фактических веб. Так что это публично доступны. Итак, ясно, есть некоторый способ передачи полей формы входа на сервер так что он может что-то с ними делать. К сожалению, register0 довольно глупо. Все это делает распечатать массив который выглядит следующим образом. И это не массив в смысле, что мы ее знаем. Оказывается, PHP, и много языков, не только численно индексированные массивы, Первый индекс нулю, то один, то два, то точка, точка, точка, N минус 1. Это то, что называется ассоциативный массив. Ассоциативный массив, при которой Вы можете хранить пар ключ-значение, где ключа не обязательно является числом. Это на самом деле может быть строкой, словом. И так что это может быть реализовано, под капотом, оказывается, использованием структуры данных, известных как? Мысль что-то драматическое должно было произойти - хэш-таблицу. Так хэш-таблицу, напомним, те из вас, кто это сделал для P набор 6, или даже вспомнить это, по крайней мере, даже если вы сделали попытку, хэш-таблицы, на наш использовании, были использованы для просто хранить слов. Но на самом деле, вы хранили ключей и значений. Если вы реализовали хэш-таблицу для P набор 6 словарь, ключи были сами слова, а значения были фактически истинными или ложными. Да, здесь, или неявно, Нет, не здесь. Ну, мы можем обобщить эту идею. И мы могли бы использовать очень похожие данные Структура хранить не строка Сам одиноки в вашей хэш-таблицы, но Предположим, что в каждом из ваших хэш таблицы узлов. А вы могли бы сделать это даже в попытке , а не просто логическое. Вы могли бы что-то другое. Что делать, если ключ не был Максвелл, для например, но в кавычках "имя", или кавычках "капитан". И внутри С вашей структуре данных, вы помещаете значение, а не только логическое, но и стоимость как в кавычках "Давида", или "M" или "Matthews", и так далее. Так что те же структуры данных мы использовали видимо существуют и в других языках. И я бы утверждать, что они на самом деле много, гораздо проще получить доступ здесь. Давайте на самом деле взглянуть Сейчас в какой-то такой синтаксис. Я собираюсь пойти в каталог PHP. И я собираюсь открыть лучше версия привет-0, чем прежде. Обратите внимание, что все, что я делал, было добавить некоторые комментарии. Итак, мы можем избавиться от этого безумия. И эта программа действительно печатает привет, потому что я указал между тегов, которые я хочу выполнить этот код. Теперь мы увидим в момент почему это полезно. Но давайте откроем один пример здесь. Позвольте мне идти вперед и открывать сказать, Gedit условий один. Это путь назад в время. Но неделю назад, я думаю, в неделю один или две недели, у нас был пример называется conditions1.c. И я решил реализовать его в PHP, просто вид подчеркнуть, что PHP, синтаксически, почти идентична и C. Это не огромный скачок с прошлой недели на это. Обратите внимание, в верхней части этой программы, которая начинается, как и раньше, с некоторыми комментарии, которые Я избавлюсь как отвлечение. Заметьте, что я нахожусь в PHP Режим в этом файле. Так что этот код, мы увидим, будут выполнены. Обратите внимание, что есть Readline, который, вероятно, аналог в PHP из GetString. Обратите внимание, что это немного разные. Реально задается запрос на Функция называется читать линии, и это что видит пользователь. Таким образом, вы не должны Е вручную. Но это не имеет большого значения. Я собираюсь хранить, внутри $ N, вернуть значение этого, так что все пользователь вводит является их Int. А вот еще любопытство. Оказывается, в PHP, любая переменная просто должен иметь префикс со знаком доллара. Это немного раздражает. Но обратите внимание, что я не сделал в PHP. Чего не хватает в левой руке стороны от знака равенства? Никакого упоминания о типа. Так что это отличается от C. Для лучшего или к худшему, PHP является свободно типизированных языках. У него есть цифры. У него есть строки. У него есть логические. И у него есть несколько другие типы данных. Но вы, программист, как правило, не должны заботиться о них. Верх этого является то, что он делает это немного легче программировать. Вы можете думать немного меньше. Недостатком является то, оно также открывает вам до потенциальных ошибок, если вы случайно лечения ряда в виде строки, строка как число, потенциально, но даже Затем, PHP, и много языков, довольно терпимо. Они будут использовать то, что называется неявной. И если вы пытаетесь использовать N в контексте числового ситуации, он будет превращает то, что здесь будет строкой, потому что, если пользователь вводит что-то, и вы получите результат, Как и Readline, или получить строку, что собирается возвращать строку. Но обратите внимание, пару строк спустя, я проверить, если N больше нуля. Итак, PHP будет неявно приведен мой "Строка" 123, или любой другой пользователь типы, в Int. Короче говоря, вещи просто работает намного больше интуитивно. Таким образом, теперь начинают расслабляться несколько вещи, которые мы сделали в прошлом. Многие этот материал то же, все же. Все еще равных равных. Как в сторону PHP также равна равна равных, но об этом, пожалуй, в будущем. Это было. Опечатка, а два знака равенства означает то же самое , что и раньше, для сравнения. Е означает то же самое, как раньше. Обратная косая черта N означает то же самое , что и раньше. Так как я могу запустить эту программу? Ну, как и раньше, если я делаю PHP, conditions1.php и введите число, например 123. Это положительное число. Если я печатаю в 0, я выбираю 0. И если я печатаю в отрицательной 123, я получаю Резервное отрицательное число, которое является только сказать, синтаксически, PHP супер, супер похожи. Так почему же это сейчас полезно в веб-контексте? Ну, давайте вернемся к этой froshims Например, который выглядел, опять же, как это здесь. И давайте на самом деле подтянуть веб-страницы снова, которое выглядело так. Что мы можем сделать с данные, которые представлены? Ну, позвольте мне открыть новые версия этого. И вы увидите, что проблема наборы спецификаций проведет вас через несколько из них. Вместо того, чтобы начать с нуля, давайте посмотрим на froshims3, который делает немного больше. Обратите внимание, во-первых, на самом деле, давайте откроем от того, что было 0, так что вы видите то, что было регистра 0. Обратите внимание на то, что сделал регистра 0. Один из них, у меня есть комментарии в начале. Удаляем их и сосредоточиться только на этом. Большинство содержимое register0.php , очевидно, на каком языке? Просто сырое PHP. Так уведомление, этот файл не запускается с, на данный момент, открывающая скобка, Вопросительный знак, PHP. PHP действительно позволяет смешиваться PHP кода с HTML тегами. Но я сделал это здесь, внутри на странице здесь. Теперь, опять же, вы только знаю это из посмотрев на руководстве. print_r, Оказывается, это print_recursive. _recursive И это только удобный функции полезности, который просто выводит, рекурсивно, что бы вы передать его. Если вы вручаете ее массивом, это будет печати массива. Если вы передать его номер, он будет печатать числа. Передайте ему строки, он будет печатать строку. Если вы передать его хэш-таблицу, она выведет хэш-таблицу. Вам не нужно писать все этого кода самостоятельно. А теперь обратите внимание, что я вхожу PHP режиме здесь. Я выходе PHP режиме здесь. Поэтому, когда веб-сервер читает этот файл сверху вниз, слева направо, потому что она заканчивается в имени файла называется. PHP, все, что не внутри тегов PHP является просто будет коса из, как сырые HTML. Никакое грандиозное предприятие. Но как только веб-сервер замечает это, он скажет, что я не должен выплюнуть, буквально, print_r пост. Я должен выполнить следующие строки кода. Таким образом, последний вопрос, то, этот файл , ну, что же такое это? Сделать предположение. Что такое $ _POST, наверное? АУДИТОРИЯ: [неразборчиво] Выступающий 1: Да, отправленные данные. Напомним, давай листать текст назад в Время на мгновение. froshim0, опять же, выглядела следующим образом. Супер большинства это всего лишь HTML. Опять же, некоторые теги Вы не видел еще, или с которыми Вы уже знакомы. Но самое интересное было этого. Это одна линия, что действительно связывает его в наш register0.php файла. Я воспользуетесь методом поста. А это значит, что параметры Пользователь вводит в не будет в конечном итоге, где. Они не собираются отображаться в URL. Они по-прежнему собирается быть отправлено с клиентском компьютере, в браузере, чтобы серверу, но только через некоторые другие механизм, который мы будем поступаться своими руками на сегодня, но это не в URL. Но обратите внимание на отношения сейчас с пост, который, по соглашению, является нижний регистр здесь. Но если я открываю register0.php, Я видимо печатью этого. Так что это какое-то странное именования. Но то, что хорошо в PHP является то, что, когда Использование PHP в веб-контексте, а не в командной строки, как я сделал минуту назад, когда вы на самом деле оно используется в веб- страницы, в Vhost каталога, как мы, PHP автоматически будет заполнить этот вещь, которая представляет собой ассоциативный массив, так сказать, хэш-таблицы, с все, что пользователь ввел дюйма Короче говоря, $ _POST во всех колпачков глобальная переменная, которая просто PHP магически создает для вас, когда Использование PHP в веб-контексте. И это ставит внутри него все Названия параметров в том виде, был представлен этот файл и все значения, которые пользователь вводит дюйма Так что к Тебе руки то, что пользователь набрал в этой форме. Поэтому, прежде чем, мы получили действительно глупо выходных из просто видеть это, потому что все, что я сделал был Рекурсивный вывод этого массива. Ключ имя, значение Давида. Ключ капитан. Значение далее. И двойной стрелки и угол Кронштейн там, это всего лишь произвольные. Это не кода. Это всего лишь способ PHP, отображающим что значение некоторого ключа. Но теперь позвольте мне предположить, что в froshIMs3, это почти идентичны исключением того, что представляет на данный файл. И опять же, мы собираемся вроде только взглянуть на это, просто чтобы посмотреть некоторые синтаксис, но заметьте, что Этот файл делает. Сделать предположение, основываясь только на линиях кода, который, вероятно, выглядеть Греческий, до некоторой степени, видимо делают. Этот файл так или иначе связано по почте, электронной почте. Так что эта программа делает? В этой версии, если бы я был на самом деле заполните эту форму - и отпустить меня в froshIMs3, не froshIMs0 - Форма выглядит одинаково. Дэвид, капитан, мужчина, общежитие, Мэтьюз. Но если бы я этого представить, этот файл собираюсь пойти в register3.php. И я утверждаю, глядя на это исходный код, он собирается так или иначе связаны с электронной почтой. Позвольте мне идти вперед и открыть этот в большие окна, поэтому мы может увидеть его чисто. Мы находимся в виртуальных доменов, локальный хост, общественности, froshims. Я собираюсь открыть другую Программа, именно так мы Подробнее можно увидеть сразу. Так что теперь здесь, заметить несколько вещей. В верхней части файл открыт Кронштейн, вопросительный знак, PHP. Тогда есть куча комментариев, которые мы можем игнорировать, является неинтересные на данный момент. Теперь есть это. Оказывается, PHP имеет много кода, который называется требуют. Это очень похожи по духу на Си включают, хэш включают, которая по существу захватывает содержание некоторых другой файл и просто шлепает их здесь, так что вы можете их использовать. В этом случае устройство имеет, предварительно установлено, библиотека, свободных и библиотека с открытым исходным кодом под названием PHP почтовой, что любой может скачать из интернета. Мы просто сделали это за вас. А это значит, у меня теперь есть электронная почта функциональность в моем распоряжении. Итак, обратите внимание несколько вещей. Я собираюсь проверить формы представления. Оказывается, PHP, одна, имеет восклицательного баллов за не оператора, так же, как С. Но PHP также имеет функцию называется пустым. Пустые просто возвращает истину, если значение о вещи вы передать его в скобках пуст, как пользователь не вводите ничего дюйма Так что это говорит, и обратите внимание на синтаксис, очень напоминает C, если Название ключ, так что имя поля в форме который был представлен по почте, по пользователя, не опорожнить и их Пол не пуст в том виде, Ну, и их общежития не пуст - но заметить, что я не забочусь о капитане, то что мы будем делать? Я собираюсь выполнить эта строка кода. И вы можете думать о такой как Malloc, но это немного более необычным, чем это. Но сейчас это дает мне специальные Построим типа PHP почтовой программы. Но игнорировать новые ключевые слова на сегодняшний день. Теперь я собираюсь вызвать функцию названную IsSMTP, в котором говорится, используйте SMTP. Это порт 25, как и видео на прошлой неделе, когда вещь бросал сообщений электронной почты в брандмауэр. Порт 25 SMTP. SMTP означает использование почтового сервера. Какой из них, мы можем использовать Гарварда SMTP.fas.harvard.edu. Мы можем установить с адреса быть Джоном Гарварда. Если я прокрутите вниз дальше, я могу установить адрес получателя, просто произвольно, чтобы быть Джон Гарварда, а также. Так он собирается посылать по электронной почте самому себе. Теперь я могу установить тему быть регистрацию. И я могу установить телом электронной почты следующим образом. Эта линия выглядит немного более загадочным, но это только потому, что есть много в ней информации. Один из них, есть точка оператора. Кто-то должен знать, что уже Оператор точка делает. Это объединение. Так что, если вы хотите взять строку в PHP, и добавить его, или в начало его, другую строку в PHP, слава Богу, не должны использовать StrCopy и Malloc, и все, что больше. Если вы хотите соединить две строки, кто заботится о памяти. Пусть PHP понять это для вас. PHP Что будут делать с оператором точка здесь просто сделать большое предложение из этой линии, эта линия, эту линию, эту линию. А теперь уведомления, это будет для подключения значения. Таким образом, электронной почты, который Джон Гарвард происходит получать буквально собирался сказать имя, толстой кишки, то, скорее, то мы закрыть строку и объединить на все, что пользователь ввел В, то новая строка. Затем, на следующей строке Джона Гарварда E-mail, он собирается сказать Капитан, С или ничего. Он скажет пола, мужчина или женщина. Общежитие будет Matthews в моем случае. И обратите внимание на то знакомое запятой в самом конце. И потом, здесь, заметьте, несколько загадочными до сих пор, но опять же, после шаблон, который будет более подробно ознакомиться После множества Р 7, при отправке почты возвращает ложь, а затем пойти дальше и умирают. Итак, PHP есть функция, называемая умирают, которые, в буквальном смысле, просто убивает сайт и просто выводит все вы сказать, что это - ее умирает словами, так сказать. И это, в случае, он будет печатать , что информация о ошибке для что бы ни случилось пойти не так. Такая длинная короткая история здесь, что у нас есть пример, в котором, когда пользователь отправляет форму, froshim0, froshims3.php, он идет к register3.php. Но затем переходит register3.php выполнить все из этих линий. Таким образом, есть несколько сувенирной брать здесь. Один из них, по-видимому, это довольно легко, программно, отправлять электронную почту, и это хорошо. Когда пользователи зарегистрироваться на вашем сайте, в этом случае, когда они регистрируются для вашего спорта, вы можете по электронной почте новичка Проктор, или Джон Гарвард, в этом случае. Но это также означает, что вы можете делать то, что? Отправить электронную почту от кого никому. И это очень верно. Это не так легко сделать, если Вы привыкли использовать Gmail. Но если вы когда-либо использовали или Eudora Мировоззрения, вы можете очень многое сказать почтовый сервер, который вы кем вы хотите. И вот тут мне нужно поставить на эту шляпу и сказать: не делай этого. Но это является свидетельством того, насколько легко это выполнить фишинга и отправлять анонимные письма, и спама, в целом. И это действительно сводится к тому, факт, что все, что нужно некоторое программный доступ. Как в стороне, мои самые близкие встречи с Доска объявлений, свой год новичка, было, когда я обнаружил этот прохладный трюк, который, ничего себе, вы можете отправлять электронную почту от кого. И так у нас были некоторые глупые Аргумент, буквально, в Matthews, Среди моих Проктор группы. Я даже не помню, чем была проблема. Но я хотел, чтобы попытаться положить конец этой глупой дискуссии. Так что я решил, что мне будет просто отправить по электронной почте к моей группе Проктор, притворяясь Другой парень, с мнением которых я не согласен, и иметь его согласиться на все, что мое мнение было в данного обсуждения. И поэтому я кованых это сообщение, указав Техника похожи по духу на это. Но это было на самом деле проще в то время. Нажмите отправить. Он не был доволен, и при этом были Доска объявлений. И я был очень быстро поймали в секунд, потому что, как вы знаете, я подписываю мои электронные письма, в определенном смысле. И хотя я делать это вручную, в больших части, спустя 15 лет, потому что я был травмированы этим. У меня нет подписи на мою электронную почту сейчас. Но в 1995 году у меня просто было SIG, подпись в мою электронную почту. Так появилась эта записку: Дорогой Проктор группе, я согласиться мое мнение и согласиться с Давидом, так и подписанные Итак, новая линия, новая линия, DJM. Так что не делайте этого или, в общем, принимают Преимущество этого метода. Но при создании веб-сайта, как, ваш окончательный проект, при принятии сайт что-то предпринимательской, Вот как, прагматично, вы можете привлекать другие услуги в Интернете , такие как почта, а затем фактически отправить вещи с помощью кода. Так как мы можем улучшить это? Ну, во-первых, давайте краткий обзор некоторые из вещей, которые вы увидите, , а затем взгляните на Несколько примеров. Так что, чтобы успокоить, потому что мы летим через PHP. И я знаю, в какой-то момент, вы будете иметь на самом деле начать писать это, если вы еще не сделали. Поймите, что, один, основной добр из из окна с PHP. Если вы хотите написать код, который получает выполнен, Вы просто начать писать его в файл с именем. PHP тех пор, пока у вас есть открывающая скобка Вопросительный знак PHP тега. Но обратите внимание, это условия в PHP. Обратите внимание, это точно такой же слайд мы имели в одну неделю, когда у нас были В условиях C. Условия в PHP структурно и синтаксически то же самое. Единственное отличие в том, если у вас есть переменных факторов, у вас есть такие знаки доллара. Между тем, логические выражения выглядят так же, как это в течение или-или и Ing-Ing вместе. Переключатели выглядеть точно так же. Что приятно в PHP, тогда как в C, переключатели должны быть дела по примитивы, как целые или символы в PHP Ваши высказывания случае действительно может быть на целые строки, которая на самом деле отчасти хорошо. Экономит ваше время. Не мог сделать этого C. Вот цикл в PHP. Он идентичен. Возможно, некоторые знаки доллара переменных. Вы не должны отметить, что что-то Int. Вы просто объявить его со знаком доллара и имя переменной. Но для цикла то же самое. Время цикла то же самое. Делать во время цикла оставался неизменным. Это немного другое. Так что с PHP, с массивом, можно статически объявить массив, как и в C, но вы используете квадратные скобки. В C, вы должны использовать фигурные скобки, Если вы даже не знали, что. Но это на самом деле очень распространена в PHP объявить массив, в данном случае, номеров и вызовите номера переменных. Сами переменные выглядеть следующим образом. Вот строка, в кавычках "привет мире ". Вы могли бы обратную косую черту N. Я просто не в этом случае. Теперь это интересная конструкция. C не имеет этого. Но это супер полезно. И вы увидите это в наборе 7 P спецификации - для каждой конструкции. Если вы хотите повторить над всеми элементы массива, вам не придется иметь дело с $ I $ и N, и + +, и все такое. Вы можете буквально скажем, в PHP, это - Для каждого числа как числа, так что Я предполагаю, что $ номерами является массив чисел. И когда я говорю для каждого номера как номер, это будет автоматически, как мой цикл выполняется, обновления, на каждой итерации значение Внутри доллара знак номера - снова, и снова, и снова ходьба для меня за этот массив. Так что он просто спасает нас кода. Нет запятой, нет + + 'с, не I, N нет, это не просто приятно. Но PHP также имеет эту. И это супер мощный. И вы будете использовать это, руки на, в P установлен 7. И ассоциативный массив также объявлен в квадратные скобки. Но обратите внимание на синтаксис сейчас. Это напоминает то, что мы видели print_r с минуту назад. Сколько клавиш, а немного проверкой на вменяемость, эта массива, кажется, есть. Так оно имеет два. И я называю это массив. Но если это поможет, вы можете думать об этом, как хэш-таблицы или в виде ассоциативный массив. Но это просто другой тип массива. И опять же, разные языки есть эти. Мы увидим нечто подобное В JavaScript, а также. Там две клавиши. Одним из них является в кавычках, "символ", один кавычках «цена». И эти ключи каждый имеет значения. В этом случае значение символа является FB, для Значение facebook, и цена составляет 49, 26, который был со Facebook, цена на сегодняшнее утро. Так что же такое полезное о ассоциативный массив. Я, возможно, была численно индексированный массив с помощью всего простые квадратные скобки. И я, возможно, был знаком доллара цитата равно именно это. Позвольте мне это сделать. Предположим, что я вместо этого просто объявили этот массив подобного. Это вполне допустимо, синтаксически. Это не приводит к потере информации, таковой. Я все еще вижу, что символ является FB, и что цена 49, 26. Так почему же ассоциативным массивов убедительным? Зала: Вы не должны помнить, где вы положили вещи. Выступающий 1: Точно, у вас нет чтобы вспомнить, где вы положили вещи. Вы не должны произвольно запомнить что символ акции находится в кронштейне нулю, и цены на акции находится в одном кронштейне, что особенно опасно, если вы изменить положение вещей, в конце концов. Это гораздо приятнее ассоциировать что мы будем называть метаданными с фактическими данными. Я бы утверждать, что то, что мы действительно заботимся о вот и FB 49, 26. Символ и цена метаданных которая описывает данные, которые мы на самом деле волнует. Но это только так легче получить доступ. Теперь, как в стороне то, что цену мы платим? Мы делали это в CS50 в течение многих недель. Эта функция должна прийти в некоторых затрат. Памяти. Значит, вы не просто хранить 32-битные целое, например. Вы храните символ / 0, наверное. Так вы используете больше памяти. И то, что производительность ищет что-то в ассоциативный массив, наверное? Это, вероятно, медленнее. Произвольный доступ хорош, особенно когда вы можете сделать бинарный поиск. Но если вы на самом деле сейчас не ищет для чисел, но для строк, это действительно реализуется под капот, вероятно, в хэш-таблице, где Вы использовали либо хэш-таблицы с отдельной цепочки. Или вы используете пытаются на самом деле хранения значений. Поэтому, возможно, вы можете сделать постоянным временем, но Вы все еще должны смотреть на S-Y-М-В-О-L, потенциально, а не только 32 Биты искать что-то. Итак, еще раз, те же идеи ближайшие Резервное повторяться в этом контексте. Но, опять же, PHP теперь имеет некоторые супер глобальные, что, оказывается, являются ассоциативные массивы. Мы видели одну минуту назад, $ _POST. И это супер глобального имеет ключей и значений. В частности, клавиши выстраиваться с чем? Где ключи в $ _POST взялось? Просто, чтобы резюмировать? АУДИТОРИЯ: Имя. Выступающий 1: Имя, где? АУДИТОРИЯ: [неразборчиво] Выступающий 1: Имя является атрибутом. Ну где, где они первоначально взялось? Форме. Так что, если HTML странице тега формы, внутри которого находятся несколько входов, как флажки, текстовые поля, выпадающие меню, каждое из которых имеет название, эти имена в конечном итоге в качестве ключей в $ _POST, и, честно говоря, в этом отношении, $ _GET. Если метод GET, той же идеи. Это просто в другом супер глобальным. И значения, конечно, исходить от все, что пользователь вводит в его или ее браузером. Но есть несколько других. Там в печенья, которые мы вернуться в конце концов. Но те вещи, которые вы знаете, Веб использует для некоторых добро или зло. Но мы еще вернемся к этому. Сервер и сессии, и эти два есть специальная утилита. Но давайте взглянем на это. Позвольте мне идти вперед и открывать пример Так называемые mvc0.php MVC означает следующее. И введем это раньше, чем типичные, на самом деле, чтобы вы проектировании Архив задач 7, а также окончательные проекты, В роду промышленности стандартным способом, и чистым способом. Это хороший дизайн. Таким образом, вы сейчас увидите, и вы будете опыта, в наборе 7 P, парадигма, отсортируйте программирования мышления, который выглядит немного что-то вроде этого. Для модели M, C для контроллера, V для просмотра. Короче говоря, MVC является только отчасти методологии, способ сделать веб-сайтов, в частности, в котором вы поставить все свои, глупые фразы - бизнес-логика - все ваши интеллектуальной собственности в то, что называется контроллером, файл как index.php, или мы увидим, quote.php или buy.php. В контексте проблемы набора 7, ваш модели обычно содержат данные, все, что связано с базой данных, как будет в конечном счете видеть, и ваши взгляды несут в себе эстетику вашего сайта, HTML, CSS. Таким образом, мы уже видели это в C немного бит с помощью. ч файлов. Мы действительно видели его несколько минут назад с CSS, по факторингу стилизации CSS вещи из наших HTML. Так MVC действительно только о рисовании линии на песке и сказать, интересный программный код для Вашего сайт принадлежит в том, что мы будем называть контроллера. Вещи, связанные с базой данных обычно заканчивается в модели. Но вы увидите, в Архив задач 7, слияние C и M, чтобы сохранить его простым. Но вид, где все ваши HTML и эстетики обычно проходят. Так что же это означает в реальном выражении? Ну, позвольте мне пойти в наш MVC каталог следующим образом. И вы будете видеть больше этих объездил в спецификации. Таким образом, в mvc0, я утверждаю, что это, вроде бы, версия 0 сайтов CS50 автора. Все у нас есть некоторые HTML, как и большая теги h1, по-видимому. А потом маркированного списка. Я никогда не видел маркированный список раньше, но не составило большого труда. Давайте быстро посмотрим на исходный код. Оказывается неупорядоченный список с пулями открыт ул кронштейн с одним или более элементов списка, Ли. Так Указание Здесь тега привязки. Мы видели, что несколько минут назад. Так что это, как я реализовал этой странице. У меня есть две ссылки, два элемента списка, один уль для неупорядоченный список, а конец Результат, эстетически, это очень довольно сайта, версия 0 здесь. Но что интересно, в том, как это реализуется под капотом. Отпустите меня в Gedit и открыть эту самом первом примере, чтобы нарисовать картину. И мы будем смотреть на то, что недостатки, потенциально, здесь. Теперь, если я иду в локальный, общественных, MVC, заметить несколько файлов. Я буду называть эти, для момент все контроллеры. Но это немного, потому что о нарушении Вы увидите все в смешанном внутри них. И отпустил меня внутри index.php. И мы видим, в буквальном смысле, то же HTML. Поэтому, даже если этот файл заканчивается . PHP, это не означает, что он должен есть PHP кода. Это может быть просто сырой HTML, хотя это глупо. Но обратите внимание, нет открывающей скобки PHP тегов, за исключением этой, которая, честно говоря, только там, чтобы служить в качестве комментария. Но это не функционально даже то, что интересно. Но заметить это. Что интересно, о том, какой изменения на этой странице. Позвольте мне нажмите лекций. И обратите внимание на URL вот-вот изменится. Теперь я в lectures.php. Позвольте мне нажмите нуля. Теперь я в week0.php А теперь мне открыть эти файлы в Gedit. Не только индекс, но пусть мне открыть лекций. И позвольте мне избавиться от комментариев сосредоточить внимание на этой части только. А теперь позвольте мне открыть еще один, week0.php, выбросить комментарии, просто очистить это. А теперь обратите внимание на следующее. Мышление действительно рода тщательно о дизайн, и давайте сделаем это линия на то же самое, что может быть сделано лучше здесь, как вы думаете? Как я сделал одну неделю? Как насчет этого. Так вот как я сделал одну неделю. Я подошел к File, New, Вставить, Сохранить, week1.php, а затем я пошел сюда. И я изменил один - что это был за, один по пятницу. Я изменил нули к одному. Я изменил это одному. Итак, теперь посмотрите на мои файлы. Что можно было бы сделать по-другому? Где возможность, что ли? Таким образом, есть возможность начать факторинг этот материал. Позвольте мне открыть, как спойлер, для то, что вы увидите в множество Р 7. Если я открываю, в настоящее время, в версии index.php пять из этого, это выглядит путь более загадочного, по общему признанию. Но это, в настоящее время, является то, что я позвоню контроллер, который по контролю за Логика моя страница. И вы можете реконструировать вид, Интуитивно, пожалуй, то, что происходит. На первой линии, это немного загадочным. Но заметьте, я требующих, как с резкое включают, файл с именем helpers.php. И тогда я звоню, по-видимому, функции, называемой визуализации, передавая два аргумента. Одним из них является кавычках, заголовка. А другой, какой Тип данных этого, на основе на нашем синтаксисе раньше? Это ассоциативный массив. В частности, это проходящий в названии с некоторыми метаданными, который напоминает мне, что это и его значение. Потом я вижу жестко UL, поэтому некоторые сырые HTML. Но тогда я вернулся в режим PHP вызове функции визуализации. Так что даже если вы никогда не использовали HTML или PHP раньше, и даже если это выглядит страшнее, почему это, вероятно, лучший дизайн? Что может быть лучше об этом, на основе выводов? АУДИТОРИЯ: [неразборчиво] Выступающий 1: менее выражены, что в нет больше HTML тегов, не более руководители тегов, не более тела тега В каждый проклятый файл. Вместо этого, у меня вынесена общностей и, предположительно, положить их в файл или иначе связаны к заголовку. И то же самое для близких тела Тег, тесная HTML тегов. Это, наверное, здесь внутри нижнего колонтитула где-то. И вы увидите, в Архив задач 7, небольшой тур через это. Итак, что ждет впереди? Единственное, у нас нет возможности все же для является хранение данных. И так, что мы начинаем видеть Среде, например, в том, что ваш Старый друг Excel, или цифры, позволяет хранить большое количество данные в строки и столбцы. Оказывается, что вы можете сделать это в то, что называется базой данных, программными средствами. маниакально И оказывается, после этого, мы будем иметь возможность хранить вещи, как это, что вы будете видеть снова в комплекте P 7, целую кучу имен пользователей и пароли, последний из которых на самом деле зашифрован, так же, как они были в хакером издание P набор 2 в. И в конце концов, вы будете осуществить это, собственный ETRADE-сайт, который, как реализует коллективно CS50 финансов. И наконец, поскольку Вы здесь останавливались так поздно Сегодня, если вы вернетесь к этой части кампуса, в 4:00 вечера сегодня, мы будем дать вам не только советом, в SCES Консультирование ярмарка, в 4:00 вечера в Максвелла-Дворкин, мы дадим вам некоторые Americone Мечта, Cherry Garcia, Шоколад Fudge Brownie, Шоколад Chip Cookie тесто, и, когда вы Google Коренастый Обезьяна, вы получите это. Так что все, что ждет в 4:00 PM В Максвелла-Дворкин. Увидимся в среду, а также. Докладчик 2: На следующей CS50, RJ спит дюйма RJ: Мой раздел! Ха! О,