1 00:00:00,000 --> 00:00:03,000 [Powered by Google Translate] [Problema Tutorial Set 7] 2 00:00:03,000 --> 00:00:04,400 [Zamyla Chan] [Harvard University] 3 00:00:04,400 --> 00:00:07,640 [Esta es CS50] [CS50.TV] 4 00:00:07,640 --> 00:00:12,090 >> Hola a todos y bienvenidos a Tutorial 7, CS50 Finanzas. 5 00:00:12,090 --> 00:00:15,090 Ahora estamos oficialmente terminado con todos los conjuntos de procesadores en el CS50, 6 00:00:15,090 --> 00:00:19,380 y nos acaba de ir con uno más que va a ser una aplicación divertida 7 00:00:19,380 --> 00:00:23,770 de un sitio web donde los usuarios pueden iniciar sesión en CS50 Finanzas 8 00:00:23,770 --> 00:00:25,830 y comprar y vender acciones. 9 00:00:25,830 --> 00:00:32,280 >> Hoy en día, vamos a tener algunas herramientas a nuestra disposición. 10 00:00:32,280 --> 00:00:34,320 Vamos a estar hablando de permisos. 11 00:00:34,320 --> 00:00:36,380 Siempre que tenga una carpeta web, 12 00:00:36,380 --> 00:00:40,800 usted va a querer que los usuarios puedan ejecutar ciertos archivos 13 00:00:40,800 --> 00:00:42,500 pero también acaba de leer los otros, 14 00:00:42,500 --> 00:00:45,150 así que vamos a ver en los permisos y cómo se pueden establecer esos. 15 00:00:45,150 --> 00:00:49,630 A continuación, vamos a mirar en PHP, HTML y el código SQL. 16 00:00:49,630 --> 00:00:51,990 >> Primero, los permisos. 17 00:00:51,990 --> 00:00:56,060 Cuando estás en el terminal en un directorio determinado, 18 00:00:56,060 --> 00:01:00,430 entonces lo que quiero hacer es que desea ejecutar el comando chmod. 19 00:01:00,430 --> 00:01:03,750 Esto es seguido por letras o números 20 00:01:03,750 --> 00:01:08,100 que corresponde a lo que básicamente quiere que el mundo vea, 21 00:01:08,100 --> 00:01:09,830 te a ver, etc 22 00:01:09,830 --> 00:01:13,350 Por ejemplo, cada vez que tenga una carpeta, 23 00:01:13,350 --> 00:01:15,560 entonces usted quiere que la carpeta sea ejecutable por todos que la ve, 24 00:01:15,560 --> 00:01:19,500 así que lo que haría es que se podría ejecutar el comando chmod a + x 25 00:01:19,500 --> 00:01:21,050 y luego el nombre de la carpeta. 26 00:01:21,050 --> 00:01:28,110 Cuando usted tiene un archivo, como archivos CSS o archivos de imagen - 27 00:01:28,110 --> 00:01:33,060 como mapas de bits, JPEG y cosas por el estilo, o cualquier otro código JavaScript - 28 00:01:33,060 --> 00:01:36,440 desea que pueda ser leído por todos, 29 00:01:36,440 --> 00:01:39,880 Entonces lo que haces es que se podría utilizar el comodín - 30 00:01:39,880 --> 00:01:41,650 que es un asterisco - 31 00:01:41,650 --> 00:01:46,190 para indicar básicamente en la carpeta CSS - todo en esa carpeta - 32 00:01:46,190 --> 00:01:48,740  Voy a decir que eso va a ser leído por todo el mundo. 33 00:01:48,740 --> 00:01:54,220 Con los permisos, cuando usamos las letras, 34 00:01:54,220 --> 00:01:57,610 también podemos utilizar números. 35 00:01:57,610 --> 00:02:00,900 Así, se ve que en última instancia, cuando se quiere que algo sea ejecutable - 36 00:02:00,900 --> 00:02:02,810 que está representado por el número 1 - 37 00:02:02,810 --> 00:02:08,340 algo que sea legible es el número 4 y, a continuación - 38 00:02:08,340 --> 00:02:10,590 escritura es el número 2 - 39 00:02:10,590 --> 00:02:13,670 y tan esencialmente cuando se desea una combinación de ellos, luego se agregan. 40 00:02:13,670 --> 00:02:15,860 Si quieres algo que leer, escribir y ejecutable, 41 00:02:15,860 --> 00:02:21,970 entonces sumaría 4, 2, y 1 y que le daría 7, 42 00:02:21,970 --> 00:02:26,230 entonces cada vez que tenga una carpeta que desea que sea ejecutable por todos - 43 00:02:26,230 --> 00:02:31,380 así como de lectura y escritura - entonces usted hace que el 7, 1, 1. 44 00:02:31,380 --> 00:02:38,140 Ese sería el 7 por ti, entonces 1 para las demás personas. 45 00:02:38,140 --> 00:02:42,870 Cuando se tiene la especificación, que en realidad va a especificar qué carpetas y archivos que 46 00:02:42,870 --> 00:02:45,040 Tienes que ser chmod-ed específicamente. 47 00:02:45,040 --> 00:02:47,920 Por ejemplo, cuando usted tiene carpetas - esos son 7-1-1 - 48 00:02:47,920 --> 00:02:52,690 cuando tienes imágenes o HTML, CSS, JavaScript, 49 00:02:52,690 --> 00:02:55,870 entonces esos van a ser 6, 0 4, - o 6, 4, 4 - 50 00:02:55,870 --> 00:03:00,030 y luego los archivos PHP va a ser de 6, 0, 0. 51 00:03:00,030 --> 00:03:04,940 La idea detrás de esto es que los usuarios no realmente debe ver a su código PHP, 52 00:03:04,940 --> 00:03:08,370 pero sólo ser capaz de ver la salida. 53 00:03:08,370 --> 00:03:11,030 >> Great! Entrando en PHP. 54 00:03:11,030 --> 00:03:18,850 Simplemente, cada vez que desee un archivo PHP, el sufijo de archivo es. Php. 55 00:03:18,850 --> 00:03:22,000 También puede mezclar HTML con código PHP. 56 00:03:22,000 --> 00:03:24,880 Si usted tiene un archivo HTML, por ejemplo, 57 00:03:24,880 --> 00:03:32,520 entonces usted puede presentar junto con el ángulo izquierdo, signo de interrogación, php - 58 00:03:32,520 --> 00:03:39,320 poner el código php - y cierre que con otro signo de interrogación y un ángulo recto. 59 00:03:39,320 --> 00:03:45,020 Variables en PHP son mucho más fáciles de tratar que las variables en C. 60 00:03:45,020 --> 00:03:50,310 Cualquier variable sólo se inicia con un signo de dólar en frente de ella, y están escritos con voz débil. 61 00:03:50,310 --> 00:03:53,470 Eso significa que usted no tiene que preocuparse acerca de cómo configurar algo 62 00:03:53,470 --> 00:03:55,020 igual a una cadena o un entero. 63 00:03:55,020 --> 00:03:57,710 Usted puede simplemente decir que este es mi nombre de la variable 64 00:03:57,710 --> 00:04:00,390 y entonces este es su valor, 65 00:04:00,390 --> 00:04:03,280 así que va a ser más fácil de tratar allí. 66 00:04:03,280 --> 00:04:08,220 >> Otra cosa es que PHP permite utilizar matrices asociativas. 67 00:04:08,220 --> 00:04:11,330 Usted puede simplemente definir un arreglo como lo haría en C 68 00:04:11,330 --> 00:04:14,900 diciendo, signo de dólar, el nombre de la matriz-iguales, 69 00:04:14,900 --> 00:04:22,600 y, a continuación entre corchetes tienen básicamente sólo la lista de los valores de todos los elementos de la matriz. 70 00:04:22,600 --> 00:04:27,160 Pero, en lo que PHP también se puede hacer es especificar básicamente - 71 00:04:27,160 --> 00:04:31,050 es algo así como una función hash. 72 00:04:31,050 --> 00:04:34,410 Se puede especificar el índice - lo que vamos a llamar - 73 00:04:34,410 --> 00:04:37,030 y entonces que corresponde a un valor. 74 00:04:37,030 --> 00:04:42,880 Si realmente pasa en a = 1, b = 2, c = 3, 75 00:04:42,880 --> 00:04:50,820 entonces su matriz en un índice le pondrías a 1. 76 00:04:50,820 --> 00:04:56,600 Este conjunto de procesadores que entrar en calor con un poco de PHP en una sección de preguntas, 77 00:04:56,600 --> 00:04:59,240 y luego sumergirse en CS50 Finanzas. 78 00:04:59,240 --> 00:05:02,650 >> Tenemos un par de - tenemos parte de la funcionalidad, en el fondo, 79 00:05:02,650 --> 00:05:05,130 de implementar en este sitio web. 80 00:05:05,130 --> 00:05:10,440 Queremos que los usuarios puedan registrarse en nuestra página web con un nombre de usuario y una contraseña. 81 00:05:10,440 --> 00:05:13,670 Queremos que les permita buscar una cita, 82 00:05:13,670 --> 00:05:19,330 y entonces podríamos imprimir el nombre de esa cita, así como el precio que hoy está. 83 00:05:19,330 --> 00:05:26,830 Queremos permitirles ver un portafolio de todas las acciones que han comprado hasta el momento. 84 00:05:26,830 --> 00:05:34,240 También queremos que les permita comprar acciones y venderlas. 85 00:05:34,240 --> 00:05:37,540 Y, por último, queremos que puedan ver la historia 86 00:05:37,540 --> 00:05:39,490 de todas las transacciones que se han realizado. 87 00:05:39,490 --> 00:05:41,540 Entonces, finalmente, después de haber implementado todo eso, 88 00:05:41,540 --> 00:05:45,110 entonces usted es libre de implementar una característica extra. 89 00:05:45,110 --> 00:05:46,610 Vamos a entrar en eso. 90 00:05:46,610 --> 00:05:51,330 Estos pueden ser o bien permitiendo a los usuarios obtener dinero extra mediante el depósito de dinero extra, 91 00:05:51,330 --> 00:05:54,550 o puede permitir que cambien su contraseña, o algo así, 92 00:05:54,550 --> 00:06:00,590 enviarlas por correo electrónico un recibo al comprar o vender una acción. 93 00:06:00,590 --> 00:06:05,370 Hay una lista limitada de características que usted podría aplicar, 94 00:06:05,370 --> 00:06:08,340 así que es el último allí. 95 00:06:08,340 --> 00:06:13,430 >> Como se trata de un sitio web, ustedes también tienen mucha libertad para personalizarlo. 96 00:06:13,430 --> 00:06:20,960 Nosotros ofrecemos algo de código CSS, pero definitivamente eres libre de modificar, 97 00:06:20,960 --> 00:06:26,680 hacer que se vea más bonito, pero por debajo es una funcionalidad básica 98 00:06:26,680 --> 00:06:30,310 por lo que siempre se refieren a la especificación de lo que realmente se necesita para incluir allí. 99 00:06:30,310 --> 00:06:39,940 A raíz de la especulación, vamos a utilizar el aparato como también un servidor. 100 00:06:39,940 --> 00:06:43,910 Va a ser anfitriones de nuestra página web para nosotros, de su servidor local. 101 00:06:43,910 --> 00:06:49,750 Si usted sigue estas instrucciones y descomprimir el código pset 7 Distribución 102 00:06:49,750 --> 00:06:53,500 en su carpeta virtual host host / local, 103 00:06:53,500 --> 00:07:02,470  a continuación, puedes visitar http://localhost/ en Google Chrome en el aparato, 104 00:07:02,470 --> 00:07:09,120 y luego alcanzaría el código en el que has escrito pset 7. 105 00:07:09,120 --> 00:07:14,490 >> Pset 7 viene con un montón de código de distribución, 106 00:07:14,490 --> 00:07:18,330 y es de esperar we've - a través de todos los conjuntos de procesadores antes de esto - 107 00:07:18,330 --> 00:07:21,700 nos acostumbró a la lectura a través del código de distribución, 108 00:07:21,700 --> 00:07:25,650 entender qué funciones ya están previstas, y cómo podríamos ser capaces de usar 109 00:07:25,650 --> 00:07:29,470 esas y las demás funciones que vamos a implementar. 110 00:07:29,470 --> 00:07:31,570 En este caso, tenemos 3 carpetas. 111 00:07:31,570 --> 00:07:36,350 Tenemos una carpeta HTML, incluye una carpeta, y una carpeta de plantillas. 112 00:07:36,350 --> 00:07:40,630 ¿Qué vamos a hacer con este conjunto de procesadores es una especie de separar el pensamiento - 113 00:07:40,630 --> 00:07:45,580 el pensamiento de programación - de que el código PHP con el aspecto visual actual. 114 00:07:45,580 --> 00:07:52,690 Vamos a tener un archivo PHP que hace todo el pensamiento, se lee en la base de datos, 115 00:07:52,690 --> 00:07:55,620 imprime las cosas, tiene las sentencias if - cosas como esas - 116 00:07:55,620 --> 00:08:02,140 y luego que va a pasar los datos a nuestro fichero de plantilla - o archivo template.php. 117 00:08:02,140 --> 00:08:05,710 Lo que va a hacer es leer los datos y luego lo imprimirá. 118 00:08:05,710 --> 00:08:09,550 >> Podemos tratar plantillas como "tonto", ya que en realidad no los quieren 119 00:08:09,550 --> 00:08:12,370 a estar haciendo un montón de trabajo en el cálculo de las cosas. 120 00:08:12,370 --> 00:08:16,330 Queremos que nuestros controladores para hacerlo. 121 00:08:16,330 --> 00:08:21,610 Un poco sobre eso - vamos a echar un vistazo a algunos de los códigos de distribución. 122 00:08:21,610 --> 00:08:28,250 Aquí tenemos nuestro archivo index.html, y es bastante vacía. 123 00:08:28,250 --> 00:08:34,429 Básicamente lo que hace - que dice, bueno, voy a necesitar el archivo configuration.php. 124 00:08:34,429 --> 00:08:40,120 No vemos que allí mismo, pero es básicamente una llamada al archivo configuration.php, 125 00:08:40,120 --> 00:08:42,240 y ejecutar dicho. 126 00:08:42,240 --> 00:08:45,130 Después de que lo hace, va a hacer que la cartera. 127 00:08:45,130 --> 00:08:49,310 El procesamiento es una función, por lo que cada vez que estamos en un controlador, 128 00:08:49,310 --> 00:08:56,490 llamaremos render, vamos a dar al archivo y luego los datos que estamos pasando en, 129 00:08:56,490 --> 00:09:04,570 por lo que va a llamar portfolio.php--tipo de pase en esos datos de modo que la cartera puede lidiar con eso. 130 00:09:04,570 --> 00:09:10,540 >> Y ahora, aquí, tenemos nuestra forma login.php. 131 00:09:10,540 --> 00:09:17,540  Este es el controlador que básicamente se encarga de la tala pulg 132 00:09:17,540 --> 00:09:29,090 A continuación, comprueba si el formulario se envió a este archivo y se ocupa de la validación de la presentación. 133 00:09:29,090 --> 00:09:31,990 Veremos en esta función disculpas. 134 00:09:31,990 --> 00:09:35,100 Cuando queremos imprimir un mensaje de error, 135 00:09:35,100 --> 00:09:39,550 usamos disculpas y que se redirige al usuario a una página específica 136 00:09:39,550 --> 00:09:42,530 que se imprimirá el mensaje de error específico que le indiquemos. 137 00:09:42,530 --> 00:09:47,860 Continuando, se consulta la base de datos - nos volveremos a conseguir más de eso más tarde. 138 00:09:47,860 --> 00:09:54,180 Entonces usted ve que aquí si un formulario no se presentó, entonces se vuelve un formulario. 139 00:09:54,180 --> 00:10:01,360 Eso significa que va a login_form.php, así que echemos un vistazo a eso. 140 00:10:01,360 --> 00:10:09,400 >> Login.php es en realidad donde vemos el trato HTML con el aspecto visual actual. 141 00:10:09,400 --> 00:10:15,130 Aquí tenemos una etiqueta de entrada del nombre de usuario, una entrada para la contraseña, 142 00:10:15,130 --> 00:10:16,630 así como un botón de envío. 143 00:10:16,630 --> 00:10:22,660 Eso es en realidad donde el aspecto visual y la forma HTML se va a celebrar. 144 00:10:22,660 --> 00:10:27,550 En este caso, se dice que va a ser presentada por un cierto método, llamado post. 145 00:10:27,550 --> 00:10:30,190 Vamos a entrar en las diferencias entre los métodos - 146 00:10:30,190 --> 00:10:33,240 frente a publicar conseguir, también hay algo que se llama put - 147 00:10:33,240 --> 00:10:36,160 vamos a entrar en esos métodos tarde, pero por el interés de este conjunto de procesadores, 148 00:10:36,160 --> 00:10:37,810 Lo recomiendo animamos a usar correos. 149 00:10:37,810 --> 00:10:42,210 >> Sabemos que, básicamente, una vez que este formulario se presenta - 150 00:10:42,210 --> 00:10:44,650 de login_form.php-- 151 00:10:44,650 --> 00:10:50,850 luego irá a la acción - login.php-- 152 00:10:50,850 --> 00:10:56,070 básicamente en pasar todos los parámetros de las formas en login.php. 153 00:10:56,070 --> 00:11:04,900 Los resultados de esa forma están contenidos dentro de esta matriz asociativa post. 154 00:11:04,900 --> 00:11:11,710 Los índices de los diferentes elementos de la matriz de mensaje 155 00:11:11,710 --> 00:11:15,290 son exactamente lo que especifique aquí. 156 00:11:15,290 --> 00:11:19,240 Usted dice que el nombre de esta entrada es nombre de usuario. El nombre de éste es password. 157 00:11:19,240 --> 00:11:26,840 Del mismo modo, verá el nombre de usuario como el índice de la matriz asociativa allí. 158 00:11:26,840 --> 00:11:35,110 Si nos vamos a la carpeta incluye, tenemos este fichero funciones que va a ser muy útil. 159 00:11:35,110 --> 00:11:37,570 >> Todas estas funciones se llevan a cabo para usted. 160 00:11:37,570 --> 00:11:41,870 No es necesario el cumplimiento específico de cualquiera de estos usted mismo, 161 00:11:41,870 --> 00:11:43,140 pero van a bastante útil. 162 00:11:43,140 --> 00:11:49,450 Hemos disculpas, que como he dicho antes, básicamente, se imprimirá un mensaje de error 163 00:11:49,450 --> 00:11:52,920 para usted en una página específica - apology.php. 164 00:11:52,920 --> 00:11:59,890 Entonces tenemos vertedero, por lo que si usted acaba de llamar dump y luego pasar a la variable, 165 00:11:59,890 --> 00:12:04,930 a continuación, le llevará a una página que mostrará esa variable para usted. 166 00:12:04,930 --> 00:12:09,950 Luego hemos de cierre de sesión, que básicamente va a terminar la sesión de un usuario determinado de. 167 00:12:09,950 --> 00:12:12,240 Lookup va a ser útil. 168 00:12:12,240 --> 00:12:15,870 Ya que estamos tratando con citas y acciones, vamos a ser capaces - 169 00:12:15,870 --> 00:12:17,650 y es esencialmente tiempo real. 170 00:12:17,650 --> 00:12:21,380 Tenemos que saber cuáles son esos valores bursátiles son, 171 00:12:21,380 --> 00:12:28,210 así que tenemos la función de búsqueda que trata de documentación de Yahoo de las existencias. 172 00:12:28,210 --> 00:12:37,700 Una vez que buscar un cierto símbolo de una acción, se volverá a vosotros el símbolo de cotización 173 00:12:37,700 --> 00:12:41,480 así como el nombre y el precio actual de esa población. 174 00:12:41,480 --> 00:12:44,330 Esa es la función de búsqueda. 175 00:12:44,330 --> 00:12:48,350 >> Entonces estamos tratando con mySQL, 176 00:12:48,350 --> 00:12:53,970 así que vamos a querer ejecutar algunas consultas en la base de datos SQL. 177 00:12:53,970 --> 00:12:58,890 Tenemos que tratar de consultas - a algún tipo de resumen de cuenta de eso. 178 00:12:58,890 --> 00:13:03,200 Vamos a estar pasando en toda la cadena de nuestra consulta SQL - 179 00:13:03,200 --> 00:13:05,360 y todas las variables que van en ella - 180 00:13:05,360 --> 00:13:09,480 y lo que hace en realidad es ejecutar eso para nosotros. 181 00:13:09,480 --> 00:13:15,070 En lugar de tener que escribir todo esto cada vez que desea consultar - 182 00:13:15,070 --> 00:13:21,740 al obtener todos los resultados de esa consulta - 183 00:13:21,740 --> 00:13:24,740 entonces usted puede llamar a la función de consulta, y va a volver a usted - 184 00:13:24,740 --> 00:13:28,750 dependiendo de lo que usted está utilizando para su consulta - 185 00:13:28,750 --> 00:13:33,000 probablemente una fila de todos los resultados que coinciden con la consulta o similar. 186 00:13:33,000 --> 00:13:34,690 Más sobre esto más adelante sin embargo. 187 00:13:34,690 --> 00:13:41,200 >> Por último, tenemos que reorientar la cual, como su nombre indica, te redirige a una página diferente. 188 00:13:41,200 --> 00:13:46,280 Y entonces tenemos que hacer, que vamos a estar llamando un par de veces. 189 00:13:46,280 --> 00:13:51,010 Cuando estás en un controlador, se llama a hacer en la página de la plantilla 190 00:13:51,010 --> 00:13:55,390 y luego pasar a los valores que la plantilla y luego se tratan. 191 00:13:55,390 --> 00:13:59,540 Esos valores son probablemente va a estar tratando con el tipo de salida que desea 192 00:13:59,540 --> 00:14:01,050 que se mostrará en su página de la plantilla. 193 00:14:01,050 --> 00:14:09,370 Bien. Esas son las funciones, y hay mucho más en este código distribución. 194 00:14:09,370 --> 00:14:12,930 Os animo a pasar por esto y explorar por su cuenta. 195 00:14:12,930 --> 00:14:17,050 Además, la especificación probablemente le guiará a través de algunos otros elementos del código de distribución. 196 00:14:17,050 --> 00:14:27,360 He aquí un resumen de las funciones que se encuentran en functions.php. 197 00:14:27,360 --> 00:14:31,710 >> Bien. La primera tarea es permitir a los usuarios registrarse en el sitio web. 198 00:14:31,710 --> 00:14:34,860 En estos momentos, hay un formulario de acceso en el sitio web, 199 00:14:34,860 --> 00:14:40,080 y está provisto de unos pocos usuarios con contraseñas. 200 00:14:40,080 --> 00:14:42,130 Puede utilizar los nombres de usuario e inicie sesión, 201 00:14:42,130 --> 00:14:45,140 pero desea permitir a la gente hacer sus propios nombres de usuario 202 00:14:45,140 --> 00:14:47,390 y se suman a la página web. 203 00:14:47,390 --> 00:14:53,070 La disposición para el registro es bastante similar a la forma de acceso, 204 00:14:53,070 --> 00:14:56,340 excepto el nombre de usuario no es pre-existente, 205 00:14:56,340 --> 00:14:59,430 y el usuario también debe proporcionar una nueva contraseña, 206 00:14:59,430 --> 00:15:02,440 y luego por lo general tenemos una confirmación de la contraseña. 207 00:15:02,440 --> 00:15:06,580 Una vez que el usuario introduce todos los de esa información, 208 00:15:06,580 --> 00:15:10,620 queremos añadir a nuestra base de datos de usuarios. 209 00:15:10,620 --> 00:15:12,970 Vamos a tener una base de datos - una base de datos SQL - 210 00:15:12,970 --> 00:15:14,470 que vamos a hacer referencia. 211 00:15:14,470 --> 00:15:18,140 En esa base de datos, vamos a tener una tabla con todos los usuarios 212 00:15:18,140 --> 00:15:23,850 que contiene su nombre de usuario, su contraseña, y también la cantidad de dinero que tienen. 213 00:15:23,850 --> 00:15:28,480 >> En el registro, queremos permitir que introduzca la información. 214 00:15:28,480 --> 00:15:29,740 Queremos mostrar que la forma. 215 00:15:29,740 --> 00:15:32,210 Queremos asegurarnos de que su contraseña - 216 00:15:32,210 --> 00:15:37,490 que entraron en uno, y luego también de que las contraseñas coinciden cuando lo ingrese dos veces. 217 00:15:37,490 --> 00:15:42,240 Después de todo lo que se hace - si se asume que los errores son revisados ​​- 218 00:15:42,240 --> 00:15:45,120 luego queremos agregar los usuarios a nuestra base de datos. 219 00:15:45,120 --> 00:15:49,630 Finalmente, una vez que se haya registrado, es muy conveniente si usted no tiene que conectarse de nuevo 220 00:15:49,630 --> 00:15:51,000 una vez que te hayas registrado, 221 00:15:51,000 --> 00:15:54,000 así que vamos a iniciar sesión en el sitio web si han registrado con éxito. 222 00:15:54,000 --> 00:16:00,360 >> La primera tarea es mostrar la forma, y ​​esto es en realidad va a ser - 223 00:16:00,360 --> 00:16:04,920 este proceso de registro entero va a ser modelado muy de cerca después de anunciarse 224 00:16:04,920 --> 00:16:10,510 pero en lugar de login.php es posible que tenga register.php. 225 00:16:10,510 --> 00:16:14,300 En lugar de login_form.php--que es la plantilla - 226 00:16:14,300 --> 00:16:16,030 habrás formulario de registro. 227 00:16:16,030 --> 00:16:19,680 Usted querrá agregar un campo más - un campo de confirmación de contraseña - 228 00:16:19,680 --> 00:16:23,450 en lugar de sólo el nombre de usuario y la contraseña de un uno. 229 00:16:23,450 --> 00:16:28,120 A continuación, queremos comprobar si las contraseñas coinciden o están en blanco. 230 00:16:28,120 --> 00:16:38,560 Tenemos el controlador - register.php--que se va a hacer cargo de hacer estas comprobaciones. 231 00:16:38,560 --> 00:16:41,690 Cuando se envía un formulario a través del método post, 232 00:16:41,690 --> 00:16:47,050 luego, de esas variables están contenidas dentro de la matriz de entrada. 233 00:16:47,050 --> 00:16:52,280 Usted quiere asegurarse de que el valor de la matriz puesto en índice de contraseña 234 00:16:52,280 --> 00:16:58,080 coincide con el elemento de confirmación. 235 00:16:58,080 --> 00:16:59,410 Usted quiere asegurarse de que no están en blanco, 236 00:16:59,410 --> 00:17:01,650 y usted querrá asegurarse de que son lo mismo. 237 00:17:01,650 --> 00:17:05,960 >> Una cosa conveniente sobre PHP es que no es necesario utilizar cadenas comparar más. 238 00:17:05,960 --> 00:17:08,410 Podemos utilizar el operador igual a igual- 239 00:17:08,410 --> 00:17:11,470  para comprobar si las cadenas son iguales una a otra. 240 00:17:11,470 --> 00:17:14,960 Para el tratamiento de errores, te quiero pedir disculpas. 241 00:17:14,960 --> 00:17:17,150 Para disculparse, sólo tiene que llamar a la función 242 00:17:17,150 --> 00:17:21,910  a continuación, especifique un tipo de mensaje que desea enviar el resultado. 243 00:17:21,910 --> 00:17:24,630 A continuación, desea agregar el usuario a la base de datos. 244 00:17:24,630 --> 00:17:30,880 Hasta ahora, todo lo que he estado haciendo es negociando localmente con los resultados de la forma. 245 00:17:30,880 --> 00:17:33,940 Ahora, en realidad quiere añadirlos a nuestra base de datos. 246 00:17:33,940 --> 00:17:38,890 Para ello, lo primero que quiere asegurarse de que el nombre de usuario no está en blanco. 247 00:17:38,890 --> 00:17:44,550 Entender que en un sitio web, usted no puede tener varios usuarios con el mismo nombre de usuario, 248 00:17:44,550 --> 00:17:50,010 por lo que usted quiere asegurarse de que al insertar algo en su base de datos - 249 00:17:50,010 --> 00:17:56,650 insertar un nuevo usuario - entonces usted no recibe una colisión entre un nombre de usuario pre-existente 250 00:17:56,650 --> 00:17:59,150 y el nombre de usuario que el usuario está tratando de enviar. 251 00:17:59,150 --> 00:18:02,250 Para ello, una vez que se ejecuta una consulta - 252 00:18:02,250 --> 00:18:08,760 la inserción de un determinado usuario con su contraseña y una cantidad inicial de dinero en efectivo - 253 00:18:08,760 --> 00:18:15,140 una vez que se llame a esa consulta, a continuación, en realidad MySQL devolverá false si no. 254 00:18:15,140 --> 00:18:21,050 >> La estructura de los usuarios es tal que el nombre de usuario es un valor único, 255 00:18:21,050 --> 00:18:22,540 por lo que no puede tener más de uno. 256 00:18:22,540 --> 00:18:30,080 Al tratar de insertar una nueva fila con un nombre que ya existe, 257 00:18:30,080 --> 00:18:34,470 que va a devolver falso - como un falso booleano valor. 258 00:18:34,470 --> 00:18:45,320 Una cosa difícil aquí es que usted querrá comprobar si el resultado es el resultado de la consulta. 259 00:18:45,320 --> 00:18:52,320 Si falla, entonces usted querrá consultar con el operador de triple iguales. 260 00:18:52,320 --> 00:18:55,420 Eso es en realidad va a comprobar si se produce un fallo o no, 261 00:18:55,420 --> 00:19:02,760 mientras que, en tan sólo un sencillo iguales-iguales, sería cierto si la fila estaba vacía. 262 00:19:02,760 --> 00:19:06,000 El resultado de un fallo si hay una colisión entre nombres de usuarios 263 00:19:06,000 --> 00:19:10,350 es el valor falso real. 264 00:19:10,350 --> 00:19:15,230 >> Así es como se insertaría en una base de datos. 265 00:19:15,230 --> 00:19:19,220 Ésta es la consulta que se ejecuta estrictamente de SQL. 266 00:19:19,220 --> 00:19:25,750 Una cosa es que usted puede ir a la página web que administra la base de datos SQL 267 00:19:25,750 --> 00:19:31,070 y jugar allí introduciendo manualmente valores o filas. 268 00:19:31,070 --> 00:19:34,540 Se dará salida a lo que la salida es SQL. 269 00:19:34,540 --> 00:19:38,870 También puede ejecutar comandos SQL en su base de datos 270 00:19:38,870 --> 00:19:42,200  y luego ver lo que la sintaxis sea, 271 00:19:42,200 --> 00:19:46,790 y luego traducir eso en la función de consulta que tenemos en pset 7, 272 00:19:46,790 --> 00:19:51,120 que va a ser muy similar a las consultas que se ejecutan realmente. 273 00:19:51,120 --> 00:19:54,570 >> Si quisiera insertar una nueva fila en mi tabla de usuarios, 274 00:19:54,570 --> 00:20:01,240 entonces me gustaría especificar inserción en los usuarios, que es el nombre de mi mesa. 275 00:20:01,240 --> 00:20:06,870 Entonces tuve deseo de especificar los nombres de las columnas. 276 00:20:06,870 --> 00:20:13,230 Entonces me proporcionaría los valores junto con mi contraseña. 277 00:20:13,230 --> 00:20:17,080 Las contraseñas en nuestra tabla de usuarios no se almacenan como acaba la cuerda. 278 00:20:17,080 --> 00:20:19,440 Se almacenan como la versión encriptada, 279 00:20:19,440 --> 00:20:24,560 por lo que usted desea ejecutar la cripta función de la contraseña actual, 280 00:20:24,560 --> 00:20:29,680 y que le dará el tipo correcto de almacenamiento de la matriz de los usuarios. 281 00:20:29,680 --> 00:20:34,960 La ejecución de este insertará una nueva fila en la tabla de usuarios. 282 00:20:34,960 --> 00:20:39,020 >> Para hacer frente a la función de consulta, 283 00:20:39,020 --> 00:20:43,100 antes en C que utiliza el signo de porcentaje como un marcador de posición. 284 00:20:43,100 --> 00:20:47,670 Del mismo modo, el concepto mismo de un marcador de posición se aplica aquí. 285 00:20:47,670 --> 00:20:50,720 Con consulta, se especifica toda la consulta, 286 00:20:50,720 --> 00:20:55,510 excepto cuando se trata con variables como su aportación a la consulta, 287 00:20:55,510 --> 00:21:00,490 entonces en vez de realmente ponerlas dentro - como cuando teníamos instrucciones printf en C. 288 00:21:00,490 --> 00:21:03,740 Nos gustaría poner la cadena y luego tener un marcador de posición de allí, y luego después de cada 289 00:21:03,740 --> 00:21:06,990 coma, especificar qué variable que teníamos. 290 00:21:06,990 --> 00:21:14,480 Aquí, vamos a utilizar el signo signo de interrogación como nuestro marcador de posición 291 00:21:14,480 --> 00:21:21,670 y luego pasar en cada variable, respectivamente, en orden, para los marcadores de posición - 292 00:21:21,670 --> 00:21:24,420 donde las variables deben ir. 293 00:21:24,420 --> 00:21:29,470 Así que aquí, el signo de interrogación primero se sustituye por el nombre de usuario real 294 00:21:29,470 --> 00:21:33,610 entonces el signo de interrogación segundo por la contraseña. 295 00:21:33,610 --> 00:21:37,000 >> Entonces, finalmente, una vez que has registrado y las ha añadido a la base de datos, 296 00:21:37,000 --> 00:21:40,510 entonces usted desea para iniciar sesión en el sitio web. 297 00:21:40,510 --> 00:21:45,320 Tenemos una especie de súper-global variable de sesión llamada. 298 00:21:45,320 --> 00:21:48,160 Sesión toma un identificador determinado, 299 00:21:48,160 --> 00:21:51,750 y que corresponde a la ID de usuario que está actualmente conectado 300 00:21:51,750 --> 00:21:56,380 Lo que usted querrá hacer es encontrar cuál es su ID de usuario es 301 00:21:56,380 --> 00:22:03,710 y después fije ésta identificador de sesión como ese usuario id particular. 302 00:22:03,710 --> 00:22:07,560 Una función que usted quiere utilizar aquí es un comando SQL 303 00:22:07,560 --> 00:22:15,150 que recuperará el último número introducido id de la tabla. 304 00:22:15,150 --> 00:22:24,560 Entonces llamará a filas - it'll llamar al id - it'll asignar un nombre al número que devuelve. 305 00:22:24,560 --> 00:22:27,900 Se va a llamar a ese id. 306 00:22:27,900 --> 00:22:33,370 Ahora que hemos terminado de registrarse, y podemos pasar a citar. 307 00:22:33,370 --> 00:22:36,610 >> Cita permite a un usuario introducir el nombre de un determinado stock, 308 00:22:36,610 --> 00:22:41,940 y entonces va a devolver las cualidades de ese stock. 309 00:22:41,940 --> 00:22:48,410 Lo que usted querrá hacer es tener un controlador y algunas plantillas. 310 00:22:48,410 --> 00:22:53,380 En este caso, vamos a tener un controlador que se va a hacer todo el pensamiento para nosotros. 311 00:22:53,380 --> 00:23:01,210 Va a buscar el símbolo y luego pasar valores al templete que se imprimirá. 312 00:23:01,210 --> 00:23:03,060 Vamos a tener dos plantillas aquí. 313 00:23:03,060 --> 00:23:07,260 Vamos a tener una plantilla que proporciona la forma en que los usuarios van a 314 00:23:07,260 --> 00:23:09,920 introducir el nombre de la población - el nombre del recurso compartido. 315 00:23:09,920 --> 00:23:16,030 Entonces también vamos a querer otra plantilla que muestra esos valores. 316 00:23:16,030 --> 00:23:27,450 Usted puede mirar en inicio de sesión para un ejemplo de cómo se tiene un formulario que acepta la entrada, 317 00:23:27,450 --> 00:23:30,060 salvo aquí, sólo queremos un campo. 318 00:23:30,060 --> 00:23:31,630 No queremos un nombre de usuario y un campo de contraseña. 319 00:23:31,630 --> 00:23:37,110 Sólo queremos un campo de texto que permite al usuario introducir el nombre de una determinada población. 320 00:23:37,110 --> 00:23:40,110 Entonces usted desea enviar los datos - una vez que usted ha mirado hacia arriba de esta población - 321 00:23:40,110 --> 00:23:45,550 a quote_form.php. 322 00:23:45,550 --> 00:23:50,780 Lookup devuelve el símbolo de una acción, el nombre, y un precio. 323 00:23:50,780 --> 00:23:53,910 Los que están contenidos dentro de una matriz asociativa. 324 00:23:53,910 --> 00:24:01,390 Busque la función de búsqueda dentro de la functions.php para más información 325 00:24:01,390 --> 00:24:04,010 en los tipos de devolución de aquellos. 326 00:24:04,010 --> 00:24:08,520 >> Great! Así que, finalmente, tendrá que mostrar la información. 327 00:24:08,520 --> 00:24:14,110 Usted querrá mostrar probable - usted desea tener acceso a esas variables. 328 00:24:14,110 --> 00:24:17,610 Una vez que tenga el precio en una variable - 329 00:24:17,610 --> 00:24:20,860 así como el nombre y el símbolo - 330 00:24:20,860 --> 00:24:25,550 entonces usted querrá mostrar a aquellos en su página de la plantilla. 331 00:24:25,550 --> 00:24:31,540 Esa página de la plantilla que se podría llamar show_quote.php o algo así. 332 00:24:31,540 --> 00:24:39,660 Su página quote.php haría cita show y luego pasar en todos esos valores. 333 00:24:39,660 --> 00:24:47,170 Luego, en su página php, en realidad imprimir esos valores al aspecto HTML de la página. 334 00:24:47,170 --> 00:24:53,800 Usted sólo tiene que utilizar la función de impresión y pase el precio. 335 00:24:53,800 --> 00:24:57,990 Hay 2 maneras - usted puede o concatenar con el operador punto, 336 00:24:57,990 --> 00:25:02,230 o usar un marcador de posición. 337 00:25:07,580 --> 00:25:12,750 >> Los usuarios con el tiempo van a estar comprando y vendiendo acciones. 338 00:25:12,750 --> 00:25:18,450 Queremos permitir alguna forma de ver todas las acciones que tienen actualmente. 339 00:25:18,450 --> 00:25:21,350 Vamos a llamarlo así su cartera. 340 00:25:21,350 --> 00:25:26,180 Portfolio, presumiblemente para cada usuario, contiene un montón de filas 341 00:25:26,180 --> 00:25:31,760 enumerando el tipo de participación que tienen y luego cuántos de los que tienen. 342 00:25:31,760 --> 00:25:36,500 Nuestra tabla existente - en este momento tenemos una tabla de usuarios en nuestra base de datos. 343 00:25:36,500 --> 00:25:41,780 Que contiene nombre de usuario de un usuario así como su contraseña y la cantidad de dinero que tienen. 344 00:25:41,780 --> 00:25:50,390 No hay forma real de almacenar la totalidad de sus acciones que incluye. 345 00:25:50,390 --> 00:25:58,010 No es como podemos insertar nuevas columnas para cada stock. 346 00:25:58,010 --> 00:26:03,650 Eso sería una fila muy, muy largo porque tenemos una cantidad infinita 347 00:26:03,650 --> 00:26:06,200 de los tipos de acciones que pudieran tener. 348 00:26:06,200 --> 00:26:09,150 Así, en lugar lo que vamos a hacer es dentro de la misma base de datos, 349 00:26:09,150 --> 00:26:15,000 vamos a tener una tabla de usuarios, pero también vamos a tener una mesa de cartera. 350 00:26:15,000 --> 00:26:18,430 La tabla cartera quedará definitivamente ligado a la tabla de usuarios, 351 00:26:18,430 --> 00:26:24,600 sino que la estructura de la tabla cartera tendrá la información, 352 00:26:24,600 --> 00:26:27,780 cuántas acciones de esa población tiene el usuario, 353 00:26:27,780 --> 00:26:31,620 así como un número de identificación de usuario particular. 354 00:26:31,620 --> 00:26:34,620 Usted tiene la tabla de usuarios que tiene una identificación así como el nombre de usuario, el hash - 355 00:26:34,620 --> 00:26:40,130 que es la contraseña, la contraseña cifrada - 356 00:26:40,130 --> 00:26:42,130 y entonces la cantidad de efectivo que tienen. 357 00:26:42,130 --> 00:26:47,900 El número de identificación se vincularían con el número de identificación de la cartera. 358 00:26:47,900 --> 00:26:52,490 La cartera sólo tendría el símbolo de las acciones, así como las acciones - 359 00:26:52,490 --> 00:26:55,410 el número de acciones de que las acciones que el usuario tiene. 360 00:26:55,410 --> 00:26:58,520 En esa mesa cartera tendría que básicamente 361 00:26:58,520 --> 00:27:03,760 todas las acciones que posee todos los usuarios de su sitio. 362 00:27:03,760 --> 00:27:10,550 Más tarde, para especificar sólo las acciones de un usuario determinado de su cartera - sólo - 363 00:27:10,550 --> 00:27:15,360 podrá recuperar los valores de la tabla de su cartera de manera que 364 00:27:15,360 --> 00:27:19,930 el número de identificación es específica de ese usuario. 365 00:27:26,520 --> 00:27:34,890 >> Cuando se muestra la cartera, tendrá que reportar cada una de las acciones en cartera de un usuario. 366 00:27:34,890 --> 00:27:41,670 Usted querrá informar el número de acciones y el valor actual de esas acciones. 367 00:27:41,670 --> 00:27:45,950 Ese valor actual de dichas acciones no se almacena en la tabla de cartera 368 00:27:45,950 --> 00:27:51,640 porque eso va a ser la actualización - como mínimo - todos los días por Yahoo. 369 00:27:51,640 --> 00:27:58,550 Para obtener esa información, no se puede hacer referencia a que a partir de la consulta SQL. 370 00:27:58,550 --> 00:28:02,400 ¿Qué función le importa a nosotros? ¿Qué función tendrá el precio? 371 00:28:02,400 --> 00:28:09,110 Eso es de búsqueda, por lo que usar lookup en un símbolo particular le dará una gran cantidad de información. 372 00:28:09,110 --> 00:28:13,710 Te dará 3 piezas de información - el nombre, el símbolo, así como el precio. 373 00:28:13,710 --> 00:28:17,490 Una vez que buscar un símbolo determinado, entonces usted puede conseguir el precio, 374 00:28:17,490 --> 00:28:20,460 y entonces usted puede utilizar el precio que se mostrará en su cartera. 375 00:28:20,460 --> 00:28:26,190 >> La cartera también debe mostrar el equilibrio del usuario efectivo actual. 376 00:28:26,190 --> 00:28:30,310 Ese campo se almacena en la tabla de usuarios. 377 00:28:30,310 --> 00:28:33,400 Así que recordando cómo estamos, básicamente, tener que - 378 00:28:33,400 --> 00:28:36,850 vamos a tener diferentes tipos de archivos PHP. 379 00:28:36,850 --> 00:28:40,160 Vamos a tener un controlador que hace, básicamente, todo el pensamiento para ti. 380 00:28:40,160 --> 00:28:45,940 Y luego tenemos una plantilla en la que la plantilla se ocupa de los datos de salida. 381 00:28:45,940 --> 00:28:50,790 Usted tiene que pensar en lo que las variables del controlador tendrá que tomar pulg 382 00:28:50,790 --> 00:29:01,630 Si estamos tratando con una cartera que emite cada nombre, el símbolo y el número de acciones, 383 00:29:01,630 --> 00:29:03,730 así como el precio actual de una acción, 384 00:29:03,730 --> 00:29:06,950 entonces usted tendrá que encontrar alguna manera de pasar básicamente en - 385 00:29:06,950 --> 00:29:12,070 puede pasar una matriz de valores que responden a eso. 386 00:29:15,250 --> 00:29:24,360 >> Vamos a entrar en un ejemplo de cómo se puede recuperar todas las poblaciones 387 00:29:24,360 --> 00:29:26,210 propiedad de un usuario particular. 388 00:29:26,210 --> 00:29:31,400 Esto no se trata - todavía - con el precio de las acciones. 389 00:29:31,400 --> 00:29:33,520 Lo que esto haría es ejecutar una consulta. 390 00:29:33,520 --> 00:29:37,070 Sería obtener el símbolo, así como las acciones de - 391 00:29:37,070 --> 00:29:42,770 Voy a llamar a esta mesa, pero en este caso, ¿cuál sería? 392 00:29:42,770 --> 00:29:49,400 ¿Cuál es el nombre de la tabla que estamos tratando de que tiene un símbolo y acciones 393 00:29:49,400 --> 00:29:52,280 para un usuario particular? 394 00:29:52,280 --> 00:29:56,410 Es los usuarios o de cartera. 395 00:29:56,410 --> 00:29:57,820 Cartera. 396 00:29:57,820 --> 00:30:03,220 Lo que esto haría sería cartera de consulta para los símbolos y acciones 397 00:30:03,220 --> 00:30:04,920 para un usuario particular. 398 00:30:04,920 --> 00:30:09,260 Aquí, digo, (SELECT, símbolo acciones de TBL - 399 00:30:09,260 --> 00:30:12,280 pero en lugar de la tabla, usted va a reemplazar que con la cartera. 400 00:30:12,280 --> 00:30:15,220 'Dónde' es básicamente mi condición. 401 00:30:15,220 --> 00:30:21,050 Estoy diciendo que sólo quiere conseguir esas matrices asociativas que corresponden 402 00:30:21,050 --> 00:30:23,850  a esta condición siguiente - id iguales. 403 00:30:23,850 --> 00:30:27,600  Entonces me voy a poner un marcador de posición en el acto ID de sesión. 404 00:30:27,600 --> 00:30:36,720 Lo que esto haría es decir para cada fila en fila. 405 00:30:36,720 --> 00:30:40,940 Esta es una clara forma en lugar de tener que crear un bucle for 406 00:30:40,940 --> 00:30:47,450 que se repite en todos los índices, luego en PHP que puede tener una for-each loop. 407 00:30:47,450 --> 00:30:53,520 >> Si usted tiene una matriz determinada, entonces se puede decir que voy a llamar a cada elemento sucesivo - 408 00:30:53,520 --> 00:30:57,930 Voy a llamar a cada elemento de este nombre. 409 00:30:57,930 --> 00:31:02,780 Así, para cada uno de estos elementos, voy a llamarlos esto, 410 00:31:02,780 --> 00:31:04,500 entonces puedo hacer esto. 411 00:31:04,500 --> 00:31:10,370 En esto para cada uno, tiene su matriz de filas como real, y cada fila que se va a llamar a filas. 412 00:31:10,370 --> 00:31:12,420 Cada vez que se ejecuta el cuerpo, 413 00:31:12,420 --> 00:31:16,960 que va a subir y se actualizará la fila al siguiente elemento en filas. 414 00:31:18,900 --> 00:31:25,260 >> Ahora, en términos de la compra de acciones, 415 00:31:25,260 --> 00:31:29,500 lo que queremos hacer es conseguir la acción que el usuario quiere comprar 416 00:31:29,500 --> 00:31:35,300 y la cantidad de acciones que el usuario quiere comprar, y luego - si se quiere - 417 00:31:35,300 --> 00:31:38,120 añadir que las acciones de su cartera. 418 00:31:38,120 --> 00:31:40,310 Obviamente, si vas a comprar algo, entonces eso va a disminuir 419 00:31:40,310 --> 00:31:43,520 la cantidad de dinero que tienen, por lo que va a disminuir su dinero. 420 00:31:43,520 --> 00:31:48,380 Vamos a tener trato con la actualización de la cartera, así como la tabla de usuarios, 421 00:31:48,380 --> 00:31:50,300 que contiene la caja. 422 00:31:50,300 --> 00:31:54,920 Pero primero, usted necesita para obtener el stock actual y la cantidad de acciones que el usuario desee. 423 00:31:54,920 --> 00:32:00,010 Para ello, necesitará un formulario HTML que le pedirá el símbolo de las acciones 424 00:32:00,010 --> 00:32:03,360 que desea comprar, así como el número de acciones. 425 00:32:03,360 --> 00:32:08,300 Entonces usted desee agregar. 426 00:32:08,300 --> 00:32:13,750 Usted tendrá que seleccionar ciertos valores. 427 00:32:13,750 --> 00:32:19,670 Hemos pasado por esto un poco ya, pero cuando usted está tratando de obtener ciertas filas - 428 00:32:19,670 --> 00:32:22,020 recuperar ciertas filas de la tabla de SQL, 429 00:32:22,020 --> 00:32:24,290 esta es la sintaxis siguiente. 430 00:32:24,290 --> 00:32:28,400 Has seleccionado, y luego, si se especifica una estrella, 431 00:32:28,400 --> 00:32:31,830 que básicamente va a devolver la fila entera, toda para ti. 432 00:32:31,830 --> 00:32:36,890 Por otra parte, tiene la condición en la que, a continuación, especifica - 433 00:32:36,890 --> 00:32:39,990 Sólo quiero que el nombre de usuario para ser igual a por correo, 434 00:32:39,990 --> 00:32:46,660 por lo que sólo se recupera la fila de los usuarios que corresponde al correo. 435 00:32:46,660 --> 00:32:52,860 >> Cuando un usuario desea agregar una acción a una cartera, 436 00:32:52,860 --> 00:32:54,400 es necesario comprobar por unos pocos errores. 437 00:32:54,400 --> 00:32:57,680 Usted quiere asegurarse de que el usuario realmente puede pagar las acciones, 438 00:32:57,680 --> 00:33:00,810 por lo que usted quiere comprobar su efectivo. 439 00:33:00,810 --> 00:33:05,810 Antes, solíamos estrella para recuperar toda una fila de una tabla de SQL. 440 00:33:05,810 --> 00:33:08,930 Pero aquí, en realidad se puede simplemente especificar que sólo desea un valor - 441 00:33:08,930 --> 00:33:10,080 Sólo quiero dinero. 442 00:33:10,080 --> 00:33:17,970 Así que aquí, devolvería el dinero en efectivo para el usuario con número de identificación 1. 443 00:33:17,970 --> 00:33:25,940 Si un usuario ya ha comprado una acción determinada, pero luego compra más de esa población, 444 00:33:25,940 --> 00:33:30,440 entonces en su cartera - que no desea una línea separada, 445 00:33:30,440 --> 00:33:34,770 otra fila que contiene esa nueva transacción. 446 00:33:34,770 --> 00:33:37,950 Usted realmente quiere actualizar la cantidad. 447 00:33:37,950 --> 00:33:42,530 Todo lo que realmente está cambiando es la cantidad de acciones que posee dicho usuario. 448 00:33:42,530 --> 00:33:47,730 Si utiliza la consulta INSERT INTO - por lo que acaba de insertar en su cartera todos estos valores - 449 00:33:47,730 --> 00:33:51,710 el número de identificación del usuario, así como el símbolo de las acciones que están comprando 450 00:33:51,710 --> 00:33:57,750 y las acciones, entonces usted también desea especificar, bueno, si me encuentro con un duplicado de la llave - 451 00:33:57,750 --> 00:34:00,750 en este caso, la llave duplicada no es sólo el ID del usuario, sino también el símbolo de la acción - 452 00:34:00,750 --> 00:34:08,340 porque sólo se puede tener - nuestra premisa es que sólo se puede tener una fila 453 00:34:08,340 --> 00:34:10,699  que corresponde a 1 símbolo específico. 454 00:34:10,699 --> 00:34:13,659 Así, en el duplicado de la llave - si llegas a tener un accidente ahí - 455 00:34:13,659 --> 00:34:18,520 te vas a actualizar acciones a su nuevo valor. 456 00:34:18,520 --> 00:34:23,290 Acciones igual a lo que teníamos antes, más el número de acciones que el usuario está comprando. 457 00:34:27,790 --> 00:34:31,090 >> Ahora que hemos actualizado la tabla de la cartera, 458 00:34:31,090 --> 00:34:34,730 vamos a querer actualizar efectivo del usuario. 459 00:34:34,730 --> 00:34:40,300 Eso está en la tabla de usuarios, por lo que vamos a restar una cierta cantidad de dinero en efectivo. 460 00:34:40,300 --> 00:34:46,270 Es de suponer que va a ser efectivo es igual a menos dinero en efectivo - y luego de cierta cantidad. 461 00:34:46,270 --> 00:34:50,560 Para actualizar el dinero, lo haría - 462 00:34:50,560 --> 00:34:55,699 si quería llevarse el dinero de correo, entonces me gustaría ejecutar esta consulta - 463 00:34:55,699 --> 00:35:00,220 'Actualización de los usuarios ya continuación, establezca la columna de efectivo a efectivo - 464 00:35:00,220 --> 00:35:07,300 >> Yo eliminaría 9.999 dólares sólo si el nombre de usuario es igual al correo. 465 00:35:07,300 --> 00:35:12,020 Pero, en este caso, no queremos restar 9.999 específicamente. 466 00:35:12,020 --> 00:35:17,610 Queremos precisar, además, queremos restar el precio actual de la acción 467 00:35:17,610 --> 00:35:22,400 multiplicado por el número de acciones que están comprando. 468 00:35:25,260 --> 00:35:29,910 >> Ahora que hemos permitido que vean todas las acciones que tienen, 469 00:35:29,910 --> 00:35:33,080 así como comprar más acciones. 470 00:35:33,080 --> 00:35:37,430 También hemos previamente les permitió buscar el precio actual de una acción. 471 00:35:37,430 --> 00:35:40,030 Aquí queremos permitir que los venden. 472 00:35:40,030 --> 00:35:42,160 En primer lugar queremos mostrar básicamente - 473 00:35:42,160 --> 00:35:45,270 queremos que puedan ver todas las acciones que tienen, 474 00:35:45,270 --> 00:35:53,170 así que aquí queremos mostrar todas las filas de la cartera. 475 00:35:53,170 --> 00:35:56,650 Si optan por vender una acción determinada, 476 00:35:56,650 --> 00:35:59,140 entonces vamos a suponer que ellos quieren vender todo. 477 00:35:59,140 --> 00:36:04,350 No sólo se va a vender el 50% de sus acciones, que van a vender el 100% de la misma. 478 00:36:04,350 --> 00:36:08,630 Sólo puede eliminar la fila completa de la cartera. 479 00:36:08,630 --> 00:36:17,520 Podemos eliminar las acciones del usuario en particular del símbolo determinado. 480 00:36:17,520 --> 00:36:21,410 Ahí está la sintaxis para eso. 481 00:36:21,410 --> 00:36:22,710 >> Entonces queremos actualizar el efectivo. 482 00:36:22,710 --> 00:36:30,930 Vamos a añadir en el efectivo equivalente al importe de las acciones que se están vendiendo 483 00:36:30,930 --> 00:36:34,640 multiplicada por el precio actual de la acción - 484 00:36:34,640 --> 00:36:38,610 no el precio al que se compró, sino el precio al que están - 485 00:36:38,610 --> 00:36:40,500 el precio actual cuando lo están vendiendo. 486 00:36:40,500 --> 00:36:43,660 Para hacer referencia al precio actual de una acción, 487 00:36:43,660 --> 00:36:49,120 usted tendrá que usar de búsqueda, que le dará el precio de una acción 488 00:36:50,030 --> 00:36:52,650 en el momento actual. 489 00:36:52,650 --> 00:36:55,930 >> Ahora nos queda la historia, 490 00:36:55,930 --> 00:37:00,170 la que desea permitir a un usuario hacer un seguimiento de todas sus operaciones - 491 00:37:00,170 --> 00:37:03,040 quiere ver cada vez que se vende algo, cada vez que compramos una acción. 492 00:37:03,040 --> 00:37:08,870 Queremos especificar la hora a la que lo hicieron así como cuántos compraron 493 00:37:08,870 --> 00:37:11,650 y qué acciones de la misma era. 494 00:37:11,650 --> 00:37:17,800 ¿Tenemos alguna estructura actual, vigente que establece que? 495 00:37:17,800 --> 00:37:25,230 Bueno, tenemos cartera que muestra los stocks de números que tiene un usuario 496 00:37:25,230 --> 00:37:26,470 una proporción dada. 497 00:37:26,470 --> 00:37:34,060 Pero estamos estructurando cartera en la forma en que se actualiza cuando compramos múltiple, 498 00:37:34,060 --> 00:37:40,190 mientras que la historia debería - si usted compra 10 acciones de Apple, de la misma, y ​​más tarde vender 5, 499 00:37:40,190 --> 00:37:44,040 entonces usted quiere ver a aquellos por separado como acciones separadas, filas separadas. 500 00:37:44,040 --> 00:37:48,520 Considerando que la acción de visualizar que en nuestra mesa cartera 501 00:37:48,520 --> 00:37:52,540 sólo sería una actualización de esa fila en particular, 502 00:37:52,540 --> 00:37:55,740  por lo que probablemente va a querer otra tabla. 503 00:37:55,740 --> 00:38:00,460 En nuestra base de datos, tenemos nuestra tabla de usuarios, tenemos nuestra mesa de la cartera, 504 00:38:00,460 --> 00:38:04,090 y ahora es probable que querrá una tabla de historial. 505 00:38:04,090 --> 00:38:08,070 Esa tabla de historial puede realizar un seguimiento de la fecha actual, 506 00:38:08,070 --> 00:38:12,800 así como el símbolo de la acción particular, así como cuántas acciones, 507 00:38:12,800 --> 00:38:15,410 y entonces, ¿qué acción es - 508 00:38:15,410 --> 00:38:18,800 si se compra las acciones o si se les vende. 509 00:38:20,660 --> 00:38:25,720 >> Para hacer frente a la fecha, hay un par de maneras que usted puede hacer esto. 510 00:38:25,720 --> 00:38:28,820 PHP tiene una manera de hacer el seguimiento de la fecha, que se puede ver a ti mismo. 511 00:38:28,820 --> 00:38:33,990 En SQL también se puede utilizar ya sea ahora o indicación de la hora actual. Eso depende de ti. 512 00:38:33,990 --> 00:38:40,720 Sólo asegúrese de que cada vez que un usuario compra o vende, se le actualiza su dinero 513 00:38:40,720 --> 00:38:46,750 en la tabla de usuarios, se le actualiza las filas en la tabla de carteras, 514 00:38:46,750 --> 00:38:50,900 entonces también estaremos actualizando la historia, 515 00:38:50,900 --> 00:38:56,260 por lo que van a ser de 3 consultas individuales de SQL que se le llaman allí. 516 00:38:58,640 --> 00:39:01,530 Tenemos un montón de funcionalidad ahora. 517 00:39:01,530 --> 00:39:10,600 >> Sólo un par de recordatorios de que en su archivo de índice, usted desea establecer el vínculo por lo menos su - 518 00:39:10,600 --> 00:39:15,550 pero usted querrá permitir a un usuario para acceder a la página buy.php. 519 00:39:15,550 --> 00:39:23,560 Eso va a permitir a un usuario - buy.php es el controlador, por lo que va a cualquiera de los dos 520 00:39:23,560 --> 00:39:29,170 enviar a usted - que va a enviar a la forma que le permite mirar las cosas. 521 00:39:29,170 --> 00:39:34,420 Tenemos la historia. Hemos de cerrar la sesión, para conseguir una cita y luego vender. 522 00:39:34,420 --> 00:39:37,350 Esos son, como mínimo, lo que quiere mostrar. 523 00:39:37,350 --> 00:39:43,640 En términos de la cartera, la cartera se debe mostrar en la página de índice. 524 00:39:43,640 --> 00:39:52,050 Si vamos al índice, aquí vemos que se hace portfolio.php 525 00:39:52,050 --> 00:40:00,050 y pasa en la matriz asociativa - básicamente el título es igual a la cartera. 526 00:40:00,050 --> 00:40:02,610 Por lo tanto, este es el controlador. 527 00:40:02,610 --> 00:40:08,000 Si nos vamos a la plantilla de portfolio.php, 528 00:40:08,000 --> 00:40:18,060 entonces todo lo que tiene es - básicamente muestra un cuadro que dice, oh, este sitio está en construcción. 529 00:40:18,060 --> 00:40:23,810 Más tarde, una vez que pase en - usted puede pasar en la información, básicamente, más específico. 530 00:40:23,810 --> 00:40:27,400 En lugar de sólo el título, es probable que se pase en más cosas. 531 00:40:27,400 --> 00:40:32,010 Una vez que tenga esos valores, entonces portfolio.php puede hacer frente a esos valores 532 00:40:32,010 --> 00:40:34,490 y les imprimir en cualquier tipo de orden. 533 00:40:34,490 --> 00:40:41,660 >> Una vez que haya ejecutado la totalidad de ellos, también es necesario implementar una característica más. 534 00:40:41,660 --> 00:40:44,890 Esto se puede permitir que un usuario cambiar su contraseña, 535 00:40:44,890 --> 00:40:50,110 para restablecer su contraseña si la ha olvidado - por lo que para el restablecimiento de la contraseña, y luego 536 00:40:50,110 --> 00:40:54,560 es probable que también desee editar registrarse para que les permite especificar una dirección de correo electrónico, 537 00:40:54,560 --> 00:40:57,910 por lo que si se les olvida su contraseña, entonces se puede conseguir eso. 538 00:40:57,910 --> 00:41:02,870 Es probable que pueda entrar en su nombre de usuario, y luego un correo electrónico será enviado a ellos 539 00:41:02,870 --> 00:41:06,180 con un enlace para poder restablecer su contraseña. 540 00:41:06,180 --> 00:41:10,980 Usted puede tener algo que permite a los usuarios obtener ingresos 541 00:41:10,980 --> 00:41:12,380 cada vez que compran o venden algo, 542 00:41:12,380 --> 00:41:19,910 y, finalmente, les permiten agregar dinero a su página web. 543 00:41:19,910 --> 00:41:24,970 Sólo para ir de nuevo al concepto de los controladores y las plantillas un poco. 544 00:41:24,970 --> 00:41:31,170 Vas a tener algo así como un - por lo que tendrá un controlador de aquí. 545 00:41:31,170 --> 00:41:35,080 Ahora mismo, estamos viendo el ejemplo login.php. 546 00:41:35,080 --> 00:41:38,220 Cuando tenemos un controlador, básicamente se va a tomar 2 casos. 547 00:41:38,220 --> 00:41:42,090 Cuando tengamos los controladores, que estamos en esta pieza que también estamos tratando con tipo de 548 00:41:42,090 --> 00:41:43,880 cuando tenemos formas también. 549 00:41:43,880 --> 00:41:47,500 El controlador tendrá básicamente acciones separadas - 550 00:41:47,500 --> 00:41:53,880 uno si un formulario ya ha sido presentada, y luego dos, si el usuario se acerca a esa página 551 00:41:53,880 --> 00:41:56,870 por primera vez y todavía necesita de entrada que forma. 552 00:41:56,870 --> 00:42:02,820 >> Voy a ir a ese primer caso antes de subir al primer caso de tener la forma pulg 553 00:42:02,820 --> 00:42:12,640 Aquí decimos, si el formulario ha sido enviado con el método post - 554 00:42:12,640 --> 00:42:13,580 no te preocupes por eso un poco. 555 00:42:13,580 --> 00:42:19,780 No te preocupes por eso mucho, pero entiendo que básicamente se ocupa de esta función 556 00:42:19,780 --> 00:42:22,430 si un formulario ha sido enviado o no. 557 00:42:22,430 --> 00:42:25,640 Esta condición se cumple si un usuario ha enviado el formulario. 558 00:42:25,640 --> 00:42:45,940 Si no, entonces vamos a querer llamar login_form.php render, y luego pasar en el título. 559 00:42:45,940 --> 00:42:48,010 Este título sólo está básicamente va a aparecer en la cabecera. 560 00:42:48,010 --> 00:42:54,990 Lo que esto hace es, básicamente, dice, está bien - bueno, si un usuario va a login.php 561 00:42:54,990 --> 00:43:00,310 y en realidad no ha iniciado sesión, entonces quiero enviar a la página que tiene esa forma 562 00:43:00,310 --> 00:43:03,160 lo que les permite introducir el nombre de usuario y la contraseña. 563 00:43:03,160 --> 00:43:07,590 Luego voy a login_form, a continuación, que tiene la forma actual. 564 00:43:07,590 --> 00:43:13,750 Luego, una vez que el usuario envía esa forma, vamos a presentar a login.php 565 00:43:13,750 --> 00:43:15,840 con el método post. 566 00:43:15,840 --> 00:43:21,560 Luego de hecho voy a entrar en esta sección de mi if-else bucle. 567 00:43:21,560 --> 00:43:29,560 Entonces, es aquí que nos ocupamos de los valores introducidos en el formulario. 568 00:43:29,560 --> 00:43:32,800 Es aquí donde nos ocupamos de ellos. 569 00:43:32,800 --> 00:43:40,860 >> Entonces una vez que usted se ocupa de esos valores - si usted está tratando con - 570 00:43:40,860 --> 00:43:46,640 decir que estamos tratando con la página quote.php donde alguien puede introducir una acción que 571 00:43:46,640 --> 00:43:49,950 que desea buscar, y luego ver que la pantalla - 572 00:43:49,950 --> 00:43:52,850 eso es algo similar aquí. 573 00:43:52,850 --> 00:43:56,070 Aquí tenemos un formulario de acceso - you'd probablemente tenga un formulario de cotización - 574 00:43:56,070 --> 00:44:00,290 pero una vez que el usuario ha hecho que la información presentada, 575 00:44:00,290 --> 00:44:04,810 entonces usted desea que el controlador pase a otra plantilla 576 00:44:04,810 --> 00:44:07,430 que les mostrará que la información real. 577 00:44:07,430 --> 00:44:11,250 Así que por aquí, entonces es probable que - 578 00:44:11,250 --> 00:44:18,830 hacia el final de su condición aquí - el si el método es igual post - 579 00:44:18,830 --> 00:44:22,520 entonces usted probablemente querrá hacer otra página - la cita show - 580 00:44:22,520 --> 00:44:28,040 que le envía a esa página - show_quote.php-- 581 00:44:28,040 --> 00:44:34,120 y luego en ese archivo hará referencia a estos valores. 582 00:44:34,120 --> 00:44:36,480 ¿Eso tiene sentido? 583 00:44:36,480 --> 00:44:40,390 >> Tenemos un controlador que básicamente se ocupa de los 2 casos - 584 00:44:40,390 --> 00:44:42,710 si usted ha entrado en un formulario o no. 585 00:44:42,710 --> 00:44:43,950 Si no se ha introducido un formulario, 586 00:44:43,950 --> 00:44:47,300 entonces se le redirigirá a ese formulario, que a su vez lo pondrá de nuevo a la página. 587 00:44:47,300 --> 00:44:54,020 Luego, una vez que tenga la información en el controlador, ese cuerpo se ocupará de que 588 00:44:54,020 --> 00:44:59,750 información si es necesario - ya sea mirando hacia arriba los valores de las acciones, 589 00:44:59,750 --> 00:45:04,150 y luego una vez que se levantó la vista y tiene esos valores en una matriz con un formato agradable, 590 00:45:04,150 --> 00:45:08,180 A continuación, puede pasar la matriz a la página de la plantilla 591 00:45:08,180 --> 00:45:10,330  que trata de la salida de esa información. 592 00:45:10,330 --> 00:45:14,680 >> Una vez más, desde su web, que va a ser divertido. 593 00:45:14,680 --> 00:45:20,310 Estamos fuera de C, así que no está limitado a la ASCII y que la producción terminal, 594 00:45:20,310 --> 00:45:21,800 así que se divierte con esto. 595 00:45:21,800 --> 00:45:24,920 Puede que sea lo más visual que quieras. 596 00:45:24,920 --> 00:45:31,860 Puede permitir a los usuarios a millones de dólares de entrada a la vez, 597 00:45:31,860 --> 00:45:34,730 o limitarlos y ser realmente significa y sólo permitirles entrar un centavo a la vez 598 00:45:34,730 --> 00:45:36,330 o algo por el estilo. 599 00:45:36,330 --> 00:45:38,550 Definitivamente, asegúrese de tener diversión con esto. 600 00:45:38,550 --> 00:45:47,030 >> El código PHP es un poco más simple en que es un poco más fácil de trazar su pseudocódigo 601 00:45:47,030 --> 00:45:50,070 en la aplicación real. 602 00:45:50,070 --> 00:45:56,320 Así que, definitivamente se divierten con esto porque es realmente nuestra última pieza CS50. 603 00:45:56,320 --> 00:46:01,150 Con esto, este fue Tutorial 7. 604 00:46:01,150 --> 00:46:04,640 Una vez que haya terminado de ver el tutorial y terminó su conjunto de procesadores, 605 00:46:04,640 --> 00:46:09,590 entonces estos también eran conjuntos de procesadores, y ahora estamos en el producto final - 606 00:46:09,590 --> 00:46:12,330 después de que recibimos a través de quiz 1. 607 00:46:12,330 --> 00:46:16,200 Entonces espero que usted puede utilizar las herramientas que he aprendido de los conjuntos de procesadores - 608 00:46:16,200 --> 00:46:21,980 no sólo la sintaxis, pero más la noción abstracta de cómo tomar una cierta - 609 00:46:21,980 --> 00:46:24,950 gusta, yo quiero hacer esto y luego implementar realmente eso. 610 00:46:24,950 --> 00:46:28,740 Aprender a luchar a través de la sintaxis y el código de distribución. 611 00:46:28,740 --> 00:46:33,020 Lectura de código de otras personas, y luego la interpretación de que el uso de las funciones ya existentes. 612 00:46:33,020 --> 00:46:37,360 >> Por lo tanto, buena suerte con el conjunto de procesadores pasado. 613 00:46:37,360 --> 00:46:39,930 Ha sido un placer para conducir las visitas guiadas. 614 00:46:39,930 --> 00:46:40,940 Espero que haya sido de ayuda para usted. 615 00:46:40,940 --> 00:46:46,560 Estos fueron Tutoriales y muchas gracias. 616 00:46:52,580 --> 00:46:56,200 [CS50.TV]