1 00:00:00,000 --> 00:00:11,470 2 00:00:11,470 --> 00:00:12,764 >> COLUNA 1: Todos, certo bem-vindos de volta. 3 00:00:12,764 --> 00:00:14,140 Isto é CS50. 4 00:00:14,140 --> 00:00:16,800 E este é o começo de semana nove. 5 00:00:16,800 --> 00:00:19,960 E isto é o início do resto seu tempo no CS50, em que 6 00:00:19,960 --> 00:00:23,170 transição agora, finalmente, para a teia aspectos do curso, onde você 7 00:00:23,170 --> 00:00:26,200 descobrir que muitos dos fundamentos que temos vindo a exportar para a semana 8 00:00:26,200 --> 00:00:29,270 ainda voltar a visitar, ou assombrar, nós. 9 00:00:29,270 --> 00:00:33,440 Mas agora, você vai descobrir que ele é um ordem de grandeza mais fácil 10 00:00:33,440 --> 00:00:36,540 realizar determinadas tarefas e resolver certos problemas - 11 00:00:36,540 --> 00:00:41,050 tanto que mesmo que você pensou determinados conjuntos de problemas eram divertidos em seu 12 00:00:41,050 --> 00:00:44,200 própria maneira, eu acho que você vai encontrar que p ajuste 7, p ajuste 8, e então, 13 00:00:44,200 --> 00:00:47,990 em última análise, o projeto final será tudo o mais gratificante, porque você vai 14 00:00:47,990 --> 00:00:51,830 achar que começamos a tomar para concedido agora as coisas como gerenciamento de memória e 15 00:00:51,830 --> 00:00:54,190 ponteiros, eo que está acontecendo por baixo do capô. 16 00:00:54,190 --> 00:00:57,310 E, novamente, temática, durante todo o semestre foi tão camadas 17 00:00:57,310 --> 00:00:58,030 e camadas. 18 00:00:58,030 --> 00:01:00,530 E agora estamos espécie de up aqui, de pé sobre o 19 00:01:00,530 --> 00:01:01,930 ombros de semana passado. 20 00:01:01,930 --> 00:01:05,360 >> Agora, lembre-se da última vez que falou sobre como a internet funcionou. 21 00:01:05,360 --> 00:01:08,120 E esse foi, talvez, um simplificação, mas lembre-se que 22 00:01:08,120 --> 00:01:12,960 todos os computadores do mundo tem um IP resolver, apesar de que é um pouco de um 23 00:01:12,960 --> 00:01:14,570 simplificação ainda. 24 00:01:14,570 --> 00:01:18,180 E esses endereços são usados ​​exclusivamente para máquinas, de modo que identificam 25 00:01:18,180 --> 00:01:22,010 quando você envia informações, ou pacotes, por assim dizer, que eles podem ter uma origem 26 00:01:22,010 --> 00:01:24,000 endereço e um endereço de destino. 27 00:01:24,000 --> 00:01:27,830 E esses mesmos endereços IP podem ser usados tanto para o bem e também para o mal, 28 00:01:27,830 --> 00:01:29,270 para rastreá-lo, por exemplo. 29 00:01:29,270 --> 00:01:32,200 Na verdade, cada um de vocês com um laptop abrir agora, ou um telefone em seu 30 00:01:32,200 --> 00:01:35,070 bolso, tem um endereço IP na rede de Harvard. 31 00:01:35,070 --> 00:01:39,120 E não é tão difícil de correlacionar isso com quem e onde você 32 00:01:39,120 --> 00:01:40,180 são estes dias. 33 00:01:40,180 --> 00:01:42,090 Mas mais sobre isso talvez no futuro. 34 00:01:42,090 --> 00:01:46,510 >> Agora eu pensei em trazer de volta alguns memórias de [? melhorar?] e dar-lhe 35 00:01:46,510 --> 00:01:49,360 outro clipe de um show que você pode encontrar familiar. 36 00:01:49,360 --> 00:01:52,710 Se pudéssemos diminuir as luzes por apenas alguns segundos. 37 00:01:52,710 --> 00:01:53,960 O show Numb3rs. 38 00:01:53,960 --> 00:01:57,510 39 00:01:57,510 --> 00:02:00,540 >> COLUNA 2: É um endereço IPP4 32-bit. 40 00:02:00,540 --> 00:02:01,610 >> COLUNA 3: IPP, como na internet? 41 00:02:01,610 --> 00:02:02,968 >> COLUNA 2: rede privada. 42 00:02:02,968 --> 00:02:04,960 À rede privada da Amita. 43 00:02:04,960 --> 00:02:16,930 44 00:02:16,930 --> 00:02:19,602 Ela é tão incrível. 45 00:02:19,602 --> 00:02:21,030 >> COLUNA 3: Vamos, Charlie. 46 00:02:21,030 --> 00:02:21,490 >> COLUNA 2: É. 47 00:02:21,490 --> 00:02:22,470 Um endereço IP espelho. 48 00:02:22,470 --> 00:02:27,680 Ela está deixando-nos ver o que ela está fazendo em tempo real. 49 00:02:27,680 --> 00:02:30,930 >> Speaker 1: OK, então algumas coisas de errado com esta imagem. 50 00:02:30,930 --> 00:02:32,920 Então, um, e este é aceitável, esta é realmente 51 00:02:32,920 --> 00:02:34,400 não é um endereço IP válido. 52 00:02:34,400 --> 00:02:38,190 Um endereço IP válido tem que ser números da forma w.x.y.z, onde cada um de 53 00:02:38,190 --> 00:02:40,000 essas cartas é de 0 a 255. 54 00:02:40,000 --> 00:02:42,330 Mas isso é bom, porque assim como o filmes onde eles números de telefone falsos, 55 00:02:42,330 --> 00:02:43,520 eles falsificam endereços IP. 56 00:02:43,520 --> 00:02:45,230 Você realmente não atingiu os servidores reais. 57 00:02:45,230 --> 00:02:46,760 >> Mas lembre-se, este é um browser. 58 00:02:46,760 --> 00:02:50,760 E navegadores não começar saída código de computador assim. 59 00:02:50,760 --> 00:02:54,230 E se olharmos um pouco mais, observe que a linguagem que eles estão vendo 60 00:02:54,230 --> 00:02:57,040 na tela é uma linguagem chamada Objective C, que é a língua em 61 00:02:57,040 --> 00:02:59,520 que aplicativos para iPhone são escritas, particularmente os que envolvem 62 00:02:59,520 --> 00:03:03,540 lápis de cor, como você pode ver a partir de o código de fonte aqui. 63 00:03:03,540 --> 00:03:06,600 64 00:03:06,600 --> 00:03:07,560 >> OK, eu pensei que isso era engraçado. 65 00:03:07,560 --> 00:03:12,240 Então, esse trecho de código tem absolutamente nada a ver com o que esta 66 00:03:12,240 --> 00:03:13,940 determinado episódio era sobre. 67 00:03:13,940 --> 00:03:17,590 Portanto, a brincadeira é uma espécie de sobre os povos levando para este concedido. 68 00:03:17,590 --> 00:03:20,220 Mas isso não é tão difícil de obter esses detalhes técnicos corretos. 69 00:03:20,220 --> 00:03:21,980 E eu gostaria de incentivá-lo. 70 00:03:21,980 --> 00:03:25,530 E, na verdade, 50 pode muito bem estragar um monte de shows de TV e filmes ou você 71 00:03:25,530 --> 00:03:27,320 porque você vai achar que é só não é possível que eles estão 72 00:03:27,320 --> 00:03:28,630 fazendo na tela. 73 00:03:28,630 --> 00:03:31,750 Mas, na verdade, este é o código que você pode vê-lo em um aplicativo para iPhone 74 00:03:31,750 --> 00:03:33,640 ou aplicação Mac OS. 75 00:03:33,640 --> 00:03:35,685 Não tem nada em tudo a ver com segurança. 76 00:03:35,685 --> 00:03:38,610 Portanto, manter um olho para fora para mais essas coisas divertidas como essa. 77 00:03:38,610 --> 00:03:42,720 >> Mas hoje nós começamos a mergulhar realmente profundamente a toda uma gama de línguas. 78 00:03:42,720 --> 00:03:45,410 Um fato, um dos mais abrangente tópicos desta porção do 79 00:03:45,410 --> 00:03:51,815 curso não é para aprender a programar em PHP, não para aprender SQL, por si só, não 80 00:03:51,815 --> 00:03:58,100 aprender JavaScript, por si só, mas em vez para ensinar a si mesmo como ensinar 81 00:03:58,100 --> 00:04:02,030 yourself novas linguagens, porque, de fato, começamos a tomar agora a 82 00:04:02,030 --> 00:04:06,020 rodinhas para que depois final do curso, você não espera que a 20 83 00:04:06,020 --> 00:04:08,890 especificação página para dizer-lhe como implementar algum programa. 84 00:04:08,890 --> 00:04:12,970 Você tem ingredientes suficientes na sua mente, e ferramentas suficientes na sua ferramenta 85 00:04:12,970 --> 00:04:15,750 kit, com a qual começar a construir soluções para problemas de interesse 86 00:04:15,750 --> 00:04:19,130 você por algum grupo de estudantes, para alguns projeto de pesquisa, ou realmente nada 87 00:04:19,130 --> 00:04:20,140 de seu interesse. 88 00:04:20,140 --> 00:04:24,150 >> Então, para esse fim, lembre-se que este era a imagem que desenhou última vez. 89 00:04:24,150 --> 00:04:27,620 E isso é dois computadores, cliente e cortar, conversando uns com os outros. 90 00:04:27,620 --> 00:04:31,130 E o protocolo, a linguagem, de modo a falar, que estes dois computadores acontecer 91 00:04:31,130 --> 00:04:33,220 estar falando é chamado de HTTP. 92 00:04:33,220 --> 00:04:37,730 E isso é apenas o protocolo usado pelo computadores para transferir informações sobre 93 00:04:37,730 --> 00:04:38,710 a world wide web. 94 00:04:38,710 --> 00:04:41,770 A web, é claro, é apenas um serviço que roda em cima do 95 00:04:41,770 --> 00:04:43,000 chamado Internet. 96 00:04:43,000 --> 00:04:48,660 O que é outro serviço disponível em topo da internet nos dias de hoje? 97 00:04:48,660 --> 00:04:51,600 Algum outro protocolo ou - o que é isso? 98 00:04:51,600 --> 00:04:52,300 >> AUDIÊNCIA: FTP. 99 00:04:52,300 --> 00:04:52,790 >> COLUNA 1: FTP. 100 00:04:52,790 --> 00:04:54,630 Então File Transfer Protocol é outra. 101 00:04:54,630 --> 00:04:56,050 A maioria de vocês provavelmente não tê-lo usado. 102 00:04:56,050 --> 00:04:58,830 Mas a maioria de vocês provavelmente já usado coisas como Gchat ou instantânea 103 00:04:58,830 --> 00:05:00,970 Mensagens de um modo mais geral, certamente mail. 104 00:05:00,970 --> 00:05:04,470 E aqueles, também, são os serviços que são executados em topo da internet, porque, no 105 00:05:04,470 --> 00:05:08,180 final do dia, a própria internet realmente é só pegar os dados do ponto A ao 106 00:05:08,180 --> 00:05:12,480 ponto B. E ele usa uma série de as partículas em si, um ou dois deles 107 00:05:12,480 --> 00:05:17,340 deles mais geralmente chamado o TCP / IP, que é para dizer que um computador 108 00:05:17,340 --> 00:05:19,960 a internet pode realmente estar fazendo coisas diferentes, e-mail, 109 00:05:19,960 --> 00:05:20,980 e web, e assim por diante. 110 00:05:20,980 --> 00:05:22,220 Google faz um monte de presente. 111 00:05:22,220 --> 00:05:26,310 Então, como são os serviços com exclusividade identificado, não podemos dizer que, em um computador 112 00:05:26,310 --> 00:05:29,080 que pode realmente estar fazendo várias coisas? 113 00:05:29,080 --> 00:05:29,860 >> O número da porta. 114 00:05:29,860 --> 00:05:34,180 E estes são apenas humana arbitrária convenções como 80 é web, 443 é 115 00:05:34,180 --> 00:05:36,580 web criptografada, 25 é e-mail. 116 00:05:36,580 --> 00:05:38,230 E há um cachos de outros. 117 00:05:38,230 --> 00:05:41,860 E esses números são simplesmente incluídos na os pacotes de informação, aqueles 118 00:05:41,860 --> 00:05:46,230 envelope virtual, que efectivamente continha um pedido ou uma resposta. 119 00:05:46,230 --> 00:05:51,300 >> Então, quando você recebe de volta uma resposta do web, normalmente, você não vê qualquer 120 00:05:51,300 --> 00:05:54,780 números de qualquer natureza em termos de código de status da resposta. 121 00:05:54,780 --> 00:05:56,770 Você realmente não vê a funcionamento interno do 122 00:05:56,770 --> 00:05:58,090 pacotes que vêm de trás. 123 00:05:58,090 --> 00:05:59,860 Mas 200, de fato, significa OK. 124 00:05:59,860 --> 00:06:01,530 E isso significa que está tudo bem. 125 00:06:01,530 --> 00:06:02,870 Você pode ter visto um monte deles. 126 00:06:02,870 --> 00:06:05,710 Que é provavelmente a mais comum você já viu na web? 127 00:06:05,710 --> 00:06:05,980 >> 404. 128 00:06:05,980 --> 00:06:07,330 Significa apenas que arquivo não foi encontrado. 129 00:06:07,330 --> 00:06:08,270 Isso significa que alguém errou. 130 00:06:08,270 --> 00:06:11,450 Você fez por erros de digitação da URL, ou alguém mais fez, dando-lhe um 131 00:06:11,450 --> 00:06:15,100 URL inválido, ou que excluiu a arquivo ea URL é ainda 132 00:06:15,100 --> 00:06:16,130 sendo usado por pessoas. 133 00:06:16,130 --> 00:06:19,670 Assim, qualquer número de razões podem explicar por que um arquivo não foi encontrado. 134 00:06:19,670 --> 00:06:22,990 E você vai ver, nas próximas semanas, esses outros códigos de erro, e você vai 135 00:06:22,990 --> 00:06:24,195 tirar proveito de alguns deles. 136 00:06:24,195 --> 00:06:25,760 O pior é 500. 137 00:06:25,760 --> 00:06:29,820 Se você receber um erro 500 no código que você escrito, pense nisso como uma espécie de 138 00:06:29,820 --> 00:06:33,290 análogo da SEG falhas no mundo da programação web. 139 00:06:33,290 --> 00:06:34,560 Ele não é tão terrível. 140 00:06:34,560 --> 00:06:36,660 Mas isso significa apenas que, em algum lugar, você errou. 141 00:06:36,660 --> 00:06:38,260 Então olhe para a frente a eles. 142 00:06:38,260 --> 00:06:39,910 >> Mas vamos ver se podemos vê-los em contexto. 143 00:06:39,910 --> 00:06:43,460 Deixe-me ir para um navegador aqui e faça o seguinte. 144 00:06:43,460 --> 00:06:45,710 Portanto, este é o Chrome, que passa a ser instalada no aparelho. 145 00:06:45,710 --> 00:06:49,410 Mas a maioria todos os navegadores hoje em dia tem algumas funcionalidades equivalentes. 146 00:06:49,410 --> 00:06:52,610 Eu estou indo para ir até o menu do Chrome, e vá em Ferramentas, e eu estou indo para ir 147 00:06:52,610 --> 00:06:53,990 a Developer Tools. 148 00:06:53,990 --> 00:06:57,040 E você vai ver que este painel pouco abre na parte inferior da janela. 149 00:06:57,040 --> 00:07:00,190 Outro atalho, para ser honesto, que eu eu costumo usar é clicar com o botão direito 150 00:07:00,190 --> 00:07:04,370 ou de controle clique em qualquer lugar na web página e vá para Inspect Element. 151 00:07:04,370 --> 00:07:07,440 E que não só irá abrir isso tem para você. 152 00:07:07,440 --> 00:07:10,230 Também será aberta, especificamente, a porção em Elementos 153 00:07:10,230 --> 00:07:11,430 o lado esquerdo. 154 00:07:11,430 --> 00:07:12,460 >> Então, nós estamos, naturalmente, vendo Google. 155 00:07:12,460 --> 00:07:13,930 Eles mudaram seu logotipo hoje. 156 00:07:13,930 --> 00:07:20,200 Mas, se eu rolar por aqui, observe que sob Elements, você vê 157 00:07:20,200 --> 00:07:23,460 o que é chamado HTML, HyperText Markup Linguagem, e esta é a linguagem 158 00:07:23,460 --> 00:07:26,000 que esta e todas as páginas da web, realmente, está escrito dentro 159 00:07:26,000 --> 00:07:28,950 Mas na verdade é formatado para nós muito mais legível 160 00:07:28,950 --> 00:07:29,970 do que normalmente é. 161 00:07:29,970 --> 00:07:34,810 Na verdade, se eu diminuir o zoom, e eu, em vez apenas clique com o botão direito ou Control Click 162 00:07:34,810 --> 00:07:39,630 clique sobre a página, e em seguida, vá em Exibir Página Fonte, este é literalmente o que 163 00:07:39,630 --> 00:07:42,150 Google enviou para o meu browser. 164 00:07:42,150 --> 00:07:46,480 >> Então, alguma pessoa ou pessoas escreveram Google.com usando este código-fonte. 165 00:07:46,480 --> 00:07:47,790 A maior parte deste não é HTML. 166 00:07:47,790 --> 00:07:49,340 É realmente uma linguagem chamada JavaScript, que 167 00:07:49,340 --> 00:07:50,880 nós vamos chegar a quarta-feira. 168 00:07:50,880 --> 00:07:55,580 Mas o Chrome, e que cada navegador pode fazer por nós, é uma espécie de ver 169 00:07:55,580 --> 00:07:59,610 passado todas as distrações do sintaxe louco, e volte a colocar espaço em branco 170 00:07:59,610 --> 00:08:02,940 para nós, e até mesmo destaque de sintaxe, ou colorir as coisas para nós. 171 00:08:02,940 --> 00:08:06,470 Então você verá que os chamados ferramentas de desenvolvimento construído em navegadores 172 00:08:06,470 --> 00:08:10,830 irá tornar sua vida muito, muito mais fácil porque você pode explorar, através deste menu 173 00:08:10,830 --> 00:08:13,940 interface, exatamente o que o subjacente código fonte é para 174 00:08:13,940 --> 00:08:15,750 qualquer página na internet. 175 00:08:15,750 --> 00:08:19,070 E, de facto, esta é uma das mais formas eficazes para aprender a fazer 176 00:08:19,070 --> 00:08:22,860 algo novo, pelo menos, se a página não é tão complexa como a submergir, é 177 00:08:22,860 --> 00:08:26,700 para começar a picar ao redor é HTML, olhar em sua chamada CSS, que virá 178 00:08:26,700 --> 00:08:30,310 para um bit, bem como, para obter uma a compreensão de como esse programador 179 00:08:30,310 --> 00:08:33,480 implementaram algum especial característica da página. 180 00:08:33,480 --> 00:08:36,530 >> Mas o mais interessante tecnicamente direita agora é que vai ser isso. 181 00:08:36,530 --> 00:08:39,429 Se eu vá para a aba Rede, agora vamos limpar isso. 182 00:08:39,429 --> 00:08:43,429 Eu estou indo para clicar a pequena atravessar símbolo aqui, e, em seguida, 183 00:08:43,429 --> 00:08:45,630 ir para outro site. 184 00:08:45,630 --> 00:08:48,430 E eu só vou escrever no Facebook.com. 185 00:08:48,430 --> 00:08:51,940 No HTTP, HTTPS não, não WWW. 186 00:08:51,940 --> 00:08:53,850 Vamos realmente ver o que acontece aqui. 187 00:08:53,850 --> 00:08:55,030 >> Enter. 188 00:08:55,030 --> 00:08:58,480 Agora, observe um monte de coisas só apareceu neste painel de fundo, em 189 00:08:58,480 --> 00:09:00,285 Além da página web aparecendo no topo. 190 00:09:00,285 --> 00:09:04,890 Eu estou indo para ir de volta para o Guia Rede aqui, e eu vou 191 00:09:04,890 --> 00:09:06,080 clique na primeira linha. 192 00:09:06,080 --> 00:09:10,580 O que esta ferramenta vai revelar-nos é cada uma das solicitações HTTP 193 00:09:10,580 --> 00:09:13,550 que rapidamente apenas voltou e outro entre o meu navegador 194 00:09:13,550 --> 00:09:14,930 eo servidor do Facebook. 195 00:09:14,930 --> 00:09:17,830 E assim, cada uma dessas linhas representa um tal pedido, ou 196 00:09:17,830 --> 00:09:20,970 resposta, um ou mais dos aqueles envelope virtual. 197 00:09:20,970 --> 00:09:24,080 Ou mais casualmente, é como uma pessoa como uma pessoa, um cliente em uma 198 00:09:24,080 --> 00:09:26,710 restaurante, pedindo algo de novo, e de novo, e de novo. 199 00:09:26,710 --> 00:09:29,400 E o garçom continua trazendo de volta um de cada vez. 200 00:09:29,400 --> 00:09:33,850 >> Então, agora, se eu aumentar o zoom em isso, observe e este será o tipo de coisa 201 00:09:33,850 --> 00:09:36,600 que você está bem-vindo ao e encorajou jogar com a sua própria, porque nós 202 00:09:36,600 --> 00:09:38,150 não vai passar por tudo em grande detalhe. 203 00:09:38,150 --> 00:09:40,070 Mas repare que há uma alguns sub abas aqui - 204 00:09:40,070 --> 00:09:43,700 Cabeçalhos, Preview, resposta, Cookies, e timing. 205 00:09:43,700 --> 00:09:48,280 Eu só vou olhar para cabeçalhos por agora, porque estes são pouco 206 00:09:48,280 --> 00:09:53,600 ingredientes dentro do envelope que ajudar a obter dados para e de lugares. 207 00:09:53,600 --> 00:09:57,590 >> Então, primeiro, deixe-me clique neste, Vista Fonte próxima ao pedido cabeçalhos. 208 00:09:57,590 --> 00:10:01,910 Não é o pedido que o meu browser, Cromado, neste caso, enviado dentro de 209 00:10:01,910 --> 00:10:02,910 que o envelope virtual. 210 00:10:02,910 --> 00:10:04,800 Você deve se lembrar, na semana passada eu digitou enquanto manualmente 211 00:10:04,800 --> 00:10:06,380 fingindo ser um browser. 212 00:10:06,380 --> 00:10:09,980 Em seguida, ele lembrou que o servidor é olhando para o host chamado 213 00:10:09,980 --> 00:10:10,835 Facebook.com. 214 00:10:10,835 --> 00:10:13,630 E então há um pouco mais misterioso informações que vamos acenar 215 00:10:13,630 --> 00:10:14,830 nossas mãos agora. 216 00:10:14,830 --> 00:10:18,640 >> Mas se eu começar a rolar agora em Nesta janela, deixe-me chegar ao 217 00:10:18,640 --> 00:10:19,980 cabeçalhos de resposta. 218 00:10:19,980 --> 00:10:23,270 Isso era o que é no virtual envelope que voltou de 219 00:10:23,270 --> 00:10:24,095 Facebook.com. 220 00:10:24,095 --> 00:10:27,390 E se eu clicar em Exibir código fonte apenas para ver o texto bruto do mesmo, 221 00:10:27,390 --> 00:10:28,400 perceber algumas coisas. 222 00:10:28,400 --> 00:10:32,130 Um deles, o Facebook também fala a mesma protocolo, a versão 1.1 do mesmo. 223 00:10:32,130 --> 00:10:33,390 Então, isso é bom. 224 00:10:33,390 --> 00:10:36,820 Mas o código de status 301, movido permanentemente. 225 00:10:36,820 --> 00:10:38,880 >> Bem, onde diabos Facebook ir? 226 00:10:38,880 --> 00:10:40,430 O que esta tentando passar para nós? 227 00:10:40,430 --> 00:10:44,310 Bem, percebe-se aqui não há outra cabeçalho chamado Localização. 228 00:10:44,310 --> 00:10:51,050 Então, por que é Facebook me dizendo que eles movido permanentemente para que URL 229 00:10:51,050 --> 00:10:53,580 ao lado de Localização? 230 00:10:53,580 --> 00:10:54,962 Eu esqueci o www. 231 00:10:54,962 --> 00:10:56,250 >> Então essa foi a minha escolha. 232 00:10:56,250 --> 00:11:00,450 Na verdade, a maioria de nós raramente, provavelmente, digitar www.whatever.com estes dias. 233 00:11:00,450 --> 00:11:03,390 Mas acontece que um administrador de sistema, como Facebook do, pode 234 00:11:03,390 --> 00:11:06,800 configurar os seus servidores de tal maneira que ou Facebook.com funciona, ou 235 00:11:06,800 --> 00:11:12,450 www.Facebook.com funciona, ou, realmente, tal prefixo em frente da sua 236 00:11:12,450 --> 00:11:13,210 nome de domínio. 237 00:11:13,210 --> 00:11:14,500 Então, eles fizeram isso por nós. 238 00:11:14,500 --> 00:11:16,910 E eles estão nos redirecionamento, provavelmente por alguma técnica, 239 00:11:16,910 --> 00:11:18,100 algumas razões de marketing. 240 00:11:18,100 --> 00:11:21,570 Eles só querem canonizar em www.Facebook.com. 241 00:11:21,570 --> 00:11:24,040 >> Mas isso não é bem isso. 242 00:11:24,040 --> 00:11:28,560 Se eu rolar aqui, vamos veja o que acontece. 243 00:11:28,560 --> 00:11:30,810 Isso está me dizendo que movido permanentemente para 244 00:11:30,810 --> 00:11:33,450 http://www.Facebook.com. 245 00:11:33,450 --> 00:11:36,620 Então, vamos olhar para o segundo pedido que o meu navegador envia. 246 00:11:36,620 --> 00:11:40,070 Infelizmente, parece que o Facebook mudou-se novamente porque a segunda 247 00:11:40,070 --> 00:11:44,420 pedido, selecionando essa URL em vez disso, diz que, também, mudou-se 248 00:11:44,420 --> 00:11:45,010 permanentemente. 249 00:11:45,010 --> 00:11:48,140 E deixe-me rolar aqui para os cabeçalhos de resposta. 250 00:11:48,140 --> 00:11:51,530 Onde tem Facebook foi agora? 251 00:11:51,530 --> 00:11:52,680 >> Então HTTPS. 252 00:11:52,680 --> 00:11:56,130 Então agora Facebook começou, particularmente à luz da actual 253 00:11:56,130 --> 00:11:59,750 eventos nos últimos meses, em especial e Também no último par de anos 254 00:11:59,750 --> 00:12:03,670 para obrigar todos os seus usuários, em um bom Assim, o uso de HTTPS, que é mais 255 00:12:03,670 --> 00:12:06,210 seguro, embora não inteiramente segura. 256 00:12:06,210 --> 00:12:10,000 E agora a minha página, meu navegador é vai solicitar esta terceira URL. 257 00:12:10,000 --> 00:12:14,710 E agora, finalmente, temos o de outra forma invisível 200 OK. 258 00:12:14,710 --> 00:12:18,830 >> Então, o que no mundo, ou todos estas outras linhas aqui. 259 00:12:18,830 --> 00:12:22,630 Eu literalmente digitou uma coisa, e minha browser parece ter solicitado como 260 00:12:22,630 --> 00:12:23,840 20 coisas estranhas. 261 00:12:23,840 --> 00:12:24,640 O que é isso? 262 00:12:24,640 --> 00:12:25,810 >> AUDIÊNCIA: Scripts? 263 00:12:25,810 --> 00:12:28,460 >> COLUNA 1: Scripts, para que outros arquivos escritas em uma linguagem chamada 264 00:12:28,460 --> 00:12:30,780 JavaScript, o que, mais uma vez, nós vamos ver um pouco na quarta-feira. 265 00:12:30,780 --> 00:12:32,760 O que mais? 266 00:12:32,760 --> 00:12:33,390 As folhas de estilo. 267 00:12:33,390 --> 00:12:36,350 Então, alguma coisa em uma linguagem chamada CSS, o que vamos ver daqui a pouco. 268 00:12:36,350 --> 00:12:40,690 Gifs, e JPEG e pngs e imagens, e arquivos de filme - o que uma página web 269 00:12:40,690 --> 00:12:43,280 É mais provável que em a forma de um arquivo. 270 00:12:43,280 --> 00:12:46,750 E assim, o que estamos vendo na esquerda lado, há todos os arquivos 271 00:12:46,750 --> 00:12:50,280 que o Chrome teve que baixar, recursiva, se quiser, a fim de 272 00:12:50,280 --> 00:12:52,430 compor a totalidade da página. 273 00:12:52,430 --> 00:12:56,210 >> Então, o que nós vimos há pouco com o Google, se eu clicar sobre os elementos 274 00:12:56,210 --> 00:13:00,470 tab, este, com certeza, é o HTML, o linguagem que compõe esta página. 275 00:13:00,470 --> 00:13:01,890 Mas há cachos de outras coisas. 276 00:13:01,890 --> 00:13:02,640 Há um logotipo. 277 00:13:02,640 --> 00:13:04,680 Há aqueles azul-ish ícones lá. 278 00:13:04,680 --> 00:13:07,610 E há outros elementos ainda em a página que se pode ser 279 00:13:07,610 --> 00:13:08,610 arquivos separados. 280 00:13:08,610 --> 00:13:11,860 >> Então, o que é agradável sobre um navegador é que ele olha para a linguagem que vai 281 00:13:11,860 --> 00:13:14,690 para começar a escrever, ou você já escrita começou em P set 7, figuras 282 00:13:14,690 --> 00:13:17,970 de onde esses arquivos viver e vai e agarra-los também. 283 00:13:17,970 --> 00:13:21,010 E eu não posso enfatizar o suficiente, mesmo embora alguns isso pode parecer um pouco 284 00:13:21,010 --> 00:13:24,820 arcano ou esmagadora, à primeira vista, aprender a programar 285 00:13:24,820 --> 00:13:28,500 aplicativos para a web, é inestimável para compreender como estes 286 00:13:28,500 --> 00:13:29,410 pequenas ferramentas de trabalho. 287 00:13:29,410 --> 00:13:33,830 Trata-se de uma espécie de como GDB como ferramentas, mas muito mais simples, em última análise, para usar - 288 00:13:33,830 --> 00:13:37,690 e realmente dá-lhe os olhos para o que temos vindo a tomar para concedido para 289 00:13:37,690 --> 00:13:39,170 algum tempo agora. 290 00:13:39,170 --> 00:13:42,270 >> Então o que podemos fazer agora com esta informação? 291 00:13:42,270 --> 00:13:44,875 Bem, vamos realmente dar uma olhada Os conceitos subjacentes às HTML. 292 00:13:44,875 --> 00:13:49,025 E vamos adiar, como já temos, para seções esta semana, para o problema 293 00:13:49,025 --> 00:13:53,260 ajuste 7 especificação, a alguns dos mais particularidades de línguas. 294 00:13:53,260 --> 00:13:57,020 Mas vamos ver se não podemos pintar um imagem do que você deve entender 295 00:13:57,020 --> 00:13:57,940 geral aqui. 296 00:13:57,940 --> 00:14:02,280 >> Então, HTML, HyperText Markup Language, não é uma linguagem de programação. 297 00:14:02,280 --> 00:14:03,520 O que isso realmente significa? 298 00:14:03,520 --> 00:14:05,690 Assim HTML parecido com este. 299 00:14:05,690 --> 00:14:06,810 E alguns de vocês já sabem disso. 300 00:14:06,810 --> 00:14:08,130 Alguns de vocês têm vindo a fazer isso há algum tempo. 301 00:14:08,130 --> 00:14:10,270 Mas vamos ver se a gente não pode encher algumas lacunas bem. 302 00:14:10,270 --> 00:14:11,760 Então, observe algumas coisas aqui. 303 00:14:11,760 --> 00:14:13,030 Um deles, é apenas texto. 304 00:14:13,030 --> 00:14:15,960 Assim é como o código-fonte em C, ou de algum outro idioma. 305 00:14:15,960 --> 00:14:17,750 >> Observe que não parece ser um padrão aqui. 306 00:14:17,750 --> 00:14:20,870 Não há recuo, mas tecnicamente o recuo é apenas humano 307 00:14:20,870 --> 00:14:21,205 convenção. 308 00:14:21,205 --> 00:14:24,980 A navegadores não se importa se há novo linhas e guias como vemos lá. 309 00:14:24,980 --> 00:14:27,410 Mas note que não há simetrias aqui. 310 00:14:27,410 --> 00:14:31,180 Não é o que eu chamo, na parte superior do esse arquivo, a tag aberta, ou o início 311 00:14:31,180 --> 00:14:33,030 tag, chamado HTML. 312 00:14:33,030 --> 00:14:36,800 E então, lá em baixo, perfeitamente alinhados acima, assim como fazemos com chaves, 313 00:14:36,800 --> 00:14:40,910 vemos suporte aberto, para a frente slash, HTML, perto do suporte. 314 00:14:40,910 --> 00:14:44,610 Então esse é o correspondente perto tag, ou no fim tag, para aquela coisa. 315 00:14:44,610 --> 00:14:47,990 >> Juntos, tudo dentro do o chamado tag abrir e fechar tag 316 00:14:47,990 --> 00:14:50,440 compor o que vamos chamar de um elemento. 317 00:14:50,440 --> 00:14:53,910 E nós vamos ver, em apenas um momento, é realmente gosto de um nó em uma árvore. 318 00:14:53,910 --> 00:14:57,470 Porque se você pensar agora a recuo que está implícito aqui, você 319 00:14:57,470 --> 00:15:00,780 meio que tem, assim, um avô nó chamado HTML. 320 00:15:00,780 --> 00:15:06,870 Quantos filhos você pode dizer, com base nesta imagem, o elemento HTML tem? 321 00:15:06,870 --> 00:15:07,720 >> Então, provavelmente dois. 322 00:15:07,720 --> 00:15:10,240 Um deles é o elemento principal, aparentemente. 323 00:15:10,240 --> 00:15:11,710 E é o elemento do corpo. 324 00:15:11,710 --> 00:15:12,555 E por dois filhos? 325 00:15:12,555 --> 00:15:15,840 Bem, eu sou apenas um tipo de inferência que se Eu tenho uma marca de cabeça aberta e, em seguida, um 326 00:15:15,840 --> 00:15:17,820 tag cabeça estreita, que é um elemento. 327 00:15:17,820 --> 00:15:21,200 E então, se há um outro corpo aberto tag e uma tag corpo perto, é como 328 00:15:21,200 --> 00:15:22,340 outro elemento. 329 00:15:22,340 --> 00:15:26,000 Assim, no sentido de que se eu tipo de rotação a imagem do seu lado, é 330 00:15:26,000 --> 00:15:29,910 como ter uma tag HTML, e depois um tag cabeça, e então uma tag corpo, e 331 00:15:29,910 --> 00:15:34,290 em seguida, algum texto, Olá mundo, oscilando fora da própria tag body. 332 00:15:34,290 --> 00:15:36,620 >> Assim, podemos desenhar um quadro que pode ser assim. 333 00:15:36,620 --> 00:15:38,020 As formas são arbitrárias. 334 00:15:38,020 --> 00:15:40,870 Mas note que eu usei uma espécie de elipse no topo para representar o 335 00:15:40,870 --> 00:15:41,860 documento em si. 336 00:15:41,860 --> 00:15:45,980 Acontece lá fora, pode ser outra coisa dentro de uma página web que eu não tenho 337 00:15:45,980 --> 00:15:46,940 traçada aqui. 338 00:15:46,940 --> 00:15:50,800 Então vamos até pendurar o HTML fora de nó de um chamado nó de documento. 339 00:15:50,800 --> 00:15:53,730 E então nós temos cabeça e corpo e título, aviso prévio, 340 00:15:53,730 --> 00:15:55,360 que está aninhado mais. 341 00:15:55,360 --> 00:15:58,650 Eu não me incomodei colocar linha adicional rupturas dentro da tag title. 342 00:15:58,650 --> 00:16:02,710 Ele só parecia que estava ficando um pouco detalhado. 343 00:16:02,710 --> 00:16:07,000 Então eu deixei ele em uma linha ali, com título aberta, Olá mundo, próximo título. 344 00:16:07,000 --> 00:16:09,380 E então nós temos algum texto pendendo fora daqui. 345 00:16:09,380 --> 00:16:12,200 >> Portanto, esta imagem vai voltar para nós quando mergulhar em JavaScript. 346 00:16:12,200 --> 00:16:15,110 Ea compreensão de que, quando você escrever HTML como esta, o que 347 00:16:15,110 --> 00:16:16,250 é um navegador fazendo? 348 00:16:16,250 --> 00:16:19,290 Bem, nós não temos que se preocupar com como ele está fazendo isso, ou com o que 349 00:16:19,290 --> 00:16:23,090 algoritmo, mas no final do dia, quando um navegador recebe HTML como 350 00:16:23,090 --> 00:16:27,510 que, do Facebook ou Google, ele analisa é, por assim dizer, ele lê-lo, 351 00:16:27,510 --> 00:16:31,160 com algo como fread, de cima para baixo, da esquerda para a direita, e como ele 352 00:16:31,160 --> 00:16:36,300 percebe, oh, tag aberta e feche tag, ele começa a malloc, por assim dizer, 353 00:16:36,300 --> 00:16:37,800 um nó numa árvore. 354 00:16:37,800 --> 00:16:41,130 E quando encontra, como já implícita aqui com o recuo, um 355 00:16:41,130 --> 00:16:45,400 nó filho, mallocs um nó para que e anexado para que a árvore. 356 00:16:45,400 --> 00:16:49,150 >> Assim, a estrutura de árvore, árvores binárias, árvores ternários, e árvores maiores, que 357 00:16:49,150 --> 00:16:53,380 que olhou para uma ou duas semanas atrás, o aviso que é o mesmo princípio 358 00:16:53,380 --> 00:16:54,220 voltando para nós. 359 00:16:54,220 --> 00:16:57,590 E quem implementado, o que Chrome equipe fez que, presumivelmente, tinha 360 00:16:57,590 --> 00:17:00,800 para implementar algum tipo de estrutura de árvore debaixo do capô. 361 00:17:00,800 --> 00:17:05,329 E isso em si é, provavelmente, em um linguagem como C, C + + ou, ou uma menor 362 00:17:05,329 --> 00:17:08,540 linguagem de nível que vamos agora usar no topo da web. 363 00:17:08,540 --> 00:17:11,200 >> Então, agora, talvez, isso vai fazer mais sentido. 364 00:17:11,200 --> 00:17:15,420 Tatuagem real de um cara que pode se arrepender, eventualmente, um pouco. 365 00:17:15,420 --> 00:17:17,359 OK, tudo bem, então um monte de humor web. 366 00:17:17,359 --> 00:17:18,599 Não está realmente acontecendo sobre tão bem hoje. 367 00:17:18,599 --> 00:17:19,560 Então, vamos seguir em frente. 368 00:17:19,560 --> 00:17:20,180 Tudo bem. 369 00:17:20,180 --> 00:17:22,760 >> Então, vamos dar uma olhada agora em alguns exemplos. 370 00:17:22,760 --> 00:17:24,660 O mais simples possível coisa pode ser isso. 371 00:17:24,660 --> 00:17:29,170 Eu estou indo para ir em frente e abrir em gedit um arquivo chamado hello.php. 372 00:17:29,170 --> 00:17:31,730 373 00:17:31,730 --> 00:17:36,330 E aqui dentro, eu vou rapidamente apenas isso, printf, citar 374 00:17:36,330 --> 00:17:38,590 unquote, "Olá mundo". 375 00:17:38,590 --> 00:17:42,460 >> Assim, o aviso prévio, e eu vou fazer a minha barra invertida n, Eu não tenho preocupou em declarar principal. 376 00:17:42,460 --> 00:17:45,310 Acontece que, em php, e um monte de idiomas, você não precisa de um principal 377 00:17:45,310 --> 00:17:46,090 função de per se. 378 00:17:46,090 --> 00:17:47,720 Você pode simplesmente começar a escrever seu programa. 379 00:17:47,720 --> 00:17:51,210 Agora, quando eu salvar esse arquivo, repare que eu sou vai ter que fazer o seguinte. 380 00:17:51,210 --> 00:17:55,360 Eu não vou usar make, e eu não sou vai usar bumbum porque PHP, ao contrário 381 00:17:55,360 --> 00:17:57,400 C, não é uma linguagem compilada. 382 00:17:57,400 --> 00:18:01,400 É o que se chama de interpretação linguagem, o que significa que você executá-lo 383 00:18:01,400 --> 00:18:04,650 como uma entrada através de um outro programa chamado de um intérprete. 384 00:18:04,650 --> 00:18:08,150 E esse programa lê-lo, de cima para baixo, da esquerda para a direita, e faz 385 00:18:08,150 --> 00:18:09,290 o que você diga a ele para fazer. 386 00:18:09,290 --> 00:18:12,920 >> Portanto, neste caso aqui eu tenho uma linha que diz printf. 387 00:18:12,920 --> 00:18:17,990 Então, quando eu executar este código-fonte, ola.php, apesar de um programa que 388 00:18:17,990 --> 00:18:22,830 acontece, convenientemente, a ser chamado de PHP, esse programa PHP vai ler 389 00:18:22,830 --> 00:18:26,120 este arquivo, de cima para baixo, da esquerda para a direita, e vai fazer o que eu 390 00:18:26,120 --> 00:18:30,110 diga a ele para fazer - a execução de código, e se ele não reconhece alguma coisa, apenas 391 00:18:30,110 --> 00:18:31,320 cuspi-la. 392 00:18:31,320 --> 00:18:34,940 Então, eu estou indo para ir em frente e executar PHP de hello.php. 393 00:18:34,940 --> 00:18:37,110 Enter. 394 00:18:37,110 --> 00:18:39,690 >> E isso não é bem o que eu pretendia. 395 00:18:39,690 --> 00:18:40,530 Bem, por que isso? 396 00:18:40,530 --> 00:18:43,910 Bem, PHP é uma linguagem que é realmente projetado para ser bastante 397 00:18:43,910 --> 00:18:46,150 confunde com a web. 398 00:18:46,150 --> 00:18:50,460 Ao fazer páginas da web com esta linguagem PHP, como veremos em breve, nós vamos 399 00:18:50,460 --> 00:18:54,560 quero fazer algo parecido com impressão as linhas como esta. 400 00:18:54,560 --> 00:18:55,940 >> Então eu vou fazer isso. 401 00:18:55,940 --> 00:19:00,810 Abra o suporte, ponto de interrogação, PHP, e agora eu só vou recuar apenas para manter 402 00:19:00,810 --> 00:19:01,960 coisas boas. 403 00:19:01,960 --> 00:19:04,910 E agora eu vou fazer uma pergunta marcar perto do suporte. 404 00:19:04,910 --> 00:19:06,270 Portanto, há um pouco de assimetria aqui. 405 00:19:06,270 --> 00:19:07,490 Você não faz isso. 406 00:19:07,490 --> 00:19:10,530 E você não fizer um corte, de modo PHP é um pouco diferente. 407 00:19:10,530 --> 00:19:14,610 >> Mas agora, se eu reprise deste programa, PHP hello.php, agora eu 408 00:19:14,610 --> 00:19:16,090 realmente obter Olá Mundo. 409 00:19:16,090 --> 00:19:17,750 E nós vamos ver por que isso é valioso. 410 00:19:17,750 --> 00:19:20,960 Um deles, que me permite especificar, Super explicitamente, este é 411 00:19:20,960 --> 00:19:22,480 código, executar isso. 412 00:19:22,480 --> 00:19:25,480 E isso é realmente o que estes tags especiais implica aqui. 413 00:19:25,480 --> 00:19:30,330 >> Mas isso também significa que, se eu só faço algo como meu objetivo aqui, que 414 00:19:30,330 --> 00:19:34,000 significa que, literalmente, que apenas ser impressos sem a necessidade de 415 00:19:34,000 --> 00:19:36,850 realmente chamar printf, ou impressão, ou qualquer outra função semelhante. 416 00:19:36,850 --> 00:19:39,445 Então, vamos voltar ao que em apenas um momento. 417 00:19:39,445 --> 00:19:40,470 >> Primeiro, vamos fazer isso. 418 00:19:40,470 --> 00:19:43,950 Dentro do aparelho, temos uma diretório chamado VHosts, para o Virtual 419 00:19:43,950 --> 00:19:47,000 Exércitos, cortar host local, cortar público. 420 00:19:47,000 --> 00:19:50,240 Então é um pouco prolixo, mas longa história Resumindo, o aparelho não foi projetado 421 00:19:50,240 --> 00:19:53,770 apenas para apoiar C. É também projetado para suportar PHP. 422 00:19:53,770 --> 00:19:57,440 Mas também é projetado para ser um web servidor, e um servidor de banco de dados. 423 00:19:57,440 --> 00:20:00,230 E ele é projetado, e verdadeiramente configurado, para ser reminiscente de nenhuma 424 00:20:00,230 --> 00:20:04,230 comercial da empresa de hospedagem que você pode pagar R $ 5 por mês para, 425 00:20:04,230 --> 00:20:05,040 US $ 100 por mês para. 426 00:20:05,040 --> 00:20:08,200 Seja qual for o serviço é, está configurado seja muito semelhante a um 427 00:20:08,200 --> 00:20:10,170 servidor de produção no mundo real. 428 00:20:10,170 --> 00:20:13,485 >> E o que isso significa é que a execução em o aparelho é um software de servidor web. 429 00:20:13,485 --> 00:20:15,060 Ela passa a ser chamado de Apache. 430 00:20:15,060 --> 00:20:17,790 É apenas livre e de código aberto, e muito popular. 431 00:20:17,790 --> 00:20:23,260 E nós configuramos Apache saber que se eu visitar uma determinada URL, com 432 00:20:23,260 --> 00:20:28,060 Chrome ou qualquer navegador dentro do aparelho, a olhar para este diretório 433 00:20:28,060 --> 00:20:31,030 para os arquivos que o usuário está solicitando. 434 00:20:31,030 --> 00:20:32,790 >> Em outras palavras, deixe-me vá em frente e faça isso. 435 00:20:32,790 --> 00:20:36,890 Dentro do meu diretório público, eu vou para ir em frente e criar um arquivo 436 00:20:36,890 --> 00:20:39,580 chamado index.html. 437 00:20:39,580 --> 00:20:41,000 Isso me dá a guia aqui. 438 00:20:41,000 --> 00:20:44,210 E eu estou indo para ir muito rapidamente e vá em frente e bater para fora 439 00:20:44,210 --> 00:20:45,010 este programa. 440 00:20:45,010 --> 00:20:48,410 Doctype HTML, o que, por agora, apenas supor que você tem que digitar. 441 00:20:48,410 --> 00:20:53,490 É apenas uma tag arcano, que não é realmente uma tag HTML, que especifica que 442 00:20:53,490 --> 00:20:55,050 aqui vem um pouco de HTML. 443 00:20:55,050 --> 00:20:57,400 >> Eu estou indo para ir em frente e recriar o que vimos há pouco. 444 00:20:57,400 --> 00:20:58,650 Aqui está a cabeça da página. 445 00:20:58,650 --> 00:21:01,170 Dentro da cabeça era o - 446 00:21:01,170 --> 00:21:01,890 assim título. 447 00:21:01,890 --> 00:21:04,340 Então, vamos dizer Olá, mundo. 448 00:21:04,340 --> 00:21:06,570 E então para cá foi a marca do corpo. 449 00:21:06,570 --> 00:21:08,580 Deixe-me fechar a tag body. 450 00:21:08,580 --> 00:21:12,280 E então, aqui eu também vou dizer, apenas para maior clareza, Olá mundo. 451 00:21:12,280 --> 00:21:14,770 >> Portanto, esta é, sem dúvida, o mais simples possível página web você 452 00:21:14,770 --> 00:21:15,770 pode fazer isso é válido. 453 00:21:15,770 --> 00:21:17,030 É sintaticamente válido. 454 00:21:17,030 --> 00:21:18,620 Tudo o que está aberta é fechada. 455 00:21:18,620 --> 00:21:20,910 Tudo está bem em estilo e recuado. 456 00:21:20,910 --> 00:21:23,600 Então, vamos ver agora como eu pode acessar esse arquivo. 457 00:21:23,600 --> 00:21:25,540 >> Bem, deixe-me ir para o Chrome aqui. 458 00:21:25,540 --> 00:21:35,050 E deixe-me ir http://localhost/index.html. 459 00:21:35,050 --> 00:21:36,200 Então o que é host local? 460 00:21:36,200 --> 00:21:39,400 Bem, a maioria de qualquer computador no mundo, Linux, Mac OS, Windows, tem um apelido 461 00:21:39,400 --> 00:21:40,680 chamado host local. 462 00:21:40,680 --> 00:21:42,900 Então, se você quiser falar para o seu próprio computador - 463 00:21:42,900 --> 00:21:45,140 embora, estranhamente reflexivamente - 464 00:21:45,140 --> 00:21:47,080 você se chama host local. 465 00:21:47,080 --> 00:21:50,390 Não importa o que o seu computador atual é chamada, seja MacBook de David 466 00:21:50,390 --> 00:21:52,490 Ar, ou algo mais detalhado como esse. 467 00:21:52,490 --> 00:21:57,760 >> Portanto, este URL é, aparentemente, vai usar o HTTP para conversar com o host local, 468 00:21:57,760 --> 00:22:00,800 no mesmo computador, o aparelho, e ele vai pedir, basta dar uma 469 00:22:00,800 --> 00:22:02,570 acho, que arquivo? 470 00:22:02,570 --> 00:22:04,460 Index.html. 471 00:22:04,460 --> 00:22:08,650 Assim, o aparelho foi configurado no avançar para saber que, se eu estou pedindo 472 00:22:08,650 --> 00:22:13,460 para algo como index.html, procure em uma pasta chamada VHosts, em um 473 00:22:13,460 --> 00:22:17,950 pasta chamada localhost, em uma pasta aí chamados público. 474 00:22:17,950 --> 00:22:20,400 É aí que todo o meu público arquivos vão ser. 475 00:22:20,400 --> 00:22:22,610 Então, eu estou indo agora pressione Enter. 476 00:22:22,610 --> 00:22:27,100 >> E, caramba, não é que proibido mensagem, também conhecido como 403, o 477 00:22:27,100 --> 00:22:28,490 código numérico para isso. 478 00:22:28,490 --> 00:22:30,130 Então o que está errado aqui? 479 00:22:30,130 --> 00:22:33,210 Bem, não é suficiente apenas para colocar o arquivo dentro da minha pasta. 480 00:22:33,210 --> 00:22:35,790 Eu preciso realmente fazer o seguinte. 481 00:22:35,790 --> 00:22:40,210 >> Deixe-me ir para o meu diretório VHosts, em localhost, em público, e que 482 00:22:40,210 --> 00:22:41,680 me fazer ls traço l. 483 00:22:41,680 --> 00:22:44,510 E há algumas outras coisas aqui para fins de hoje. 484 00:22:44,510 --> 00:22:50,540 Mas repare no lado esquerdo, ao lado para index.html, vemos apenas um RW. 485 00:22:50,540 --> 00:22:53,560 E, no passado, o que tem RW representava? 486 00:22:53,560 --> 00:22:54,240 >> Basta ler ou escrever. 487 00:22:54,240 --> 00:22:58,000 O fato de que ele diz rw à esquerda Significa que, o proprietário deste arquivo, pode 488 00:22:58,000 --> 00:22:59,020 ler ou escrever. 489 00:22:59,020 --> 00:23:05,010 Mas eu preciso que todas as pessoas no mundo ler isso, mas não escrevê-lo. 490 00:23:05,010 --> 00:23:09,650 Então, eu vou mudar o modo do arquivo, chmod, tudo para dar mais r 491 00:23:09,650 --> 00:23:13,910 todos permissão de leitura no arquivo chamado index.html. 492 00:23:13,910 --> 00:23:18,040 >> E se eu agora redigitar ls traço l, observe que, por aqui, um pouco mais 493 00:23:18,040 --> 00:23:19,160 R da surgiram. 494 00:23:19,160 --> 00:23:21,090 E, por agora, a especificação vai em mais detalhe. 495 00:23:21,090 --> 00:23:24,450 Para P set 7, que apenas significa que todos agora pode ler este arquivo. 496 00:23:24,450 --> 00:23:27,790 Se eu voltar para o meu navegador agora e recarregar, voila. 497 00:23:27,790 --> 00:23:28,750 Olá, mundo. 498 00:23:28,750 --> 00:23:32,260 >> E eu posso até mesmo abrir minhas ferramentas do Chrome e ver, assim como com o Google e 499 00:23:32,260 --> 00:23:34,590 Facebook que não é o meu HTML, formatado um pouco 500 00:23:34,590 --> 00:23:35,930 diferente e coloridos. 501 00:23:35,930 --> 00:23:40,450 Se eu vá para a aba de rede e recarregar a página, observe que há a chegar 502 00:23:40,450 --> 00:23:42,900 solicitar que o Chrome é o envio de para o aparelho. 503 00:23:42,900 --> 00:23:46,020 Há o 200 para que arquivo específico. 504 00:23:46,020 --> 00:23:49,340 Então, em suma, é assim que todos estes várias peças estão se encaixando. 505 00:23:49,340 --> 00:23:53,530 O que acontece é que o servidor web estamos usando agora não é remota, 506 00:23:53,530 --> 00:23:54,210 como o Facebook. 507 00:23:54,210 --> 00:23:58,330 É, literalmente, no mesmo computador, o que é perfeitamente OK. 508 00:23:58,330 --> 00:24:00,590 >> Então, o que mais podemos fazer em uma página web? 509 00:24:00,590 --> 00:24:03,110 Bem, só, vamos brisa através um par dessas coisas. 510 00:24:03,110 --> 00:24:07,860 Mas deixe-me ir em frente e reabrir Gedit com index.html. 511 00:24:07,860 --> 00:24:13,980 E deixe-me ir em frente e dizer Olá CS50, salve este arquivo, volte para o 512 00:24:13,980 --> 00:24:16,260 browser, muito abaixo do esperado mudança. 513 00:24:16,260 --> 00:24:19,130 >> Mas o que se quer, na verdade, vincular a alguma coisa agora? 514 00:24:19,130 --> 00:24:23,480 Assim, verifica-se que podemos ter a links em HTML que são apenas marcas 515 00:24:23,480 --> 00:24:24,140 si. 516 00:24:24,140 --> 00:24:27,320 Ela passa a ser chamado de tag âncora. a href igual 517 00:24:27,320 --> 00:24:33,190 https://www.cs50.net, www.cs50.net próxima citação, perto do suporte. 518 00:24:33,190 --> 00:24:35,230 E agora vamos ver o que o resto vem junto. 519 00:24:35,230 --> 00:24:36,500 >> Eu abri a tag. 520 00:24:36,500 --> 00:24:38,990 Agora eu preciso dar-lhe uma frase como CS50. 521 00:24:38,990 --> 00:24:40,600 Deixe-me fechar a tag. 522 00:24:40,600 --> 00:24:42,010 E notar algumas coisas. 523 00:24:42,010 --> 00:24:45,270 Mesmo que não há essa coisa enigmática aqui, eu não tenho repetido quando você 524 00:24:45,270 --> 00:24:46,010 fechar a tag. 525 00:24:46,010 --> 00:24:48,230 Você acabou de fechar a tag com o seu nome sozinho. 526 00:24:48,230 --> 00:24:50,940 E isso é o que é conhecido como um atributo com um valor. 527 00:24:50,940 --> 00:24:56,070 Atributos apenas modificar o comportamento de alguma tag dentro de uma página. 528 00:24:56,070 --> 00:24:59,150 >> Portanto, esta é a especificação de que a hiper referência, a maneira elegante de dizer o 529 00:24:59,150 --> 00:25:03,660 URL para essa âncora, para este link, deve ser CS50.net. 530 00:25:03,660 --> 00:25:07,440 E o texto que queremos mostrar a usuário não é que URL cru, mas sim 531 00:25:07,440 --> 00:25:08,730 a palavra CS50. 532 00:25:08,730 --> 00:25:13,710 >> Então, se agora eu recarregar, deixe-me zoom in para clareza, deixe-me recarregar a página, 533 00:25:13,710 --> 00:25:16,460 notar que temos essa velha escola sublinhado azul link. 534 00:25:16,460 --> 00:25:20,000 E se eu passar o mouse sobre ele, e ele vai ser difícil de ver, no canto inferior esquerdo 535 00:25:20,000 --> 00:25:23,690 canto da tela, observe que diz que a URL para a qual 536 00:25:23,690 --> 00:25:24,430 Eu estou indo para ir. 537 00:25:24,430 --> 00:25:27,940 E se eu clicar ali, voila, agora eu estou fazendo páginas da web. 538 00:25:27,940 --> 00:25:30,140 E nós nos levou para a página inicial. 539 00:25:30,140 --> 00:25:32,670 >> Mas note que potencial este nos oferece. 540 00:25:32,670 --> 00:25:34,890 A segurança é muito em voga nos dias de hoje. 541 00:25:34,890 --> 00:25:41,210 E se eu, em vez dizer algo como isso, e eu em vez de ir para, por exemplo, vamos 542 00:25:41,210 --> 00:25:42,460 ver, fakeCS50.net. 543 00:25:42,460 --> 00:25:44,660 544 00:25:44,660 --> 00:25:46,360 Recarregue esta página. 545 00:25:46,360 --> 00:25:50,180 >> OK, assim que notar que ainda parece que estou vai CS50, a menos que um olho astuto 546 00:25:50,180 --> 00:25:51,560 vai notar que eu estou indo para CS50 falso. 547 00:25:51,560 --> 00:25:54,550 Eu estou supondo que este domínio não é tomada. 548 00:25:54,550 --> 00:25:55,960 OK, então ele não está disponível. 549 00:25:55,960 --> 00:25:56,600 Então, isso é bom. 550 00:25:56,600 --> 00:25:57,900 Ninguém realmente tem esse domínio. 551 00:25:57,900 --> 00:26:00,380 >> Mas vamos ser um pouco mais malicioso porque esse é o tipo de estúpido. 552 00:26:00,380 --> 00:26:02,240 E se a gente mudar isso para Paypal. 553 00:26:02,240 --> 00:26:09,960 E se nós chamamos este tipo, www.paypal.badguy.com, 554 00:26:09,960 --> 00:26:12,070 qualquer que seja o domínio é. 555 00:26:12,070 --> 00:26:13,700 Isso provavelmente existe. 556 00:26:13,700 --> 00:26:16,260 Então, agora deixe-me recarregar a página. 557 00:26:16,260 --> 00:26:22,890 E aqui temos uma espécie de phishing ataque, P-H-I-S-H-I-N-L, que é o 558 00:26:22,890 --> 00:26:26,760 palavra bobo dado para um ataque que tenta informação peixe, ou, melhor 559 00:26:26,760 --> 00:26:30,450 ainda, dinheiro, das pessoas, enganando los para proporcionar informação que 560 00:26:30,450 --> 00:26:31,990 eles não poderiam fazer. 561 00:26:31,990 --> 00:26:33,500 Isso parece totalmente legítimo, certo? 562 00:26:33,500 --> 00:26:34,930 Eu devo ter um link aqui para Paypal.com. 563 00:26:34,930 --> 00:26:37,700 564 00:26:37,700 --> 00:26:40,430 Para ser justo, se eu sexados-lo com algum gráficos, podemos torná-la 565 00:26:40,430 --> 00:26:41,310 mais como PayPal. 566 00:26:41,310 --> 00:26:41,510 Certo? 567 00:26:41,510 --> 00:26:43,815 Porque eu poderia, como um aparte, Eu poderia ir para Paypal.com. 568 00:26:43,815 --> 00:26:47,110 E acabamos de ver como eu posso ver todo o seu HTML. 569 00:26:47,110 --> 00:26:50,560 Eu poderia simplesmente copiá-lo e recriar a estética do Paypal ao invés de ir 570 00:26:50,560 --> 00:26:51,490 velha escola aqui. 571 00:26:51,490 --> 00:26:55,010 Mas repare, é claro, e é um pouco pequeno, ainda assim, apenas no fundo 572 00:26:55,010 --> 00:26:59,190 canto esquerdo, como em um ponto 10 fonte, você vê o que você está URL 573 00:26:59,190 --> 00:27:01,310 realmente vai ser levado a. 574 00:27:01,310 --> 00:27:06,580 >> E por isso, se você já ficou de spam dizendo vá em frente, e você conta 575 00:27:06,580 --> 00:27:07,420 foi comprometida. 576 00:27:07,420 --> 00:27:10,615 Por favor, clique neste link e deixe-nos saber a senha para que possamos garantir que você é 577 00:27:10,615 --> 00:27:13,010 você, nunca mais faça isso. 578 00:27:13,010 --> 00:27:14,180 Estas coisas devem ir sem dizer. 579 00:27:14,180 --> 00:27:17,670 Mas é maravilhosamente divertido, e trágico, como todos os anos, este parece 580 00:27:17,670 --> 00:27:19,660 acontecer com alguns não nula número de pessoas. 581 00:27:19,660 --> 00:27:21,400 >> E essa é a beleza de ataques de phishing. 582 00:27:21,400 --> 00:27:23,160 Você pode enviar um milhão de e-mails. 583 00:27:23,160 --> 00:27:27,720 E mesmo que 0,01% das pessoas que realmente clique no Paypal e dar-lhe o seu 584 00:27:27,720 --> 00:27:31,040 senha, que ainda é um número diferente de zero de pessoas que acabou dando 585 00:27:31,040 --> 00:27:32,200 lhe o seu dinheiro. 586 00:27:32,200 --> 00:27:36,170 E envio de e-mails, é claro, é bastante fácil e, essencialmente, livre 587 00:27:36,170 --> 00:27:36,970 nos dias de hoje. 588 00:27:36,970 --> 00:27:40,410 >> Assim, longa história curta, maravilhosamente bela idéia, certo? 589 00:27:40,410 --> 00:27:44,620 Anos atrás, este foi o primeiro web, permitindo uma rede de 590 00:27:44,620 --> 00:27:46,330 hyperlinks entre recursos. 591 00:27:46,330 --> 00:27:49,520 Mas tão rapidamente poderia ser utilizado para fins de doentes. 592 00:27:49,520 --> 00:27:54,100 E-mail, basta dizer que, estes dias, já HTML embutida dentro. 593 00:27:54,100 --> 00:27:55,410 >> Bem, deixe-me apenas uma coisa. 594 00:27:55,410 --> 00:27:58,640 E vamos adiar em grande parte a seção conjunto de problemas de sete para permitir que você 595 00:27:58,640 --> 00:28:00,000 explorar os detalhes. 596 00:28:00,000 --> 00:28:01,990 Mas deixe-me ir em frente e fazer algumas coisas aqui. 597 00:28:01,990 --> 00:28:04,840 Eu estou indo para ir e declarar o que é chamado um div ou 598 00:28:04,840 --> 00:28:06,080 divisão, da página. 599 00:28:06,080 --> 00:28:07,770 Deixe-me fechar a tag div. 600 00:28:07,770 --> 00:28:11,460 >> E eu vou dizer-se aqui topo da página. 601 00:28:11,460 --> 00:28:14,940 E, em seguida, abaixo deste, eu vou fazer algo como outra div, feche esta 602 00:28:14,940 --> 00:28:17,800 tag, e fazer parte inferior da página. 603 00:28:17,800 --> 00:28:18,840 E vamos salvá-lo. 604 00:28:18,840 --> 00:28:21,040 >> Então agora vamos voltar para o meu arquivo. 605 00:28:21,040 --> 00:28:22,120 Muito abaixo do esperado. 606 00:28:22,120 --> 00:28:25,520 Mas o que é utilizado para a divisão, debaixo do capô, é que é verdade 607 00:28:25,520 --> 00:28:26,920 um elemento estrutural agradável. 608 00:28:26,920 --> 00:28:30,300 Ele não tem nenhum estética medida em podemos ver, para além de, aparentemente, 609 00:28:30,300 --> 00:28:31,890 colocar as coisas em novas linhas. 610 00:28:31,890 --> 00:28:36,290 >> Mas aviso, como um aparte, apenas bater Digite não cortá-lo em HTML como ele 611 00:28:36,290 --> 00:28:39,840 não em C. Você pode pensar que isso é vai colocar uma grande lacuna legal entre 612 00:28:39,840 --> 00:28:41,300 a parte superior e na parte inferior da página. 613 00:28:41,300 --> 00:28:43,420 Mas é ignorado. 614 00:28:43,420 --> 00:28:48,040 O espaço em branco é essencialmente ignorada em excepto a primeira páginas 615 00:28:48,040 --> 00:28:51,530 personagem barra de espaço, ou retorno de carro que você bateu no teclado. 616 00:28:51,530 --> 00:28:55,370 Se você quiser mais quebras de linha, você tem que especificar-lo sozinho. 617 00:28:55,370 --> 00:28:59,080 >> Então, eu vou fazer algumas coisas aqui para mostrar o que está acontecendo. 618 00:28:59,080 --> 00:29:02,700 Eu estou indo para adicionar um atributo que existe e, novamente, a maneira como você aprende 619 00:29:02,700 --> 00:29:07,110 que atribui existe, o que existem tags realmente, é referências on-line. 620 00:29:07,110 --> 00:29:09,750 HTML é o tipo de linguagem - é não é uma linguagem de programação. 621 00:29:09,750 --> 00:29:12,460 É uma linguagem de marcação - que depois de um boa meia hora, talvez, de uma hora com 622 00:29:12,460 --> 00:29:15,930 isso, você certamente vai entender, mais provavelmente, a idéia básica. 623 00:29:15,930 --> 00:29:20,350 E, em seguida, uma pesquisa no Google para longe é tudo as possíveis marcas que você pode ser 624 00:29:20,350 --> 00:29:21,170 interessado polegadas 625 00:29:21,170 --> 00:29:24,290 E por a especificação, que é bastante boas-vindas e incentivadas aqui. 626 00:29:24,290 --> 00:29:26,120 >> Então, agora deixe-me ir em frente e fazer algo assim. 627 00:29:26,120 --> 00:29:28,690 Background-color. 628 00:29:28,690 --> 00:29:32,060 E agora, eu vou fazer alguma coisa como vermelho, ponto e vírgula. 629 00:29:32,060 --> 00:29:33,970 E você pode fazer isso em algumas maneiras diferentes. 630 00:29:33,970 --> 00:29:36,770 Eu sou apenas um tipo de digitá-lo como super explicitamente quanto possível. 631 00:29:36,770 --> 00:29:41,960 >> Mas verifica-se que este valor é aqui que é chamado de CSS, Cascading Style 632 00:29:41,960 --> 00:29:43,700 Folhas, que é outra linguagem completamente. 633 00:29:43,700 --> 00:29:46,770 CSS não tem nada a ver com abrir etiquetas e tags íntimos. 634 00:29:46,770 --> 00:29:48,230 Tem a ver com as propriedades. 635 00:29:48,230 --> 00:29:52,660 >> E as propriedades são de valor simplesmente chave pares, o que significa apenas uma palavra, 636 00:29:52,660 --> 00:29:54,680 cólon e, em seguida, uma outra palavra. 637 00:29:54,680 --> 00:29:57,940 E se você tiver vários queridos, ou apenas aqui, você pode terminá-la com um 638 00:29:57,940 --> 00:29:59,390 ponto e vírgula, apenas para maior clareza. 639 00:29:59,390 --> 00:30:01,370 Mas isso também vai funcionar aqui. 640 00:30:01,370 --> 00:30:02,500 >> Agora, o que isso vai fazer? 641 00:30:02,500 --> 00:30:03,610 Você provavelmente pode adivinhar. 642 00:30:03,610 --> 00:30:05,930 Deixe-me ir em frente e recarregue esta página. 643 00:30:05,930 --> 00:30:07,300 E agora ele está realmente bem vinda. 644 00:30:07,300 --> 00:30:09,150 Então topo da minha página é o vermelho. 645 00:30:09,150 --> 00:30:12,380 Mas o que é importante aqui é que, eu mencionei antes, que lhe dá div 646 00:30:12,380 --> 00:30:13,220 uma divisão da página. 647 00:30:13,220 --> 00:30:14,410 E isso é realmente o que ele faz. 648 00:30:14,410 --> 00:30:17,920 É essencialmente divide a página em um retângulo que você pode, então, 649 00:30:17,920 --> 00:30:18,720 manipular. 650 00:30:18,720 --> 00:30:22,330 >> E essa noção de retângulos é uma espécie de convincente em que, se você pensar em 651 00:30:22,330 --> 00:30:26,410 mais qualquer site, há provavelmente alguma estrutura que lhe. 652 00:30:26,410 --> 00:30:29,620 A maioria de vocês já deve ter visto raramente Página inicial do Facebook, se você estiver logado 653 00:30:29,620 --> 00:30:30,440 em todo o tempo. 654 00:30:30,440 --> 00:30:33,920 >> Mas na página inicial do Facebook, há algum tipo de div, ao longo do topo. 655 00:30:33,920 --> 00:30:36,140 E isso pode não ser tão simples como uma div, mas não há uma 656 00:30:36,140 --> 00:30:37,560 lá da região rectangular. 657 00:30:37,560 --> 00:30:40,290 O resto da página é como uma enorme div, como um grande 658 00:30:40,290 --> 00:30:41,910 maior região retangular. 659 00:30:41,910 --> 00:30:44,540 Assim, longa história curta, apenas por ter esses pequenos blocos de construção, os 660 00:30:44,540 --> 00:30:49,250 capacidade de coisas modelo como retângulos, se larga ou estreita, você também pode 661 00:30:49,250 --> 00:30:53,680 fazer colunas potencialmente, permite que você lay out páginas, realmente, mas você 662 00:30:53,680 --> 00:30:54,100 gostaria. 663 00:30:54,100 --> 00:30:56,170 Nós realmente estamos apenas arranhando a superfície aqui. 664 00:30:56,170 --> 00:30:59,820 >> Na verdade, se eu fizer um outro, deixe-me ir em frente e fazer estilo, 665 00:30:59,820 --> 00:31:05,410 background-color, vamos fazer alguma coisa como azul, citações próximos. 666 00:31:05,410 --> 00:31:06,620 Vamos recarregar esta. 667 00:31:06,620 --> 00:31:08,260 Então, agora está ficando ainda mais feia. 668 00:31:08,260 --> 00:31:11,520 Mas agora eu posso tipo de show off minha P definir cinco habilidades, certo? 669 00:31:11,520 --> 00:31:12,690 Vermelho. 670 00:31:12,690 --> 00:31:15,640 Isso me lembra de RGB, Vermelho Triplica verde e azul. 671 00:31:15,640 --> 00:31:19,330 Bem, ao que parece em programação web, ou web design, o que é isso, temos 672 00:31:19,330 --> 00:31:21,650 ainda não programou nada por si só, você pode realmente 673 00:31:21,650 --> 00:31:22,880 tem o código hexadecimal. 674 00:31:22,880 --> 00:31:26,480 Então, alguma coisa alguma coisa, alguma coisa alguma coisa, alguma coisa alguma coisa. 675 00:31:26,480 --> 00:31:30,650 Então você pode ter seis hexadecimal caracteres, ou três, em alguns casos, 676 00:31:30,650 --> 00:31:33,480 e cada um desses pontos de interrogação Tem que haver uma dígitos hexadecimais 677 00:31:33,480 --> 00:31:34,985 zero a f. 678 00:31:34,985 --> 00:31:41,000 >> Se eu quiser ter um monte de vermelho, e nenhum verde, e não azul, que é a 679 00:31:41,000 --> 00:31:43,740 oposto do zero quando usando hexadecimal? 680 00:31:43,740 --> 00:31:44,480 É f. 681 00:31:44,480 --> 00:31:51,130 Então eu posso fazer ff, zero zero, zero zero, salvar este, e agora vem aqui. 682 00:31:51,130 --> 00:31:52,700 E eu realmente não ver uma mudança. 683 00:31:52,700 --> 00:31:56,230 Então citação unquote "red" é, aparentemente, sinônimo para todo vermelho, 684 00:31:56,230 --> 00:31:57,610 nenhum verde, não azul. 685 00:31:57,610 --> 00:31:59,960 Enquanto isso, vamos mudar deliberadamente este ser algo 686 00:31:59,960 --> 00:32:01,210 aleatória, como ABCDF. 687 00:32:01,210 --> 00:32:03,790 688 00:32:03,790 --> 00:32:05,860 >> Vamos ver o que é. 689 00:32:05,860 --> 00:32:08,530 É realmente um bom azul, na verdade, azul bebê. 690 00:32:08,530 --> 00:32:11,820 Tudo bem, então estes são apenas agora combinações de mais ou menos aleatórias 691 00:32:11,820 --> 00:32:12,210 caracteres. 692 00:32:12,210 --> 00:32:13,410 Portanto, não vamos ficar atolados aqui. 693 00:32:13,410 --> 00:32:15,930 Mas, novamente, isso fala com a precisão que você pode começar a 694 00:32:15,930 --> 00:32:19,090 aplicar - mesmo se você estiver muito sobrecarregado pela estética. 695 00:32:19,090 --> 00:32:21,750 Na verdade, se você realmente quer ser impressionado, deixe-me ir em frente e mudar 696 00:32:21,750 --> 00:32:23,500 o tamanho da fonte, por exemplo. 697 00:32:23,500 --> 00:32:25,960 E observe o ponto e vírgula, que É necessário aí. 698 00:32:25,960 --> 00:32:29,570 >> Tamanho da fonte, que pode ser simplesmente ridículo aqui, 96 pontos. 699 00:32:29,570 --> 00:32:31,280 Salve isso. 700 00:32:31,280 --> 00:32:33,670 Uau, isso é um tamanho de fonte grande. 701 00:32:33,670 --> 00:32:35,490 Tudo bem, por isso é muito fácil. 702 00:32:35,490 --> 00:32:38,260 E, na verdade, você está essencialmente vendo primeira página web que fiz 703 00:32:38,260 --> 00:32:40,060 anos atrás, quando pela primeira vez Aprendi essas coisas. 704 00:32:40,060 --> 00:32:42,190 É muito fácil de fazer muito coisas horríveis rapidamente. 705 00:32:42,190 --> 00:32:46,115 >> E se você estiver familiarizado com o Wayback Máquina em archive.org, você 706 00:32:46,115 --> 00:32:48,210 pode encontrar toda a minha hediondo páginas web de graduação. 707 00:32:48,210 --> 00:32:50,090 Um tinha Caco, o Sapo na frente. 708 00:32:50,090 --> 00:32:53,150 Eu passei por uma fase em que eu pensei foi legal para levar o pano de fundo 709 00:32:53,150 --> 00:32:56,320 uma cortina vermelha, quando eu aprendi como você can imagens de azulejos de novo, e de novo, e 710 00:32:56,320 --> 00:32:59,540 novamente, para encher uma página com uma grande cortina vermelha brega. 711 00:32:59,540 --> 00:33:03,120 E então, em cima disso, foi um ícone que você tinha que clicar para entrar na minha casa 712 00:33:03,120 --> 00:33:04,960 página porque era muito em voga. 713 00:33:04,960 --> 00:33:08,870 >> E então meu primeiro programa que eu já escrevi Não era no PHP, mas em uma linguagem 714 00:33:08,870 --> 00:33:12,260 chamada Pérola, escreveu um livro de visitas, que é uma coisa muito legal que a 715 00:33:12,260 --> 00:33:14,250 Muitas pessoas esperam que você ter em uma home page. 716 00:33:14,250 --> 00:33:17,510 Quando você chegar à página, eles querem que você para entrar e dizer quem você é, 717 00:33:17,510 --> 00:33:18,720 e por que você está lá. 718 00:33:18,720 --> 00:33:21,320 Isso é muito 1990 web design estilo. 719 00:33:21,320 --> 00:33:24,130 >> Mas nos dias de hoje, com certeza, temos vir muito mais longe. 720 00:33:24,130 --> 00:33:27,560 E você vai ver, na seção, e até mesmo no problema de definir sete, por 721 00:33:27,560 --> 00:33:31,570 alavancar bibliotecas estes dias, é muito mais fácil de fazer 722 00:33:31,570 --> 00:33:33,400 coisas mais bonitas rapidamente. 723 00:33:33,400 --> 00:33:36,550 Realmente aqui, estamos apenas arranhando a superfície do que você pode fazer 724 00:33:36,550 --> 00:33:37,400 estilisticamente. 725 00:33:37,400 --> 00:33:41,660 >> E, de fato, já, deixe-me enfatizar que isso já está ficando feio, não 726 00:33:41,660 --> 00:33:46,030 só esteticamente, mas em termos do estilo do meu código, ou o 727 00:33:46,030 --> 00:33:47,260 design do meu código. 728 00:33:47,260 --> 00:33:52,350 Tenho atualmente comingled HTML, que é as tags abertas esverdeados lá, com 729 00:33:52,350 --> 00:33:55,160 Propriedades CSS, que é totalmente legítimo. 730 00:33:55,160 --> 00:33:57,200 Isto é realmente onde a língua teve suas origens. 731 00:33:57,200 --> 00:34:01,030 >> Mas no interesse de design clean, bem como começamos coisas factoring 732 00:34:01,030 --> 00:34:05,370 para fora de arquivos C em arquivos h., vamos me realmente praticar esse tipo de 733 00:34:05,370 --> 00:34:07,990 princípio e começar a fazer esta vez. 734 00:34:07,990 --> 00:34:13,280 Deixe-me colocar uma marca de estilo aqui, que também existe em HTML, e deixe-me 735 00:34:13,280 --> 00:34:15,330 especificar a seguir. 736 00:34:15,330 --> 00:34:16,360 Deixe-me apagar isso. 737 00:34:16,360 --> 00:34:18,110 Cor de fundo vai ser vermelho. 738 00:34:18,110 --> 00:34:19,800 Eu vou apagar isso inteiramente. 739 00:34:19,800 --> 00:34:22,580 Eu estou indo para se livrar do estilo atribuir, e eu vou com exclusividade 740 00:34:22,580 --> 00:34:24,620 identificar esta div com uma palavra - 741 00:34:24,620 --> 00:34:28,750 arbitrariamente, mas razoavelmente, citações unquote "top". E id é uma especial 742 00:34:28,750 --> 00:34:32,530 atributo que define exclusivamente um determinado elemento HTML 743 00:34:32,530 --> 00:34:33,850 como ter esse id. 744 00:34:33,850 --> 00:34:37,969 >> Se agora eu quero estilizado que, até aqui, em a cabeça de minha página, dentro do 745 00:34:37,969 --> 00:34:41,730 tag estilo, observe que Eu posso fazer top hash. 746 00:34:41,730 --> 00:34:45,300 E então eu posso colocar um par de encaracolado aparelho, que lembra C, e então deixá 747 00:34:45,300 --> 00:34:47,130 me colar em que estilização. 748 00:34:47,130 --> 00:34:49,929 E deixe-me ir em frente aqui e antecipar onde estou indo com isso. 749 00:34:49,929 --> 00:34:53,380 Permitam-me também criar uma para o div de fundo. 750 00:34:53,380 --> 00:34:58,010 Deixe-me pegar esse código horrível de baixo aqui, colocá-lo aqui, e eu vou estar 751 00:34:58,010 --> 00:35:00,770 um pouco mais anal agora e estilizado que por apenas colocar as coisas em seu próprio 752 00:35:00,770 --> 00:35:02,540 linha, terminando com ponto e vírgula. 753 00:35:02,540 --> 00:35:04,430 Deixe-me livrar-se da marca de estilo. 754 00:35:04,430 --> 00:35:05,320 >> Mas eu não estou pronto ainda. 755 00:35:05,320 --> 00:35:07,406 Eu preciso fazer uma outra coisa. 756 00:35:07,406 --> 00:35:10,070 Sim, id iguais citação fecha aspas, "bottom", ou qualquer id eu quero 757 00:35:10,070 --> 00:35:11,740 dar a esse elemento. 758 00:35:11,740 --> 00:35:13,420 Agora, deixe-me voltar para cá. 759 00:35:13,420 --> 00:35:14,360 E isto é atroz. 760 00:35:14,360 --> 00:35:15,805 Eu não posso lidar com 96 pontos. 761 00:35:15,805 --> 00:35:16,960 Vamos fazer 24 pontos. 762 00:35:16,960 --> 00:35:18,320 Ou você poderia ser mais preciso. 763 00:35:18,320 --> 00:35:21,800 Você pode realmente usar pixels, px, então que você realmente granulação mais fina 764 00:35:21,800 --> 00:35:23,220 controle sobre a sua página. 765 00:35:23,220 --> 00:35:26,860 >> Como um aparte, que não é necessariamente a melhor coisa que se os usuários, para 766 00:35:26,860 --> 00:35:29,650 razões de acessibilidade, quer ser capaz de aumentar os tamanhos. 767 00:35:29,650 --> 00:35:32,650 Então, percebo que há maneiras de fazer coisas que não necessariamente 768 00:35:32,650 --> 00:35:34,230 codificar tudo difícil. 769 00:35:34,230 --> 00:35:37,220 >> Tudo bem, por isso é maior, de 24 pontos, que qualquer que seja o padrão é. 770 00:35:37,220 --> 00:35:38,630 Mas agora é um pouco mais limpa. 771 00:35:38,630 --> 00:35:40,230 E deixe-me dar um passo adiante. 772 00:35:40,230 --> 00:35:47,220 Assim como a idéia de arquivos de cabeçalho, perceber que estamos um passo mais perto disso. 773 00:35:47,220 --> 00:35:52,000 Eu tenho consignado, mas ainda restam, dentro da minha página, essas regras CSS. 774 00:35:52,000 --> 00:35:56,200 Por que eu quero dar um passo ainda, eliminar esta completamente, e 775 00:35:56,200 --> 00:35:59,860 colocá-lo em um arquivo separado? 776 00:35:59,860 --> 00:36:01,070 >> Para que eu possa reutilizá-lo, certo? 777 00:36:01,070 --> 00:36:03,155 Esta é apenas uma espécie de intuição agora. 778 00:36:03,155 --> 00:36:06,340 Antes, eu afirmava que era apenas ficando feio ter o estilo 779 00:36:06,340 --> 00:36:08,480 atributos dentro do DIVS si. 780 00:36:08,480 --> 00:36:09,750 Mas apenas uma espécie de pensar que passar. 781 00:36:09,750 --> 00:36:13,560 Como sua página fica mais e mais, se você está colocando aqui, e aqui, e 782 00:36:13,560 --> 00:36:18,350 aqui, e aqui, todos estes diferentes cores e tamanhos de fonte e outras 783 00:36:18,350 --> 00:36:22,550 atributos, sua página é muito rapidamente vai tornar-se incontrolável para você. 784 00:36:22,550 --> 00:36:24,570 >> Se alguém chega até você e diz, oh, você sabe o quê? 785 00:36:24,570 --> 00:36:28,070 Eu realmente gostaria de mudar o tamanho da fonte por dois pontos adicionais, você 786 00:36:28,070 --> 00:36:31,275 pode ter que ir e localizar e substituir um grande número de linhas de código. 787 00:36:31,275 --> 00:36:35,170 É muito mais atraente para centralizar todas estas aqui estética. 788 00:36:35,170 --> 00:36:38,850 Mas se você quiser reutilizar os estética em várias páginas da web, todos os 789 00:36:38,850 --> 00:36:41,100 o mais interessante para, por exemplo, criar um arquivo 790 00:36:41,100 --> 00:36:45,290 chamado com esses conteúdos. 791 00:36:45,290 --> 00:36:46,680 >> E deixe-me fazer isso. 792 00:36:46,680 --> 00:36:51,150 793 00:36:51,150 --> 00:36:51,920 Salve este arquivo. 794 00:36:51,920 --> 00:36:55,580 Eu digo styles.css, arbitrária mas convencional. 795 00:36:55,580 --> 00:36:58,770 Vou colocá-lo na casa de John Harvard diretório agora pela simplicidade. 796 00:36:58,770 --> 00:37:03,880 E o que posso fazer na minha página web é obter livrar da marca de estilo por completo, 797 00:37:03,880 --> 00:37:08,270 e um pouco unintuitively, utilize um link tag, que não dar-lhe um link no 798 00:37:08,270 --> 00:37:13,140 o hiperlink, sentido clicável, mas onde eu digo link, é igual a href 799 00:37:13,140 --> 00:37:15,120 styles.css. 800 00:37:15,120 --> 00:37:20,050 E a relação que este elemento tem com a página web é servir como 801 00:37:20,050 --> 00:37:21,280 sua folha de estilo. 802 00:37:21,280 --> 00:37:22,670 >> Então como é que eu sei disso? 803 00:37:22,670 --> 00:37:25,950 Um deles, que você acabou de ler o manual, ou você Google ao redor, e você 804 00:37:25,950 --> 00:37:27,000 olhar para vários recursos. 805 00:37:27,000 --> 00:37:30,520 Quero dizer, que realmente é como você pegar técnicas como esta, e, de acordo 806 00:37:30,520 --> 00:37:34,720 com essa idéia de ensinar a si mesmo novo linguagens, mais uma vez, você vai descobrir que 807 00:37:34,720 --> 00:37:38,830 só há um número finito de coisas a qualquer linguagem que, uma vez que você começa 808 00:37:38,830 --> 00:37:41,310 eles, você verá que ele fica mais e mais rápido a escrever. 809 00:37:41,310 --> 00:37:44,180 Na verdade, a aprendizagem de uma nova programação idioma é muito mais rápido do que uma nova 810 00:37:44,180 --> 00:37:47,380 língua falada, porque essas coisas são muito menores e muito mais 811 00:37:47,380 --> 00:37:48,820 definidos com precisão. 812 00:37:48,820 --> 00:37:51,590 >> Mas eu destacado um pouco de uma anomalia aqui. 813 00:37:51,590 --> 00:37:57,750 Por que eu destaquei esta barra aqui? 814 00:37:57,750 --> 00:37:59,420 Porque eu tenho que fechar a tag. 815 00:37:59,420 --> 00:38:00,530 Eu deveria fechar a tag. 816 00:38:00,530 --> 00:38:02,750 E você vai encontrar inúmeros recursos on-line que não 817 00:38:02,750 --> 00:38:04,080 necessariamente marcas próximos. 818 00:38:04,080 --> 00:38:08,770 E realista, não é estritamente necessária para a técnica e existem 819 00:38:08,770 --> 00:38:11,950 razões da realidade, os navegadores são apenas bastante tolerante a erros na web 820 00:38:11,950 --> 00:38:14,360 páginas, para melhor ou para pior, mas principalmente pior. 821 00:38:14,360 --> 00:38:18,830 >> Então, isso aqui é apenas uma maneira mais limpa de dizer algo estúpido como esse, 822 00:38:18,830 --> 00:38:22,330 onde se pretende abrir a tag link mas fechá-lo, não há realmente nenhuma noção 823 00:38:22,330 --> 00:38:23,720 de conteúdos para a tag link. 824 00:38:23,720 --> 00:38:26,000 Significa apenas que carregar este arquivo e colocá-lo aqui. 825 00:38:26,000 --> 00:38:30,610 É como include acentuada C. Pode abrir e fechar uma tag de uma só vez 826 00:38:30,610 --> 00:38:31,660 dentro da mesma tag. 827 00:38:31,660 --> 00:38:33,520 E há outros exemplos. 828 00:38:33,520 --> 00:38:37,280 Esta não é a maneira de fazer isso, mas a tag br, para quebras de linha, se eu 829 00:38:37,280 --> 00:38:41,780 realmente queria alcançar o que eu era tentando antes de pressionar Enter, se 830 00:38:41,780 --> 00:38:45,380 Eu explicitamente dizer quebra de linha, quebra de linha, quebra de linha, quebra de linha, e 831 00:38:45,380 --> 00:38:49,100 então recarregar esta página, agora você vai notar que a parte inferior da página é, 832 00:38:49,100 --> 00:38:51,940 na verdade, muito mais longe no na parte inferior da página. 833 00:38:51,940 --> 00:38:55,840 Mas mesmo isso pode ser feito muito mais limpa com CSS, e com margens, 834 00:38:55,840 --> 00:38:58,120 e com outro tipo de estética técnicas. 835 00:38:58,120 --> 00:38:59,940 >> Então, por agora, o delivery é isso. 836 00:38:59,940 --> 00:39:02,320 Em HTML, temos estes coisas chamadas tags. 837 00:39:02,320 --> 00:39:04,830 Em CSS, temos essas coisas chamadas de propriedades. 838 00:39:04,830 --> 00:39:08,700 Podemos comingle essas duas linguagens, ou usando o atributo de estilo, 839 00:39:08,700 --> 00:39:14,240 ou a tag estilo, ou melhor ainda, factoring -lo por completo, como fazemos 840 00:39:14,240 --> 00:39:17,270 no conjunto de problemas 7. 841 00:39:17,270 --> 00:39:23,820 Perguntas, então, sobre o fundamentos conceituais aqui? 842 00:39:23,820 --> 00:39:24,740 >> AUDIÊNCIA: Eu tenho uma pergunta. 843 00:39:24,740 --> 00:39:25,630 >> COLUNA 1: Oh, desculpe. 844 00:39:25,630 --> 00:39:28,880 >> AUDIÊNCIA: Por que não foi colorida - 845 00:39:28,880 --> 00:39:31,410 >> COLUNA 1: Oh, na outra aba? 846 00:39:31,410 --> 00:39:32,232 Este aqui? 847 00:39:32,232 --> 00:39:33,482 >> AUDIÊNCIA: Não, é como se o - 848 00:39:33,482 --> 00:39:35,330 849 00:39:35,330 --> 00:39:39,480 >> COLUNA 1: Oh, isso é porque Eu estava sendo desleixado. 850 00:39:39,480 --> 00:39:41,350 Eu coloquei o arquivo no lugar errado. 851 00:39:41,350 --> 00:39:47,840 Então, se eu realmente colocá-lo aqui, e eu chmod, tudo + r para styles.css e 852 00:39:47,840 --> 00:39:52,050 agora recarregar a página, agora nós obter a estilização de volta. 853 00:39:52,050 --> 00:39:54,530 E porque os tamanhos de fonte são diferente, não vemos tão grande 854 00:39:54,530 --> 00:39:55,010 espaço em branco. 855 00:39:55,010 --> 00:39:58,240 Em seu lugar, ver o que está a padrão é de vez. 856 00:39:58,240 --> 00:40:00,050 Boa pergunta. 857 00:40:00,050 --> 00:40:00,846 Sim? 858 00:40:00,846 --> 00:40:02,630 >> AUDIÊNCIA: Por que é o elo tag dentro do cabeçalho? 859 00:40:02,630 --> 00:40:06,270 >> COLUNA 1: Por que as ligações tag dentro do cabeçalho - 860 00:40:06,270 --> 00:40:07,650 resposta curta, apenas porque. 861 00:40:07,650 --> 00:40:08,930 Isso é o que foi decidido. 862 00:40:08,930 --> 00:40:10,720 É onde as tags de link ir quando Você tem o que é chamado de 863 00:40:10,720 --> 00:40:13,650 folha de estilo externa. 864 00:40:13,650 --> 00:40:16,430 Outras perguntas? 865 00:40:16,430 --> 00:40:17,770 >> Tudo bem, bem, vamos fazer isso. 866 00:40:17,770 --> 00:40:20,500 Nós nos divertimos muito à frente de nós hoje. 867 00:40:20,500 --> 00:40:22,480 Isso é apenas arranhando a superfície do CSS. 868 00:40:22,480 --> 00:40:23,010 Vamos fazer isso. 869 00:40:23,010 --> 00:40:25,980 Vamos dar uma pausa de cinco minutos aqui porque, por meu e-mail, vamos pendurar 870 00:40:25,980 --> 00:40:27,200 lá até 2:30-ish hoje. 871 00:40:27,200 --> 00:40:28,540 Mas se você tem a sair, isso é bom. 872 00:40:28,540 --> 00:40:30,380 Mas vamos seguir em frente depois de uma pausa de cinco minutos. 873 00:40:30,380 --> 00:40:35,930 E nós vamos aprender um pouco sobre PHP, MySQL, e muito mais. 874 00:40:35,930 --> 00:40:44,520 >> Tudo bem, então vamos tentar, agora, para amarrar um algumas dessas idéias juntos e fazer, 875 00:40:44,520 --> 00:40:46,180 dizer, o nosso próprio motor de busca. 876 00:40:46,180 --> 00:40:48,570 Notei, curiosamente, a seguir. 877 00:40:48,570 --> 00:40:52,610 Quando você está no Google.com, você está normalmente a uma URL como esta aqui 878 00:40:52,610 --> 00:40:54,870 com nada após o dot com. 879 00:40:54,870 --> 00:40:59,760 Mas se eu procurar algo estúpido como gatos e aperte enter, nós vamos chegar - não 880 00:40:59,760 --> 00:41:01,300 estúpido, mas você sabe. 881 00:41:01,300 --> 00:41:05,410 >> OK, assim que notar, no topo da página, Agora, o URL tem, é claro, mudou. 882 00:41:05,410 --> 00:41:07,190 E isso não é nada novo para qualquer um de nós. 883 00:41:07,190 --> 00:41:09,290 Você clica em links e outras coisas acontece na web. 884 00:41:09,290 --> 00:41:11,420 Mas o que é interessante aqui é o seguinte. 885 00:41:11,420 --> 00:41:14,500 Há um monte de confusão, mas vamos me jogar fora coisas que eu não faço 886 00:41:14,500 --> 00:41:16,600 entendo muito bem ou não olhar realmente relevante. 887 00:41:16,600 --> 00:41:18,490 >> Deixe-me livrar disso. 888 00:41:18,490 --> 00:41:20,030 Deixe-me livrar disso. 889 00:41:20,030 --> 00:41:22,630 E deixe-me apenas se livrar de tudo isto. 890 00:41:22,630 --> 00:41:28,840 E agora notar que os gatos está na URL, seguido com um q, então um igual 891 00:41:28,840 --> 00:41:29,710 assinar na frente dele. 892 00:41:29,710 --> 00:41:32,110 Então não é que esta é a forma como o assim que funciona quando se trata 893 00:41:32,110 --> 00:41:33,360 para entrada e saída. 894 00:41:33,360 --> 00:41:37,510 >> Nós conversamos muito sobre caixas-pretas, certo? 895 00:41:37,510 --> 00:41:41,650 Assim, se esta é uma função implementada aqui como uma caixa preta, que leva entrada 896 00:41:41,650 --> 00:41:45,290 e produz uma saída, bem como, os meios pelo qual você fornecer dados para a 897 00:41:45,290 --> 00:41:49,270 website é de forma, muitas vezes, de sua URL. 898 00:41:49,270 --> 00:41:52,850 Você simplesmente colocar um ponto de interrogação e, em seguida, uma chave igual valor. 899 00:41:52,850 --> 00:41:56,740 E então, talvez um e comercial, e, em seguida, outra chave é igual ao valor, então talvez 900 00:41:56,740 --> 00:41:58,810 outro comercial, chave igual valor. 901 00:41:58,810 --> 00:42:03,030 É assim que você passar em chaves e valores, pares de entradas. 902 00:42:03,030 --> 00:42:07,050 >> Então, se eu pressionar Enter, agora, o que é interessante sobre o Google é que todos 903 00:42:07,050 --> 00:42:10,420 que confusão eu deletei não aparece seja estritamente necessário. 904 00:42:10,420 --> 00:42:15,120 Tudo que eu preciso enviar para o Google é a pergunta marca q é igual a gatos para obter 905 00:42:15,120 --> 00:42:16,160 fazer alguns gatos. 906 00:42:16,160 --> 00:42:20,160 Bem, a implicação de que, então, é se eu puxar para cima gedit, eu comecei 907 00:42:20,160 --> 00:42:24,360 fazer o meu próprio motor de busca aqui em um arquivo chamado seach0.html. 908 00:42:24,360 --> 00:42:26,750 >> E deixe-me ir em frente e excluir mais uma linha que você 909 00:42:26,750 --> 00:42:27,910 não deveriam ver. 910 00:42:27,910 --> 00:42:31,070 E agora, deixe-me ir para o meu próprio navegador, portanto, não para o Google, e ir para 911 00:42:31,070 --> 00:42:34,900 http://localhost. 912 00:42:34,900 --> 00:42:36,220 E isso vai ficar no caminho. 913 00:42:36,220 --> 00:42:43,240 Então, nós vamos ter de dizer adeus ao que, por agora, mover este aqui, 914 00:42:43,240 --> 00:42:46,270 oh, agora vamos ter que dizer adeus a esse arquivo. 915 00:42:46,270 --> 00:42:51,700 >> Sempre que você tem um arquivo chamado index.html ou index.php em um 916 00:42:51,700 --> 00:42:54,980 diretório, se o servidor web é configurado dessa forma, o que você vai 917 00:42:54,980 --> 00:42:59,600 ver, por padrão, é o conteúdo do que arquivo ao invés de uma listagem do 918 00:42:59,600 --> 00:43:02,330 diretório, como eu queria aqui. 919 00:43:02,330 --> 00:43:03,750 Leia mais sobre este assunto na spec. 920 00:43:03,750 --> 00:43:04,610 Você não viu isso. 921 00:43:04,610 --> 00:43:06,360 >> Então é isso que eu realmente queria. 922 00:43:06,360 --> 00:43:08,810 Mas há um momento, houve uma arquivo nesta pasta chamada 923 00:43:08,810 --> 00:43:11,290 index.html e index.php. 924 00:43:11,290 --> 00:43:13,380 E para que o servidor web foi me mostrar esses arquivos. 925 00:43:13,380 --> 00:43:15,900 Em vez disso, eu quero que esse diretório listando aqui. 926 00:43:15,900 --> 00:43:18,340 >> Então, eu estou indo para ir para CSS e ir para search0. 927 00:43:18,340 --> 00:43:21,770 E eu afirmo que este é que vai ser o início da minha própria competitivo 928 00:43:21,770 --> 00:43:22,490 motor de busca. 929 00:43:22,490 --> 00:43:27,630 E para fazer isso, eu estou indo para ir em aqui, em CSS, e abrir-se com 930 00:43:27,630 --> 00:43:30,190 gedit, pesquisa 0. 931 00:43:30,190 --> 00:43:32,280 Mas, infelizmente, não há não muita coisa acontecendo aqui. 932 00:43:32,280 --> 00:43:35,690 Tudo que eu fiz foi usar um tag título, que passa a ser chamado H1, que 933 00:43:35,690 --> 00:43:38,180 significa, essencialmente, grandes e negrito, e é isso. 934 00:43:38,180 --> 00:43:40,810 Mas os meios pelos quais podemos fornecem insumos são através destes 935 00:43:40,810 --> 00:43:42,180 coisas chamadas formas. 936 00:43:42,180 --> 00:43:46,040 >> Então deixe-me ir em frente e abrir e fechar, preventivamente, uma tag de formulário lá. 937 00:43:46,040 --> 00:43:48,060 E deixe-me ir em frente e fazer algo como isto. 938 00:43:48,060 --> 00:43:51,430 Entrada, tipo de texto é igual. 939 00:43:51,430 --> 00:43:56,320 E então vamos fechar a tag dentro os próprios suportes. 940 00:43:56,320 --> 00:43:58,800 Eu não preciso para começar um campo de texto e parar um campo de texto. 941 00:43:58,800 --> 00:44:01,080 Ele só vai estar lá ou não. 942 00:44:01,080 --> 00:44:06,210 >> E, em seguida, abaixo disso, vamos fazer tipo de entrada é igual a enviar. 943 00:44:06,210 --> 00:44:06,870 Salvar esta. 944 00:44:06,870 --> 00:44:08,630 E agora vamos fazer um verificação de sanidade rápida. 945 00:44:08,630 --> 00:44:09,820 Vamos recarregar. 946 00:44:09,820 --> 00:44:10,890 >> OK, por isso não é ruim. 947 00:44:10,890 --> 00:44:13,260 Não é o estilo do Google, mas é bem perto. 948 00:44:13,260 --> 00:44:13,920 Há um campo de texto. 949 00:44:13,920 --> 00:44:17,190 Eu posso escrever algumas coisas em, pressione Enter, mas nada acontece ainda. 950 00:44:17,190 --> 00:44:21,090 E isso é porque eu não especificou uma ação por esta forma, por assim dizer. 951 00:44:21,090 --> 00:44:23,860 Então, se eu voltar para o elemento de formulário, ao que parece, e eu sei que isso só 952 00:44:23,860 --> 00:44:27,460 de ter lido a documentação, que a tag form tem um atributo 953 00:44:27,460 --> 00:44:31,880 chamado de ação que é a URL do site para o qual você 954 00:44:31,880 --> 00:44:34,790 deseja enviar o formulário. 955 00:44:34,790 --> 00:44:37,610 >> Eu realmente não acho que temos tempo para implementar todo o back-end para a 956 00:44:37,610 --> 00:44:38,570 motor de busca hoje em dia. 957 00:44:38,570 --> 00:44:41,900 Então vamos apenas dizer, eh, ir para google.com / search. 958 00:44:41,900 --> 00:44:43,450 E agora deixe-me fechar minhas citações. 959 00:44:43,450 --> 00:44:46,070 E deixe-me especificar melhor que o método a utilizar vai 960 00:44:46,070 --> 00:44:47,120 a ser chamado de obter. 961 00:44:47,120 --> 00:44:50,650 >> Para encurtar a história, há duas maneiras, pelo menos, que você pode enviar informações 962 00:44:50,650 --> 00:44:51,880 a partir do navegador para o servidor. 963 00:44:51,880 --> 00:44:55,340 Um deles é conseguir, e, para fins de hoje, isso apenas significa na URL. 964 00:44:55,340 --> 00:44:58,730 Você vê exatamente os pontos de interrogação, os sinais de igual, e que ampersands 965 00:44:58,730 --> 00:44:59,780 vimos anteriormente. 966 00:44:59,780 --> 00:45:02,890 Ou há uma alternativa chamada post. 967 00:45:02,890 --> 00:45:06,490 Por enquanto, sabemos que o pós é frequentemente usado quando você quer fazer upload de arquivos, como 968 00:45:06,490 --> 00:45:09,820 imagens e assim por diante, ou quando você quiser enviar informações de cartão de crédito, ou 969 00:45:09,820 --> 00:45:13,810 senhas, qualquer coisa que ele não realmente faz sentido, conceitualmente, ou 970 00:45:13,810 --> 00:45:18,020 segurança sábio, para acabar na URL de seu navegador, onde espionagem pais, 971 00:45:18,020 --> 00:45:21,520 ou companheiros, ou qualquer um com acesso para o seu computador pode ver. 972 00:45:21,520 --> 00:45:23,110 >> Então, vamos guardar esse aqui. 973 00:45:23,110 --> 00:45:24,480 E eu preciso fazer outra coisa. 974 00:45:24,480 --> 00:45:27,250 Não é suficiente apenas para dizer-me dar um campo de texto. 975 00:45:27,250 --> 00:45:29,850 Eu tenho que dar do que o campo Valorizamos um nome. 976 00:45:29,850 --> 00:45:34,500 Então deixe-me emprestar escolha do Google nomes, Q e especificar que segundo 977 00:45:34,500 --> 00:45:38,150 atribuir Eu realmente não me importo sobre o nome do botão enviar. 978 00:45:38,150 --> 00:45:40,890 Tudo que me importa é a apresentação o que o usuário digita pol 979 00:45:40,890 --> 00:45:41,940 >> E agora esse é o tipo de feio. 980 00:45:41,940 --> 00:45:42,820 Ele apenas diz enviar. 981 00:45:42,820 --> 00:45:46,350 Acontece, e eu sei isso desde o documentação, eu posso realmente dizer 982 00:45:46,350 --> 00:45:51,710 valor equivale a citação unquote "CS50 da pesquisa, "perto das citações. 983 00:45:51,710 --> 00:45:53,030 Então vamos recarregar novamente. 984 00:45:53,030 --> 00:45:57,020 Então eu continuo batendo Command-R, ou Control-R no meu teclado para recarregar. 985 00:45:57,020 --> 00:45:58,605 >> Agora temos um mais interessante motor de busca. 986 00:45:58,605 --> 00:46:00,340 Ele não chega a parecer Google ainda, no entanto. 987 00:46:00,340 --> 00:46:04,100 Então, vamos em frente aqui e fazer um pouco de quebra de linha. 988 00:46:04,100 --> 00:46:06,066 >> OK, então agora temos o Google. 989 00:46:06,066 --> 00:46:08,260 Na verdade, quase não tem Google. 990 00:46:08,260 --> 00:46:10,460 Então agora o que vai acontecer? 991 00:46:10,460 --> 00:46:12,220 Vou escrever algo como Cats. 992 00:46:12,220 --> 00:46:16,570 E o navegador vai analisar de que forma que eu definido. 993 00:46:16,570 --> 00:46:19,470 E vai enviar o usuário a esse URL. 994 00:46:19,470 --> 00:46:23,420 Então, desta vez, por algum motivo curioso, Tenho mais informações sobre estoques 995 00:46:23,420 --> 00:46:24,410 do que sobre os gatos reais. 996 00:46:24,410 --> 00:46:30,580 Mas isso é bom, porque percebe que ainda acabei aqui, q é igual a gatos. 997 00:46:30,580 --> 00:46:35,200 >> Assim, longa história curta, parece bastante trivial para obter a entrada do usuário. 998 00:46:35,200 --> 00:46:38,190 E para ser justo, há cachos de outros tipos de campos de formulário. 999 00:46:38,190 --> 00:46:41,510 Há caixas de seleção e pouco mutuamente botões exclusivos e 1000 00:46:41,510 --> 00:46:42,960 menus drop-down, e muito mais. 1001 00:46:42,960 --> 00:46:46,160 Mas todos esses são como relativamente facilmente implementado como 1002 00:46:46,160 --> 00:46:48,040 este campo de texto era. 1003 00:46:48,040 --> 00:46:52,050 E, finalmente, só temos que fazer certeza de que alguém está escutando no outro 1004 00:46:52,050 --> 00:46:56,490 Fim da linha para conseguir que informações processadas, de alguma forma, e 1005 00:46:56,490 --> 00:46:58,440 nos devolver os nossos gatos. 1006 00:46:58,440 --> 00:47:00,840 >> Vejamos um pouco mais envolvidos exemplo. 1007 00:47:00,840 --> 00:47:06,020 Deixe-me ir para o diretório do meu VHost, em host local, público, e onde eu 1008 00:47:06,020 --> 00:47:06,980 colocar o código fonte de hoje. 1009 00:47:06,980 --> 00:47:09,800 Tudo isso vai estar no curso de website para que você possa mexer. 1010 00:47:09,800 --> 00:47:15,420 E se eu entrar em froshims, deixe-me abrir se este arquivo agora, froshim0.php. 1011 00:47:15,420 --> 00:47:18,460 Este é um pouco mais detalhado, assim não vamos escrever isso a partir do zero. 1012 00:47:18,460 --> 00:47:21,970 Mas só agora perceber alguns um pouco características familiares. 1013 00:47:21,970 --> 00:47:24,550 >> Um, tag form, ação diferente. 1014 00:47:24,550 --> 00:47:25,670 Não é uma URL completa. 1015 00:47:25,670 --> 00:47:29,930 Agora, é aparentemente para arquivo chamado register0.php porque, em um momento, 1016 00:47:29,930 --> 00:47:32,660 Vou ensinar-me um pouco algo sobre PHP, uma programação 1017 00:47:32,660 --> 00:47:37,360 língua, porque o PHP pode ser usado para implementar o Google implementado como 1018 00:47:37,360 --> 00:47:39,650 o back-end de seus motores de busca. 1019 00:47:39,650 --> 00:47:42,890 >> Google, na realidade, provavelmente usa alguns Python, alguns C + +, e 1020 00:47:42,890 --> 00:47:44,230 cachos de outras línguas. 1021 00:47:44,230 --> 00:47:48,230 Mas certamente poderíamos implementar a pesquisa resultados utilizando PHP, se quiséssemos. 1022 00:47:48,230 --> 00:47:49,610 Mas, por agora, vamos mantê-lo simples. 1023 00:47:49,610 --> 00:47:53,320 E isso é realmente uma reminiscência de uma dos outros primeiros sites que eu 1024 00:47:53,320 --> 00:47:54,490 fez anos atrás. 1025 00:47:54,490 --> 00:47:58,160 >> Na minha época, você se cadastrou para esportes internos como um calouro por 1026 00:47:58,160 --> 00:48:00,880 preenchimento de um pedaço de papel, andando em todo o quintal, e soltá-lo em 1027 00:48:00,880 --> 00:48:04,890 a caixa de correio de um Proctor em Wigglesworth, e foi assim que você 1028 00:48:04,890 --> 00:48:05,460 registrada. 1029 00:48:05,460 --> 00:48:09,650 E assim o meu projeto logo após CS50, era colocar que, o que torna perfeito 1030 00:48:09,650 --> 00:48:13,460 sentido, para a web, o que não foi como em voga, em seguida, como é agora. 1031 00:48:13,460 --> 00:48:17,510 Mas tudo o que tinha a fazer era criar, essencialmente, um formulário HTML. 1032 00:48:17,510 --> 00:48:19,640 >> E essa forma olhou mais ou menos assim. 1033 00:48:19,640 --> 00:48:22,480 Eu tinha uma entrada para o O nome de calouro. 1034 00:48:22,480 --> 00:48:27,780 Eu tinha uma outra caixa de seleção ou ou não queria ser capitão, que 1035 00:48:27,780 --> 00:48:30,400 seu gênero era, e o seu dormitório era. 1036 00:48:30,400 --> 00:48:33,370 E então eu codificado em coisas como Apley Court, e Canaday, 1037 00:48:33,370 --> 00:48:34,880 Cinzas, e assim por diante. 1038 00:48:34,880 --> 00:48:36,300 >> Então, novamente, novas tags. 1039 00:48:36,300 --> 00:48:39,820 Ainda não vi isso antes, novo atributos, mas bastante acessível. 1040 00:48:39,820 --> 00:48:42,360 Uma vez que você ver um exemplo, você pode tipo de emprestar essa idéia e fazer uma queda 1041 00:48:42,360 --> 00:48:43,820 menu para mais nada no estômago. 1042 00:48:43,820 --> 00:48:46,350 Mas o que é importante é que cada um dos essas coisas têm nomes. 1043 00:48:46,350 --> 00:48:49,720 E na parte inferior do formulário, há um botão de envio cujo rótulo, 1044 00:48:49,720 --> 00:48:51,510 ou valor, é registo. 1045 00:48:51,510 --> 00:48:52,670 >> Então vamos para esta página. 1046 00:48:52,670 --> 00:48:55,050 Deixe-me voltar para o listagem do diretório. 1047 00:48:55,050 --> 00:48:59,410 Deixe-me entrar em froshims, e ir para froshim0.php. 1048 00:48:59,410 --> 00:49:01,150 Por isso, é horrível, para ser justo. 1049 00:49:01,150 --> 00:49:03,950 Então, eu definitivamente poderia estilizar este com um pouco de CSS, eu poderia fazer algum 1050 00:49:03,950 --> 00:49:06,890 gráficos, talvez adicionar algumas cores, e tornar esta mais bonita. 1051 00:49:06,890 --> 00:49:10,530 Mas funcionalmente, eu diria que este é realmente muito completo. 1052 00:49:10,530 --> 00:49:15,190 >> Infelizmente, quando eu preencher isso, David, Capitão, Homem, vamos escolher, 1053 00:49:15,190 --> 00:49:20,510 digamos Matthews, Register, tudo o que acontece é o seguinte. 1054 00:49:20,510 --> 00:49:21,910 Mas note um par de delivery. 1055 00:49:21,910 --> 00:49:27,130 Um deles, o arquivo retornado aos resulta, aparentemente,? 1056 00:49:27,130 --> 00:49:29,470 Assim é, de fato, register0.php. 1057 00:49:29,470 --> 00:49:34,570 Assim, o fato de que nós vimos que a ação valor há um momento para register0, este 1058 00:49:34,570 --> 00:49:37,500 confirma que de fato acabou se naquele arquivo particular. 1059 00:49:37,500 --> 00:49:39,040 >> Agora, este é apenas um texto feio. 1060 00:49:39,040 --> 00:49:42,810 Mas note que este texto é vindo de host local, 1061 00:49:42,810 --> 00:49:44,170 que é produzido pelo aparelho. 1062 00:49:44,170 --> 00:49:46,350 Pense no aparelho agora apenas como um servidor web que pode ser na 1063 00:49:46,350 --> 00:49:46,910 Science Center. 1064 00:49:46,910 --> 00:49:48,060 Poderia ser na web real. 1065 00:49:48,060 --> 00:49:49,850 Por isso, é acessível ao público. 1066 00:49:49,850 --> 00:49:55,480 >> Então, claramente, há alguma maneira de passar formar entradas de campo para um servidor 1067 00:49:55,480 --> 00:49:56,840 de modo que ela pode fazer alguma coisa com eles. 1068 00:49:56,840 --> 00:49:59,020 Infelizmente, register0 é muito estúpido. 1069 00:49:59,020 --> 00:50:01,870 Tudo que faz é imprimir um array que se parece com isso. 1070 00:50:01,870 --> 00:50:04,790 E não é uma matriz na sentido que nós conhecemos. 1071 00:50:04,790 --> 00:50:08,760 Acontece que o PHP, e um monte de línguas, ter não só numericamente 1072 00:50:08,760 --> 00:50:12,350 arrays indexados cujo primeiro índice é zero, um, dois, em seguida, depois do ponto, 1073 00:50:12,350 --> 00:50:13,780 ponto, ponto, n menos 1. 1074 00:50:13,780 --> 00:50:16,400 >> Isto é o que é chamado de array associativo. 1075 00:50:16,400 --> 00:50:21,150 Uma matriz associativa é aquele em que você pode armazenar pares de valores-chave onde 1076 00:50:21,150 --> 00:50:23,160 a chave não é necessariamente um número. 1077 00:50:23,160 --> 00:50:25,580 Poderia ser de fato uma corda, uma palavra. 1078 00:50:25,580 --> 00:50:28,230 E por isso este pode ser implementado, debaixo do capô, ao que parece, 1079 00:50:28,230 --> 00:50:31,896 utilizando uma estrutura de dados conhecida como um? 1080 00:50:31,896 --> 00:50:33,600 Pensei que algo dramático estava prestes a acontecer - 1081 00:50:33,600 --> 00:50:34,840 tabela de hash. 1082 00:50:34,840 --> 00:50:38,955 >> Assim, uma tabela hash, aviso, aqueles de vocês quem fez isso para P set 6, ou até mesmo recordar 1083 00:50:38,955 --> 00:50:44,110 ele, pelo menos, mesmo se você fez uma tentativa, um tabela hash, em nosso uso, foi usada para 1084 00:50:44,110 --> 00:50:45,090 armazenar apenas palavras. 1085 00:50:45,090 --> 00:50:47,980 Mas, realmente, você estava armazenando chaves e valores. 1086 00:50:47,980 --> 00:50:51,940 Se você implementou uma tabela hash para P set 6 dicionário, as chaves estavam a 1087 00:50:51,940 --> 00:50:56,890 palavras em si, e os valores foram efetivamente verdadeiro ou falso. 1088 00:50:56,890 --> 00:51:00,190 Sim, aqui, ou implicitamente, Não, aqui não. 1089 00:51:00,190 --> 00:51:02,140 >> Bem, podemos generalizar essa idéia. 1090 00:51:02,140 --> 00:51:06,230 E nós poderíamos usar uma base de dados muito semelhantes estrutura para armazenar a string não 1091 00:51:06,230 --> 00:51:10,180 -se sozinho em sua tabela hash, mas supor que em cada um de seu haxixe 1092 00:51:10,180 --> 00:51:11,130 nós da tabela. 1093 00:51:11,130 --> 00:51:14,210 E você pode até fazer isso em uma tentativa ao invés de apenas ter um bool. 1094 00:51:14,210 --> 00:51:15,350 Você poderia ter algo mais. 1095 00:51:15,350 --> 00:51:19,590 E se a chave não estava Maxwell, para instância, mas citação unquote "nome", ou 1096 00:51:19,590 --> 00:51:22,900 Citando "capitão". unquote E dentro de sua estrutura de dados C, você coloca um 1097 00:51:22,900 --> 00:51:26,170 valor, e não apenas um valor booleano, mas de valor como citação unquote "David", ou 1098 00:51:26,170 --> 00:51:28,690 "M", ou "Matthews", e assim por diante. 1099 00:51:28,690 --> 00:51:33,170 >> Então, essas mesmas estruturas de dados que usamos aparentemente existem em outras línguas. 1100 00:51:33,170 --> 00:51:37,650 E eu diria que eles são realmente muito, muito mais simples de acessar aqui. 1101 00:51:37,650 --> 00:51:40,300 Vamos, de facto, dar uma olhada agora, em algum tal sintaxe. 1102 00:51:40,300 --> 00:51:43,120 >> Eu estou indo para ir em um diretório PHP. 1103 00:51:43,120 --> 00:51:48,390 E eu vou abrir uma melhor versão de Olá-0 de antes. 1104 00:51:48,390 --> 00:51:50,270 Observe que tudo que fiz foi acrescentar alguns comentários. 1105 00:51:50,270 --> 00:51:52,530 Então, podemos nos livrar dessa distração. 1106 00:51:52,530 --> 00:51:57,610 >> E este programa faz realmente imprime Olá, porque eu especifiquei entre 1107 00:51:57,610 --> 00:52:01,420 marcas que eu quero executar esse código. 1108 00:52:01,420 --> 00:52:03,380 Agora, vamos ver em um momento Por que isso é útil. 1109 00:52:03,380 --> 00:52:05,630 Mas vamos abrir um outro exemplo aqui. 1110 00:52:05,630 --> 00:52:10,430 Deixe-me ir em frente e abrir dizer: gedit condições de uma. 1111 00:52:10,430 --> 00:52:12,970 >> Este é o caminho de volta no tempo. 1112 00:52:12,970 --> 00:52:16,320 Mas semanas atrás, eu acho que, em uma semana ou duas semanas, tivemos um exemplo chamado 1113 00:52:16,320 --> 00:52:18,470 conditions1.c. 1114 00:52:18,470 --> 00:52:22,050 E eu decidi reimplementar em PHP, apenas a espécie de salientar que 1115 00:52:22,050 --> 00:52:26,500 PHP, sintaticamente, é quase idêntico para C. Isto não é um enorme salto 1116 00:52:26,500 --> 00:52:27,840 da semana passada para esta. 1117 00:52:27,840 --> 00:52:31,230 >> Observe na parte superior do programa, que começa, como antes, com alguma 1118 00:52:31,230 --> 00:52:34,260 comentários, que eu vou me livrar como uma distração. 1119 00:52:34,260 --> 00:52:37,410 Repare que eu estou em PHP Modo neste arquivo. 1120 00:52:37,410 --> 00:52:40,160 Então esse código, vamos ver, serão executados. 1121 00:52:40,160 --> 00:52:42,670 Observe que há readline, que é, provavelmente, o 1122 00:52:42,670 --> 00:52:46,230 analógico em PHP de getstring. 1123 00:52:46,230 --> 00:52:47,390 Observe que é um pouco diferente. 1124 00:52:47,390 --> 00:52:51,410 Você realmente especificar um aviso para o função chamada linha lida, e isso é 1125 00:52:51,410 --> 00:52:52,180 o que o usuário vê. 1126 00:52:52,180 --> 00:52:53,520 Então você não tem que printf manualmente. 1127 00:52:53,520 --> 00:52:54,860 Mas isso não é um grande negócio. 1128 00:52:54,860 --> 00:52:59,150 Eu vou guardar, dentro de $ n, o valor desse retorno, então qualquer que seja o 1129 00:52:59,150 --> 00:53:00,490 usuário digita é a sua int. 1130 00:53:00,490 --> 00:53:01,660 E aqui está outra curiosidade. 1131 00:53:01,660 --> 00:53:05,810 Acontece que, em PHP, qualquer variável só tem que ser prefixado 1132 00:53:05,810 --> 00:53:06,970 com um cifrão. 1133 00:53:06,970 --> 00:53:08,110 É um pouco chato. 1134 00:53:08,110 --> 00:53:10,870 Mas repare que eu não fiz em PHP. 1135 00:53:10,870 --> 00:53:13,980 O que está faltando na mão esquerda lado do sinal de igual? 1136 00:53:13,980 --> 00:53:15,430 >> Nenhuma menção do tipo. 1137 00:53:15,430 --> 00:53:19,400 Então, isso é diferente de C. Para melhor ou para o mal, o PHP é uma vagamente 1138 00:53:19,400 --> 00:53:20,550 linguagem digitado. 1139 00:53:20,550 --> 00:53:22,010 Ele tem números. 1140 00:53:22,010 --> 00:53:23,240 Ela tem strings. 1141 00:53:23,240 --> 00:53:24,015 Ela tem booleanos. 1142 00:53:24,015 --> 00:53:26,220 E ele tem um pouco outros tipos de dados. 1143 00:53:26,220 --> 00:53:30,570 Mas você, o programador, geralmente não precisa se preocupar com eles. 1144 00:53:30,570 --> 00:53:34,010 A vantagem disso é que ele faz um pouco mais fácil de programar. 1145 00:53:34,010 --> 00:53:35,380 Você pode pensar um pouco menos. 1146 00:53:35,380 --> 00:53:39,840 A desvantagem é que também lhe abre para possíveis bugs, se você acidentalmente 1147 00:53:39,840 --> 00:53:43,080 tratar um número como uma string, uma string como um número, potencialmente, mas mesmo 1148 00:53:43,080 --> 00:53:46,150 então, PHP, e um monte de línguas, são muito tolerantes. 1149 00:53:46,150 --> 00:53:49,050 Eles vão usar o que é chamado conversão implícita. 1150 00:53:49,050 --> 00:53:55,220 E se você tentar usar n, no contexto de uma situação numérica, será 1151 00:53:55,220 --> 00:53:58,040 converter o que aqui vai ser um string, porque, se o usuário digita 1152 00:53:58,040 --> 00:54:01,570 algo, e você obterá o resultado, como com readline, ou chegar a string, 1153 00:54:01,570 --> 00:54:02,910 que vai retornar uma string. 1154 00:54:02,910 --> 00:54:07,360 >> Mas note, algumas linhas depois, eu verificar se n for maior do que zero. 1155 00:54:07,360 --> 00:54:13,370 Então PHP vai lançar implicitamente minha 123 "string", ou o que o usuário 1156 00:54:13,370 --> 00:54:14,860 tipos de, em um int. 1157 00:54:14,860 --> 00:54:18,730 Assim, em breve, o material só funciona muito mais intuitiva. 1158 00:54:18,730 --> 00:54:23,410 Assim, temos agora começar a relaxar algumas das as coisas que fizemos no passado. 1159 00:54:23,410 --> 00:54:24,780 >> Uma grande quantidade deste material é o mesmo, no entanto. 1160 00:54:24,780 --> 00:54:26,340 Ainda não é igual a igual. 1161 00:54:26,340 --> 00:54:30,350 Como um aparte PHP também é igual é igual iguais, mas mais sobre isso, talvez, em 1162 00:54:30,350 --> 00:54:30,850 futuro. 1163 00:54:30,850 --> 00:54:31,150 Essa foi uma. 1164 00:54:31,150 --> 00:54:35,660 Typo mas dois sinais de igual significa a mesma coisa como antes, para comparação. 1165 00:54:35,660 --> 00:54:37,060 printf significa a mesma coisa que antes. 1166 00:54:37,060 --> 00:54:39,160 Barra invertida n significa o mesmo coisa como antes. 1167 00:54:39,160 --> 00:54:40,390 >> Então, como faço para executar este programa? 1168 00:54:40,390 --> 00:54:44,400 Bem, como antes, se eu fizer PHP, conditions1.php e digite 1169 00:54:44,400 --> 00:54:46,560 um número como 123. 1170 00:54:46,560 --> 00:54:47,720 Esse é um número positivo. 1171 00:54:47,720 --> 00:54:49,510 Se eu digitar 0, I escolher 0. 1172 00:54:49,510 --> 00:54:53,700 E se eu digitar 123 negativo, eu fico fazer um número negativo, que é apenas 1173 00:54:53,700 --> 00:54:59,050 quer dizer, sintaticamente, PHP é super, super similar. 1174 00:54:59,050 --> 00:55:03,250 >> Então, por que isso agora útil em um contexto web? 1175 00:55:03,250 --> 00:55:06,710 Bem, vamos voltar a este froshims exemplo, que parecia, 1176 00:55:06,710 --> 00:55:08,600 novamente, como esta aqui. 1177 00:55:08,600 --> 00:55:11,580 E vamos realmente puxar para cima a página web novamente, o que parecia ser isso. 1178 00:55:11,580 --> 00:55:14,930 O que podemos fazer com o dados que são apresentados? 1179 00:55:14,930 --> 00:55:18,770 >> Bem, deixe-me abrir uma nova versão deste. 1180 00:55:18,770 --> 00:55:20,920 E você vai ver que o problema especificação sets anda você 1181 00:55:20,920 --> 00:55:22,850 através de alguns deles. 1182 00:55:22,850 --> 00:55:29,610 Ao invés de começar com zero, vamos olhar para froshims3, 1183 00:55:29,610 --> 00:55:31,410 que faz um pouco mais. 1184 00:55:31,410 --> 00:55:34,780 >> Observe primeiro, na verdade, vamos abrir o que 0 é, então você vê 1185 00:55:34,780 --> 00:55:37,170 o registro 0 era. 1186 00:55:37,170 --> 00:55:40,040 Observe o registro 0 fez. 1187 00:55:40,040 --> 00:55:41,730 Um deles, eu tenho comentários no topo. 1188 00:55:41,730 --> 00:55:43,900 Excluir os e focar apenas isso. 1189 00:55:43,900 --> 00:55:48,730 A maior parte do conteúdo de register0.php são, obviamente, que língua? 1190 00:55:48,730 --> 00:55:49,980 Apenas PHP cru. 1191 00:55:49,980 --> 00:55:53,430 >> Assim, o aviso prévio, este arquivo não começar com, no momento, o suporte aberto, 1192 00:55:53,430 --> 00:55:54,970 ponto de interrogação, PHP. 1193 00:55:54,970 --> 00:55:59,800 PHP não permite que você se misturam Código PHP com tags HTML. 1194 00:55:59,800 --> 00:56:04,130 Mas eu fiz isso aqui dentro da página aqui. 1195 00:56:04,130 --> 00:56:08,180 >> Agora, novamente, você só sabe que isso depois olhou para o manual. print_r, 1196 00:56:08,180 --> 00:56:13,410 ao que parece, é print_recursive. _recursive E este é apenas um prático 1197 00:56:13,410 --> 00:56:16,780 função de utilidade que apenas imprime, recursiva, o que você entregá-lo. 1198 00:56:16,780 --> 00:56:18,760 Se você entregá-lo de uma matriz, ele vai imprimir um array. 1199 00:56:18,760 --> 00:56:20,180 Se você entregá-lo um número, ele vai imprimir um número. 1200 00:56:20,180 --> 00:56:21,570 Entregá-lo a corda, ele vai imprimir uma string. 1201 00:56:21,570 --> 00:56:24,500 Se você entregá-lo uma tabela hash, ele irá imprimir uma tabela hash. 1202 00:56:24,500 --> 00:56:26,730 Você não tem que escrever tudo de que o código sozinho. 1203 00:56:26,730 --> 00:56:29,490 >> Agora note que eu estou entrando Modo PHP aqui. 1204 00:56:29,490 --> 00:56:32,070 Estou saindo do modo PHP aqui. 1205 00:56:32,070 --> 00:56:35,950 Assim, quando o servidor web lê este arquivo de cima para baixo, da esquerda para a direita, porque 1206 00:56:35,950 --> 00:56:40,750 termina em um arquivo chamado. php, tudo o que não está dentro de tags PHP é 1207 00:56:40,750 --> 00:56:42,820 só vai ser espeto fora, como HTML puro. 1208 00:56:42,820 --> 00:56:43,630 Não é grande coisa. 1209 00:56:43,630 --> 00:56:49,280 Mas tão logo o servidor web percebe isso, ele vai dizer que eu não deveria 1210 00:56:49,280 --> 00:56:51,850 cuspir, literalmente, print_r do post. 1211 00:56:51,850 --> 00:56:54,910 Eu deveria executar o seguinte linha de código. 1212 00:56:54,910 --> 00:56:59,850 >> Assim, a última pergunta, então, é este arquivo é, bem, o que diabos é isso? 1213 00:56:59,850 --> 00:57:00,530 Tome um palpite. 1214 00:57:00,530 --> 00:57:04,230 O que é de R $ _POST, provavelmente? 1215 00:57:04,230 --> 00:57:07,070 >> AUDIÊNCIA: [inaudível] 1216 00:57:07,070 --> 00:57:08,830 >> COLUNA 1: Sim, os dados postados. 1217 00:57:08,830 --> 00:57:11,350 Lembre-se, vamos rolar de volta tempo por apenas um momento. 1218 00:57:11,350 --> 00:57:13,165 froshim0, mais uma vez, ficou assim. 1219 00:57:13,165 --> 00:57:15,640 Um super maioria deste é apenas HTML. 1220 00:57:15,640 --> 00:57:18,410 Mais uma vez, algumas marcas que você não tem visto ainda, ou com os quais 1221 00:57:18,410 --> 00:57:19,360 você já está familiarizado. 1222 00:57:19,360 --> 00:57:21,990 Mas o interessante foi isso. 1223 00:57:21,990 --> 00:57:27,270 Esta linha é o que realmente une para o nosso arquivo register0.php. 1224 00:57:27,270 --> 00:57:29,200 Estou enviando via método post. 1225 00:57:29,200 --> 00:57:33,130 E isso significa que os parâmetros o usuário digita não são 1226 00:57:33,130 --> 00:57:35,150 vai acabar onde. 1227 00:57:35,150 --> 00:57:36,175 >> Eles não vão para aparecer na URL. 1228 00:57:36,175 --> 00:57:39,020 Eles ainda vão ser enviadas a partir do do cliente, a partir do navegador, o 1229 00:57:39,020 --> 00:57:42,080 servidor, mas apenas através de algum outro mecanismo que vamos renunciar a nossas mãos 1230 00:57:42,080 --> 00:57:44,330 no para hoje, mas não é na URL. 1231 00:57:44,330 --> 00:57:47,630 Mas note a relação agora com post, que, por convenção, é 1232 00:57:47,630 --> 00:57:49,160 minúsculas aqui. 1233 00:57:49,160 --> 00:57:54,090 >> Mas se eu abrir register0.php, Estou aparentemente imprimir este. 1234 00:57:54,090 --> 00:57:56,450 Portanto, esta é uma espécie de estranho convenção de nomenclatura. 1235 00:57:56,450 --> 00:58:01,430 Mas o que é bom em PHP é que, quando utilizando PHP em um contexto web, não em um 1236 00:58:01,430 --> 00:58:04,480 linha de comando, como eu fiz há pouco, quando você está realmente usá-lo em um web 1237 00:58:04,480 --> 00:58:10,580 página, em um diretório VHost como somos, PHP automaticamente irá preencher esta 1238 00:58:10,580 --> 00:58:15,560 coisa, que é uma matriz associativa, por assim dizer, uma tabela hash, com 1239 00:58:15,560 --> 00:58:17,290 tudo o que o usuário digitou dentro 1240 00:58:17,290 --> 00:58:22,000 >> Em suma, $ _POST em todas as tampas é um variável global que o PHP apenas 1241 00:58:22,000 --> 00:58:25,050 magicamente cria para você quando utilizando PHP em um contexto web. 1242 00:58:25,050 --> 00:58:29,160 E ele coloca dentro de tudo do nomes dos parâmetros na forma em que 1243 00:58:29,160 --> 00:58:33,200 foi submetido a este arquivo e todos os valores que o usuário digitou dentro 1244 00:58:33,200 --> 00:58:37,790 Por isso, entrega-lhe o que o usuário digitado no formulário. 1245 00:58:37,790 --> 00:58:42,210 >> Então, antes, temos de saída realmente estúpido de apenas vendo isso, porque tudo o que fiz 1246 00:58:42,210 --> 00:58:44,400 foi recursivamente imprimir este array. 1247 00:58:44,400 --> 00:58:46,060 A chave é o nome, o valor é David. 1248 00:58:46,060 --> 00:58:46,980 A chave é o capitão. 1249 00:58:46,980 --> 00:58:47,970 O valor está ligado. 1250 00:58:47,970 --> 00:58:52,300 E a seta dupla e do ângulo suporte de lá, isto é apenas arbitrária. 1251 00:58:52,300 --> 00:58:53,270 Isto não é um código. 1252 00:58:53,270 --> 00:58:57,690 Esta é apenas uma maneira de mostrar que você do PHP qual é o valor de alguma chave é. 1253 00:58:57,690 --> 00:59:03,000 >> Mas agora deixe-me propor que, em froshIMs3, é quase idêntico 1254 00:59:03,000 --> 00:59:04,950 exceto que ele se submete a esse arquivo. 1255 00:59:04,950 --> 00:59:08,570 E, novamente, vamos meio que olhar para isso, só para ver alguns 1256 00:59:08,570 --> 00:59:12,040 sintaxe, mas observe o que esse arquivo faz. 1257 00:59:12,040 --> 00:59:14,930 Dar um palpite baseado apenas nas linhas de código, o que provavelmente se parecem com 1258 00:59:14,930 --> 00:59:17,410 Grego, em certa medida, aparentemente está fazendo. 1259 00:59:17,410 --> 00:59:20,580 1260 00:59:20,580 --> 00:59:23,110 >> Este arquivo é de alguma forma relacionados ao correio, e-mail. 1261 00:59:23,110 --> 00:59:24,770 Então o que é este programa está fazendo? 1262 00:59:24,770 --> 00:59:28,740 Nesta versão, se eu fosse realmente preencha este formulário - e deixe-me ir para 1263 00:59:28,740 --> 00:59:30,760 froshIMs3, não froshIMs0 - 1264 00:59:30,760 --> 00:59:33,280 1265 00:59:33,280 --> 00:59:34,540 a forma parece o mesmo. 1266 00:59:34,540 --> 00:59:37,980 David, capitão, do sexo masculino, dormitório, Matthews. 1267 00:59:37,980 --> 00:59:42,980 Mas se eu enviar isso, este arquivo é indo para ir para register3.php. 1268 00:59:42,980 --> 00:59:46,330 >> E eu afirmo, de olhar para ele é código-fonte, que vai 1269 00:59:46,330 --> 00:59:47,650 envolvem alguma forma de e-mail. 1270 00:59:47,650 --> 00:59:49,620 Deixe-me ir em frente e abrir este em uma janela maior, então nós 1271 00:59:49,620 --> 00:59:51,030 pode vê-la mais limpa. 1272 00:59:51,030 --> 00:59:57,220 Estamos em VHosts, host local, público, froshims. 1273 00:59:57,220 --> 00:59:58,680 Vou abrir uma diferente programa, apenas para que 1274 00:59:58,680 --> 01:00:00,160 pode ver mais de uma só vez. 1275 01:00:00,160 --> 01:00:03,100 >> Então, agora aqui, observe algumas coisas. 1276 01:00:03,100 --> 01:00:06,530 Na parte superior do arquivo é aberto suporte, ponto de interrogação, PHP. 1277 01:00:06,530 --> 01:00:08,920 Depois, há um monte de comentários, que podemos ignorar, é 1278 01:00:08,920 --> 01:00:10,450 desinteressante para agora. 1279 01:00:10,450 --> 01:00:11,300 >> Agora há este. 1280 01:00:11,300 --> 01:00:14,200 Acontece PHP tem um monte de código chamado necessita. 1281 01:00:14,200 --> 01:00:19,110 É muito semelhante em espírito ao C do incluir, mistura include, que 1282 01:00:19,110 --> 01:00:21,980 essencialmente agarra o conteúdo de alguns outro arquivo e apenas se estatela-los aqui, 1283 01:00:21,980 --> 01:00:22,930 para que você possa usá-los. 1284 01:00:22,930 --> 01:00:27,060 Neste caso, o aparelho tem, pré-instalado, uma biblioteca, livre e 1285 01:00:27,060 --> 01:00:29,900 biblioteca de código aberto chamado PHP mailer que qualquer um pode 1286 01:00:29,900 --> 01:00:30,770 baixar da internet. 1287 01:00:30,770 --> 01:00:32,000 Nós só fizemos isso por você. 1288 01:00:32,000 --> 01:00:36,130 E isso significa que agora tenho e-mail funcionalidade à minha disposição. 1289 01:00:36,130 --> 01:00:38,170 >> Agora, observe algumas coisas. 1290 01:00:38,170 --> 01:00:41,120 Eu estou indo para validar a submissão do formulário. 1291 01:00:41,120 --> 01:00:45,980 Acontece que PHP, um, tem de exclamação pontos para o operador, não apenas como 1292 01:00:45,980 --> 01:00:49,810 C. Mas o PHP também tem uma função chamado vazio. 1293 01:00:49,810 --> 01:00:53,920 >> Vazio, apenas retorna true se o valor da coisa que você entregá-lo 1294 01:00:53,920 --> 01:00:57,190 parênteses está vazia, como o usuário não digitar nada dentro 1295 01:00:57,190 --> 01:01:02,680 Então, isso está dizendo, e observará o sintaxe, lembra muito C, se o 1296 01:01:02,680 --> 01:01:07,730 chave de nome, de modo que o campo nome no formulário, que foi submetido via correio, por 1297 01:01:07,730 --> 01:01:13,010 o usuário, não é vazia, e sua gênero não é vazio na forma como 1298 01:01:13,010 --> 01:01:15,980 bem, e seu dormitório não é vazio - 1299 01:01:15,980 --> 01:01:19,980 mas repare que eu não me importo com o capitão, então o que é que vamos fazer? 1300 01:01:19,980 --> 01:01:21,990 >> Eu estou indo para executar esta linha de código. 1301 01:01:21,990 --> 01:01:24,100 E você pode pensar neste tipo de como malloc, mas é um pouco 1302 01:01:24,100 --> 01:01:24,800 mais sofisticado do que isso. 1303 01:01:24,800 --> 01:01:29,200 Mas por enquanto isso me dá uma especial struct do tipo PHP mailer. 1304 01:01:29,200 --> 01:01:31,410 Mas ignorar a palavra-chave new para hoje. 1305 01:01:31,410 --> 01:01:35,670 >> Agora eu vou chamar uma função chamada IsSMTP, que diz: usar SMTP. 1306 01:01:35,670 --> 01:01:39,380 Esta é a porta 25, assim como o vídeo na semana passada, quando a coisa estava jogando 1307 01:01:39,380 --> 01:01:40,710 e-mails para o firewall. 1308 01:01:40,710 --> 01:01:42,440 A porta 25 é SMTP. 1309 01:01:42,440 --> 01:01:44,410 SMTP significa usar o servidor de e-mail. 1310 01:01:44,410 --> 01:01:46,215 Qual deles, podemos usar Harvard SMTP.fas.harvard.edu. 1311 01:01:46,215 --> 01:01:48,850 1312 01:01:48,850 --> 01:01:51,590 >> Podemos definir a partir do endereço ser John Harvard. 1313 01:01:51,590 --> 01:01:55,090 Se eu rolar mais longe, eu posso definir o endereço do destinatário, apenas 1314 01:01:55,090 --> 01:01:56,840 arbitrariamente, ser John Harvard é assim. 1315 01:01:56,840 --> 01:01:59,210 Então, ele vai ser o próprio e-mail. 1316 01:01:59,210 --> 01:02:01,600 >> Agora eu posso definir o assunto ser de registo. 1317 01:02:01,600 --> 01:02:03,700 E eu posso definir o corpo de e-mail da seguinte forma. 1318 01:02:03,700 --> 01:02:06,500 Essa linha parece um pouco mais enigmática, mas isso é apenas porque há muito 1319 01:02:06,500 --> 01:02:07,450 da informação nele contida. 1320 01:02:07,450 --> 01:02:10,670 Um deles, há um operador ponto. 1321 01:02:10,670 --> 01:02:14,510 Alguém já deve saber o que o operador ponto faz. 1322 01:02:14,510 --> 01:02:15,436 É concatenação. 1323 01:02:15,436 --> 01:02:19,240 Então, se você quiser ter uma string em PHP, e anexá-la, ou preceder-lo, 1324 01:02:19,240 --> 01:02:23,500 outra cadeia em PHP, graças a Deus você não tem que usar strcopy e malloc, 1325 01:02:23,500 --> 01:02:25,490 e tudo isso mais. 1326 01:02:25,490 --> 01:02:28,765 >> Se você quiser concatenar duas strings, que se preocupa com a memória. 1327 01:02:28,765 --> 01:02:30,850 Vamos figura PHP que para você. 1328 01:02:30,850 --> 01:02:35,200 O PHP vai fazer com o operador ponto aqui é só fazer uma grande frase fora 1329 01:02:35,200 --> 01:02:37,900 desta linha, esta linha, Nesta linha, esta linha. 1330 01:02:37,900 --> 01:02:40,460 E agora, o aviso prévio, que vai a ligar os valores. 1331 01:02:40,460 --> 01:02:43,680 Assim, o e-mail que John Harvard vai a receber é, literalmente, vai dizer 1332 01:02:43,680 --> 01:02:49,450 nome, cólon, algo melhor, então nós fechar a corda e concatenar em 1333 01:02:49,450 --> 01:02:52,220 o que o usuário digitou no, então uma nova linha. 1334 01:02:52,220 --> 01:02:54,570 >> Em seguida, na próxima linha de John Harvard e-mail, ele vai dizer 1335 01:02:54,570 --> 01:02:55,910 Capitão, On ou Nada. 1336 01:02:55,910 --> 01:02:57,810 Vai dizer sexo, masculino ou feminino. 1337 01:02:57,810 --> 01:02:59,680 Dormitório vai ser Matthews no meu caso. 1338 01:02:59,680 --> 01:03:03,400 E, em seguida, perceber vírgula familiarizado no final. 1339 01:03:03,400 --> 01:03:07,830 E então, aqui em baixo, o aviso prévio, um pouco enigmática ainda, mas, novamente, seguindo uma 1340 01:03:07,830 --> 01:03:12,730 padrão que vai se tornar mais familiar P após ajuste 7, se o envio de e-mail 1341 01:03:12,730 --> 01:03:16,610 retorna false, então vá em frente e morrer. 1342 01:03:16,610 --> 01:03:19,610 >> Então, PHP tem uma função chamada morrer, que, literalmente, apenas mata o 1343 01:03:19,610 --> 01:03:22,830 website e apenas imprime o que você diga a ele - o seu está morrendo 1344 01:03:22,830 --> 01:03:24,280 palavras, por assim dizer. 1345 01:03:24,280 --> 01:03:28,310 E que, no caso, ele irá imprimir o que a informação de erro é de 1346 01:03:28,310 --> 01:03:29,860 o que aconteceu para dar errado. 1347 01:03:29,860 --> 01:03:34,490 Assim, longa história curta aqui, o que temos é um exemplo em que, quando o utilizador 1348 01:03:34,490 --> 01:03:39,150 envia o formulário, froshim0, froshims3.php, ele vai para 1349 01:03:39,150 --> 01:03:40,760 register3.php. 1350 01:03:40,760 --> 01:03:45,290 Mas register3.php prossegue então para executar todas estas linhas. 1351 01:03:45,290 --> 01:03:46,620 >> Portanto, há algumas desmarcações tomar aqui. 1352 01:03:46,620 --> 01:03:50,380 Uma, é aparentemente bastante fácil, programaticamente, para enviar e-mails, 1353 01:03:50,380 --> 01:03:50,830 o que é bom. 1354 01:03:50,830 --> 01:03:53,500 Quando os usuários se inscrever para o seu site, em Neste caso, quando se registrar para o seu 1355 01:03:53,500 --> 01:03:56,220 esporte, você pode enviar o calouro Proctor, ou John 1356 01:03:56,220 --> 01:03:57,650 Harvard, neste caso. 1357 01:03:57,650 --> 01:04:01,630 >> Mas isso também significa que você pode fazer o que? 1358 01:04:01,630 --> 01:04:03,970 Enviar e-mails a partir de qualquer um a qualquer um. 1359 01:04:03,970 --> 01:04:05,430 E isso é muito verdadeiro. 1360 01:04:05,430 --> 01:04:08,580 Isto não é tão fácil de fazer se você está acostumado a usar o Gmail. 1361 01:04:08,580 --> 01:04:11,310 Mas se você já usou ou Eudora Outlook, você pode muito bem contar uma 1362 01:04:11,310 --> 01:04:13,720 servidor de correio que você é quem quiser. 1363 01:04:13,720 --> 01:04:16,450 E é aí que eu preciso para colocar em esse chapéu e dizer: não faça isso. 1364 01:04:16,450 --> 01:04:21,140 Mas isso é prova de quão fácil é para realizar ataques de phishing, e 1365 01:04:21,140 --> 01:04:24,310 enviar e-mails anônimos e Spam, de modo mais geral. 1366 01:04:24,310 --> 01:04:27,330 E ela realmente se resume à fato de que tudo o que você precisa é de alguns 1367 01:04:27,330 --> 01:04:28,500 acesso programático. 1368 01:04:28,500 --> 01:04:31,940 >> Como um aparte, o meu encontro mais próximo com a placa do anúncio, o meu primeiro ano, 1369 01:04:31,940 --> 01:04:34,320 Foi quando eu descobri isso legal truque que, uau, você pode 1370 01:04:34,320 --> 01:04:36,850 enviar e-mails a partir de qualquer um. 1371 01:04:36,850 --> 01:04:39,770 E assim estávamos tendo algum estúpido argumento, literalmente, em Matthews, 1372 01:04:39,770 --> 01:04:40,790 entre o meu grupo Proctor. 1373 01:04:40,790 --> 01:04:42,470 Eu nem me lembro qual era o problema. 1374 01:04:42,470 --> 01:04:44,970 Mas eu queria tentar colocar um fim a este debate estúpido. 1375 01:04:44,970 --> 01:04:48,580 >> Então eu decidi que só vai enviar um e-mail para o meu grupo Proctor, fingindo ser 1376 01:04:48,580 --> 01:04:52,000 o outro cara, com cuja opinião eu discordou, e tê-lo concordar com 1377 01:04:52,000 --> 01:04:54,680 qualquer que seja minha opinião foi em este debate particular. 1378 01:04:54,680 --> 01:04:59,320 E assim eu forjou este e-mail através de um técnica similar em espírito para isso. 1379 01:04:59,320 --> 01:05:01,256 Mas foi realmente mais fácil no momento. 1380 01:05:01,256 --> 01:05:02,435 Clique em enviar. 1381 01:05:02,435 --> 01:05:06,660 Ele não estava satisfeito, nem ter sido a placa do anúncio. 1382 01:05:06,660 --> 01:05:10,280 >> E eu estava muito rapidamente capturadas na segundo, porque, como você sabe, eu assino 1383 01:05:10,280 --> 01:05:11,420 meus e-mails de uma certa maneira. 1384 01:05:11,420 --> 01:05:14,200 E apesar de eu fazê-lo manualmente, em grande parte, 15 anos depois, porque eu estava 1385 01:05:14,200 --> 01:05:15,080 traumatizado por isso. 1386 01:05:15,080 --> 01:05:16,960 Eu não tenho uma assinatura no meu e-mail agora. 1387 01:05:16,960 --> 01:05:20,440 Mas em 1995, eu só tinha um sig, uma assinatura no meu e-mail. 1388 01:05:20,440 --> 01:05:24,630 Então houve essa nota dizendo, Dear Grupo Proctor, eu aquiescer minha opinião 1389 01:05:24,630 --> 01:05:31,240 e concordo com David, assinado assim e assim, nova linha, nova linha, DJM. 1390 01:05:31,240 --> 01:05:36,220 >> Portanto, não faça isso, ou, em geral, tomar vantagem desta técnica. 1391 01:05:36,220 --> 01:05:39,950 Mas quando fazer um site, como, por seu projeto final, ao fazer uma 1392 01:05:39,950 --> 01:05:43,460 site para algo empreendedor, é assim que, pragmaticamente, é possível 1393 01:05:43,460 --> 01:05:47,000 alavancar outros serviços na internet como e-mail e, em seguida, na verdade, 1394 01:05:47,000 --> 01:05:49,440 enviar coisas usando código. 1395 01:05:49,440 --> 01:05:51,240 >> Então, como podemos melhorar isso? 1396 01:05:51,240 --> 01:05:54,370 Bem, primeiro vamos dar um rápido passeio algumas das coisas que você vai ver, 1397 01:05:54,370 --> 01:05:56,170 e, em seguida, dar uma olhada um par de exemplos. 1398 01:05:56,170 --> 01:05:59,500 Então um, para tranquilizar, porque nós estamos voando através do PHP. 1399 01:05:59,500 --> 01:06:02,470 E eu sei que, em algum momento, você vai ter para realmente começar a escrever este se 1400 01:06:02,470 --> 01:06:03,460 não o tenha feito. 1401 01:06:03,460 --> 01:06:06,220 Perceba que, um, principal espécie de fora da janela com PHP. 1402 01:06:06,220 --> 01:06:09,420 Se você quiser escrever um código que recebe executado, basta começar a escrever em 1403 01:06:09,420 --> 01:06:13,970 um arquivo chamado. php enquanto você tem o suporte aberto 1404 01:06:13,970 --> 01:06:15,620 ponto de interrogação PHP tag. 1405 01:06:15,620 --> 01:06:19,730 >> Mas observe estes são condições em PHP. 1406 01:06:19,730 --> 01:06:22,610 Note, este é exatamente o mesmo slide tivemos em uma semana, quando tivemos 1407 01:06:22,610 --> 01:06:25,670 em condições em condições C. PHP são estruturalmente e 1408 01:06:25,670 --> 01:06:27,140 sintaticamente o mesmo. 1409 01:06:27,140 --> 01:06:30,290 Única verdadeira diferença é se você tem variáveis ​​envolvidas, você tem aqueles 1410 01:06:30,290 --> 01:06:31,600 cifrões. 1411 01:06:31,600 --> 01:06:33,970 >> Enquanto isso, as expressões booleanas olhar apenas como este para 1412 01:06:33,970 --> 01:06:35,725 ou-ing ou e-ing juntos. 1413 01:06:35,725 --> 01:06:37,780 Switches exatamente o mesmo. 1414 01:06:37,780 --> 01:06:42,180 O que é bom em PHP, enquanto que no C, interruptores tem que ser em casos 1415 01:06:42,180 --> 01:06:46,380 primitivos como inteiros ou chars, em PHP suas declarações de casos pode realmente ser 1416 01:06:46,380 --> 01:06:48,430 sobre toda uma corda, que é na verdade, uma espécie de bom. 1417 01:06:48,430 --> 01:06:49,480 Poupa-lhe algum tempo. 1418 01:06:49,480 --> 01:06:50,820 Não poderia fazer isso em C. 1419 01:06:50,820 --> 01:06:52,880 >> Aqui está um loop no PHP. 1420 01:06:52,880 --> 01:06:53,740 É idêntico. 1421 01:06:53,740 --> 01:06:55,400 Pode ter alguns cifrões para as variáveis. 1422 01:06:55,400 --> 01:06:57,530 Você não tem que mencionar que algo é um int. 1423 01:06:57,530 --> 01:07:00,580 Você apenas declará-lo com um sinal de dólar e o nome da variável. 1424 01:07:00,580 --> 01:07:01,430 Mas um loop é o mesmo. 1425 01:07:01,430 --> 01:07:02,760 Um loop while é o mesmo. 1426 01:07:02,760 --> 01:07:04,870 A fazer loop while é o mesmo. 1427 01:07:04,870 --> 01:07:06,170 >> Este é um pouco diferente. 1428 01:07:06,170 --> 01:07:12,410 Assim, com PHP, com uma matriz, você pode estaticamente declarar uma matriz, como em C, 1429 01:07:12,410 --> 01:07:14,420 mas você usa colchetes. 1430 01:07:14,420 --> 01:07:17,060 Em C, você poderia usar chaves, se você mesmo sabia disso. 1431 01:07:17,060 --> 01:07:20,910 Mas isso é realmente muito comum em PHP para declarar uma matriz, no caso em apreço, 1432 01:07:20,910 --> 01:07:23,640 de números, e chamar o número de variáveis. 1433 01:07:23,640 --> 01:07:25,300 >> Próprias variáveis ​​semelhante a este. 1434 01:07:25,300 --> 01:07:28,710 Aqui está uma corda, citação de citação "Olá mundo. "Você poderia ter uma barra invertida n. 1435 01:07:28,710 --> 01:07:30,950 Eu simplesmente não neste caso. 1436 01:07:30,950 --> 01:07:32,640 >> Agora, esta é uma construção interessante. 1437 01:07:32,640 --> 01:07:33,700 C não tem isso. 1438 01:07:33,700 --> 01:07:34,700 Mas isso é super útil. 1439 01:07:34,700 --> 01:07:38,160 E você vai ver isso em P set 7 especificação - um para cada constructo. 1440 01:07:38,160 --> 01:07:41,800 Se você quer reiterar sobre toda a elementos de uma matriz, você não tem 1441 01:07:41,800 --> 01:07:45,500 para lidar com i $ e $ n, e + +, e tudo isso. 1442 01:07:45,500 --> 01:07:47,640 Você pode literalmente dizer, em PHP, este - 1443 01:07:47,640 --> 01:07:51,890 para cada números como número, de modo Estou assumindo que $ números 1444 01:07:51,890 --> 01:07:53,380 é uma matriz de números. 1445 01:07:53,380 --> 01:07:56,460 E quando eu digo para cada número como o número, este vai 1446 01:07:56,460 --> 01:08:00,505 automaticamente, como o meu loop é executado, actualizar, em cada iteração, o valor 1447 01:08:00,505 --> 01:08:03,260 dentro do número de cifrão - 1448 01:08:03,260 --> 01:08:07,730 novamente, e novamente, e novamente caminhando para mim sobre essa matriz. 1449 01:08:07,730 --> 01:08:08,735 Por isso, só nos salva código. 1450 01:08:08,735 --> 01:08:12,250 Não há ponto e vírgula, sem + + 's, no i é, não n da, é apenas bom. 1451 01:08:12,250 --> 01:08:13,700 >> Mas o PHP também tem isso. 1452 01:08:13,700 --> 01:08:14,830 E isso é super poderoso. 1453 01:08:14,830 --> 01:08:17,410 E você vai usar isso, mãos diante, em conjunto P 7. 1454 01:08:17,410 --> 01:08:21,990 E matriz associativa também é declarada com colchetes. 1455 01:08:21,990 --> 01:08:23,569 Mas observe a sintaxe agora. 1456 01:08:23,569 --> 01:08:26,880 É uma reminiscência do que vimos com print_r um momento atrás. 1457 01:08:26,880 --> 01:08:31,810 Quantas chaves, como um pouco de verificação de sanidade, que essa matriz parecem ter. 1458 01:08:31,810 --> 01:08:32,689 >> Por isso, tem dois. 1459 01:08:32,689 --> 01:08:33,830 E chamam isso de uma matriz. 1460 01:08:33,830 --> 01:08:36,760 Mas, se isso ajuda, você pode pensar desta tabela, como mistura, ou como 1461 01:08:36,760 --> 01:08:37,930 uma matriz associativa. 1462 01:08:37,930 --> 01:08:39,580 Mas é apenas uma diferente tipo de matriz. 1463 01:08:39,580 --> 01:08:41,080 E, novamente, línguas diferentes tê-los. 1464 01:08:41,080 --> 01:08:43,810 Vamos ver algo semelhante em JavaScript também. 1465 01:08:43,810 --> 01:08:44,609 Há duas chaves. 1466 01:08:44,609 --> 01:08:48,390 Um deles é entre aspas, "símbolo", uma é citar unquote "preço". E essas chaves 1467 01:08:48,390 --> 01:08:49,250 cada um tem um valor. 1468 01:08:49,250 --> 01:08:54,420 Neste caso, o valor do símbolo é FB, por Valor Facebook, e de preço é de 49, 26, 1469 01:08:54,420 --> 01:08:56,899 que era das ações da Facebook preço a partir desta manhã. 1470 01:08:56,899 --> 01:09:00,170 >> Então, o que é útil sobre uma matriz associativa. 1471 01:09:00,170 --> 01:09:02,620 Eu poderia ter tido um numericamente matriz indexada com apenas 1472 01:09:02,620 --> 01:09:04,120 simples colchetes. 1473 01:09:04,120 --> 01:09:09,380 E eu poderia ter tido cifrão Citação equivale exatamente isso. 1474 01:09:09,380 --> 01:09:10,529 Deixe-me realmente fazê-lo. 1475 01:09:10,529 --> 01:09:14,796 Suponha que eu ao invés de apenas declarou essa matriz assim. 1476 01:09:14,796 --> 01:09:17,590 Isto é perfeitamente válida, sintaticamente. 1477 01:09:17,590 --> 01:09:20,569 Ele não perde nenhuma informação, per si. 1478 01:09:20,569 --> 01:09:24,760 Eu ainda vejo que o símbolo é fb, e que o preço é 49, 26. 1479 01:09:24,760 --> 01:09:28,939 Então, por que são associativas matrizes atraente? 1480 01:09:28,939 --> 01:09:30,189 >> AUDIÊNCIA: Você não tem que se lembrar onde você coloca coisas. 1481 01:09:30,189 --> 01:09:32,050 1482 01:09:32,050 --> 01:09:34,130 >> COLUNA 1: Exatamente, você não tem se lembrar de onde você coloca coisas. 1483 01:09:34,130 --> 01:09:37,670 Você não tem que se lembrar arbitrariamente que o símbolo da ação está na faixa de zero, 1484 01:09:37,670 --> 01:09:41,479 e os preços das ações está em um suporte, o que é particularmente perigoso se 1485 01:09:41,479 --> 01:09:43,220 mudar as coisas, eventualmente. 1486 01:09:43,220 --> 01:09:46,399 É muito mais agradável para associar o que vamos chamar de metadados 1487 01:09:46,399 --> 01:09:48,340 com seus dados reais. 1488 01:09:48,340 --> 01:09:52,399 Eu diria que o que realmente importa E aqui é fb e 49, 26. 1489 01:09:52,399 --> 01:09:57,020 O símbolo eo preço é de metadados que descreve os dados que 1490 01:09:57,020 --> 01:09:58,180 realmente se preocupam. 1491 01:09:58,180 --> 01:10:01,910 Mas este é apenas muito mais fácil acesso. 1492 01:10:01,910 --> 01:10:04,090 >> Agora, como um aparte o que é o preço que pagamos? 1493 01:10:04,090 --> 01:10:06,600 Estamos fazendo isso em CS50 por semanas. 1494 01:10:06,600 --> 01:10:10,740 Este recurso deve vir com algum custo. 1495 01:10:10,740 --> 01:10:11,350 Memória. 1496 01:10:11,350 --> 01:10:13,830 Então, você não está apenas armazenando a 32-bit número inteiro, por exemplo. 1497 01:10:13,830 --> 01:10:17,980 Você está armazenando símbolo / 0, provavelmente. 1498 01:10:17,980 --> 01:10:19,160 Então você está usando mais memória. 1499 01:10:19,160 --> 01:10:22,540 >> E qual é o desempenho de procurando algo em uma 1500 01:10:22,540 --> 01:10:24,822 matriz associativa, provavelmente? 1501 01:10:24,822 --> 01:10:26,590 É provavelmente mais lento. 1502 01:10:26,590 --> 01:10:29,670 De acesso aleatório é agradável, especialmente quando você pode fazer busca binária. 1503 01:10:29,670 --> 01:10:33,380 Mas se você está realmente olhando agora não por números, mas por cordas, este 1504 01:10:33,380 --> 01:10:37,630 verdadeiramente é implementado sob a capuz, provavelmente como uma tabela hash, onde 1505 01:10:37,630 --> 01:10:42,950 você usar uma tabela hash com encadeamento separado. 1506 01:10:42,950 --> 01:10:46,040 Ou você usa uma tentativa de realmente armazenar os valores. 1507 01:10:46,040 --> 01:10:50,550 Então, talvez você possa fazer o tempo constante, mas você ainda tem que olhar para S-Y-M-B-O-L, 1508 01:10:50,550 --> 01:10:54,510 potencialmente, em vez de apenas 32 bits para procurar alguma coisa. 1509 01:10:54,510 --> 01:10:58,430 Então, novamente, essas mesmas idéias que vem voltar a se repetir neste contexto. 1510 01:10:58,430 --> 01:11:02,120 >> Mas, novamente, PHP agora tem alguns super- globals que, ao que parece, são 1511 01:11:02,120 --> 01:11:02,900 arrays associativos. 1512 01:11:02,900 --> 01:11:05,590 Vimos um momento atrás, $ _POST. 1513 01:11:05,590 --> 01:11:08,400 E essa super-mundial tem chaves e valores. 1514 01:11:08,400 --> 01:11:10,550 Especificamente, as teclas alinhar-se com o quê? 1515 01:11:10,550 --> 01:11:14,520 Onde é que as chaves $ _POST vem? 1516 01:11:14,520 --> 01:11:15,380 Apenas para recapitular? 1517 01:11:15,380 --> 01:11:16,480 >> AUDIÊNCIA: Nome. 1518 01:11:16,480 --> 01:11:17,900 >> COLUNA 1: Nome, onde? 1519 01:11:17,900 --> 01:11:19,860 >> AUDIÊNCIA: [inaudível] 1520 01:11:19,860 --> 01:11:20,750 >> COLUNA 1: Nome é o atributo. 1521 01:11:20,750 --> 01:11:23,480 Bem, onde, de onde eles originalmente vem? 1522 01:11:23,480 --> 01:11:24,120 O formulário. 1523 01:11:24,120 --> 01:11:30,140 Então, se uma página HTML tem uma tag de formulário, no interior dos quais são algumas entradas, como 1524 01:11:30,140 --> 01:11:34,760 caixas, caixas de texto, desça menus, cada um dos quais tem um nome, estes 1525 01:11:34,760 --> 01:11:40,260 nomes acabar como chaves em $ _POST, e, francamente, para que o assunto, $ _GET. 1526 01:11:40,260 --> 01:11:42,130 Se o método é get, mesma idéia. 1527 01:11:42,130 --> 01:11:43,830 É apenas de uma forma diferente de super global. 1528 01:11:43,830 --> 01:11:47,620 E os valores de, é claro, a partir de vir o que o usuário digitou no seu ou 1529 01:11:47,620 --> 01:11:48,890 seu browser. 1530 01:11:48,890 --> 01:11:49,830 >> Mas há alguns outros. 1531 01:11:49,830 --> 01:11:52,140 Há cookie, que vamos voltar eventualmente. 1532 01:11:52,140 --> 01:11:56,050 Mas essas são as coisas que você sabe a web usa por algum bem ou o mal. 1533 01:11:56,050 --> 01:11:57,420 Mas vamos voltar a isso. 1534 01:11:57,420 --> 01:12:01,720 Servidor e sessão, e os dois ter alguma utilidade especial. 1535 01:12:01,720 --> 01:12:03,940 >> Mas vamos dar uma olhada nisso. 1536 01:12:03,940 --> 01:12:13,330 Deixe-me ir em frente e abrir um exemplo chamado mvc0.php Então MVC 1537 01:12:13,330 --> 01:12:14,900 significa o seguinte. 1538 01:12:14,900 --> 01:12:19,390 E nós apresentamos este mais cedo do que é típico, na verdade, para você projetar 1539 01:12:19,390 --> 01:12:22,180 7 Conjunto de problemas, e também os projectos finais em uma espécie de indústria 1540 01:12:22,180 --> 01:12:23,670 forma padrão e forma limpa. 1541 01:12:23,670 --> 01:12:24,820 É bom design. 1542 01:12:24,820 --> 01:12:29,090 >> Então, você está prestes a ver, e você vai experiência em P set 7, paradigma, tipo 1543 01:12:29,090 --> 01:12:32,260 de uma mentalidade de programação, que parece um pouco algo como isto. 1544 01:12:32,260 --> 01:12:35,570 M para o modelo, C para Controller, V para View. 1545 01:12:35,570 --> 01:12:39,690 Longa história curta, MVC é apenas um tipo de uma metodologia, uma maneira de fazer 1546 01:12:39,690 --> 01:12:43,360 sites, em particular, através do qual você colocar toda a sua, a frase estúpida - 1547 01:12:43,360 --> 01:12:44,970 lógica de negócios - 1548 01:12:44,970 --> 01:12:49,710 todos de sua propriedade intelectual no o que é chamado um controlador, um arquivo 1549 01:12:49,710 --> 01:12:54,840 como index.php, ou veremos, quote.php ou buy.php. 1550 01:12:54,840 --> 01:12:59,570 >> No contexto de um conjunto de problemas 7, o seu modelos geralmente contêm os dados, 1551 01:12:59,570 --> 01:13:03,860 qualquer coisa relacionada a um banco de dados, como veremos eventualmente ver, e seus pontos de vista 1552 01:13:03,860 --> 01:13:07,510 conter a estética do seu site, o HTML, o CSS. 1553 01:13:07,510 --> 01:13:10,420 Então, já vimos isso em C um pouco bit usando arquivos h.. 1554 01:13:10,420 --> 01:13:15,010 Realmente vi há pouco com CSS, por factoring a estilização CSS 1555 01:13:15,010 --> 01:13:16,520 coisas fora do nosso HTML. 1556 01:13:16,520 --> 01:13:20,730 >> Então MVC é realmente apenas sobre desenho linhas na areia e dizer: o 1557 01:13:20,730 --> 01:13:25,400 código de programação interessante para o seu site pertence a que chamaremos o 1558 01:13:25,400 --> 01:13:26,400 controlador. 1559 01:13:26,400 --> 01:13:29,280 Coisas relacionadas ao banco de dados normalmente acaba em um modelo. 1560 01:13:29,280 --> 01:13:33,070 Mas você vai ver, em conjunto Problema 7, nós fundem C e M para mantê-lo simples. 1561 01:13:33,070 --> 01:13:37,630 Mas a visão é o lugar onde todo o seu HTML e estética tipicamente ir. 1562 01:13:37,630 --> 01:13:39,160 >> Então, o que isso significa em termos reais? 1563 01:13:39,160 --> 01:13:45,980 Bem, deixe-me ir para o nosso MVC diretório como se segue. 1564 01:13:45,980 --> 01:13:48,880 E você vai ver mais destes excursionou por meio da especificação. 1565 01:13:48,880 --> 01:13:53,200 Assim, em mvc0, eu afirmo que isto é, como, Versão 0 de sites do CS50. 1566 01:13:53,200 --> 01:13:56,670 >> Tudo o que temos é um pouco de HTML, como uma grande etiqueta de h1, aparentemente. 1567 01:13:56,670 --> 01:13:57,800 E, em seguida, uma lista com marcadores. 1568 01:13:57,800 --> 01:13:59,860 Eu nunca vi uma lista com marcadores antes, mas não é grande coisa. 1569 01:13:59,860 --> 01:14:01,590 Vamos rapidamente olhar para o código fonte. 1570 01:14:01,590 --> 01:14:06,610 Acontece que uma lista não ordenada com balas ul suporte é aberto com um ou 1571 01:14:06,610 --> 01:14:09,065 mais itens da lista, Li. 1572 01:14:09,065 --> 01:14:10,650 Então, aviso aqui é uma marca de âncora. 1573 01:14:10,650 --> 01:14:12,130 Vimos que um momento atrás. 1574 01:14:12,130 --> 01:14:13,810 >> Então é assim que eu implementei nesta página. 1575 01:14:13,810 --> 01:14:18,460 Tenho dois links, dois itens de lista, um ul para lista não ordenada, e no final 1576 01:14:18,460 --> 01:14:22,700 resultado, esteticamente, isso é muito site bonito, versão 0 aqui. 1577 01:14:22,700 --> 01:14:26,840 Mas o que é interessante agora é saber como este é implementado sob o capô. 1578 01:14:26,840 --> 01:14:33,590 >> Deixe-me ir para gedit e abrir este primeiro exemplo, para pintar um quadro. 1579 01:14:33,590 --> 01:14:37,070 E nós vamos olhar o que está falho, potencialmente, aqui. 1580 01:14:37,070 --> 01:14:43,260 Agora, se eu entro em localhost, público, MVC, observe alguns arquivos. 1581 01:14:43,260 --> 01:14:45,780 Eu vou ligar para eles, para o momento, todos os controladores. 1582 01:14:45,780 --> 01:14:48,640 Mas isso é um pouco de abuso, porque você verá tudo está misturado 1583 01:14:48,640 --> 01:14:49,620 dentro delas. 1584 01:14:49,620 --> 01:14:52,330 >> E deixe-me ir para dentro de index.php. 1585 01:14:52,330 --> 01:14:54,700 E podemos ver, literalmente, o mesmo HTML. 1586 01:14:54,700 --> 01:14:57,970 Assim, mesmo que este arquivo termina em . Php, Isso não significa que tem que 1587 01:14:57,970 --> 01:14:59,500 tem algum código PHP. 1588 01:14:59,500 --> 01:15:02,290 Pode ser apenas HTML puro, embora isso é meio bobo. 1589 01:15:02,290 --> 01:15:07,650 Mas note que não há suporte aberto PHP marcar, com exceção para isso, o que, francamente, 1590 01:15:07,650 --> 01:15:09,160 está ali apenas para servir como um comentário. 1591 01:15:09,160 --> 01:15:12,080 Mas isso não é funcionalmente até que interessante. 1592 01:15:12,080 --> 01:15:12,960 >> Mas perceber isso. 1593 01:15:12,960 --> 01:15:15,400 O que é interessante agora é o que alterações nesta página. 1594 01:15:15,400 --> 01:15:16,650 Deixe-me clique Palestras. 1595 01:15:16,650 --> 01:15:18,560 E observe a URL está prestes a mudar. 1596 01:15:18,560 --> 01:15:20,930 Agora estou no lectures.php. 1597 01:15:20,930 --> 01:15:22,630 Deixe-me clique zero. 1598 01:15:22,630 --> 01:15:27,200 Agora estou no week0.php E agora vamos me abrir esses arquivos no gedit. 1599 01:15:27,200 --> 01:15:30,120 Não apenas o índice, mas vamos me abrir palestras. 1600 01:15:30,120 --> 01:15:33,900 E deixe-me livrar-se dos comentários focar apenas esta parte. 1601 01:15:33,900 --> 01:15:37,680 >> E agora deixe-me abrir apenas mais um, week0.php, jogue fora os comentários, 1602 01:15:37,680 --> 01:15:39,910 apenas para limpar isso. 1603 01:15:39,910 --> 01:15:41,720 E agora perceber o seguinte. 1604 01:15:41,720 --> 01:15:47,340 Pensando realmente tipo de cuidado sobre design, e vamos fazê-lo de linha 1605 01:15:47,340 --> 01:15:52,013 acima da mesma, o que pode ser feito melhor aqui, que você acha? 1606 01:15:52,013 --> 01:15:56,450 1607 01:15:56,450 --> 01:15:57,780 >> Como é que eu faço uma semana um? 1608 01:15:57,780 --> 01:15:58,480 Como sobre isso. 1609 01:15:58,480 --> 01:16:00,450 Então é assim que eu fiz uma semana. 1610 01:16:00,450 --> 01:16:08,290 Fui até Arquivo, Novo, Pasta, Salvar week1.php, e então eu fui aqui. 1611 01:16:08,290 --> 01:16:09,875 E eu mudei um - 1612 01:16:09,875 --> 01:16:11,646 o que era aquilo, uma para sexta-feira. 1613 01:16:11,646 --> 01:16:14,430 1614 01:16:14,430 --> 01:16:15,810 Mudei os zeros a um. 1615 01:16:15,810 --> 01:16:17,150 Eu mudei isso para uma. 1616 01:16:17,150 --> 01:16:20,350 >> OK, então agora olhar para os meus arquivos. 1617 01:16:20,350 --> 01:16:22,100 O que poderia ser feito de forma diferente? 1618 01:16:22,100 --> 01:16:25,310 Onde está a oportunidade, talvez? 1619 01:16:25,310 --> 01:16:28,330 Portanto, há a oportunidade de começar factoring essas coisas para fora. 1620 01:16:28,330 --> 01:16:32,950 Deixe-me abrir, como um spoiler, para o que você vai ver em P set 7. 1621 01:16:32,950 --> 01:16:38,750 Se eu abrir-se, agora, na versão index.php cinco disto, parece muito 1622 01:16:38,750 --> 01:16:40,730 mais enigmática, na verdade. 1623 01:16:40,730 --> 01:16:43,710 >> Mas isso, agora, é o que eu chamo um controlador que está controlando a 1624 01:16:43,710 --> 01:16:44,770 lógica da minha página. 1625 01:16:44,770 --> 01:16:48,510 E você pode tipo de reconstruir, intuitivamente, talvez, o que está acontecendo. 1626 01:16:48,510 --> 01:16:50,630 Na primeira linha, é um pouco enigmática. 1627 01:16:50,630 --> 01:16:54,040 Mas repare que eu estou exigindo, como com include afiada, um arquivo chamado 1628 01:16:54,040 --> 01:16:55,930 helpers.php. 1629 01:16:55,930 --> 01:16:59,980 E então eu estou chamando, aparentemente, um função, chamada render, passando 1630 01:16:59,980 --> 01:17:00,850 dois argumentos. 1631 01:17:00,850 --> 01:17:02,440 >> Uma delas é citação unquote, cabeçalho. 1632 01:17:02,440 --> 01:17:04,800 E o outro é, que tipo de tipo de dados é esta, baseada em 1633 01:17:04,800 --> 01:17:07,180 no nosso anterior sintaxe? 1634 01:17:07,180 --> 01:17:08,160 É uma matriz associada. 1635 01:17:08,160 --> 01:17:11,730 Especificamente, ele está passando no título com alguns metadados que lembra 1636 01:17:11,730 --> 01:17:13,430 me o que é e seu valor. 1637 01:17:13,430 --> 01:17:16,340 Então eu vejo um disco codificado ul, de modo algum HTML puro. 1638 01:17:16,340 --> 01:17:20,020 Mas, então, eu estou de volta no modo PHP chamando a renderização função. 1639 01:17:20,020 --> 01:17:24,390 Assim, mesmo se você nunca usou HTML ou PHP antes, e mesmo que isso parece 1640 01:17:24,390 --> 01:17:27,480 mais assustador, porque este é, provavelmente, melhor design? 1641 01:17:27,480 --> 01:17:31,310 O que há de melhor sobre o assunto, baseada em inferência? 1642 01:17:31,310 --> 01:17:32,130 >> AUDIÊNCIA: [inaudível] 1643 01:17:32,130 --> 01:17:35,750 >> COLUNA 1: Menos redundante em que não há nenhuma tag HTML mais, não mais 1644 01:17:35,750 --> 01:17:38,410 cabeças tag, não mais tag body em todos os arquivos de maldição. 1645 01:17:38,410 --> 01:17:41,860 Em vez disso, eu tenho consignado o semelhanças e, presumivelmente, colocá-los 1646 01:17:41,860 --> 01:17:45,150 em um arquivo de alguma forma relacionados a um cabeçalho. 1647 01:17:45,150 --> 01:17:48,500 Ea mesma coisa para o corpo perto tag, a tag HTML perto. 1648 01:17:48,500 --> 01:17:52,165 Isso é provavelmente aqui dentro em algum lugar do rodapé. 1649 01:17:52,165 --> 01:17:57,050 E você vai ver, em conjunto Problema 7, um pequeno passeio por isso. 1650 01:17:57,050 --> 01:17:58,070 >> Então, o que está por vir? 1651 01:17:58,070 --> 01:18:03,390 A única coisa que não tem a capacidade ainda para é realmente armazenar dados. 1652 01:18:03,390 --> 01:18:06,110 E então o que nós vamos começar a ver Quarta-feira, por exemplo, é que o seu 1653 01:18:06,110 --> 01:18:08,450 velho amigo Excel, ou números, permite que você armazene muitas 1654 01:18:08,450 --> 01:18:10,060 dados em linhas e colunas. 1655 01:18:10,060 --> 01:18:12,570 Acontece que você pode fazer isso no que é chamado de um banco de dados, por meio de programação. 1656 01:18:12,570 --> 01:18:16,620 maníaco E acontece que, depois disso, nós vamos ser capazes de armazenar coisas como 1657 01:18:16,620 --> 01:18:20,550 isso, o que você vai ver de novo em conjunto P 7, um monte de nomes de usuários e 1658 01:18:20,550 --> 01:18:23,690 palavras-passe, o último dos quais está realmente criptografado, assim como eles 1659 01:18:23,690 --> 01:18:25,550 estavam em edição pirata da P set 2. 1660 01:18:25,550 --> 01:18:29,600 E, finalmente, você vai implementar isso, o seu próprio site eTrade-assim 1661 01:18:29,600 --> 01:18:32,220 implementa coletivamente CS50 finanças. 1662 01:18:32,220 --> 01:18:36,000 >> Por último, uma vez que você ficou aqui tão tarde hoje, se você voltar a esta parte 1663 01:18:36,000 --> 01:18:41,120 do campus, às 4:00 horas de hoje, vamos dar-lhe não só aconselhamento, a SCES 1664 01:18:41,120 --> 01:18:44,200 Assessoria Fair, em 4:00 no Maxwell-Dworkin, nós vamos dar-lhe algumas 1665 01:18:44,200 --> 01:18:47,470 Americone sonho, Cereja Garcia, Chocolate Fudge Brownie, Chocolate 1666 01:18:47,470 --> 01:18:50,840 Chip Cookie Dough, e, quando você Google Chunky Monkey, você consegue isso. 1667 01:18:50,840 --> 01:18:53,620 Então, tudo isso espera às 4:00 PM de Maxwell-Dworkin. 1668 01:18:53,620 --> 01:18:56,736 Vejo você na quarta-feira também. 1669 01:18:56,736 --> 01:18:59,960 >> COLUNA 2: Na próxima CS50, RJ dorme dentro 1670 01:18:59,960 --> 01:19:03,656 1671 01:19:03,656 --> 01:19:04,906 >> RJ: Minha seção! 1672 01:19:04,906 --> 01:19:07,727 1673 01:19:07,727 --> 01:19:08,977 Ha! 1674 01:19:08,977 --> 01:19:12,056 1675 01:19:12,056 --> 01:19:13,306 Oh, 1676 01:19:13,306 --> 01:19:16,374