1 00:00:00,000 --> 00:00:05,040 2 00:00:05,040 --> 00:00:08,440 >> SAM Levatich: Bienvenido a sección para esta semana. 3 00:00:08,440 --> 00:00:10,040 No soy Andi. 4 00:00:10,040 --> 00:00:14,590 Andi ha caído enfermo el día de hoy, y yo han sido una especie de llamada de último minuto 5 00:00:14,590 --> 00:00:15,700 para hacerse cargo. 6 00:00:15,700 --> 00:00:20,920 Es la temporada de gripe, así que asegúrese de que usted son mantenerse limpio, lavarse las manos, 7 00:00:20,920 --> 00:00:24,800 y comer sano para que usted, también, no está postrado en la cama. 8 00:00:24,800 --> 00:00:26,870 >> Pero sin más preámbulos, vamos a empezar. 9 00:00:26,870 --> 00:00:29,970 Hoy, vamos a hablar sobre PHP un poco bit-- cómo 10 00:00:29,970 --> 00:00:33,900 PHP se refiere a HTML, la forma en que se refiere a CSS, y algunos de los web 11 00:00:33,900 --> 00:00:36,100 cosas que hiciste en la última asignación. 12 00:00:36,100 --> 00:00:37,930 Vamos a hablar un poco sobre SQL 13 00:00:37,930 --> 00:00:41,360 y cómo se puede trabajar con las bases de datos, que es un componente clave de la P bastante 14 00:00:41,360 --> 00:00:43,650 establece 8-- P fijó 7. 15 00:00:43,650 --> 00:00:44,480 P fijó 7. 16 00:00:44,480 --> 00:00:48,400 >> Y luego vamos a hablar un poco poco acerca de cómo funcionan los controladores de vista 17 00:00:48,400 --> 00:00:54,640 y por qué eso es una filosofía detrás de algunos páginas web modernas y un diseño diferente. 18 00:00:54,640 --> 00:00:58,760 Más o menos una gran cantidad de tipos de aplicaciones y las aplicaciones que te pueden enviar 19 00:00:58,760 --> 00:01:01,120 están utilizando este modelo, marco regulador de vista, 20 00:01:01,120 --> 00:01:02,890 que usted va a utilizar en P puesto 7, así que voy a 21 00:01:02,890 --> 00:01:05,220 hablar un poco acerca de por qué que se ha convertido 22 00:01:05,220 --> 00:01:07,970 popular, por qué es importante y agradable. 23 00:01:07,970 --> 00:01:12,052 Y luego voy a fin de pasar a algunos consejos acerca de la lucha contra P fije 7. 24 00:01:12,052 --> 00:01:13,760 Y si tenemos tiempo sobrante al final, 25 00:01:13,760 --> 00:01:17,320 realmente podemos hacer algo trabajar en eso juntos. 26 00:01:17,320 --> 00:01:20,380 >> Así, PHP. 27 00:01:20,380 --> 00:01:23,790 De hecho, te habrás dado cuenta esto-- que realmente no tiene que sumergirse en it-- 28 00:01:23,790 --> 00:01:27,880 pero P puesto 6 tenido algún PHP código que estaba pasando. 29 00:01:27,880 --> 00:01:34,710 Y debido a que PHP es un C-como idioma, PHP, a diferencia de HTML y CSS, 30 00:01:34,710 --> 00:01:39,030 es un lenguaje de programación, mientras que HTML y CSS son estáticas. 31 00:01:39,030 --> 00:01:44,050 Son lenguajes de marcas que tratan con el estilo y el diseño visual. 32 00:01:44,050 --> 00:01:46,230 PHP es el verdadero negocio. 33 00:01:46,230 --> 00:01:51,590 >> PHP tiene bucles, tiene conditions-- todas esas cosas que es divertido acerca C. 34 00:01:51,590 --> 00:01:56,190 Tiene algunas cosas que son un poco poco mejor que C, que ya veremos, 35 00:01:56,190 --> 00:01:59,760 pero creo que la forma más fácil de hablar acerca del PHP es sólo para bucear. 36 00:01:59,760 --> 00:02:04,087 Así que me voy a ir a la derecha en el IDE en este punto. 37 00:02:04,087 --> 00:02:06,170 Lo primero que vamos que hacer es mirar realmente 38 00:02:06,170 --> 00:02:10,169 un poco a algunos de los Código PHP que estaba en P fijó 6. 39 00:02:10,169 --> 00:02:13,600 Así que la manera que lo hacemos que-- antes, la forma en que estábamos corriendo 40 00:02:13,600 --> 00:02:18,550 el servidor para el aparato fue que tendríamos que type-- 41 00:02:18,550 --> 00:02:21,750 o bien usar su aplicación o implementación del personal 42 00:02:21,750 --> 00:02:27,059 de server.c por entrar en directorio y corriendo server.c con ningún 43 00:02:27,059 --> 00:02:30,100 arguments-- por lo que sólo lo llaman en la host local, que es lo que, probablemente, 44 00:02:30,100 --> 00:02:31,849 hizo la mayor parte del tiempo-- y luego alimentándolo 45 00:02:31,849 --> 00:02:35,380 un directory-- con que para utilizar como su raíz 46 00:02:35,380 --> 00:02:38,310 donde el sitio web haría ser correr, básicamente. 47 00:02:38,310 --> 00:02:42,180 >> Esta semana para P fijó 7, como grande como nuestro código de server.c 48 00:02:42,180 --> 00:02:47,580 Es decir, hay personas que ya tienen escrito estas cosas finas encima en CS50 49 00:02:47,580 --> 00:02:49,630 que tienen un poco más funcionalidad, 50 00:02:49,630 --> 00:02:52,920 un programa de servidor que es capaz de tratar con un poco más de 51 00:02:52,920 --> 00:02:56,350 de las complejidades que vamos a ver tanto en P puesto 7 y P puesto 8. 52 00:02:56,350 --> 00:03:01,410 Y la forma en que se inicia el servidor es con solo teclear "apache50." 53 00:03:01,410 --> 00:03:03,960 >> Y antes de hacer nada, usted quiere asegurarse de que 54 00:03:03,960 --> 00:03:06,070 que Apache 50 no es ya se está ejecutando, ya que es 55 00:03:06,070 --> 00:03:08,130 en mi máquina, lo que hice para probarlo. 56 00:03:08,130 --> 00:03:10,320 Y lo hace llamando apache50. 57 00:03:10,320 --> 00:03:14,070 Deja, y verás que está parando el servidor web, si usted puede mirar allí 58 00:03:14,070 --> 00:03:16,340 en la parte inferior de la ventana de terminal. 59 00:03:16,340 --> 00:03:21,090 Y a continuación, sólo para empezar, estamos va a llamar, "apache50 comenzar." 60 00:03:21,090 --> 00:03:23,150 Y luego vamos para alimentar a un directorio. 61 00:03:23,150 --> 00:03:26,950 >> Ahora, porque queremos ver a algunos de los P puesto 6 Código 62 00:03:26,950 --> 00:03:32,850 que habíamos implementado, en realidad copiado un poco de la P 63 00:03:32,850 --> 00:03:37,090 set 6 código en mi propia carpeta, que se puede ver a la izquierda allí. 64 00:03:37,090 --> 00:03:40,170 Se llama "SECCIÓN 8" en letras mayúsculas 65 00:03:40,170 --> 00:03:44,510 porque estoy tan emocionada para ser transmitido en vivo-en la actualidad. 66 00:03:44,510 --> 00:03:47,330 >> Así que si corremos esto, debe todo el trabajo bastante eficaz. 67 00:03:47,330 --> 00:03:52,350 Dice, OK, nuestro sitio es ahora disponible en la dirección de la IDE, 68 00:03:52,350 --> 00:03:57,710 básicamente, que es lo que estaba usando exactamente como lo fue en P establece 7-- P fijó 6. 69 00:03:57,710 --> 00:04:00,899 Todos mis índices son un índice de hoy. 70 00:04:00,899 --> 00:04:02,940 Así que podemos ir a esa dirección, si usted recordará, 71 00:04:02,940 --> 00:04:05,710 con sólo hacer clic este pequeño botón en la parte superior derecha. 72 00:04:05,710 --> 00:04:14,200 >> Y usted recordará este código, que pasó cuando entraste en hello.php. 73 00:04:14,200 --> 00:04:18,000 Y lo que el código está diseñado para hacer es al escribir un nombre 74 00:04:18,000 --> 00:04:20,550 aquí-- si usted dice Sam porque ese es mi nombre-- 75 00:04:20,550 --> 00:04:23,620 y hago clic Say Hello, cuando nos fuimos a la página siguiente, 76 00:04:23,620 --> 00:04:25,270 Se suponía que el nombre que se mostrará. 77 00:04:25,270 --> 00:04:28,550 Se decía: "Hola, Sam" o "Hola," lo que sea que el nombre 78 00:04:28,550 --> 00:04:32,470 ponemos en él a pesar de que nos fuimos a una nueva página web. 79 00:04:32,470 --> 00:04:36,610 >> Y este es el tipo de cosas que PHP puede hacer por usted. 80 00:04:36,610 --> 00:04:42,840 PHP es capaz de pasar los datos entre dos páginas web. 81 00:04:42,840 --> 00:04:44,390 Esta es una página totalmente diferente. 82 00:04:44,390 --> 00:04:46,990 Verá el título es "hola" aquí. 83 00:04:46,990 --> 00:04:49,080 En realidad, tienen el mismo título, pero yo 84 00:04:49,080 --> 00:04:52,560 prometen son diferentes web páginas si nos fijamos en la fuente. 85 00:04:52,560 --> 00:04:55,890 Y usted puede pasar los datos que es introducido en este campo de texto, 86 00:04:55,890 --> 00:04:59,830 enviarlo a la siguiente página que está siendo llamado a filas, 87 00:04:59,830 --> 00:05:02,490 y luego de que los datos es capaz de estar allí en su forma actual. 88 00:05:02,490 --> 00:05:04,810 >> Ahora todavía no hemos implementado esto nosotros mismos, que 89 00:05:04,810 --> 00:05:08,710 es lo que vamos a hacer ahora mismo para especie conseguir un sabor de cómo funciona PHP, 90 00:05:08,710 --> 00:05:15,070 pero la idea fundamental es que PHP-- puedas especie de pensar en ello como una función. 91 00:05:15,070 --> 00:05:18,570 Algo que PHP puede dejarte do es que puede tomar parámetros 92 00:05:18,570 --> 00:05:24,710 que la entrada en una página HTML mediante el uso de PHP y formas, 93 00:05:24,710 --> 00:05:29,960 y puede pasar como parámetros los a la siguiente página que se carga para arriba. 94 00:05:29,960 --> 00:05:35,110 >> En este caso, estamos cargando este página con el botón de "Say hello". 95 00:05:35,110 --> 00:05:38,960 Pero, por ahora, en realidad eliminado algunos de ese código 96 00:05:38,960 --> 00:05:44,850 en el hello.php que estaba siendo dirigido que fue realmente Viendo el "hola, 97 00:05:44,850 --> 00:05:49,680 mundo "o" hola, Sam "o "hola," lo que era la entrada solo. 98 00:05:49,680 --> 00:05:53,620 Así que por ahora, estamos va a hacer eso, básicamente. 99 00:05:53,620 --> 00:05:56,570 Vamos a recrear ese y También añadir un poco más funcionalidad, 100 00:05:56,570 --> 00:06:00,210 hacer un poco más con ella, consulte lo que PHP es realmente capaz de hacer. 101 00:06:00,210 --> 00:06:04,870 >> Así que primero, vamos a hablar de este archivo, hello.php. 102 00:06:04,870 --> 00:06:07,440 Así que si nos acercamos en un poco bit-- y ahora estoy 103 00:06:07,440 --> 00:06:10,520 especie de tratar de desplazarse todos el camino around-- allí vamos. 104 00:06:10,520 --> 00:06:14,220 Verás que se llama hello.php, pero la sintaxis de ella 105 00:06:14,220 --> 00:06:16,880 se parece a un archivo HTML. 106 00:06:16,880 --> 00:06:20,380 Esto es porque el PHP real en este archivo 107 00:06:20,380 --> 00:06:25,220 es todo atascado entre estos interrogación bloques mark-caret. 108 00:06:25,220 --> 00:06:28,610 Todo aquí se considera código PHP. 109 00:06:28,610 --> 00:06:32,040 >> Y te darás cuenta de que cuando hice un comentario, 110 00:06:32,040 --> 00:06:35,320 verás lo familiar de dos barras diagonales. 111 00:06:35,320 --> 00:06:38,440 Y si usted recordará, en HTML, si escribo un comentario, 112 00:06:38,440 --> 00:06:42,540 se ve algo más cerca esto, que es un comentario en HTML. 113 00:06:42,540 --> 00:06:46,570 Así que en realidad todo lo que entre estos dos corchetes angulares 114 00:06:46,570 --> 00:06:50,060 ahora es de código PHP, que se refleja en el hecho de 115 00:06:50,060 --> 00:06:53,270 que este pequeño comentario símbolo se convirtió en un comentario. 116 00:06:53,270 --> 00:06:58,420 >> Así que cada vez que escribir código PHP, incluso si no hay código HTML fuera de ella, 117 00:06:58,420 --> 00:07:02,720 Siempre va a ser encerrado en estos corchetes angulares 118 00:07:02,720 --> 00:07:04,080 con signos de interrogación. 119 00:07:04,080 --> 00:07:08,260 Puede especie de pensar it-- cómo todo del código que corría en sus programas en C 120 00:07:08,260 --> 00:07:13,950 fue encerrado en una principal int, nula, corchete, extremo declaración corchete. 121 00:07:13,950 --> 00:07:17,100 Y verás llaves en PHP, también, pero esto es una especie de 122 00:07:17,100 --> 00:07:20,490 como el principal método de PHP. 123 00:07:20,490 --> 00:07:25,630 >> Así que ahora, ¿cómo lo hacemos nada en PHP? 124 00:07:25,630 --> 00:07:29,190 Ahora, PHP es una programación lenguaje que es muy similar a C, 125 00:07:29,190 --> 00:07:30,970 pero opera en la web. 126 00:07:30,970 --> 00:07:33,270 Así que una cosa que podrás immediately-- un solo 127 00:07:33,270 --> 00:07:38,130 de las primeras cosas que realmente hizo con C se le imprime cosas, ¿verdad? 128 00:07:38,130 --> 00:07:42,290 Así que en C lo hicimos con una función printf. 129 00:07:42,290 --> 00:07:46,430 Le dimos una cadena, probablemente con una nueva línea, 130 00:07:46,430 --> 00:07:49,850 y luego nos terminamos con un punto y coma. 131 00:07:49,850 --> 00:07:53,790 >> Así que la forma en que vamos a hacer eso en PHP-- porque no es bastante printf. 132 00:07:53,790 --> 00:07:55,940 Es un poco de sintaxis diferente. 133 00:07:55,940 --> 00:08:02,580 La forma en que imprimimos cosas en PHP es que decimos, "echo hola" 134 00:08:02,580 --> 00:08:04,180 o "eco" palabra. 135 00:08:04,180 --> 00:08:09,830 Y eso tiene el efecto de hacer printf con una cadena, "hola". 136 00:08:09,830 --> 00:08:11,990 Y añade la nueva línea a la misma. 137 00:08:11,990 --> 00:08:16,000 >> Así que vamos a hacer en este momento sure-- Voy a alejar el zoom de nuevo un poco bit-- 138 00:08:16,000 --> 00:08:18,250 vamos a asegurarnos de que que el código está trabajando 139 00:08:18,250 --> 00:08:21,030 porque puede muy bien de un error en el código 140 00:08:21,030 --> 00:08:22,880 que tendremos que afrontar. 141 00:08:22,880 --> 00:08:25,860 Así que el servidor ya se está ejecutando. 142 00:08:25,860 --> 00:08:30,630 Así que si nos desplazamos hacia abajo hasta el fondo, yup, el servidor sigue funcionando. 143 00:08:30,630 --> 00:08:34,510 Así que si simplemente hacemos tapping en este poco adecuado aquí-- 144 00:08:34,510 --> 00:08:37,620 welcome-- debemos get-- grande. 145 00:08:37,620 --> 00:08:39,930 >> Seguimos teniendo la familiar "Saluda" diálogo, 146 00:08:39,930 --> 00:08:45,750 pero cuando escribo en "hola", ya veremos que el texto "hola" era de hecho 147 00:08:45,750 --> 00:08:50,080 impreso, que es exactamente como que esperábamos debido eco en PHP 148 00:08:50,080 --> 00:08:53,190 es como una declaración printf. 149 00:08:53,190 --> 00:09:01,410 Así que de vuelta al código, la forma en P puesto 6 lo hicieron el código de distribución se le proporciona 150 00:09:01,410 --> 00:09:05,920 hacerlo de modo que lo haría PHP salida de lo que usted 151 00:09:05,920 --> 00:09:07,920 tecleado en la pantalla anterior? 152 00:09:07,920 --> 00:09:10,350 >> Y para suerte de examinar por qué sucede esto, estamos 153 00:09:10,350 --> 00:09:15,510 va a entrar en index.html, que es el archivo original, el archivo que 154 00:09:15,510 --> 00:09:18,710 aparece en esta pantalla con el botón "Saluda". 155 00:09:18,710 --> 00:09:20,950 Te das cuenta de que hay todas las cosas clásicas 156 00:09:20,950 --> 00:09:26,910 que hemos llegado a esperar de HTML, tales ya que estas cosas, estas etiquetas encerradas 157 00:09:26,910 --> 00:09:31,080 entre paréntesis angulares, como PHP pero sin los signos de interrogación, 158 00:09:31,080 --> 00:09:34,650 lo que indica una cosa especial a HTML. 159 00:09:34,650 --> 00:09:36,895 Tenemos título, que es "hola". 160 00:09:36,895 --> 00:09:41,010 Y te darás cuenta de que, como vimos, el título es "hola" en ambos casos. 161 00:09:41,010 --> 00:09:43,260 Vamos a cambiar éste "decir" lo que sólo 162 00:09:43,260 --> 00:09:48,170 puede distinguirnos donde estamos. 163 00:09:48,170 --> 00:09:49,600 >> Pero tenemos un cuerpo. 164 00:09:49,600 --> 00:09:52,690 Y entonces el poco interesante, el bits que aparece en el código HTML, 165 00:09:52,690 --> 00:09:54,530 Es este elemento de formulario. 166 00:09:54,530 --> 00:09:56,370 Y así que tenemos un formulario. 167 00:09:56,370 --> 00:09:58,330 Y esta es la clave. 168 00:09:58,330 --> 00:10:00,530 Así es como estamos trabajando con PHP. 169 00:10:00,530 --> 00:10:05,790 El parámetro de acción de forma dice que hello.php 170 00:10:05,790 --> 00:10:09,310 es lo que vamos a enviar los valores de esta forma a. 171 00:10:09,310 --> 00:10:13,830 Aquí es donde estamos pasando los parámetros, por así decirlo. 172 00:10:13,830 --> 00:10:18,680 >> Se dará cuenta de otra cosa aquí es que el método es "llegar". 173 00:10:18,680 --> 00:10:24,450 Hay dos principales métodos por los cuales será 174 00:10:24,450 --> 00:10:28,750 a utilizar PHP para pasar datos entre las páginas web websites--, 175 00:10:28,750 --> 00:10:30,500 rather-- en esta asignación. 176 00:10:30,500 --> 00:10:34,070 Y esos métodos son "get" y "post". 177 00:10:34,070 --> 00:10:37,010 Hay algunas sutiles diferencias entre GET y POST 178 00:10:37,010 --> 00:10:40,520 que vamos a obtener into-- nos será "llegar" en, si se quiere. 179 00:10:40,520 --> 00:10:44,030 >> Pero para todos los intentos y fines, obtener y post 180 00:10:44,030 --> 00:10:47,120 están a sólo formas que pasar parámetros 181 00:10:47,120 --> 00:10:49,500 con un poco diferentes ejecuciones. 182 00:10:49,500 --> 00:10:53,500 Por ahora, vamos a utilizar conseguir porque conseguir era lo que se usaba originalmente 183 00:10:53,500 --> 00:10:57,340 en el archivo PHP de P puesto 6. 184 00:10:57,340 --> 00:11:00,850 Y de hecho, si vamos en y buscar antes de que hayamos editado cualquier otra cosa, 185 00:11:00,850 --> 00:11:03,090 Voy a decir hola a-- ¿cómo te llamas? 186 00:11:03,090 --> 00:11:03,812 >> AUDIENCIA: Elliot. 187 00:11:03,812 --> 00:11:04,770 Levatich SAM: Oh, Dios mío. 188 00:11:04,770 --> 00:11:05,600 No sé cómo se escribe eso. 189 00:11:05,600 --> 00:11:06,766 ¿Podría explicar eso por mí? 190 00:11:06,766 --> 00:11:08,710 AUDIENCIA: E-L-L-Me-O-T. 191 00:11:08,710 --> 00:11:09,720 >> Levatich SAM: Me-O-T? 192 00:11:09,720 --> 00:11:10,440 >> AUDIENCIA: Sí. 193 00:11:10,440 --> 00:11:10,960 >> SAM Levatich: Perfecto. 194 00:11:10,960 --> 00:11:11,210 OK. 195 00:11:11,210 --> 00:11:12,751 Supongo que lo hice saber cómo se escribe eso. 196 00:11:12,751 --> 00:11:13,510 Lo siento por eso. 197 00:11:13,510 --> 00:11:16,560 Pero si decimos "Di hola," no es no va a aparecer en la pantalla 198 00:11:16,560 --> 00:11:18,476 todavía porque modificamos el código un poco. 199 00:11:18,476 --> 00:11:21,290 Pero si "Say Hello" - OK, así que "hola" es aquí. 200 00:11:21,290 --> 00:11:24,137 Pero si tomamos un cerrador mirar a la propia dirección URL, 201 00:11:24,137 --> 00:11:26,220 veremos que termina con hello.php? name = Elliot. 202 00:11:26,220 --> 00:11:30,980 203 00:11:30,980 --> 00:11:37,180 >> Por lo tanto, esta es una manera de comunicar a la siguiente página Web 204 00:11:37,180 --> 00:11:39,240 los parámetros que hemos pasado. 205 00:11:39,240 --> 00:11:40,870 Dijimos name = Elliot. 206 00:11:40,870 --> 00:11:46,290 Y eso es en última instancia cómo P fijó 6 accedido a la variable que pasamos en 207 00:11:46,290 --> 00:11:47,520 a través del formulario. 208 00:11:47,520 --> 00:11:51,470 Y esto es algo que es peculiar a una petición GET. 209 00:11:51,470 --> 00:11:57,480 Una petición get hace que los parámetros conocido en la URL de la página web. 210 00:11:57,480 --> 00:12:01,190 >> Y usted recordará, también, en P puesto 6 que 211 00:12:01,190 --> 00:12:04,450 tenía que escribir una función que se refirió al hecho de 212 00:12:04,450 --> 00:12:09,700 que esta cadena de consulta podría existir después de un archivo. 213 00:12:09,700 --> 00:12:14,684 Podría haber un signo de interrogación seguido por, básicamente, cualquier número de caracteres. 214 00:12:14,684 --> 00:12:16,350 Y eso es exactamente lo que está pasando aquí. 215 00:12:16,350 --> 00:12:21,280 Y la razón por la que había que analizar que en su implementación de server.c en P 216 00:12:21,280 --> 00:12:27,570 set 6 es para que se notaba el código PHP que name = Elliot. 217 00:12:27,570 --> 00:12:30,460 Necesitabas poder analizar que de la URL 218 00:12:30,460 --> 00:12:35,900 para que el archivo PHP en cuestión sabía lo que estaba tratando. 219 00:12:35,900 --> 00:12:39,350 >> Así que espero que esto le da la motivación para server.c 220 00:12:39,350 --> 00:12:43,900 ahora que nos estamos moviendo en fuera del C en PHP. 221 00:12:43,900 --> 00:12:48,240 Así que vamos a realmente se centran en el acceso a la las cosas pasan a través de una petición GET ahora 222 00:12:48,240 --> 00:12:48,880 en este punto. 223 00:12:48,880 --> 00:12:50,157 Voy a guardar este. 224 00:12:50,157 --> 00:12:51,240 No cambiamos nada. 225 00:12:51,240 --> 00:12:56,080 Parece que tenemos un campo de entrada. 226 00:12:56,080 --> 00:12:58,550 >> Estamos estableciendo algunas propiedades, como podemos hacer un HTML. 227 00:12:58,550 --> 00:12:59,550 Estas son las cosas simples. 228 00:12:59,550 --> 00:13:00,580 No necesitamos estos. 229 00:13:00,580 --> 00:13:03,750 Pero tenemos autocompletado apagado, que básicamente says-- ya sabes, 230 00:13:03,750 --> 00:13:05,710 cuando escribe cosas en la web, a veces 231 00:13:05,710 --> 00:13:07,355 se trata de llenar que para usted. 232 00:13:07,355 --> 00:13:08,230 Así que es una buena cosa. 233 00:13:08,230 --> 00:13:11,700 Queremos que apagarlo para este propósito. 234 00:13:11,700 --> 00:13:13,970 Esa fue una decisión CS50. 235 00:13:13,970 --> 00:13:15,640 Así que podemos eliminar que si queríamos. 236 00:13:15,640 --> 00:13:19,510 >> El enfoque automático simplemente pega el cursor en la forma como en el principio. 237 00:13:19,510 --> 00:13:21,060 Una vez más, no es demasiado importante. 238 00:13:21,060 --> 00:13:26,220 >> Pero name = "nombre" - que es un poco difícil porque su nombre y el nombre. 239 00:13:26,220 --> 00:13:28,730 Pero podríamos haber cambiado esto a algo más. 240 00:13:28,730 --> 00:13:30,563 Y de hecho, eso es lo que haremos ahora. 241 00:13:30,563 --> 00:13:34,830 Vamos a decir "persona", que es algo así como el nombre 242 00:13:34,830 --> 00:13:36,790 si una persona se define por su nombre. 243 00:13:36,790 --> 00:13:41,480 >> Así que vamos a cerrar esta, abrir de nuevo hasta nuestro sitio web 244 00:13:41,480 --> 00:13:46,110 ya que nuestro servidor todavía está en ejecución Apache 50, y nos van a decir, hola, aquí está 245 00:13:46,110 --> 00:13:47,200 Elliot de nuevo. 246 00:13:47,200 --> 00:13:48,460 ¿Por que no? 247 00:13:48,460 --> 00:13:49,220 Hola. 248 00:13:49,220 --> 00:13:52,880 Y si vamos por aquí, ya veremos entonces en lugar de name = Elliot, 249 00:13:52,880 --> 00:13:55,200 dice persona = Elliot. 250 00:13:55,200 --> 00:14:00,060 Y eso es un resultado directo del hecho que simplemente cambiamos name = "persona". 251 00:14:00,060 --> 00:14:06,840 >> Así, en un elemento de entrada de un formulario HTML, el campo de nombre 252 00:14:06,840 --> 00:14:10,590 es el identificador para el parámetro que está siendo pasado. 253 00:14:10,590 --> 00:14:14,250 Es como si va a crear una función "añadir" que se llevó en dos enteros 254 00:14:14,250 --> 00:14:16,670 y dijiste int a y b int. 255 00:14:16,670 --> 00:14:22,680 Eso sería un nombre, y si querías otra forma, que 256 00:14:22,680 --> 00:14:27,800 que podemos hacer con sólo copiar y pegar, entonces tendría nombre b. 257 00:14:27,800 --> 00:14:31,030 >> Así que ahora vamos a tener dos parámetros que se están pasando a través de 258 00:14:31,030 --> 00:14:36,970 llegar al siguiente website-- la siguiente página web, hello.php. 259 00:14:36,970 --> 00:14:39,770 Y en realidad podemos ver que de nuevo si queremos. 260 00:14:39,770 --> 00:14:44,830 Esta es la forma más fácil para hacer frente a el código web en el IDE, básicamente. 261 00:14:44,830 --> 00:14:47,940 Empiezas el servidor, lo consigue correr, y luego cada vez que 262 00:14:47,940 --> 00:14:50,649 hacer algunos cambios, justo cerca ese archivo sólo para estar seguro. 263 00:14:50,649 --> 00:14:52,440 Al pulsar el botón de retroceso es un poco difícil 264 00:14:52,440 --> 00:14:55,800 porque podría cargar una anterior versión, no la más actualizada. 265 00:14:55,800 --> 00:14:59,200 >> Y luego simplemente haga clic en el botón de nuevo, pop up-- derecha oh, 266 00:14:59,200 --> 00:15:00,510 y ahora hay dos formas. 267 00:15:00,510 --> 00:15:10,440 Y por lo que si escribimos una cosa en cada uno-- "Hirshhorn jason," para instance-- 268 00:15:10,440 --> 00:15:11,590 decimos hola. 269 00:15:11,590 --> 00:15:12,840 Miramos hacia nuestros parámetros. 270 00:15:12,840 --> 00:15:18,910 Parece que tenemos, como era de esperar, a = jason yb = Hirshhorn, 271 00:15:18,910 --> 00:15:23,760 que representa los dos parámetros que pasamos a esta función. 272 00:15:23,760 --> 00:15:27,900 >> Así que ahora vamos a realmente llegar a la aplicación de esa funcionalidad que nos 273 00:15:27,900 --> 00:15:30,840 tenido en P puesto 6. 274 00:15:30,840 --> 00:15:32,490 Así que en este momento sólo estamos haciendo eco hola. 275 00:15:32,490 --> 00:15:34,310 Y eso no es muy útil. 276 00:15:34,310 --> 00:15:38,530 Queremos hacer eco de alguna variable que se pasó a nosotros. 277 00:15:38,530 --> 00:15:40,320 Y sabemos el nombre de esta variable. 278 00:15:40,320 --> 00:15:41,770 Tenemos una y hemos b. 279 00:15:41,770 --> 00:15:43,500 Así que podríamos optar por repetir cualquiera de ellos. 280 00:15:43,500 --> 00:15:45,470 >> Pero, ¿cómo acceder a ella? 281 00:15:45,470 --> 00:15:48,820 Bueno, hay cierta variables globales en PHP. 282 00:15:48,820 --> 00:15:51,240 Y yo voy a escribir en comentarios aquí. 283 00:15:51,240 --> 00:15:59,910 Los dos más importantes son get y después para nuestros propósitos en este momento. 284 00:15:59,910 --> 00:16:05,350 Estas son las matrices o, Técnicamente, los diccionarios 285 00:16:05,350 --> 00:16:10,540 donde nuestras variables que estamos que pasa a la siguiente página Web en directo. 286 00:16:10,540 --> 00:16:14,520 Y pronto veremos cómo usarlos. 287 00:16:14,520 --> 00:16:19,720 >> Otra breve nota sobre el código PHP y algunos detalles de it-- en C, 288 00:16:19,720 --> 00:16:23,260 para declarar una variable o utilizar variables, 289 00:16:23,260 --> 00:16:24,570 que primero había que declararlos. 290 00:16:24,570 --> 00:16:30,860 Y lo que tenía que hacer cuando declararon ellos era decir int a carbón o b. 291 00:16:30,860 --> 00:16:35,630 Usted tuvo que declarar los tipos de éstos las variables antes de que los creó. 292 00:16:35,630 --> 00:16:38,800 PHP-- usted no tiene que hacer nada de eso. 293 00:16:38,800 --> 00:16:42,522 PHP no pide el tipo de variable. 294 00:16:42,522 --> 00:16:44,480 Y la forma en que usted crear un lugar variable-- 295 00:16:44,480 --> 00:16:49,930 de decir int, char, string-- que es realmente char *, ya que sabes-- 296 00:16:49,930 --> 00:16:52,180 en lugar de hacer todo eso, porque todo 297 00:16:52,180 --> 00:16:54,620 es del mismo tipo, sin tipo, podemos simplemente 298 00:16:54,620 --> 00:16:59,210 utilizar un carácter, el cual es el signo de dólar. 299 00:16:59,210 --> 00:17:03,700 Y verás que ya está apareciendo arriba, pequeñas cosas de autocompletar. 300 00:17:03,700 --> 00:17:11,380 Y está diciendo que _GET y _POST dos opciones que tengo disponible 301 00:17:11,380 --> 00:17:11,900 a mi. 302 00:17:11,900 --> 00:17:16,430 Algunas de estas otras cosas son otras variables globales en PHP 303 00:17:16,430 --> 00:17:18,430 que usted va a utilizar más de el curso de P fijó 7. 304 00:17:18,430 --> 00:17:20,569 Por ahora vamos a centrarse en GET y POST. 305 00:17:20,569 --> 00:17:22,910 Pero este es un útil cosa que el IDE hace 306 00:17:22,910 --> 00:17:24,980 donde una vez que has escrito en ese signo de dólar, 307 00:17:24,980 --> 00:17:28,760 que va a empezar a rellenar las variables globales o variables que ya han definido. 308 00:17:28,760 --> 00:17:34,360 >> Así que si quería definir una variable llamada "cadena" 309 00:17:34,360 --> 00:17:38,290 usted podría ponerlo igual a "hola". 310 00:17:38,290 --> 00:17:40,100 Y es, básicamente, tan simple como eso. 311 00:17:40,100 --> 00:17:44,720 Y entonces podríamos hacer algo así como "$ string eco." 312 00:17:44,720 --> 00:17:48,524 El IDE se debe tirar algunas errores si estoy haciendo algo mal, 313 00:17:48,524 --> 00:17:50,190 así que espero que estoy haciendo las cosas bien. 314 00:17:50,190 --> 00:17:52,060 Pero los errores siempre se presentan. 315 00:17:52,060 --> 00:17:56,670 >> Otra cosa difícil sobre PHP es que no está compilado. 316 00:17:56,670 --> 00:18:00,640 Así que con los programas en C, que haría la rutina diaria de-- básicamente, 317 00:18:00,640 --> 00:18:02,710 usted hacer cambios a el código, había guardarlo, 318 00:18:02,710 --> 00:18:04,460 y luego lo haría hacen, dónde estaba maquillaje 319 00:18:04,460 --> 00:18:08,830 el paso que llama el compilador, clang, para hacer que su código, este texto 320 00:18:08,830 --> 00:18:10,570 presentar, en un archivo ejecutable. 321 00:18:10,570 --> 00:18:15,550 PHP es similar a C, pero ha ejecutado sobre la marcha de su navegador web. 322 00:18:15,550 --> 00:18:17,640 Así que no hay forma de saberlo. 323 00:18:17,640 --> 00:18:19,790 >> Hacer lanzaría los errores votos, ¿no? 324 00:18:19,790 --> 00:18:22,190 Sería como, usted no declaró esta variable 325 00:18:22,190 --> 00:18:23,320 antes de intentar usarlo. 326 00:18:23,320 --> 00:18:29,120 Hiciste todo este mal segfault stuff--, violación de segmento, todo ese tipo de momentos de diversión 327 00:18:29,120 --> 00:18:31,000 que vinieron con maquillaje. 328 00:18:31,000 --> 00:18:33,920 PHP es un arma de doble filo porque no va a conseguir esos errores, 329 00:18:33,920 --> 00:18:37,770 pero eso también significa que usted no sabrá realmente lo que está mal con su programa 330 00:18:37,770 --> 00:18:39,840 si usted acaba de ejecutarlo y no está trabajando. 331 00:18:39,840 --> 00:18:45,130 Pero el depurador debe señalar algunas pequeñas cosas esperemos votos 332 00:18:45,130 --> 00:18:47,950 sintácticamente que se puede arreglar. 333 00:18:47,950 --> 00:18:52,850 >> Así que ahora si vamos más a-- dicen, vamos a cerrar eso. 334 00:18:52,850 --> 00:18:54,522 Reabrir. 335 00:18:54,522 --> 00:18:55,480 Y estamos de vuelta aquí. 336 00:18:55,480 --> 00:18:57,210 Así que tenemos una variable y una variable b. 337 00:18:57,210 --> 00:18:58,626 Y estos no importa en última instancia. 338 00:18:58,626 --> 00:19:01,850 Vamos a los llamamos hy g por ninguna razón en particular. 339 00:19:01,850 --> 00:19:03,120 >> Y decimos hola. 340 00:19:03,120 --> 00:19:07,480 Ahora parece que nuestra cadena "hola" es de hecho la impresión. 341 00:19:07,480 --> 00:19:10,460 Creamos una variable llamada "cadena", lo puso igual a "hola". 342 00:19:10,460 --> 00:19:15,520 Tenga en cuenta que no teníamos que hacer malloc o hacer un arreglo de caracteres. 343 00:19:15,520 --> 00:19:19,110 >> En PHP, ya que las variables son sin tipo, una cadena 344 00:19:19,110 --> 00:19:22,230 es la misma que para un char todos los efectos. 345 00:19:22,230 --> 00:19:23,570 Esto podría ser "hi". 346 00:19:23,570 --> 00:19:26,340 Esto podría ser sólo el carácter k. 347 00:19:26,340 --> 00:19:29,290 Este puede ser un número 1. 348 00:19:29,290 --> 00:19:30,300 Y no le importa. 349 00:19:30,300 --> 00:19:33,560 PHP no se preocupa por el tipo de la variable. 350 00:19:33,560 --> 00:19:34,390 O bien, se preocupa. 351 00:19:34,390 --> 00:19:36,240 Se preocupa cuando intenta y hacer cosas con él, 352 00:19:36,240 --> 00:19:38,790 pero no le importa en el paso de la declaración. 353 00:19:38,790 --> 00:19:46,960 >> Y al igual que se puede en C, puede declarar cadenas en la pila como éste 354 00:19:46,960 --> 00:19:51,130 aunque decir "pila" es un poco nombre poco apropiado potencial cuando 355 00:19:51,130 --> 00:19:52,230 estamos hablando de PHP. 356 00:19:52,230 --> 00:19:54,020 Pero no tenemos que preocuparnos por eso. 357 00:19:54,020 --> 00:19:55,936 Así que nos dieron nuestra cadena "hola", y nos hacemos eco de la cadena. 358 00:19:55,936 --> 00:19:58,880 Así que ahora que hemos discutido variables. 359 00:19:58,880 --> 00:20:06,060 Así que ahora tenemos que hablar sobre get y publicar y realizar la última cosa que es 360 00:20:06,060 --> 00:20:12,660 necesaria para conseguir realmente la copia de seguridad a la funcionalidad de la P puesto 6. 361 00:20:12,660 --> 00:20:14,990 Así que ahora mismo estamos haciéndose eco de la cadena, pero 362 00:20:14,990 --> 00:20:17,080 no tienen estas variables GET y POST. 363 00:20:17,080 --> 00:20:19,430 Y debido a que estamos utilizando El método GET, que 364 00:20:19,430 --> 00:20:24,810 Parece natural que nuestra variable que nos interesa, tanto A como B, 365 00:20:24,810 --> 00:20:29,870 se ubicará en la matriz o diccionario, técnicamente conseguir. 366 00:20:29,870 --> 00:20:33,510 >> Así que si establecemos conseguir de esta manera con su groups-- Presioné entrar 367 00:20:33,510 --> 00:20:36,770 y no le gustaba it-- pero aquí tenemos conseguir. 368 00:20:36,770 --> 00:20:38,000 Y así que ya existe. 369 00:20:38,000 --> 00:20:41,380 Así que ya podemos comenzar con el acceso algunos de los elementos de conseguir. 370 00:20:41,380 --> 00:20:45,000 Si nosotros conseguimos, esta sintaxis para matrices en PHP es muy similar a C. 371 00:20:45,000 --> 00:20:47,900 Tenemos nuestros dos corchetes. 372 00:20:47,900 --> 00:20:53,440 >> Así que si decimos llegar de manera normal array, podríamos acceder 373 00:20:53,440 --> 00:20:55,600 el índice de orden cero, el primer índice. 374 00:20:55,600 --> 00:20:56,840 PHP es el índice cero. 375 00:20:56,840 --> 00:21:00,550 Podríamos decir cero, uno, cosas dos-- como este. 376 00:21:00,550 --> 00:21:03,420 Y he estado diciendo que consiguen es técnicamente un diccionario. 377 00:21:03,420 --> 00:21:08,290 Así que lo que PHP está haciendo bajo el capó, que es un poco mejor que C, 378 00:21:08,290 --> 00:21:12,760 es que ya está dando algunos funcionalidad diccionario, que 379 00:21:12,760 --> 00:21:16,240 es realmente tablas de hash, o intenta, supuestamente. 380 00:21:16,240 --> 00:21:19,360 O, técnicamente podría ser una oportunidad así. 381 00:21:19,360 --> 00:21:25,500 Pero PHP está implementando una tabla hash, que forma un diccionario eficaz. 382 00:21:25,500 --> 00:21:28,400 >> Y por lo que sabemos el nombre de nuestra variable, ¿verdad? 383 00:21:28,400 --> 00:21:32,440 Se trata de ser aprobada en la cadena de consulta por PHP. 384 00:21:32,440 --> 00:21:37,290 Tenemos a = h y b = g donde ayb son los nombres de las variables. 385 00:21:37,290 --> 00:21:41,580 Así que la forma en que podemos acceder a la valor que corresponde a la tecla 386 00:21:41,580 --> 00:21:45,055 en el diccionario es sólo decir _GET_GET ["a"]. 387 00:21:45,055 --> 00:21:48,170 388 00:21:48,170 --> 00:21:51,365 >> Así que ahora tenemos _GET ["a"]. 389 00:21:51,365 --> 00:21:56,930 Y si simplemente reemplazamos el interior nuestro eco, si nos hacemos eco _GET_GET ["a"] - 390 00:21:56,930 --> 00:22:02,410 y vamos a ver si el depurador lanza cualquier error de alrededor esto-- 391 00:22:02,410 --> 00:22:05,620 vamos a guardar eso y cerramos esto. 392 00:22:05,620 --> 00:22:07,130 Abrelo. 393 00:22:07,130 --> 00:22:10,390 Así que estamos haciendo un derecho ahora, para que b no debería importar. 394 00:22:10,390 --> 00:22:12,980 "ella" y "él" - "tararear." "ella" y "zumbido". 395 00:22:12,980 --> 00:22:14,810 Suena bien. 396 00:22:14,810 --> 00:22:18,040 >> Y imprime "ella", que es una locura. 397 00:22:18,040 --> 00:22:21,920 Pero eso es exactamente lo que estaba sucediendo en P puesto 6. 398 00:22:21,920 --> 00:22:27,240 Básicamente, lo que establece P 6 fue doing-- echo hola, 399 00:22:27,240 --> 00:22:31,580 nombre-- donde tuvo un nombre de la variable y que sólo 400 00:22:31,580 --> 00:22:35,520 le pide que escriba en ese poco de texto. 401 00:22:35,520 --> 00:22:37,380 También hubo alguna código adicional en 402 00:22:37,380 --> 00:22:40,550 incluía sentencias if, que podemos hacer en este momento. 403 00:22:40,550 --> 00:22:50,120 >> Podemos decir, si existe, que es una funcionalidad dentro de PHP, 404 00:22:50,120 --> 00:22:55,110 _GET Con el subrayado, "nombre" - que es básicamente diciendo: 405 00:22:55,110 --> 00:22:58,760 "si el nombre ha sido rellenado" porque podríamos haber hecho clic en el botón 406 00:22:58,760 --> 00:23:02,580 para enviar el formulario sin escribir nada en ese campo. 407 00:23:02,580 --> 00:23:07,760 Y nos envolvemos que en nuestra amistosas entre llaves. 408 00:23:07,760 --> 00:23:09,175 Podemos tener una declaración más. 409 00:23:09,175 --> 00:23:13,300 410 00:23:13,300 --> 00:23:18,820 Y eso es todo dentro del ángulo de PHP soporte, signo de interrogación, soporte en ángulo, 411 00:23:18,820 --> 00:23:20,040 si se quiere. 412 00:23:20,040 --> 00:23:21,750 >> Y ahora vamos a ver si esto funciona. 413 00:23:21,750 --> 00:23:26,300 Sigo esperando a que la depuración y mierda sobre mí, básicamente, 414 00:23:26,300 --> 00:23:28,410 pero aún no lo ha hecho. 415 00:23:28,410 --> 00:23:30,830 Tal vez lo hará ahora porque yo hablé. 416 00:23:30,830 --> 00:23:31,330 Sip. 417 00:23:31,330 --> 00:23:32,510 Lo hizo, de hecho. 418 00:23:32,510 --> 00:23:34,610 Así, nada está apareciendo. 419 00:23:34,610 --> 00:23:38,750 Esto se debe a algo mal que escribí en el código PHP. 420 00:23:38,750 --> 00:23:42,844 Y mencioné la depuración es difícil porque en PHP, que 421 00:23:42,844 --> 00:23:45,260 no compilarlo antemano y el compilador no era como, 422 00:23:45,260 --> 00:23:46,710 aquí es donde sus errores son. 423 00:23:46,710 --> 00:23:49,690 >> Pero lo que podemos hacer es-- hacer la gente recuerda 424 00:23:49,690 --> 00:23:57,010 cómo mirar a las diferentes redes solicitudes que PHP-- o que los sitios web 425 00:23:57,010 --> 00:23:57,620 ¿enviar? 426 00:23:57,620 --> 00:24:00,290 [? Malin?] Hizo esto en dar una conferencia una vez o dos veces. 427 00:24:00,290 --> 00:24:05,830 ¿Te acuerdas de dónde vamos a encontrar las diferentes deudas y 200 aprueba, 428 00:24:05,830 --> 00:24:09,780 todos estos códigos que se están enviando a través de HTTP de la página web a la página web? 429 00:24:09,780 --> 00:24:12,514 ¿Alguien recuerda donde vamos a hacer eso? 430 00:24:12,514 --> 00:24:13,787 >> AUDIENCIA: Página Fuente. 431 00:24:13,787 --> 00:24:14,870 SAM Levatich: fuente de página. 432 00:24:14,870 --> 00:24:15,890 Exactamente. 433 00:24:15,890 --> 00:24:19,230 Si usted va a la página Source-- perfecto. 434 00:24:19,230 --> 00:24:21,630 Así Página Fuente detiene el inspector. 435 00:24:21,630 --> 00:24:23,140 >> Y yo estoy usando Safari. 436 00:24:23,140 --> 00:24:25,790 Muchos de ustedes probablemente a utilizar Chrome o Firefox. 437 00:24:25,790 --> 00:24:27,750 Pero mientras estás en cualquier browser-- moderna 438 00:24:27,750 --> 00:24:29,500 y no dude en seguir junto, si quieres. 439 00:24:29,500 --> 00:24:32,560 Puede escribir hasta este código o basta con ver el interior del conjunto P 6 440 00:24:32,560 --> 00:24:35,820 directorio para algunas cosas similares. 441 00:24:35,820 --> 00:24:41,020 hello.php es lo que estamos Actualmente trabaja en la emulación. 442 00:24:41,020 --> 00:24:42,476 >> Así que hay una variedad de fichas. 443 00:24:42,476 --> 00:24:43,850 Podemos mirar a todos los recursos. 444 00:24:43,850 --> 00:24:45,810 Podemos ver el código fuente. 445 00:24:45,810 --> 00:24:49,900 Así que parece que no lo hizo conseguir el cuerpo pasado en la final. 446 00:24:49,900 --> 00:24:54,890 Se encontró un error en PHP y dejado de cargar toda la página web. 447 00:24:54,890 --> 00:24:58,320 Ni siquiera tenemos un fin etiqueta para HTML ni nada. 448 00:24:58,320 --> 00:25:07,189 >> Y si nos fijamos en la red, podemos vemos que estamos siendo enviado una solicitud. 449 00:25:07,189 --> 00:25:07,980 Este es el dominio. 450 00:25:07,980 --> 00:25:09,270 Esta es la direccion. 451 00:25:09,270 --> 00:25:10,070 Es un documento. 452 00:25:10,070 --> 00:25:14,310 Estamos utilizando el método get. 453 00:25:14,310 --> 00:25:15,760 >> Y es rojo. 454 00:25:15,760 --> 00:25:19,030 O, fue rojo cuando No se lo selecciona. 455 00:25:19,030 --> 00:25:22,680 ¿Cómo puedo eliminar la selección? 456 00:25:22,680 --> 00:25:23,980 Bueno, era de color rojo. 457 00:25:23,980 --> 00:25:25,201 Permítanme Actualizar. 458 00:25:25,201 --> 00:25:25,700 Ahí está. 459 00:25:25,700 --> 00:25:26,640 Ahora es el rojo. 460 00:25:26,640 --> 00:25:30,530 >> Así que es de color rojo, lo que significa fracasó, lo que es malo. 461 00:25:30,530 --> 00:25:32,280 Así que vamos a examinar por qué se dejó. 462 00:25:32,280 --> 00:25:37,070 Así que todo lo que la fuente de la página puede básicamente dicen es lo tuyo 463 00:25:37,070 --> 00:25:38,720 no trabajamos, que ya podemos ver. 464 00:25:38,720 --> 00:25:42,100 Así que lo ideal no habría ser una herramienta más útil. 465 00:25:42,100 --> 00:25:45,710 Y hay algunas extensiones del navegador que le permiten depurar PHP, 466 00:25:45,710 --> 00:25:50,490 pero nosotros no vamos a estar escribiendo un montón de PHP, 467 00:25:50,490 --> 00:25:53,190 por lo que es probable que sólo lo mejor mirar a través de su código 468 00:25:53,190 --> 00:25:56,760 con cuidado y sólo asegúrese de que no está haciendo otra cosa. 469 00:25:56,760 --> 00:26:03,876 >> Así que vamos a ver si el formato de este si la declaración es donde está el problema. 470 00:26:03,876 --> 00:26:07,420 Quiero cargar que volver aquí. 471 00:26:07,420 --> 00:26:09,830 Hola. 472 00:26:09,830 --> 00:26:11,350 Así que hay un problema allí. 473 00:26:11,350 --> 00:26:15,130 >> Así que para la sintaxis correcta de PHP, PHP va 474 00:26:15,130 --> 00:26:17,369 siendo C-como en que verás bucles. 475 00:26:17,369 --> 00:26:18,410 Vas a ver si las declaraciones. 476 00:26:18,410 --> 00:26:20,920 Vas a ver todos estos amigos que te has convertido en familiarizados 477 00:26:20,920 --> 00:26:24,820 con en el transcurso de este semestre CS50. 478 00:26:24,820 --> 00:26:29,960 Pero la mejor manera de encontrar la manera de hacer algo en PHP es Google que 479 00:26:29,960 --> 00:26:33,170 o mirar algunos ejemplos de código PHP porque usted sabe la funcionalidad. 480 00:26:33,170 --> 00:26:35,080 >> Usted sabe lo que pueda ver con el programa. 481 00:26:35,080 --> 00:26:35,976 Usted puede recorrer. 482 00:26:35,976 --> 00:26:37,600 Usted puede bucle tantas veces como quieras. 483 00:26:37,600 --> 00:26:39,433 Usted puede recorrer en toda tipo de maneras diferentes. 484 00:26:39,433 --> 00:26:40,700 Puede crear funciones. 485 00:26:40,700 --> 00:26:43,241 Usted puede crear funciones que llamar a otras funciones, funciones 486 00:26:43,241 --> 00:26:44,150 que llaman a sí mismos. 487 00:26:44,150 --> 00:26:45,733 Y usted tiene nombres para estos conceptos. 488 00:26:45,733 --> 00:26:49,860 Tienes recursividad, loops, si, otros flujos de control. 489 00:26:49,860 --> 00:26:51,300 Y por lo que Google es su mejor amigo. 490 00:26:51,300 --> 00:26:53,540 Incluso decir, "si PHP declaración "y que habrá 491 00:26:53,540 --> 00:26:57,740 ser toneladas de mensajes con respuestas a otras personas 492 00:26:57,740 --> 00:27:02,090 que he tenido preguntas similares a usted, que están empezando a cabo con PHP 493 00:27:02,090 --> 00:27:03,820 y tienen curiosidad por una cosa sintaxis. 494 00:27:03,820 --> 00:27:08,480 >> Porque tenemos el lujo de ser capaz de mirar el código en P serie 6, 495 00:27:08,480 --> 00:27:14,980 que realmente tire hacia arriba y vemos que OK, aquí hay algo interesante. 496 00:27:14,980 --> 00:27:18,070 Así que esto es lo que realmente parecía en P puesto 6. 497 00:27:18,070 --> 00:27:20,340 Así que si pasamos por esto, podemos ver que hemos 498 00:27:20,340 --> 00:27:27,150 tiene varios de estos pequeños Bits de signo de interrogación en PHP similares. 499 00:27:27,150 --> 00:27:29,050 >> Y no hay llaves. 500 00:27:29,050 --> 00:27:30,250 Hay dos puntos. 501 00:27:30,250 --> 00:27:32,340 Y hay rizado apoyos en PHP, pero esto 502 00:27:32,340 --> 00:27:38,700 es un formato y una forma de hacer PHP que funciona bien con HTML 503 00:27:38,700 --> 00:27:43,830 porque como verá, estamos cerrando fuera de estos PHP bits-- la vigilara 504 00:27:43,830 --> 00:27:49,770 y el ifs y todo eso-- y después estamos intercalando HTML dentro de ellos 505 00:27:49,770 --> 00:27:54,640 mientras que aún después de la flujo de control establecido por PHP. 506 00:27:54,640 --> 00:27:58,480 >> Así que sólo voy a rápido paseo a través de este 507 00:27:58,480 --> 00:28:01,740 porque es una gran parte de la misma conceptos que estábamos haciendo antes. 508 00:28:01,740 --> 00:28:07,280 Tenemos, si no está vacío, paréntesis, _GET_GET ["nombre"]. 509 00:28:07,280 --> 00:28:08,500 Esto es todo lo mismo. 510 00:28:08,500 --> 00:28:15,430 Estamos utilizando el diccionario que _GET PHP envía a petición de las formas, 511 00:28:15,430 --> 00:28:20,720 porque es los parámetros de acción, y el método es conseguir. 512 00:28:20,720 --> 00:28:22,110 Y a continuación, que termina eso. 513 00:28:22,110 --> 00:28:27,420 El colon es un significante sólo hacer esto si la sentencia if se evalúa como verdadera. 514 00:28:27,420 --> 00:28:29,490 Es como una llave. 515 00:28:29,490 --> 00:28:33,320 Y de hecho, es una llave en otros lenguajes como Python, 516 00:28:33,320 --> 00:28:37,070 que puede encontrar si sólo hacer eso para su proyecto final. 517 00:28:37,070 --> 00:28:40,170 >> Y luego esta línea, hola. 518 00:28:40,170 --> 00:28:41,510 Entonces tenemos esa cosa rara. 519 00:28:41,510 --> 00:28:43,190 Tenemos más soportes. 520 00:28:43,190 --> 00:28:46,140 No hay HTTP allí-- o PHP, lo siento. 521 00:28:46,140 --> 00:28:47,250 Pero hay un signo igual. 522 00:28:47,250 --> 00:28:50,625 Y luego tenemos una función, htmlspecialchars (_GEThtmlspecialchars (_GET ["name"]). 523 00:28:50,625 --> 00:28:54,440 524 00:28:54,440 --> 00:28:58,040 Esto es algo así como una mayor versión avanzada del eco. 525 00:28:58,040 --> 00:29:01,450 Como habíamos echo como una forma para imprimir cosas en PHP. 526 00:29:01,450 --> 00:29:03,890 Esta es una función que es se define en el que PHP 527 00:29:03,890 --> 00:29:08,160 se ocupará de algunos más desagradable personajes y valores de bytes 528 00:29:08,160 --> 00:29:09,540 que podría pasar. 529 00:29:09,540 --> 00:29:11,070 Siempre es más seguro que usar esto. 530 00:29:11,070 --> 00:29:14,930 Pero echo hará el trabajo bien si no estamos 531 00:29:14,930 --> 00:29:17,620 se trata de algo demasiado desagradable. 532 00:29:17,620 --> 00:29:20,340 >> Y por lo que este tiene el mismo efecto de que, básicamente, 533 00:29:20,340 --> 00:29:26,360 estas cosas en el medio la cuestión marcas se evalúa por PHP. 534 00:29:26,360 --> 00:29:34,490 htmlspecialchars devuelve un bonito HTML valor impreso de _GET_GET ["nombre"], es decir, 535 00:29:34,490 --> 00:29:36,010 lo hemos escrito en el formulario. 536 00:29:36,010 --> 00:29:40,025 Y entonces va a decir hola, espacio de coma, y ​​después de eso. 537 00:29:40,025 --> 00:29:42,910 Toda esa cosa entre los paréntesis angulares 538 00:29:42,910 --> 00:29:47,390 será reemplazado por lo que sea htmlspecialchars pone a cabo. 539 00:29:47,390 --> 00:29:49,390 Así que eso es básicamente similar a lo que estamos haciendo. 540 00:29:49,390 --> 00:29:54,760 Y tenemos una sentencia else que es hola mundo, lo cual tiene sentido. 541 00:29:54,760 --> 00:29:58,070 Así que ahora vamos a volver a nuestro código y ver exactly-- oh. 542 00:29:58,070 --> 00:30:02,200 Dije existe, que no es una cosa que queríamos hacer. 543 00:30:02,200 --> 00:30:05,370 Queríamos decir no está vacío. 544 00:30:05,370 --> 00:30:10,020 >> Y lo que este debe trabajar un poco poco mejor, no _GET_GET vacío ["nombre"]. 545 00:30:10,020 --> 00:30:12,710 Y eso corchete partidos que corchete. 546 00:30:12,710 --> 00:30:15,210 Tenemos nuestras llaves aquí. 547 00:30:15,210 --> 00:30:17,790 echo hola _GET ["nombre"]. 548 00:30:17,790 --> 00:30:19,912 Vamos a ver si esto funciona un poco mejor. 549 00:30:19,912 --> 00:30:21,350 Estamos aún en marcha nuestro servidor. 550 00:30:21,350 --> 00:30:23,910 Hola Jason. 551 00:30:23,910 --> 00:30:24,780 Hola Jason. 552 00:30:24,780 --> 00:30:25,810 Y funcionó esta vez. 553 00:30:25,810 --> 00:30:29,860 Y eso es una prueba que pueda de hecho 554 00:30:29,860 --> 00:30:35,180 utilizar las llaves que conocer y amar en código PHP en HTML. 555 00:30:35,180 --> 00:30:41,100 El código PHP proporcionada a que en conjunto de procesadores 6-- pset 6-- 556 00:30:41,100 --> 00:30:44,760 proporciona otra manera de haciendo la misma cosa. 557 00:30:44,760 --> 00:30:49,220 >> Así que ahora tenemos el poder. 558 00:30:49,220 --> 00:30:55,740 Tenemos la funcionalidad para implementar el código PHP que vimos en el conjunto de procesadores 6 559 00:30:55,740 --> 00:30:57,390 por nosotros mismos, básicamente. 560 00:30:57,390 --> 00:31:01,350 Antes de pasar, ¿cuáles son algunos de los preguntas que usted tiene en este momento? 561 00:31:01,350 --> 00:31:02,066 Sí [inaudible]. 562 00:31:02,066 --> 00:31:06,512 >> AUDIENCIA: Entonces, en la versión en pset6, cuando se ejecuta, hay un espacio. 563 00:31:06,512 --> 00:31:09,330 Y puedo ver que el espacio es después de la coma. [Inaudible] inicio 564 00:31:09,330 --> 00:31:10,700 el soporte abierto. 565 00:31:10,700 --> 00:31:15,420 ¿Cómo incorporar el espacio la forma en que escribió sus propios códigos? 566 00:31:15,420 --> 00:31:17,910 >> ALTAVOZ: Esa es una buena pregunta. 567 00:31:17,910 --> 00:31:21,650 Y así vamos a darse cuenta de eso. 568 00:31:21,650 --> 00:31:24,450 Así que eso es una muy buena pregunta y uno que no me considero. 569 00:31:24,450 --> 00:31:25,950 Pero vamos a hacerlo juntos. 570 00:31:25,950 --> 00:31:30,280 >> Así que en primer lugar, lo que Que estoy haciendo con eco 571 00:31:30,280 --> 00:31:33,690 es cuando acabamos de eco hola, emite hola. 572 00:31:33,690 --> 00:31:41,310 Si nos hacemos eco ahora esto subir a un independiente línea, vamos a examinar lo que sucede. 573 00:31:41,310 --> 00:31:43,740 Así hacemos clic esto. 574 00:31:43,740 --> 00:31:45,220 Seguimos diciendo hola Jason. 575 00:31:45,220 --> 00:31:48,690 Así que de nuevo, no tenemos este espacio. 576 00:31:48,690 --> 00:31:53,090 >> Y es que, en PHP, cuando hemos echo, 577 00:31:53,090 --> 00:31:55,820 no importa cuántas spaces-- pues no, no la V-- 578 00:31:55,820 --> 00:32:01,770 no importa cuántos espacios que ponemos en aquí-- si ahora cargamos que de nuevo, 579 00:32:01,770 --> 00:32:03,010 Hola, Jason. 580 00:32:03,010 --> 00:32:05,770 Sí, ver, todos aquellos espacios consiguieron devorados. 581 00:32:05,770 --> 00:32:08,020 Y eso es algo que la función de eco hace. 582 00:32:08,020 --> 00:32:11,110 >> Así que para cuidar de ese espacio, y esto es 583 00:32:11,110 --> 00:32:14,960 una de las razones ¿por qué usted no utiliza el eco 584 00:32:14,960 --> 00:32:18,200 y utiliza htmlspecialchars lugar. 585 00:32:18,200 --> 00:32:22,140 Tengo curiosidad por lo haría pasaría si hiciéramos esto 586 00:32:22,140 --> 00:32:26,700 donde adjuntamos un espacio en una cadena. 587 00:32:26,700 --> 00:32:29,720 Sinceramente, no estoy seguro de lo pasará cuando hago esto. 588 00:32:29,720 --> 00:32:30,790 >> Así que esa es una forma. 589 00:32:30,790 --> 00:32:32,210 Esa es una manera de cuidar de él. 590 00:32:32,210 --> 00:32:34,840 Si envuelve el espacio una cadena, entonces el espacio 591 00:32:34,840 --> 00:32:36,920 se emitirá muy bien por el eco. 592 00:32:36,920 --> 00:32:41,930 Lo más seguro es hacer htmlspecialchars. 593 00:32:41,930 --> 00:32:43,800 Eso siempre es la apuesta segura. 594 00:32:43,800 --> 00:32:47,050 Pero ahora tenemos una manera de hacerlo con eco en caso necesario. 595 00:32:47,050 --> 00:32:50,700 Y de manera similar, podemos eco nuevas líneas, toda la clase 596 00:32:50,700 --> 00:32:53,550 de cosas que usted está familiarizado hacerlo en PHP. 597 00:32:53,550 --> 00:32:57,460 >> Cualquier otra persona, lo que son más preguntas que otras personas tienen 598 00:32:57,460 --> 00:33:01,090 en este punto sobre PHP? 599 00:33:01,090 --> 00:33:04,620 Si la gente se presentó un poco tarde, Estoy feliz de estar después de un poco 600 00:33:04,620 --> 00:33:06,420 y hablar de algunos de los principios. 601 00:33:06,420 --> 00:33:10,380 Y está también toda livestreamed, y archivados, que es una locura. 602 00:33:10,380 --> 00:33:13,960 >> De todos modos, así que ahora vamos a hacer algunos más cosas avanzadas con PHP. 603 00:33:13,960 --> 00:33:18,790 Y una de las primeras cosas que usted se introdujeron en el C fue de bucles. 604 00:33:18,790 --> 00:33:24,060 Y PHP tiene un motor más potente para lazo llama el bucle foreach. 605 00:33:24,060 --> 00:33:37,940 Y parece que esto-- para cada espacio en blanco como, entre llaves en blanco, hacer la cosa. 606 00:33:37,940 --> 00:33:41,500 Así que esto es básicamente un atajo. 607 00:33:41,500 --> 00:33:45,380 >> Véase, el bucle for como una construcción sintáctica 608 00:33:45,380 --> 00:33:50,590 fue ideado en C y en asamblea lengua y cosas así. 609 00:33:50,590 --> 00:33:56,300 Ideado en C, precisamente, como una abreviatura para muchos de los tipos de bucles 610 00:33:56,300 --> 00:33:57,750 que la gente vea. 611 00:33:57,750 --> 00:34:01,230 Como cuando usted escribió un bucle, hay era a menudo un paso de inicialización 612 00:34:01,230 --> 00:34:04,700 ejecutado desde el principio, un condición en la que el bucle sería stop-- 613 00:34:04,700 --> 00:34:07,030 y esa es la característica eso es sólo en un bucle while, 614 00:34:07,030 --> 00:34:10,040 o que hace tiempo tiene exactamente sólo que feature-- y después 615 00:34:10,040 --> 00:34:12,320 un paso de incremento en el extremo. 616 00:34:12,320 --> 00:34:16,489 Y así que le encuentras a menudo escribir código como el siguiente. 617 00:34:16,489 --> 00:34:19,780 Voy a borrar algo de esto. 618 00:34:19,780 --> 00:34:23,850 >> Pero si estamos iteración a través de personajes de una matriz, 619 00:34:23,850 --> 00:34:26,960 por ejemplo, al igual que hemos tiene una gran variedad de personajes. 620 00:34:26,960 --> 00:34:29,400 Lo sentimos para traer de vuelta C. Lo sé, usted pensaba que estaba hecho. 621 00:34:29,400 --> 00:34:31,900 Pero es sólo con el propósito de aprendizaje de PHP, lo prometo. 622 00:34:31,900 --> 00:34:38,880 Así que si tienes un str carbón de longitud 8, y vamos a 623 00:34:38,880 --> 00:34:46,760 dicen que dice Hellooo con un nulo final. 624 00:34:46,760 --> 00:34:48,270 Grande, así que eso es nuestra cadena. 625 00:34:48,270 --> 00:34:51,469 >> Y luego tuvimos un bucle for. 626 00:34:51,469 --> 00:34:53,730 Tenemos int i es igual a 0. 627 00:34:53,730 --> 00:34:57,960 628 00:34:57,960 --> 00:35:09,110 Y queremos salir cuando str de i no es igual a igual a null, 629 00:35:09,110 --> 00:35:11,590 porque salimos cuando es igual a cero. 630 00:35:11,590 --> 00:35:19,170 Y luego hacemos i ++ en cada punto en el bucle for. 631 00:35:19,170 --> 00:35:30,480 Hacer algo con str de i. 632 00:35:30,480 --> 00:35:34,950 >> Así la fórmula básica era, tuvimos esta matriz que 633 00:35:34,950 --> 00:35:37,910 querido tratar como elementos separados. 634 00:35:37,910 --> 00:35:45,170 Pero lo que teníamos que hacer es que tuvimos que básicamente crear un número entero separada 635 00:35:45,170 --> 00:35:50,530 variable que fue contando cada vez que fuimos a través del bucle. 636 00:35:50,530 --> 00:35:55,240 Y entonces tendríamos que luego llamar strstr [i] cuando lo que realmente quería hacer 637 00:35:55,240 --> 00:35:57,280 es ir personaje por el personaje, ¿no? 638 00:35:57,280 --> 00:36:00,185 No queremos incrementar la número entero y luego usar ese entero 639 00:36:00,185 --> 00:36:02,780 para acceder a cada carácter individual. 640 00:36:02,780 --> 00:36:04,410 Tenemos muchas ganas de carácter por carácter. 641 00:36:04,410 --> 00:36:08,600 >> Y así para cada uno de forma inteligente calcula que para nosotros. 642 00:36:08,600 --> 00:36:11,875 Si tenemos una matriz, que podemos declarar en PHP 643 00:36:11,875 --> 00:36:15,900 como sólo-- si tenemos una variable llama, vamos a llamarlo matriz. 644 00:36:15,900 --> 00:36:19,840 Los milagros de ninguna tipificación, es al igual que cualquier otra variable. 645 00:36:19,840 --> 00:36:20,730 Es sólo una matriz. 646 00:36:20,730 --> 00:36:26,890 Y tenemos un poco de [inaudible] como 1, 2, 3, sólo una especie de matriz inicializado. 647 00:36:26,890 --> 00:36:29,680 Está bien, no le gusta mi foreach. 648 00:36:29,680 --> 00:36:33,120 >> Pero si foreach-- realidad He escrito que un poco mal. 649 00:36:33,120 --> 00:36:34,840 Hay dos maneras de hacer un bucle foreach. 650 00:36:34,840 --> 00:36:37,400 Ahí está la sintaxis y el como sintaxis. 651 00:36:37,400 --> 00:36:40,580 Y nosotros vamos a hacer en primera sintaxis, no como. 652 00:36:40,580 --> 00:36:41,780 Esa es mi error. 653 00:36:41,780 --> 00:36:53,785 >> Num Así foreach en ordenanza, eco num. 654 00:36:53,785 --> 00:36:56,970 655 00:36:56,970 --> 00:36:59,500 Y PHP está gritando a mí por alguna razón. 656 00:36:59,500 --> 00:37:03,520 Se trata de encontrar un inesperado en en algo, 657 00:37:03,520 --> 00:37:05,820 que es un poco de una molestia. 658 00:37:05,820 --> 00:37:09,105 Pero vamos a averiguar por qué es eso en un momento. 659 00:37:09,105 --> 00:37:11,960 660 00:37:11,960 --> 00:37:13,610 Así que no le gusta eso. 661 00:37:13,610 --> 00:37:15,040 Vamos a tratar de usar el como. 662 00:37:15,040 --> 00:37:17,310 Prefiere la sintaxis es como parece. 663 00:37:17,310 --> 00:37:22,550 Así que vamos a hacer array foreach como num. 664 00:37:22,550 --> 00:37:24,520 >> Así que un poco de explicación de lo que acaba de suceder 665 00:37:24,520 --> 00:37:30,670 se la como sintaxis se diciendo-- bien primero, echemos un vistazo a lo que este imprime. 666 00:37:30,670 --> 00:37:32,260 Así que abrimos nuestra IDE. 667 00:37:32,260 --> 00:37:33,110 Vamos aquí. 668 00:37:33,110 --> 00:37:35,845 Decimos: Hola Jason. 669 00:37:35,845 --> 00:37:41,390 Y lo hizo 123, que eran los contenidos de la matriz que hemos creado hasta la parte superior. 670 00:37:41,390 --> 00:37:45,500 >> Así que sumergirse en este bucle foreach, tenemos una gama variable llamada 671 00:37:45,500 --> 00:37:47,470 que es un conjunto de tres números. 672 00:37:47,470 --> 00:37:52,120 Y luego estamos haciendo foreach matriz como num, eco num. 673 00:37:52,120 --> 00:37:54,990 Y eso es más intuitivo que una de lop. 674 00:37:54,990 --> 00:38:02,380 Estamos diciendo, el tratamiento de cada uno de las cosas en la matriz como num, 675 00:38:02,380 --> 00:38:05,180 Quiero que me des num. 676 00:38:05,180 --> 00:38:06,640 Y eso es exactamente lo que está haciendo. 677 00:38:06,640 --> 00:38:12,000 >> PHP es el cálculo que cuando dices gama foreach, 678 00:38:12,000 --> 00:38:16,080 y que está tratando con una matriz, lo que usted va a querer para repetir 679 00:38:16,080 --> 00:38:19,950 son los personajes de esa matriz, son los enteros en esa matriz, 680 00:38:19,950 --> 00:38:21,920 son los elementos de la matriz. 681 00:38:21,920 --> 00:38:26,110 Y es lo que le permite almacenar aquellas variables como num, 682 00:38:26,110 --> 00:38:29,360 y num continuación, sólo de salida de inmediato en lugar de decir, 683 00:38:29,360 --> 00:38:34,090 Tengo una variable llamada i, y entonces quiero strstr salida [i]. 684 00:38:34,090 --> 00:38:39,130 >> Y para que nos permite hacer cosas interesantes. 685 00:38:39,130 --> 00:38:43,330 Al igual que, básicamente, no tenemos para crear estas variables como la i de y hacer todo 686 00:38:43,330 --> 00:38:45,090 estas cosas de incremento al final. 687 00:38:45,090 --> 00:38:48,290 PHP se encarga de todo eso para usted. 688 00:38:48,290 --> 00:38:54,470 >> Así que ahora vamos a hablar de foreach como se aplica a nuestro diccionario _GET. 689 00:38:54,470 --> 00:38:57,170 Así que vamos a comentar esta rápidamente. 690 00:38:57,170 --> 00:39:02,030 Así que tenemos nuestra matriz _GET. 691 00:39:02,030 --> 00:39:04,361 Tenemos esta variable. 692 00:39:04,361 --> 00:39:05,610 Y tiene algunas cosas en ella. 693 00:39:05,610 --> 00:39:10,275 >> En este momento, sólo tenemos una variable se pasa a ella, que es nombre. 694 00:39:10,275 --> 00:39:13,420 Pero si pulsa ENTER, ahora podemos tener dos variables. 695 00:39:13,420 --> 00:39:17,910 Podemos tener el nombre y la edad, por ejemplo, si queremos obtener la edad y también 696 00:39:17,910 --> 00:39:20,960 el nombre de una persona, curiosamente. 697 00:39:20,960 --> 00:39:25,690 >> Así que ahora _GET va a ser un diccionario con dos elementos, 698 00:39:25,690 --> 00:39:27,980 con dos pares de valores clave. 699 00:39:27,980 --> 00:39:33,490 Y la primera key-- voy a escribir ésta en el tablero también. 700 00:39:33,490 --> 00:39:37,136 Tenemos nuestro diccionario es _GET. 701 00:39:37,136 --> 00:39:39,520 Lo siento, es que es un poco difícil de ver. 702 00:39:39,520 --> 00:39:46,690 Pero dentro de nuestro diccionario tenemos nombrar, que va a ser algo 703 00:39:46,690 --> 00:39:47,680 que se nos da. 704 00:39:47,680 --> 00:39:53,040 Y vamos a tener la edad, que es también va a ser algo que se nos da. 705 00:39:53,040 --> 00:39:56,020 Y esta es la totalidad de nuestro diccionario. 706 00:39:56,020 --> 00:39:57,730 >> Así que tiene dos elementos en los mismos. 707 00:39:57,730 --> 00:40:01,310 Y así porque foreach bucles son inteligentes, que 708 00:40:01,310 --> 00:40:04,900 podría pensar, y correcta podría pensar que foreach 709 00:40:04,900 --> 00:40:08,080 puede recorrer este diccionario, imprimiendo 710 00:40:08,080 --> 00:40:10,850 los valores dados por su nombre y edad. 711 00:40:10,850 --> 00:40:14,510 >> Así que vamos, de hecho, lo hacen precisamente eso. 712 00:40:14,510 --> 00:40:17,520 Vamos a construir un bucle foreach. 713 00:40:17,520 --> 00:40:23,351 Y vamos a hacer por _GET como. 714 00:40:23,351 --> 00:40:24,850 Y vamos a hacer lo siguiente. 715 00:40:24,850 --> 00:40:34,186 Así que vamos a ver qué pasa si tecleamos simplemente la palabra, y luego decir palabra eco. 716 00:40:34,186 --> 00:40:40,540 También vamos a hacerse eco de una nueva línea sólo para que sea un poco más claro, 717 00:40:40,540 --> 00:40:41,260 que esta pasando. 718 00:40:41,260 --> 00:40:42,890 >> Así que vamos a ver. 719 00:40:42,890 --> 00:40:44,390 No me da ningún error. 720 00:40:44,390 --> 00:40:46,810 Y vamos a cerrar esto. 721 00:40:46,810 --> 00:40:51,020 En nuestra página web, vas a estar haciendo mucho de eso en el transcurso de pset7. 722 00:40:51,020 --> 00:40:53,890 Por eso decimos que mi nombre es Sam. 723 00:40:53,890 --> 00:40:58,560 Mi edad es 45. 724 00:40:58,560 --> 00:41:01,060 No es. 725 00:41:01,060 --> 00:41:05,640 Pero imprime, como se esperaba, Sam 45. 726 00:41:05,640 --> 00:41:08,930 >> Y así te darás cuenta de que lo que bucle foreach did-- aquí, 727 00:41:08,930 --> 00:41:12,360 vamos a volver a eso por lo que toca en el board-- obtenemos _GET como palabra. 728 00:41:12,360 --> 00:41:15,130 Y había cuatro cosas en _GET. 729 00:41:15,130 --> 00:41:17,410 Pero sólo imprime dos cosas. 730 00:41:17,410 --> 00:41:21,290 foreach, siendo su auto de inteligencia, por supuesto que lo que realmente queríamos 731 00:41:21,290 --> 00:41:24,100 era de los valores, no las llaves. 732 00:41:24,100 --> 00:41:27,800 >> Pero hay una manera de que pudiéramos imprimir las llaves, así, si queríamos. 733 00:41:27,800 --> 00:41:30,810 Si quisiéramos también saber qué se llamaban estas variables, 734 00:41:30,810 --> 00:41:33,540 hay una manera que puede acceder a este también. 735 00:41:33,540 --> 00:41:36,840 Y la forma de una especie de hacer eso, por lo que podemos decir, permite en realidad 736 00:41:36,840 --> 00:41:39,485 dividirlo en pares de valores clave. 737 00:41:39,485 --> 00:41:42,370 738 00:41:42,370 --> 00:41:47,580 Así que vamos a ver qué pasa ahora. 739 00:41:47,580 --> 00:41:50,550 >> Así que tenemos la clave. 740 00:41:50,550 --> 00:41:52,290 Tenemos valor. 741 00:41:52,290 --> 00:41:56,650 Tenemos otro nuevo line para facilitar la lectura. 742 00:41:56,650 --> 00:42:00,540 Y vamos a ver qué pasa cuando hacemos esto ahora. 743 00:42:00,540 --> 00:42:04,950 744 00:42:04,950 --> 00:42:06,720 No sé la edad que Jason es. 745 00:42:06,720 --> 00:42:09,180 Jason de 15. 746 00:42:09,180 --> 00:42:11,650 Así que tenemos el nombre de Jason, de 15 años. 747 00:42:11,650 --> 00:42:15,830 Así que pudimos acceder a la clave y pares de valores de este diccionario 748 00:42:15,830 --> 00:42:18,590 sólo decir como puntos clave para valorar. 749 00:42:18,590 --> 00:42:23,350 Y eso es una sintáctica foreach poco azúcar que permite 750 00:42:23,350 --> 00:42:25,960 tener acceso a las cosas en el diccionario. 751 00:42:25,960 --> 00:42:31,190 >> Así que espero que este tipo de enfatiza la potencia del bucle foreach. 752 00:42:31,190 --> 00:42:35,690 Usted puede casi tiro cualquier cosa que iterable parece, 753 00:42:35,690 --> 00:42:38,922 como todo lo que tiene múltiples elementos como una matriz, 754 00:42:38,922 --> 00:42:41,880 como un dictionary-- esos son de dos cosas principales que va a trabajar con 755 00:42:41,880 --> 00:42:45,630 tanto en la vida y en el conjunto de procesadores 7. 756 00:42:45,630 --> 00:42:49,350 Así que usted puede lanzar ese material en ella, y se darán cuenta de 757 00:42:49,350 --> 00:42:51,030 lo que quiere hacer con ella. 758 00:42:51,030 --> 00:42:54,250 Se dirá, OK, voy a conseguir estas cosas de los datos que 759 00:42:54,250 --> 00:42:55,680 se pasó a mí. 760 00:42:55,680 --> 00:43:02,470 Y eso es algo que usted es va a utilizar una gran cantidad de en pset 7. 761 00:43:02,470 --> 00:43:08,550 >> Voy a desplazamiento rápido abajo sólo para ver donde estoy. 762 00:43:08,550 --> 00:43:11,410 763 00:43:11,410 --> 00:43:13,070 ¿Las personas tienen preguntas en este momento? 764 00:43:13,070 --> 00:43:13,778 Preguntas en absoluto? 765 00:43:13,778 --> 00:43:14,400 ¿Sí? 766 00:43:14,400 --> 00:43:18,320 >> AUDIENCIA: Así que con la clave y el valor, usted podría llamarlo otra cosa 767 00:43:18,320 --> 00:43:20,507 y no por ello deja trabajar? 768 00:43:20,507 --> 00:43:21,090 ALTAVOZ: Vaya. 769 00:43:21,090 --> 00:43:22,820 Wow, estoy totalmente eliminado toda la línea. 770 00:43:22,820 --> 00:43:23,380 Buen trabajo. 771 00:43:23,380 --> 00:43:26,502 Así que una, a. 772 00:43:26,502 --> 00:43:30,109 Key y el valor es sólo una convención. 773 00:43:30,109 --> 00:43:30,650 Es útil. 774 00:43:30,650 --> 00:43:34,010 Se podría conseguir un poco de diseño puntos, tal vez algunos puntos de estilo 775 00:43:34,010 --> 00:43:36,970 por hacer eso, ya que realmente transmite la intención. 776 00:43:36,970 --> 00:43:39,650 Pero nosotros decimos una y yarp. 777 00:43:39,650 --> 00:43:42,476 >> AUDIENCIA: Usted no tiene que cambiar nada en el archivo HTML 778 00:43:42,476 --> 00:43:43,607 con el fin de reflejar eso? 779 00:43:43,607 --> 00:43:44,440 ALTAVOZ: No, en absoluto. 780 00:43:44,440 --> 00:43:47,260 AUDIENCIA: Y que sólo sabe que debido a la mayor es igual a no sea: 781 00:43:47,260 --> 00:43:47,801 ALTAVOZ: Sí. 782 00:43:47,801 --> 00:43:49,489 AUDIENCIA: indicador --que que Eso es-- 783 00:43:49,489 --> 00:43:50,030 ALTAVOZ: Sí. 784 00:43:50,030 --> 00:43:52,260 Esa es una sintaxis foreach, pero sí. 785 00:43:52,260 --> 00:43:53,720 >> AUDIENCIA: No son tipos. 786 00:43:53,720 --> 00:43:57,230 Entonces, ¿qué si quería edad solamente ser un número? 787 00:43:57,230 --> 00:43:59,510 ¿Hay una manera de hacer eso? 788 00:43:59,510 --> 00:44:04,550 >> ALTAVOZ: Hay maneras de comprobar si variables que se ajustan a ciertos tipos. 789 00:44:04,550 --> 00:44:08,482 Así PHP pide un poco más de porque no hay tipos en. 790 00:44:08,482 --> 00:44:09,440 Algunas formas en que pide menos. 791 00:44:09,440 --> 00:44:11,070 En cierto modo, pide más. 792 00:44:11,070 --> 00:44:13,320 Porque si usted tiene sólo algo en una variable, 793 00:44:13,320 --> 00:44:14,960 usted no tiene idea de qué tipo es. 794 00:44:14,960 --> 00:44:19,310 Pero si usted es inteligente acerca de las variables que se asigna a los tipos y asegúrese 795 00:44:19,310 --> 00:44:22,750 que funciona sólo le return-- quiero funciones a solamente retorno 796 00:44:22,750 --> 00:44:26,210 un tipo de valor, de modo que pueda básicamente 797 00:44:26,210 --> 00:44:31,090 esperar que la variable que volver a partir de una función será del tipo 798 00:44:31,090 --> 00:44:32,780 que usted piensa que va a ser, básicamente. 799 00:44:32,780 --> 00:44:36,550 >> Pero hay algunos métodos por el cual se puede comprobar. 800 00:44:36,550 --> 00:44:39,801 No me acuerdo de ellos la parte superior de mi cabeza. 801 00:44:39,801 --> 00:44:43,300 Estoy esperando a que se vuelve 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 Hay métodos incorporado en PHP que puede 805 00:44:52,000 --> 00:44:54,440 comprobar el tipo de variables para usted. 806 00:44:54,440 --> 00:44:58,250 Pero si asigna las variables inteligentemente, no debe 807 00:44:58,250 --> 00:45:01,330 tener que hacer eso demasiado en pset 7. 808 00:45:01,330 --> 00:45:02,780 Pero sí existen esos métodos. 809 00:45:02,780 --> 00:45:06,704 Y eso es algo que es en el lenguaje mismo. 810 00:45:06,704 --> 00:45:08,370 Y no recuerdo la sintaxis precisa. 811 00:45:08,370 --> 00:45:09,930 Incluso podríamos mirar hacia arriba. 812 00:45:09,930 --> 00:45:11,974 Pero el tiempo es la esencia. 813 00:45:11,974 --> 00:45:13,890 ¿Alguien más tiene tienen alguna pregunta más? 814 00:45:13,890 --> 00:45:14,660 Sí. 815 00:45:14,660 --> 00:45:15,951 >> AUDIENCIA: Tengo sólo una más. 816 00:45:15,951 --> 00:45:19,050 Así que usted ha mencionado el método GET, pero Usted no mencionó el método POST. 817 00:45:19,050 --> 00:45:20,500 ¿Estamos regresando a eso? 818 00:45:20,500 --> 00:45:21,540 >> ALTAVOZ: Sí, lo haremos volveremos a eso. 819 00:45:21,540 --> 00:45:24,840 Eso es exactamente lo que estaba buscando en mi teléfono, que ahora se quedó dormido, 820 00:45:24,840 --> 00:45:26,960 pero lo encontraré. 821 00:45:26,960 --> 00:45:30,680 Sólo me aseguraba que golpeamos todas las notas de PHP. 822 00:45:30,680 --> 00:45:35,640 Sí, no hay versión de depuración. 823 00:45:35,640 --> 00:45:41,940 Sí, tenemos un par de cosas más que queremos hacer ahora en este punto. 824 00:45:41,940 --> 00:45:45,980 >> Así que hablando de POST, que usted ha mencionado, 825 00:45:45,980 --> 00:45:49,630 la unica diferencia entre GET y POST es 826 00:45:49,630 --> 00:45:53,150 que recuerdan cuando miramos en esta dirección URL y vimos, oh, 827 00:45:53,150 --> 00:45:58,270 es igual a un nombre y edad es igual a yarp están justo en la URL ahí para nosotros. 828 00:45:58,270 --> 00:46:03,300 POST es un poco más reservado con su paso de la información. 829 00:46:03,300 --> 00:46:08,090 >> Así que si usted no desea que un usuario a saber, por ejemplo, 830 00:46:08,090 --> 00:46:11,160 No quería que el nombre de usuario y la contraseña de la persona 831 00:46:11,160 --> 00:46:15,080 actualmente conectado a mostrar en la URL, que es una cosa razonable 832 00:46:15,080 --> 00:46:17,770 a no querer en la URL, porque alguien puede verlo. 833 00:46:17,770 --> 00:46:21,520 Si se vinculan a alguien a una página, no quieren que su URL pegado allí, 834 00:46:21,520 --> 00:46:27,850 porque eso sería permitir que la gente inicie sesión solo con el pegado de una URL en lugar 835 00:46:27,850 --> 00:46:29,670 del hecho de rellenar un formulario. 836 00:46:29,670 --> 00:46:31,710 POST es un poco más reservado. 837 00:46:31,710 --> 00:46:34,150 >> Y lo único que vamos a tener que cambiar 838 00:46:34,150 --> 00:46:38,550 son este método, el cambio de llegar a publicar. 839 00:46:38,550 --> 00:46:42,367 Y luego en el interior del HTTP, en lugar de acceder a la _GET matriz, 840 00:46:42,367 --> 00:46:43,950 vamos a acceder al _POST matriz. 841 00:46:43,950 --> 00:46:48,600 >> Y nos dimos cuenta de que, si abrimos este nuevo otra vez, 842 00:46:48,600 --> 00:46:51,910 Jason declina lentamente en edad. 843 00:46:51,910 --> 00:46:53,230 nombrar Jason, de 14 años. 844 00:46:53,230 --> 00:46:54,280 El mismo material aparece. 845 00:46:54,280 --> 00:46:57,190 Pero vamos a la URL y esas variables no están allí. 846 00:46:57,190 --> 00:47:00,540 >> Y la forma en que la POST passes-- a fin de recordar 847 00:47:00,540 --> 00:47:02,750 cómo mirar a la fuente de una página. 848 00:47:02,750 --> 00:47:04,570 Nos vamos a la red. 849 00:47:04,570 --> 00:47:06,920 Nos refrescamos. 850 00:47:06,920 --> 00:47:10,690 Y esta es otra cosa que POSTE le dará advertencias sobre. 851 00:47:10,690 --> 00:47:15,050 Es posible que haya visto un cuadro, un texto boxear como este en su navegador. 852 00:47:15,050 --> 00:47:18,170 Estas seguro que quieres para enviar un formulario de nuevo? 853 00:47:18,170 --> 00:47:21,170 POST es lo que está enviando estas formas. 854 00:47:21,170 --> 00:47:24,680 >> Debido a que, básicamente, si envía su información de tarjeta de crédito a alguien, 855 00:47:24,680 --> 00:47:26,350 eso no va a aparecer en la URL. 856 00:47:26,350 --> 00:47:28,180 Eso va a ser una solicitud POST. 857 00:47:28,180 --> 00:47:32,905 Así que cuando se actualiza la página, que es volver a enviar esa solicitud posterior. 858 00:47:32,905 --> 00:47:35,530 Así que ahora sí queremos enviar el formar de nuevo porque no va 859 00:47:35,530 --> 00:47:37,340 para crear las compras duplicadas. 860 00:47:37,340 --> 00:47:41,160 >> Y nos dimos cuenta de que aquí abajo, el método que estamos usando es POST. 861 00:47:41,160 --> 00:47:43,065 Y, efectivamente, la transferencia de bytes. 862 00:47:43,065 --> 00:47:45,460 Se transfiere 401 de ellos. 863 00:47:45,460 --> 00:47:47,190 De muy pequeño programa. 864 00:47:47,190 --> 00:47:51,600 Pero no hay ningún lugar que podemos ver los valores que se pasan. 865 00:47:51,600 --> 00:47:59,540 Las páginas web en sí pueden ver, pero nosotros como usuarios no somos capaces de ver, 866 00:47:59,540 --> 00:48:01,650 a menos que seas un hacker. 867 00:48:01,650 --> 00:48:05,340 Si eres un buen hacker, usted puede mirar. 868 00:48:05,340 --> 00:48:09,360 >> Si conoce el básico formato de la HTML, 869 00:48:09,360 --> 00:48:11,790 los valores harán darse a conocer en las páginas. 870 00:48:11,790 --> 00:48:13,160 Usted será capaz de ver. 871 00:48:13,160 --> 00:48:16,720 Los valores estarán allí, son sólo un poco menos obvio para usted 872 00:48:16,720 --> 00:48:19,522 de acceso, básicamente. 873 00:48:19,522 --> 00:48:23,620 >> ¿Tenemos más preguntas acerca de GET, POST 874 00:48:23,620 --> 00:48:26,800 antes-- lo que vamos a hacer a continuación en realidad es mirar a una parte del código 875 00:48:26,800 --> 00:48:30,837 que se está dando en el conjunto de procesadores 7, habla de la forma en que utiliza algunos de estos conceptos, 876 00:48:30,837 --> 00:48:32,670 y hablar sobre el las cosas que se van 877 00:48:32,670 --> 00:48:35,090 a tener que hacer un poco de pset 7. 878 00:48:35,090 --> 00:48:36,760 ¿Alguna pregunta más antes de eso? 879 00:48:36,760 --> 00:48:38,047 Más preguntas que ustedes tienen? 880 00:48:38,047 --> 00:48:41,250 881 00:48:41,250 --> 00:48:41,840 Excelente. 882 00:48:41,840 --> 00:48:45,370 >> Muy bien, vamos a ver un poco al conjunto de procesadores 7, 883 00:48:45,370 --> 00:48:49,530 sin duda lo que eres todo más entusiasmado. 884 00:48:49,530 --> 00:48:52,126 885 00:48:52,126 --> 00:48:54,750 Quiero decir, esto es algo que David pasa por un poco. 886 00:48:54,750 --> 00:49:00,890 Pero vamos a tener tres directorios en el la parte superior, así como un archivo de configuración. 887 00:49:00,890 --> 00:49:04,650 Eso es para las bases de datos, lo que vamos a hablar en unos cinco minutos. 888 00:49:04,650 --> 00:49:07,220 Incluye, nunca se necesita para buscar en este directorio 889 00:49:07,220 --> 00:49:12,480 si no quieres, pero es bueno saben que hay todo tipo de ayudantes. 890 00:49:12,480 --> 00:49:14,210 Ayudantes es como funciones útiles. 891 00:49:14,210 --> 00:49:18,120 Y luego tenemos config, que establece algunas cosas. 892 00:49:18,120 --> 00:49:24,590 >> Hay algunas funciones que tiene CS50 escrito que están en ayudante y config. 893 00:49:24,590 --> 00:49:27,250 Y algunos de los que PHP ya sale en los archivos 894 00:49:27,250 --> 00:49:30,880 va a hacer una gran cantidad de la especie más trabajo de la pierna de obtuso para usted. 895 00:49:30,880 --> 00:49:35,250 Al igual que si entramos en público login.php, que es lo que 896 00:49:35,250 --> 00:49:38,350 muestra a la derecha cuando se entra en pset 7. 897 00:49:38,350 --> 00:49:40,580 Veremos que hay esto requiere declaración. 898 00:49:40,580 --> 00:49:43,420 Y eso como una especie de aguda incluyen, hashtag 899 00:49:43,420 --> 00:49:46,850 incluir si eres de una generación más reciente. 900 00:49:46,850 --> 00:49:49,740 Pero esto, básicamente, dice que necesito acceso 901 00:49:49,740 --> 00:49:52,260 a todas las funciones en config.php. 902 00:49:52,260 --> 00:49:55,290 Y usted podría tener una requerir para todo tipo de otras cosas. 903 00:49:55,290 --> 00:49:59,670 >> config en realidad requiere ayudantes. 904 00:49:59,670 --> 00:50:02,490 Así que cada vez que usted requiere config, usted es también 905 00:50:02,490 --> 00:50:05,660 incluyendo o que requieren ayudantes también. 906 00:50:05,660 --> 00:50:09,590 Así que le da acceso a toda la funciones interesantes que vamos a utilizar, 907 00:50:09,590 --> 00:50:10,420 cosas como render. 908 00:50:10,420 --> 00:50:13,490 Estoy realmente va a aliviar esto abajo un poco. 909 00:50:13,490 --> 00:50:16,280 Así la función entonces estamos ir a caminar a través de 910 00:50:16,280 --> 00:50:22,380 justo antes de pasar a SQL un poco bit es la función login.php, justo 911 00:50:22,380 --> 00:50:26,586 ya que utiliza algunos de los temas que acabamos de hablar en PHP. 912 00:50:26,586 --> 00:50:30,840 >> Usted ve la primera cosa es si $ _SERVER. 913 00:50:30,840 --> 00:50:34,500 Esta es otra variable global que usted va a estar tratando. 914 00:50:34,500 --> 00:50:38,460 Es como _GET y _POST, pero lo servidor contiene está esto puede dejarte 915 00:50:38,460 --> 00:50:42,730 saber si el método de la petición fue un GET o POST. 916 00:50:42,730 --> 00:50:47,250 Al igual que anteriormente lo que estábamos haciendo es sólo en nuestro código que escribimos, 917 00:50:47,250 --> 00:50:51,880 estábamos cambiando que sea GET y POSTE dependiendo de lo que tiene el HTML. 918 00:50:51,880 --> 00:50:55,120 Pero hay páginas que pueden ser visitada con ambos tipos de peticiones. 919 00:50:55,120 --> 00:50:57,410 Y es posible que desee hacer diferentes cosas dependiendo 920 00:50:57,410 --> 00:50:59,740 en el tipo de solicitud, al igual que lo hace de inicio de sesión. 921 00:50:59,740 --> 00:51:04,400 >> Así se puede comprobar que la solicitud método a través de las teclas con el acceso, 922 00:51:04,400 --> 00:51:08,630 mediante el uso de una clave y obtener el valor de algo en el diccionario 923 00:51:08,630 --> 00:51:10,260 _SERVIDOR. 924 00:51:10,260 --> 00:51:13,800 Así que esa es otra mundial variables como _GET y _POST. 925 00:51:13,800 --> 00:51:16,990 >> Si se trata de GET, queremos hacer que el formulario de acceso. 926 00:51:16,990 --> 00:51:21,920 Render es una función que, básicamente, simplemente pone el HTML adecuado 927 00:51:21,920 --> 00:51:24,500 y lo pasa algunos parámetros. 928 00:51:24,500 --> 00:51:28,740 Este título es un parámetro que es utilizado en la visualización, por extraño que parezca, 929 00:51:28,740 --> 00:51:32,670 el título de la página en cuestión, la cosa aquí, 930 00:51:32,670 --> 00:51:34,850 decir o saludar en nuestro ejemplo anterior. 931 00:51:34,850 --> 00:51:36,100 Ahora tenemos una cosa diferente. 932 00:51:36,100 --> 00:51:38,570 Porque si es POST, que hacer algunas otras cosas. 933 00:51:38,570 --> 00:51:40,790 Estamos usando ese método vacía. 934 00:51:40,790 --> 00:51:42,750 No es existe, está vacío. 935 00:51:42,750 --> 00:51:45,440 Y vimos antes, PHP tiene una buena cantidad de construida 936 00:51:45,440 --> 00:51:52,370 en métodos que David Voluntad-- si hay son métodos que son útiles para usted, 937 00:51:52,370 --> 00:51:55,560 serán alertados de que en el paseo a través de que David 938 00:51:55,560 --> 00:51:59,770 da en la visión general que comienza, y también votos trozos de Zamyla. 939 00:51:59,770 --> 00:52:01,040 Ella está de vuelta cada uno. 940 00:52:01,040 --> 00:52:03,100 Todos podemos regocijarnos. 941 00:52:03,100 --> 00:52:06,530 pedir disculpas es una función bien llamado que, básicamente, sólo imprime 942 00:52:06,530 --> 00:52:10,130 algunos mensajes de error, porque CS50 es muy educado. 943 00:52:10,130 --> 00:52:14,770 >> Y ahora esto, esta es una poco complicado porque este 944 00:52:14,770 --> 00:52:16,697 es donde estamos consultando la base de datos. 945 00:52:16,697 --> 00:52:18,280 Ahora no hemos hablado de las bases de datos. 946 00:52:18,280 --> 00:52:22,220 Y vamos a la próxima cinco minutos más o menos, como máximo. 947 00:52:22,220 --> 00:52:24,980 Pero esta es una función que CS50 ha escrito 948 00:52:24,980 --> 00:52:38,050 para conseguir una mesa, básicamente, de una base de datos que estamos trabajando con en el conjunto de procesadores 7. 949 00:52:38,050 --> 00:52:40,860 Soy muy malo con mi indexación hoy en día cero. 950 00:52:40,860 --> 00:52:42,060 Pero sí, es 7. 951 00:52:42,060 --> 00:52:46,340 >> Así consulta que va a devolver un matriz, básicamente es el paletón. 952 00:52:46,340 --> 00:52:54,130 Y porque estas cosas no tienen mecanografía, así filas es una matriz de matrices. 953 00:52:54,130 --> 00:52:59,480 Porque cuando estamos pensando en una mesa, ¿qué vamos a hacer 954 00:52:59,480 --> 00:53:04,830 es, como usted aprendió en conjuntos de procesadores como el juego de 15, de todos modos 955 00:53:04,830 --> 00:53:06,990 donde había que utilizar una doble matriz, que básicamente 956 00:53:06,990 --> 00:53:15,210 tienen gran variedad de otros arrays hace una mesa. 957 00:53:15,210 --> 00:53:18,150 Y tienes filas y columnas. 958 00:53:18,150 --> 00:53:24,450 Y entonces usted puede acceder a ellos como [0] [1], se obtiene la [0] [1]. 959 00:53:24,450 --> 00:53:26,900 Cosas básicas como eso. 960 00:53:26,900 --> 00:53:29,380 >> Así que lo que estamos haciendo aquí en esta función, 961 00:53:29,380 --> 00:53:35,070 estamos pidiendo a la base de datos si el usuario que es 962 00:53:35,070 --> 00:53:40,200 tratar de iniciar sesión, que será enviado a través del método POST. 963 00:53:40,200 --> 00:53:43,950 Ya veremos que estamos recibiendo el nombre de usuario de _POST. 964 00:53:43,950 --> 00:53:46,900 Ellos te han enviado, el usuario o, se enviará un valor 965 00:53:46,900 --> 00:53:50,750 a través de un formulario a través de la POST porque es nombre de usuario y la contraseña de cosas. 966 00:53:50,750 --> 00:53:54,830 Estamos comprobando el nombre de usuario para ver, ¿es esto en la tabla? 967 00:53:54,830 --> 00:53:58,070 Porque si un usuario inicia sesión en, a continuación, su nombre de usuario 968 00:53:58,070 --> 00:54:03,320 debe ser almacenado en la tabla de los usuarios que existen para este sitio. 969 00:54:03,320 --> 00:54:09,360 Así que, básicamente, si el usuario está en la base de datos, 970 00:54:09,360 --> 00:54:16,400 consulta se va a volver esa fila, que es una matriz. 971 00:54:16,400 --> 00:54:24,560 >> Pero la parte difícil es que si incluso si la matriz doble es sólo una fila, 972 00:54:24,560 --> 00:54:31,900 incluso si es una fila de un array-- como si tuvieras basically-- 973 00:54:31,900 --> 00:54:36,900 si usted tiene un tamaño de un array eso es la celebración de otra matriz, 974 00:54:36,900 --> 00:54:38,940 usted está realmente hacer frente a una columna. 975 00:54:38,940 --> 00:54:41,420 Pero todavía es tratada como una doble matriz. 976 00:54:41,420 --> 00:54:44,560 >> Y aquí es donde a veces puede llegar difícil, porque tenemos filas aquí. 977 00:54:44,560 --> 00:54:46,440 Nuestra variable es filas. 978 00:54:46,440 --> 00:54:48,590 Y entonces estamos creando una fila nueva variable llamada 979 00:54:48,590 --> 00:54:51,450 y se establece igual a la primera fila de las filas. 980 00:54:51,450 --> 00:54:55,150 Y te darás cuenta de que el comentario dice que es la primera y única fila. 981 00:54:55,150 --> 00:54:57,080 >> Así que este es el complicado funciones parciales, donde ahora 982 00:54:57,080 --> 00:54:59,660 puede devolver matrices muy fácilmente. 983 00:54:59,660 --> 00:55:01,270 No hay mallocs. 984 00:55:01,270 --> 00:55:02,280 Usted no verá mallocs. 985 00:55:02,280 --> 00:55:03,940 Así que usted no verá faltas seg. 986 00:55:03,940 --> 00:55:08,380 Pero las funciones seguirán pasando alrededor de las matrices y los datos en grupos. 987 00:55:08,380 --> 00:55:12,250 Y hay que tener cuidado con lo que exactamente sus funciones volverán. 988 00:55:12,250 --> 00:55:15,160 E incluso si es uno columna como ésta, consultar 989 00:55:15,160 --> 00:55:17,520 Todavía va a devolver una doble matriz. 990 00:55:17,520 --> 00:55:21,390 Así que para que el acceso o column-- puede pensar en todo esto como invertida 991 00:55:21,390 --> 00:55:22,870 ya que estamos hablando de filas. 992 00:55:22,870 --> 00:55:26,810 Sin embargo, para acceder a esa una fila, usted no puede simplemente decir filas. 993 00:55:26,810 --> 00:55:31,540 A pesar de que es una fila, usted tiene que Qué rowsrows [0] para eliminar la especie de este 994 00:55:31,540 --> 00:55:37,360 bit exterior de la matriz y tener sólo su una fila. 995 00:55:37,360 --> 00:55:38,342 >> Haga un poco de otras cosas. 996 00:55:38,342 --> 00:55:40,050 Hay una función llamada password_verify 997 00:55:40,050 --> 00:55:42,980 que verifica la contraseña que fue publicada. 998 00:55:42,980 --> 00:55:48,500 Y luego vemos otro mundial variable de aquí, _SESSION. 999 00:55:48,500 --> 00:55:51,340 Básicamente identificador de sesión es la forma de llevar un registro 1000 00:55:51,340 --> 00:55:53,990 de si alguien está conectado o no. 1001 00:55:53,990 --> 00:55:58,590 Así que en este momento con login.php, estamos registrar un usuario en. 1002 00:55:58,590 --> 00:56:01,920 Así que lo que queremos hacer es que queremos dicen que el identificador de sesión es igual a la fila 1003 00:56:01,920 --> 00:56:05,890 id, que sólo tiene sentido porque cada fila tendrá un ID diferente 1004 00:56:05,890 --> 00:56:07,239 número como parte de la mesa. 1005 00:56:07,239 --> 00:56:09,280 Vamos a entrar en SQL en un segundo, por lo que si algo de esto 1006 00:56:09,280 --> 00:56:13,500 Parece un poco como bla, entonces todo será aclarado. 1007 00:56:13,500 --> 00:56:18,450 Pero vamos a establecer el id igual a lo propio, registrando el usuario en. 1008 00:56:18,450 --> 00:56:20,530 Pedir disculpas si algo sale mal. 1009 00:56:20,530 --> 00:56:27,600 Y es que los inicios de sesión propósito en la vida como profesor Malan diría. 1010 00:56:27,600 --> 00:56:29,130 >> Así que eso fue login.php. 1011 00:56:29,130 --> 00:56:33,750 Y una gran parte del código PHP que escribes en pset 7, van a ser un poco. 1012 00:56:33,750 --> 00:56:36,470 No te olvides de chmod a los permisos adecuados. 1013 00:56:36,470 --> 00:56:40,180 Habrá un poco acerca de que en el principio de la especificación. 1014 00:56:40,180 --> 00:56:46,382 >> Pero el PHP que eres escritura va a ser 1015 00:56:46,382 --> 00:56:47,840 haciendo cosas que son similares a este. 1016 00:56:47,840 --> 00:56:49,715 Usted va a estar acceder a algunas cosas que 1017 00:56:49,715 --> 00:56:52,760 se dan a usted en la variables globales de PHP que 1018 00:56:52,760 --> 00:56:56,105 se trata de la corriente usuario conectado, si existe 1019 00:56:56,105 --> 00:57:00,460 tienen peticiones sido enviados a esta página, diferentes cosas como eso. 1020 00:57:00,460 --> 00:57:05,790 Y también será potencialmente iteración a través de las filas de esta cosa. 1021 00:57:05,790 --> 00:57:09,010 >> En una función diferente, consulta no devuelva este doble matriz. 1022 00:57:09,010 --> 00:57:11,450 Y si hay más de un filas en el mismo, 1023 00:57:11,450 --> 00:57:15,080 si no trate: sí, si hay son más de uno filas en el mismo, 1024 00:57:15,080 --> 00:57:16,870 entonces será una mesa. 1025 00:57:16,870 --> 00:57:20,500 Y es posible que desee repetir a través de las filas de esta matriz utilizando 1026 00:57:20,500 --> 00:57:22,860 el bucle foreach que describimos. 1027 00:57:22,860 --> 00:57:30,270 >> Así que si usted hace foreach en un doble matriz, ¿cuál será el palabra-- aquí, 1028 00:57:30,270 --> 00:57:31,909 Voy realidad escribo. 1029 00:57:31,909 --> 00:57:32,950 Lo escribiré rápido aquí. 1030 00:57:32,950 --> 00:57:44,280 >> Si tenemos un foreach de filas como fila, ¿cuál es el tipo de la fila? 1031 00:57:44,280 --> 00:57:45,390 ¿Alguien sabe? 1032 00:57:45,390 --> 00:57:54,000 1033 00:57:54,000 --> 00:57:54,500 ¿Lo tienes? 1034 00:57:54,500 --> 00:57:57,110 Así filas es una doble matriz. 1035 00:57:57,110 --> 00:58:02,810 Entonces, ¿qué se va a inferir foreach que nosotros queremos de esta doble matriz 1036 00:58:02,810 --> 00:58:04,280 si estamos iterando sobre él? 1037 00:58:04,280 --> 00:58:07,170 1038 00:58:07,170 --> 00:58:10,770 Básicamente Podemos suponer que que va a ser o elementos, 1039 00:58:10,770 --> 00:58:14,970 o filas o columnas, básicamente. 1040 00:58:14,970 --> 00:58:18,740 Y así filas y columnas nosotros puede tratar como la misma cosa. 1041 00:58:18,740 --> 00:58:23,880 >> Básicamente lo que el bucle foreach va que hacer es que va a devolver filas. 1042 00:58:23,880 --> 00:58:28,500 fila va a ser de la fila tipo, mientras que las filas es una doble matriz. 1043 00:58:28,500 --> 00:58:32,290 Así que si usted da foreach una doble matriz, que es 1044 00:58:32,290 --> 00:58:35,830 no va a repetir más de un nivel de profundidad. 1045 00:58:35,830 --> 00:58:44,464 Que es básicamente para decir si hay son ocho células en esta table-- 1,2, 1046 00:58:44,464 --> 00:58:48,110 3 4, 5, 6, 7, la 8-- bucle foreach no es 1047 00:58:48,110 --> 00:58:51,880 va a ir a través de cada una de estas células. 1048 00:58:51,880 --> 00:58:56,390 Lo que el bucle foreach hará se va a ir a través de esta fila, 1049 00:58:56,390 --> 00:58:57,870 darle toda esta fila. 1050 00:58:57,870 --> 00:58:59,410 Y entonces va a ir a través de esa fila. 1051 00:58:59,410 --> 00:59:01,850 >> Por lo tanto, sólo se itera un nivel de profundidad. 1052 00:59:01,850 --> 00:59:05,310 Si agrega un anidada bucle foreach, entonces usted 1053 00:59:05,310 --> 00:59:16,280 puede tratar cada fila de regresar de filas, hacen fila foreach como elemento, 1054 00:59:16,280 --> 00:59:17,640 digamos. 1055 00:59:17,640 --> 00:59:22,750 Y entonces se podría repetir el elemento. 1056 00:59:22,750 --> 00:59:24,930 Así que eso es una breve pequeño repaso sobre cómo 1057 00:59:24,930 --> 00:59:30,220 usted podría estar usando foreach bucles en el contexto de consulta. 1058 00:59:30,220 --> 00:59:32,840 >> ¿Hay alguna pregunta sobre PHP? 1059 00:59:32,840 --> 00:59:36,520 Cualquier cosa antes de que pasar a hablar de SQL 1060 00:59:36,520 --> 00:59:37,820 y la diversión de la base de datos? 1061 00:59:37,820 --> 00:59:41,480 1062 00:59:41,480 --> 00:59:42,110 ¿Sentirse bien? 1063 00:59:42,110 --> 00:59:42,750 Sentirse bien. 1064 00:59:42,750 --> 00:59:43,470 Correcto. 1065 00:59:43,470 --> 00:59:49,130 >> Vamos a pasar de nuevo a la PowerPoint, que es probable que se pierda. 1066 00:59:49,130 --> 00:59:51,800 SQL, yay. 1067 00:59:51,800 --> 00:59:57,900 Las personas que están en mi sección normalmente sabrá que subpartidas de acrónimos 1068 00:59:57,900 --> 01:00:01,220 siempre son sólo las primeras palabras Creo que de ese partido que 1069 01:00:01,220 --> 01:00:02,690 algorithm-- esa sigla. 1070 01:00:02,690 --> 01:00:04,090 No es un algoritmo. 1071 01:00:04,090 --> 01:00:08,050 >> Así que es una base de datos SQL. 1072 01:00:08,050 --> 01:00:11,060 Es un lenguaje que trabaja con bases de datos. 1073 01:00:11,060 --> 01:00:14,440 Y todas las bases de datos son es tablas, al menos en la forma 1074 01:00:14,440 --> 01:00:17,220 que SQL los representa. 1075 01:00:17,220 --> 01:00:23,610 >> Otra forma de pensar acerca de las bases de datos es bases de datos son un conjunto de claves y valores 1076 01:00:23,610 --> 01:00:24,110 básicamente. 1077 01:00:24,110 --> 01:00:29,530 Usted puede pensar en una base de datos como un diccionario y también como una mesa. 1078 01:00:29,530 --> 01:00:34,300 Básicamente se trata de una manera de asociar diferentes datos con otros datos, 1079 01:00:34,300 --> 01:00:36,270 menudo a través de filas y columnas. 1080 01:00:36,270 --> 01:00:38,470 Y esa es la forma eso es SQL funciona mejor. 1081 01:00:38,470 --> 01:00:40,880 >> Así que este es un ejemplo de una tabla. 1082 01:00:40,880 --> 01:00:44,610 Tengo un par de ejemplos de personas en mi sección, que 1083 01:00:44,610 --> 01:00:45,970 No tuve tiempo de cambiar. 1084 01:00:45,970 --> 01:00:52,020 Pero tenemos cosas como ID, nombre, superpotencia, y ciudad natal. 1085 01:00:52,020 --> 01:00:54,100 No sé donde cualquiera es en de mi sección, 1086 01:00:54,100 --> 01:00:56,266 así que sólo voy a asumir todo el mundo es de Nueva York 1087 01:00:56,266 --> 01:00:59,370 Ciudad porque tengo una alta estadística probabilidad de ser correcta. 1088 01:00:59,370 --> 01:01:04,200 >> SQL tomará automáticamente el cuidado de la columna ID para usted. 1089 01:01:04,200 --> 01:01:07,560 Si inserta una nueva fila en una base de datos SQL, 1090 01:01:07,560 --> 01:01:09,700 se incrementará que Número de identificación y justo 1091 01:01:09,700 --> 01:01:14,890 básicamente se adhieren como cinco nombres, superpotencia, ciudad natal, quienquiera 1092 01:01:14,890 --> 01:01:16,430 en el extremo de esa tabla. 1093 01:01:16,430 --> 01:01:19,160 Así ID es una columna que va a nunca tiene que preocuparse. 1094 01:01:19,160 --> 01:01:22,770 Pero, al igual que en el caso de login.php, cuando 1095 01:01:22,770 --> 01:01:26,610 estaban recibiendo el ID de sesión de una tabla y sólo usar ID, 1096 01:01:26,610 --> 01:01:30,320 ID es una manera de identificar de forma exclusiva un elemento de una base de datos. 1097 01:01:30,320 --> 01:01:34,980 >> Así que si teníamos dos Sams, ambos que enseñaba CS50, y ambos de los cuales 1098 01:01:34,980 --> 01:01:39,370 eran de Milwaukee, los haría todavía tienen números de identificación distintos 1099 01:01:39,370 --> 01:01:43,420 y por lo tanto ser distinto en el contexto de la tabla. 1100 01:01:43,420 --> 01:01:48,700 Así que esto es lo que está tratando de SQL con, trabajando con en el extremo posterior. 1101 01:01:48,700 --> 01:01:54,160 >> Y estos son los cuatro comandos que usted necesita para trabajar con SQL. 1102 01:01:54,160 --> 01:01:56,390 Y todos ellos vomité en una diapositiva. 1103 01:01:56,390 --> 01:01:59,530 Pero vamos a ir a través de todos ellos individualmente. 1104 01:01:59,530 --> 01:02:03,300 >> El primer comando es UPDATE, el que hace lo que se podría esperar. 1105 01:02:03,300 --> 01:02:07,240 Digamos que tienes algunos datos en la tabla que está fuera de fecha. 1106 01:02:07,240 --> 01:02:09,470 Al igual que si usted está manteniendo registro de nombres de las personas 1107 01:02:09,470 --> 01:02:13,350 y las edades, si alguien aumenta la edad, entonces 1108 01:02:13,350 --> 01:02:18,590 usted va a querer entrar y actualizar edad sólo que la persona. 1109 01:02:18,590 --> 01:02:21,902 Para un ejemplo que funciona con nuestra primera table-- 1110 01:02:21,902 --> 01:02:24,610 no te preocupes por escribir todos estos comandos al mismo tiempo. 1111 01:02:24,610 --> 01:02:27,640 Pero si tienes la actualización abajo, que va a ser bueno para esta parte, 1112 01:02:27,640 --> 01:02:29,790 porque vamos a volver a la mesa. 1113 01:02:29,790 --> 01:02:33,920 >> Así que si nos remontamos a la mesa, digamos que algo que sucedió 1114 01:02:33,920 --> 01:02:38,480 Se hubo un terremoto o una línea de falla que divide directamente 1115 01:02:38,480 --> 01:02:39,920 a través de la ciudad de Nueva York. 1116 01:02:39,920 --> 01:02:45,130 Y queríamos actualizar todo el mundo que vivía en la ciudad de Nueva York. 1117 01:02:45,130 --> 01:02:49,670 Todos ellos tuvieron que mudarse a Pensilvania. 1118 01:02:49,670 --> 01:02:51,130 Eso no es un pueblo de origen. 1119 01:02:51,130 --> 01:02:53,180 Todos ellos tuvieron que mudarse a New Haven. 1120 01:02:53,180 --> 01:02:54,030 Allá vamos. 1121 01:02:54,030 --> 01:02:57,630 Así que todo el mundo en Nueva York se traslada a New Haven. 1122 01:02:57,630 --> 01:03:01,300 >> Y eso es algo que es edición de tres filas de esta tabla. 1123 01:03:01,300 --> 01:03:04,716 Pero en SQL, puede hacerlo que en sólo un comunicado. 1124 01:03:04,716 --> 01:03:05,715 Así que volvemos a actualizar. 1125 01:03:05,715 --> 01:03:09,670 Permítanme rápida borrar este tablero nuevo. 1126 01:03:09,670 --> 01:03:14,570 Cuando estamos hablando de actualización, hay 1127 01:03:14,570 --> 01:03:17,640 algunas partes de la sintaxis que son clave. 1128 01:03:17,640 --> 01:03:19,770 Bueno, toda la sintaxis es la clave. 1129 01:03:19,770 --> 01:03:22,210 Pero las cosas en verde es opcional. 1130 01:03:22,210 --> 01:03:25,680 Se requiere que el blanco, nombres predefinidos similares. 1131 01:03:25,680 --> 01:03:30,750 Y el azul claro son las cosas que varían en función de la tabla. 1132 01:03:30,750 --> 01:03:34,640 Así que eso es lo que está pasando con la combinación de colores aquí, allá arriba. 1133 01:03:34,640 --> 01:03:40,250 >> Así que si queremos actualizar sólo esos filas de las personas que viven en Nueva York, 1134 01:03:40,250 --> 01:03:43,490 así que lo que haríamos si nos dijo ACTUALIZACIÓN? 1135 01:03:43,490 --> 01:03:46,320 Así mesa es donde ponemos el nombre de nuestra mesa. 1136 01:03:46,320 --> 01:03:49,170 Digamos que el nombre de nuestra mesa es mesa una. 1137 01:03:49,170 --> 01:03:52,515 Así que queremos actualizar la tabla una. 1138 01:03:52,515 --> 01:03:57,470 Y queremos definido-- ¿qué es lo que queremos establecer? 1139 01:03:57,470 --> 01:04:05,160 Pues queremos decir, PHP lo column-- trata a filas como identificadores únicos. 1140 01:04:05,160 --> 01:04:07,930 Y a continuación, son columnas los diferentes campos 1141 01:04:07,930 --> 01:04:09,940 de aquellos elementos de la base de datos. 1142 01:04:09,940 --> 01:04:14,210 >> Así que el primer elemento de la base de datos tiene un nombre de Sam, superpotencia del CS50, 1143 01:04:14,210 --> 01:04:16,210 y una ciudad natal de Milwaukee. 1144 01:04:16,210 --> 01:04:20,710 Así que si dicho conjunto, echemos un vistazo a los parámetros de nuevo ese conjunto toma. 1145 01:04:20,710 --> 01:04:23,880 Tenemos la columna es igual valor. 1146 01:04:23,880 --> 01:04:27,290 Por eso queremos decir que algunos column-- que recordar 1147 01:04:27,290 --> 01:04:31,850 es una field-- queremos ver a un campo igual a algo nuevo. 1148 01:04:31,850 --> 01:04:42,340 >> Así que si acabamos de decir de actualización tabla 1, nombre del conjunto de la igualdad de Elliot. 1149 01:04:42,340 --> 01:04:46,310 Obtener algunas personas de la nueva sección en esto. 1150 01:04:46,310 --> 01:04:51,540 Pero si acabamos de hacer tabla de actualización 1 nombre del conjunto de la igualdad de Elliot, lo haría 1151 01:04:51,540 --> 01:04:55,530 la mirada mesa como después de eso? 1152 01:04:55,530 --> 01:04:56,410 La gente tiene alguna idea? 1153 01:04:56,410 --> 01:04:59,710 1154 01:04:59,710 --> 01:05:00,210 Sí. 1155 01:05:00,210 --> 01:05:03,195 >> AUDIENCIA: Todo en esa fila se convertiría Elliot. 1156 01:05:03,195 --> 01:05:04,570 ALTAVOZ: Todo en la fila? 1157 01:05:04,570 --> 01:05:06,067 AUDIENCIA: En la primera fila. 1158 01:05:06,067 --> 01:05:07,150 ALTAVOZ: En la primera fila? 1159 01:05:07,150 --> 01:05:09,724 ¿Por qué la primera fila? 1160 01:05:09,724 --> 01:05:10,890 No me refiero a meterse con usted. 1161 01:05:10,890 --> 01:05:13,287 >> AUDIENCIA: Tal vez todo en toda la mesa? 1162 01:05:13,287 --> 01:05:15,120 ALTAVOZ: Todo en toda la mesa, sí. 1163 01:05:15,120 --> 01:05:19,520 Y eso es exactamente correcto que porque-- fue simplemente ayudar a salir un poco 1164 01:05:19,520 --> 01:05:22,650 allí-- porque omitimos la cláusula opcional WHERE. 1165 01:05:22,650 --> 01:05:27,260 Si usted no tiene el DONDE cláusula, lo que hará este comando 1166 01:05:27,260 --> 01:05:32,240 se va a trabajar con cada una sola fila en la tabla. 1167 01:05:32,240 --> 01:05:35,430 El nombre de todo el mundo se convertido Elliott, básicamente, 1168 01:05:35,430 --> 01:05:37,360 que Elliot es muy feliz. 1169 01:05:37,360 --> 01:05:40,070 O Yanni, uno de los dos. 1170 01:05:40,070 --> 01:05:42,490 Pero el nombre de todo el mundo va a cambiar. 1171 01:05:42,490 --> 01:05:47,880 >> Así que la forma en que utiliza el DONDE clause-- y esto se aplica a todos los wheres 1172 01:05:47,880 --> 01:05:51,410 que se encuentran en cada uno de estas cosas diferentes. 1173 01:05:51,410 --> 01:05:54,380 Así te darás cuenta de que la SET tiene columna de valor igual. 1174 01:05:54,380 --> 01:05:55,190 Y lo mismo ocurre con WHERE. 1175 01:05:55,190 --> 01:06:00,040 Pero éstas son diferentes tipos de declaraciones. 1176 01:06:00,040 --> 01:06:04,400 Así que la columna es igual al valor en SET está en asignación. 1177 01:06:04,400 --> 01:06:08,320 Al igual que estamos diciendo que queremos para establecer el nombre igual a Elliot. 1178 01:06:08,320 --> 01:06:15,390 Pero en las cláusulas WHERE, estos son declaraciones de igualdad. 1179 01:06:15,390 --> 01:06:20,410 Así que digamos que sólo queríamos cambiar el nombre de la persona a Elliot 1180 01:06:20,410 --> 01:06:23,940 si su nombre era Ryan, digamos. 1181 01:06:23,940 --> 01:06:24,920 >> Así que cuando decimos 1182 01:06:24,920 --> 01:06:32,700 >> DONDE nombre es igual a Ryan, que haría éxito único cambio 1183 01:06:32,700 --> 01:06:37,440 el nombre-- que sólo lo haría cambiar el campo Nombre en filas 1184 01:06:37,440 --> 01:06:40,770 donde el campo de nombre es igual a Ryan. 1185 01:06:40,770 --> 01:06:44,430 Así que si teníamos varias personas llamado Ryan, todos sus nombres 1186 01:06:44,430 --> 01:06:45,730 cambiaría a Elliot. 1187 01:06:45,730 --> 01:06:48,169 >> Esto es similar al ejemplo de si una línea de falla se divide 1188 01:06:48,169 --> 01:06:50,960 Ciudad y todo el mundo de Nueva York tiene que trasladarse a New Haven, la forma en que podemos 1189 01:06:50,960 --> 01:06:56,570 hacer eso en una declaración es ACTUALIZACIÓN tabla1 SET ciudad natal = New Haven 1190 01:06:56,570 --> 01:07:00,210 donde la ciudad natal es igual a la ciudad de Nueva York. 1191 01:07:00,210 --> 01:07:03,410 Este es el poder de la instrucción UPDATE. 1192 01:07:03,410 --> 01:07:10,530 Podemos seleccionar cualquier número de filas a través de enunciados verdaderos 1193 01:07:10,530 --> 01:07:12,860 acerca de los campos en esas filas. 1194 01:07:12,860 --> 01:07:19,510 No podemos decir conjunto tabla1 ACTUALIZACIÓN name = Elliot DONDE fila = 1, 1195 01:07:19,510 --> 01:07:24,820 excepto que podamos si decimos ID = 1. 1196 01:07:24,820 --> 01:07:27,350 1197 01:07:27,350 --> 01:07:29,830 >> Así que vamos a estar trabajar con la igualdad 1198 01:07:29,830 --> 01:07:32,830 de campos, la igualdad de columnas. 1199 01:07:32,830 --> 01:07:38,030 Pero utilizando el campo ID es una manera de seleccionar filas individuales específicamente, 1200 01:07:38,030 --> 01:07:43,210 porque el campo ID es una única identificador en una base de datos SQL. 1201 01:07:43,210 --> 01:07:45,860 Así que, como la actualización de la fila uno, ID es igual a 1. 1202 01:07:45,860 --> 01:07:49,560 Actualización de la segunda fila, justo cambiar ese número de identificación. 1203 01:07:49,560 --> 01:07:51,610 Pero la potencia de la DONDE declaración es que nos 1204 01:07:51,610 --> 01:07:57,480 puede actualizar las cosas en base a lo que su valores actuales de ciertas cosas. 1205 01:07:57,480 --> 01:07:58,155 Sí Elliot? 1206 01:07:58,155 --> 01:08:02,678 >> AUDIENCIA: ¿Y qué pasa si quieres a-- de nuevo, esta es otra cuestión. 1207 01:08:02,678 --> 01:08:07,660 Pero mi primera pregunta fue: donde sucede esto? 1208 01:08:07,660 --> 01:08:09,130 ¿Dónde estoy actualizando esto? 1209 01:08:09,130 --> 01:08:11,100 ¿Es esto en un código PHP? 1210 01:08:11,100 --> 01:08:13,379 >> ALTAVOZ: Cuando actualizas, sí. 1211 01:08:13,379 --> 01:08:15,170 Vamos a hablar acerca de dónde todo esto 1212 01:08:15,170 --> 01:08:18,729 sucede especie de una vez nos vamos a través de todos los comandos. 1213 01:08:18,729 --> 01:08:21,130 Pero lo que usted necesita saber por ahora es, básicamente, 1214 01:08:21,130 --> 01:08:26,279 que su base de datos SQL existe como algo 1215 01:08:26,279 --> 01:08:30,090 para ser visitada por la consulta función, que CS50 define. 1216 01:08:30,090 --> 01:08:33,800 Así que si usted utiliza la función de consulta, se puede acceder a esta tabla. 1217 01:08:33,800 --> 01:08:39,529 >> Así que va a enviar estos comandos a su mesa en archivos PHP 1218 01:08:39,529 --> 01:08:41,420 a través de la función de consulta. 1219 01:08:41,420 --> 01:08:45,410 También puede jugar con su mesa directamente. 1220 01:08:45,410 --> 01:08:49,050 Y esa es la mejor manera de probar este tipo de comandos. 1221 01:08:49,050 --> 01:08:52,720 Y vamos a ir a través de exactamente cómo que ver que en tan sólo un poco. 1222 01:08:52,720 --> 01:08:54,910 >> Así que eso es comando UPDATE. 1223 01:08:54,910 --> 01:08:57,939 Y el resto de los comandos van a ser una especie de similares, 1224 01:08:57,939 --> 01:08:59,069 trabajando en cosas similares. 1225 01:08:59,069 --> 01:09:02,740 El INSERT INTO es probablemente el más diferente de UPDATE. 1226 01:09:02,740 --> 01:09:06,170 Voy a dejar que hasta allí para sólo un poco y trabajar aquí. 1227 01:09:06,170 --> 01:09:10,215 Así INSERT INTO, verás esa mesa sigue siendo el mismo. 1228 01:09:10,215 --> 01:09:17,010 Usted quiere INSERT INTO. 1229 01:09:17,010 --> 01:09:20,286 La capitalización, SQL es sensible a mayúsculas. 1230 01:09:20,286 --> 01:09:22,160 Así que usted no tiene que capitalizar estas cosas. 1231 01:09:22,160 --> 01:09:27,960 Por convención, las palabras en blanco se capitalizan. 1232 01:09:27,960 --> 01:09:31,590 Pero también el color de ellos codificados. 1233 01:09:31,590 --> 01:09:34,390 La única razón por la que a capitalizar aquellos en los que usted les está escribiendo 1234 01:09:34,390 --> 01:09:36,609 se acaba de poner de relieve que aquellos son constantes. 1235 01:09:36,609 --> 01:09:39,189 Y por lo que puede mirar a la capitalización o el hecho 1236 01:09:39,189 --> 01:09:40,740 que yo les he de diferentes colores. 1237 01:09:40,740 --> 01:09:44,910 >> Así que tenemos INSERT INTO, hagámoslo tabla1 nuevo. 1238 01:09:44,910 --> 01:09:45,930 Esto es todo en una línea. 1239 01:09:45,930 --> 01:09:48,609 Sólo estoy separándolo por los diferentes estados. 1240 01:09:48,609 --> 01:09:52,399 Así que no se preocupe por el hecho de que tabla1 lo hizo en la segunda línea. 1241 01:09:52,399 --> 01:09:56,130 >> Así que queremos insertar EN tabla1 algunos valores. 1242 01:09:56,130 --> 01:09:58,922 Y te darás cuenta de la opcional bits, lo que voy a llegar a en un segundo. 1243 01:09:58,922 --> 01:09:59,755 Así que tenemos VALORES. 1244 01:09:59,755 --> 01:10:03,640 1245 01:10:03,640 --> 01:10:08,100 >> Así que digamos que queremos añadir Andi a nuestra mesa, porque nos perdemos Andi. 1246 01:10:08,100 --> 01:10:09,390 Andi está enfermo. 1247 01:10:09,390 --> 01:10:12,490 Así que vamos a añadir Andi a nuestra mesa. 1248 01:10:12,490 --> 01:10:15,150 Recuerde que el número de identificación se actualiza automáticamente. 1249 01:10:15,150 --> 01:10:17,320 Así que los únicos campos que tiene que preocuparse de 1250 01:10:17,320 --> 01:10:20,230 son nombre, superpotencia, y ciudad natal. 1251 01:10:20,230 --> 01:10:23,660 >> Y así, la forma en que lo hacemos, mirar nuestra sintaxis, es que hemos 1252 01:10:23,660 --> 01:10:28,780 acaba de recibir un paréntesis, con comas valores separados, cada uno de los cuales 1253 01:10:28,780 --> 01:10:29,890 es un valor. 1254 01:10:29,890 --> 01:10:35,530 Así que si queríamos insertar Andi en nuestra mesa, todo lo que tenemos que hacer es correcto Andi. 1255 01:10:35,530 --> 01:10:38,630 ¿Cuál es la superpotencia de Andi, personas en la sección de Andi? 1256 01:10:38,630 --> 01:10:45,406 1257 01:10:45,406 --> 01:10:47,545 Ella, como el vuelo, o como velocidad, o algo así. 1258 01:10:47,545 --> 01:10:48,920 ¿Qué es lo que ya tenemos ahí arriba? 1259 01:10:48,920 --> 01:10:53,425 Tenemos CS50, vuelo, velocidad y fuerza. 1260 01:10:53,425 --> 01:10:54,850 >> AUDIENCIA: Viaje en el tiempo. 1261 01:10:54,850 --> 01:10:56,180 >> ALTAVOZ: Viaje en el tiempo, increíble. 1262 01:10:56,180 --> 01:11:04,280 Así que tenemos Andi, el tiempo viajes, y su ciudad natal. 1263 01:11:04,280 --> 01:11:05,530 Esa es una muy buena pregunta. 1264 01:11:05,530 --> 01:11:09,210 Ciudad de Nueva York, a menos que alguien lo sabe. 1265 01:11:09,210 --> 01:11:13,600 Todo el mundo es de Nueva York es el lección para llevar a partir de hoy. 1266 01:11:13,600 --> 01:11:17,710 >> Así que esta declaración sería insertar, como una quinta fila, 1267 01:11:17,710 --> 01:11:21,900 con el viaje en el tiempo superpotencia y una ciudad natal de la ciudad de Nueva York. 1268 01:11:21,900 --> 01:11:25,660 Sin embargo, el campo opcional es básicamente una manera 1269 01:11:25,660 --> 01:11:30,090 para especificar exactamente qué columnas desea insertar cosas. 1270 01:11:30,090 --> 01:11:33,710 >> La forma en que lo estamos haciendo ahora, Andi, viajes en el tiempo, la ciudad de Nueva York, 1271 01:11:33,710 --> 01:11:38,150 que está pasando en el orden exacto de nuestra Nombre table--, superpotencia, ciudad natal. 1272 01:11:38,150 --> 01:11:42,290 Y si querías hacer algo más que eso, 1273 01:11:42,290 --> 01:11:44,970 como dices que no lo sabía superpotencia de alguien, 1274 01:11:44,970 --> 01:11:47,660 como la forma en que no sabía de Andi superpotencia al principio. 1275 01:11:47,660 --> 01:11:50,450 Así que todo lo que sabía era su nombre y su ciudad natal. 1276 01:11:50,450 --> 01:11:54,550 Lo que podría hacer es que pude hacer-- voy a borrar esto rápido. 1277 01:11:54,550 --> 01:11:57,910 1278 01:11:57,910 --> 01:12:00,090 >> Quiero actualizar únicamente las columnas. 1279 01:12:00,090 --> 01:12:04,100 Y aquí es donde la opcional lista de columnas entra en juego. 1280 01:12:04,100 --> 01:12:09,185 Sólo quiero actualizar nombre y ciudad natal. 1281 01:12:09,185 --> 01:12:12,650 1282 01:12:12,650 --> 01:12:16,480 Y luego voy a decir VALORES. 1283 01:12:16,480 --> 01:12:24,430 Haré Andi y la ciudad de Nueva York. 1284 01:12:24,430 --> 01:12:28,980 >> Si hubiera omitido la lista de columnas y acaba de hacer estas dos cosas, 1285 01:12:28,980 --> 01:12:32,450 donde sería la ciudad de Nueva York han ido? 1286 01:12:32,450 --> 01:12:35,900 ¿Qué columna haría Nueva York Ciudad han sido colocados en? 1287 01:12:35,900 --> 01:12:38,950 La gente tiene alguna idea? 1288 01:12:38,950 --> 01:12:40,160 Superpotencia, exactamente. 1289 01:12:40,160 --> 01:12:41,890 >> Así que esto se acaba de ir en orden. 1290 01:12:41,890 --> 01:12:45,530 Y una vez que llega al final de la lista, sólo va a dejar de llenar las cosas en. 1291 01:12:45,530 --> 01:12:49,080 Y los valores que me quedo en todas las columnas sólo será NULL. 1292 01:12:49,080 --> 01:12:51,840 Así pues especificamos nombre y ciudad natal, 1293 01:12:51,840 --> 01:12:56,110 vamos a tener ID 5, nombrar Andi, NULL superpotencia. 1294 01:12:56,110 --> 01:12:58,750 Así superpotencia es un valor sin inicializar. 1295 01:12:58,750 --> 01:13:01,340 Usted no necesariamente obtener la mismos errores Valgrind si intenta 1296 01:13:01,340 --> 01:13:01,970 y acceder a ella. 1297 01:13:01,970 --> 01:13:05,160 Todo estará bien a cero , porque NULL es un valor en SQL. 1298 01:13:05,160 --> 01:13:06,780 Esa es una constante. 1299 01:13:06,780 --> 01:13:08,980 Y entonces ciudad natal será la ciudad de Nueva York. 1300 01:13:08,980 --> 01:13:11,860 Así que ese es el comando INSERT INTO. 1301 01:13:11,860 --> 01:13:13,610 Antes de continuar, hay dos comandos más. 1302 01:13:13,610 --> 01:13:19,060 ¿Las personas tienen alguna pregunta sobre UPDATE sobre INSERT INTO, acerca de SQL 1303 01:13:19,060 --> 01:13:21,556 en general, antes de pasar en nuestros pedacitos finales? 1304 01:13:21,556 --> 01:13:25,500 1305 01:13:25,500 --> 01:13:26,910 La gente se siente bien, muy bien. 1306 01:13:26,910 --> 01:13:27,410 Lo amo. 1307 01:13:27,410 --> 01:13:29,480 Así que vamos a hablar de SELECT. 1308 01:13:29,480 --> 01:13:33,445 Yendo ACTUALIZACIÓN zanja por aquí. 1309 01:13:33,445 --> 01:13:35,720 >> Y SELECT va a ser muy similar. 1310 01:13:35,720 --> 01:13:38,790 El objetivo de SELECT, El propósito de SELECT en la vida 1311 01:13:38,790 --> 01:13:45,910 es para darle un montón de columnas que satisfacen ciertas condiciones. 1312 01:13:45,910 --> 01:13:48,230 Y cuando digo satisfacer ciertas condiciones, 1313 01:13:48,230 --> 01:13:50,800 su mente podría inmediatamente volver a esa cláusula WHERE 1314 01:13:50,800 --> 01:13:52,090 que surgió en UPDATE. 1315 01:13:52,090 --> 01:13:54,880 Y esa cláusula es exactamente allí en SELECT. 1316 01:13:54,880 --> 01:14:06,020 >> Si no ponemos el DONDE cláusula y decimos SELECT nombre, 1317 01:14:06,020 --> 01:14:16,490 ciudad natal-- deletreado que un poco de Nombre wrong--, ciudad natal de la Tabla1. 1318 01:14:16,490 --> 01:14:19,690 Si nos limitamos a decir que, lo SELECT nos va a dar es que es 1319 01:14:19,690 --> 01:14:23,730 nos va a dar una double-- una mesa, en lugar. 1320 01:14:23,730 --> 01:14:27,450 Una matriz de doble si somos pensando en PHP detecta. 1321 01:14:27,450 --> 01:14:33,239 Pero sólo va a darnos una doble gama de de dos nombre columns--, 1322 01:14:33,239 --> 01:14:33,780 y la ciudad natal. 1323 01:14:33,780 --> 01:14:36,400 1324 01:14:36,400 --> 01:14:38,130 Y va a ignorar ID. 1325 01:14:38,130 --> 01:14:41,310 Y va a ignorar superpotencia. 1326 01:14:41,310 --> 01:14:44,696 Y sólo nos dará todos los sola fila de esa tabla. 1327 01:14:44,696 --> 01:14:46,570 Así que si nos insertamos Andi, tendremos Andi. 1328 01:14:46,570 --> 01:14:48,605 Y vamos a tener los cuatro originales. 1329 01:14:48,605 --> 01:14:53,720 Si han sido actualizados, que lo hará reflejarse, etcétera, etcétera. 1330 01:14:53,720 --> 01:14:56,520 >> Así que esto se debe a que no utilizar la cláusula WHERE. 1331 01:14:56,520 --> 01:14:59,200 Pero podemos utilizarla en exactamente el misma manera que lo usamos en UPDATE. 1332 01:14:59,200 --> 01:15:05,310 Si sólo queremos una tabla de los nombres y súper poderes de las personas que viven 1333 01:15:05,310 --> 01:15:13,430 en Nueva York, se puede ejecutar una instrucción como SELECT nombre, superpower-- 1334 01:15:13,430 --> 01:15:27,190 Yo sólo voy a dejar que-- DE tabla1 DONDE ciudad natal = la ciudad de Nueva York. 1335 01:15:27,190 --> 01:15:33,370 >> Así que esto viene a demostrar que se puede conseguir totalmente diferentes columnas, 1336 01:15:33,370 --> 01:15:36,920 y luego poner las columnas que no estás incluso volver a estar en la cláusula WHERE. 1337 01:15:36,920 --> 01:15:39,200 Ni siquiera queremos que el ciudad natal de todos. 1338 01:15:39,200 --> 01:15:41,920 Pero queremos que el nombre y la la superpotencia de la gente 1339 01:15:41,920 --> 01:15:43,817 cuya ciudad natal es la ciudad de Nueva York. 1340 01:15:43,817 --> 01:15:45,650 Así que eso es algo que puede hacer con el DONDE 1341 01:15:45,650 --> 01:15:49,112 cláusula es que podemos hacer frente a columnas que no necesariamente queremos volver. 1342 01:15:49,112 --> 01:15:52,320 De la misma manera en la actualización, podemos tratar con columnas que nosotros no necesariamente 1343 01:15:52,320 --> 01:15:53,270 desee actualizar. 1344 01:15:53,270 --> 01:15:58,890 Podemos actualizar la ciudad de todo el mundo cuyo nombre es Sam, por ejemplo. 1345 01:15:58,890 --> 01:16:02,080 Podemos actualizar la ciudad de todos aquellos cuyo número de identificación es 2. 1346 01:16:02,080 --> 01:16:04,960 Así que sólo actualizar el ciudad de la segunda fila 1347 01:16:04,960 --> 01:16:08,220 donde no tenemos que lidiar con necesaria la pregunta común. 1348 01:16:08,220 --> 01:16:13,264 >> Y BORRAR es, como era de esperar, DELETE FROM tabla1. 1349 01:16:13,264 --> 01:16:14,930 Y luego tenemos otra cláusula WHERE. 1350 01:16:14,930 --> 01:16:17,940 Así que podemos decir donde id = 1. 1351 01:16:17,940 --> 01:16:18,950 Eliminar la primera fila. 1352 01:16:18,950 --> 01:16:23,240 Y ELIMINAR siempre eliminar una fila, o se elimine algún número de filas. 1353 01:16:23,240 --> 01:16:26,990 DELETE FROM tabla WHERE Ciudad natal = Nueva York 1354 01:16:26,990 --> 01:16:28,740 eliminará todo el mundo en la ciudad de Nueva York. 1355 01:16:28,740 --> 01:16:30,985 Eso es si había una plaga trágica súbita 1356 01:16:30,985 --> 01:16:33,360 y que sólo quería quitar todos, desde la mesa que 1357 01:16:33,360 --> 01:16:35,760 vivido en una ciudad que fue golpeado por la plaga. 1358 01:16:35,760 --> 01:16:38,050 Que descansen en paz. 1359 01:16:38,050 --> 01:16:43,849 >> Estos son los cuatro comandos SQL que tendrá que utilizar. 1360 01:16:43,849 --> 01:16:45,390 Ni siquiera puede ser que necesite utilizar todos ellos. 1361 01:16:45,390 --> 01:16:47,690 Pero estos son los cuatro que CS50 te espera 1362 01:16:47,690 --> 01:16:53,630 para sentirse cómodo con entrar en tanto cuestionario 1 y también pset7 y pset8. 1363 01:16:53,630 --> 01:16:55,820 >> Sólo hay esa mesa de nuevo. 1364 01:16:55,820 --> 01:16:58,930 En éste, la superpotencia de Roy tiene ha actualizado para rayos láser, que 1365 01:16:58,930 --> 01:17:00,880 es un ejemplo que no usamos. 1366 01:17:00,880 --> 01:17:05,480 No sé cuál Roy prefiere, pero la fuerza. 1367 01:17:05,480 --> 01:17:07,670 Roy tiene una superpotencia de fuerza. 1368 01:17:07,670 --> 01:17:09,090 Katherine no lo hacen hoy en día. 1369 01:17:09,090 --> 01:17:10,260 Eso es desafortunado. 1370 01:17:10,260 --> 01:17:11,260 Pero ella tiene super velocidad. 1371 01:17:11,260 --> 01:17:13,780 1372 01:17:13,780 --> 01:17:14,670 >> Bueno, eso fue PHP. 1373 01:17:14,670 --> 01:17:19,410 Antes de hablar de MVC, hace Alguien tiene preguntas sobre PHP? 1374 01:17:19,410 --> 01:17:23,864 Ahora SQL, PHP o si de repente tienes llegar a una pregunta sobre PHP? 1375 01:17:23,864 --> 01:17:27,560 1376 01:17:27,560 --> 01:17:28,460 Excelente. 1377 01:17:28,460 --> 01:17:29,920 Muy bien, está todo listo entonces. 1378 01:17:29,920 --> 01:17:33,660 >> Así que hablar un poco acerca de vista del modelo controladores, 1379 01:17:33,660 --> 01:17:38,770 volvamos a alguna de las cosas en pset7. 1380 01:17:38,770 --> 01:17:42,470 Entonces, ¿qué vista de modelo controlador es-- No estoy 1381 01:17:42,470 --> 01:17:45,660 va a guardar mis cambios para iniciar sesión porque estoy totalmente masacrado él. 1382 01:17:45,660 --> 01:17:49,220 Pero básicamente tenemos dos cosas separadas pasando. 1383 01:17:49,220 --> 01:17:52,390 Tenemos un público directorio que contiene 1384 01:17:52,390 --> 01:17:56,460 el código que va a ser ejecutado y las páginas web que se visitarán. 1385 01:17:56,460 --> 01:17:58,780 Y también tenemos este directorio vistas. 1386 01:17:58,780 --> 01:18:01,780 Y vistas contiene plantillas. 1387 01:18:01,780 --> 01:18:04,390 >> Esto es lo que la función render-- vimos el render 1388 01:18:04,390 --> 01:18:08,240 función en un montón de código PHP que CS50 ya ha escrito para usted, 1389 01:18:08,240 --> 01:18:10,550 que toma en ciertos parámetros. 1390 01:18:10,550 --> 01:18:14,510 Lo que el código está haciendo se va a vistas, 1391 01:18:14,510 --> 01:18:18,000 que son conjuntos de igual código HTML escrito previamente, 1392 01:18:18,000 --> 01:18:20,720 y se está insertando valores en ciertos lugares. 1393 01:18:20,720 --> 01:18:23,990 Así es como cuando usted entrar en CS50 Finanzas, 1394 01:18:23,990 --> 01:18:25,760 la misma cabecera es en cada página. 1395 01:18:25,760 --> 01:18:28,130 Lo mismo pie de página es en cada página. 1396 01:18:28,130 --> 01:18:31,880 Esto se debe a la forma que hacer obras es que va a 1397 01:18:31,880 --> 01:18:36,720 parchear automáticamente en esa cabecera y visualizador de imágenes que se pueden encontrar en las vistas. 1398 01:18:36,720 --> 01:18:41,400 >> En realidad podemos entrar en la cabecera, y mira, es un archivo HTML con una cabeza. 1399 01:18:41,400 --> 01:18:43,280 Tiene unas hojas de estilo. 1400 01:18:43,280 --> 01:18:48,450 Usted no tiene que mirar en CSS para pset7 si no quieres. 1401 01:18:48,450 --> 01:18:50,560 Pero usted puede modificar si usted quiere, hacen 1402 01:18:50,560 --> 01:18:53,470 su Hacienda se ven un poco diferente. 1403 01:18:53,470 --> 01:18:57,560 >> Tiene algo de PHP en la cabecera un poco para ver 1404 01:18:57,560 --> 01:19:01,240 si hay un título diferente se debe poner en esta cabecera. 1405 01:19:01,240 --> 01:19:04,300 Pero sólo algunos otros guiones, y enlaces, y otras cosas. 1406 01:19:04,300 --> 01:19:08,700 Jefe termina, el cuerpo comienza, y perdón, tenemos este poco extremo raro. 1407 01:19:08,700 --> 01:19:14,730 Y hay un div, al igual que una especie sin forma de elemento 1408 01:19:14,730 --> 01:19:17,120 que tiene una idea del medio. 1409 01:19:17,120 --> 01:19:22,450 >> Y luego, cuando vemos a pie de página, tenemos el final de un div. 1410 01:19:22,450 --> 01:19:25,000 Tenemos un fondo, que es donde el texto de pie de página es. 1411 01:19:25,000 --> 01:19:26,770 Fin de la div, extremo del cuerpo, al final del HTML. 1412 01:19:26,770 --> 01:19:29,070 >> Entonces, ¿qué hacer es haciendo es hacer que es una especie 1413 01:19:29,070 --> 01:19:33,150 de remendar cabecera, un diferente archivo PHP que 1414 01:19:33,150 --> 01:19:37,110 contendrá las cosas reales que podrás ver, al igual que su tabla de los stocks 1415 01:19:37,110 --> 01:19:39,690 si va a comprar o vender acciones. 1416 01:19:39,690 --> 01:19:41,480 Y entonces va a poner en el pie de página. 1417 01:19:41,480 --> 01:19:44,890 Y la vista del modelo idea es que el controlador 1418 01:19:44,890 --> 01:19:49,590 querer separar la forma las cosas se ven desde el código. 1419 01:19:49,590 --> 01:19:53,420 Es que queremos separar el frontend y el backend, donde el frontend es 1420 01:19:53,420 --> 01:20:00,440 las cosas que el usuario ve, el buen visuals-- HTML, CSS, cosas por el estilo, 1421 01:20:00,440 --> 01:20:02,320 imágenes, etcétera. 1422 01:20:02,320 --> 01:20:05,780 Y el backend es PHP. 1423 01:20:05,780 --> 01:20:07,710 Este es el código que usted escribe. 1424 01:20:07,710 --> 01:20:10,240 Aquí es donde el código que es hacer operaciones reales. 1425 01:20:10,240 --> 01:20:12,400 Esto es cuando se va a añadir una acción a su mesa, 1426 01:20:12,400 --> 01:20:14,890 cuando usted está comprando y venta, que es backend. 1427 01:20:14,890 --> 01:20:20,210 >> Y podemos, como usted vio, incluyendo PHP directamente en HTML. 1428 01:20:20,210 --> 01:20:23,210 Así que lo que podríamos haber hecho para esta asignación se acaba de tener 1429 01:20:23,210 --> 01:20:26,200 un archivo HTML para cada página, como inicio de sesión. 1430 01:20:26,200 --> 01:20:30,260 Y entonces en esa página, simplemente tenido un enorme bloque de código PHP, 1431 01:20:30,260 --> 01:20:33,822 incluyendo todo el código que esa página en concreto necesitaría. 1432 01:20:33,822 --> 01:20:35,780 Y entonces podríamos tener hecho que para la cartera. 1433 01:20:35,780 --> 01:20:40,250 Podríamos haber hecho todo de la compra y venta dentro de las páginas individuales. 1434 01:20:40,250 --> 01:20:43,680 >> Pero debido a que estamos haciendo separado desde donde 1435 01:20:43,680 --> 01:20:46,660 estamos escribiendo el backend código, podemos fácilmente 1436 01:20:46,660 --> 01:20:52,660 cambiar la forma de las cosas se ven sin cambiando cada archivo. 1437 01:20:52,660 --> 01:20:55,460 Hacemos cosas como simplemente añada un nuevo div a la parte inferior 1438 01:20:55,460 --> 01:21:00,720 de-- Hola he modificado el pie de página. 1439 01:21:00,720 --> 01:21:03,710 Usted sólo puede hacer cosas por el estilo. 1440 01:21:03,710 --> 01:21:07,250 Pero también, puede cambiar todo el diseño visual 1441 01:21:07,250 --> 01:21:09,290 sin afectar lo que es ir en el backend. 1442 01:21:09,290 --> 01:21:12,000 Y usted puede cambiar el toda backend y todavía 1443 01:21:12,000 --> 01:21:13,900 tiene que se vea igual que lo hacía antes. 1444 01:21:13,900 --> 01:21:14,400 Esta 1445 01:21:14,400 --> 01:21:16,170 >> Es la idea de controlador de vista del modelo. 1446 01:21:16,170 --> 01:21:19,992 Y en realidad es un paradigma impuesto en algunos de los lenguajes de programación 1447 01:21:19,992 --> 01:21:21,700 es posible que desee utilizar para los proyectos finales. 1448 01:21:21,700 --> 01:21:25,100 Si lo hace el desarrollo de iOS, tienen puntos de vista, 1449 01:21:25,100 --> 01:21:29,120 que es lo que se ve en el iPhone, y entonces backend como como una cosa separada. 1450 01:21:29,120 --> 01:21:31,260 >> Usted puede pensar un poco. 1451 01:21:31,260 --> 01:21:35,190 Hay un montón de binarios en ciencias de la computación, que es divertido, 1452 01:21:35,190 --> 01:21:37,270 porque todo es en binario. 1453 01:21:37,270 --> 01:21:38,550 No pensaba eso. 1454 01:21:38,550 --> 01:21:41,590 Eso era un juego de palabras intencionado. 1455 01:21:41,590 --> 01:21:43,860 Sí, retruécano no previsto. 1456 01:21:43,860 --> 01:21:49,070 >> Pero al igual que los archivos .h y archivos .c, hay una gran cantidad de separación de las cosas que nosotros 1457 01:21:49,070 --> 01:21:49,900 podría no necesitar. 1458 01:21:49,900 --> 01:21:54,330 Así que sólo podemos editar los archivos H, o alguien sólo puede ver un archivo .h y saber 1459 01:21:54,330 --> 01:21:57,650 exactamente las funciones que se encuentran en el archivo .c sin necesariamente saber 1460 01:21:57,650 --> 01:21:58,870 su implementación. 1461 01:21:58,870 --> 01:22:02,800 Esta idea de los componentes que separan que dependen unos de otros 1462 01:22:02,800 --> 01:22:06,990 pero algo se puede acceder de unos a otros a través de diferentes canales, que pasa 1463 01:22:06,990 --> 01:22:09,310 de variables, simplemente incluir declaraciones, cosas 1464 01:22:09,310 --> 01:22:14,440 así, este principio ayuda a crear aplicaciones 1465 01:22:14,440 --> 01:22:17,080 que puede ser más fácilmente editado por varias personas, 1466 01:22:17,080 --> 01:22:20,440 se puede cambiar más fácilmente o modificado en gran escala, 1467 01:22:20,440 --> 01:22:24,880 y son más fáciles depurar en muchos sentidos. 1468 01:22:24,880 --> 01:22:28,254 >> Muy rápido, tengo algunos consejos para pset7, 1469 01:22:28,254 --> 01:22:31,420 que voy a hacer de pantalla completa para que no sólo mirar el-- Tippee punta punta. 1470 01:22:31,420 --> 01:22:33,964 1471 01:22:33,964 --> 01:22:35,130 No hay que muchos consejos. 1472 01:22:35,130 --> 01:22:38,060 >> Pero he mencionado PHP es difícil de depurar. 1473 01:22:38,060 --> 01:22:39,290 Doble y triple comprobarlo. 1474 01:22:39,290 --> 01:22:41,550 Si el código no es sólo aparecer en la página, 1475 01:22:41,550 --> 01:22:46,240 es probable que sea un error de PHP, lo siento. 1476 01:22:46,240 --> 01:22:48,570 >> Usted nunca tiene que mirar CSS si no quieres. 1477 01:22:48,570 --> 01:22:52,150 Pero una vez que haya terminado, puede ser una cosa agradable poco divertido para ir en 1478 01:22:52,150 --> 01:22:54,770 y meterse con los parámetros de estilo CSS. 1479 01:22:54,770 --> 01:22:58,700 CSS y HTML son un ejemplo de un modelo cosa también, a la derecha vista de estilo controlador? 1480 01:22:58,700 --> 01:23:02,150 Usted podría tener etiquetas de estilo en el interior de los elementos HTML. 1481 01:23:02,150 --> 01:23:04,800 Pero si una especie de la externalización a CSS, 1482 01:23:04,800 --> 01:23:08,180 son más fáciles de editar, y el juego alrededor con, y divertirse con. 1483 01:23:08,180 --> 01:23:10,816 >> Tratar CS50 ayudante funciona como cajas negras. 1484 01:23:10,816 --> 01:23:12,940 Usted no necesita saber exactamente lo que está haciendo render, 1485 01:23:12,940 --> 01:23:16,770 pero confía en que hacer siempre la derecha cosa dependiendo de lo que le pasa, 1486 01:23:16,770 --> 01:23:17,690 cosas como esta. 1487 01:23:17,690 --> 01:23:21,040 Y yo recomendaría viendo tutorial de David, 1488 01:23:21,040 --> 01:23:24,490 pasando por todo el cosas, no sólo los todos, 1489 01:23:24,490 --> 01:23:26,960 pero que realmente puede tratar estas cajas como negros. 1490 01:23:26,960 --> 01:23:29,280 No entre en éstas funciones en busca de errores. 1491 01:23:29,280 --> 01:23:33,510 >> Y dar la bienvenida al retorno de nuestro señor Zamyla. 1492 01:23:33,510 --> 01:23:34,010 Excelente. 1493 01:23:34,010 --> 01:23:40,430 >> ¿Hay alguna pregunta antes de finales que tipo de rebotar para el día? 1494 01:23:40,430 --> 01:23:42,610 ¿Estoy todavía vivo? 1495 01:23:42,610 --> 01:23:44,700 Excelente. 1496 01:23:44,700 --> 01:23:47,120 Personas livestream Hola. 1497 01:23:47,120 --> 01:23:47,620 Excelente. 1498 01:23:47,620 --> 01:23:50,260 ¿Hay más preguntas? 1499 01:23:50,260 --> 01:23:50,760 ¿No? 1500 01:23:50,760 --> 01:23:52,884 >> Y entonces creo que estamos bueno ir para hoy. 1501 01:23:52,884 --> 01:23:55,550 Me quedaré un poco después si la gente tenía preguntas 1502 01:23:55,550 --> 01:23:57,480 tenían miedo de preguntar sobre el arroyo. 1503 01:23:57,480 --> 01:23:59,790 Pero por lo demás, tener un buen día. 1504 01:23:59,790 --> 01:24:01,933