[REPRODUCCIÓN DE MÚSICA] ROB BOWDEN: Hi. Estoy Rob, y espero que esté listo poner acciones en esta solución. En primer lugar, vamos a echar un vistazo a registro. Así que recuerde que aquí estamos comprobando para ver si era una forma publicado en esta página. Así que lo primero que vamos que hacer es ir a la cosa. Y vamos a hacer el formulario de registro. Así que la forma de registro se va publicar en register.php. Y lo que se va a enviar? Se va a enviar un nombre de usuario que el usuario va a rellenar, una contraseña, y una confirmación - la contraseña tecleó de nuevo. Así que ahora cuando ese formulario se envía a register.php ejecutaremos este caso. En cuanto a este caso, somos los primeros ir a validar la entrada. Queremos asegurarnos de que el nombre de usuario y la contraseña no estaban vacías y que la confirmación de la realidad coincide con la contraseña. Una vez que hayamos verificado que podamos de hecho registrar el usuario. ¿Qué significa eso? Bueno, queremos insertar el usuario en nuestra base de datos. Y así es como lo haremos. Así que vamos a insertar en los usuarios mesa el nombre de usuario campos, hash, y dinero en efectivo. El valor predeterminado de dinero en efectivo va a ser de 10.000. Y vamos a pasar como nombre de usuario, nombre de usuario, a través de la Super Post mundial eso se presentó de la forma. Y vamos a cifrar la contraseña. Así que si eso tuvo éxito, entonces los resultados será no falsa. Si fallaba, entonces quiero pedir disculpas. Algo salió mal. Y lo que podría haber salido mal? Pues bien, es necesario que haya un nombre de usuario único. Y lo que la consulta podría haber fallado si el nombre de usuario ya existido en la tabla. Así que suponiendo que era un nombre de usuario único, a continuación, vamos a consultar a agarrar el Identificación de ese usuario. Recuerde que el ID es de incremento automático. Y así, si eso sucede a fallar por alguna razón, entonces queremos pedir disculpas que no podíamos agarrar la ID. Pero suponiendo que no falló, entonces cogemos el ID de lo que la consulta devolviendo almacenar de que en nuestra sesión - por lo que queremos iniciar este usuario en por almacenar el ID de la sesión superpotencia mundial, y, finalmente, redirigir a nuestro portafolio. Y eso es todo por registro. Ahora vamos a pasar a la cita. Así que la cita va a tener un conjunto muy parecido arriba. Vemos aquí que este es el código que vamos a ejecutar cuando una forma es publicado en esta página. Pero primero tenemos realmente que hace a esta forma. Así que echar un vistazo a formulario de cotización, qué campos hay? Vemos que todo presupuesto tiene es una sola cuadro de texto con el nombre de símbolo. Y así, cuando formulario de cotización se publica a quote.PHP ahora vamos a ejecutar este código. Y la única variable en nuestro super POSTE mundial va a ser símbolo. Validamos que para asegurarse de que que realmente fijan el símbolo. Y si no fuera así, decimos que usted debe proporcionar un símbolo. Suponiendo que proporcionaron un símbolo, buscamos ese símbolo. Ahora recuerde que mirar hacia arriba podría tener no desde, bueno, tal vez no era un símbolo válido para empezar. Así que si esto levantó return false, queremos pedir disculpas que el no se encontró símbolo. Una vez que hemos encontrado el símbolo, ahora nos puede hacer que la plantilla quote.PHP. Lo que se ve eso? Eso sólo va a imprimir que una parte cualquiera que sea el nombre de las poblaciones era vale cualquiera que sea el precio de las acciones es. Ahora, ¿por qué utilizamos esta htmlspecialchars funcionar? Eso es debido a que el nombre del papel y el símbolo en realidad podría contener especial caracteres que no deben ser interpretado como HTML. Muy bien, así que eso es todo por cita. Ahora queremos mirar index.php y la cartera. Pero primero que realmente se necesita para construir la mesa de carteras. Así es como vamos a hacer eso. Así que echemos un vistazo a la estructura. Y vemos que las carteras tabla va a tener un ID. Así que va a ser el usuario de ID que está insertando las acciones. Contamos con un símbolo, que va a ser el símbolo de la empresa que estamos la inserción de las acciones de. Y entonces las acciones es el número de acciones que se insertan. Así que recuerda que por la especificación de conjunto de procesadores, especificamos que ID y el símbolo - verificamos índices, ID y símbolo es la clave principal. Así que un ID de usuario y el símbolo de emparejamiento sólo debe aparecer una sola tiempo en esta tabla. Ahora vamos a ver el código. Así que ahora index.php va a agarrar todos de nuestra información de cartera y mostrar al usuario. Así que en primer lugar, vamos a agarrar el dinero en efectivo que el usuario tiene actualmente de la mesa de dinero en efectivo. Recuerde, que la consulta siempre va para devolver una matriz de matrices. Así que, aunque sólo se seleccionaron efectivo a partir de una sola fila, todavía tenemos que agarrar ese dinero mediante la indexación en el índice cero de filas y el acaparamiento de la índice efectivo. Así que ahora queremos seleccionar todas las información de la tabla carteras esa es relevante para la actualidad usuario conectado. Nosotros, por supuesto, hay que validar que que en realidad tenido éxito, lo que nos siempre debe hacer cada vez que consultamos. Una vez que tengamos toda esa información, la especificación pset nos informa de que estamos debe hacer esto con el fin de almacenar muy bien toda la información en este posiciones matriz. Así que estamos en bucle durante todo el información de la cartera, buscando el valores asociados a cada fila de la información de la cartera, y luego almacenamiento de la matriz de posición el nombre, precios, acciones y símbolo de todo asociada a dicha población. Y, por último, vamos a hacer portfolio.PHP, pasando por la cantidad de dinero en efectivo que actualmente tiene, el posiciones matriz que acabamos de construido, y el título de este página que será la cartera. Echemos un vistazo a portfolio.PHP. Y vemos que el principal interés es parte de este bucle. Así que estamos en bucle sobre las posiciones matriz, la creación de un mesa, donde la mesa - estamos poblando cada fila con la la información que ponemos dentro de la posiciones matriz. Una vez más, tenemos que usar htmlspecialchars en caso de que este símbolo o el nombre contener caracteres HTML. Y aquí estamos multiplicar el precio la cantidad de acciones que tenemos con el fin de obtener la cantidad que es actualmente un valor para el usuario. Y eso es todo por cartera. Ahora vamos a echar un vistazo a la venta. Así venta se va a volver a la formato que hemos tenido en register.php. Vemos que un formulario se va para ser publicado en esta página. Pero antes, cuando cargamos la página, vamos a hacer esto. Entonces, ¿qué está haciendo esto? Bueno, podríamos tener la página de venta tener un solo cuadro de texto que el usuario entra en este símbolo que queremos vender. Pero vamos a ser un poco más inteligente y vamos a tener una caída hacia abajo que permite al usuario seleccionar símbolos reales que ya tienen. Así que estamos llegando a la cartera del usuario. Vamos a seleccionar de carteras todos los símbolos que el usuario actualmente tiene, el actualmente usuario conectado. Hay que cerciorarse que tuvieron éxito. Y ahora vamos a lazo sobre el devuelto la información, sólo sacar cada símbolo, y su almacenamiento en esta matriz símbolos. Y ahora vamos a hacer que la forma de venta. Así que la forma de la venta va a acaba un menú desplegable, una selecta. Y cada opción en la forma de venta es va a simplemente imprimir el símbolo que nos agarramos de la mesa de carteras. Así que la forma de la venta va a someter de nuevo a sell.PHP. En cuanto a sell.PHP, este es el código eso va a ejecutar cuando nos sometemos a la página. Queremos validar que el usuario realmente entrado en un símbolo. Ahora suponiendo que lo hicieron - por lo que ahora queremos determinar cuántos comparte el usuario está realmente vendiendo y la cantidad de dinero que el usuario debe recibir para la venta de que muchas acciones. Así que agarramos el número de acciones que el usuario tiene para este símbolo. Estamos mirando hacia arriba en las carteras para la determinado usuario y el símbolo dado. Ahora asegúrese de que que en realidad devuelto una fila. Porque si no fuera así, el usuario no realmente tienen ese símbolo para vender. Suponiendo que sí tienen ese símbolo, queremos agarrar el número de acciones que tienen. Y ahora queremos ver cómo mucho cada acción vale la pena. Así que usamos la función de mirar hacia arriba. Estamos mirando hacia arriba el valor del símbolo. Suponiendo que la mirada hasta tuvo éxito, ahora vamos a actualizar en realidad todo la información. Así que queremos eliminar de las carteras las acciones que estamos vendiendo. Queremos actualizar el usuario de cantidad de dinero en efectivo. Y estamos actualizándolo por acciones veces el precio de las acciones - así que eso es la cantidad de dinero el usuario que acaba de hacer. Y ahora queremos actualizar nuestra historia. Así que no hemos echado un vistazo en la mesa de la historia todavía. Así que vamos a volver a esto. Ahora, por fin vamos a redirigir respaldar a la cartera. Ahora echemos un vistazo a compra. Por lo tanto, comprar debe ser bastante similares a vender. Vemos que estamos otra vez de ir comprobar para ver si estamos envío a esta página. Suponiendo que no estamos, estamos va a cargar el formulario de compra. Entonces, ¿qué forma de compra parece? Vemos de aquí es sólo un habitual forman eso va a someter de nuevo a buy.PHP. Y va a tener un símbolo que el usuario está entrando, el número de acciones que el usuario quiere comprar de ese símbolo, y eso es todo. Así que cuando nos sometemos de nuevo a buy.PHP, estamos ahora va a ejecutar este código. Otra vez Queremos validar que el usuario introdujo algo válido. Así que aquí nos estamos asegurando de que realmente entrado en un símbolo. Aquí nos estamos asegurando de que acciones que efectivamente ingresada. Y aquí nos estamos asegurando de que ingresó un número entero de acciones, por lo que no están tratando de comprar acciones de ABC. Ahora queremos buscar el precio de la símbolo, así que sabemos lo mucho que efectivo debe restar de usuario. Ahora vamos a seleccionar la cantidad de dinero que el usuario en realidad tiene y asegúrese de que que tuvieron éxito. Aquí estamos agarrando el dinero en efectivo. Y ahora aquí, nos estamos asegurando de que el usuario tiene suficiente dinero en efectivo. Así que si el número de acciones que el usuario quiere comprar veces el precio de cada de esas acciones es mayor que la cantidad de dinero que tenemos, entonces el usuario no puede permitirse eso. Suponiendo que el usuario tiene suficiente dinero en efectivo, ahora queremos insertar en el la cartera del usuario. Bueno, vamos a insertar en el usuario de cartera si esto pasa a ser el primera vez que el usuario está comprando que símbolo particular. Pero lo que si es que ya suceden para tener un poco de caldo de Apple? Bueno, ahora estamos haciendo uso de la en duplicar instrucción de actualización de claves. Así que esta es la razón anterior especificamos que ID y el símbolo debe ser una articulación clave primaria, por lo que si tratamos de introduzca un ID y símbolo que son ya está ahí, sólo tendremos que actualizar el acciones para incluir las nuevas acciones que el usuario está comprando. Ahora queremos actualizar la cantidad de dinero en efectivo que el usuario tiene, ya que Acabo de pasar un poco de dinero en esas acciones. Y, por último, vamos a actualizar la mesa de la historia de nuevo. Lo cual, de nuevo, vamos a ver a en un segundo. Y finalmente vamos a redirigir atrás para portfolio.PHP. Así que echemos un vistazo a la mesa de la historia. Ahora recuerde que la tabla de historia es supone hacer un seguimiento de todas las compras y vende que todos los usuarios hacen, no sólo la número actual de acciones que la los usuarios tienen, que es lo cartera es para. Así que estamos manteniendo un registro de usuario que es la compra o venta, ya sea esta transacción en particular consistió en una compra o una venta, el símbolo que está siendo comprados o vendidos, el número de acciones que estamos comprando o vendiendo, la precio de una sola acción que está siendo comprado o vendido, y por último, el tiempo de que esta compra o venta que está ocurriendo. Y esa es toda la historia información que necesitamos no perder de vista. Así que cuando nos fijamos en venta, vimos que estábamos insertando en la historia de la venta, como si estamos comprando o vendiendo, la marca de tiempo actual, y la usuario actual, el símbolo que está siendo vendido, el número de acciones que son que se vende, y el precio de el stock en este momento. Del mismo modo, en la compra, que va a parecer casi lo mismo. La única diferencia es en lugar de venta, que estamos comprando. Así que en vender y comprar, estamos insertando en la tabla historias de todo el compra y vende que están sucediendo. Así que todo history.php necesita hacer es agarrar la información de la historia mesa, asegúrese de que tuvo éxito, y hacer que esa información. Así que buscando en la plantilla history.php, la interesante información es justo aquí. Estamos bucle sobre todo de la transacciones, la impresión si esta fue una compra o venta, el formato de fecha y hora que hicimos esta transacción. Recuerde que necesitamos usar htmlspecialchars en la símbolo, por si acaso. Y, por último, el formato del número de acciones que fueron comprados y el precio de una sola acción en ese momento. Y que muestra toda la historia la información que necesitamos. Y eso es todo por este conjunto de procesadores. Mi nombre es Rob, y esto fue CS50 Finanzas.