1 00:00:00,000 --> 00:00:10,393 >> [Música tocando] 2 00:00:10,393 --> 00:00:11,037 3 00:00:11,037 --> 00:00:12,120 DAVID J. Malan: Todo ben. 4 00:00:12,120 --> 00:00:12,830 Benvido de volta. 5 00:00:12,830 --> 00:00:13,890 Este é CS50. 6 00:00:13,890 --> 00:00:15,570 Este é o final da semana 8. 7 00:00:15,570 --> 00:00:18,360 E como vostede sabe, temos moi horario normal de oficina nalgúns 8 00:00:18,360 --> 00:00:21,090 dos comedores, incluíndo Annenberg. 9 00:00:21,090 --> 00:00:23,860 E algúns membros do equipo xentilmente tirou algunhas fotos recentemente. 10 00:00:23,860 --> 00:00:26,230 E en honor de Día das meiga, pensamos 11 00:00:26,230 --> 00:00:30,160 compartir xa que nos colleu de sorpresa aquí no Salón Annenberg só 12 00:00:30,160 --> 00:00:31,490 a outra noite. 13 00:00:31,490 --> 00:00:36,300 O seu compañeiro Jacob pousou para esa foto, pero era máis divertido 14 00:00:36,300 --> 00:00:39,760 estaba en Facebook, a que se seguiu conversa que pasou despois. 15 00:00:39,760 --> 00:00:43,020 >> O seu primeiro post en resposta a súa foto foi esta. 16 00:00:43,020 --> 00:00:46,740 Poucos minutos despois, el decidiu para un up-se con iso. 17 00:00:46,740 --> 00:00:53,800 Ela pasou entón a ir a este, e logo, aínda máis divertidamente 18 00:00:53,800 --> 00:00:55,320 é cando a súa nai entrou na conversa. 19 00:00:55,320 --> 00:00:59,240 20 00:00:59,240 --> 00:01:01,800 E, a continuación, en definitiva, parece que este foi só 21 00:01:01,800 --> 00:01:04,860 un artificio marabilloso para un xogar o que está pasando. 22 00:01:04,860 --> 00:01:07,080 >> Entón, se quere para ver Jacob e outros, 23 00:01:07,080 --> 00:01:10,880 entre eles Cynthia Menger, que é nos bastidores do equipo zona CS50, 24 00:01:10,880 --> 00:01:13,970 ir a este URL e este xogo aquí. 25 00:01:13,970 --> 00:01:18,810 Así, sen máis delongas, hoxe nós seguir este ollo programación web, 26 00:01:18,810 --> 00:01:21,810 e creación real de programas que non funcionan na súa liña de ordes, 27 00:01:21,810 --> 00:01:24,080 pero en vez executado dentro dun navegador. 28 00:01:24,080 --> 00:01:26,320 >> Presuntamente, agora, é moi En breve, vai 29 00:01:26,320 --> 00:01:30,200 estar no medio de implantación seu propio servidor web, o que 30 00:01:30,200 --> 00:01:31,700 é diferente de programación web. 31 00:01:31,700 --> 00:01:36,210 O servidor web en pset6 ten todo a ver software que sabe escribir como tomar 32 00:01:36,210 --> 00:01:39,300 Solicitudes HTTP dun navegador, ou mesmo de ti, un ser humano, 33 00:01:39,300 --> 00:01:42,340 cun programa chamado Telnet, e logo responder a esas peticións ou 34 00:01:42,340 --> 00:01:48,600 por cuspir un ficheiro HTML, ou un jpeg, gif ou un, ou un ficheiro .PHP. 35 00:01:48,600 --> 00:01:52,490 >> Pero con un servidor web, non é suposto pode abrir un ficheiro PHP, 36 00:01:52,490 --> 00:01:55,260 algo que termina .PHP, e entón cuspir o contido. 37 00:01:55,260 --> 00:01:58,440 É suposto facer o que o ficheiro por primeira vez? 38 00:01:58,440 --> 00:01:59,390 Por así dicir. 39 00:01:59,390 --> 00:02:04,060 Non recompila-lo, dixemos o luns, pero rather-- Entón, interpretala. 40 00:02:04,060 --> 00:02:08,070 >> PHP é unha linguaxe interpretada, e así por unha das características clave na súa web 41 00:02:08,070 --> 00:02:11,550 servidor, aínda aplicado por nós, É esa capacidade de seu servidor web 42 00:02:11,550 --> 00:02:12,490 notar, oh. 43 00:02:12,490 --> 00:02:14,580 Este é un arquivo que remata en .PHP. 44 00:02:14,580 --> 00:02:17,970 Deixe-me só envialo ao usuario como se fose contido estático, 45 00:02:17,970 --> 00:02:20,970 pero déixeme lelo liña por liña, de esquerda a dereita, e interpretala lo. 46 00:02:20,970 --> 00:02:23,030 >> E para facer, que caras van esencialmente 47 00:02:23,030 --> 00:02:26,520 chutar a un programa no dispositivo, e en unha morea de sistemas de ordenador, 48 00:02:26,520 --> 00:02:27,500 chamado só PHP. 49 00:02:27,500 --> 00:02:30,579 Ese é o nome PHP o propio intérprete de linguaxe. 50 00:02:30,579 --> 00:02:33,120 Entón, que peza imos aplicar a ti, eo que queda para ti, 51 00:02:33,120 --> 00:02:35,240 en última instancia, é unha serie de pezas, entre as que 52 00:02:35,240 --> 00:02:37,960 está implementando soporte para contido estático. 53 00:02:37,960 --> 00:02:40,180 >> Pero agora, e con conxunto de problemas de sete, que é 54 00:02:40,180 --> 00:02:43,660 comezará a transición realmente escribir o código PHP 55 00:02:43,660 --> 00:02:45,970 que é interpretado en falar con un back-end 56 00:02:45,970 --> 00:02:47,960 base de datos que almacena información. 57 00:02:47,960 --> 00:02:51,020 Entón, imos entender mellor primeiro un par destes superglobals 58 00:02:51,020 --> 00:02:53,720 e canto poder ten saír da caixa de balde 59 00:02:53,720 --> 00:02:55,250 cunha linguaxe como PHP. 60 00:02:55,250 --> 00:02:57,350 Cousas que non ten aplicar-se. 61 00:02:57,350 --> 00:03:01,700 >> Entón, nós vimos o luns $ _GET, que é unha superglobal, 62 00:03:01,700 --> 00:03:05,496 que é só PHP falar dunha resposta global variable que pode acceder en calquera lugar. 63 00:03:05,496 --> 00:03:06,620 E o que está dentro de $ _GET? 64 00:03:06,620 --> 00:03:09,930 65 00:03:09,930 --> 00:03:12,110 O que está dentro deste Superglobal que vemos? 66 00:03:12,110 --> 00:03:15,900 67 00:03:15,900 --> 00:03:19,020 Certamente estatisticamente polo menos unha persoa sabe. 68 00:03:19,020 --> 00:03:21,590 O que está dentro de $ _GET? 69 00:03:21,590 --> 00:03:22,426 Si? 70 00:03:22,426 --> 00:03:24,130 >> Audiencia: É as variables pór na cadea de consulta. 71 00:03:24,130 --> 00:03:24,530 >> DAVID J. Malan: Perfecto. 72 00:03:24,530 --> 00:03:26,488 É as variables poñer na cadea de consulta. 73 00:03:26,488 --> 00:03:29,910 Así, no noso exemplo máis antigo de reimplementar Google cando tivemos 74 00:03:29,910 --> 00:03:34,130 un URL, e logo, punto de interrogación, que demarca o inicio do HTTP 75 00:03:34,130 --> 00:03:37,950 parámetros, entón tivemos q igual algo, como q é igual a gatos, 76 00:03:37,950 --> 00:03:41,500 o que iría automaticamente dentro do que US $ _GET super-global para ti, 77 00:03:41,500 --> 00:03:47,430 por mor do PHP, é unha clave de Q, eo seu valor de gatos. 78 00:03:47,430 --> 00:03:51,250 >> Noutras palabras, $ _GET e todos estas cousas son matrices asociativas, 79 00:03:51,250 --> 00:03:54,530 táboas hash de tipos, que tenda de claves e valores. 80 00:03:54,530 --> 00:03:57,980 Agora, de volta a pset5, o hash táboa que podería aplicado, 81 00:03:57,980 --> 00:04:00,220 ou o que pode probar Implementar, realmente 82 00:04:00,220 --> 00:04:04,010 era efectivamente un asociativa matriz, unha estrutura de datos 83 00:04:04,010 --> 00:04:07,220 a través do cal pode asociar chaves con valores. 84 00:04:07,220 --> 00:04:09,690 >> Pero en pset5, os valores foron trivial. 85 00:04:09,690 --> 00:04:12,430 O valor foi esencialmente verdadeiro ou falso. 86 00:04:12,430 --> 00:04:13,900 É a palabra no dicionario? 87 00:04:13,900 --> 00:04:18,279 Entón, cando hash unha palabra como mazá a ver se a Apple está no dicionario, 88 00:04:18,279 --> 00:04:21,820 súa función de verificación presuntamente retorno verdadeiro ou falso. 89 00:04:21,820 --> 00:04:24,120 Entón, iso é efectivamente o valor que estamos a recibir de volta. 90 00:04:24,120 --> 00:04:26,456 >> Pero vimos o luns brevemente, certamente pode 91 00:04:26,456 --> 00:04:28,830 asociar máis interesante valores que só verdadeiro ou falso 92 00:04:28,830 --> 00:04:30,790 con claves, como a mazá. 93 00:04:30,790 --> 00:04:33,909 Realmente pode voltar un secuencia arbitraria, e, de feito, 94 00:04:33,909 --> 00:04:36,200 iso é o que $ _GET e estes outras variables permiten que faga. 95 00:04:36,200 --> 00:04:40,595 >> Entón $ _POST é semellante en espírito, pero se enviar un formulario vía post, 96 00:04:40,595 --> 00:04:44,490 un método HTTP que é distinto usado para cousas como tarxetas de crédito, 97 00:04:44,490 --> 00:04:48,410 e información privada, e mesmo información binaria, como imaxes, 98 00:04:48,410 --> 00:04:51,840 esas cousas acaban dentro de $ _POST. 99 00:04:51,840 --> 00:04:53,770 E, de feito, para arquivos como JPEGs e outros enfeites, 100 00:04:53,770 --> 00:04:58,290 hai aínda outro que non é aquí chamado $ _FILES tamén. 101 00:04:58,290 --> 00:05:01,280 >> Así, o servidor que non vou me debruzouse sobre máis moito, pero dálle acceso 102 00:05:01,280 --> 00:05:04,860 clasificar de detalles de nivel inferior sobre o propio servidor que está a usar. 103 00:05:04,860 --> 00:05:07,430 Biscoito e sesión, porén, imos efectivamente ver agora. 104 00:05:07,430 --> 00:05:10,940 O último é o que usan para aplicar a noción de unha cesta da compra. 105 00:05:10,940 --> 00:05:14,480 A un super sinxelo, pero recordo que tivemos este exemplo aquí, 106 00:05:14,480 --> 00:05:17,640 contando cantas veces visitara esta páxina antes. 107 00:05:17,640 --> 00:05:20,850 >> Pero hoxe, no canto de só ollar para o efecto deste, imos abrir 108 00:05:20,850 --> 00:05:22,640 Inspector de Chrome, que pode xeralmente 109 00:05:22,640 --> 00:05:25,740 facer premendo ou Control dereita premendo en calquera lugar nunha páxina web, 110 00:05:25,740 --> 00:05:27,250 a continuación, escolla inspeccionar elemento. 111 00:05:27,250 --> 00:05:31,600 Ou pode ir a través do menú que describimos en especificación de pset6. 112 00:05:31,600 --> 00:05:35,020 E eu estou indo á pestana Rede aquí, e imos observar por un momento 113 00:05:35,020 --> 00:05:37,590 o tráfico HTTP que é indo e volvendo. 114 00:05:37,590 --> 00:05:40,929 >> Déixeme primeiro ir adiante e borrar a caché de Chrome. 115 00:05:40,929 --> 00:05:43,470 Entón, algúns de vostedes poden estar familiarizado con esta técnica xa, 116 00:05:43,470 --> 00:05:45,790 e nós estamos indo a usalo por aquí fins de depuración. 117 00:05:45,790 --> 00:05:48,890 118 00:05:48,890 --> 00:05:50,890 Agora, como ordenador os científicos van comezar 119 00:05:50,890 --> 00:05:53,920 facendo iso para depuración efectos, polo que 120 00:05:53,920 --> 00:05:55,910 imos borrar a caché, tipicamente, de xeito que nós 121 00:05:55,910 --> 00:05:57,670 pode se librar de cousas chamadas cookies. 122 00:05:57,670 --> 00:06:01,700 Entón, probablemente está familiarizada co que son as cookies, ou polo menos 123 00:06:01,700 --> 00:06:04,370 que existen, pero o que é súa comprensión deles, 124 00:06:04,370 --> 00:06:06,920 como só un usuario de ordenadores, o que é unha cookie? 125 00:06:06,920 --> 00:06:09,490 126 00:06:09,490 --> 00:06:09,990 Si. 127 00:06:09,990 --> 00:06:14,391 >> Audiencia: É un pouco de-- ben, non bit en un termo de ciencia da computación. 128 00:06:14,391 --> 00:06:18,303 É unha peza de datos que un sitio envía para ti, a fin 129 00:06:18,303 --> 00:06:20,209 para poder rexistrar estatísticas sobre ti. 130 00:06:20,209 --> 00:06:21,250 DAVID J. Malan: OK, bo. 131 00:06:21,250 --> 00:06:24,980 Polo tanto, é unha peza de datos que un servidor, pon no seu ordenador, 132 00:06:24,980 --> 00:06:28,840 e imos xeneralizar aínda máis, é unha clave value-- ben, 133 00:06:28,840 --> 00:06:30,064 que está ficando máis preciso. 134 00:06:30,064 --> 00:06:31,980 É unha peza de información, unha peza de datos, 135 00:06:31,980 --> 00:06:34,430 que un servidor é capaz para poñer no seu ordenador 136 00:06:34,430 --> 00:06:38,592 e, moitas veces, o servidor fai este, co fin de lembrar quen é vostede. 137 00:06:38,592 --> 00:06:40,300 Así, por exemplo, as probabilidades son probablemente está 138 00:06:40,300 --> 00:06:42,982 rexistradas en sitios como Facebook, ou Gmail, ou outros antes, 139 00:06:42,982 --> 00:06:44,940 e ingrese na súa nome de usuario e contrasinal, 140 00:06:44,940 --> 00:06:49,000 e logo despois diso, para algún número de minutos ou horas ou incluso días, 141 00:06:49,000 --> 00:06:52,970 o servidor que memoriza es, de feito, dentro do sistema. 142 00:06:52,970 --> 00:06:54,600 Agora, como é que realmente está a suceder? 143 00:06:54,600 --> 00:06:58,630 Porque certamente non está redigitação o seu nome de usuario e contrasinal cada vez 144 00:06:58,630 --> 00:07:00,760 navegar a un páxina diferente en Facebook. 145 00:07:00,760 --> 00:07:02,570 Entón non é que o galletas son a resposta. 146 00:07:02,570 --> 00:07:05,360 >> Unha cookie que pode pensar que, tipo de gusto, unha man dixitais 147 00:07:05,360 --> 00:07:09,200 selo que pode obter nun parque de atraccións parque ou un club que, esencialmente, 148 00:07:09,200 --> 00:07:11,740 indica que estivo aquí antes, e xa 149 00:07:11,740 --> 00:07:16,070 mostra o seu ID a seguridade, por exemplo, e que o club ou ao parque 150 00:07:16,070 --> 00:07:19,050 debe agora asumir que xa dentro do sistema. 151 00:07:19,050 --> 00:07:21,270 Xa foron identificadas por el. 152 00:07:21,270 --> 00:07:24,740 >> Entón, con iso en mente, imos abrir contador aquí. 153 00:07:24,740 --> 00:07:27,220 Déixeme ir adiante, eu só fixen, e limpar todos os meus cookies. 154 00:07:27,220 --> 00:07:29,970 E agora o que vou facer é Manteña a tecla Shift, só para unha boa medida, 155 00:07:29,970 --> 00:07:31,740 e forzosamente recargar a páxina. 156 00:07:31,740 --> 00:07:34,170 Cambio só comproba se que nada é almacenado na caché. 157 00:07:34,170 --> 00:07:36,850 E aquí está a solicitude que ía e volvía. 158 00:07:36,850 --> 00:07:41,560 Entón, aquí temos unha proposta, e deixar me achegar aquí abaixo, e unha morea de presente 159 00:07:41,560 --> 00:07:44,710 é tipo de detalles desinteressante para agora que o navegador automaticamente 160 00:07:44,710 --> 00:07:47,800 enviado, pero imos faga clic en Ver Fonte para ver as cabeceiras materias. 161 00:07:47,800 --> 00:07:51,700 >> E se xa mergullou pset6 xa, certamente vai recoñecer as cousas 162 00:07:51,700 --> 00:07:54,990 así, e quizais algúns desas outras liñas aquí, 163 00:07:54,990 --> 00:07:59,040 pero o que é máis interesante para hoxe se eu rolar para abaixo, non para a solicitude 164 00:07:59,040 --> 00:08:02,870 pero para a resposta de chamada, esta liña probablemente parece familiar. 165 00:08:02,870 --> 00:08:04,977 Iso é unha cousa boa cando ve un 200 Aceptar. 166 00:08:04,977 --> 00:08:07,060 Ao parecer, esta é a data e hora no servidor 167 00:08:07,060 --> 00:08:08,268 e hai unha morea de cousas. 168 00:08:08,268 --> 00:08:09,290 Oh, iso é interesante. 169 00:08:09,290 --> 00:08:13,430 >> Acontece que sempre que usa PHP, polo menos neste servidor, 170 00:08:13,430 --> 00:08:16,360 o servidor que cospe versión de PHP que está a usar. 171 00:08:16,360 --> 00:08:18,962 O que, de feito, para a seguridade propósitos, non é unha cousa boa. 172 00:08:18,962 --> 00:08:21,170 Pero imos volver ao que noutro momento, quizais. 173 00:08:21,170 --> 00:08:25,740 Pero agora esta é a liña suculento hoxe, e vimos brevemente algúns destes, 174 00:08:25,740 --> 00:08:29,240 Creo que con Facebook cando cutucou en todo o Inspector na época, 175 00:08:29,240 --> 00:08:33,380 biscoito conxunto é o que está plantando aquel pequeno anaco de información 176 00:08:33,380 --> 00:08:34,890 para o seu ordenador. 177 00:08:34,890 --> 00:08:37,490 >> Este é unha cabeceira HTTP que é efectivamente 178 00:08:37,490 --> 00:08:39,970 o teu navegador, Chrome, IE, sexa cal sexa, 179 00:08:39,970 --> 00:08:44,480 hey tenda navegador no que o usuario de disco duro ou na memoria RAM do usuario, 180 00:08:44,480 --> 00:08:49,680 unha clave chamada PHPSESSID, que é un notación abreviada para o ID da sesión, 181 00:08:49,680 --> 00:08:53,670 e darlle un valor de 0vlk8t, punto, punto, punto. 182 00:08:53,670 --> 00:08:56,480 Un tempo moi longo pseudo secuencia alfanumérica aleatoria. 183 00:08:56,480 --> 00:08:59,480 É só un número moi grande, pero é codificado con letras e números 184 00:08:59,480 --> 00:09:03,550 de tal forma que o tamaño do que se pode aínda maior que as cifras por si só. 185 00:09:03,550 --> 00:09:06,947 E, a continuación, polo camiño, camiño = /, que Significa só que ese cookie debe ser 186 00:09:06,947 --> 00:09:08,780 asociada co totalidade do sitio web, 187 00:09:08,780 --> 00:09:11,150 non só un específico páxina cousa toda. 188 00:09:11,150 --> 00:09:12,930 Polo tanto, este é ese selo man virtual. 189 00:09:12,930 --> 00:09:16,330 É coma se o servidor, Facebook, ou, no noso caso o aparello, 190 00:09:16,330 --> 00:09:21,140 ten 0vlk8t literalmente escrito etc., na súa man. 191 00:09:21,140 --> 00:09:24,360 Teña en conta que o servidor, non facer é non é 192 00:09:24,360 --> 00:09:27,730 gardar o meu nome, seguro non gardar o meu contrasinal. 193 00:09:27,730 --> 00:09:31,710 >> Pola contra, parece haber almacenar a información de pseudo aleatorio 194 00:09:31,710 --> 00:09:35,010 de xeito que ninguén pode adiviñar o meu selo de man é. 195 00:09:35,010 --> 00:09:37,590 No lado do servidor, Mentres tanto, o servidor 196 00:09:37,590 --> 00:09:40,370 vai lembrar, probabelmente nunha base de datos ou algo así, 197 00:09:40,370 --> 00:09:46,490 que o usuario, que no futuro presenta un selo de man de 0vlk8t, punto, 198 00:09:46,490 --> 00:09:51,440 punto, punto, debe ser asociado a este particular, cesta da compra, por así dicir. 199 00:09:51,440 --> 00:09:55,060 Noutras palabras, se eu agora vaia volve aquí e recargue esta páxina, 200 00:09:55,060 --> 00:09:58,020 como é que o servidor sabe que visitei unha vez? 201 00:09:58,020 --> 00:10:01,730 >> Ou se eu fai iso de novo, como é que o servidor sei que teño visitado dúas veces? 202 00:10:01,730 --> 00:10:04,680 Ben, se eu baixar a este solicitude máis recente, o que 203 00:10:04,680 --> 00:10:09,150 agora é o terceiro que eu enviei en total, teña en conta a miña petición agora. 204 00:10:09,150 --> 00:10:11,300 Hai aínda esta é solicitar até aquí, mesmo 205 00:10:11,300 --> 00:10:15,040 como antes, aínda hai un grupo enteiro de cousas que nós ignoramos, como antes, 206 00:10:15,040 --> 00:10:19,350 pero a última cabeceira, este tempo, porque eu xa estiven aquí antes, 207 00:10:19,350 --> 00:10:21,980 é unha presentación de este selo man virtual. 208 00:10:21,980 --> 00:10:28,957 >> Biscoito en que esta liña aquí, non definida pero bolinha colonos PHPSESSI = 0vlk8t, 209 00:10:28,957 --> 00:10:32,040 iso é automático de só meu navegador presentación deste selo man para que 210 00:10:32,040 --> 00:10:37,910 Agora o servidor, logo que se entende, ooh, este é usuario 0vlk8t punto, punto, punto, 211 00:10:37,910 --> 00:10:42,010 Agora recordo que el ou ela é e asociar novo que o usuario sexa cal sexa 212 00:10:42,010 --> 00:10:46,450 información que quero, e todo esta información pode ser almacenada por ti, 213 00:10:46,450 --> 00:10:50,130 o programador, en $ _SESSION. 214 00:10:50,130 --> 00:10:57,170 >> Entón, para ser claro, se eu abrir ben rápido no gedit o ficheiro real, counter.php, 215 00:10:57,170 --> 00:11:02,340 no meu directorio público servidor local como antes, entender que, de feito, 216 00:11:02,340 --> 00:11:06,860 Estou en definitiva, o almacenamento en $ _SESSION Entre comiñas "contra", 217 00:11:06,860 --> 00:11:10,110 o valor do contador anterior cales Recibe destas liñas ata aquí que nós 218 00:11:10,110 --> 00:11:13,010 mirou para última hora máis. 219 00:11:13,010 --> 00:11:14,980 Entón, debaixo do capó, iso é todo cookies son. 220 00:11:14,980 --> 00:11:17,563 É exactamente o tipo de dixitais selo man indo e volvendo, 221 00:11:17,563 --> 00:11:20,450 e, a verdade, se abrir o Chrome do Inspector en calquera sitio 222 00:11:20,450 --> 00:11:22,580 visita hoxe, con Super alta probabilidade, 223 00:11:22,580 --> 00:11:25,450 vai ver, quizais un, quizais media ducia de galletas 224 00:11:25,450 --> 00:11:26,650 lembrar por ti. 225 00:11:26,650 --> 00:11:29,500 >> E peor aínda, se os web que está a visitar 226 00:11:29,500 --> 00:11:32,640 todos os anuncios, que teñen é certamente moi común hoxe en día, 227 00:11:32,640 --> 00:11:36,100 e se eses anuncios están chegando dalgún partido central, alguén 228 00:11:36,100 --> 00:11:39,000 como Google ou AdWords como chame un dos seus produtos 229 00:11:39,000 --> 00:11:42,880 ou outros provedores tales que vender anuncios, o que é interesante, 230 00:11:42,880 --> 00:11:46,510 e, a verdade, o que é un pouco preocupante, sobre como funciona HTTP, 231 00:11:46,510 --> 00:11:50,855 é que se ten un anuncio incorporado no Facebook.com e Google.com, 232 00:11:50,855 --> 00:11:54,240 e Harvard.edu, calquera número de sitios, por iso é tan 233 00:11:54,240 --> 00:11:58,130 que hai un home de media que está servindo arriba anuncios para todos os tres destes sitios, 234 00:11:58,130 --> 00:12:02,110 verifícase que o as cookies son por dominio. 235 00:12:02,110 --> 00:12:05,910 >> Entón se ten un anuncio que vén do mesma empresa en diferentes sitios, 236 00:12:05,910 --> 00:12:11,140 que empresa pode efectivamente controlar quen está en todos os sitios. 237 00:12:11,140 --> 00:12:13,140 Harvard pode non saber vostede está a visitar o Facebook. 238 00:12:13,140 --> 00:12:15,306 Facebook pode non saber e vostede está a visitar Harvard. 239 00:12:15,306 --> 00:12:18,160 Pero calquera que sexa servizo de anuncios eles están a usar, se ese dominio é 240 00:12:18,160 --> 00:12:21,710 presente en ambos Harvard.edu web páxinas e páxinas web Facebook.com, 241 00:12:21,710 --> 00:12:26,850 este home medio certamente sabe quen é vostede porque destes cookies sendo compartido 242 00:12:26,850 --> 00:12:30,910 do outro lado, ou en vez de, que o chamado intermedio. 243 00:12:30,910 --> 00:12:33,820 >> Entón, imos volver a este en implicacións de seguridade dos mesmos, 244 00:12:33,820 --> 00:12:37,170 pero hai unha gran cantidade de información sendo almacenados sobre vostede en calquera momento 245 00:12:37,170 --> 00:12:40,120 visitar máis calquera páxina web en a Internet e realmente 246 00:12:40,120 --> 00:12:42,877 reduce a este mecanismo moi sinxelo. 247 00:12:42,877 --> 00:12:44,710 Que pasa, entón, se es super paranoica 248 00:12:44,710 --> 00:12:48,190 e decide ir en Chrome ou IE ou o que quere e apagar os seus cookies? 249 00:12:48,190 --> 00:12:49,365 Que pasa? 250 00:12:49,365 --> 00:12:50,790 Si? 251 00:12:50,790 --> 00:12:53,170 Vostede realmente-- xa fixo iso certo? 252 00:12:53,170 --> 00:12:54,350 Está ben. 253 00:12:54,350 --> 00:12:55,994 Non, vai adiante. 254 00:12:55,994 --> 00:12:59,645 >> Audiencia: Algúns sitios non teñen unha función sen gusta Facebook. 255 00:12:59,645 --> 00:13:00,520 DAVID J. Malan: Yeah! 256 00:13:00,520 --> 00:13:02,311 Así, certos sitios só vai deixar de traballar. 257 00:13:02,311 --> 00:13:05,520 E na maioría dos sitios hoxe en día que, fundamentalmente, confiar en cookies, 258 00:13:05,520 --> 00:13:08,360 especialmente se eles teñen que iniciar sesión en, están indo só para romper. 259 00:13:08,360 --> 00:13:10,360 Porque a considerar alternativa, se o sitio web 260 00:13:10,360 --> 00:13:14,480 non ten forma de lembrar quen é vostede, e, polo tanto, o seu navegador non é 261 00:13:14,480 --> 00:13:16,949 representando cada con HTTP petición deste selo banda, 262 00:13:16,949 --> 00:13:18,740 eficazmente un sitio como ir de Facebook 263 00:13:18,740 --> 00:13:22,050 ter que pedirlle a Póñase-se cada vez danado 264 00:13:22,050 --> 00:13:26,200 cambiar de páxina ou facer clic nun enlace, o que certamente non é especialmente un bo usuario 265 00:13:26,200 --> 00:13:26,920 experiencia. 266 00:13:26,920 --> 00:13:30,020 >> De xeito que non é, tamén, entre os trade-offs. 267 00:13:30,020 --> 00:13:34,140 Así, sen máis delongas, imos dar por certo que con programación web, 268 00:13:34,140 --> 00:13:37,630 en linguaxes como PHP, pode lembrar información como esta no conxunto de problemas 269 00:13:37,630 --> 00:13:41,550 sete cando aplicar o seu propio Web E * Trade, como co que mercar 270 00:13:41,550 --> 00:13:45,710 e vender accións, vai lembrar exactamente o que o usuario teña adquirido e vendido 271 00:13:45,710 --> 00:13:49,110 e que el ou ela é por medio da sesión. 272 00:13:49,110 --> 00:13:51,110 Pero nós imos ter unha forma máis extravagante que correo-e 273 00:13:51,110 --> 00:13:52,640 para comezar a manter a información en torno. 274 00:13:52,640 --> 00:13:53,140 Non? 275 00:13:53,140 --> 00:13:56,780 >> O luns, nós falamos sobre Frosh IMS e como na versión de que un sitio web, 276 00:13:56,780 --> 00:14:00,250 anos, o único que fixemos foi enviar correo-e a Proctor quen é 277 00:14:00,250 --> 00:14:04,250 encargado dos deportes internos programa, o nome eo sexo, 278 00:14:04,250 --> 00:14:07,330 e se son ou non un capitán, eo dormitorio de alguén que é 279 00:14:07,330 --> 00:14:10,136 rexistrar para un deporte intramural. 280 00:14:10,136 --> 00:14:13,010 Polo tanto, non é malo, pero el ou ela, a continuación, tiven que percorre a través do seu correo electrónico, 281 00:14:13,010 --> 00:14:16,010 facer unha folla de cálculo ou algo parecido que, para manter todo organizado. 282 00:14:16,010 --> 00:14:19,750 Entón certamente nós como programadores pode facelo para que Proctor. 283 00:14:19,750 --> 00:14:22,970 E así entra SQL, Structured Query Language, 284 00:14:22,970 --> 00:14:26,050 que se ve fermosa diferente para ambos C e PHP, 285 00:14:26,050 --> 00:14:30,990 e vai mergullo moito máis mans PHP e conxunto de problemas, pero tamén sete SQL, 286 00:14:30,990 --> 00:14:35,310 ou SQL, é unha linguaxe que que usa para falar con unha base de datos. 287 00:14:35,310 --> 00:14:36,480 >> Pero o que é unha base de datos? 288 00:14:36,480 --> 00:14:38,440 Ben pensas dun base de datos, polo menos por agora, 289 00:14:38,440 --> 00:14:41,750 como só como un arquivo de Excel, ou se é un ficheiro de números de usuario de un Mac, 290 00:14:41,750 --> 00:14:44,400 ou se é un Google Apps usuario unha folla de cálculo de Google, 291 00:14:44,400 --> 00:14:49,120 é efectivamente unha base de datos, ou realmente especialmente unha base de datos relacional. 292 00:14:49,120 --> 00:14:53,070 Unha base de datos relacional é só algo que ten liñas e columnas, 293 00:14:53,070 --> 00:14:56,440 e pode almacenar calquera tipo de información nestas liñas ou columnas. 294 00:14:56,440 --> 00:15:00,480 >> Pero o que é agradable sobre SQL, e sobre bases de datos reais, e non só 295 00:15:00,480 --> 00:15:04,910 follas de cálculo ou follas de cálculo de Google, é que pode usar unha linguaxe 296 00:15:04,910 --> 00:15:09,000 para realmente executar consultas para introducir datos, para eliminar os datos, 297 00:15:09,000 --> 00:15:11,620 de ollar os datos, mesmo o máis importante, e vostede 298 00:15:11,620 --> 00:15:16,110 Non ten que usalo moi manualmente como pode tipicamente un Google 299 00:15:16,110 --> 00:15:17,690 folla como este. 300 00:15:17,690 --> 00:15:22,217 >> Así, en SQL, hai unha morea de declaracións fundamentais ou pezas 301 00:15:22,217 --> 00:15:23,300 de funcionalidade embutida. 302 00:15:23,300 --> 00:15:26,450 Hai moitos máis que estes, pero pode ir unha enorme distancia 303 00:15:26,450 --> 00:15:28,620 só por saber que esta linguaxe chamada 304 00:15:28,620 --> 00:15:30,840 SQL ten polo menos catro declaracións que pode aproveitar. 305 00:15:30,840 --> 00:15:34,420 >> Eliminar, para a eliminación de datos, Inserir, para engadir liñas, 306 00:15:34,420 --> 00:15:37,340 Update, para cambiar liñas e Selección, 307 00:15:37,340 --> 00:15:39,860 para volver liñas e que é de feito o que o SQL fai. 308 00:15:39,860 --> 00:15:43,810 El opera enteiramente en liñas para que cando inserir ou retirar, 309 00:15:43,810 --> 00:15:47,470 ou actualización, ou seleccionar o que está quedando atrás como un chamado conxunto de resultados, 310 00:15:47,470 --> 00:15:49,690 como unha matriz de liñas. 311 00:15:49,690 --> 00:15:51,700 Un grupo de liñas de unha táboa. 312 00:15:51,700 --> 00:15:54,050 >> Entón, de volta ao día, e até hoxe, 313 00:15:54,050 --> 00:15:56,560 Pode interactuar co base de datos a usar unha liña de comandos, 314 00:15:56,560 --> 00:15:59,691 pero non é especialmente divertido de usar Nesta xanela estilo branco e negro 315 00:15:59,691 --> 00:16:02,190 e realmente executar comandos e picar en torno a súa base de datos. 316 00:16:02,190 --> 00:16:06,054 A interface gráfica de usuario, ou GUI, é moito máis preferíbel, sen dúbida, 317 00:16:06,054 --> 00:16:08,970 e por iso a ferramenta recomendamos e preinstalado para que no aparello 318 00:16:08,970 --> 00:16:10,580 chámase phpMyAdmin. 319 00:16:10,580 --> 00:16:14,060 É unha coincidencia total que o nome desa cousa ten PHP nel, 320 00:16:14,060 --> 00:16:17,430 isto significa só que a xente que escribiu este programa-se 321 00:16:17,430 --> 00:16:18,670 escribiu el en PHP. 322 00:16:18,670 --> 00:16:23,740 >> Pero é en definitiva, sobre a administración un servidor de base de datos, como un servidor de MySQL 323 00:16:23,740 --> 00:16:26,589 que pode ter, como facer, o aparello CS50. 324 00:16:26,589 --> 00:16:29,130 Polo tanto, non hai máis detalles aquí do que necesitamos nos preocupe hoxe, 325 00:16:29,130 --> 00:16:33,280 pero o que é fundamental é que na esquerda banda está a lista das bases de datos 326 00:16:33,280 --> 00:16:36,040 que ten no seu ordenador, no seu dispositivo CS50, 327 00:16:36,040 --> 00:16:40,090 ou vir proxectos finais que pode ter en relación a terceiros, unha empresa de 328 00:16:40,090 --> 00:16:43,415 web ou servidor web, que pode estar pagando por espazo. 329 00:16:43,415 --> 00:16:45,290 Entón, á esquerda é o bases de datos, un dos cales 330 00:16:45,290 --> 00:16:48,750 é pset7 que eu pedín prestado a partir do pset semanas e logo na parte superior 331 00:16:48,750 --> 00:16:51,570 non entender que hai unha chea de pestanas, unha das cales 332 00:16:51,570 --> 00:16:55,150 é bases de datos, SQL, estado, usuarios, exportación e así por diante. 333 00:16:55,150 --> 00:16:56,900 Entón pode ir un longo camiño só por entender 334 00:16:56,900 --> 00:16:59,770 que a maior parte do interface de usuario está na parte superior da columna esquerda 335 00:16:59,770 --> 00:17:02,650 e na parte superior dereita alí enriba. 336 00:17:02,650 --> 00:17:04,980 Entón o que podemos realmente facer iso? 337 00:17:04,980 --> 00:17:08,609 Ben, imos comezar a crear unha bit de información como segue. 338 00:17:08,609 --> 00:17:11,760 >> Supoña que o seguinte é o caso, como será en poucos días, 339 00:17:11,760 --> 00:17:14,440 quere implantar un web, chamado CS50 Finanzas, 340 00:17:14,440 --> 00:17:17,328 e esta web permite que compra entre comiñas e vender accións. 341 00:17:17,328 --> 00:17:19,619 E vai descubrir o prezo desas accións, 342 00:17:19,619 --> 00:17:22,380 en definitiva, como vai ver, charlar co Yahoo Finance. 343 00:17:22,380 --> 00:17:26,250 Que, marabillosas, ten un servizo gratuíto a través do cal pode pasar nun ticker stock 344 00:17:26,250 --> 00:17:29,830 como GOOG a Google, e que vai darlle de volta o stock actual de Google 345 00:17:29,830 --> 00:17:32,250 prezos no pasado polo menos uns minutos. 346 00:17:32,250 --> 00:17:35,080 >> Entón vai usar isto, en última instancia, finxir ao usuario 347 00:17:35,080 --> 00:17:37,750 para mercar e vender real accións usando diñeiro virtual, 348 00:17:37,750 --> 00:17:39,750 pero o primeiro o usuario verá 349 00:17:39,750 --> 00:17:43,850 é esta pantalla de inicio de sesión que pide para o seu nome de usuario e contrasinal. 350 00:17:43,850 --> 00:17:46,540 E, así, un dos primeiros retos para ti en pset7 351 00:17:46,540 --> 00:17:50,460 será para aplicar o back-end base de datos, a folla de cálculo se, 352 00:17:50,460 --> 00:17:53,369 que vai gardar nomes de usuarios e contrasinais 353 00:17:53,369 --> 00:17:56,660 e, finalmente, que accións eles mesmos, e cantos e canto diñeiro teñen, 354 00:17:56,660 --> 00:18:00,110 polo que unha morea de outras cousas en outras táboas ou follas de cálculo. 355 00:18:00,110 --> 00:18:05,020 >> Entón, imos dar un ollo a como esta podería parecer a primeira vista. 356 00:18:05,020 --> 00:18:06,980 Vou volver o aparello e eu son 357 00:18:06,980 --> 00:18:14,102 indo a ir a este URL aquí phpMyAdmin localhost / phpmyadmin 358 00:18:14,102 --> 00:18:16,060 e verás que me leva a unha interface 359 00:18:16,060 --> 00:18:18,520 exactamente como vimos no captura de pantalla, e aquí eu 360 00:18:18,520 --> 00:18:21,560 ten unha base de datos adicional chamado charla para hoxe 361 00:18:21,560 --> 00:18:24,280 e deixe-me ir adiante primeiro e prema en pset7. 362 00:18:24,280 --> 00:18:27,940 >> Parece que teño un par de opcións, un para os novos, para a creación dunha nova táboa, 363 00:18:27,940 --> 00:18:30,770 e un enlace para os usuarios, que é unha táboa que xa creada. 364 00:18:30,770 --> 00:18:31,790 Entón o que é unha táboa? 365 00:18:31,790 --> 00:18:33,740 Entón, se usou Excel antes, e se ten 366 00:18:33,740 --> 00:18:37,110 números usados ​​ou Google Follas de cálculo, se abre unha fiestra 367 00:18:37,110 --> 00:18:39,350 e terá un grupo enteiro de liñas e columnas, 368 00:18:39,350 --> 00:18:43,120 pero entón xeralmente ten follas de cálculo ao longo do fondo, ou abas separadas. 369 00:18:43,120 --> 00:18:46,140 Pode pensar de cada folla como unha táboa 370 00:18:46,140 --> 00:18:51,150 base de datos, de xeito que, en definitiva, é unha combinación dunha ou máis táboas, unha 371 00:18:51,150 --> 00:18:54,064 ou máis follas de cálculo, en mundo dunha folla normal. 372 00:18:54,064 --> 00:18:55,980 Entón deixe-me ir adiante e clic sobre esta folla 373 00:18:55,980 --> 00:18:59,420 que eu Premade, chamados de usuarios, a.k.a. 374 00:18:59,420 --> 00:19:00,700 Táboa de base de datos. 375 00:19:00,700 --> 00:19:04,130 E se eu rolar para abaixo aquí, déixeme afastar un pouco, 376 00:19:04,130 --> 00:19:08,479 iso é o que está dicindo phpMyAdmin nós é dentro deste marco agora. 377 00:19:08,479 --> 00:19:11,020 É un pouco confuso no inicio relance, porque a interface do usuario non é 378 00:19:11,020 --> 00:19:15,140 a cousa máis bonita do mundo, pero o que é interesante é esta parte aquí. 379 00:19:15,140 --> 00:19:17,970 ID, nome de usuario e hash. 380 00:19:17,970 --> 00:19:20,510 >> Con antelación, e vai ser entregado este problema en establecer sete, 381 00:19:20,510 --> 00:19:25,050 nós dámoslle un arquivo que contén un super táboa de base pequeno, prestado realmente 382 00:19:25,050 --> 00:19:27,070 a partir da edición de hackers do conxunto de problemas dous, 383 00:19:27,070 --> 00:19:29,480 no interior dos cales existen seis liñas. 384 00:19:29,480 --> 00:19:32,720 Un para toda a Belinda camiño para un para Zamyla, 385 00:19:32,720 --> 00:19:35,980 e teña en conta á esquerda daqueles nome de usuario son IDs únicas, como un, 386 00:19:35,980 --> 00:19:39,410 dous, tres, catro, cinco, seis, números enteiros, e despois a dereita son hashes. 387 00:19:39,410 --> 00:19:42,780 >> E se, as probabilidades son, non fixo o problema edición hacker de definir dous, 388 00:19:42,780 --> 00:19:46,560 pero un hash é como un cifrado contrasinal con algunhas ressalvas. 389 00:19:46,560 --> 00:19:49,470 E así, o que ve aquí son as versións cifradas de todos os seis 390 00:19:49,470 --> 00:19:52,950 das nosas claves de problema definir edición dous do hacker. 391 00:19:52,950 --> 00:19:56,500 Agora á esquerda é só algunhas cousas GUI, editar esta liña, copiando esta liña, 392 00:19:56,500 --> 00:19:57,630 eliminar esta liña. 393 00:19:57,630 --> 00:19:59,840 >> Pero o que é interesante agora é o seguinte. 394 00:19:59,840 --> 00:20:03,810 Podo realmente comezar experimentando con esta táboa. 395 00:20:03,810 --> 00:20:07,330 Entón, se eu for e prema o SQL guía, eu recibín esta caixa de texto grande. 396 00:20:07,330 --> 00:20:10,190 E non é así que imos facelo cando, en realidade, escribir código. 397 00:20:10,190 --> 00:20:12,700 Para ser claro, phpMyAdmin é só unha ferramenta que é 398 00:20:12,700 --> 00:20:16,450 vai deixarnos bisbilhotar a base de datos e déixenos experimentar con consultas. 399 00:20:16,450 --> 00:20:19,430 >> Así, por exemplo, supoña Eu executar exactamente isto. 400 00:20:19,430 --> 00:20:22,820 Select, que é un dos palabras clave que mencionei anteriormente, estrela, 401 00:20:22,820 --> 00:20:25,900 que representa todo as columnas dunha táboa. 402 00:20:25,900 --> 00:20:26,820 Polo que a táboa? 403 00:20:26,820 --> 00:20:27,990 Así, os usuarios. 404 00:20:27,990 --> 00:20:29,950 E noten que hai esta convención estraño en SQL 405 00:20:29,950 --> 00:20:32,140 onde realmente usar volta ácaros, normalmente, 406 00:20:32,140 --> 00:20:35,940 citas non individuais e citas non dobres cando se fala de nomes de táboas, 407 00:20:35,940 --> 00:20:38,990 así a cita de volta é a cousa sobre a superior esquerda do seu teclado máis 408 00:20:38,990 --> 00:20:39,720 probable. 409 00:20:39,720 --> 00:20:41,850 >> Entón deixe-me ir adiante agora e só deixar isto quedo 410 00:20:41,850 --> 00:20:46,020 e role a páxina e prema en Ir, e estamos realmente vai ver o mesmo. 411 00:20:46,020 --> 00:20:52,410 Acabamos executada unha consulta SQL dicindo selecciona todo estrela 412 00:20:52,410 --> 00:20:55,610 da táboa chamada usuarios e o que recibe de volta é esta. 413 00:20:55,610 --> 00:20:58,400 En definitiva, nós imos ser capaces de facer o mesmo en código, 414 00:20:58,400 --> 00:21:02,109 pero por agora todo o que eu quería que foi velo no meu navegador. 415 00:21:02,109 --> 00:21:03,900 Ben, imos facer algo un pouco diferente. 416 00:21:03,900 --> 00:21:08,330 Déixeme volver á pestana SQL, e imos só dicir que o que? 417 00:21:08,330 --> 00:21:11,520 Zamyla perdeu toda a súa diñeiro, e, polo tanto, é 418 00:21:11,520 --> 00:21:13,190 hora de eliminar o seu como un usuario. 419 00:21:13,190 --> 00:21:14,630 Ela non está login. 420 00:21:14,630 --> 00:21:18,870 >> Entón eu vou dicir eliminar de-- así, manter a capitalización 421 00:21:18,870 --> 00:21:23,080 para a consistencia, eliminar dos usuarios onde. 422 00:21:23,080 --> 00:21:25,430 E así, podemos ter estes predicados, ou estes 423 00:21:25,430 --> 00:21:31,180 cualificados, ao final da miña declaración onde e como eu podería eliminar Zamyla? 424 00:21:31,180 --> 00:21:34,190 Polo seu nome Zamyla, de xeito que o columna, unha das columnas 425 00:21:34,190 --> 00:21:37,950 foi nomeado, entón onde name = "Zamyla". 426 00:21:37,950 --> 00:21:40,000 E aquí eu uso dobre comiñas ou aspas simples, 427 00:21:40,000 --> 00:21:42,958 só se pode usar a parte de atrás cando ácaros falando sobre os nomes, por exemplo, 428 00:21:42,958 --> 00:21:45,130 de táboas ou campos. 429 00:21:45,130 --> 00:21:47,440 E déixeme clic Aquí. 430 00:21:47,440 --> 00:21:50,400 E agora, a páxina web é sendo un pouco tenso. 431 00:21:50,400 --> 00:21:53,620 >> Ou, o que realmente quere facer borrar dos usuarios onde o nome é igual Zamyla? 432 00:21:53,620 --> 00:21:54,680 Si. 433 00:21:54,680 --> 00:22:01,900 Entón, agora, se volver para a miña mesa premendo usuarios, teña en conta que Hm. 434 00:22:01,900 --> 00:22:02,530 Eu gozado. 435 00:22:02,530 --> 00:22:04,070 E, de feito, eu medio que premendo lonxe tan rápido 436 00:22:04,070 --> 00:22:06,195 vostede nin sequera ver o mensaxe de erro vermello, quizais. 437 00:22:06,195 --> 00:22:07,649 O que eu fixen de malo? 438 00:22:07,649 --> 00:22:09,690 Audiencia: Non para capitalizar o seu nome. 439 00:22:09,690 --> 00:22:11,260 DAVID J. Malan: Si, eu capitalizar o seu nome, 440 00:22:11,260 --> 00:22:13,770 pero a súa username-- en realidade eu fixo un par de erros, non? 441 00:22:13,770 --> 00:22:16,720 Un deles, o seu nome de usuario é zamyla, Z en minúsculas, 442 00:22:16,720 --> 00:22:20,140 eo nome da columna é nome de usuario, non o nome, entón imos facelo de novo. 443 00:22:20,140 --> 00:22:25,750 Deixe-me ir adiante e eliminar dos usuarios ONDE 444 00:22:25,750 --> 00:22:28,990 nome de usuario é igual entre comiñas "Zamyla". 445 00:22:28,990 --> 00:22:29,490 Todo certo? 446 00:22:29,490 --> 00:22:32,600 Entón, iso parece un pouco mellor, imos me ir role a páxina e prema en Ir. 447 00:22:32,600 --> 00:22:34,730 El aínda vai grite comigo para estar seguro. 448 00:22:34,730 --> 00:22:37,500 Eu faga clic en Si, e agora vemos, francamente que isto aconteceu, realmente 449 00:22:37,500 --> 00:22:39,870 rápido, menos dun segundo, seguramente, este 450 00:22:39,870 --> 00:22:41,720 é exactamente a consulta que foi executada. 451 00:22:41,720 --> 00:22:45,617 Para confirmar, déixeme prema usuarios e de feito agora Zamyla está desaparecido. 452 00:22:45,617 --> 00:22:46,700 Agora imos facer o contrario. 453 00:22:46,700 --> 00:22:49,320 Supóñase que quere Gabe rexistrar para o sitio. 454 00:22:49,320 --> 00:22:52,825 ¿Que é a consulta SQL, que é o mando que eu podería escribir para engadir Gabe? 455 00:22:52,825 --> 00:22:54,200 Ben, é moi sinxelo. 456 00:22:54,200 --> 00:22:58,260 Insire en usuarios, e agora está un pouco enigmática. 457 00:22:58,260 --> 00:23:03,190 Necesito especificar, para o servidor, cales campos quero asignar. 458 00:23:03,190 --> 00:23:06,630 Realmente non me importa o que de Gabe ID número é, entón eu vou saltar esa. 459 00:23:06,630 --> 00:23:11,360 Estou vez vai dicir username, hash e, a continuación, 460 00:23:11,360 --> 00:23:14,960 os valores que quero poñer alí será Gabe. 461 00:23:14,960 --> 00:23:16,800 E entón a súa mestura, eu non sei. 462 00:23:16,800 --> 00:23:19,900 Entón, por agora, eu vou deixar isto como un gran para facer. 463 00:23:19,900 --> 00:23:21,650 Imos volver en que o conxunto de problemas 464 00:23:21,650 --> 00:23:23,390 especificación de como realmente facelo. 465 00:23:23,390 --> 00:23:24,630 >> Así notar, de novo, a sintaxe. 466 00:23:24,630 --> 00:23:28,430 Insire o nome da táboa, a continuación, unha parénteses lista dos campos, 467 00:23:28,430 --> 00:23:30,980 as columnas que quere engadir valores e logo só 468 00:23:30,980 --> 00:23:34,495 mesma orde exacta de esquerda a dereito dos valores que quere engadir, 469 00:23:34,495 --> 00:23:36,870 e é só enrolando porque o texto é un pouco longo. 470 00:23:36,870 --> 00:23:38,520 Entón, agora deixe-me faga clic en Ir. 471 00:23:38,520 --> 00:23:39,830 Unha liña inserida. 472 00:23:39,830 --> 00:23:43,020 E agora, se eu volver usuarios, o que é interesante 473 00:23:43,020 --> 00:23:48,960 é que non só é Gabe agora en base de datos, o que é, ao parecer, o seu ID? 474 00:23:48,960 --> 00:23:49,820 >> Ben, é sete. 475 00:23:49,820 --> 00:23:51,479 Por que é sete anos cando eu non engadir lo? 476 00:23:51,479 --> 00:23:54,020 Polo tanto, esta é, tamén, un dos características que comeza da base de datos. 477 00:23:54,020 --> 00:23:55,750 Moita construído en funcionalidade. 478 00:23:55,750 --> 00:23:57,950 Acontece que cando creado esta táboa, 479 00:23:57,950 --> 00:24:01,390 I preconfigurado é automaticamente atribúa unha ID de tal xeito 480 00:24:01,390 --> 00:24:02,480 que incrementa. 481 00:24:02,480 --> 00:24:05,470 Entón, se xa se remexia, e mirou para o seu Facebook ID 482 00:24:05,470 --> 00:24:09,292 número é, a día de hoxe non é realmente unha cousa que facer, pero o Facebook como unha API, 483 00:24:09,292 --> 00:24:11,750 Application Interface de Programación, a través do cal pode obter de volta 484 00:24:11,750 --> 00:24:14,430 todo un conxunto de datos sobre si mesmo, sobre os seus amigos, 485 00:24:14,430 --> 00:24:15,347 e as súas conexións. 486 00:24:15,347 --> 00:24:17,430 E o que adoitaba ser tipo de legal, de volta ao día, 487 00:24:17,430 --> 00:24:19,510 estaba a mirar para arriba que o seu Facebook número de identificación era. 488 00:24:19,510 --> 00:24:22,390 Mark Zuckerberg de, por exemplo, é tres 489 00:24:22,390 --> 00:24:23,890 desde que el era o autor do sitio. 490 00:24:23,890 --> 00:24:27,610 E como a historia vai, el creou dúas contas de proba, os usuarios un e dous, 491 00:24:27,610 --> 00:24:28,690 que entón excluídos. 492 00:24:28,690 --> 00:24:32,780 E así, Zuck, como é o seu nome de usuario en Facebook, é o número de ID tres, 493 00:24:32,780 --> 00:24:36,110 e todos temos un número moi maior que tres destes días. 494 00:24:36,110 --> 00:24:37,980 De feito, nalgún momento Facebook se afastou 495 00:24:37,980 --> 00:24:42,410 do mesmo a usar un int, que é un valor de 32 bits, a través da 496 00:24:42,410 --> 00:24:44,480 o seguinte paso, esencialmente un longo tempo para que 497 00:24:44,480 --> 00:24:47,150 que poderían albergar incluso os usuarios máis se rexistrar. 498 00:24:47,150 --> 00:24:49,420 Así, un feito histórico pouco divertido. 499 00:24:49,420 --> 00:24:51,660 >> Entón, iso é só o sintaxe básica cos que 500 00:24:51,660 --> 00:24:54,470 poderiamos facer un par de consultas, pero podemos, en realidade, 501 00:24:54,470 --> 00:24:56,744 facer unha chea máis cousas con SQL. 502 00:24:56,744 --> 00:24:58,910 E vai ver, en última instancia, no problema de definir sete 503 00:24:58,910 --> 00:25:01,034 que ten que facer unha número de decisións de proxecto, 504 00:25:01,034 --> 00:25:03,290 entre eles será que tipo de datos para usar. 505 00:25:03,290 --> 00:25:08,240 Así como en C, non hai datos tipo nunha base de datos, como MySQL, 506 00:25:08,240 --> 00:25:12,640 e tipo de datos que ten que escoller de incluír estes campos aquí. 507 00:25:12,640 --> 00:25:17,287 Char, varchar, Int, gran int, decimal e data e hora, e moitos outros. 508 00:25:17,287 --> 00:25:18,370 Entón, imos realmente facelo. 509 00:25:18,370 --> 00:25:21,060 Imos finxir que non man que mesa do usuario 510 00:25:21,060 --> 00:25:25,080 e deixe-me ir adiante e crear, por eu, nas conferencias database-- 511 00:25:25,080 --> 00:25:31,000 en realidade, deixe-me ir adiante e eliminar a mesa que teño aquí xa 512 00:25:31,000 --> 00:25:32,940 para que poidamos realmente crear este. 513 00:25:32,940 --> 00:25:33,550 Whoops. 514 00:25:33,550 --> 00:25:35,970 Vou deixar caer este mesa, e agora estou 515 00:25:35,970 --> 00:25:38,337 indo a ir de novo para o charla de base de datos aquí, 516 00:25:38,337 --> 00:25:40,420 Vou crear unha táboa chamados de usuarios e imos 517 00:25:40,420 --> 00:25:43,010 só facer tres columnas inicialmente e prema en Ir. 518 00:25:43,010 --> 00:25:44,990 >> Agora, na súa maior parte, unha vez máis, este é só 519 00:25:44,990 --> 00:25:48,570 usando esta ferramenta gráfica chamada phpMyAdmin, eo que estamos facendo agora 520 00:25:48,570 --> 00:25:49,600 é a creación dunha táboa. 521 00:25:49,600 --> 00:25:53,170 Entón, iso é como Arquivo indo, Novo, e crear un novo ficheiro de Excel. 522 00:25:53,170 --> 00:25:55,440 Entón, está me pedindo algo cuestións, de esquerda a dereita, 523 00:25:55,440 --> 00:25:58,620 cal é o nome da primeira columna, e logo, o nome da segunda columna, 524 00:25:58,620 --> 00:25:59,560 e o nome do terceiro. 525 00:25:59,560 --> 00:26:00,518 Entón, imos recrear iso. 526 00:26:00,518 --> 00:26:05,460 ID, nome de usuario e logo, era un, e despois de hash era outra. 527 00:26:05,460 --> 00:26:08,970 Entón, o que debe o tipo de datos ser-se agora a un campo como ID? 528 00:26:08,970 --> 00:26:14,470 >> Aquí está a lista completa de tipos de datos dispoñibles para vostede nunha base de datos, 529 00:26:14,470 --> 00:26:16,070 e polo de agora imos só ir con int. 530 00:26:16,070 --> 00:26:18,160 Valor de 32 bits, non pensar de forma realista eu son 531 00:26:18,160 --> 00:26:21,484 terá máis que 4 millóns usuarios na miña conta, no meu servizo, 532 00:26:21,484 --> 00:26:23,650 entón eu vou manter en movemento á seguinte pregunta. 533 00:26:23,650 --> 00:26:25,490 Non vou especificar ou unha lonxitude de valores, 534 00:26:25,490 --> 00:26:28,540 non se aplicará aquí para un int, por si só. 535 00:26:28,540 --> 00:26:30,740 E agora podo especificar, parecer un patrón 536 00:26:30,740 --> 00:26:33,970 valor, que eu non vou especificar. 537 00:26:33,970 --> 00:26:36,050 Unha agrupación, eu non sei o que é. 538 00:26:36,050 --> 00:26:37,290 Un atributo. 539 00:26:37,290 --> 00:26:39,455 Agora nós realmente facer ter unha decisión de proxecto. 540 00:26:39,455 --> 00:26:42,580 Polo tanto, hai algúns campos aquí, non todos de que é aplicable, pero non asinado 541 00:26:42,580 --> 00:26:43,380 só significa o que? 542 00:26:43,380 --> 00:26:45,400 Que o int debe ser? 543 00:26:45,400 --> 00:26:46,210 Só non negativo. 544 00:26:46,210 --> 00:26:48,090 Entón iso ten que ser 0 enriba. 545 00:26:48,090 --> 00:26:51,120 Non, eu non estou indo para comprobar por que Quero que cada usuario teña unha identificación, 546 00:26:51,120 --> 00:26:52,470 el non pode ser nulo. 547 00:26:52,470 --> 00:26:55,949 E entón, nós conseguimos algo máis decisións de deseño interesantes coma este. 548 00:26:55,949 --> 00:26:58,990 Volveremos a iso nun momento, pero o que outra característica da base de datos 549 00:26:58,990 --> 00:27:04,200 é, é que pode dicir o servidor de base de datos, vai adiante 550 00:27:04,200 --> 00:27:07,100 e optimizar a si mesmo, a súa RAM e espazo en disco duro, 551 00:27:07,100 --> 00:27:11,770 de xeito que selecciona e insercións, e exclusións e actualizacións son moi rápidos. 552 00:27:11,770 --> 00:27:13,250 Compare isto con pset5. 553 00:27:13,250 --> 00:27:16,259 >> Se quere buscar algo na súa táboa de hash, que 554 00:27:16,259 --> 00:27:18,300 pensa como unha base de datos, que tiña que facer todo o 555 00:27:18,300 --> 00:27:21,500 traballar para facer a súa táboa hash rápido. 556 00:27:21,500 --> 00:27:22,840 É coma se, obviamente, vostede. 557 00:27:22,840 --> 00:27:23,060 Non? 558 00:27:23,060 --> 00:27:26,080 Vostede tiña que poñer no tempo todo ben axustando as cousas, recibindo unha función hash 559 00:27:26,080 --> 00:27:27,820 dereita, para descubrir como moitos baldes de ter. 560 00:27:27,820 --> 00:27:29,611 >> Pero o que é bo, unha vez máis, sobre unha base de datos é 561 00:27:29,611 --> 00:27:31,762 só punt todos isto para outras persoas 562 00:27:31,762 --> 00:27:33,720 que penso que este a través de ti, e que 563 00:27:33,720 --> 00:27:37,170 Eu vou dicir aquí, baixo contido é que o meu campo ID 564 00:27:37,170 --> 00:27:41,149 será a principal forma de identificación de usuarios na base de datos. 565 00:27:41,149 --> 00:27:42,940 Non vou pensar de Zamyla como Zamyla, 566 00:27:42,940 --> 00:27:45,800 Vou pensar en ela como o número 6. 567 00:27:45,800 --> 00:27:49,814 >> Por que é quizais mellor intuitivamente pensar e modelo 568 00:27:49,814 --> 00:27:52,480 cada unha das súas liñas individuais usando un número en vez de algo 569 00:27:52,480 --> 00:27:56,480 como unha corda, como o Zamyla ou Gabe ou máis corda aínda? 570 00:27:56,480 --> 00:27:57,444 Si? 571 00:27:57,444 --> 00:28:00,117 >> Audiencia: Un ID é único? 572 00:28:00,117 --> 00:28:01,200 DAVID J. Malan: Diga de novo? 573 00:28:01,200 --> 00:28:02,283 Audiencia: Un ID é único? 574 00:28:02,283 --> 00:28:04,400 DAVID J. Malan: Un ID é único, pero suppose-- 575 00:28:04,400 --> 00:28:06,320 segundo o caso, en xeral, con nomes de usuarios, supoña 576 00:28:06,320 --> 00:28:10,110 Eu tamén dixo que só pode haber un Zamyla no mundo, e só un Gabe. 577 00:28:10,110 --> 00:28:13,730 Podería impoñer a singularidade constrangimento en cordas, tamén, se eu quixese. 578 00:28:13,730 --> 00:28:15,550 Entón, non é un mal pensamento. 579 00:28:15,550 --> 00:28:16,500 >> Audiencia: Máis seguro. 580 00:28:16,500 --> 00:28:17,874 >> DAVID J. Malan: Máis seguro, por que? 581 00:28:17,874 --> 00:28:20,705 Audiencia: Non pode dicir que é que, como no usuario. 582 00:28:20,705 --> 00:28:22,580 DAVID J. Malan: OK, vostede Non pode dicir que o usuario 583 00:28:22,580 --> 00:28:24,380 é que por iso hai unha Privacidade aspecto a el, 584 00:28:24,380 --> 00:28:27,810 especialmente as identificacións quizais aparecendo nas URLs. 585 00:28:27,810 --> 00:28:29,960 Entón, por suposto, que podería tipo de traballo, tamén. 586 00:28:29,960 --> 00:28:30,640 Outros pensamentos? 587 00:28:30,640 --> 00:28:31,383 Si? 588 00:28:31,383 --> 00:28:34,316 >> Audiencia: É máis fácil realizar operacións nun int. 589 00:28:34,316 --> 00:28:35,940 DAVID J. Malan: Esa é a verdadeira kicker. 590 00:28:35,940 --> 00:28:38,850 É só máis eficiente, ou máis doado para o ordenador, 591 00:28:38,850 --> 00:28:40,431 para realizar operacións sobre un número enteiro. 592 00:28:40,431 --> 00:28:40,930 Non? 593 00:28:40,930 --> 00:28:43,905 Un int se pode garantir a ser de 32 bits, mentres que Zamyla 594 00:28:43,905 --> 00:28:47,660 está a poucos caracteres, Gabriel é un pouco máis caracteres, 595 00:28:47,660 --> 00:28:51,930 Davenport é moi longa, e por iso é non é especialmente eficaz para usar 596 00:28:51,930 --> 00:28:55,860 cordas para comparar valores e buscar para os campos e campos de actualización, 597 00:28:55,860 --> 00:28:57,790 se pode ir lonxe con só un número enteiro. 598 00:28:57,790 --> 00:28:59,090 Só 32 bits. 599 00:28:59,090 --> 00:29:02,570 Así, nomes de usuario, tamén, deste xeito, Non ten que ser único, 600 00:29:02,570 --> 00:29:05,040 aínda que probablemente debería ser, e mesmo deste xeito tamén 601 00:29:05,040 --> 00:29:07,520 un usuario podería ser permitido cambiar o seu nome de usuario. 602 00:29:07,520 --> 00:29:10,810 >> Entón, imos agora deixar este como o medios primarios de identificar o usuario. 603 00:29:10,810 --> 00:29:13,510 É dicir dicir a base de datos dalle optimizar-se 604 00:29:13,510 --> 00:29:17,065 de xeito que os emerxentes ollar en ID son super rápido. 605 00:29:17,065 --> 00:29:19,620 AI, horriblemente nomeado, só significa auto incremento, 606 00:29:19,620 --> 00:29:21,500 e esta é a comprobación caixa hai que comprobar 607 00:29:21,500 --> 00:29:24,614 para especificar que o campo ID para ser actualizado automaticamente para min, 608 00:29:24,614 --> 00:29:26,530 e entón eu vou rolar para a dereita aquí 609 00:29:26,530 --> 00:29:29,279 e, sinceramente, eu non estou realmente interesado máis en calquera destes campos. 610 00:29:29,279 --> 00:29:30,630 Certamente non é de hoxe. 611 00:29:30,630 --> 00:29:33,770 >> Entón, eu vou volver aquí, para a primeira columna, onde 612 00:29:33,770 --> 00:29:35,830 Necesito especificar nome de usuario e haxix, e imos 613 00:29:35,830 --> 00:29:38,080 polo menos no foco segundo para agora. 614 00:29:38,080 --> 00:29:41,498 Int probablemente non é a opción correcta, Entón, o que fai máis sentido, se cadra? 615 00:29:41,498 --> 00:29:42,741 >> Audiencia: Texto. 616 00:29:42,741 --> 00:29:43,824 DAVID J. Malan: Diga de novo? 617 00:29:43,824 --> 00:29:44,710 Audiencia: Texto. 618 00:29:44,710 --> 00:29:44,980 DAVID J. Malan: Texto? 619 00:29:44,980 --> 00:29:45,590 OK, eu oín texto. 620 00:29:45,590 --> 00:29:46,090 Que máis? 621 00:29:46,090 --> 00:29:50,520 622 00:29:50,520 --> 00:29:53,860 Nós medio que ten unha morea de opcións que son de natureza textual. 623 00:29:53,860 --> 00:29:55,990 Entón, cando e por que, facer usa algún destes? 624 00:29:55,990 --> 00:29:59,560 Ben char, ao contrario do que pode pensar, non é un único carácter. 625 00:29:59,560 --> 00:30:01,550 É un número específico de caracteres. 626 00:30:01,550 --> 00:30:04,600 Entón, se sabemos que todos os nomes de usuario debe ser como oito caracteres, 627 00:30:04,600 --> 00:30:08,490 como adoitaba ser común en persoas maiores sistemas de ordenador, eu podería dicir de char 628 00:30:08,490 --> 00:30:09,830 e entón eu podería dicir 8 aquí. 629 00:30:09,830 --> 00:30:12,930 É cando a terceira columna se fai aplicable ao crear unha táboa. 630 00:30:12,930 --> 00:30:15,450 >> Pero iso é medio chat porque algunhas persoas poden 631 00:30:15,450 --> 00:30:17,660 quero ter un nome de usuario máis de oito caracteres, 632 00:30:17,660 --> 00:30:19,743 algunhas persoas poden querer ten un nome máis curto, 633 00:30:19,743 --> 00:30:22,210 entón por que comprometerse me a un número específico? 634 00:30:22,210 --> 00:30:24,710 Por que non ter unha variable número de caracteres e só 635 00:30:24,710 --> 00:30:28,580 dicir que a lonxitude máxima dun nome é, eu non sei, como 64 caracteres. 636 00:30:28,580 --> 00:30:31,780 Eu non podo pensar en todos os amigos que teñen nomes máis de 64 caracteres, 637 00:30:31,780 --> 00:30:34,810 e aínda que sexa moi curto que podería certamente bater-lo arbitrariamente. 638 00:30:34,810 --> 00:30:37,330 >> Entón varchar é unha variable número de caracteres. 639 00:30:37,330 --> 00:30:41,010 O texto non é un mal instinto, e francamente que tipo de fai o que di, 640 00:30:41,010 --> 00:30:45,460 pero un campo de texto pode ser como 65.000 bytes, polo menos. 641 00:30:45,460 --> 00:30:50,790 Isto pode ser unha esaxeración para un campo, e, de feito, si, 65.535. 642 00:30:50,790 --> 00:30:53,740 Isto pode ser unha esaxeración para un nome, entón imos ir, normalmente, 643 00:30:53,740 --> 00:30:56,910 con varchars para textual campo e haxix tamén. 644 00:30:56,910 --> 00:30:59,990 Hash, verifícase que, poderíamos facer unha varchar ben ou algo parecido, 645 00:30:59,990 --> 00:31:03,080 pero non imos centrar hoxe no cifrado alí e os números 646 00:31:03,080 --> 00:31:05,210 que pode, en realidade, desexa utilizar para a súa lonxitude. 647 00:31:05,210 --> 00:31:07,430 >> Pero déixeme rolar para a dereita. 648 00:31:07,430 --> 00:31:11,280 Só pode ter un índice primario de unha táboa, 649 00:31:11,280 --> 00:31:16,380 pero me gustaría aplicar calquera destes, agora, para o nome de usuario, diría? 650 00:31:16,380 --> 00:31:21,980 O que debe ser nome de usuario baseada nunha praza comprensión destas catro opcións? 651 00:31:21,980 --> 00:31:23,340 Só polos seus nomes? 652 00:31:23,340 --> 00:31:24,140 >> Audiencia: Unique. 653 00:31:24,140 --> 00:31:25,100 >> DAVID J. Malan: tan único, non? 654 00:31:25,100 --> 00:31:28,190 Así, verifícase que non só podería dis a unha base de datos, con antelación, 655 00:31:28,190 --> 00:31:30,380 esta é a principal forma identificación de campos. 656 00:31:30,380 --> 00:31:32,990 Tamén pode dicir que este é será un campo exclusivo. 657 00:31:32,990 --> 00:31:34,700 Non será a cousa que eu confiar, 658 00:31:34,700 --> 00:31:38,490 pero me gustaría que a base de datos para teñen esencialmente que, se condición, de xeito 659 00:31:38,490 --> 00:31:42,340 que se eu tente rexistrar dous usuarios co mesmo nome, 660 00:31:42,340 --> 00:31:44,360 o flat out base de datos non me vai deixar. 661 00:31:44,360 --> 00:31:47,490 Podería ter un código adicional en PHP que impide que logo, 662 00:31:47,490 --> 00:31:50,640 a base de datos, pero, tamén, pode garantir que iso non vai acontecer. 663 00:31:50,640 --> 00:31:53,370 >> Agora, como un aparte, especialmente canto pensa sobre proxectos finais, 664 00:31:53,370 --> 00:31:57,030 Teña en conta que de posiciona-lo e chea texto son realmente moi útil. 665 00:31:57,030 --> 00:32:01,080 Se ten unha base de datos máis grande, non con decenas, pero con centos ou miles 666 00:32:01,080 --> 00:32:05,270 ou mesmo millóns de campos, pode tamén dicir a base de datos con antelación 667 00:32:05,270 --> 00:32:07,980 este é un campo que eu vou estar buscando en un monte. 668 00:32:07,980 --> 00:32:10,520 Quizais o seu nome de usuario, quizais sexa bio, se está 669 00:32:10,520 --> 00:32:13,750 facer un sitio Facebook, como que ten números que o usuario ten permiso 670 00:32:13,750 --> 00:32:16,799 para salvar, e se quere dicir a base de datos de antemán 671 00:32:16,799 --> 00:32:20,090 Eu vou estar á procura neste campo moito, pero non é necesariamente única, 672 00:32:20,090 --> 00:32:22,800 pode especificar crear me un índice. 673 00:32:22,800 --> 00:32:27,990 Ou, pode dicir que tamén me permite facer tipo de procuras arbitrarias como Command 674 00:32:27,990 --> 00:32:30,420 ou Control F, como podería, nun procesador de texto, 675 00:32:30,420 --> 00:32:34,184 para que poida ollar cordas arbitrarias ou substrings neste ámbito. 676 00:32:34,184 --> 00:32:36,600 Noutras palabras, estamos chegando ao punto no semestre 677 00:32:36,600 --> 00:32:40,720 onde non se preocupe como aplicar as cousas de forma eficiente. 678 00:32:40,720 --> 00:32:44,540 Só ten que saber sobre o que decisións de proxecto para facer de xeito que está a 679 00:32:44,540 --> 00:32:48,470 empregando as ferramentas certas para o comercio, a fin de alavancar recursos 680 00:32:48,470 --> 00:32:50,380 que outros construíron para ti. 681 00:32:50,380 --> 00:32:54,240 Entón, para recapitular, principal só debe ten un, pode que só un, 682 00:32:54,240 --> 00:32:59,630 e que é a cousa que está comprometéndose a mediante a identificación de campos exclusivamente. 683 00:32:59,630 --> 00:33:02,710 Único é só semellante en espírito, pero pode só ocasionalmente usalo, 684 00:33:02,710 --> 00:33:04,530 pero quere que a base de datos para impoñelas la. 685 00:33:04,530 --> 00:33:08,050 Índice significa só cautelarmente acelerar as cousas no futuro 686 00:33:08,050 --> 00:33:10,230 para que eu poida buscar cousas neste ámbito. 687 00:33:10,230 --> 00:33:13,700 E, a continuación, o texto completo é xeralmente para parágrafos, ou ensaios, ou organismos grandes 688 00:33:13,700 --> 00:33:16,270 de texto onde Tamén pode querer ter 689 00:33:16,270 --> 00:33:19,420 curinga como o equivalente de estrelas. 690 00:33:19,420 --> 00:33:19,920 Right. 691 00:33:19,920 --> 00:33:22,580 >> Entón, que era unha especie de moi a todos dunha vez. 692 00:33:22,580 --> 00:33:25,220 A ver se non podemos destilar un par destes recursos 693 00:33:25,220 --> 00:33:29,540 e entón construír algo moi sinxelo, pero poderosa. 694 00:33:29,540 --> 00:33:31,380 Así, entre a outra decisións de proxecto que está 695 00:33:31,380 --> 00:33:34,005 en definitiva, vai ter é ao longo as liñas de mecanismos de almacenamento. 696 00:33:34,005 --> 00:33:37,370 E déixeme só facer mención a este en anticipación de proxectos finais, 697 00:33:37,370 --> 00:33:42,020 e anticipación de deixar de dizer-- non imos facelo. 698 00:33:42,020 --> 00:33:43,820 Imos construír este pequeno primeira aplicación. 699 00:33:43,820 --> 00:33:48,070 Eu estou indo a ir no meu terminal fiestra, e aquí non é 700 00:33:48,070 --> 00:33:52,500 só counter.php, que imos agora para se librar de como non pertinente, 701 00:33:52,500 --> 00:33:54,570 pero temos un grupo enteiro de directorios e esta 702 00:33:54,570 --> 00:33:58,080 vai ser moi similar en espírito o que verás no conxunto de problemas sete. 703 00:33:58,080 --> 00:34:00,980 >> Polo tanto, temos tres directorios inclúe público e modelos, que 704 00:34:00,980 --> 00:34:05,040 é exactamente de onde paramos no Luns con todo o noso paradigma MVC. 705 00:34:05,040 --> 00:34:09,290 E, para recapitular, en público está indo a ir calquera arquivo que quero que os usuarios realmente 706 00:34:09,290 --> 00:34:12,969 v poder visitar en seu navegador vía URL. 707 00:34:12,969 --> 00:34:13,502 Modelo. 708 00:34:13,502 --> 00:34:14,710 Que poñemos en modelos? 709 00:34:14,710 --> 00:34:17,070 Que tipo de cousas? 710 00:34:17,070 --> 00:34:21,659 Non era moito, pero unha parella arquivos, polo menos, o luns. 711 00:34:21,659 --> 00:34:22,619 Si. 712 00:34:22,619 --> 00:34:23,100 >> Audiencia: cabeceira e pé? 713 00:34:23,100 --> 00:34:24,516 >> DAVID J. Malan: Cabeceira e Rodapé. 714 00:34:24,516 --> 00:34:26,679 Polo tanto, temos algo similar hoxe, tamén. 715 00:34:26,679 --> 00:34:30,330 Temos máis algúns arquivos, pero Rodapé vexo, vexo cabeceira, 716 00:34:30,330 --> 00:34:31,909 e logo, unha morea de outros ficheiros. 717 00:34:31,909 --> 00:34:35,482 Polo tanto, este é o equivalente da visión V MVC, que, 718 00:34:35,482 --> 00:34:37,690 unha vez máis, será un pouco máis claro no conxunto de problemas de sete, 719 00:34:37,690 --> 00:34:40,380 pero isto é só un cartafol que estou poñendo unha morea de miña estética. 720 00:34:40,380 --> 00:34:42,840 Moi do meu HTML, moitas das miñas formas. 721 00:34:42,840 --> 00:34:46,899 Mentres tanto, inclúe, é outra directorio que ten estes tres arquivos 722 00:34:46,899 --> 00:34:48,440 e imos dar un ollo rápida para estes. 723 00:34:48,440 --> 00:34:51,699 >> Eu estou indo a ir adiante e abrir config.php. 724 00:34:51,699 --> 00:34:54,610 Como se ve, moi como no inicio do prazo, 725 00:34:54,610 --> 00:34:57,850 vostede incluíu afiada CS50 dot h con pset7. 726 00:34:57,850 --> 00:35:00,780 No exemplo de hoxe, vai para facer o equivalente a de que 727 00:35:00,780 --> 00:35:03,600 cunha declaración requiren que efectivamente 728 00:35:03,600 --> 00:35:05,340 inclúe esas varias liñas. 729 00:35:05,340 --> 00:35:08,225 Entón, para ser claro, este é un arquivo chamado config.php. 730 00:35:08,225 --> 00:35:09,350 E teña en conta o que está facendo. 731 00:35:09,350 --> 00:35:11,970 É aparentemente facendo algo transformando mensaxes enigmáticas, erro 732 00:35:11,970 --> 00:35:13,680 para que poida velos no navegador. 733 00:35:13,680 --> 00:35:15,860 É, entón, ao parecer requirindo dous outros ficheiros 734 00:35:15,860 --> 00:35:19,530 entón iso é como #include en C, e entón este que fixo ver, 735 00:35:19,530 --> 00:35:22,720 e nós invocados, iso se transforma que cesta da compra como a función. 736 00:35:22,720 --> 00:35:25,610 >> Isto significa unha vontade de cookie ser enviado de volta e cara atrás. 737 00:35:25,610 --> 00:35:27,290 Entón, por que iso é interesante? 738 00:35:27,290 --> 00:35:32,460 Ben, se volvemos a este directorio e abrir-se, por exemplo, 739 00:35:32,460 --> 00:35:33,741 constance.php. 740 00:35:33,741 --> 00:35:38,840 Teña en conta que o PHP fai constantes de apoio, non é completamente como #define en C. 741 00:35:38,840 --> 00:35:41,290 Pola contra, ten literalmente dicir definido, e previo 742 00:35:41,290 --> 00:35:44,110 que eu teño gardado con antelación catro constantes neste arquivo. 743 00:35:44,110 --> 00:35:47,020 Unha base de datos para a de hoxe, para meu contrasinal para o meu nome de usuario, 744 00:35:47,020 --> 00:35:48,690 e para o nome do servidor. 745 00:35:48,690 --> 00:35:51,644 Entón, estas son realmente vai ser moi semellante en conxunto de problemas sete. 746 00:35:51,644 --> 00:35:54,560 E para rematar, e é aí onde eu son indo para obter algunhas funcións agradable 747 00:35:54,560 --> 00:35:59,000 do equipo, en functions.php é unha morea de código que escribiu, 748 00:35:59,000 --> 00:36:01,040 e eu roubei algunhas destas do conxunto de problemas de sete 749 00:36:01,040 --> 00:36:05,920 para hoxe, que fai unha morea de cousas e imos só ollar para un deles 750 00:36:05,920 --> 00:36:07,270 en particular. 751 00:36:07,270 --> 00:36:09,720 Esta función aquí, consulta, será 752 00:36:09,720 --> 00:36:13,600 a función PHP que chamamos a fin de realizar SQL. 753 00:36:13,600 --> 00:36:16,070 Un momento atrás, estabamos empregando phpMyAdmin, pero iso é só 754 00:36:16,070 --> 00:36:18,720 por tipo de efectos de aprendizaxe e fins de diagnóstico 755 00:36:18,720 --> 00:36:20,494 e esquecendo o seu conxunto de datos. 756 00:36:20,494 --> 00:36:22,660 Cando realmente usar o seu base de datos, vostede, o ser humano, 757 00:36:22,660 --> 00:36:24,100 son, obviamente, non vai estar tirando un web 758 00:36:24,100 --> 00:36:25,740 páxina cada vez que alguén rexistra. 759 00:36:25,740 --> 00:36:29,870 Vai escribir un código que insercións e exclúe usuarios baixo demanda, 760 00:36:29,870 --> 00:36:32,490 e nós imos facelo por medio da función de consulta. 761 00:36:32,490 --> 00:36:35,360 Se eu agora vaia para abaixo, non hai será máis algunhas funcionalidades. 762 00:36:35,360 --> 00:36:37,170 Redirect vai ser unha función que escribimos 763 00:36:37,170 --> 00:36:40,160 para ti que lle permite enviar o usuario a outra URL, 764 00:36:40,160 --> 00:36:43,780 e procesar é unha función, así como vimos o luns, que realmente fai 765 00:36:43,780 --> 00:36:48,000 unha plantilla, pero máis para estes na forma de pset7 da propia andaina. 766 00:36:48,000 --> 00:36:50,500 De momento, imos adiante e facelo. 767 00:36:50,500 --> 00:36:54,860 >> Deixe-me ir para a miña mesa de conferencias e ver que hai actualmente nada 768 00:36:54,860 --> 00:36:59,640 aquí aínda, e deixe-me ir tamén no meu directorio público, onde 769 00:36:59,640 --> 00:37:02,780 hai só un arquivo, index.php. 770 00:37:02,780 --> 00:37:06,920 Este ficheiro semella super sinxelo No momento, el se parece con isto. 771 00:37:06,920 --> 00:37:09,110 Moi parecido coma nós deixou o luns. 772 00:37:09,110 --> 00:37:11,945 Estou esixindo o ficheiro, config.php que é en 773 00:37:11,945 --> 00:37:15,160 un inclúe directorio, que está dot dot, meus pais, 774 00:37:15,160 --> 00:37:17,650 e despois é só facer este ficheiro. 775 00:37:17,650 --> 00:37:18,960 Entón, cal é esta imaxe? 776 00:37:18,960 --> 00:37:24,700 >> Imos abrir nos meus modelos form.php, e imos ver iso. 777 00:37:24,700 --> 00:37:28,500 Super sinxelo ao parecer esta forma é presentará, ata un $ _GET ou $ _POST. 778 00:37:28,500 --> 00:37:29,320 Corrección de sanidade rápida. 779 00:37:29,320 --> 00:37:33,760 780 00:37:33,760 --> 00:37:35,690 Literalmente visualmente buscar o arquivo. 781 00:37:35,690 --> 00:37:36,610 Método iguala post. 782 00:37:36,610 --> 00:37:39,280 Entón, el non vai utilizar o URL, como Google fai, que vai clasificar de ocultar 783 00:37:39,280 --> 00:37:41,030 a información por tras as escenas e é 784 00:37:41,030 --> 00:37:43,580 vai someterse a unha ficheiro chamado register.php, 785 00:37:43,580 --> 00:37:45,660 e que é o ficheiro que aínda non escribín 786 00:37:45,660 --> 00:37:47,610 pero o que é que isto vai para ollar como é iso. 787 00:37:47,610 --> 00:37:52,670 >> Se eu for a unha páxina separada Esta é o localhost / index.php parece. 788 00:37:52,670 --> 00:37:56,930 E, de novo, o servidor só asumindo index.php. 789 00:37:56,930 --> 00:37:57,910 Intro. 790 00:37:57,910 --> 00:37:59,870 Entón é aí onde estamos , Eo que quero facer 791 00:37:59,870 --> 00:38:02,450 é ser capaz de escribir cousas como David, e despois 792 00:38:02,450 --> 00:38:08,050 meu número de teléfono, o que vai dicir 617-555-1212 polo momento, cadastre 793 00:38:08,050 --> 00:38:09,910 e agora register.php non se atopou. 794 00:38:09,910 --> 00:38:11,440 Entón eu teño para aplicar iso. 795 00:38:11,440 --> 00:38:13,320 Entón, imos rapidamente látego algo como isto. 796 00:38:13,320 --> 00:38:18,640 Déixeme ir ao meu directorio público e facer gedit de register.php, 797 00:38:18,640 --> 00:38:22,300 e agora eu estou indo a ir adiante e iniciar o modo PHP, como fixemos o luns, 798 00:38:22,300 --> 00:38:25,430 e etiqueta preto do PHP, e imos facer un par de cousas. 799 00:38:25,430 --> 00:38:28,336 >> Entón, sei, desde escribir esta forma, 800 00:38:28,336 --> 00:38:29,960 que quero para comprobar o seguinte. 801 00:38:29,960 --> 00:38:35,670 Se está baleira, calquera que sexa o usuario escribiu para o campo de nome e logo 802 00:38:35,670 --> 00:38:39,860 Vou dicir algo como pedir desculpas falta nome. 803 00:38:39,860 --> 00:38:42,380 Peza desculpas, mentres, é non é unha cousa construída en PHP, 804 00:38:42,380 --> 00:38:45,970 é unha función que escribimos en functions.php para pset7 805 00:38:45,970 --> 00:38:47,940 para que teña acceso a el. 806 00:38:47,940 --> 00:38:53,830 Else se o outro campo está baleiro, número, entón eu son 807 00:38:53,830 --> 00:38:58,370 vai pedir desculpas ao usuario e dicir o número que falta. 808 00:38:58,370 --> 00:38:59,320 Salva este ficheiro. 809 00:38:59,320 --> 00:39:02,640 >> Agora imos volver para o meu navegador, volver ao foro ténteo de novo. 810 00:39:02,640 --> 00:39:04,070 Registre-se. 811 00:39:04,070 --> 00:39:05,090 Está ben. 812 00:39:05,090 --> 00:39:06,730 Non pasou nada, o que é bo. 813 00:39:06,730 --> 00:39:08,120 Non recibín unha mensaxe de erro. 814 00:39:08,120 --> 00:39:11,651 Pero se en vez diso, imos actualizar esta páxina, e non ofrecer algo. 815 00:39:11,651 --> 00:39:12,150 Caramba. 816 00:39:12,150 --> 00:39:15,350 817 00:39:15,350 --> 00:39:17,140 Fai iso. 818 00:39:17,140 --> 00:39:18,810 Registre-se. 819 00:39:18,810 --> 00:39:20,350 O que eu fixen de malo? 820 00:39:20,350 --> 00:39:24,860 Se baleiro, o nome $ _POST. 821 00:39:24,860 --> 00:39:26,350 Diga de novo? 822 00:39:26,350 --> 00:39:27,670 >> Oh, claro. 823 00:39:27,670 --> 00:39:30,919 Esquecín a parte máis importante, que é require ("../ includes / config.php."). 824 00:39:30,919 --> 00:39:34,210 825 00:39:34,210 --> 00:39:36,460 Necesito ter acceso ao Desculpe función, que 826 00:39:36,460 --> 00:39:37,770 É por iso que nada estaba acontecendo. 827 00:39:37,770 --> 00:39:39,460 A función non existe realmente. 828 00:39:39,460 --> 00:39:40,640 Entón, imos tentar iso de novo. 829 00:39:40,640 --> 00:39:42,350 Imos volver cargar a páxina, prema en Register. 830 00:39:42,350 --> 00:39:43,060 Está ben. 831 00:39:43,060 --> 00:39:43,770 Non é. 832 00:39:43,770 --> 00:39:45,700 Así, a saída que estamos ver aquí é o resultado 833 00:39:45,700 --> 00:39:47,685 de chamar unha desculpas función, super sinxelo, 834 00:39:47,685 --> 00:39:50,060 e el simplemente imprime o que quere Dou-lle como un argumento. 835 00:39:50,060 --> 00:39:51,370 >> Todo ben, entón imos cooperar. 836 00:39:51,370 --> 00:39:54,240 Imos ofrecer o meu nome como David, rexistrar, 837 00:39:54,240 --> 00:39:56,890 falta número Ok, imos prever que, tamén. 838 00:39:56,890 --> 00:39:58,650 617-555-1212. 839 00:39:58,650 --> 00:39:59,250 Registre-se. 840 00:39:59,250 --> 00:39:59,750 Está ben. 841 00:39:59,750 --> 00:40:02,760 Entón, todo está ben agora, só nada interesante está a suceder. 842 00:40:02,760 --> 00:40:06,000 Entón, agora imos facer algo máis interesante ocorrer así. 843 00:40:06,000 --> 00:40:09,980 Déixeme ir phpMyAdmin, e imos realmente crear unha táboa chamada usuarios, 844 00:40:09,980 --> 00:40:12,330 Vou darlle tres columnas, e eu rapidamente 845 00:40:12,330 --> 00:40:16,250 crear ID, e despois nome, e entón o número, 846 00:40:16,250 --> 00:40:18,832 eo campo ID eu son vai saír como un int. 847 00:40:18,832 --> 00:40:20,790 O campo do nome vou para deixar como varchar, 848 00:40:20,790 --> 00:40:23,257 e imos dicir 64, un tanto arbitrariamente. 849 00:40:23,257 --> 00:40:25,090 O número que eu vou para facer, xa sabe o que? 850 00:40:25,090 --> 00:40:27,350 Estamos indo a apoiar números norteamericanos aquí, 851 00:40:27,350 --> 00:40:31,510 entón eu vou facer algo como carbón e, a continuación, 10 caracteres 852 00:40:31,510 --> 00:40:34,540 max para un código de área e logo sete díxitos. 853 00:40:34,540 --> 00:40:37,870 E entón para acá, eu vou especificar auto incremento neste campo, 854 00:40:37,870 --> 00:40:40,550 facer esta unha chave primaria, e Eu estou indo a ir adiante e non 855 00:40:40,550 --> 00:40:42,240 comprobar calquera destes outros caixas. 856 00:40:42,240 --> 00:40:48,030 >> Entón, cando eu agora, finalmente, prema Gardar, e eu voltar á miña táboa de usuarios, 857 00:40:48,030 --> 00:40:52,270 este é o que parece que se me click agora unha estrutura New Tab. 858 00:40:52,270 --> 00:40:54,550 Entón iso, para ser claro, é só unha forma de phpMyAdmin 859 00:40:54,550 --> 00:40:58,570 de dicir a súa táboa de base de datos ten un ID, un nome e un número 860 00:40:58,570 --> 00:41:02,040 con esta configuración particulares e imos ignorar o resto dos campos 861 00:41:02,040 --> 00:41:03,140 alí polo momento. 862 00:41:03,140 --> 00:41:04,810 >> Entón agora o que quero facer? 863 00:41:04,810 --> 00:41:09,060 Entón, se eu ir agora para o meu código fonte, se está todo ben 864 00:41:09,060 --> 00:41:11,190 Quero realizar a consulta seguinte. 865 00:41:11,190 --> 00:41:14,970 Insire en, e podo só din os usuarios non estrictamente 866 00:41:14,970 --> 00:41:18,620 precisa para atrás os ácaros se é nin unha palabra perigosa como usuarios. 867 00:41:18,620 --> 00:41:22,810 Eu vou dicir o nome, número, e entón aquí estou 868 00:41:22,810 --> 00:41:24,960 non vai codificar a díxitos dos valores aínda. 869 00:41:24,960 --> 00:41:26,760 Vou poñer dous puntos de interrogación. 870 00:41:26,760 --> 00:41:29,320 E esta é unha convención en moitas linguas 871 00:41:29,320 --> 00:41:31,730 en que se quere ter un espazo reservado para unha cadea 872 00:41:31,730 --> 00:41:34,105 vai empregar o tema marcas, por razóns que vou 873 00:41:34,105 --> 00:41:36,370 volver a falar sobre seguridade, e aquí 874 00:41:36,370 --> 00:41:39,420 Vou pasar naqueles dous campos de publicar o nome, 875 00:41:39,420 --> 00:41:44,850 e, a continuación, publicar o número, e agora salva o arquivo. 876 00:41:44,850 --> 00:41:47,090 >> E agora eu vou baixar aquí é un super 877 00:41:47,090 --> 00:41:55,690 simplemente dicir rendersuccess.php, que será outro modelo. 878 00:41:55,690 --> 00:41:57,380 Vou crear moi rápido. 879 00:41:57,380 --> 00:42:06,270 Geditsuccess.php e eu só vou dicir éxito H1 nese ficheiro. 880 00:42:06,270 --> 00:42:06,990 Todo correcto. 881 00:42:06,990 --> 00:42:11,312 Entón, agora, imos voltar para o navegador, onde visitei antes. 882 00:42:11,312 --> 00:42:14,270 Imos ir adiante e confirmar que escribín en David, escribín un número de teléfono, 883 00:42:14,270 --> 00:42:15,390 rexístrese se. 884 00:42:15,390 --> 00:42:16,100 Caramba. 885 00:42:16,100 --> 00:42:17,420 O que eu fixen de malo? 886 00:42:17,420 --> 00:42:20,850 Entón, eu estou a ver un erro aquí, ten un erro na súa sintaxe SQL. 887 00:42:20,850 --> 00:42:24,900 Déixeme ir de volta para gedit, imos me volver register.php, 888 00:42:24,900 --> 00:42:28,830 eo que eu omitir que Era importante da última vez? 889 00:42:28,830 --> 00:42:29,722 Eu teño diso. 890 00:42:29,722 --> 00:42:32,930 Quere saber o que ademais de notar antes, pero eu teño diso. 891 00:42:32,930 --> 00:42:35,596 >> Entón agora imos volver, e iso foi útil para ver no navegador 892 00:42:35,596 --> 00:42:37,680 e é por iso que en config.php nós cuspir erros. 893 00:42:37,680 --> 00:42:41,770 Imos adiante e actualizar, prema en Continuar, o éxito. 894 00:42:41,770 --> 00:42:47,060 Entón, agora deixe-me ir ao meu base de datos aquí e prema en Usuarios, 895 00:42:47,060 --> 00:42:51,680 e navegar, e ter en conta que eu agora David ten no meu base de datos aquí. 896 00:42:51,680 --> 00:42:55,810 Agora tecnicamente esta web é aínda non está en internet pública, 897 00:42:55,810 --> 00:42:57,890 polo que non pode ter outro persoas en poñer aquí, 898 00:42:57,890 --> 00:43:01,120 pero se eu xa quixo, por exemplo, me envíe unha mensaxe de texto. 899 00:43:01,120 --> 00:43:03,920 Imos saír nun membro aquí e ver se iso realmente funciona. 900 00:43:03,920 --> 00:43:07,331 Eu estou indo a ir adiante e eliminar esta liña 901 00:43:07,331 --> 00:43:09,080 e imos borrar esta no vídeo máis tarde 902 00:43:09,080 --> 00:43:11,900 polo que non temos a toda internet texting me, 903 00:43:11,900 --> 00:43:17,270 e agora imos ir ata o navegador e nós falaremos sobre a charla 904 00:43:17,270 --> 00:43:22,040 e imos escribir diferente número aquí, rexistrar o éxito. 905 00:43:22,040 --> 00:43:25,550 >> Entón, agora, o meu propio número é presuntamente en a base de datos, e agora a parte divertida. 906 00:43:25,550 --> 00:43:28,774 Imos realmente usar o PHP para facer algo de programación, 907 00:43:28,774 --> 00:43:30,940 ou desde o mando liña ou dalgún outro lugar, 908 00:43:30,940 --> 00:43:32,773 e polo de agora eu son só vai mantelo simple 909 00:43:32,773 --> 00:43:36,230 e eu estou indo a ir ao meu directorio aquí e faga o seguinte. 910 00:43:36,230 --> 00:43:44,920 Rueiro Gedit imos dicir, imos chamalo de texto, #! / user / bin / Estructural PHP, 911 00:43:44,920 --> 00:43:46,700 como vimos a última vez. 912 00:43:46,700 --> 00:43:47,950 PHP. 913 00:43:47,950 --> 00:43:55,055 >> Agora eu vou esixen inclúe config.php 914 00:43:55,055 --> 00:43:57,360 aínda que isto pode inducir un pequeno erro. 915 00:43:57,360 --> 00:44:03,960 E agora eu estou indo a ir adiante e dicir liñas, consulta, seleccione estrela dos usuarios, 916 00:44:03,960 --> 00:44:08,149 e agora aquí eu vou facer unha técnica a última vez para cada liñas como liña. 917 00:44:08,149 --> 00:44:09,690 E eu vou facer algo sinxelo. 918 00:44:09,690 --> 00:44:19,090 Printf digamos que nome é ese, eo número é este, barra invertida n. 919 00:44:19,090 --> 00:44:23,320 E agora vou pasar na liña citar nome unquote, 920 00:44:23,320 --> 00:44:28,140 eo número da liña entre comiñas, e agora imos adiante 921 00:44:28,140 --> 00:44:31,430 ea fiestra do meu terminal chmod este a + x para facer 922 00:44:31,430 --> 00:44:33,970 este script chamado executable texto. 923 00:44:33,970 --> 00:44:36,080 E agora imos realizar texto. 924 00:44:36,080 --> 00:44:37,590 >> OK, entón o progreso. 925 00:44:37,590 --> 00:44:39,960 Entón, eu teño unha empresa escrita comando de script de liña, 926 00:44:39,960 --> 00:44:43,300 nunha linguaxe chamada PHP, que, debido a que requiren liña, 927 00:44:43,300 --> 00:44:46,380 ten acceso a todos aqueles configuración constantes que eu especificados. 928 00:44:46,380 --> 00:44:48,177 O nome da base de datos e así por diante. 929 00:44:48,177 --> 00:44:50,260 De feito, só para quedar claro que este non é un acaso, 930 00:44:50,260 --> 00:44:54,730 déixeme ir adiante e rexistrar, moi rápido, alguén como Rob 931 00:44:54,730 --> 00:44:58,890 e vai darlle o número 555-1212. 932 00:44:58,890 --> 00:45:01,557 >> E agora, se eu executar o script de novo, teña en conta o poder 933 00:45:01,557 --> 00:45:03,140 do que estamos facendo a base de datos. 934 00:45:03,140 --> 00:45:07,680 Agora eu inmediatamente vin o que o outras dúas liñas están no meu base de datos. 935 00:45:07,680 --> 00:45:10,699 Entón agora imos tratar de facer algo aínda máis extravagante dentro, 936 00:45:10,699 --> 00:45:12,740 e esta é a parte que temos Non probada anticipadamente, 937 00:45:12,740 --> 00:45:15,910 polo que a última vez que fixen iso as cousas foron horriblemente mal, 938 00:45:15,910 --> 00:45:17,120 dispoñemos de vídeo para ese efecto. 939 00:45:17,120 --> 00:45:18,286 >> De feito, si, divertido lado. 940 00:45:18,286 --> 00:45:20,480 Entón, a última vez, nun charla como hai dous anos, 941 00:45:20,480 --> 00:45:23,230 decidimos, eu decidir, para ser todo isto sería unha gran idea 942 00:45:23,230 --> 00:45:28,150 para xerar dinamicamente correos electrónicos en clase, utilizando toda a base de datos CS50 943 00:45:28,150 --> 00:45:33,390 alumnos, que nos deron os seus números e as súas operadoras de telefonía móbil que 944 00:45:33,390 --> 00:45:36,290 pode lembrar de pset0, como razoar, verifícase se 945 00:45:36,290 --> 00:45:40,650 Eu tiña un pequeno erro no meu programa e fixo un par de erros en 2012, eu creo. 946 00:45:40,650 --> 00:45:43,997 >> Polas que, unha que tiña para o lazo que fixo exactamente este tipo de cousas, 947 00:45:43,997 --> 00:45:46,580 iteración sobre a base de datos, a obtención dun nome da base de datos, 948 00:45:46,580 --> 00:45:49,940 nome da base de datos, e logo en cada iteración do lazo que eu mandei un correo electrónico. 949 00:45:49,940 --> 00:45:54,130 Pero no canto de enviar un correo electrónico, eu enviou un correo electrónico a primeira iteración, 950 00:45:54,130 --> 00:45:58,200 e dous correos electrónicos dunha segunda iteración, enviado tres correos electrónicos dunha segunda iteración, o que 951 00:45:58,200 --> 00:46:01,230 como pode lembrar da nosa discusión de notación asintótica 952 00:46:01,230 --> 00:46:06,400 esta gran O malo, como n ao cadrado é o número de mensaxes que eu enviei, 953 00:46:06,400 --> 00:46:08,560 pero non foi ata correos electrónicos foi mensaxes de texto. 954 00:46:08,560 --> 00:46:12,070 >> E como vostede sabe, a comparecencia non é super en alta ata o final do semestre 955 00:46:12,070 --> 00:46:15,360 e entón eu penso que sería bonito en o tempo para dicir: "Por que non está de clase?" 956 00:46:15,360 --> 00:46:17,880 O texto da mensaxe I enviado para toda a clase, 957 00:46:17,880 --> 00:46:22,140 e era divertido como o 50% do clase, pero os restantes 50%, algúns dos cales 958 00:46:22,140 --> 00:46:26,102 apavorei, enviei incrible doces notas apologéticas 959 00:46:26,102 --> 00:46:28,560 para o equipo de pedir desculpas por perder a charla só 960 00:46:28,560 --> 00:46:29,530 esta vez, non? 961 00:46:29,530 --> 00:46:32,790 962 00:46:32,790 --> 00:46:34,030 >> De xeito que sería horriblemente mal. 963 00:46:34,030 --> 00:46:37,030 Entón, nese espírito, imos tentar facer iso de novo, pero só co meu número. 964 00:46:37,030 --> 00:46:41,940 De antemán, no functions.php, Escribín esta función aquí. 965 00:46:41,940 --> 00:46:44,250 Chámase de texto, e leva en tres argumentos. 966 00:46:44,250 --> 00:46:46,360 Un número, un transportista, e unha mensaxe. 967 00:46:46,360 --> 00:46:50,390 >> Eu estou usando un switch, que marabillosas PHP levar cordas, e non só 968 00:46:50,390 --> 00:46:53,350 enteiros, e eu non aplicar todo o soporte para iso aínda, 969 00:46:53,350 --> 00:46:55,370 Acaba de facer AT & T e Verizon. 970 00:46:55,370 --> 00:46:57,610 Pois verifícase se que, con estes transportistas 971 00:46:57,610 --> 00:47:00,570 eles teñen correo electrónico para gateways SMS, a través do cal pode realmente 972 00:47:00,570 --> 00:47:05,529 enviar un correo electrónico a un enderezo como número de teléfono no vtext.com 973 00:47:05,529 --> 00:47:08,070 e se o usuario non ten bloqueado as mensaxes, que vai pasar por 974 00:47:08,070 --> 00:47:09,340 é unha mensaxe de texto. 975 00:47:09,340 --> 00:47:13,270 >> Agora, para facelo, eu vou ter que engadir un campo moi rápido para o meu banco de datos. 976 00:47:13,270 --> 00:47:15,470 Eu estou indo a ir a miña estrutura, e estou 977 00:47:15,470 --> 00:47:21,880 indo a ir adiante e engade un campo ao final da táboa. 978 00:47:21,880 --> 00:47:25,227 Imos facer clic Go, e eu son vai chamar esta transportadora 979 00:47:25,227 --> 00:47:27,310 e de momento eu vou deixar isto como un texto da barra, 980 00:47:27,310 --> 00:47:29,320 pero podemos ser máis sofisticado no futuro. 981 00:47:29,320 --> 00:47:31,961 Eu estou indo a ir rápido na miña mesa, e eu son 982 00:47:31,961 --> 00:47:34,210 vai se librar de Rob, porque iso é un número falso, 983 00:47:34,210 --> 00:47:38,540 Eu estou indo a ir a editar aquí e estou vai cambiar a miña operadora manualmente 984 00:47:38,540 --> 00:47:43,410 para ser Verizon, que el é, e agora aquí. 985 00:47:43,410 --> 00:47:44,980 >> Imos facer unha verificación de sanidade rápida. 986 00:47:44,980 --> 00:47:52,730 Imos abrir o noso guión de texto, que parécese tanto, transportista é% s. 987 00:47:52,730 --> 00:47:58,230 Estamos facendo moito máis erro comprobación do que eu fixen en 2012, portador. 988 00:47:58,230 --> 00:48:01,160 E agora, eu estou indo a ir adiante e re-executar o script. 989 00:48:01,160 --> 00:48:01,660 Está ben. 990 00:48:01,660 --> 00:48:06,100 Transporte é Verizon, o que significa Agora espero que eu poida facer exactamente isto. 991 00:48:06,100 --> 00:48:08,360 Correctamente este ano, espero, aquí imos nós. 992 00:48:08,360 --> 00:48:12,200 >> Entón, dentro dese loop for, eu son vai non só ten ese printf, 993 00:48:12,200 --> 00:48:15,990 Eu tamén vou chamar texto e o uso desta recordo función 994 00:48:15,990 --> 00:48:19,670 era que leva un número, un transporte, e unha mensaxe. 995 00:48:19,670 --> 00:48:23,310 Entón imos ver, o número vai ser liña entre comiñas "número", 996 00:48:23,310 --> 00:48:31,660 Cita liña "transportista", pecha comiñas ea última foi a mensaxe. 997 00:48:31,660 --> 00:48:36,250 Non romper este ano, punto e coma. 998 00:48:36,250 --> 00:48:36,780 >> Está ben. 999 00:48:36,780 --> 00:48:38,280 Dedos cruzados. 1000 00:48:38,280 --> 00:48:39,970 A ver se isto funciona. 1001 00:48:39,970 --> 00:48:41,720 Todo ben, entón. 1002 00:48:41,720 --> 00:48:43,000 Aquí imos nós. 1003 00:48:43,000 --> 00:48:47,380 Imos desbloquear o teléfono, cruzar os dedos, maldición. 1004 00:48:47,380 --> 00:48:50,300 May-- variable indefinida oh espera, espera, espera, moi rápido. 1005 00:48:50,300 --> 00:48:51,340 Moi rápido, moi rápido. 1006 00:48:51,340 --> 00:48:53,380 Isto é totalmente paga a pena. 1007 00:48:53,380 --> 00:48:57,710 Deixe-me incorporarse, deixe-me incorporarse, uh-oh. 1008 00:48:57,710 --> 00:48:59,965 Grazas, os textos teñen iniciado a partir de outra persoa. 1009 00:48:59,965 --> 00:49:04,770 1010 00:49:04,770 --> 00:49:11,650 Deixe-me ir adiante e abrir reais rápido, dropbox.php / mail aquí. 1011 00:49:11,650 --> 00:49:12,660 Espera. 1012 00:49:12,660 --> 00:49:14,455 Realmente paga a pena. 1013 00:49:14,455 --> 00:49:17,430 Descargas. 1014 00:49:17,430 --> 00:49:18,560 OK, fonte src8m. 1015 00:49:18,560 --> 00:49:19,700 Está ben. 1016 00:49:19,700 --> 00:49:21,380 >> Precisa máis unha liña aquí. 1017 00:49:21,380 --> 00:49:24,530 Oh alí está, é en Frosh IMS, é o rexistro en tres. 1018 00:49:24,530 --> 00:49:28,820 Oh Ola, Margo, moitas grazas. 1019 00:49:28,820 --> 00:49:31,130 OK, e eu estaba falta esa liña aquí. 1020 00:49:31,130 --> 00:49:33,010 Entón deixe-me incorporarse rapidamente esta liña de código, 1021 00:49:33,010 --> 00:49:36,200 que inclúe o correo electrónico ou biblioteca que realmente quero usar, 1022 00:49:36,200 --> 00:49:38,300 Vou rapidamente volver en funcións, 1023 00:49:38,300 --> 00:49:42,337 Eu estou indo a ir ao principio desta arquivo e esixen o ficheiro, así como, 1024 00:49:42,337 --> 00:49:45,420 e agora eu estou indo realmente cruzar meu dedos cando volten ao mando 1025 00:49:45,420 --> 00:49:49,530 guión de liña, o que está dentro directorio servidor local de hoxe. 1026 00:49:49,530 --> 00:49:50,610 Texto Executar. 1027 00:49:50,610 --> 00:49:52,720 Intro. 1028 00:49:52,720 --> 00:49:53,220 Mail. 1029 00:49:53,220 --> 00:49:53,719 Espera. 1030 00:49:53,719 --> 00:49:58,850 1031 00:49:58,850 --> 00:49:59,600 Espera. 1032 00:49:59,600 --> 00:50:01,680 Mail. 1033 00:50:01,680 --> 00:50:02,290 Oh, Aceptar. 1034 00:50:02,290 --> 00:50:03,870 Aquí imos nós. 1035 00:50:03,870 --> 00:50:06,880 >> Correo recibe novo sistema de correo PHP. 1036 00:50:06,880 --> 00:50:09,970 Eu fixen este dereito? 1037 00:50:09,970 --> 00:50:11,067 Caramba. 1038 00:50:11,067 --> 00:50:12,150 A-- Oh, espera, espera, espera. 1039 00:50:12,150 --> 00:50:12,649 Estar por. 1040 00:50:12,649 --> 00:50:15,820 1041 00:50:15,820 --> 00:50:18,630 Eu prometer, é dicir será así paga a pena. 1042 00:50:18,630 --> 00:50:20,340 Enderezo. 1043 00:50:20,340 --> 00:50:24,390 É por iso que eu non faga o exemplos dereita antes da clase. 1044 00:50:24,390 --> 00:50:26,350 Ugh. 1045 00:50:26,350 --> 00:50:27,910 Os seguintes destinatarios fallou. 1046 00:50:27,910 --> 00:50:31,500 1047 00:50:31,500 --> 00:50:33,040 Imos probar unha última cousa. 1048 00:50:33,040 --> 00:50:40,660 SMTP definir desde, engade a dirección, a dirección é realmente iso. 1049 00:50:40,660 --> 00:50:43,980 Imos probar esta última parte da dirección. 1050 00:50:43,980 --> 00:50:47,210 Ah, eu estou realmente triste agora. 1051 00:50:47,210 --> 00:50:47,854 Grazas. 1052 00:50:47,854 --> 00:50:50,270 Pero eu realmente aprecio todo os textos que está enviando. 1053 00:50:50,270 --> 00:50:53,130 1054 00:50:53,130 --> 00:50:56,320 Ten este David. 1055 00:50:56,320 --> 00:50:59,310 Vostede está golpe. 1056 00:50:59,310 --> 00:51:01,720 Imos deixalo alí e imos resolve o luns. 1057 00:51:01,720 --> 00:51:04,290 Vexa vostede, entón. 1058 00:51:04,290 --> 00:51:08,090 >> Daven FARNHAM: E agora Profunda Pensamentos por Daven Farnham. 1059 00:51:08,090 --> 00:51:11,340 1060 00:51:11,340 --> 00:51:17,590 Se unha árbore binaria cae nun bosque e ninguén está por preto para C ele-- [rindo]. 1061 00:51:17,590 --> 00:51:18,998