1 00:00:00,000 --> 00:00:05,040 2 00:00:05,040 --> 00:00:08,440 >> SAM LEVATICH: Bem-vindo ao seção para esta semana. 3 00:00:08,440 --> 00:00:10,040 Eu não sou Andi. 4 00:00:10,040 --> 00:00:14,590 Andi caiu doente o dia de hoje, e eu foram tipo de chamada no último minuto 5 00:00:14,590 --> 00:00:15,700 para assumir. 6 00:00:15,700 --> 00:00:20,920 É estação de gripe, por isso certifique-se de que você estão ficando limpo, lavar as mãos, 7 00:00:20,920 --> 00:00:24,800 e alimentação saudável para que você, também, não estão acamados. 8 00:00:24,800 --> 00:00:26,870 >> Mas sem mais delongas, vamos começar. 9 00:00:26,870 --> 00:00:29,970 Hoje, nós estamos indo falar sobre PHP um pouco como bit-- 10 00:00:29,970 --> 00:00:33,900 PHP refere ao HTML, como ele refere-se a CSS, e alguma da teia 11 00:00:33,900 --> 00:00:36,100 coisas que você fez na última atribuição. 12 00:00:36,100 --> 00:00:37,930 Vamos falar um pouco sobre SQL 13 00:00:37,930 --> 00:00:41,360 e como você pode trabalhar com bancos de dados, que é um componente bastante chave de P 14 00:00:41,360 --> 00:00:43,650 definir 8-- P ajustou 7. 15 00:00:43,650 --> 00:00:44,480 P ajustou 7. 16 00:00:44,480 --> 00:00:48,400 >> E então vamos falar um pouco pouco sobre como controladores de vista trabalhar 17 00:00:48,400 --> 00:00:54,640 e por que isso é uma filosofia por trás de alguns páginas da web modernos e um design diferente. 18 00:00:54,640 --> 00:00:58,760 Praticamente um monte de tipos de aplicativos e você pode enviar aplicativos 19 00:00:58,760 --> 00:01:01,120 está usando este modelo, framework controlador de vista, 20 00:01:01,120 --> 00:01:02,890 que você estará usando em P ajuste 7, então eu vou 21 00:01:02,890 --> 00:01:05,220 falar um pouco sobre por que se tornou 22 00:01:05,220 --> 00:01:07,970 popular, porque é importante e agradável. 23 00:01:07,970 --> 00:01:12,052 E então eu vou finalmente passar para algumas dicas sobre combate P ajustou 7. 24 00:01:12,052 --> 00:01:13,760 E se tivermos tempo sobrando no final, 25 00:01:13,760 --> 00:01:17,320 nós podemos realmente fazer alguma em que trabalhar em conjunto. 26 00:01:17,320 --> 00:01:20,380 >> Então, PHP. 27 00:01:20,380 --> 00:01:23,790 Na verdade, você pode ter notado isto-- você realmente não tem que mergulhar em ele-- 28 00:01:23,790 --> 00:01:27,880 mas P ajustou 6 teve algum PHP código que estava acontecendo. 29 00:01:27,880 --> 00:01:34,710 E porque o PHP é um C-like língua, PHP, ao contrário de HTML e CSS, 30 00:01:34,710 --> 00:01:39,030 é uma linguagem de programação, Considerando HTML e CSS são estáticos. 31 00:01:39,030 --> 00:01:44,050 Eles são linguagens de marcação que lidam com estilo e layout visual. 32 00:01:44,050 --> 00:01:46,230 PHP é o negócio real. 33 00:01:46,230 --> 00:01:51,590 >> PHP tem loops, ele tem conditions-- tudo isso que é divertido sobre C. 34 00:01:51,590 --> 00:01:56,190 Tem algumas coisas que são um pouco pouco melhor do que C, o que vamos ver, 35 00:01:56,190 --> 00:01:59,760 mas acho que a maneira mais fácil de falar sobre o PHP é apenas para mergulhar. 36 00:01:59,760 --> 00:02:04,087 Então, eu estou indo para ir para a direita no IDE neste momento. 37 00:02:04,087 --> 00:02:06,170 A primeira coisa que vamos fazer é realmente olhar 38 00:02:06,170 --> 00:02:10,169 um pouco em alguns dos Código PHP que estava em P ajustou 6. 39 00:02:10,169 --> 00:02:13,600 Assim, a maneira que nós fazemos isso-- antes, a maneira que nós estávamos correndo 40 00:02:13,600 --> 00:02:18,550 o servidor para o aparelho era que teríamos de type-- 41 00:02:18,550 --> 00:02:21,750 use sua implementação ou a aplicação da equipe 42 00:02:21,750 --> 00:02:27,059 de server.c entrando em diretório e funcionando server.c tanto com nenhuma 43 00:02:27,059 --> 00:02:30,100 arguments-- tão basta chamá-lo na host local, que é o que você provavelmente 44 00:02:30,100 --> 00:02:31,849 fez a maior parte do tempo-- e, em seguida, alimentando- 45 00:02:31,849 --> 00:02:35,380 um com directory-- que para usar como sua raiz 46 00:02:35,380 --> 00:02:38,310 onde o site iria ser executado, basicamente. 47 00:02:38,310 --> 00:02:42,180 >> Esta semana para P ajuste 7, como grande como o nosso código para server.c 48 00:02:42,180 --> 00:02:47,580 é que existem pessoas que já têm escrito estas coisas finas sobre a CS50 49 00:02:47,580 --> 00:02:49,630 que ter um pouco mais funcionalidade, 50 00:02:49,630 --> 00:02:52,920 um programa de servidor que é capaz de lidar com um pouco mais 51 00:02:52,920 --> 00:02:56,350 dos meandros que vamos ver tanto em P ajustou 7 e P set 8. 52 00:02:56,350 --> 00:03:01,410 E a maneira que você iniciar o servidor é apenas digitando "apache50." 53 00:03:01,410 --> 00:03:03,960 >> E antes de fazer qualquer coisa, você quer certificar-se 54 00:03:03,960 --> 00:03:06,070 Apache que 50 não é já em execução, pois é 55 00:03:06,070 --> 00:03:08,130 na minha máquina, que eu fiz para testá-lo. 56 00:03:08,130 --> 00:03:10,320 E você faz isso chamando apache50. 57 00:03:10,320 --> 00:03:14,070 Parar, e você vai ver que ele está parando o servidor web, se você pode olhar lá 58 00:03:14,070 --> 00:03:16,340 na parte inferior da janela do terminal. 59 00:03:16,340 --> 00:03:21,090 E depois é só para começar, estamos vai chamar, "apache50 começar." 60 00:03:21,090 --> 00:03:23,150 E então nós vamos para alimentá-lo um diretório. 61 00:03:23,150 --> 00:03:26,950 >> Agora, porque nós queremos olhar em algumas das P ajustou 6 código 62 00:03:26,950 --> 00:03:32,850 que tínhamos implementado, eu realmente copiado um pouco do P 63 00:03:32,850 --> 00:03:37,090 ajuste 6 código em minha própria pasta, que você pode ver no lado esquerdo lá. 64 00:03:37,090 --> 00:03:40,170 É chamado de "SECTION8" em letras maiúsculas 65 00:03:40,170 --> 00:03:44,510 porque eu estou tão animado a ser transmitido ao vivo hoje. 66 00:03:44,510 --> 00:03:47,330 >> Então, se nós funcionamos este, que deveria todos trabalham muito eficazmente. 67 00:03:47,330 --> 00:03:52,350 Ela diz, OK, nosso site é agora disponível no endereço do IDE, 68 00:03:52,350 --> 00:03:57,710 basicamente, que é o que você estava usando exatamente como era no P definir 7-- P ajustou 6. 69 00:03:57,710 --> 00:04:00,899 Todos os meus índices são um índice de hoje. 70 00:04:00,899 --> 00:04:02,940 Assim, podemos ir para aquele endereço, se você se lembra, 71 00:04:02,940 --> 00:04:05,710 apenas clicando neste pequeno botão no canto superior direito. 72 00:04:05,710 --> 00:04:14,200 >> E você vai lembrar este código, que aconteceu quando você foi para hello.php. 73 00:04:14,200 --> 00:04:18,000 E o que o código é projetado para fazer é quando você digitou um nome 74 00:04:18,000 --> 00:04:20,550 aqui-- se você diz Sam porque essa é a minha nome-- 75 00:04:20,550 --> 00:04:23,620 e clico Say Olá, quando fomos para a próxima página, 76 00:04:23,620 --> 00:04:25,270 nome que foi suposto ser exibida. 77 00:04:25,270 --> 00:04:28,550 Ele dizia: "Olá, Sam" ou "Olá", o que quer que você nome 78 00:04:28,550 --> 00:04:32,470 colocar nele, embora nós fomos a uma inteiramente nova página web. 79 00:04:32,470 --> 00:04:36,610 >> E este é o tipo de coisa que o PHP pode fazer por você. 80 00:04:36,610 --> 00:04:42,840 PHP é capaz de transmitir dados entre duas páginas da web. 81 00:04:42,840 --> 00:04:44,390 Esta é uma página totalmente diferente. 82 00:04:44,390 --> 00:04:46,990 Você verá o título é "Olá" aqui. 83 00:04:46,990 --> 00:04:49,080 Na verdade, eles têm o mesmo título, mas eu 84 00:04:49,080 --> 00:04:52,560 prometo que eles são diferentes web páginas, se olharmos para a fonte. 85 00:04:52,560 --> 00:04:55,890 E você pode passar os dados que é introduzido neste campo de texto, 86 00:04:55,890 --> 00:04:59,830 enviá-lo para a próxima A página que está sendo chamado, 87 00:04:59,830 --> 00:05:02,490 e, em seguida, de dados que é capaz de estar lá na sua forma actual. 88 00:05:02,490 --> 00:05:04,810 >> Agora nós ainda não implementaram este nós mesmos, o que 89 00:05:04,810 --> 00:05:08,710 é o que nós vamos fazer agora para espécie obter um sabor de como o PHP funciona, 90 00:05:08,710 --> 00:05:15,070 mas a idéia fundamental é que você pode PHP-- tipo de pensar nisso como uma função. 91 00:05:15,070 --> 00:05:18,570 Algo que o PHP pode deixá-lo Não é que pode levar parâmetros 92 00:05:18,570 --> 00:05:24,710 que entra em uma página HTML através da utilização de PHP e formas, 93 00:05:24,710 --> 00:05:29,960 e ele pode passar os parâmetros como para a próxima página que carrega. 94 00:05:29,960 --> 00:05:35,110 >> Neste caso, nós estamos carregando-se esta A página com o botão "Diga Olá". 95 00:05:35,110 --> 00:05:38,960 Mas, por agora, eu realmente excluído alguns dos que o código 96 00:05:38,960 --> 00:05:44,850 no hello.php que estava sendo executado que foi, na verdade, exibindo o "Olá, 97 00:05:44,850 --> 00:05:49,680 mundo "ou" Olá, Sam "ou "Olá," o que quer que era apenas de entrada. 98 00:05:49,680 --> 00:05:53,620 Então, por agora, estamos vai fazer isso, basicamente. 99 00:05:53,620 --> 00:05:56,570 Nós vamos recriar isso e também adicionar mais algumas funcionalidades, 100 00:05:56,570 --> 00:06:00,210 fazer um pouco mais com ele, ver o PHP é realmente capaz. 101 00:06:00,210 --> 00:06:04,870 >> Então, primeiro, vamos falar sobre este arquivo, hello.php. 102 00:06:04,870 --> 00:06:07,440 Então, se nós zoom em um bit-- pouco e agora estou 103 00:06:07,440 --> 00:06:10,520 tipo de tentar percorrer todo a maneira circundar-- lá vamos nós. 104 00:06:10,520 --> 00:06:14,220 Você verá que é chamado ola.php, mas a sintaxe de que 105 00:06:14,220 --> 00:06:16,880 olha como um arquivo HTML. 106 00:06:16,880 --> 00:06:20,380 Isto é porque o PHP real neste arquivo 107 00:06:20,380 --> 00:06:25,220 é preso entre todos estes question mark-blocos acento circunflexo. 108 00:06:25,220 --> 00:06:28,610 Tudo aqui é considerado código PHP. 109 00:06:28,610 --> 00:06:32,040 >> E você vai perceber que quando eu fiz um comentário, 110 00:06:32,040 --> 00:06:35,320 você vai ver o familiar duas barras. 111 00:06:35,320 --> 00:06:38,440 E se você se lembra, em HTML, se eu digitar um comentário, 112 00:06:38,440 --> 00:06:42,540 parece algo mais perto isso, que é um comentário em HTML. 113 00:06:42,540 --> 00:06:46,570 Então, realmente tudo entre estes dois colchetes 114 00:06:46,570 --> 00:06:50,060 agora é código PHP, que reflecte-se no facto 115 00:06:50,060 --> 00:06:53,270 que este pequeno símbolo de comentário é transformado em um comentário. 116 00:06:53,270 --> 00:06:58,420 >> Assim, cada vez que você escrever código PHP, mesmo se não há nenhum código HTML fora dele, 117 00:06:58,420 --> 00:07:02,720 ele está sempre vai ser fechado nestes colchetes 118 00:07:02,720 --> 00:07:04,080 com pontos de interrogação. 119 00:07:04,080 --> 00:07:08,260 Você pode tipo de pensar sobre como tudo isso-- do código que corria em seus programas C 120 00:07:08,260 --> 00:07:13,950 foi fechado em um int main, vazio, chaveta, encaracolado declaração final cinta. 121 00:07:13,950 --> 00:07:17,100 E você verá chaves em PHP também, mas este é o tipo de 122 00:07:17,100 --> 00:07:20,490 como o principal método de PHP. 123 00:07:20,490 --> 00:07:25,630 >> Então, agora, como é que vamos fazer qualquer coisa em PHP? 124 00:07:25,630 --> 00:07:29,190 Agora, PHP é uma programação linguagem que é muito parecida com C, 125 00:07:29,190 --> 00:07:30,970 mas opera na web. 126 00:07:30,970 --> 00:07:33,270 Então, uma coisa que você vai immediately-- um 127 00:07:33,270 --> 00:07:38,130 das primeiras coisas que você realmente fez com C você foi impresso material para fora, certo? 128 00:07:38,130 --> 00:07:42,290 Assim, em C que fizemos com uma função printf. 129 00:07:42,290 --> 00:07:46,430 Demos-lhe uma corda, provavelmente com uma nova linha, 130 00:07:46,430 --> 00:07:49,850 e, depois, encerrado com um ponto e vírgula. 131 00:07:49,850 --> 00:07:53,790 >> Assim, a maneira que nós estamos indo para fazer isso em PHP-- porque não é bastante printf. 132 00:07:53,790 --> 00:07:55,940 É um pouco de sintaxe diferente. 133 00:07:55,940 --> 00:08:02,580 A maneira que nós imprimimos as coisas em PHP é que dizemos, "echo Olá" 134 00:08:02,580 --> 00:08:04,180 ou "eco" qualquer palavra. 135 00:08:04,180 --> 00:08:09,830 E isso tem o efeito de fazer printf com uma corda, "Olá". 136 00:08:09,830 --> 00:08:11,990 E acrescenta a nova linha para ele. 137 00:08:11,990 --> 00:08:16,000 >> Então, vamos agora fazer sure-- Vou reduzir novamente um pouco bit-- 138 00:08:16,000 --> 00:08:18,250 vamos nos certificar de que que o código está funcionando 139 00:08:18,250 --> 00:08:21,030 porque não poderia muito bem ser um bug neste código 140 00:08:21,030 --> 00:08:22,880 que teremos de enfrentar. 141 00:08:22,880 --> 00:08:25,860 Então, o servidor já está em execução. 142 00:08:25,860 --> 00:08:30,630 Então, se nós rolar para trás até o fundo, sim, o servidor ainda está em execução. 143 00:08:30,630 --> 00:08:34,510 Então, se nós apenas tocar neste direito pouco aqui-- 144 00:08:34,510 --> 00:08:37,620 welcome-- devemos get-- grande. 145 00:08:37,620 --> 00:08:39,930 >> Nós ainda estamos tendo a familiar "Diga Olá" diálogo, 146 00:08:39,930 --> 00:08:45,750 mas quando eu digitar "oi," vamos ver que o texto "Olá" era de fato 147 00:08:45,750 --> 00:08:50,080 impresso, que é exatamente como que esperávamos porque ecoam em PHP 148 00:08:50,080 --> 00:08:53,190 é como uma instrução printf. 149 00:08:53,190 --> 00:09:01,410 Então, de volta ao código, como em P ajustou 6 fiz o código de distribuição que são fornecidos 150 00:09:01,410 --> 00:09:05,920 fazer com que o PHP saída a coisa que você 151 00:09:05,920 --> 00:09:07,920 digitado na tela anterior? 152 00:09:07,920 --> 00:09:10,350 >> E a sorte de examinar por que isso acontece, estamos 153 00:09:10,350 --> 00:09:15,510 indo para entrar em index.html, que é o arquivo original, o arquivo que 154 00:09:15,510 --> 00:09:18,710 aparece na tela com o botão "Diga Olá". 155 00:09:18,710 --> 00:09:20,950 Você percebe que há todas as coisas clássicas 156 00:09:20,950 --> 00:09:26,910 temos vindo a esperar do HTML tais como essas coisas, essas tags fechado 157 00:09:26,910 --> 00:09:31,080 no ângulo entre parênteses, como PHP mas sem os pontos de interrogação, 158 00:09:31,080 --> 00:09:34,650 o que indica uma coisa especial para HTML. 159 00:09:34,650 --> 00:09:36,895 Temos título, que é "Olá". 160 00:09:36,895 --> 00:09:41,010 E você vai perceber que, como vimos, o título é "Olá" em ambos os casos. 161 00:09:41,010 --> 00:09:43,260 Vamos mudar este "dizer" apenas para que 162 00:09:43,260 --> 00:09:48,170 podem distinguir-nos onde estamos. 163 00:09:48,170 --> 00:09:49,600 >> Mas nós temos um corpo. 164 00:09:49,600 --> 00:09:52,690 E, em seguida, a parte interessante, o bit que aparece no HTML, 165 00:09:52,690 --> 00:09:54,530 é este elemento de formulário. 166 00:09:54,530 --> 00:09:56,370 E então nós temos um formulário. 167 00:09:56,370 --> 00:09:58,330 E essa é a chave. 168 00:09:58,330 --> 00:10:00,530 Esta é a forma como estamos trabalhando com PHP. 169 00:10:00,530 --> 00:10:05,790 O parâmetro da acção formulário diz que hello.php 170 00:10:05,790 --> 00:10:09,310 é o que nós estamos indo para enviar os valores nos este formulário para. 171 00:10:09,310 --> 00:10:13,830 Este é o lugar onde nós estamos passando os parâmetros, por assim dizer. 172 00:10:13,830 --> 00:10:18,680 >> Você vai notar outra coisa aqui é que o método é "começar". 173 00:10:18,680 --> 00:10:24,450 Há dois primário métodos pelos quais será 174 00:10:24,450 --> 00:10:28,750 estar usando PHP para passar dados entre as páginas web websites--, 175 00:10:28,750 --> 00:10:30,500 rather-- nesta atribuição. 176 00:10:30,500 --> 00:10:34,070 E esses métodos são "get" e "post". 177 00:10:34,070 --> 00:10:37,010 Há algumas sutis diferenças entre GET e POST 178 00:10:37,010 --> 00:10:40,520 que chegaremos into-- nós vai "pegar" em, se você quiser. 179 00:10:40,520 --> 00:10:44,030 >> Mas, para todos os intentos e propósitos, GET e POST 180 00:10:44,030 --> 00:10:47,120 ambos são apenas formas que você passar parâmetros 181 00:10:47,120 --> 00:10:49,500 com um pouco diferentes execuções. 182 00:10:49,500 --> 00:10:53,500 Por agora, vamos usar get porque obter foi o que foi originalmente usado 183 00:10:53,500 --> 00:10:57,340 no arquivo PHP de P ajustou 6. 184 00:10:57,340 --> 00:11:00,850 E, na verdade, se formos e olhar antes que editei qualquer outra coisa, 185 00:11:00,850 --> 00:11:03,090 Eu vou dizer um oi a-- qual é o seu nome? 186 00:11:03,090 --> 00:11:03,812 >> AUDIÊNCIA: Elliot. 187 00:11:03,812 --> 00:11:04,770 SAM LEVATICH: Oh, meu Deus. 188 00:11:04,770 --> 00:11:05,600 Eu não sei como se escreve isso. 189 00:11:05,600 --> 00:11:06,766 Você poderia soletrar isso por mim? 190 00:11:06,766 --> 00:11:08,710 AUDIÊNCIAS: E-L-G-I-S-T. 191 00:11:08,710 --> 00:11:09,720 >> SAM LEVATICH: I-S-T? 192 00:11:09,720 --> 00:11:10,440 >> AUDIÊNCIA: É. 193 00:11:10,440 --> 00:11:10,960 >> SAM LEVATICH: Perfect. 194 00:11:10,960 --> 00:11:11,210 ESTÁ BEM. 195 00:11:11,210 --> 00:11:12,751 Eu acho que eu sabia como soletrar isso. 196 00:11:12,751 --> 00:11:13,510 Me desculpe por isso. 197 00:11:13,510 --> 00:11:16,560 Mas, se dissermos "Diga Olá", que não é ele não vai aparecer na tela 198 00:11:16,560 --> 00:11:18,476 ainda porque nós modificamos o código um pouco. 199 00:11:18,476 --> 00:11:21,290 Mas se nós "Diga Olá" - OK, então "Olá" é aqui. 200 00:11:21,290 --> 00:11:24,137 Mas se tomarmos um mais perto olhar para o próprio URL, 201 00:11:24,137 --> 00:11:26,220 vamos ver que ele termina com hello.php? name = Elliot. 202 00:11:26,220 --> 00:11:30,980 203 00:11:30,980 --> 00:11:37,180 >> Então, essa é uma forma de comunicação para a próxima página web 204 00:11:37,180 --> 00:11:39,240 os parâmetros que nós passamos. 205 00:11:39,240 --> 00:11:40,870 Dissemos name = Elliot. 206 00:11:40,870 --> 00:11:46,290 E isso é, finalmente, como P ajustou 6 acessada a variável que passamos em 207 00:11:46,290 --> 00:11:47,520 através do formulário. 208 00:11:47,520 --> 00:11:51,470 E isso é algo que é peculiar a um pedido get. 209 00:11:51,470 --> 00:11:57,480 A solicitação get faz com que os parâmetros conhecido na URL do site. 210 00:11:57,480 --> 00:12:01,190 >> E você vai se lembrar, também, P em que você ajuste 6 211 00:12:01,190 --> 00:12:04,450 teve de escrever uma função que lidava com o fato 212 00:12:04,450 --> 00:12:09,700 que esta cadeia de consulta poderia existir depois de um arquivo. 213 00:12:09,700 --> 00:12:14,684 Não poderia ser um ponto de interrogação seguido por basicamente qualquer número de caracteres. 214 00:12:14,684 --> 00:12:16,350 E isso é exatamente o que está acontecendo aqui. 215 00:12:16,350 --> 00:12:21,280 E a razão que teve de analisar esse na sua implementação de server.c em P 216 00:12:21,280 --> 00:12:27,570 ajuste 6 é assim que você poderia dizer o código PHP que name = Elliot. 217 00:12:27,570 --> 00:12:30,460 Você necessário para ser capaz de analisar o que fora do URL 218 00:12:30,460 --> 00:12:35,900 para que o arquivo PHP em questão sabia o que estava lidando. 219 00:12:35,900 --> 00:12:39,350 >> Portanto, esperamos que isto dá a motivação para server.c 220 00:12:39,350 --> 00:12:43,900 agora que nós estamos seguindo em frente fora de C com o PHP. 221 00:12:43,900 --> 00:12:48,240 Então vamos realmente focar o acesso ao coisas passada através de uma solicitação get agora 222 00:12:48,240 --> 00:12:48,880 neste ponto. 223 00:12:48,880 --> 00:12:50,157 Eu estou indo para salvar este. 224 00:12:50,157 --> 00:12:51,240 Nós não muda nada. 225 00:12:51,240 --> 00:12:56,080 Parece que temos um campo de entrada. 226 00:12:56,080 --> 00:12:58,550 >> Estamos definindo algumas propriedades, como podemos fazer um HTML. 227 00:12:58,550 --> 00:12:59,550 Estas são coisas simples. 228 00:12:59,550 --> 00:13:00,580 Nós não precisamos deles. 229 00:13:00,580 --> 00:13:03,750 Mas nós temos autocomplete fora, que basicamente says-- você sabe, 230 00:13:03,750 --> 00:13:05,710 quando você digita coisas para dentro da teia, por vezes, 231 00:13:05,710 --> 00:13:07,355 ele tenta preencher esse para você. 232 00:13:07,355 --> 00:13:08,230 Então, é uma coisa agradável. 233 00:13:08,230 --> 00:13:11,700 Queremos desligá-lo para esta finalidade. 234 00:13:11,700 --> 00:13:13,970 Essa foi uma decisão CS50. 235 00:13:13,970 --> 00:13:15,640 Assim, podemos excluir que, se quiséssemos. 236 00:13:15,640 --> 00:13:19,510 >> A focagem automática apenas fura o cursor na forma direita no início. 237 00:13:19,510 --> 00:13:21,060 Mais uma vez, não é muito importante. 238 00:13:21,060 --> 00:13:26,220 >> Mas name = "name" - é um pouco complicado, porque o seu nome e nome. 239 00:13:26,220 --> 00:13:28,730 Mas nós poderíamos ter mudado este para outra coisa. 240 00:13:28,730 --> 00:13:30,563 E, de fato, isso é o que vamos fazer agora. 241 00:13:30,563 --> 00:13:34,830 Vamos dizer "pessoa", que é uma espécie de nome 242 00:13:34,830 --> 00:13:36,790 Se uma pessoa é definido pelo seu nome. 243 00:13:36,790 --> 00:13:41,480 >> Então vamos fechar este, reabrir o nosso website 244 00:13:41,480 --> 00:13:46,110 desde o nosso servidor ainda está em execução Apache 50, e vamos dizer, Olá, aqui está 245 00:13:46,110 --> 00:13:47,200 Elliot novamente. 246 00:13:47,200 --> 00:13:48,460 Por que não? 247 00:13:48,460 --> 00:13:49,220 Olá. 248 00:13:49,220 --> 00:13:52,880 E se formos até aqui, vamos ver em seguida, em vez de name = Elliot, 249 00:13:52,880 --> 00:13:55,200 ele diz que pessoa = Elliot. 250 00:13:55,200 --> 00:14:00,060 E isso é um resultado direto do fato que apenas mudou name = "pessoa". 251 00:14:00,060 --> 00:14:06,840 >> Assim, em um elemento de entrada de um formulário HTML, o campo de nome 252 00:14:06,840 --> 00:14:10,590 é o identificador para o parâmetro que está sendo passado. 253 00:14:10,590 --> 00:14:14,250 É como se você está criando uma função "adicionar", que teve dois inteiros 254 00:14:14,250 --> 00:14:16,670 e você disse int a e int b. 255 00:14:16,670 --> 00:14:22,680 Isso seria um nome, e se você queria uma outra forma, que 256 00:14:22,680 --> 00:14:27,800 nós podemos fazer apenas copiando e colar, então teríamos nome b. 257 00:14:27,800 --> 00:14:31,030 >> Então, agora nós vamos ter dois parâmetros que estão a ser passada através 258 00:14:31,030 --> 00:14:36,970 chegar ao próximo website-- próxima página web, hello.php. 259 00:14:36,970 --> 00:14:39,770 E nós podemos realmente ver que novamente se quiser. 260 00:14:39,770 --> 00:14:44,830 Esta é a maneira mais fácil de lidar com o código da Web no IDE, basicamente. 261 00:14:44,830 --> 00:14:47,940 Você iniciar o servidor, obtê-lo em execução e, em seguida, cada vez que você 262 00:14:47,940 --> 00:14:50,649 fazer algumas mudanças, apenas perto esse arquivo apenas para ser seguro. 263 00:14:50,649 --> 00:14:52,440 Pressionando o botão de volta é um pouco complicado 264 00:14:52,440 --> 00:14:55,800 porque ele pode carregar uma versão anterior versão, não o mais atualizado. 265 00:14:55,800 --> 00:14:59,200 >> E então você simplesmente clique em seu botão novamente, pop direita up-- oh, 266 00:14:59,200 --> 00:15:00,510 e agora existem duas formas. 267 00:15:00,510 --> 00:15:10,440 E por isso, se nós digitamos uma coisa em cada um-- "hirshhorn jason," para instance-- 268 00:15:10,440 --> 00:15:11,590 nós dizer Olá. 269 00:15:11,590 --> 00:15:12,840 Olhamos para os nossos parâmetros. 270 00:15:12,840 --> 00:15:18,910 Parece que nós temos, como esperado, a = jason e b = hirshhorn, 271 00:15:18,910 --> 00:15:23,760 que representa os dois parâmetros que passados ​​para essa função. 272 00:15:23,760 --> 00:15:27,900 >> Então agora vamos realmente começar a implementar essa funcionalidade que nós 273 00:15:27,900 --> 00:15:30,840 tinha em P ajustou 6. 274 00:15:30,840 --> 00:15:32,490 Então, agora nós estamos apenas fazendo eco Olá. 275 00:15:32,490 --> 00:15:34,310 E isso não é muito útil. 276 00:15:34,310 --> 00:15:38,530 Nós queremos ecoar alguma variável que foi passado para nós. 277 00:15:38,530 --> 00:15:40,320 E nós sabemos o nome desta variável. 278 00:15:40,320 --> 00:15:41,770 Temos um e temos b. 279 00:15:41,770 --> 00:15:43,500 Assim nós poderíamos escolher para ecoar qualquer um. 280 00:15:43,500 --> 00:15:45,470 >> Mas como podemos acessá-lo? 281 00:15:45,470 --> 00:15:48,820 Bem, há certas variáveis ​​globais em PHP. 282 00:15:48,820 --> 00:15:51,240 E eu vou escrever los em observações aqui. 283 00:15:51,240 --> 00:15:59,910 Os dois mais importantes são get e postar para os nossos propósitos agora. 284 00:15:59,910 --> 00:16:05,350 Estas são as matrizes ou, Tecnicamente, os dicionários 285 00:16:05,350 --> 00:16:10,540 onde nossas variáveis ​​que estamos passando para a próxima página da web ao vivo. 286 00:16:10,540 --> 00:16:14,520 E logo veremos como usá-los. 287 00:16:14,520 --> 00:16:19,720 >> Outro breve nota sobre o código PHP e algumas especificidades do ele-- em C, 288 00:16:19,720 --> 00:16:23,260 para declarar uma variável ou usar variáveis, 289 00:16:23,260 --> 00:16:24,570 primeiro você tinha que declará-los. 290 00:16:24,570 --> 00:16:30,860 E o que você tinha que fazer quando você declarou-se dizer int a carvão ou b. 291 00:16:30,860 --> 00:16:35,630 Você tinha que declarar os tipos de estes variáveis ​​antes de você criou. 292 00:16:35,630 --> 00:16:38,800 PHP-- você não precisa fazer nada disso. 293 00:16:38,800 --> 00:16:42,522 O PHP não pedir o tipo de variável. 294 00:16:42,522 --> 00:16:44,480 E a maneira que você criar um variable-- vez 295 00:16:44,480 --> 00:16:49,930 do que dizer int, char, string-- que é realmente char *, como nós sabe-- 296 00:16:49,930 --> 00:16:52,180 ao invés de fazer tudo de que, porque tudo 297 00:16:52,180 --> 00:16:54,620 é do mesmo tipo, typeless, podemos apenas 298 00:16:54,620 --> 00:16:59,210 use um personagem, que é o sinal de dólar. 299 00:16:59,210 --> 00:17:03,700 E você vai ver que já está aparecendo up, pequenas coisas autocomplete. 300 00:17:03,700 --> 00:17:11,380 E está dizendo que _GET e _POST são duas opções que eu tenho disponível 301 00:17:11,380 --> 00:17:11,900 para mim. 302 00:17:11,900 --> 00:17:16,430 Algumas dessas outras coisas são outras variáveis ​​globais em PHP 303 00:17:16,430 --> 00:17:18,430 que você estará usando mais o curso de P ajustou 7. 304 00:17:18,430 --> 00:17:20,569 Por agora vamos concentrar em GET e POST. 305 00:17:20,569 --> 00:17:22,910 Mas esta é uma útil coisa que o IDE faz 306 00:17:22,910 --> 00:17:24,980 onde uma vez que você digitou em que o sinal de dólar, 307 00:17:24,980 --> 00:17:28,760 ele vai começar a preencher variáveis ​​globais ou variáveis ​​que você já tenha definido. 308 00:17:28,760 --> 00:17:34,360 >> Então, se você queria para definir uma variável chamada "cadeia" 309 00:17:34,360 --> 00:17:38,290 você pode apenas configurá-lo igual a "oi". 310 00:17:38,290 --> 00:17:40,100 E é basicamente tão simples como isso. 311 00:17:40,100 --> 00:17:44,720 E então nós poderíamos fazer algo como "echo $ string." 312 00:17:44,720 --> 00:17:48,524 O IDE deve estar jogando alguns erros se eu estou fazendo nada de errado, 313 00:17:48,524 --> 00:17:50,190 por isso espero que eu estou fazendo tudo certo. 314 00:17:50,190 --> 00:17:52,060 Mas erros sempre surgem. 315 00:17:52,060 --> 00:17:56,670 >> Outra coisa complicada sobre PHP é que ele não está compilado. 316 00:17:56,670 --> 00:18:00,640 Assim, com programas em C, você faria a rotina diária de-- basicamente, 317 00:18:00,640 --> 00:18:02,710 você faria para edições seu código, você salvá-lo, 318 00:18:02,710 --> 00:18:04,460 e, em seguida, você faria fazê-lo, onde foi make 319 00:18:04,460 --> 00:18:08,830 o passo que chamado o compilador, clang, para tornar seu código, este texto 320 00:18:08,830 --> 00:18:10,570 arquivo, em um arquivo executável. 321 00:18:10,570 --> 00:18:15,550 PHP é C-like, mas ele é executado on the fly pelo seu navegador web. 322 00:18:15,550 --> 00:18:17,640 Portanto, não há maneira de saber. 323 00:18:17,640 --> 00:18:19,790 >> Faça jogaria os erros votos, certo? 324 00:18:19,790 --> 00:18:22,190 Seria como, você não declarou essa variável 325 00:18:22,190 --> 00:18:23,320 antes de tentar usá-lo. 326 00:18:23,320 --> 00:18:29,120 Você fez tudo isso ruim segfault stuff--, segfault, todo esse tipo de diversão vezes 327 00:18:29,120 --> 00:18:31,000 que veio com make. 328 00:18:31,000 --> 00:18:33,920 PHP é uma faca de dois gumes porque você não vai obter esses erros, 329 00:18:33,920 --> 00:18:37,770 mas isso também significa que você não vai saber realmente o que há de errado com seu programa 330 00:18:37,770 --> 00:18:39,840 se você basta executá-lo e ele não está funcionando. 331 00:18:39,840 --> 00:18:45,130 Mas o depurador de salientar algumas espero votos pequenas coisas 332 00:18:45,130 --> 00:18:47,950 sintaticamente que você pode corrigir. 333 00:18:47,950 --> 00:18:52,850 >> Então, agora, se formos mais a-- dizer, vamos fechar essa. 334 00:18:52,850 --> 00:18:54,522 Reabrir. 335 00:18:54,522 --> 00:18:55,480 E estamos de volta para aqui. 336 00:18:55,480 --> 00:18:57,210 Então, temos uma variável e uma variável b. 337 00:18:57,210 --> 00:18:58,626 E estes não acabará importa. 338 00:18:58,626 --> 00:19:01,850 Vamos chamá-los h e g por nenhuma razão particular. 339 00:19:01,850 --> 00:19:03,120 >> E nós dizer Olá. 340 00:19:03,120 --> 00:19:07,480 Agora parece que a nossa cadeia "oi" é de fato a impressão. 341 00:19:07,480 --> 00:19:10,460 Nós criamos uma variável chamada "string", defina-igual a "oi". 342 00:19:10,460 --> 00:19:15,520 Observe que nós não temos que fazer malloc ou fazer um array de caracteres. 343 00:19:15,520 --> 00:19:19,110 >> Em PHP, porque as variáveis são typeless, uma string 344 00:19:19,110 --> 00:19:22,230 é o mesmo que para um char todos os efeitos. 345 00:19:22,230 --> 00:19:23,570 Este poderia ser "oi". 346 00:19:23,570 --> 00:19:26,340 Este poderia ser apenas o personagem k. 347 00:19:26,340 --> 00:19:29,290 Este pode ser um número 1. 348 00:19:29,290 --> 00:19:30,300 E ele não se importa. 349 00:19:30,300 --> 00:19:33,560 O PHP não se preocupam o tipo da sua variável. 350 00:19:33,560 --> 00:19:34,390 Ou, ele se importa. 351 00:19:34,390 --> 00:19:36,240 Ele se importa quando você tenta e fazer as coisas com ele, 352 00:19:36,240 --> 00:19:38,790 mas ele não se importa em a etapa de declaração. 353 00:19:38,790 --> 00:19:46,960 >> E, assim como você pode em C, você pode declarar cordas na pilha como este 354 00:19:46,960 --> 00:19:51,130 embora dizendo "pilha" é um pouco pouco de um equívoco potencial quando 355 00:19:51,130 --> 00:19:52,230 nós estamos falando sobre PHP. 356 00:19:52,230 --> 00:19:54,020 Mas não temos que se preocupar com isso. 357 00:19:54,020 --> 00:19:55,936 Então, nós temos o nosso cadeia "oi", e que o eco string. 358 00:19:55,936 --> 00:19:58,880 Então, agora temos discutido variáveis. 359 00:19:58,880 --> 00:20:06,060 Então, agora nós precisamos de falar sobre get e postar e executar a última coisa que é 360 00:20:06,060 --> 00:20:12,660 necessário para realmente obter esta de volta para a funcionalidade do P ajustou 6. 361 00:20:12,660 --> 00:20:14,990 Então, agora nós somos ecoando a corda, mas nós 362 00:20:14,990 --> 00:20:17,080 têm essas variáveis ​​GET e POST. 363 00:20:17,080 --> 00:20:19,430 E porque nós estamos usando O método GET, ele 364 00:20:19,430 --> 00:20:24,810 Parece natural que a nossa variável que estamos interessados ​​em, tanto a e b, 365 00:20:24,810 --> 00:20:29,870 vai ser localizado na matriz ou dicionário, tecnicamente chegar. 366 00:20:29,870 --> 00:20:33,510 >> Então, se nós montamos obter como este com seu groups-- eu pressionei entrar 367 00:20:33,510 --> 00:20:36,770 e ele não gostou ele-- mas aqui nós temos obter. 368 00:20:36,770 --> 00:20:38,000 E assim que começar já existe. 369 00:20:38,000 --> 00:20:41,380 Assim, podemos já começar a acesso alguns dos elementos de get. 370 00:20:41,380 --> 00:20:45,000 Se nós começamos, esta sintaxe para arrays em PHP é muito C-like. 371 00:20:45,000 --> 00:20:47,900 Nós temos nossos dois colchetes. 372 00:20:47,900 --> 00:20:53,440 >> Então, se nós dizemos entrar em um normais array, poderíamos acessar 373 00:20:53,440 --> 00:20:55,600 o índice de ordem zero, o primeiro índice. 374 00:20:55,600 --> 00:20:56,840 PHP é o índice zero. 375 00:20:56,840 --> 00:21:00,550 Poderíamos dizer zero, um, dois-- coisas como esta. 376 00:21:00,550 --> 00:21:03,420 E eu venho dizendo que obter é tecnicamente um dicionário. 377 00:21:03,420 --> 00:21:08,290 Então, o que está fazendo PHP sob o capô, que é um pouco mais agradável do que C, 378 00:21:08,290 --> 00:21:12,760 é que já está a dar-lhe algum funcionalidade dicionário, que 379 00:21:12,760 --> 00:21:16,240 é realmente tabelas de hash, ou tenta, supostamente. 380 00:21:16,240 --> 00:21:19,360 Ou, tecnicamente, poderia ser uma tentativa bem. 381 00:21:19,360 --> 00:21:25,500 Mas o PHP está a implementar uma tabela hash, que forma um dicionário eficaz. 382 00:21:25,500 --> 00:21:28,400 >> E por isso sabemos o nome de nossa variável, certo? 383 00:21:28,400 --> 00:21:32,440 Ele está sendo passado em a string de consulta pelo PHP. 384 00:21:32,440 --> 00:21:37,290 Nós temos a = h e b = g, onde e b são os nomes das variáveis. 385 00:21:37,290 --> 00:21:41,580 Assim, a maneira que nós podemos acessar o valor que corresponde à tecla 386 00:21:41,580 --> 00:21:45,055 em nosso dicionário é apenas dizendo _GET_GET ["a"]. 387 00:21:45,055 --> 00:21:48,170 388 00:21:48,170 --> 00:21:51,365 >> Portanto, agora temos _GET ["a"]. 389 00:21:51,365 --> 00:21:56,930 E se nós apenas substituir dentro nosso eco, se ecoar _GET_GET ["a"] - 390 00:21:56,930 --> 00:22:02,410 e vamos ver se o depurador lança quaisquer erros sobre isto-- 391 00:22:02,410 --> 00:22:05,620 vamos guardar isso e fechar isto. 392 00:22:05,620 --> 00:22:07,130 Abri-lo. 393 00:22:07,130 --> 00:22:10,390 Então, nós estamos apenas fazendo um direito agora, para b não deve importar. 394 00:22:10,390 --> 00:22:12,980 "ela" e "ele" - "murmurar." "ela" e "hum". 395 00:22:12,980 --> 00:22:14,810 Parece bom. 396 00:22:14,810 --> 00:22:18,040 >> E é impresso "ela," que é uma loucura. 397 00:22:18,040 --> 00:22:21,920 Mas isso é exatamente o que estava acontecendo na P ajustou 6. 398 00:22:21,920 --> 00:22:27,240 Basicamente, o que P ajustou 6 foi doing-- echo Olá, 399 00:22:27,240 --> 00:22:31,580 nome-- onde teve um nome da variável e isso só 400 00:22:31,580 --> 00:22:35,520 pede para você digitar nesse pedaço de texto. 401 00:22:35,520 --> 00:22:37,380 Houve também alguma Código adicional onde 402 00:22:37,380 --> 00:22:40,550 que incluía instruções if, que podemos fazer agora. 403 00:22:40,550 --> 00:22:50,120 >> Nós podemos dizer se existe, o que é uma funcionalidade dentro do PHP, 404 00:22:50,120 --> 00:22:55,110 _GET Com o sublinhado, "nome" - que é basicamente dizendo: 405 00:22:55,110 --> 00:22:58,760 "se o nome tiver sido preenchido", porque Poderíamos simplesmente ter clicado no botão 406 00:22:58,760 --> 00:23:02,580 para enviar o formulário sem digitar nada nesse campo. 407 00:23:02,580 --> 00:23:07,760 E nós envolvemos que, em nossa chaves amigáveis. 408 00:23:07,760 --> 00:23:09,175 Nós podemos ter uma declaração de outra pessoa. 409 00:23:09,175 --> 00:23:13,300 410 00:23:13,300 --> 00:23:18,820 E isso é tudo dentro do ângulo de PHP suporte, ponto de interrogação, suporte de ângulo, 411 00:23:18,820 --> 00:23:20,040 Se você for. 412 00:23:20,040 --> 00:23:21,750 >> E agora vamos ver se isso funciona. 413 00:23:21,750 --> 00:23:26,300 Eu continuo esperando por ele para debug e crap fora de mim, basicamente, 414 00:23:26,300 --> 00:23:28,410 mas ainda não tem. 415 00:23:28,410 --> 00:23:30,830 Talvez ele vai agora porque eu falei sobre. 416 00:23:30,830 --> 00:23:31,330 Aham. 417 00:23:31,330 --> 00:23:32,510 Ele fez, na verdade. 418 00:23:32,510 --> 00:23:34,610 Então, nada está aparecendo. 419 00:23:34,610 --> 00:23:38,750 Isso é por causa de algo errado que eu escrevi no código PHP. 420 00:23:38,750 --> 00:23:42,844 E eu mencionei a depuração é complicado porque em PHP, nós 421 00:23:42,844 --> 00:23:45,260 não compilá-lo de antemão eo compilador não era como, 422 00:23:45,260 --> 00:23:46,710 aqui é onde seus erros são. 423 00:23:46,710 --> 00:23:49,690 >> Mas o que podemos fazer é-- fazer as pessoas se lembram 424 00:23:49,690 --> 00:23:57,010 como olhar para o diferente rede solicita que PHP-- ou que sites 425 00:23:57,010 --> 00:23:57,620 mandar? 426 00:23:57,620 --> 00:24:00,290 [? Malin?] Fez isso em palestra uma ou duas vezes. 427 00:24:00,290 --> 00:24:05,830 Você se lembra onde vamos encontrar os débitos diferentes e 200 OKs, 428 00:24:05,830 --> 00:24:09,780 todos os códigos que são enviados através de HTTP a partir da página web a página da web? 429 00:24:09,780 --> 00:24:12,514 Alguém se lembra onde vamos fazer isso? 430 00:24:12,514 --> 00:24:13,787 >> AUDIÊNCIA: Page Source. 431 00:24:13,787 --> 00:24:14,870 SAM LEVATICH: fonte de página. 432 00:24:14,870 --> 00:24:15,890 Exatamente. 433 00:24:15,890 --> 00:24:19,230 Se você acesse a página Source-- perfeito. 434 00:24:19,230 --> 00:24:21,630 Então Fonte Página puxa para cima o inspetor. 435 00:24:21,630 --> 00:24:23,140 >> E eu estou usando o Safari. 436 00:24:23,140 --> 00:24:25,790 Um monte de você, provavelmente, estar usando o Chrome ou Firefox. 437 00:24:25,790 --> 00:24:27,750 Mas enquanto você está em qualquer browser-- moderna 438 00:24:27,750 --> 00:24:29,500 e sinta-se livre para seguir juntamente, se quiser. 439 00:24:29,500 --> 00:24:32,560 Você pode digitar até este código ou basta olhar dentro do conjunto P 6 440 00:24:32,560 --> 00:24:35,820 diretório para algum material similar. 441 00:24:35,820 --> 00:24:41,020 hello.php é o que nós somos atualmente trabalhando em emular. 442 00:24:41,020 --> 00:24:42,476 >> Portanto, há uma variedade de guias. 443 00:24:42,476 --> 00:24:43,850 Podemos olhar para todos os recursos. 444 00:24:43,850 --> 00:24:45,810 Podemos ver o código fonte. 445 00:24:45,810 --> 00:24:49,900 Então parece que não fez obter corpo passado no final. 446 00:24:49,900 --> 00:24:54,890 Ele encontrou um erro em PHP e parou de carregar a página web inteira. 447 00:24:54,890 --> 00:24:58,320 Nós nem sequer ter um fim tag para HTML ou qualquer coisa. 448 00:24:58,320 --> 00:25:07,189 >> E se olharmos para a rede, nós podemos ver que estamos sendo enviado um pedido. 449 00:25:07,189 --> 00:25:07,980 Este é o domínio. 450 00:25:07,980 --> 00:25:09,270 Este é o endereço. 451 00:25:09,270 --> 00:25:10,070 É um documento. 452 00:25:10,070 --> 00:25:14,310 Estamos usando o método GET. 453 00:25:14,310 --> 00:25:15,760 >> E é vermelho. 454 00:25:15,760 --> 00:25:19,030 Ou, ele estava vermelho quando eu não estava selecionando-o. 455 00:25:19,030 --> 00:25:22,680 Como faço para desmarcá-la? 456 00:25:22,680 --> 00:25:23,980 Bem, era vermelho. 457 00:25:23,980 --> 00:25:25,201 Deixe-me refrescar. 458 00:25:25,201 --> 00:25:25,700 Aqui está. 459 00:25:25,700 --> 00:25:26,640 Agora é vermelho. 460 00:25:26,640 --> 00:25:30,530 >> Portanto, é vermelho, o que significa ele falhou, o que é ruim. 461 00:25:30,530 --> 00:25:32,280 Então, vamos examinar por que o fez falhar. 462 00:25:32,280 --> 00:25:37,070 Então, tudo o que o código fonte da página pode basicamente, dizer que você é o seu lugar 463 00:25:37,070 --> 00:25:38,720 não funcionou, o que já podemos ver. 464 00:25:38,720 --> 00:25:42,100 Assim, idealmente, não haveria ser um instrumento mais útil. 465 00:25:42,100 --> 00:25:45,710 E há algumas extensões do navegador que permitem que você depurar PHP, 466 00:25:45,710 --> 00:25:50,490 mas nós não estamos indo para estar escrevendo uma tonelada de PHP, 467 00:25:50,490 --> 00:25:53,190 por isso é provavelmente apenas o melhor a olhar através de seu código 468 00:25:53,190 --> 00:25:56,760 com cuidado e apenas se certificar de que ele não está fazendo qualquer outra coisa. 469 00:25:56,760 --> 00:26:03,876 >> Então, vamos ver se o formato deste if é onde está o problema. 470 00:26:03,876 --> 00:26:07,420 Eu quero carregar isso até aqui de volta. 471 00:26:07,420 --> 00:26:09,830 Olá Oi. 472 00:26:09,830 --> 00:26:11,350 Portanto, há um problema lá. 473 00:26:11,350 --> 00:26:15,130 >> Assim, para sintaxe correta de PHP, PHP vai 474 00:26:15,130 --> 00:26:17,369 para ser C-like em que você vai ver loops. 475 00:26:17,369 --> 00:26:18,410 Você vai ver se as declarações. 476 00:26:18,410 --> 00:26:20,920 Você vai ver todos esses amigos que você se familiarizar 477 00:26:20,920 --> 00:26:24,820 com ao longo deste semestre CS50. 478 00:26:24,820 --> 00:26:29,960 Mas a melhor maneira de descobrir como fazer algo em PHP é pesquisar no Google 479 00:26:29,960 --> 00:26:33,170 ou olhar para alguns exemplos de código PHP porque você sabe que a funcionalidade. 480 00:26:33,170 --> 00:26:35,080 >> Você sabe o que você pode ver com o programa. 481 00:26:35,080 --> 00:26:35,976 Você pode fazer um loop. 482 00:26:35,976 --> 00:26:37,600 Você pode fazer um loop quantas vezes quiser. 483 00:26:37,600 --> 00:26:39,433 Você pode fazer um loop em todos os tipos de formas diferentes. 484 00:26:39,433 --> 00:26:40,700 Você pode criar funções. 485 00:26:40,700 --> 00:26:43,241 Você pode criar funções que chamar outras funções, funções 486 00:26:43,241 --> 00:26:44,150 que chamam a si mesmos. 487 00:26:44,150 --> 00:26:45,733 E você tem nomes para esses conceitos. 488 00:26:45,733 --> 00:26:49,860 Você tem recursividade, laços, se, outros fluxos de controle. 489 00:26:49,860 --> 00:26:51,300 E por isso o Google é seu melhor amigo. 490 00:26:51,300 --> 00:26:53,540 Mesmo dizer, "PHP se declaração "e lá vou 491 00:26:53,540 --> 00:26:57,740 ser toneladas de posts com respostas a outras pessoas 492 00:26:57,740 --> 00:27:02,090 que tiveram perguntas semelhantes a você, que estão apenas começando para fora com PHP 493 00:27:02,090 --> 00:27:03,820 e está curioso sobre uma coisa sintaxe. 494 00:27:03,820 --> 00:27:08,480 >> Porque nós temos o luxo de ser capaz de olhar para o código em conjunto P 6, 495 00:27:08,480 --> 00:27:14,980 nós realmente puxá-lo para cima e ver que OK, aqui está algo interessante. 496 00:27:14,980 --> 00:27:18,070 Então, isso é o que realmente parecia em P ajustou 6. 497 00:27:18,070 --> 00:27:20,340 Então, se nós passamos por isso, podemos ver que nós temos 498 00:27:20,340 --> 00:27:27,150 tem vários destes pouco Bits de ponto de interrogação PHP-like. 499 00:27:27,150 --> 00:27:29,050 >> E não há chaves. 500 00:27:29,050 --> 00:27:30,250 Há dois pontos. 501 00:27:30,250 --> 00:27:32,340 E há encaracolado cintas em PHP, mas isso 502 00:27:32,340 --> 00:27:38,700 é um formato e uma maneira de fazê- PHP que funciona bem com HTML 503 00:27:38,700 --> 00:27:43,830 porque como você vai ver, estamos fechando off estes PHP bits-- o elses 504 00:27:43,830 --> 00:27:49,770 e o IFS e todos que-- e depois estamos intercalando HTML dentro deles 505 00:27:49,770 --> 00:27:54,640 enquanto ainda na sequência do fluxo de controle estabelecido pelo PHP. 506 00:27:54,640 --> 00:27:58,480 >> Então, eu estou indo só para rápida caminhada através deste 507 00:27:58,480 --> 00:28:01,740 porque é um monte de a mesma conceitos que estávamos fazendo antes. 508 00:28:01,740 --> 00:28:07,280 Temos se não for vazio, parênteses, _GET_GET ["name"]. 509 00:28:07,280 --> 00:28:08,500 Isto é tudo a mesma coisa. 510 00:28:08,500 --> 00:28:15,430 Estamos usando o dicionário que _GET PHP envia pedido de formas, 511 00:28:15,430 --> 00:28:20,720 porque são os parâmetros de ação, eo método é começar. 512 00:28:20,720 --> 00:28:22,110 E, em seguida, que termina que. 513 00:28:22,110 --> 00:28:27,420 O cólon é um significante apenas para fazer isso se a declaração se avalia para true. 514 00:28:27,420 --> 00:28:29,490 É como uma chaveta. 515 00:28:29,490 --> 00:28:33,320 E, de fato, é uma chaveta em outras linguagens como Python, 516 00:28:33,320 --> 00:28:37,070 que você pode encontrar se você apenas fazer isso para o seu projeto final. 517 00:28:37,070 --> 00:28:40,170 >> E então esta linha, Olá. 518 00:28:40,170 --> 00:28:41,510 Então nós temos essa coisa estranha. 519 00:28:41,510 --> 00:28:43,190 Temos mais suportes. 520 00:28:43,190 --> 00:28:46,140 Não há nenhuma HTTP há-- ou PHP, desculpe. 521 00:28:46,140 --> 00:28:47,250 Mas há um sinal de igual. 522 00:28:47,250 --> 00:28:50,625 E então nós temos uma função, htmlspecialchars (_GEThtmlspecialchars (_GET ["nome"]). 523 00:28:50,625 --> 00:28:54,440 524 00:28:54,440 --> 00:28:58,040 Isto é como uma espécie de mais versão avançada do eco. 525 00:28:58,040 --> 00:29:01,450 Como se tivéssemos ecoar como uma forma para imprimir as coisas em PHP. 526 00:29:01,450 --> 00:29:03,890 Esta é uma função que é definido em que o PHP 527 00:29:03,890 --> 00:29:08,160 vai lidar com um pouco mais desagradável personagens e valores de bytes 528 00:29:08,160 --> 00:29:09,540 que você poderia passá-lo. 529 00:29:09,540 --> 00:29:11,070 É sempre mais seguro para usar isto. 530 00:29:11,070 --> 00:29:14,930 Mas echo irá fazer o trabalho muito bem se nós não somos 531 00:29:14,930 --> 00:29:17,620 lidar com qualquer coisa muito desagradável. 532 00:29:17,620 --> 00:29:20,340 >> E assim, este tem o mesmo efeito de basicamente, 533 00:29:20,340 --> 00:29:26,360 este material entre a questão marcas é avaliado pelo PHP. 534 00:29:26,360 --> 00:29:34,490 htmlspecialchars retorna um HTML agradável valor impresso de _GET_GET ["nome"], isto é, 535 00:29:34,490 --> 00:29:36,010 tudo o que digitou no formulário. 536 00:29:36,010 --> 00:29:40,025 E então ele vai dizer Olá, espaço vírgula, e depois disso. 537 00:29:40,025 --> 00:29:42,910 Essa coisa toda entre os colchetes 538 00:29:42,910 --> 00:29:47,390 será substituído por qualquer que seja htmlspecialchars põe para fora. 539 00:29:47,390 --> 00:29:49,390 Então, isso é basicamente similar para o que estamos fazendo. 540 00:29:49,390 --> 00:29:54,760 E nós temos uma declaração de outra coisa que é Olá mundo, o que faz sentido. 541 00:29:54,760 --> 00:29:58,070 Então agora vamos voltar para o nosso código e ver exactly-- oh. 542 00:29:58,070 --> 00:30:02,200 Disse existe, que não está uma coisa que queríamos fazer. 543 00:30:02,200 --> 00:30:05,370 Queríamos dizer não vazio. 544 00:30:05,370 --> 00:30:10,020 >> E por isso deve trabalhar um pouco pouco melhor, não _GET_GET vazio ["name"]. 545 00:30:10,020 --> 00:30:12,710 E isso chaveta jogos que chaveta. 546 00:30:12,710 --> 00:30:15,210 Temos nossas chaves aqui. 547 00:30:15,210 --> 00:30:17,790 echo Olá _GET ["name"]. 548 00:30:17,790 --> 00:30:19,912 Vamos ver se isso funciona um pouco melhor. 549 00:30:19,912 --> 00:30:21,350 Nós ainda estamos executando nosso servidor. 550 00:30:21,350 --> 00:30:23,910 Olá Jason. 551 00:30:23,910 --> 00:30:24,780 Olá Jason. 552 00:30:24,780 --> 00:30:25,810 E funcionou desta vez. 553 00:30:25,810 --> 00:30:29,860 E então isso é uma prova que você pode, efectivamente, 554 00:30:29,860 --> 00:30:35,180 usar as chaves que você conhecer e amar em código PHP em HTML. 555 00:30:35,180 --> 00:30:41,100 O código para PHP fornecida você em pset 6-- pset 6-- 556 00:30:41,100 --> 00:30:44,760 fornece outra forma de fazendo a mesma coisa. 557 00:30:44,760 --> 00:30:49,220 >> Portanto, agora temos o poder. 558 00:30:49,220 --> 00:30:55,740 Temos a funcionalidade para implementar o código PHP que vimos no pset 6 559 00:30:55,740 --> 00:30:57,390 por nós mesmos, basicamente. 560 00:30:57,390 --> 00:31:01,350 Antes de eu seguir em frente, o que são alguns dos perguntas que você tem neste momento? 561 00:31:01,350 --> 00:31:02,066 Sim [inaudível]. 562 00:31:02,066 --> 00:31:06,512 >> AUDIÊNCIA: Então, na sua versão em pset6, quando você executá-lo, há um espaço. 563 00:31:06,512 --> 00:31:09,330 E eu posso ver onde o espaço é após a vírgula. [Inaudível] de início 564 00:31:09,330 --> 00:31:10,700 o suporte aberto. 565 00:31:10,700 --> 00:31:15,420 Como você incorporar o espaço em do jeito que você escreveu seus próprios códigos? 566 00:31:15,420 --> 00:31:17,910 >> COLUNA: Essa é uma boa pergunta. 567 00:31:17,910 --> 00:31:21,650 E então vamos descobrir isso. 568 00:31:21,650 --> 00:31:24,450 Então essa é uma pergunta muito boa e um que eu não considerou. 569 00:31:24,450 --> 00:31:25,950 Mas vamos fazer isso juntos. 570 00:31:25,950 --> 00:31:30,280 >> Então, primeiro de tudo, o que Eu estou fazendo com eco 571 00:31:30,280 --> 00:31:33,690 é quando nós apenas ecoam Olá, Olá ele gera. 572 00:31:33,690 --> 00:31:41,310 Se nós eco agora este entrar em um separado linha, vamos examinar o que acontece. 573 00:31:41,310 --> 00:31:43,740 Portanto, clique isto. 574 00:31:43,740 --> 00:31:45,220 Nós mantemo-nos dizer, oi Jason. 575 00:31:45,220 --> 00:31:48,690 Então, novamente, não temos esse espaço. 576 00:31:48,690 --> 00:31:53,090 >> E isso porque, em PHP, quando temos eco, 577 00:31:53,090 --> 00:31:55,820 não importa quantas spaces-- nope, não o V-- 578 00:31:55,820 --> 00:32:01,770 não importa quantos espaços que colocamos no aqui-- se agora que carregar novamente, 579 00:32:01,770 --> 00:32:03,010 oi Jason. 580 00:32:03,010 --> 00:32:05,770 Sim, veja, todos aqueles espaços fui comido up. 581 00:32:05,770 --> 00:32:08,020 E isso é algo que a função de eco faz. 582 00:32:08,020 --> 00:32:11,110 >> Então, para cuidar de esse espaço, e esta é 583 00:32:11,110 --> 00:32:14,960 uma das razões por que você não use echo 584 00:32:14,960 --> 00:32:18,200 e você usar htmlspecialchars vez. 585 00:32:18,200 --> 00:32:22,140 Estou curioso para saber o que seria aconteceria se fizéssemos isso 586 00:32:22,140 --> 00:32:26,700 onde um espaço fechado em uma string. 587 00:32:26,700 --> 00:32:29,720 Eu honestamente não sei o que vai acontecer quando eu faço isso. 588 00:32:29,720 --> 00:32:30,790 >> Então esse é um caminho. 589 00:32:30,790 --> 00:32:32,210 Essa é uma maneira de cuidar dela. 590 00:32:32,210 --> 00:32:34,840 Se você enrolar o espaço em uma string, então o espaço 591 00:32:34,840 --> 00:32:36,920 será a saída bem por eco. 592 00:32:36,920 --> 00:32:41,930 A coisa mais segura a fazer é fazer htmlspecialchars. 593 00:32:41,930 --> 00:32:43,800 Isso é sempre a aposta segura. 594 00:32:43,800 --> 00:32:47,050 Mas agora temos uma maneira de fazer com eco, se necessário. 595 00:32:47,050 --> 00:32:50,700 E de um modo semelhante, podemos echo novas linhas, todo o tipo 596 00:32:50,700 --> 00:32:53,550 de coisas que você está familiarizado fazendo em PHP. 597 00:32:53,550 --> 00:32:57,460 >> Qualquer outra pessoa, o que é mais perguntas que outras pessoas têm 598 00:32:57,460 --> 00:33:01,090 neste momento sobre PHP? 599 00:33:01,090 --> 00:33:04,620 Se as pessoas mostrou-se um pouco tarde, Estou feliz para ficar depois de um pouco 600 00:33:04,620 --> 00:33:06,420 e falar sobre algumas das o início. 601 00:33:06,420 --> 00:33:10,380 E também está tudo emitida em directo, e arquivados, o que é uma loucura. 602 00:33:10,380 --> 00:33:13,960 >> De qualquer forma, então agora vamos fazer alguma coisas mais avançadas com PHP. 603 00:33:13,960 --> 00:33:18,790 E uma das coisas mais adiantadas você foram introduzidas no C foi para loops. 604 00:33:18,790 --> 00:33:24,060 E PHP tem um mais poderoso para circuito chamado de loop foreach. 605 00:33:24,060 --> 00:33:37,940 E parece que isto-- para cada em branco como em branco, chaves, fazer a coisa. 606 00:33:37,940 --> 00:33:41,500 Portanto, este é basicamente um atalho. 607 00:33:41,500 --> 00:33:45,380 >> Veja, o loop for como um construção sintática 608 00:33:45,380 --> 00:33:50,590 foi criado em C e em conjunto linguagem e coisas assim. 609 00:33:50,590 --> 00:33:56,300 Idealizado em C, precisamente, como uma abreviação para um monte de tipos de loops 610 00:33:56,300 --> 00:33:57,750 que as pessoas iriam ver. 611 00:33:57,750 --> 00:34:01,230 Como quando você escreveu um loop, não era muitas vezes um passo de inicialização 612 00:34:01,230 --> 00:34:04,700 executado logo no início, um condição em que o loop seria stop-- 613 00:34:04,700 --> 00:34:07,030 e essa é a característica isso é apenas em um loop while, 614 00:34:07,030 --> 00:34:10,040 ou um tempo que tem exactamente só que feature-- e, em seguida, 615 00:34:10,040 --> 00:34:12,320 um passo incrementação no fim. 616 00:34:12,320 --> 00:34:16,489 E assim que você costuma encontrar-se escrever código como o seguinte. 617 00:34:16,489 --> 00:34:19,780 Eu estou indo para apagar um pouco isso. 618 00:34:19,780 --> 00:34:23,850 >> Mas se nós estamos interagindo através caracteres em uma matriz, 619 00:34:23,850 --> 00:34:26,960 por exemplo, como nós temos tenho uma matriz de caracteres. 620 00:34:26,960 --> 00:34:29,400 Desculpe para trazer de volta C. Eu sei, você pensou que estava feito. 621 00:34:29,400 --> 00:34:31,900 Mas é apenas para o fim de aprender PHP, eu prometo. 622 00:34:31,900 --> 00:34:38,880 Então, se você tem um str de char de comprimento 8, e vamos 623 00:34:38,880 --> 00:34:46,760 dizem que diz Hellooo com um nulo à direita. 624 00:34:46,760 --> 00:34:48,270 Ótimo, então essa é a nossa seqüência. 625 00:34:48,270 --> 00:34:51,469 >> E, depois, teve um loop. 626 00:34:51,469 --> 00:34:53,730 Temos int i é igual a 0. 627 00:34:53,730 --> 00:34:57,960 628 00:34:57,960 --> 00:35:09,110 E nós queremos sair quando str de i não é igual igual a nulo, 629 00:35:09,110 --> 00:35:11,590 porque nós sair quando ele é igual a null. 630 00:35:11,590 --> 00:35:19,170 E então o que fazemos em cada i ++ ponto no loop for. 631 00:35:19,170 --> 00:35:30,480 Fazer algo com str de i. 632 00:35:30,480 --> 00:35:34,950 >> Assim, a fórmula de base foi, tivemos essa matriz que 633 00:35:34,950 --> 00:35:37,910 queria tratar como elementos separados. 634 00:35:37,910 --> 00:35:45,170 Mas o que tínhamos a fazer é que tivemos de basicamente criar um inteiro separado 635 00:35:45,170 --> 00:35:50,530 variável que estava contando-se cada vez que fomos através do laço. 636 00:35:50,530 --> 00:35:55,240 E então nós teríamos que então chamar strstr [i] quando o que realmente queria fazer 637 00:35:55,240 --> 00:35:57,280 é só ir personagem pelo caráter, certo? 638 00:35:57,280 --> 00:36:00,185 Nós não queremos para incrementar um inteiro e, em seguida, usar esse inteiro 639 00:36:00,185 --> 00:36:02,780 para acessar cada personagem individualmente. 640 00:36:02,780 --> 00:36:04,410 Nós realmente queremos caractere por caractere. 641 00:36:04,410 --> 00:36:08,600 >> E assim, para cada forma inteligente calcula que para nós. 642 00:36:08,600 --> 00:36:11,875 Se nós temos uma matriz, que podemos declarar em PHP 643 00:36:11,875 --> 00:36:15,900 apenas-- como se nós temos uma variável chamado, vamos chamá-lo de matriz. 644 00:36:15,900 --> 00:36:19,840 Os milagres de nenhuma digitação, é assim como qualquer outra variável. 645 00:36:19,840 --> 00:36:20,730 É apenas uma matriz. 646 00:36:20,730 --> 00:36:26,890 E nós temos um pouco [inaudível] como 1, 2, 3, apenas uma espécie de matriz inicializado. 647 00:36:26,890 --> 00:36:29,680 É OK, ele não gosta do meu foreach. 648 00:36:29,680 --> 00:36:33,120 >> Mas se nós realmente foreach-- Eu digitei que um pouco errado. 649 00:36:33,120 --> 00:36:34,840 Há duas maneiras de fazer um loop foreach. 650 00:36:34,840 --> 00:36:37,400 Há a sintaxe e o como sintaxe. 651 00:36:37,400 --> 00:36:40,580 E nós vamos fazer sintaxe em primeiro lugar, não como. 652 00:36:40,580 --> 00:36:41,780 Esse é o meu erro. 653 00:36:41,780 --> 00:36:53,785 >> Então, num foreach em array, eco num. 654 00:36:53,785 --> 00:36:56,970 655 00:36:56,970 --> 00:36:59,500 E PHP está gritando com me por algum motivo. 656 00:36:59,500 --> 00:37:03,520 É encontrar um inesperado em em alguma coisa, 657 00:37:03,520 --> 00:37:05,820 que é um pouco de um incômodo. 658 00:37:05,820 --> 00:37:09,105 Mas vamos descobrir por que isso acontece em um momento. 659 00:37:09,105 --> 00:37:11,960 660 00:37:11,960 --> 00:37:13,610 Então, não gosto disso. 661 00:37:13,610 --> 00:37:15,040 Vamos tentar usar o como. 662 00:37:15,040 --> 00:37:17,310 Ele prefere a sintaxe é como parece. 663 00:37:17,310 --> 00:37:22,550 Então vamos fazer matriz foreach como num. 664 00:37:22,550 --> 00:37:24,520 >> Assim, uma pequena explicação do que aconteceu 665 00:37:24,520 --> 00:37:30,670 é a sintaxe é como dizendo-- bem em primeiro lugar, vamos olhar para o que este é impressa. 666 00:37:30,670 --> 00:37:32,260 Então abrimos nosso IDE. 667 00:37:32,260 --> 00:37:33,110 Vamos aqui. 668 00:37:33,110 --> 00:37:35,845 Nós dizemos: Olá Jason. 669 00:37:35,845 --> 00:37:41,390 E fez 123, que foram os conteúdos da matriz que criamos em cima. 670 00:37:41,390 --> 00:37:45,500 >> Então mergulhar neste loop foreach, nós temos uma matriz variável chamada 671 00:37:45,500 --> 00:37:47,470 o qual é uma disposição de três números. 672 00:37:47,470 --> 00:37:52,120 E então nós estamos fazendo foreach array como num, eco num. 673 00:37:52,120 --> 00:37:54,990 E isso é mais intuitivo do que um para lop. 674 00:37:54,990 --> 00:38:02,380 Nós estamos dizendo, o tratamento de cada um dos as coisas na matriz como NUM, 675 00:38:02,380 --> 00:38:05,180 Eu quero que você me dê num. 676 00:38:05,180 --> 00:38:06,640 E isso é exatamente o que está fazendo. 677 00:38:06,640 --> 00:38:12,000 >> PHP é o cálculo que quando você diz matriz foreach, 678 00:38:12,000 --> 00:38:16,080 e você está lidando com uma matriz, o que você vai querer para repetir 679 00:38:16,080 --> 00:38:19,950 são os personagens dessa matriz, é o ints dessa matriz, 680 00:38:19,950 --> 00:38:21,920 são os elementos dessa matriz. 681 00:38:21,920 --> 00:38:26,110 E isso está permitindo que você armazene essas variáveis ​​como, num 682 00:38:26,110 --> 00:38:29,360 e num seguida, basta saída imediatamente em vez de dizer, 683 00:38:29,360 --> 00:38:34,090 Eu tenho uma variável chamada i, e então eu quero saída strstr [i]. 684 00:38:34,090 --> 00:38:39,130 >> E assim que nos permite fazer coisas legais. 685 00:38:39,130 --> 00:38:43,330 Como basicamente não temos para criar estas variáveis ​​como i do e fazer tudo 686 00:38:43,330 --> 00:38:45,090 este material incrementação no fim. 687 00:38:45,090 --> 00:38:48,290 PHP cuida de tudo isso para você. 688 00:38:48,290 --> 00:38:54,470 >> Então agora vamos falar sobre como foreach ele se aplica ao nosso dicionário _GET. 689 00:38:54,470 --> 00:38:57,170 Então, vamos comentar isso rapidamente. 690 00:38:57,170 --> 00:39:02,030 Portanto, temos nossa matriz _GET. 691 00:39:02,030 --> 00:39:04,361 Nós temos essa variável. 692 00:39:04,361 --> 00:39:05,610 E tem algumas coisas nele. 693 00:39:05,610 --> 00:39:10,275 >> Agora, só temos uma variável sendo passado para ele, que é nome. 694 00:39:10,275 --> 00:39:13,420 Mas se pressione Enter, agora podemos ter duas variáveis. 695 00:39:13,420 --> 00:39:17,910 Podemos ter nome e idade, por exemplo, se queremos chegar a idade e também 696 00:39:17,910 --> 00:39:20,960 o nome de uma pessoa, curiosamente. 697 00:39:20,960 --> 00:39:25,690 >> Então agora _GET vai ser um dicionário com dois elementos, 698 00:39:25,690 --> 00:39:27,980 com dois pares de valores-chave. 699 00:39:27,980 --> 00:39:33,490 E a primeira key-- eu vou escrever até um presente na placa também. 700 00:39:33,490 --> 00:39:37,136 Temos nosso dicionário é _GET. 701 00:39:37,136 --> 00:39:39,520 Desculpe, é um pouco difícil de ver. 702 00:39:39,520 --> 00:39:46,690 Mas dentro do nosso dicionário temos nome, que vai ser algo 703 00:39:46,690 --> 00:39:47,680 que nos é dada. 704 00:39:47,680 --> 00:39:53,040 E nós vamos ter idade, que é também vai ser algo que nos é dada. 705 00:39:53,040 --> 00:39:56,020 E esta é a totalidade do nosso dicionário. 706 00:39:56,020 --> 00:39:57,730 >> Então, ele tem dois elementos na mesma. 707 00:39:57,730 --> 00:40:01,310 E isso porque foreach laços são inteligentes, nós 708 00:40:01,310 --> 00:40:04,900 poderia pensar, e corretamente poderia pensar que foreach 709 00:40:04,900 --> 00:40:08,080 possível percorrer este dicionário, imprimindo 710 00:40:08,080 --> 00:40:10,850 os valores dada pelo nome e idade. 711 00:40:10,850 --> 00:40:14,510 >> Então vamos de fato fazer exatamente isso. 712 00:40:14,510 --> 00:40:17,520 Vamos construir um loop foreach. 713 00:40:17,520 --> 00:40:23,351 E nós vamos fazer para _GET como. 714 00:40:23,351 --> 00:40:24,850 E nós vamos fazer o seguinte. 715 00:40:24,850 --> 00:40:34,186 Então vamos ver o que acontece se nós digitamos apenas palavra, e depois dizer palavra eco. 716 00:40:34,186 --> 00:40:40,540 Nós também vamos a ecoar uma nova linha apenas para torná-lo um pouco mais claro, 717 00:40:40,540 --> 00:40:41,260 o que está acontecendo. 718 00:40:41,260 --> 00:40:42,890 >> Então vamos ver. 719 00:40:42,890 --> 00:40:44,390 Ele não está me dando algum erro. 720 00:40:44,390 --> 00:40:46,810 E nós vamos fechar este. 721 00:40:46,810 --> 00:40:51,020 No nosso site, você vai estar fazendo um monte de que, ao longo de pset7. 722 00:40:51,020 --> 00:40:53,890 Assim, dizemos meu nome é Sam. 723 00:40:53,890 --> 00:40:58,560 Minha idade é 45. 724 00:40:58,560 --> 00:41:01,060 Não é. 725 00:41:01,060 --> 00:41:05,640 Mas ele imprime, como esperado, Sam 45. 726 00:41:05,640 --> 00:41:08,930 >> E assim você vai perceber que o loop foreach fez-- aqui, 727 00:41:08,930 --> 00:41:12,360 vamos voltar ao que por isso é até no board-- chegarmos _GET como palavra. 728 00:41:12,360 --> 00:41:15,130 E havia quatro coisas em _GET. 729 00:41:15,130 --> 00:41:17,410 Mas ele só impressos duas coisas. 730 00:41:17,410 --> 00:41:21,290 foreach, sendo seu auto inteligência, assumiu que o que realmente queríamos 731 00:41:21,290 --> 00:41:24,100 foi os valores, não as chaves. 732 00:41:24,100 --> 00:41:27,800 >> Mas há uma maneira que poderíamos imprimir as chaves, bem como, se quiséssemos. 733 00:41:27,800 --> 00:41:30,810 Se quiséssemos saber o que também estas variáveis ​​foram chamados, 734 00:41:30,810 --> 00:41:33,540 há uma maneira que nós pode acessar esta bem. 735 00:41:33,540 --> 00:41:36,840 E a maneira de classificar de fazer isso, por isso podemos dizer, vamos realmente 736 00:41:36,840 --> 00:41:39,485 dividi-lo em pares de valores-chave. 737 00:41:39,485 --> 00:41:42,370 738 00:41:42,370 --> 00:41:47,580 Então vamos ver o que acontece agora. 739 00:41:47,580 --> 00:41:50,550 >> Portanto, temos a chave. 740 00:41:50,550 --> 00:41:52,290 Nós temos valor. 741 00:41:52,290 --> 00:41:56,650 Nós temos um outro novo linha para facilitar a leitura. 742 00:41:56,650 --> 00:42:00,540 E vamos ver o que acontece quando fazemos isso agora. 743 00:42:00,540 --> 00:42:04,950 744 00:42:04,950 --> 00:42:06,720 Eu não sei quantos anos é Jason. 745 00:42:06,720 --> 00:42:09,180 Jason de 15. 746 00:42:09,180 --> 00:42:11,650 Portanto, temos nome Jason, de 15 anos. 747 00:42:11,650 --> 00:42:15,830 Então, nós fomos capazes de acessar a chave e pares de valores deste dicionário 748 00:42:15,830 --> 00:42:18,590 apenas dizendo como pontos-chave para o valor. 749 00:42:18,590 --> 00:42:23,350 E isso é uma sintática foreach pouco açúcar que permite 750 00:42:23,350 --> 00:42:25,960 você acesse as coisas no dicionário. 751 00:42:25,960 --> 00:42:31,190 >> Portanto, esperamos que este tipo de enfatiza a potência do loop foreach. 752 00:42:31,190 --> 00:42:35,690 Você pode muito bem jogar qualquer coisa que parece iterable, 753 00:42:35,690 --> 00:42:38,922 como qualquer coisa que tenha múltiplo elementos como um array, 754 00:42:38,922 --> 00:42:41,880 como um dictionary-- esses são dois principais coisas que você estará trabalhando com 755 00:42:41,880 --> 00:42:45,630 tanto na vida e na pset 7. 756 00:42:45,630 --> 00:42:49,350 Então você pode jogar esse material para ele, e ele vai descobrir 757 00:42:49,350 --> 00:42:51,030 o que você quer fazer com ele. 758 00:42:51,030 --> 00:42:54,250 Ele vai dizer: OK, eu vou ficar estas coisas aos dados que 759 00:42:54,250 --> 00:42:55,680 foi passado para mim. 760 00:42:55,680 --> 00:43:02,470 E isso é algo que você é vai estar usando um monte de em pset 7. 761 00:43:02,470 --> 00:43:08,550 >> Eu estou indo para rolagem rápida para baixo só para ver onde eu estou. 762 00:43:08,550 --> 00:43:11,410 763 00:43:11,410 --> 00:43:13,070 As pessoas têm perguntas neste ponto? 764 00:43:13,070 --> 00:43:13,778 Perguntas em tudo? 765 00:43:13,778 --> 00:43:14,400 Sim? 766 00:43:14,400 --> 00:43:18,320 >> AUDIÊNCIA: Então, com a chave e valor, você poderia nomeá-lo de qualquer outra coisa 767 00:43:18,320 --> 00:43:20,507 e ele continuaria a trabalhar? 768 00:43:20,507 --> 00:43:21,090 COLUNA: Oops. 769 00:43:21,090 --> 00:43:22,820 Uau, eu apaguei totalmente toda a linha. 770 00:43:22,820 --> 00:43:23,380 Ótimo trabalho. 771 00:43:23,380 --> 00:43:26,502 Então, a a. 772 00:43:26,502 --> 00:43:30,109 Chave e valor é apenas uma convenção. 773 00:43:30,109 --> 00:43:30,650 É útil. 774 00:43:30,650 --> 00:43:34,010 Você poderia obter algum projeto pontos, talvez alguns pontos de estilo 775 00:43:34,010 --> 00:43:36,970 para fazer isso, porque realmente transmite a intenção. 776 00:43:36,970 --> 00:43:39,650 Mas nós dizemos um e Yarp. 777 00:43:39,650 --> 00:43:42,476 >> AUDIÊNCIA: Você não tem que mudar nada no arquivo HTML 778 00:43:42,476 --> 00:43:43,607 a fim de refletir isso? 779 00:43:43,607 --> 00:43:44,440 COLUNA: Nem um pouco. 780 00:43:44,440 --> 00:43:47,260 AUDIÊNCIA: E ele só sabe que por causa da iguala maior than-- 781 00:43:47,260 --> 00:43:47,801 COLUNA: Sim. 782 00:43:47,801 --> 00:43:49,489 AUDIÊNCIA: indicador --que que that's-- 783 00:43:49,489 --> 00:43:50,030 COLUNA: Sim. 784 00:43:50,030 --> 00:43:52,260 Isso é uma sintaxe foreach, mas sim. 785 00:43:52,260 --> 00:43:53,720 >> AUDIÊNCIA: Não existem tipos. 786 00:43:53,720 --> 00:43:57,230 Assim que se você queria idade para ser apenas um número? 787 00:43:57,230 --> 00:43:59,510 Existe uma maneira de fazer isso? 788 00:43:59,510 --> 00:44:04,550 >> COLUNA: Existem maneiras de verificar se variáveis ​​obedecer a determinados tipos. 789 00:44:04,550 --> 00:44:08,482 Então PHP pede um pouco mais de você porque não existem tipos em. 790 00:44:08,482 --> 00:44:09,440 Algumas maneiras ele pede menos. 791 00:44:09,440 --> 00:44:11,070 De certa forma ele pede mais. 792 00:44:11,070 --> 00:44:13,320 Porque se você tem apenas algo em uma variável, 793 00:44:13,320 --> 00:44:14,960 você não tem idéia de que tipo é. 794 00:44:14,960 --> 00:44:19,310 Mas se você for esperto sobre as variáveis que você atribui tipos de e para certificar-se de 795 00:44:19,310 --> 00:44:22,750 que funciona somente return-- você quer funções para retornar somente 796 00:44:22,750 --> 00:44:26,210 um tipo de valor de modo que você pode basicamente 797 00:44:26,210 --> 00:44:31,090 espera que a variável que você voltar a partir de uma função será do tipo 798 00:44:31,090 --> 00:44:32,780 que você acha que vai ser, basicamente. 799 00:44:32,780 --> 00:44:36,550 >> Mas existem alguns métodos pelo qual você pode verificar. 800 00:44:36,550 --> 00:44:39,801 Eu não me lembro-los fora do topo da minha cabeça. 801 00:44:39,801 --> 00:44:43,300 Eu estou esperando por ele para ficar azul. 802 00:44:43,300 --> 00:44:45,560 isint? 803 00:44:45,560 --> 00:44:48,070 isstr? 804 00:44:48,070 --> 00:44:52,000 Existem métodos construído em PHP que pode 805 00:44:52,000 --> 00:44:54,440 verificar o tipo de variáveis ​​para você. 806 00:44:54,440 --> 00:44:58,250 Mas se você atribuir variáveis inteligentemente, você não deve 807 00:44:58,250 --> 00:45:01,330 tem que fazer isso muito em pset 7. 808 00:45:01,330 --> 00:45:02,780 Mas existem aqueles métodos. 809 00:45:02,780 --> 00:45:06,704 E isso é algo que está na própria linguagem. 810 00:45:06,704 --> 00:45:08,370 E eu não me lembro a sintaxe precisa. 811 00:45:08,370 --> 00:45:09,930 Poderíamos até mesmo procurá-lo. 812 00:45:09,930 --> 00:45:11,974 Mas o tempo é da essência. 813 00:45:11,974 --> 00:45:13,890 Alguém mais tem tiver mais alguma dúvida? 814 00:45:13,890 --> 00:45:14,660 Sim. 815 00:45:14,660 --> 00:45:15,951 >> AUDIÊNCIA: Eu tenho só mais uma. 816 00:45:15,951 --> 00:45:19,050 Então você mencionou o método GET, mas você não mencionou o método POST. 817 00:45:19,050 --> 00:45:20,500 Será que estamos voltando para isso? 818 00:45:20,500 --> 00:45:21,540 >> COLUNA: Sim, nós vamos voltar a isso. 819 00:45:21,540 --> 00:45:24,840 Isso é exatamente o que eu estava procurando para o meu telefone, que agora caiu no sono, 820 00:45:24,840 --> 00:45:26,960 mas eu vou encontrá-lo. 821 00:45:26,960 --> 00:45:30,680 Basta ter certeza que nós batemos todas as notas PHP. 822 00:45:30,680 --> 00:45:35,640 Sim, não há nenhuma versão de depuração. 823 00:45:35,640 --> 00:45:41,940 Sim, temos mais algumas coisas que nós queremos fazer agora, neste momento. 824 00:45:41,940 --> 00:45:45,980 >> Então, falando de POST, que você mencionou, 825 00:45:45,980 --> 00:45:49,630 a única diferença entre GET e POST é 826 00:45:49,630 --> 00:45:53,150 lembre-se que quando olhamos neste URL e vimos, oh, 827 00:45:53,150 --> 00:45:58,270 é igual a um nome e idade igual Yarp está bem no URL lá para nós. 828 00:45:58,270 --> 00:46:03,300 POST é um pouco mais reservado com a sua passagem de informação. 829 00:46:03,300 --> 00:46:08,090 >> Portanto, se você não quiser que um usuário a saber, por exemplo, você 830 00:46:08,090 --> 00:46:11,160 não queria que o nome de usuário ea senha da pessoa 831 00:46:11,160 --> 00:46:15,080 Atualmente logado para ser exibido em o URL, que é uma coisa razoável 832 00:46:15,080 --> 00:46:17,770 não querer na URL, porque alguém pode vê-lo. 833 00:46:17,770 --> 00:46:21,520 Se ligar a alguém para uma página, você não querem que sua URL grudado lá, 834 00:46:21,520 --> 00:46:27,850 porque isso iria permitir que as pessoas para acessar apenas com o colar de uma URL em vez 835 00:46:27,850 --> 00:46:29,670 de realmente preencher um formulário. 836 00:46:29,670 --> 00:46:31,710 POST é um pouco mais reservado. 837 00:46:31,710 --> 00:46:34,150 >> E as únicas coisas que nós vamos ter que mudar 838 00:46:34,150 --> 00:46:38,550 são este método, a mudança de obter para enviar mensagens. 839 00:46:38,550 --> 00:46:42,367 E, em seguida, no interior do HTTP, em vez de acessar o _GET matriz, 840 00:46:42,367 --> 00:46:43,950 nós estamos indo para acessar o _POST array. 841 00:46:43,950 --> 00:46:48,600 >> E nós vamos perceber que, se abrimos este volta-se novamente, 842 00:46:48,600 --> 00:46:51,910 Jason declina lentamente na idade. 843 00:46:51,910 --> 00:46:53,230 nome Jason, de 14 anos. 844 00:46:53,230 --> 00:46:54,280 A mesma coisa aparece. 845 00:46:54,280 --> 00:46:57,190 Mas vamos para o URL e essas variáveis ​​não estão lá. 846 00:46:57,190 --> 00:47:00,540 >> E a maneira que POST passes-- por isso lembre- 847 00:47:00,540 --> 00:47:02,750 como olhar para a fonte de uma página. 848 00:47:02,750 --> 00:47:04,570 Nós vamos para a rede. 849 00:47:04,570 --> 00:47:06,920 Nós atualizar. 850 00:47:06,920 --> 00:47:10,690 E isso é outra coisa que POST vai lhe dar avisos sobre. 851 00:47:10,690 --> 00:47:15,050 Você pode ter visto uma caixa, um texto caixa como esta no seu browser. 852 00:47:15,050 --> 00:47:18,170 Você tem certeza que quer para enviar um formulário de novo? 853 00:47:18,170 --> 00:47:21,170 POST é o que está enviando essas formas. 854 00:47:21,170 --> 00:47:24,680 >> Porque, basicamente, se você enviou o seu informações cartão de crédito para alguém, 855 00:47:24,680 --> 00:47:26,350 que não vai aparecer na URL. 856 00:47:26,350 --> 00:47:28,180 Isso vai ser um pedido POST. 857 00:47:28,180 --> 00:47:32,905 Então, quando você atualizar a página, é reenviar esse pedido post. 858 00:47:32,905 --> 00:47:35,530 Então, agora nós queremos enviar o formar de novo, porque ele não vai 859 00:47:35,530 --> 00:47:37,340 para criar todas as compras duplicadas. 860 00:47:37,340 --> 00:47:41,160 >> E nós vamos perceber que aqui em baixo, o método que estamos usando é POST. 861 00:47:41,160 --> 00:47:43,065 E, de fato, transferir bytes. 862 00:47:43,065 --> 00:47:45,460 Transferiu 401 deles. 863 00:47:45,460 --> 00:47:47,190 Programa de belos pequenas. 864 00:47:47,190 --> 00:47:51,600 Mas não há nenhum lugar que podemos ver os valores que estão sendo passados. 865 00:47:51,600 --> 00:47:59,540 As páginas da web podem ver a si mesmos, mas nós, como usuários não são capazes de ver, 866 00:47:59,540 --> 00:48:01,650 a menos que você é um hacker. 867 00:48:01,650 --> 00:48:05,340 Se você é um hacker bom, você pode olhar. 868 00:48:05,340 --> 00:48:09,360 >> Se você souber o básico formato do HTML, 869 00:48:09,360 --> 00:48:11,790 os valores fará se a conhecer nas páginas. 870 00:48:11,790 --> 00:48:13,160 Você vai ser capaz de ver. 871 00:48:13,160 --> 00:48:16,720 Os valores vão estar lá, eles são apenas um pouco menos óbvio para você 872 00:48:16,720 --> 00:48:19,522 de acesso, basicamente. 873 00:48:19,522 --> 00:48:23,620 >> Temos mais perguntas sobre GET, POST 874 00:48:23,620 --> 00:48:26,800 antes-- o que vamos fazer a seguir é realmente olhar para algum código 875 00:48:26,800 --> 00:48:30,837 que você está dando em pset 7, falar sobre como ele usa alguns destes conceitos, 876 00:48:30,837 --> 00:48:32,670 e falar sobre o as coisas que você está indo 877 00:48:32,670 --> 00:48:35,090 ter que fazer um pouco no pset 7. 878 00:48:35,090 --> 00:48:36,760 Mais alguma pergunta antes disso? 879 00:48:36,760 --> 00:48:38,047 Mais perguntas que vocês têm? 880 00:48:38,047 --> 00:48:41,250 881 00:48:41,250 --> 00:48:41,840 Ótimo. 882 00:48:41,840 --> 00:48:45,370 >> Tudo bem, vamos olhar um pouco de pset 7, 883 00:48:45,370 --> 00:48:49,530 sem dúvida que você é tudo mais animado. 884 00:48:49,530 --> 00:48:52,126 885 00:48:52,126 --> 00:48:54,750 Quero dizer, isso é algo que David passa por um pouco. 886 00:48:54,750 --> 00:49:00,890 Mas teremos três diretórios no parte superior, bem como um ficheiro de configuração. 887 00:49:00,890 --> 00:49:04,650 Isso é para bancos de dados, o que nós vamos falar em cerca de cinco minutos. 888 00:49:04,650 --> 00:49:07,220 Inclui, você nunca precisa procurar neste diretório 889 00:49:07,220 --> 00:49:12,480 se você não quer, mas é bom para sei que existem todos os tipos de ajudantes. 890 00:49:12,480 --> 00:49:14,210 Helpers é como funções votos. 891 00:49:14,210 --> 00:49:18,120 E então nós temos de configuração, que define algumas coisas. 892 00:49:18,120 --> 00:49:24,590 >> Existem algumas funções que tem CS50 escrito que estão em auxiliar e de configuração. 893 00:49:24,590 --> 00:49:27,250 E alguns dos que PHP já sai em arquivos 894 00:49:27,250 --> 00:49:30,880 vai fazer um monte de mais sorte trabalho de perna de obtuso para você. 895 00:49:30,880 --> 00:49:35,250 Como se entrarmos em público login.php, que é o que 896 00:49:35,250 --> 00:49:38,350 mostra-se à direita quando você entra em pset 7. 897 00:49:38,350 --> 00:49:40,580 Vamos ver o que há este exigir declaração. 898 00:49:40,580 --> 00:49:43,420 E isso como uma espécie de afiada incluem, hashtag 899 00:49:43,420 --> 00:49:46,850 incluem se você é de uma geração mais nova. 900 00:49:46,850 --> 00:49:49,740 Mas isto basicamente diz que eu preciso de acesso 901 00:49:49,740 --> 00:49:52,260 a todas as funções em config.php. 902 00:49:52,260 --> 00:49:55,290 E você poderia ter um requerem para todos os tipos de outras coisas. 903 00:49:55,290 --> 00:49:59,670 >> configuração realmente requer ajudantes. 904 00:49:59,670 --> 00:50:02,490 Assim, sempre que você precisar configuração, você também é 905 00:50:02,490 --> 00:50:05,660 incluindo ou exigindo ajudantes também. 906 00:50:05,660 --> 00:50:09,590 Então, que lhe dá acesso a todos os funções legais que vamos usar, 907 00:50:09,590 --> 00:50:10,420 coisas como render. 908 00:50:10,420 --> 00:50:13,490 Eu estou indo realmente para aliviar esta um pouco para baixo. 909 00:50:13,490 --> 00:50:16,280 Assim, a função então nós estamos indo a pé através de 910 00:50:16,280 --> 00:50:22,380 pouco antes de passarmos para SQL um pouco bit é a função login.php, apenas 911 00:50:22,380 --> 00:50:26,586 porque ele usa alguns dos tópicos que nós acabamos de falar em PHP. 912 00:50:26,586 --> 00:50:30,840 >> Você vê a primeira coisa é se $ _SERVER. 913 00:50:30,840 --> 00:50:34,500 Esta é uma outra variável global que você vai estar lidando. 914 00:50:34,500 --> 00:50:38,460 É como _GET e _POST, mas o que servidor contém é isso pode deixá-lo 915 00:50:38,460 --> 00:50:42,730 saber se o método de solicitação foi um GET ou um POST. 916 00:50:42,730 --> 00:50:47,250 Como anteriormente o que estávamos fazendo é apenas em nosso código que escreveu, 917 00:50:47,250 --> 00:50:51,880 estávamos apenas mudando-o para ser GET e POST dependendo do que o HTML tem. 918 00:50:51,880 --> 00:50:55,120 Mas existem páginas que podem ser acessado com ambos os tipos de solicitações. 919 00:50:55,120 --> 00:50:57,410 E você pode querer fazer coisas diferentes dependendo 920 00:50:57,410 --> 00:50:59,740 do tipo de pedido, assim como o login faz. 921 00:50:59,740 --> 00:51:04,400 >> Assim, você pode verificar que o pedido método por meio de chaves que acessam, 922 00:51:04,400 --> 00:51:08,630 através da utilização de uma chave e obter o valor de algo no dicionário 923 00:51:08,630 --> 00:51:10,260 _SERVER. 924 00:51:10,260 --> 00:51:13,800 Então, isso é outra mundial como variável _GET e _POST. 925 00:51:13,800 --> 00:51:16,990 >> Se for GET, queremos tornar o formulário de login. 926 00:51:16,990 --> 00:51:21,920 Renderização é uma função que, basicamente, apenas coloca-se o HTML apropriado 927 00:51:21,920 --> 00:51:24,500 e passa alguns parâmetros. 928 00:51:24,500 --> 00:51:28,740 Este título é um parâmetro que é usado na exibição, curiosamente, 929 00:51:28,740 --> 00:51:32,670 o título da página no pergunta, a coisa aqui em cima, 930 00:51:32,670 --> 00:51:34,850 ou dizer Olá em nosso exemplo anterior. 931 00:51:34,850 --> 00:51:36,100 Agora nós temos uma coisa diferente. 932 00:51:36,100 --> 00:51:38,570 Else se é POST, nós fazer algumas outras coisas. 933 00:51:38,570 --> 00:51:40,790 Nós estamos usando esse método vazio. 934 00:51:40,790 --> 00:51:42,750 Não é existir, ele está vazio. 935 00:51:42,750 --> 00:51:45,440 E nós vimos antes, PHP tem uma boa quantidade de construído 936 00:51:45,440 --> 00:51:52,370 em métodos que se houver David will-- são métodos que são úteis para você, 937 00:51:52,370 --> 00:51:55,560 eles vão ser alertados para você na caminhada por que David 938 00:51:55,560 --> 00:51:59,770 dá a visão geral começando, e também pedaços de votos Zamyla. 939 00:51:59,770 --> 00:52:01,040 Ela está de volta todos. 940 00:52:01,040 --> 00:52:03,100 Todos nós podemos regozijar. 941 00:52:03,100 --> 00:52:06,530 pedir desculpas é uma função apropriadamente chamado que basicamente só imprime 942 00:52:06,530 --> 00:52:10,130 algumas mensagens de erro, CS50 porque é muito educado. 943 00:52:10,130 --> 00:52:14,770 >> E agora isto, este é um pouco complicado, porque isso 944 00:52:14,770 --> 00:52:16,697 é o lugar onde nós estamos consultando o banco de dados. 945 00:52:16,697 --> 00:52:18,280 Agora nós não falamos sobre bancos de dados. 946 00:52:18,280 --> 00:52:22,220 E nós estamos indo na próxima cinco minutos mais ou menos, no máximo. 947 00:52:22,220 --> 00:52:24,980 Mas esta é uma função CS50 que tem escrito 948 00:52:24,980 --> 00:52:38,050 para obter uma mesa, basicamente, a partir de um banco de dados que estamos trabalhando com no pset 7. 949 00:52:38,050 --> 00:52:40,860 Eu sou muito ruim com o meu indexação hoje zero. 950 00:52:40,860 --> 00:52:42,060 Mas sim, é 7. 951 00:52:42,060 --> 00:52:46,340 >> Então consulta vai retornar um matriz, é, basicamente, o bit de chave. 952 00:52:46,340 --> 00:52:54,130 E porque essas coisas não têm digitação, de modo linhas é um array de arrays. 953 00:52:54,130 --> 00:52:59,480 Porque quando estamos pensando em uma mesa, o que nós vamos fazer 954 00:52:59,480 --> 00:53:04,830 é, como você aprendeu na Série de Exercícios como o jogo de 15, de qualquer maneira 955 00:53:04,830 --> 00:53:06,990 onde você tinha que usar uma matriz dupla, nós, basicamente, 956 00:53:06,990 --> 00:53:15,210 ter variedade de outros matrizes faz uma tabela. 957 00:53:15,210 --> 00:53:18,150 E você tem linhas e colunas. 958 00:53:18,150 --> 00:53:24,450 E então você pode acessá-los como [0] [1], você começa a [0] [1]. 959 00:53:24,450 --> 00:53:26,900 Coisas básicas como essa. 960 00:53:26,900 --> 00:53:29,380 >> Então, o que estamos fazendo aqui nesta função, 961 00:53:29,380 --> 00:53:35,070 estamos pedindo o banco de dados se o usuário é 962 00:53:35,070 --> 00:53:40,200 a tentar entrar, que será enviado através do método POST. 963 00:53:40,200 --> 00:53:43,950 Vamos ver o que estamos recebendo o nome de usuário de _POST. 964 00:53:43,950 --> 00:53:46,900 Eles vão ter enviado, o usuário ou você, enviará um valor 965 00:53:46,900 --> 00:53:50,750 através de um formulário através de POST porque é nome de usuário e senha coisas. 966 00:53:50,750 --> 00:53:54,830 Estamos verificando o nome de usuário para ver, é isso em cima da mesa? 967 00:53:54,830 --> 00:53:58,070 Porque, se um usuário está fazendo logon em, em seguida, seu nome de usuário 968 00:53:58,070 --> 00:54:03,320 deve ser armazenada na tabela de os usuários que existem para este site. 969 00:54:03,320 --> 00:54:09,360 Então, basicamente, se o usuário está no banco de dados, 970 00:54:09,360 --> 00:54:16,400 consulta vai retornar essa linha, que é uma matriz. 971 00:54:16,400 --> 00:54:24,560 >> Mas a parte complicada é que se mesmo se a matriz dupla é de apenas uma linha, 972 00:54:24,560 --> 00:54:31,900 mesmo que seja um uma linha array-- como você tem basically-- 973 00:54:31,900 --> 00:54:36,900 se você tem um tamanho de uma matriz que está segurando uma outra matriz, 974 00:54:36,900 --> 00:54:38,940 você está realmente lidando com uma coluna. 975 00:54:38,940 --> 00:54:41,420 Mas ainda é tratada como uma matriz dupla. 976 00:54:41,420 --> 00:54:44,560 >> E é aí que as vezes podem ser complicado, porque nós temos linhas aqui. 977 00:54:44,560 --> 00:54:46,440 Nossa variável é linhas. 978 00:54:46,440 --> 00:54:48,590 E então nós estamos criando uma nova variável chamada linha 979 00:54:48,590 --> 00:54:51,450 e defini-la igual a a primeira linha de filas. 980 00:54:51,450 --> 00:54:55,150 E você vai perceber que o comentário diz que é a primeira e única linha. 981 00:54:55,150 --> 00:54:57,080 >> Então este é o complicado parte onde agora funciona 982 00:54:57,080 --> 00:54:59,660 pode retornar matrizes muito facilmente. 983 00:54:59,660 --> 00:55:01,270 Não há mallocs. 984 00:55:01,270 --> 00:55:02,280 Você não vai ver mallocs. 985 00:55:02,280 --> 00:55:03,940 Então você não vai ver as falhas seg. 986 00:55:03,940 --> 00:55:08,380 Mas funções ainda estará passando em torno de matrizes e de dados em grupos. 987 00:55:08,380 --> 00:55:12,250 E você tem que ter cuidado com o que exatamente suas funções retornarão. 988 00:55:12,250 --> 00:55:15,160 E mesmo que seja um coluna como esta, consultar 989 00:55:15,160 --> 00:55:17,520 ainda está indo para retornar uma matriz de casal. 990 00:55:17,520 --> 00:55:21,390 Assim, para que o acesso column-- ou você pode pensar em tudo isso como invertida 991 00:55:21,390 --> 00:55:22,870 uma vez que estamos falando de linhas. 992 00:55:22,870 --> 00:55:26,810 Mas, para acessar uma linha que, você não pode simplesmente dizer linhas. 993 00:55:26,810 --> 00:55:31,540 Mesmo que seja uma linha, você tem que não rowsrows [0] para eliminar este tipo de 994 00:55:31,540 --> 00:55:37,360 pouco exterior da matriz e tem apenas a sua uma linha. 995 00:55:37,360 --> 00:55:38,342 >> Fazer algumas outras coisas. 996 00:55:38,342 --> 00:55:40,050 Há uma função chamado password_verify 997 00:55:40,050 --> 00:55:42,980 que verifica a senha que foi postada. 998 00:55:42,980 --> 00:55:48,500 E então vemos outro mundial variável aqui, _SESSION. 999 00:55:48,500 --> 00:55:51,340 Basicamente id da sessão é como você manter o controle 1000 00:55:51,340 --> 00:55:53,990 de se alguém está logado ou não. 1001 00:55:53,990 --> 00:55:58,590 Então, agora com login.php, estamos logar um usuário. 1002 00:55:58,590 --> 00:56:01,920 Então, o que nós queremos fazer é que nós queremos dizer o id da sessão é igual à linha 1003 00:56:01,920 --> 00:56:05,890 id, que só faz sentido porque cada linha terá um ID diferente 1004 00:56:05,890 --> 00:56:07,239 número como parte da tabela. 1005 00:56:07,239 --> 00:56:09,280 Nós vamos entrar em um SQL segundo, por isso, se nada disso 1006 00:56:09,280 --> 00:56:13,500 Parece um pouco como blah, então tudo será esclarecido. 1007 00:56:13,500 --> 00:56:18,450 Mas vamos definir o id igual a coisa apropriada, registrar o usuário em. 1008 00:56:18,450 --> 00:56:20,530 Desculpas se alguma coisa der errado. 1009 00:56:20,530 --> 00:56:27,600 E isso é logins propósito em vida como professor Malan diria. 1010 00:56:27,600 --> 00:56:29,130 >> Assim que foi login.php. 1011 00:56:29,130 --> 00:56:33,750 E um monte de código PHP que você escrever em pset 7, que vai ser um pouco. 1012 00:56:33,750 --> 00:56:36,470 Não se esqueça de chmod para as permissões adequadas. 1013 00:56:36,470 --> 00:56:40,180 Haverá um pouco sobre que, no início da especificação. 1014 00:56:40,180 --> 00:56:46,382 >> Mas o PHP que você é escrita vai ser 1015 00:56:46,382 --> 00:56:47,840 fazendo coisas que é semelhante a este. 1016 00:56:47,840 --> 00:56:49,715 Você vai ser acesso a algumas coisas que 1017 00:56:49,715 --> 00:56:52,760 são dadas a você no variáveis ​​globais do PHP que 1018 00:56:52,760 --> 00:56:56,105 está lidando com a atual usuário logado, se existe 1019 00:56:56,105 --> 00:57:00,460 temos pedidos foram enviados a esta página, coisas diferentes assim. 1020 00:57:00,460 --> 00:57:05,790 E também será potencialmente iterar linhas desta coisa. 1021 00:57:05,790 --> 00:57:09,010 >> Em uma função, consulta diferente não voltar essa matriz dupla. 1022 00:57:09,010 --> 00:57:11,450 E, se houver mais de um fileiras em que, 1023 00:57:11,450 --> 00:57:15,080 Se houver é-- sim, se houver são mais de uma linha em que, 1024 00:57:15,080 --> 00:57:16,870 então ele irá ser uma mesa. 1025 00:57:16,870 --> 00:57:20,500 E você pode querer fazer uma iteração através das linhas de essa matriz usando 1026 00:57:20,500 --> 00:57:22,860 o loop foreach que descrevemos. 1027 00:57:22,860 --> 00:57:30,270 >> Então, se você faz foreach em um duplo array, qual será o word-- aqui, 1028 00:57:30,270 --> 00:57:31,909 Na verdade, eu vou escrevê-lo. 1029 00:57:31,909 --> 00:57:32,950 Vou escrever rápido aqui. 1030 00:57:32,950 --> 00:57:44,280 >> Se temos um foreach de linhas como linha, qual é o tipo de linha? 1031 00:57:44,280 --> 00:57:45,390 Alguém sabe? 1032 00:57:45,390 --> 00:57:54,000 1033 00:57:54,000 --> 00:57:54,500 Você entendeu? 1034 00:57:54,500 --> 00:57:57,110 Então linhas é uma matriz de casal. 1035 00:57:57,110 --> 00:58:02,810 Então, o que é foreach vai inferir que queremos a partir dessa matriz dupla 1036 00:58:02,810 --> 00:58:04,280 se estamos interagindo sobre isso? 1037 00:58:04,280 --> 00:58:07,170 1038 00:58:07,170 --> 00:58:10,770 Podemos assumir que basicamente ele vai ser ou elementos, 1039 00:58:10,770 --> 00:58:14,970 ou linhas ou colunas, basicamente. 1040 00:58:14,970 --> 00:58:18,740 E assim nós, linhas e colunas pode tratar como a mesma coisa. 1041 00:58:18,740 --> 00:58:23,880 >> Basicamente o que o loop foreach vai a fazer é que vai retornar as linhas. 1042 00:58:23,880 --> 00:58:28,500 linha vai ser do tipo de linha, Considerando que as linhas é uma matriz de casal. 1043 00:58:28,500 --> 00:58:32,290 Então, se você dá foreach uma matriz dupla, é 1044 00:58:32,290 --> 00:58:35,830 não vai fazer uma iteração mais de um nível profundo. 1045 00:58:35,830 --> 00:58:44,464 Que é basicamente para dizer se há são oito células nesta mesa-- 1,2, 1046 00:58:44,464 --> 00:58:48,110 3 4, 5, 6, 7, o 8-- loop foreach não é 1047 00:58:48,110 --> 00:58:51,880 vai passar por cada uma dessas células. 1048 00:58:51,880 --> 00:58:56,390 O que o loop foreach vai fazer foi ele irá passar por esta linha, 1049 00:58:56,390 --> 00:58:57,870 dar-lhe toda esta linha. 1050 00:58:57,870 --> 00:58:59,410 E então ele vai passar por essa linha. 1051 00:58:59,410 --> 00:59:01,850 >> Por isso, só repete um nível de profundidade. 1052 00:59:01,850 --> 00:59:05,310 Se você adicionar um nested loop foreach, então você 1053 00:59:05,310 --> 00:59:16,280 pode tratar cada linha retornada a partir de linhas, você faz linha foreach como elemento, 1054 00:59:16,280 --> 00:59:17,640 Digamos. 1055 00:59:17,640 --> 00:59:22,750 E então você pode ecoar o elemento. 1056 00:59:22,750 --> 00:59:24,930 Então essa é uma breve pouco de reciclagem sobre como 1057 00:59:24,930 --> 00:59:30,220 você pode estar usando foreach laços no contexto de consulta. 1058 00:59:30,220 --> 00:59:32,840 >> Há alguma pergunta sobre PHP? 1059 00:59:32,840 --> 00:59:36,520 Qualquer coisa antes de nós passar para falar sobre SQL 1060 00:59:36,520 --> 00:59:37,820 ea diversão de banco de dados? 1061 00:59:37,820 --> 00:59:41,480 1062 00:59:41,480 --> 00:59:42,110 Sentindo-se bem? 1063 00:59:42,110 --> 00:59:42,750 Sentindo-se bem. 1064 00:59:42,750 --> 00:59:43,470 Tudo certo. 1065 00:59:43,470 --> 00:59:49,130 >> Vamos passar de volta para o PowerPoint, que você provavelmente perder. 1066 00:59:49,130 --> 00:59:51,800 SQL, yay. 1067 00:59:51,800 --> 00:59:57,900 As pessoas que estão em minha seção tipicamente vai saber que subtítulos de siglas 1068 00:59:57,900 --> 01:00:01,220 são sempre apenas as primeiras palavras Penso que jogo que 1069 01:00:01,220 --> 01:00:02,690 algorithm-- que sigla. 1070 01:00:02,690 --> 01:00:04,090 Não é um algoritmo. 1071 01:00:04,090 --> 01:00:08,050 >> Então, é um banco de dados SQL. 1072 01:00:08,050 --> 01:00:11,060 É uma linguagem que trabalha com bancos de dados. 1073 01:00:11,060 --> 01:00:14,440 E todos os bancos de dados são é tabelas, pelo menos na maneira 1074 01:00:14,440 --> 01:00:17,220 SQL que os representa. 1075 01:00:17,220 --> 01:00:23,610 >> Outra maneira de pensar sobre bancos de dados é bases de dados são um conjunto de chaves e valores 1076 01:00:23,610 --> 01:00:24,110 basicamente. 1077 01:00:24,110 --> 01:00:29,530 Você pode pensar em um banco de dados como um dicionário e também como uma mesa. 1078 01:00:29,530 --> 01:00:34,300 Basicamente, é uma maneira de associar dados diferentes com outros dados, 1079 01:00:34,300 --> 01:00:36,270 muitas vezes através de linhas e colunas. 1080 01:00:36,270 --> 01:00:38,470 E essa é a maneira que é SQL funciona melhor. 1081 01:00:38,470 --> 01:00:40,880 >> Portanto, este é um exemplo de uma tabela. 1082 01:00:40,880 --> 01:00:44,610 Eu tenho alguns exemplos de pessoas na minha seção, que 1083 01:00:44,610 --> 01:00:45,970 Eu não tive tempo para mudar. 1084 01:00:45,970 --> 01:00:52,020 Mas nós temos coisas como ID, nome, superpotência, e cidade natal. 1085 01:00:52,020 --> 01:00:54,100 Eu não sei onde qualquer um é a partir na minha seção, 1086 01:00:54,100 --> 01:00:56,266 então eu só vou assumir todo mundo é de Nova Iorque 1087 01:00:56,266 --> 01:00:59,370 Cidade porque eu tenho uma alta estatística probabilidade de estar correta. 1088 01:00:59,370 --> 01:01:04,200 >> SQL levará automaticamente cuidar da coluna ID para você. 1089 01:01:04,200 --> 01:01:07,560 Se você inserir uma nova linha em um banco de dados SQL, 1090 01:01:07,560 --> 01:01:09,700 ele será incrementado que Número de identificação e apenas 1091 01:01:09,700 --> 01:01:14,890 basicamente ficar como cinco nomes, superpotência, cidade natal, quem quer 1092 01:01:14,890 --> 01:01:16,430 para o fim do referido quadro. 1093 01:01:16,430 --> 01:01:19,160 Então ID é uma coluna você nunca tem que se preocupar. 1094 01:01:19,160 --> 01:01:22,770 Mas, como no caso de login.php, quando 1095 01:01:22,770 --> 01:01:26,610 estavam recebendo a identificação da sessão de uma tabela e usando apenas ID, 1096 01:01:26,610 --> 01:01:30,320 ID é uma forma de identificar de forma exclusiva um elemento de um banco de dados. 1097 01:01:30,320 --> 01:01:34,980 >> Então, se nós tivemos dois Sams, ambos CS50 que ensinou, e de que ambos 1098 01:01:34,980 --> 01:01:39,370 eram de Milwaukee, esses seriam ainda tem números de identificação distintos 1099 01:01:39,370 --> 01:01:43,420 e, assim, ser distinta no contexto da mesa. 1100 01:01:43,420 --> 01:01:48,700 Então é isso que SQL está lidando com, trabalhando com no back-end. 1101 01:01:48,700 --> 01:01:54,160 >> Ora, estes são os quatro comandos que você vai precisar para trabalhar com SQL. 1102 01:01:54,160 --> 01:01:56,390 E eu joguei-los todos em um slide. 1103 01:01:56,390 --> 01:01:59,530 Mas nós vamos passar por todos eles individualmente. 1104 01:01:59,530 --> 01:02:03,300 >> O primeiro comando é UPDATE, que faz o que você poderia esperar. 1105 01:02:03,300 --> 01:02:07,240 Digamos que você tenha alguns dados em a tabela que está fora de data. 1106 01:02:07,240 --> 01:02:09,470 Como se você está mantendo a par de nomes de pessoas 1107 01:02:09,470 --> 01:02:13,350 e as idades, se alguém é a idade aumenta, em seguida, 1108 01:02:13,350 --> 01:02:18,590 você vai querer entrar e atualizar idade apenas dessa pessoa. 1109 01:02:18,590 --> 01:02:21,902 Para um exemplo que funciona com o nosso primeiro mesa-- 1110 01:02:21,902 --> 01:02:24,610 não se preocupe sobre a escrita de todos estes comandos ao mesmo tempo. 1111 01:02:24,610 --> 01:02:27,640 Mas se você tem atualização para baixo, que vai ser bom para essa parte, 1112 01:02:27,640 --> 01:02:29,790 porque nós vamos voltar para a mesa. 1113 01:02:29,790 --> 01:02:33,920 >> Então, se nós voltar para a mesa, vamos dizer algo que aconteceu 1114 01:02:33,920 --> 01:02:38,480 Foi houve um terremoto ou uma linha de falha que dividir diretamente 1115 01:02:38,480 --> 01:02:39,920 através de New York City. 1116 01:02:39,920 --> 01:02:45,130 E nós queríamos para atualizar todos que viveu em New York City. 1117 01:02:45,130 --> 01:02:49,670 Todos eles tiveram que se mudar para a Pensilvânia. 1118 01:02:49,670 --> 01:02:51,130 Isso não é uma cidade natal. 1119 01:02:51,130 --> 01:02:53,180 Todos eles tiveram que se mudar para New Haven. 1120 01:02:53,180 --> 01:02:54,030 Aí vamos nós. 1121 01:02:54,030 --> 01:02:57,630 Então, todo mundo em Nova York move-se para New Haven. 1122 01:02:57,630 --> 01:03:01,300 >> E então isso é algo que é editando três registros nesta tabela. 1123 01:03:01,300 --> 01:03:04,716 Mas em SQL, você pode fazer que em apenas um comunicado. 1124 01:03:04,716 --> 01:03:05,715 Então vamos voltar para atualizar. 1125 01:03:05,715 --> 01:03:09,670 Deixe-me rapidamente apagar esta placa novamente. 1126 01:03:09,670 --> 01:03:14,570 Quando estamos falando actualização, existem 1127 01:03:14,570 --> 01:03:17,640 algumas partes da sintaxe que são fundamentais. 1128 01:03:17,640 --> 01:03:19,770 Bem, toda a sintaxe é a chave. 1129 01:03:19,770 --> 01:03:22,210 Mas o material em verde é opcional. 1130 01:03:22,210 --> 01:03:25,680 São obrigados a branco, nomes predefinidos como. 1131 01:03:25,680 --> 01:03:30,750 E a luz azul são coisas que variam de acordo com a tabela. 1132 01:03:30,750 --> 01:03:34,640 Então é isso que está acontecendo com o esquema de cores aqui, lá em cima. 1133 01:03:34,640 --> 01:03:40,250 >> Portanto, se queremos atualizar apenas as linhas das pessoas que vivem em Nova York, 1134 01:03:40,250 --> 01:03:43,490 Então, o que nós faríamos se nós disséssemos atualização? 1135 01:03:43,490 --> 01:03:46,320 Então mesa é onde colocamos o nome da nossa mesa. 1136 01:03:46,320 --> 01:03:49,170 Vamos apenas dizer o nome de nossa mesa é a mesa um. 1137 01:03:49,170 --> 01:03:52,515 Por isso, queremos atualizar a tabela um. 1138 01:03:52,515 --> 01:03:57,470 E nós queremos set-- o que queremos para definir? 1139 01:03:57,470 --> 01:04:05,160 Bem, quero dizer, PHP assim column-- trata linhas como identificadores únicos. 1140 01:04:05,160 --> 01:04:07,930 E, em seguida, são colunas os diferentes campos 1141 01:04:07,930 --> 01:04:09,940 desses elementos do banco de dados. 1142 01:04:09,940 --> 01:04:14,210 >> Assim, o primeiro elemento de base de dados tem um nome de Sam, superpotência do CS50, 1143 01:04:14,210 --> 01:04:16,210 e uma cidade natal de Milwaukee. 1144 01:04:16,210 --> 01:04:20,710 Então, se nós o referido conjunto, vamos olhar para os parâmetros de novo esse conjunto toma. 1145 01:04:20,710 --> 01:04:23,880 Temos coluna é igual ao valor. 1146 01:04:23,880 --> 01:04:27,290 Por isso, queremos dizer que alguns column-- que lembrar 1147 01:04:27,290 --> 01:04:31,850 é um field-- queremos ver uma campo igual a algo novo. 1148 01:04:31,850 --> 01:04:42,340 >> Então, se nós apenas disse atualização tabela 1, definir o nome igual Elliot. 1149 01:04:42,340 --> 01:04:46,310 Obtenha algumas pessoas da nova seção no essa. 1150 01:04:46,310 --> 01:04:51,540 Mas se nós apenas fez uma atualização da tabela definir o nome igual Elliot, o que seria 1151 01:04:51,540 --> 01:04:55,530 o olhar tabela como depois disso? 1152 01:04:55,530 --> 01:04:56,410 As pessoas têm alguma idéia? 1153 01:04:56,410 --> 01:04:59,710 1154 01:04:59,710 --> 01:05:00,210 Sim. 1155 01:05:00,210 --> 01:05:03,195 >> AUDIÊNCIA: Tudo em que linha se tornaria Elliot. 1156 01:05:03,195 --> 01:05:04,570 COLUNA: Tudo em qual linha? 1157 01:05:04,570 --> 01:05:06,067 AUDIÊNCIA: Na primeira linha. 1158 01:05:06,067 --> 01:05:07,150 COLUNA: Na primeira linha? 1159 01:05:07,150 --> 01:05:09,724 Por que a primeira linha? 1160 01:05:09,724 --> 01:05:10,890 Eu não quero pegar em você. 1161 01:05:10,890 --> 01:05:13,287 >> AUDIÊNCIA: Talvez tudo em toda a mesa? 1162 01:05:13,287 --> 01:05:15,120 COLUNA: Tudo em a tabela inteira, sim. 1163 01:05:15,120 --> 01:05:19,520 E isso é exatamente certo Eu porque-- estava apenas te ajudar um pouco 1164 01:05:19,520 --> 01:05:22,650 há-- porque nós omitimos a cláusula opcional WHERE. 1165 01:05:22,650 --> 01:05:27,260 Se você não tem o ONDE cláusula, o que este comando fará 1166 01:05:27,260 --> 01:05:32,240 é que vou trabalhar com cada única linha na tabela. 1167 01:05:32,240 --> 01:05:35,430 O nome de toda a gente tornar Elliott, basicamente, 1168 01:05:35,430 --> 01:05:37,360 Elliot, que é muito feliz. 1169 01:05:37,360 --> 01:05:40,070 Ou Yanni, um dos dois. 1170 01:05:40,070 --> 01:05:42,490 Mas o nome de todo mundo vai mudar. 1171 01:05:42,490 --> 01:05:47,880 >> Então, a maneira como usamos o ONDE clause-- e isso se aplica a todos os wheres 1172 01:05:47,880 --> 01:05:51,410 que estão em cada um dos estas coisas diferentes. 1173 01:05:51,410 --> 01:05:54,380 Então, você vai perceber que SET tem coluna de valor igual. 1174 01:05:54,380 --> 01:05:55,190 E o mesmo acontece com WHERE. 1175 01:05:55,190 --> 01:06:00,040 Mas estes são diferentes tipos de declarações. 1176 01:06:00,040 --> 01:06:04,400 Então, a coluna é igual ao valor em SET está em missão. 1177 01:06:04,400 --> 01:06:08,320 Como estamos dizendo que queremos para definir o nome igual a Elliot. 1178 01:06:08,320 --> 01:06:15,390 Mas nas cláusulas WHERE, estas são declarações de igualdade. 1179 01:06:15,390 --> 01:06:20,410 Então, vamos dizer que só queria alterar o nome da pessoa para Elliot 1180 01:06:20,410 --> 01:06:23,940 se o seu nome era Ryan, vamos dizer. 1181 01:06:23,940 --> 01:06:24,920 >> Assim, quando dizemos 1182 01:06:24,920 --> 01:06:32,700 >> ONDE nome é igual a Ryan, que faria com êxito única mudança 1183 01:06:32,700 --> 01:06:37,440 o nome-- seria apenas alterar o campo de nome nas fileiras 1184 01:06:37,440 --> 01:06:40,770 onde o campo de nome é igual ao Ryan. 1185 01:06:40,770 --> 01:06:44,430 Então, se tivéssemos várias pessoas chamado Ryan, todos os seus nomes 1186 01:06:44,430 --> 01:06:45,730 mudaria para Elliot. 1187 01:06:45,730 --> 01:06:48,169 >> Isto é semelhante ao exemplo se de uma linha de falha divide 1188 01:06:48,169 --> 01:06:50,960 New York City e todo mundo tem que mover-se para New Haven, a maneira que pudermos 1189 01:06:50,960 --> 01:06:56,570 fazer isso em uma instrução é ATUALIZAÇÃO table1 SET cidade natal = New Haven 1190 01:06:56,570 --> 01:07:00,210 onde cidade natal é igual a New York City. 1191 01:07:00,210 --> 01:07:03,410 Este é o poder de a instrução UPDATE. 1192 01:07:03,410 --> 01:07:10,530 Podemos selecionar qualquer número de linhas através de afirmações verdadeiras 1193 01:07:10,530 --> 01:07:12,860 sobre os campos nessas linhas. 1194 01:07:12,860 --> 01:07:19,510 Não podemos dizer set ATUALIZAÇÃO table1 name = Elliot ONDE linha = 1, 1195 01:07:19,510 --> 01:07:24,820 exceto que nós podemos se dissermos ID = 1. 1196 01:07:24,820 --> 01:07:27,350 1197 01:07:27,350 --> 01:07:29,830 >> Então, nós estamos indo para ser trabalhando com igualdade 1198 01:07:29,830 --> 01:07:32,830 de campos, a igualdade de colunas. 1199 01:07:32,830 --> 01:07:38,030 Mas usando o campo ID é uma forma de selecionar linhas individuais, especificamente, 1200 01:07:38,030 --> 01:07:43,210 porque o campo ID é um exclusivo identificador em um banco de dados SQL. 1201 01:07:43,210 --> 01:07:45,860 Assim como atualizar uma linha, ID é igual a 1. 1202 01:07:45,860 --> 01:07:49,560 Atualizando linha dois, apenas mudar esse número de identificação. 1203 01:07:49,560 --> 01:07:51,610 Mas o poder do WHERE é que nós 1204 01:07:51,610 --> 01:07:57,480 pode atualizar as coisas com base no que o seu valores atuais de certas coisas são. 1205 01:07:57,480 --> 01:07:58,155 Sim Elliot? 1206 01:07:58,155 --> 01:08:02,678 >> AUDIÊNCIA: E se você quiser a-- novamente, isso é outra questão. 1207 01:08:02,678 --> 01:08:07,660 Mas a minha primeira pergunta foi: onde isso está acontecendo? 1208 01:08:07,660 --> 01:08:09,130 Onde estou atualizando esta? 1209 01:08:09,130 --> 01:08:11,100 É este um código PHP? 1210 01:08:11,100 --> 01:08:13,379 >> COLUNA: Onde você atualizar, sim. 1211 01:08:13,379 --> 01:08:15,170 Nós estamos indo falar sobre onde tudo isso 1212 01:08:15,170 --> 01:08:18,729 acontece espécie de uma vez vamos em todos os comandos. 1213 01:08:18,729 --> 01:08:21,130 Mas o que você precisa sabemos agora é, basicamente, 1214 01:08:21,130 --> 01:08:26,279 que seu banco de dados SQL existe como algo 1215 01:08:26,279 --> 01:08:30,090 para ser acessado pela consulta função, que define CS50. 1216 01:08:30,090 --> 01:08:33,800 Portanto, se você usar a função de consulta, você pode acessar esta tabela. 1217 01:08:33,800 --> 01:08:39,529 >> Então você estará enviando estes comandos para sua mesa em arquivos PHP 1218 01:08:39,529 --> 01:08:41,420 através da função de consulta. 1219 01:08:41,420 --> 01:08:45,410 Você também pode brincar com sua tabela diretamente. 1220 01:08:45,410 --> 01:08:49,050 E essa é a melhor maneira de testar estes tipos de comandos. 1221 01:08:49,050 --> 01:08:52,720 E nós vamos passar por exatamente como fazer isso em apenas um pouco. 1222 01:08:52,720 --> 01:08:54,910 >> Então, isso é o comando UPDATE. 1223 01:08:54,910 --> 01:08:57,939 E o resto dos comandos vai ser uma espécie de semelhante, 1224 01:08:57,939 --> 01:08:59,069 trabalhando em coisas semelhantes. 1225 01:08:59,069 --> 01:09:02,740 O INSERT INTO é, provavelmente, o mais diferente de UPDATE. 1226 01:09:02,740 --> 01:09:06,170 Vou deixar isso para lá apenas um pouco e trabalhar aqui. 1227 01:09:06,170 --> 01:09:10,215 Então INSERT INTO, você verá ainda que a tabela é o mesmo. 1228 01:09:10,215 --> 01:09:17,010 Você deseja inserir. 1229 01:09:17,010 --> 01:09:20,286 A capitalização, SQL é caso insensível. 1230 01:09:20,286 --> 01:09:22,160 Então você não tem que capitalizar essas coisas. 1231 01:09:22,160 --> 01:09:27,960 Por convenção, as palavras em branco são capitalizados. 1232 01:09:27,960 --> 01:09:31,590 Mas eu também codificados por cores deles. 1233 01:09:31,590 --> 01:09:34,390 A única razão que você capitalizar aqueles quando você está digitando- 1234 01:09:34,390 --> 01:09:36,609 é apenas para enfatizar aqueles que são constantes. 1235 01:09:36,609 --> 01:09:39,189 E assim que você pode olhar para a capitalização ou o fato de 1236 01:09:39,189 --> 01:09:40,740 que Eu colori-los de forma diferente. 1237 01:09:40,740 --> 01:09:44,910 >> Então temos INSERT INTO, vamos fazer table1 novamente. 1238 01:09:44,910 --> 01:09:45,930 Isto é tudo em uma linha. 1239 01:09:45,930 --> 01:09:48,609 Eu só estou separando-o por as diferentes declarações. 1240 01:09:48,609 --> 01:09:52,399 Então não se preocupe com o fato de que table1 foi parar na segunda linha. 1241 01:09:52,399 --> 01:09:56,130 >> Então, nós queremos fazer um INSERT INTO Table1 alguns valores. 1242 01:09:56,130 --> 01:09:58,922 E você vai notar a opcional bit, o que eu vou chegar em um segundo. 1243 01:09:58,922 --> 01:09:59,755 Então temos VALUES. 1244 01:09:59,755 --> 01:10:03,640 1245 01:10:03,640 --> 01:10:08,100 >> Então, digamos que queremos adicionar Andi para a nossa mesa, porque perdemos Andi. 1246 01:10:08,100 --> 01:10:09,390 Andi está doente. 1247 01:10:09,390 --> 01:10:12,490 Então, vamos adicionar Andi para a nossa mesa. 1248 01:10:12,490 --> 01:10:15,150 Lembre-se que o número de identificação é atualizado automaticamente. 1249 01:10:15,150 --> 01:10:17,320 Então, os únicos campos nós precisa se preocupar com 1250 01:10:17,320 --> 01:10:20,230 são nome, superpotência, e cidade natal. 1251 01:10:20,230 --> 01:10:23,660 >> E assim, a maneira que nós fazemos que, olhando para a nossa sintaxe, é que nós temos 1252 01:10:23,660 --> 01:10:28,780 só tenho um parênteses, com vírgula valores separados, cada um dos quais 1253 01:10:28,780 --> 01:10:29,890 é um valor. 1254 01:10:29,890 --> 01:10:35,530 Então, se nós queria inserir Andi em nossa mesa, tudo o que temos a fazer é Andi direita. 1255 01:10:35,530 --> 01:10:38,630 O que há de superpotência da Andi, pessoas na seção de Andi? 1256 01:10:38,630 --> 01:10:45,406 1257 01:10:45,406 --> 01:10:47,545 Ela gosta de voo, ou gosta velocidade, ou algo assim. 1258 01:10:47,545 --> 01:10:48,920 O que já temos lá em cima? 1259 01:10:48,920 --> 01:10:53,425 Temos CS50, vôo, velocidade e força. 1260 01:10:53,425 --> 01:10:54,850 >> AUDIÊNCIA: A viagem no tempo. 1261 01:10:54,850 --> 01:10:56,180 >> SPEAKER: A viagem no tempo, incrível. 1262 01:10:56,180 --> 01:11:04,280 Então temos Andi, tempo viagens, e sua cidade natal. 1263 01:11:04,280 --> 01:11:05,530 Essa é uma pergunta muito boa. 1264 01:11:05,530 --> 01:11:09,210 New York City, a menos que alguém sabe. 1265 01:11:09,210 --> 01:11:13,600 Todo mundo é de Nova York é o lição a tirar de hoje. 1266 01:11:13,600 --> 01:11:17,710 >> Portanto, esta declaração seria inserir, como uma quinta linha, 1267 01:11:17,710 --> 01:11:21,900 com o tempo de viagem superpotência e uma cidade natal de New York City. 1268 01:11:21,900 --> 01:11:25,660 Mas o campo opcional é basicamente uma maneira 1269 01:11:25,660 --> 01:11:30,090 para especificar exatamente quais colunas você quer inserir as coisas em. 1270 01:11:30,090 --> 01:11:33,710 >> A maneira que nós estamos fazendo isso agora, Andi, curso do tempo, New York City, 1271 01:11:33,710 --> 01:11:38,150 vai na ordem exata de nosso nome mesa--, superpotência, cidade natal. 1272 01:11:38,150 --> 01:11:42,290 E se você queria fazer algo diferente do que isso, 1273 01:11:42,290 --> 01:11:44,970 como dizer que você não sabia superpotência de alguém, 1274 01:11:44,970 --> 01:11:47,660 como como eu não sabia de Andi superpotência no início. 1275 01:11:47,660 --> 01:11:50,450 Então tudo que eu sabia era seu nome e sua cidade natal. 1276 01:11:50,450 --> 01:11:54,550 O que eu poderia fazer é que pude fazer-- eu vou apagar isso rápido. 1277 01:11:54,550 --> 01:11:57,910 1278 01:11:57,910 --> 01:12:00,090 >> Eu quero atualizar somente as colunas. 1279 01:12:00,090 --> 01:12:04,100 E é aí que o opcional lista coluna entra em jogo. 1280 01:12:04,100 --> 01:12:09,185 Eu só quero atualizar nome e cidade natal. 1281 01:12:09,185 --> 01:12:12,650 1282 01:12:12,650 --> 01:12:16,480 E então eu vou dizer VALUES. 1283 01:12:16,480 --> 01:12:24,430 Eu vou fazer Andi e New York City. 1284 01:12:24,430 --> 01:12:28,980 >> Se eu tivesse omitido da lista de colunas e acabou de fazer essas duas coisas, 1285 01:12:28,980 --> 01:12:32,450 onde iria New York City ter ido? 1286 01:12:32,450 --> 01:12:35,900 A coluna que faria New York Cidade foram colocados em? 1287 01:12:35,900 --> 01:12:38,950 As pessoas têm alguma idéia? 1288 01:12:38,950 --> 01:12:40,160 Superpotência, exatamente. 1289 01:12:40,160 --> 01:12:41,890 >> Então, isso vai apenas ir em ordem. 1290 01:12:41,890 --> 01:12:45,530 E uma vez que atinge o fim do lista, ele só vai parar de encher as coisas em. 1291 01:12:45,530 --> 01:12:49,080 E os valores que ele vai ficar em todas as colunas só vai ser NULL. 1292 01:12:49,080 --> 01:12:51,840 Então porque nós especificamos nome e cidade natal, 1293 01:12:51,840 --> 01:12:56,110 nós vamos ter ID 5, nomear Andi, superpotência NULL. 1294 01:12:56,110 --> 01:12:58,750 Então superpotência é um valor não inicializado. 1295 01:12:58,750 --> 01:13:01,340 Você não vai necessariamente chegar a Valgrind mesmos erros se você tentar 1296 01:13:01,340 --> 01:13:01,970 e acessá-lo. 1297 01:13:01,970 --> 01:13:05,160 Tudo vai ser muito bem zerado fora, porque NULL é um valor em SQL. 1298 01:13:05,160 --> 01:13:06,780 Isso é uma constante. 1299 01:13:06,780 --> 01:13:08,980 E, em seguida, cidade natal será New York City. 1300 01:13:08,980 --> 01:13:11,860 Então esse é o comando INSERT INTO. 1301 01:13:11,860 --> 01:13:13,610 Antes de passarmos, há mais dois comandos. 1302 01:13:13,610 --> 01:13:19,060 As pessoas tem dúvidas sobre UPDATE, sobre INSERT INTO, cerca de SQL 1303 01:13:19,060 --> 01:13:21,556 geralmente antes de avançarmos para os nossos pedaços finais? 1304 01:13:21,556 --> 01:13:25,500 1305 01:13:25,500 --> 01:13:26,910 As pessoas se sentem bem, ótimo. 1306 01:13:26,910 --> 01:13:27,410 Adoro. 1307 01:13:27,410 --> 01:13:29,480 Então vamos falar sobre SELECT. 1308 01:13:29,480 --> 01:13:33,445 Indo vala ATUALIZAÇÃO aqui. 1309 01:13:33,445 --> 01:13:35,720 >> E escolha vai ser muito semelhante. 1310 01:13:35,720 --> 01:13:38,790 O objetivo do SELECT, O propósito de SELECT na vida 1311 01:13:38,790 --> 01:13:45,910 é dar-lhe um monte de colunas que satisfaçam determinadas condições. 1312 01:13:45,910 --> 01:13:48,230 E quando eu digo satisfazer certas condições, 1313 01:13:48,230 --> 01:13:50,800 sua mente pode imediatamente voltar para aquela cláusula WHERE 1314 01:13:50,800 --> 01:13:52,090 que surgiu em UPDATE. 1315 01:13:52,090 --> 01:13:54,880 E essa cláusula é exatamente lá em SELECT. 1316 01:13:54,880 --> 01:14:06,020 >> Se não colocar o ONDE cláusula e dizemos SELECT nome, 1317 01:14:06,020 --> 01:14:16,490 hometown-- escrito que um pouco wrong-- nome, cidade natal FROM table1. 1318 01:14:16,490 --> 01:14:19,690 Se nós apenas dizer que, o que SELECIONE vai nos dar é que é 1319 01:14:19,690 --> 01:14:23,730 vai dar-nos uma double-- uma mesa, em vez. 1320 01:14:23,730 --> 01:14:27,450 Uma matriz dupla se estamos pensando em PHP sentidos. 1321 01:14:27,450 --> 01:14:33,239 Mas ele só vai dar-nos uma duplo conjunto de duas nome columns--, 1322 01:14:33,239 --> 01:14:33,780 e cidade natal. 1323 01:14:33,780 --> 01:14:36,400 1324 01:14:36,400 --> 01:14:38,130 E ele irá ignorar ID. 1325 01:14:38,130 --> 01:14:41,310 E ele irá ignorar superpotência. 1326 01:14:41,310 --> 01:14:44,696 E vai apenas dar-nos cada única linha do referido quadro. 1327 01:14:44,696 --> 01:14:46,570 Então, se nós apenas inserido Andi, teremos Andi. 1328 01:14:46,570 --> 01:14:48,605 E nós vamos ter o original quatro. 1329 01:14:48,605 --> 01:14:53,720 Se eles já foram atualizado, que irá ser refletida, et cetera, et cetera. 1330 01:14:53,720 --> 01:14:56,520 >> Portanto, este é porque nós não utilizar a cláusula WHERE. 1331 01:14:56,520 --> 01:14:59,200 Mas podemos usá-lo exatamente da mesma maneira que usamos em UPDATE. 1332 01:14:59,200 --> 01:15:05,310 Se nós só queremos uma tabela dos nomes e super poderes de pessoas vivendo 1333 01:15:05,310 --> 01:15:13,430 em Nova York, podemos executar uma instrução como SELECT nome, superpower-- 1334 01:15:13,430 --> 01:15:27,190 Eu só vou deixar isso-- DE table1 ONDE cidade natal = New York City. 1335 01:15:27,190 --> 01:15:33,370 >> Então, isso vai mostrar que você pode ficar totalmente diferentes colunas, 1336 01:15:33,370 --> 01:15:36,920 e em seguida, colocar as colunas que você não está mesmo ficando para trás na cláusula WHERE. 1337 01:15:36,920 --> 01:15:39,200 Nós não querem mesmo o cidade natal de todos. 1338 01:15:39,200 --> 01:15:41,920 Mas queremos que o nome e a superpotência de pessoas 1339 01:15:41,920 --> 01:15:43,817 cuja cidade natal é Nova York. 1340 01:15:43,817 --> 01:15:45,650 Então, isso é algo que nós pode fazer com o ONDE 1341 01:15:45,650 --> 01:15:49,112 cláusula é que podemos lidar com colunas que não necessariamente querem de volta. 1342 01:15:49,112 --> 01:15:52,320 Da mesma forma como UPDATE, nós podemos lidar com colunas que nós não necessariamente 1343 01:15:52,320 --> 01:15:53,270 deseja atualizar. 1344 01:15:53,270 --> 01:15:58,890 Podemos atualizar a cidade de todos que o nome é Sam, por exemplo. 1345 01:15:58,890 --> 01:16:02,080 Podemos atualizar a cidade de todo aquele cujo número de ID é 2. 1346 01:16:02,080 --> 01:16:04,960 Então, basta atualizar o cidade da segunda linha 1347 01:16:04,960 --> 01:16:08,220 onde não temos de lidar com necessária a pergunta comum. 1348 01:16:08,220 --> 01:16:13,264 >> E excluir é, como seria de esperar, DELETE FROM table1. 1349 01:16:13,264 --> 01:16:14,930 E então nós temos outra cláusula WHERE. 1350 01:16:14,930 --> 01:16:17,940 Assim, podemos dizer WHERE ID = 1. 1351 01:16:17,940 --> 01:16:18,950 Excluir a primeira linha. 1352 01:16:18,950 --> 01:16:23,240 E DELETE será sempre excluir uma linha, ou ele vai excluir algum número de linhas. 1353 01:16:23,240 --> 01:16:26,990 DELETE FROM tabela WHERE cidade natal = New York City 1354 01:16:26,990 --> 01:16:28,740 irá apagar todos em New York City. 1355 01:16:28,740 --> 01:16:30,985 Isto é, se houve uma praga trágico súbita 1356 01:16:30,985 --> 01:16:33,360 e você só queria remover todos da mesa que 1357 01:16:33,360 --> 01:16:35,760 viveu em uma determinada cidade que foi atingido por uma praga. 1358 01:16:35,760 --> 01:16:38,050 Que eles possam descansar em paz. 1359 01:16:38,050 --> 01:16:43,849 >> Estes são os quatro comandos SQL que você vai precisar usar. 1360 01:16:43,849 --> 01:16:45,390 Você pode até não precisar usá-los todos. 1361 01:16:45,390 --> 01:16:47,690 Mas estes são os quatro CS50 que você espera 1362 01:16:47,690 --> 01:16:53,630 para ser confortável com entrar em tanto questionário 1 e também pset7 e pset8. 1363 01:16:53,630 --> 01:16:55,820 >> Há apenas que a tabela novamente. 1364 01:16:55,820 --> 01:16:58,930 Neste, superpotência de Roy tem foi atualizado para feixes de laser, que 1365 01:16:58,930 --> 01:17:00,880 é um exemplo que eu não uso. 1366 01:17:00,880 --> 01:17:05,480 Eu não sei qual deles Roy prefere, mas força. 1367 01:17:05,480 --> 01:17:07,670 Roy tem uma superpotência de força. 1368 01:17:07,670 --> 01:17:09,090 Katherine não fazê-lo hoje. 1369 01:17:09,090 --> 01:17:10,260 Isso é lamentável. 1370 01:17:10,260 --> 01:17:11,260 Mas ela tem super-velocidade. 1371 01:17:11,260 --> 01:17:13,780 1372 01:17:13,780 --> 01:17:14,670 >> Bem que foi PHP. 1373 01:17:14,670 --> 01:17:19,410 Antes de falarmos sobre MVC, faz Alguém tem dúvidas sobre PHP? 1374 01:17:19,410 --> 01:17:23,864 Agora SQL, PHP ou se de repente você tem chegar a uma pergunta sobre PHP? 1375 01:17:23,864 --> 01:17:27,560 1376 01:17:27,560 --> 01:17:28,460 Ótimo. 1377 01:17:28,460 --> 01:17:29,920 Tudo bem, nós está tudo definido em seguida. 1378 01:17:29,920 --> 01:17:33,660 >> Então, falando um pouco cerca de vista modelo controladores, 1379 01:17:33,660 --> 01:17:38,770 vamos voltar a alguns do material em pset7. 1380 01:17:38,770 --> 01:17:42,470 Então, o que vista de modelo controlador é-- eu não sou 1381 01:17:42,470 --> 01:17:45,660 indo para salvar as minhas alterações para acessar porque eu totalmente massacrados-lo. 1382 01:17:45,660 --> 01:17:49,220 Mas, basicamente, temos dois coisas separadas acontecendo. 1383 01:17:49,220 --> 01:17:52,390 Temos um público diretório que contém 1384 01:17:52,390 --> 01:17:56,460 o código que vai ser executado e as páginas da web que serão visitados. 1385 01:17:56,460 --> 01:17:58,780 E também temos este diretório visualizações. 1386 01:17:58,780 --> 01:18:01,780 E vistas contém modelos. 1387 01:18:01,780 --> 01:18:04,390 >> Isto é o que a função render-- vimos a renda 1388 01:18:04,390 --> 01:18:08,240 função em um monte de código PHP CS50 que já escreveu para você, 1389 01:18:08,240 --> 01:18:10,550 que leva em certos parâmetros. 1390 01:18:10,550 --> 01:18:14,510 O que esse código está fazendo é que vai em vista, 1391 01:18:14,510 --> 01:18:18,000 que são conjuntos de como código HTML pré-escrita, 1392 01:18:18,000 --> 01:18:20,720 e é a inserção de valores em determinados lugares. 1393 01:18:20,720 --> 01:18:23,990 Isto é como quando você entrar em CS50 Finanças, 1394 01:18:23,990 --> 01:18:25,760 o mesmo cabeçalho é em cada página. 1395 01:18:25,760 --> 01:18:28,130 O mesmo é rodapé em cada página. 1396 01:18:28,130 --> 01:18:31,880 Isto é porque a maneira que é tornar os trabalhos ele vai 1397 01:18:31,880 --> 01:18:36,720 corrigir automaticamente nesse cabeçalho e telespectador que você pode encontrar em vista. 1398 01:18:36,720 --> 01:18:41,400 >> Nós, na verdade, pode entrar em cabeçalho, e olhe, é um arquivo HTML com uma cabeça. 1399 01:18:41,400 --> 01:18:43,280 Tem algumas folhas de estilo. 1400 01:18:43,280 --> 01:18:48,450 Você não precisa olhar para CSS para pset7 se você não quer. 1401 01:18:48,450 --> 01:18:50,560 Mas você pode modificar -los se quiser, fazer 1402 01:18:50,560 --> 01:18:53,470 seu Finanças olhar um pouco diferente. 1403 01:18:53,470 --> 01:18:57,560 >> Tem alguns PHP em o cabeçalho um pouco para ver 1404 01:18:57,560 --> 01:19:01,240 se houver um título diferente ele deve colocar neste cabeçalho. 1405 01:19:01,240 --> 01:19:04,300 Mas apenas alguns outros scripts, e links, e outras coisas. 1406 01:19:04,300 --> 01:19:08,700 Cabeça termina, corpo começa, e oops, temos este estranho pouco efeito. 1407 01:19:08,700 --> 01:19:14,730 E há uma div, assim como uma espécie sem forma de elemento 1408 01:19:14,730 --> 01:19:17,120 que tem uma idéia do meio. 1409 01:19:17,120 --> 01:19:22,450 >> E então quando vemos rodapé, temos o fim de uma div. 1410 01:19:22,450 --> 01:19:25,000 Temos um fundo, que é onde o texto do rodapé é. 1411 01:19:25,000 --> 01:19:26,770 Fim da div, fim do corpo, fim do HTML. 1412 01:19:26,770 --> 01:19:29,070 >> Então, o que é renda fazendo é tornar é uma espécie 1413 01:19:29,070 --> 01:19:33,150 de remendar cabeçalho, um diferente arquivo PHP que 1414 01:19:33,150 --> 01:19:37,110 conterá as coisas que reais você vai ver, como o quadro dos saldos 1415 01:19:37,110 --> 01:19:39,690 se você está comprando ou vendendo ações. 1416 01:19:39,690 --> 01:19:41,480 E então ele vai adicionar no rodapé. 1417 01:19:41,480 --> 01:19:44,890 E a vista do modelo controlador idéia é que nós 1418 01:19:44,890 --> 01:19:49,590 quer separar como as coisas parecem partir do código. 1419 01:19:49,590 --> 01:19:53,420 É queremos separar o frontend e se o servidor, onde o frontend é 1420 01:19:53,420 --> 01:20:00,440 as coisas que o usuário vê, o Nice visuals-- HTML, CSS, coisas assim, 1421 01:20:00,440 --> 01:20:02,320 imagens, et cetera. 1422 01:20:02,320 --> 01:20:05,780 E o backend é PHP. 1423 01:20:05,780 --> 01:20:07,710 Este é o código que você escreve. 1424 01:20:07,710 --> 01:20:10,240 Este é o lugar onde o código é fazendo operações reais. 1425 01:20:10,240 --> 01:20:12,400 Isto é, quando você está adicionando um estoque para sua mesa, 1426 01:20:12,400 --> 01:20:14,890 quando você está comprando e venda, que é backend. 1427 01:20:14,890 --> 01:20:20,210 >> E podemos, como você viu, incluindo PHP diretamente em HTML. 1428 01:20:20,210 --> 01:20:23,210 Então, o que nós poderíamos ter feito para esta atribuição é apenas teve 1429 01:20:23,210 --> 01:20:26,200 um arquivo HTML para cada página, como login. 1430 01:20:26,200 --> 01:20:30,260 E então nessa página, basta teve um enorme bloco de código PHP, 1431 01:20:30,260 --> 01:20:33,822 incluindo todos os de que o código essa página especificamente seria necessário. 1432 01:20:33,822 --> 01:20:35,780 E então nós poderíamos ter feito isso para a carteira. 1433 01:20:35,780 --> 01:20:40,250 Poderíamos ter feito todas as compras e vender dentro das páginas individuais. 1434 01:20:40,250 --> 01:20:43,680 >> Mas porque estamos renderização separadamente, a partir de onde 1435 01:20:43,680 --> 01:20:46,660 estamos escrevendo o backend código, podemos facilmente 1436 01:20:46,660 --> 01:20:52,660 mudar a forma como as coisas parecem sem mudando a cada arquivo único. 1437 01:20:52,660 --> 01:20:55,460 Nós fazemos coisas como basta adicionar uma nova div ao fundo 1438 01:20:55,460 --> 01:21:00,720 de-- Olá eu modifiquei o rodapé. 1439 01:21:00,720 --> 01:21:03,710 Você pode apenas fazer coisas assim. 1440 01:21:03,710 --> 01:21:07,250 Mas também, você pode mudar todo o layout visual 1441 01:21:07,250 --> 01:21:09,290 sem afetar o que é indo no backend. 1442 01:21:09,290 --> 01:21:12,000 E você pode mudar a backend inteiro e ainda 1443 01:21:12,000 --> 01:21:13,900 tê-lo olhar apenas como fazia antes. 1444 01:21:13,900 --> 01:21:14,400 este 1445 01:21:14,400 --> 01:21:16,170 >> É a idéia de controlador de vista do modelo. 1446 01:21:16,170 --> 01:21:19,992 E é realmente um paradigma imposto em algumas das linguagens de programação 1447 01:21:19,992 --> 01:21:21,700 você pode querer usar para projetos finais. 1448 01:21:21,700 --> 01:21:25,100 Se você fizer o desenvolvimento iOS, eles têm pontos de vista, 1449 01:21:25,100 --> 01:21:29,120 que é o que você vê no iPhone, e então o servidor quanto como uma coisa separada. 1450 01:21:29,120 --> 01:21:31,260 >> Você pode pensar sobre um pouco. 1451 01:21:31,260 --> 01:21:35,190 Há um monte de binários em ciência da computação, que é engraçado, 1452 01:21:35,190 --> 01:21:37,270 porque tudo é em binário. 1453 01:21:37,270 --> 01:21:38,550 Eu não planejei isso. 1454 01:21:38,550 --> 01:21:41,590 Isso foi um trocadilho não intencional. 1455 01:21:41,590 --> 01:21:43,860 Sim, não trocadilhos. 1456 01:21:43,860 --> 01:21:49,070 >> Mas, como arquivos .h e arquivos .c, há uma grande quantidade de separação das coisas que nós 1457 01:21:49,070 --> 01:21:49,900 talvez não seja necessário. 1458 01:21:49,900 --> 01:21:54,330 Assim, podemos apenas editar os arquivos h, ou alguém pode apenas ver um ficheiro.h e saber 1459 01:21:54,330 --> 01:21:57,650 exactamente as funções que estão no C arquivo sem necessariamente saber 1460 01:21:57,650 --> 01:21:58,870 sua implementação. 1461 01:21:58,870 --> 01:22:02,800 Essa idéia de componentes de separação que dependem uns dos outros 1462 01:22:02,800 --> 01:22:06,990 mas pode classificar de acessar um ao outro através de diferentes canais, passagem 1463 01:22:06,990 --> 01:22:09,310 de variáveis, apenas incluem declarações, coisas 1464 01:22:09,310 --> 01:22:14,440 assim, este princípio ajuda a criar aplicações 1465 01:22:14,440 --> 01:22:17,080 que pode ser mais facilmente editado por várias pessoas, 1466 01:22:17,080 --> 01:22:20,440 pode ser mais facilmente alterado ou alterações em grande escala, 1467 01:22:20,440 --> 01:22:24,880 e são mais fáceis de depurar em uma série de maneiras. 1468 01:22:24,880 --> 01:22:28,254 >> Muito rápido, eu tenho algumas dicas para pset7, 1469 01:22:28,254 --> 01:22:31,420 que eu vou fazer tela cheia para que você não apenas olhando para as-- tippee ponta ponta. 1470 01:22:31,420 --> 01:22:33,964 1471 01:22:33,964 --> 01:22:35,130 Não há que muitas dicas. 1472 01:22:35,130 --> 01:22:38,060 >> Mas eu mencionei PHP é difícil de depurar. 1473 01:22:38,060 --> 01:22:39,290 Duplos e triplos verificá-lo. 1474 01:22:39,290 --> 01:22:41,550 Se o seu código não é apenas aparecendo na página, 1475 01:22:41,550 --> 01:22:46,240 é provavelmente um erro de PHP, desculpe. 1476 01:22:46,240 --> 01:22:48,570 >> Você nunca precisa de olhar para CSS se você não quiser. 1477 01:22:48,570 --> 01:22:52,150 Mas uma vez que você está acabado, pode ser uma boa coisa pouco de diversão para simplesmente entrar 1478 01:22:52,150 --> 01:22:54,770 e mexer com os parâmetros CSS. 1479 01:22:54,770 --> 01:22:58,700 CSS e HTML são um exemplo de um modelo coisa vista controlador de estilo também, certo? 1480 01:22:58,700 --> 01:23:02,150 Você poderia ter marcas de estilo no interior de elementos HTML. 1481 01:23:02,150 --> 01:23:04,800 Mas se você tipo de terceirização-los a CSS, 1482 01:23:04,800 --> 01:23:08,180 eles são mais fáceis de editar, and play com a volta, e se divertir com. 1483 01:23:08,180 --> 01:23:10,816 >> Trate CS50 helper funciona como caixas pretas. 1484 01:23:10,816 --> 01:23:12,940 Você não precisa saber exatamente o que está fazendo renda, 1485 01:23:12,940 --> 01:23:16,770 mas confiar nele para sempre fazer o bem coisa dependendo do que você passá-lo, 1486 01:23:16,770 --> 01:23:17,690 coisas como esta. 1487 01:23:17,690 --> 01:23:21,040 E eu recomendaria acompanhando passo a passo de Davi, 1488 01:23:21,040 --> 01:23:24,490 passar por todos os material, não apenas os todos, 1489 01:23:24,490 --> 01:23:26,960 mas você realmente pode tratar essas caixas como preto. 1490 01:23:26,960 --> 01:23:29,280 Não vá para estes funções de procura de bugs. 1491 01:23:29,280 --> 01:23:33,510 >> E saudar o retorno de nosso overlord Zamyla. 1492 01:23:33,510 --> 01:23:34,010 Ótimo. 1493 01:23:34,010 --> 01:23:40,430 >> Há alguma pergunta finais antes que tipo de saltar para o dia? 1494 01:23:40,430 --> 01:23:42,610 Eu ainda estou vivo? 1495 01:23:42,610 --> 01:23:44,700 Ótimo. 1496 01:23:44,700 --> 01:23:47,120 Pessoas LiveStream Oi. 1497 01:23:47,120 --> 01:23:47,620 Ótimo. 1498 01:23:47,620 --> 01:23:50,260 Há mais perguntas? 1499 01:23:50,260 --> 01:23:50,760 Não? 1500 01:23:50,760 --> 01:23:52,884 >> E então eu acho que nós somos bom para ir para hoje. 1501 01:23:52,884 --> 01:23:55,550 Vou ficar por aqui um pouco depois, se as pessoas tinham dúvidas 1502 01:23:55,550 --> 01:23:57,480 eles tinham medo de perguntar sobre o córrego. 1503 01:23:57,480 --> 01:23:59,790 Mas, caso contrário, tenha um bom dia. 1504 01:23:59,790 --> 01:24:01,933