[Powered by Google Translate] [Неделя 8, продолжение] [David J. Малан] [Harvard University] [Это CS50.] [CS50.TV] Это CS50, так это к концу недели 8 здесь. Мы, конечно, было немного урагана ранее на этой неделе, поэтому сейчас это действительно только ты и я в этом лекционный зал, Но сегодня мы продолжаем наш разговор о PHP и о веб-программировании в целом, и мы также ввести понятие базы данных, в частности, одна называется MySQL, которая является довольно популярным в эти дни, В значительной мере благодаря ее масштабируемости, а также потому, что его быть свободным и открытым исходным кодом. Но сначала посмотрим на котором мы остановились в прошлый раз. Напомним, что мы искали в нескольких Frosh примеры мгновенные сообщения, и это была отвратительная форма, которая мне пришла в голову еще 15 лет назад + для того, чтобы иметь студентов на территории кампуса регистр для первокурсников очной спортивных , фактически не имея к походу больше через двор к Wigglesworth скользить физической бумагу под дверь некоторых Проктора. Вместо этого мы переехали все в Интернете, но для этого мы должны использовать несколько технологий, так что, нам нужно HTML, язык гипертекстовой разметки, что опять же это язык разметки, с которой вы делаете веб-страниц структурно. Используя немного CSS в эти дни, каскадные таблицы стилей, которым мы пользуемся стилизации веб-страницы, используя несколько иной синтаксис, в то время как HTML было все, о структуре их. Нам также необходимо ввести языка веб-программирования. В этом случае, мы будем использовать PHP, и PHP будет позволить нам для динамического вывода контента, а также делать программные вещи, как отправка электронной почты, как это было на ноте мы уехали на прошлой неделе. Напомним, что код этого была в 2-х частях. Один из них, мы должны были froshims3.php, и это было в значительной степени разметки HTML с формой внутри него, чуть-чуть CSS здесь, в атрибуты стиля так что сама форма будет по центру страницы, но помимо этого у нас были некоторые представителем входа форме, в текстовое поле, флажок, некоторые радио-кнопки, выберите меню, и кнопка отправки. И через эту форму, мы представили в файл, который был по-видимому называли register3.php, что само по себе выглядело немного что-то вроде этого. Теперь, большая часть кода в register3.php, напомним, было все об электронной почте. Он сделал немного проверку виде, который был представлен, чтобы убедиться, , что поля были на самом деле при условии, что ожидалось. Тогда мы называли некоторые функции с использованием PHP немного нового синтаксиса, даже если он заимствован из C. Эта стрелка оператора позволяет нам использовать то, что называется объектно-ориентированного программирования. Мы не будем вдаваться в том, что в любой детали, но знаю теперь это способ иметь функции, связанные с объектами, которые представляют собой особый тип строения, как мы видели в C. Но сейчас, просто принять на веру, что это правильный синтаксис для использования При использовании библиотеки как эта библиотека PHPMailer. И тогда к концу этого файла мы динамически генерируемых электронной почте , что послали на мой счет jharvard@cs50.net от моего jharvard@cs50.net счета, и мы проинформировали пользователей соответственно, что они были зарегистрированы для этого вида спорта. Это в значительной степени то, что сайт Frosh чаты сделал много лет назад Когда я реализовал ее, правда, на другом языке, но он показывает вам, возможно, власть, которая у вас есть Теперь, когда вы можете выразить себя не только программными на низком уровне в языке, как C, но на гораздо более высоком уровне с этим очень реальный мир приложений, как электронная почта на самом деле решить некоторые реальные проблемы мира. Сейчас, конечно, хотя я использую этот скрипт для создания некоторых сообщения электронной почты динамически из jharvard@cs50.net, которая действительно счету что у меня есть доступ к, не быть достаточно осторожным, чтобы отправить почты только со счетов, что на самом деле свой собственный, чтобы вещи вам в небольшом количестве горячей воды в жизни. С учетом сказанного, давайте теперь переход к решению другой проблемы в целом, что сохранения государства. Итак, что же это на самом деле означает? HTTP, этот протокол передачи гипертекста, на самом деле без протокола, и что это означает, что когда вы тянете что-то вроде Google.com а затем нажмите ввод Обычно ваш браузер имеет какой-то вращающийся значок, который затем Результаты в некоторых веб-страницы загружаются, а затем, что маленький значок прекращает вращаться, и что на самом деле предлагает , что HTTP завершил какой-то соединение с сервером, вот и все. HTTP является лицом без гражданства, в том смысле, что оно не поддерживают постоянное подключение к серверу в том же Skype случае не или Gchat делает, потому что с HTTP Предполагается, что, как только вы взяли веб-страницу, вот и все. Сейчас, на самом деле в эти дни на таких сайтах, как Facebook и Google Maps и Twitter, и как там много больший динамизм которой даже после этого значка останавливает вращение, может на самом деле получить больше обновлений от сервера, больше твитов, больше обновлений статусов на Facebook и тому подобное. Но даже это, используя технику, что мы будем говорить в неделю или две известный как Ajax с использованием языка JavaScript называется, но в конце дня, HTTP-прежнему без гражданства. И все же, если вы хотите, чтобы как-то помню вещи о пользователе даже после того как они отключены от сервера PHP делает позволить вам средство этом поскольку, как мы видели в последний раз, PHP имеет ряд суперглобальных, и суперглобальная, опять же, специальные глобальные переменные который передал вам веб-сервером и PHP себя. Вы не должны ничего делать, чтобы положить значения в нем, и среди суперглобальных мы видели до настоящего времени, получать и отправлять, который является, где поля формы ставятся автоматически для вас, , а также несколько других, которые мы еще не видели. Внутри $ _SERVER некоторые специальные переменные, связанные с самим сервером. Что такое IP-адрес, что протокол, HTTP или HTTPS вы используете, что метод запроса вы используете и т.п., так что некоторые интересные, пикантные подробности о сервере, а на самом деле, пользователь в там же. Там в $ _COOKIE, который является, где эти вещи называются куки хранятся. Мы не будем тратить время на печенье себя сегодня, но знаю теперь, что печенье является лишь небольшой фрагмент информации , что веб-сервер могут посадить на веб-браузере и в свою очередь ее память или жесткий диск своего компьютера для хранения информации о пользователе, например, свое имя пользователя так, чтобы они не придется вводить его каждый раз, когда они войти в систему или некоторых Уникальный номер или идентификатор для этого пользователя так что вам не придется приставать к ним с тем же виды вопросов о предпочтения в будущем, но большинство из интереса Прямо сейчас составляет $ _SESSION. Это суперглобальная, который, как и другие, передают вам автоматически PHP когда вы пишете PHP-сайтов на основе можно хранить все, что угодно, строки, числа, плавающей точкой, значения, массивы, объекты, на самом деле все, что вы хотите, и это позволяет сохранить его таким образом, что даже если пользователь посещает вас то и дело возвращается минутах от теперь и в 5 минутах от теперь, потому что они принимают их время, прежде чем нажать некоторые другие ссылки PHP будет гарантировать, что все, что вы положите в этой сессии суперглобальная минуты или 5 минут назад все еще будет там, когда возвращается пользователю. А под капотом этого суперглобальная осуществляется путем те вещи, называемые куки, но сейчас это просто абстракция которым это своего рода программный эквивалент корзине. Что бы вы, программист, положить в том, что суперглобальная ассоциативный массив будет там некоторое количество минут позже до тех пор пока вы его не удалите или пока пользователь не выйдет своего браузера в целом. Давайте посмотрим на примере, как эта вещь действительно используются. В counter.php среди части сегодняшнего код мы имеем следующую строку. В начале этого файла у нас есть куча синих комментарии, которые неинтересны сейчас. Но в строке 13 у нас есть новая линия, session_start, и что на самом деле делает именно то, что он говорит. Она начинается сессий. Это позволяет использовать это большая суперглобальная $ _SESSION, и это так просто. Теперь, если мы исходим, чтобы посмотреть на линию 16, давайте попробуем выяснить, что эта веб-страница будет делать. Если (Исеть ($ _SESSION ["счетчик"]), а затем пойти дальше и хранить в переменной счетчика, строчные счетчика, $ _SESSION ["Счетчик"]. Это, кажется, объявления локальных переменных называется счетчиком внутри которых он надевает копию того, что находится внутри суперглобальная называется сессии в положение "счетчик". В противном случае, по-видимому, эта маленькая локальная переменная счетчика, устанавливается на 0. Но потом через несколько строк в 26 Обратите внимание, что копия сессии счетчика, ее ключом, имеет новый присвоено значение, который является его текущее значение плюс 1. Короче говоря, этот файл выглядит как обновление Счетчик, который хранится внутри сессии суперглобальная , увеличивая его на 1, но он сначала сохраняет копию предыдущего значения , сохраняя его в локальной переменной с именем $ счетчика, , а затем сюда давайте посмотрим, что осталось. Оказывается, это в значительной степени только HTML. В нижней части этой страницы мы видим в строке 37, которые я посетил этот сайт Счетчик количество раз, так что есть несколько интересных особенностей здесь. Один из них, это явно переменной, но это не достаточно просто положить $ Счетчика в теле вашего HTML, потому что, конечно, если это только там, среди ваших PHP HTML будет считать, что это просто HTML. Вы буквально хотят $ счетчиков, которые будут напечатаны на экране. Но вместо этого падения в режиме PHP с этой частью синтаксиса мы можем динамически вставить значение здесь Очень близки по духу к тому, что мы сделали в прошлый раз с вставка значения в строки. На самом деле, это просто сокращенное обозначение для сказав что-то вроде этого буквально, Печать ($ счетчика) или даже что-то вроде Е (% S, счетчик), или даже, как вы, возможно, видели в Интернете или в учебниках, есть функция в PHP называется эхо которая делает то же самое, и все это только больше наматывается способами сказать