[Música tocando] ROB BOWDEN: Oi Estou Rob, e eu espero que estea listo poñer stock nesta solución. En primeiro lugar, imos dar un ollo no rexistro. Entón recorda que aquí estamos comprobando a ver se un formulario se publicou a esta páxina. Entón o primeiro que imos que facer é ir á outra persoa. E nós imos prestar o formulario de rexistro. Así, o formulario de rexistro vai para publicar register.php. E o que é o que vai enviar? Enviará un nome de usuario que o usuario vai cubrir, un contrasinal, e unha confirmación - o contrasinal escritas de novo. Agora, cando esta forma é enviada register.php imos realizar este problema. Mirando para este caso, estamos en primeiro lugar vai validar a entrada. Queremos estar seguro de que o nome de usuario e contrasinal non estaban baleiros e que confirmación efectivamente coincide coa contrasinal. Unha vez que teñamos Comprobarase que pudermos realmente rexistrar o usuario. Que significa isto? Ben, nós queremos introducir o usuario na nosa base de datos. E é así que nós imos facelo. Entón, imos introducir os usuarios mesa o nome de usuario campos, hash e diñeiro. O valor por defecto de diñeiro será 10.000. E nós imos pasar como nome de usuario, nome de usuario, a través da super-POST global, que é enviado dende o formulario. E imos para cifrar o contrasinal. Entón, se isto sucedeu, así que resulta será non falso. Se non funciona, entón nós quero pedir desculpas. Algo deu mal. E o que podería dar mal? Ben, hai que haber un nome de usuario único. E así, a consulta pode fallar O nome de usuario xa existía na táboa. Así, supoñendo que era un nome de usuario único, entón imos ver para incorporarse o ID deste usuario. Lembre que o ID é auto-incremento. E así se isto acontecer a fallar por algún razón, entón queremos pedir desculpas que non poderiamos obter o ID. Pero supoñendo que non fallou, entón pegamos o ID de que a consulta devoltos garde que, na nosa sesión - por iso queremos rexistrar este usuario en polo almacenar o ID da sesión super-global, e, finalmente, redireccionar para o noso Cartafol. E iso é para rexistro. Agora imos pasar á cotización. Entón cita terá unha configuración realmente similar. Vemos aquí que este é o código que imos realizar cando un formulario é publicou a esta páxina. Pero primeiro temos realmente para facer esa forma. Entón, dando un ollo ao formulario de cotización, o que os campos están alí? Vemos que toda cita ten un único caixa de texto co símbolo nome. E así, cando formulario de cotización é publicada para quote.PHP imos agora a executar este código. E a única variable na nosa post super- mundial será símbolo. Nós validar que estar seguro de que realmente publicou o símbolo. E se non o fixesen, dicimos-lle debe proporcionar un símbolo. Asumindo que proporcionan un símbolo, miramos para ese símbolo. Agora lembre que a mirada se pode ter fallou xa que, ben, quizais non fose unha símbolo válido para comezar. Polo tanto, se ese ollar cara arriba retorno falso, queremos pedir desculpas que o símbolo non se atopou. Unha vez que teñamos atopado o símbolo, agora nós pode facer o modelo quote.PHP. O que isto parece? Isto só vai imprimir que unha parte de calquera que sexa o nome de stocks se vale calquera que sexa o prezo das accións é. Agora, por que usamos este htmlspecialchars funcionar? Iso porque o nome de accións e símbolo realmente pode conter especial caracteres que non debería interpretarse como HTML. Todo ben, entón iso é todo para cotización. Agora, queremos mirar index.php e carteira. Pero, primeiro, nós realmente necesitamos para construír táboa de carteiras. Vexa como imos facelo. Entón, imos dar un ollo á estrutura. E vemos que as bolsas mesa terá un ID. Entón, iso será o usuario do ID que é a inserción das accións. Temos un símbolo, que será o símbolo da empresa que estamos inserción de accións para. E entón accións é o número de accións que está a ser inserido. Entón lembre que pola especificación pset, especificamos que ID e símbolo - nós encontramos índices, ID e símbolo é a clave primaria. Así, un número de identificación de usuario e símbolo de vinculación debe aparecer só unha única tempo nesta táboa. Agora imos ollar para o código. Entón agora index.php vai pegar todo das nosas informacións e Cartafol amosar-lo para o usuario. Entón, primeiro, imos incorporarse o diñeiro que o usuario posúe actualmente desde o mesa de caixa. Lembre, esta consulta é sempre vai para voltar un array de arrays. Así, aínda que nós só seleccionado cartos desde unha soa liña, aínda necesitamos incorporarse este diñeiro, indexando no índice cero da liñas e pegar o índice de caixa. Entón, agora queremos seleccionar todo o información da táboa de bolsas que é relevante para o momento usuario conectado. Nós, por suposto, ten que validar que que realmente sucedeu, que nós que sempre facer sempre que consultar. Unha vez que temos toda esa información, especificación pset infórmanos que debe facelo, a fin de ben gardar toda a información contida neste variedade posicións. Entón, nós estamos loop para todo o información carteira, ollando para arriba o stock asociada a cada liña da información carteira, e, a continuación, almacenar na matriz posición do nome, de prezos, accións e símbolo todo asociado a ese stock. E, finalmente, imos facer portfolio.PHP, pasando o importe de diñeiro que temos actualmente, o variedade posicións que acabamos construído, e que o título deste páxina que será portfolio. Imos dar un ollo a portfolio.PHP. E vemos que a maior interesante parte é este loop. Entón, nós estamos loop sobre as posicións matriz, creando unha mesa, onde esa mesa - estamos cubrir cada liña co información que poñemos dentro do variedade posicións. Unha vez máis, temos que usar htmlspecialchars no caso de que este símbolo ou nome conter caracteres HTML. E aquí estamos multiplicándose o prezo e a cantidade de accións que temos a fin de obter o que iso é actualmente por valor para o usuario. E iso é para a carteira. Agora imos dar un ollo a vender. Entón vender vai volver á formato que tivemos en register.php. Vemos que a forma vai a publicarse a esta páxina. Pero, primeiro, cando cargar a páxina, imos facelo. Entón o que é que isto está facendo? Ben, poderíamos só ter a páxina de venda ten unha única caixa de texto que o usuario entra neste símbolo que queremos vender. Pero imos ser un pouco máis intelixente e nós imos ter unha caída abaixo que permite que o usuario seleccione símbolos reais que xa teñen. Entón, nós estamos comezando a bolsa do usuario. Imos seleccionar a partir de bolsas todos os símbolos que o usuario actualmente ten, actualmente usuario conectado. Asegúrese de que que conseguiu. E agora imos varrer o información retornadas, só incorporarse cada símbolo, e almacena-lo neste conxunto de símbolos. E agora nós imos facer a forma de venda. Así, a forma de venda vai só ser un menú desplegable, un selecto. E cada opción en forma de venda é vai só imprimir o símbolo que agarramos a partir do mesa de carteiras. Así, a forma de venda vai enviar de volta ao sell.PHP. Mirando sell.PHP, este é o código que vai executar cando nos sometemos para esta páxina. Queremos validar que o usuario realmente entrou nun símbolo. Agora supoñendo que fixeron - entón agora queremos determinar cantos comparte o usuario está realmente a ver e canto diñeiro o usuario debe obter para a venda de accións que moitos. Entón, tome o número de accións que o usuario ten a este símbolo. Estamos buscando en bolsas para o determinado usuario eo símbolo reproducir. Agora asegúrese de que, en realidade, que devolveu unha liña. Porque se non o fixo, o usuario non realmente ten ese símbolo para vender. Supoñendo que teñen este símbolo, queremos pegar o número de accións que teñen. E agora queremos mirar para arriba como moito cada acción paga a pena. Entón usamos a función ollar cara arriba. Estamos mirando para arriba o valor do símbolo. Supoñendo que se a mirada se logrou, agora imos realmente actualizar todos a información. Por iso, queremos borrar das bolsas as accións que estamos a ver. Queremos actualizar o usuario do cantidade de diñeiro. E nós estamos a actualizar-o por accións veces o prezo das accións - de xeito que é canto diñeiro o usuario acaba de facer. E agora queremos actualizar a nosa historia. Entón, nós non tomaron un ollo na mesa da historia aínda. Entón, nós imos voltar a este. Agora, por fin, imos redireccionar volver ao portfolio. Agora imos dar un ollo na compra. Así, mercar debe ser moi semellante a vender. Vemos que imos de novo comprobar a ver se estamos someterse a esta páxina. Supoñendo que se non estamos, estamos indo para cargar o formulario de compra. Entón, o que a forma de compra parece? Vemos aquí é só un estándar formar que vai enviar de volta ao buy.PHP. E terá un símbolo que o usuario está a entrar, o número de accións que o usuario quere mercar dese símbolo, e é iso. Entón, cando nos sometemos ao buy.PHP, estamos agora indo a executar este código. Volvemos a querer validar que o usuario escribiu algo válido. Entón, aquí estamos asegurarse de que realmente entrou nun símbolo. Aquí estamos asegurarse de que eles accións efectivas inscritas. E aquí estamos asegurarse de que eles escribiu un número enteiro de accións, de xeito eles non están tentando mercar accións ABC. Agora, queremos mirar para arriba o prezo do símbolo polo que sabemos canto diñeiro nós debe restar do usuario. Agora imos seleccionar o que de diñeiro o usuario realmente ten e asegurarse de que que conseguiu. Aquí estamos pegando o diñeiro. E agora, aquí, estamos asegurarse de que o usuario ten diñeiro suficiente. Entón, se o número de accións que o usuario quere mercar veces o prezo de cada destas accións é maior que o cantidade de diñeiro que temos, entón o usuario non pode permitir iso. Supoñendo que se o usuario ten diñeiro suficiente, agora queremos introducir na bolsa do usuario. Ben, imos introducir o usuario do carteira, se este pasa a ser primeira vez que o usuario está a mercar que o símbolo particular. Pero e se eles xa acontecen ter algún stock Apple? Pois ben, agora estamos facendo uso da en duplicar declaración clave de actualización. Entón é por iso máis cedo, especificou que ID e símbolo debe ser un conxunto chave primaria, a fin de que se intentamos introducir un ID e símbolo de que son xa está aí, imos actualizar o accións para incluír as novas accións que o usuario está a mercar. Agora queremos actualizar a cantidade de diñeiro que o usuario ten, xa que só pasei un diñeiro nestas accións. E, finalmente, imos actualizar táboa a historia de novo. O que, unha vez máis, imos dar un ollo a en un segundo. E, finalmente, imos redireccionar volver ao portfolio.PHP. Entón, imos dar un ollo táboa de histórico. Agora lembre que a táboa de historia é debería manter o control de todas as compras e vende que todos os usuarios fan, non só o número actual de accións que o os usuarios teñen, que é o que portfolio é para. Entón, nós estamos mantendo o control do usuario que está a mercar ou vender, se esta transacción particular, foi unha compra ou unha venda, o símbolo que está a ser , O número de accións compradas ou vendidas que estamos a mercar ou vender, a prezo dunha única acción que está a ser mercar ou vender, e, finalmente, o tempo de que esa compra ou venda se produciron. E iso é todo da historia información de que precisamos para acompañar. Así, cando miramos para venda, vimos que fomos introducindo na historia de venda, coma se estamos a mercar ou vender, o selo de tempo actual, eo usuario actual, o símbolo que está a ser vendidos, o número de accións que son a ser vendido, eo prezo de o stock neste momento. Do mesmo xeito, en mercar, que vai ollar case o mesmo. A única diferenza é que en vez de venda, estamos a mercar. Así, en vender e mercar, estamos introducindo táboa de historias de todo compra e vende que están pasando. Entón todo history.php que facer é coller a información da historia mesa, comprobe que conseguiu, e prestar esa información. Entón, ollando para o modelo history.php, a información interesante é aquí mesmo. Estamos loop para todo o transaccións, a impresión que esta foi un comprar ou vender, o formato de data e hora que fixemos esta transacción. Lembre-se de que necesitamos usar htmlspecialchars no símbolo, só no caso. E, finalmente, o número de formato accións que foron compradas eo prezo dunha única acción naquel momento. E iso demostra toda a historia información de que precisamos. E iso é para este pset. O meu nome é Rob, e este foi CS50 Finanzas.