[Música tocando] ROB BOWDEN: Oi. Estou Rob, e eu espero que você esteja pronto colocar estoque nesta solução. Primeiro, vamos dar uma olhada no registo. Então lembre-se que aqui estamos verificando para ver se um formulário foi postou a esta página. Então a primeira coisa que vamos a fazer é ir para a outra pessoa. E nós vamos prestar o formulário de registo. Assim, o formulário de registo vai para postar register.php. E o que é que vai enviar? Vai enviar um nome de usuário que o usuário vai preencher, uma senha, e uma confirmação - a senha digitada novamente. Agora, quando essa forma é enviada para register.php vamos executar este caso. Olhando para este caso, estamos em primeiro lugar vai validar a entrada. Queremos ter certeza de que o nome de usuário e palavra-passe não estavam vazios e que a confirmação efectivamente coincide com a senha. Uma vez que tenhamos verificado que pudermos realmente registrar o usuário. O que significa isso? Bem, nós queremos inserir o usuário em nosso banco de dados. E é assim que nós vamos fazer isso. Então, vamos inserir os utilizadores mesa o nome de usuário campos, hash e dinheiro. O valor padrão de dinheiro vai ser 10.000. E nós vamos passar como nome de usuário, nome de usuário, por meio da super-POST global, que é enviado a partir do formulário. E vamos para criptografar a senha. Então, se isso sucedeu, então resulta será não-falso. Se ele falhar, então nós quero pedir desculpas. Algo deu errado. E o que poderia ter dado errado? Bem, é preciso haver um nome de usuário único. E assim, a consulta pode ter falhado se o nome de usuário já existia na tabela. Assim, supondo que era um nome de usuário único, então vamos consultar para pegar o ID desse usuário. Lembre-se que o ID é auto-incremento. E assim se isso acontecer a falhar por algum razão, então queremos pedir desculpas que não poderíamos pegar o ID. Mas supondo que ele não falhou, então pegamos o ID do que a consulta devolvidos guarde que, em nossa sessão - por isso queremos registrar este usuário em pelo armazenar o ID da sessão super-global, e, finalmente, redirecionar para nosso portfólio. E é isso para registo. Agora vamos passar para a cotação. Então citação vai ter uma configuração realmente similar. Vemos aqui que este é o código que vamos executar quando um formulário é postou a esta página. Mas primeiro nós temos realmente para tornar essa forma. Então, dando uma olhada no formulário de cotação, o que os campos estão lá? Vemos que toda citação tem um único caixa de texto com o símbolo nome. E assim, quando formulário de cotação é publicada para quote.PHP vamos agora para executar este código. E a única variável em nosso post super- mundial vai ser símbolo. Nós validar que ter certeza de que eles realmente postou o símbolo. E se não o fizessem, nós dizemos-lhe deve fornecer um símbolo. Assumindo que proporcionam um símbolo, olhamos para esse símbolo. Agora lembre-se que o olhar se pode ter falhou uma vez que, bem, talvez não fosse uma símbolo válido para começar. Portanto, se esse olhar para cima retorno falso, queremos pedir desculpas que o símbolo não foi encontrado. Uma vez que tenhamos encontrado o símbolo, agora nós pode tornar o modelo quote.PHP. O que isso parece? Isso só vai imprimir que uma parte de qualquer que seja o nome de estoques foi vale a pena qualquer que seja o preço das ações é. Agora, por que nós usamos este htmlspecialchars funcionar? Isso porque o nome de ações e símbolo pode realmente conter especial caracteres que não deveria ser interpretado como HTML. Tudo bem, então isso é tudo para cotação. Agora, queremos olhar para index.php e carteira. Mas, primeiro, nós realmente precisamos para construir tabela de carteiras. Veja como vamos fazer isso. Então, vamos dar uma olhada na estrutura. E vemos que as carteiras mesa vai ter um ID. Então, isso vai ser o usuário do ID que é a inserção das ações. Temos um símbolo, que vai ser o símbolo da empresa que estamos inserção de ações para. E então ações é o número de ações que está sendo inserido. Então lembre-se que por a especificação pset, especificamos que ID e símbolo - nós verificamos índices, ID e símbolo é a chave primária. Assim, um ID de usuário e símbolo de emparelhamento deve aparecer apenas uma única tempo nesta tabela. Agora vamos olhar para o código. Então agora index.php vai pegar todos de nossas informações e portfólio exibi-lo para o utilizador. Então, primeiro, vamos pegar o dinheiro que o usuário possui atualmente a partir do mesa de caixa. Lembre-se, essa consulta é sempre vai para retornar um array de arrays. Assim, mesmo que nós só selecionado dinheiro a partir de uma única linha, ainda precisamos pegar esse dinheiro, indexando no índice zero da linhas e pegar o índice de caixa. Então, agora queremos selecionar todo o informações da tabela de carteiras que é relevante para o momento usuário conectado. Nós, naturalmente, precisa validar que que realmente sucedeu, que nós deve sempre fazer sempre que consultar. Uma vez que temos toda essa informação, a especificação pset nos informa que nós deve fazer isso, a fim de bem guardar todas as informações contidas neste variedade posições. Então, nós estamos loop para todo o informações carteira, olhando para cima o estoque associada a cada linha da informações carteira, e, em seguida, armazenar na matriz posição do nome, de preços, ações e símbolo tudo associado a esse estoque. E, finalmente, vamos tornar portfolio.PHP, passando o montante de dinheiro que temos atualmente, o variedade posições que acabamos construído, e que o título deste página que será portfolio. Vamos dar uma olhada em portfolio.PHP. E vemos que a maior interessante parte é este loop. Então, nós estamos loop sobre as posições matriz, criando uma mesa, onde essa mesa - estamos preencher cada linha com o informações que colocamos dentro do variedade posições. Mais uma vez, precisamos usar htmlspecialchars no caso de este símbolo ou o nome conter caracteres HTML. E aqui estamos multiplicando-se o preço e a quantidade de ações que temos a fim de obter o quanto isso é atualmente no valor para o usuário. E é isso para a carteira. Agora vamos dar uma olhada em vender. Então vender vai voltar para a formato que tivemos em register.php. Vemos que a forma vai a ser publicado para esta página. Mas, primeiro, quando carregar a página, vamos fazer isso. Então o que é que isto está fazendo? Bem, nós poderíamos apenas ter a página de venda tem uma única caixa de texto que o usuário entra neste símbolo que queremos vender. Mas vamos ser um pouco mais inteligente e nós vamos ter uma queda para baixo que permite que o usuário selecione símbolos reais que eles já têm. Então, nós estamos começando a carteira do usuário. Vamos selecionar a partir de carteiras todos os símbolos que o utilizador atualmente tem, atualmente usuário conectado. Certifique-se que que conseguiu. E agora vamos varrer o informações retornadas, apenas pegar cada símbolo, e armazená-lo neste conjunto de símbolos. E agora nós vamos tornar a forma de venda. Assim, a forma de venda vai apenas ser um menu drop-down, um seleto. E cada opção na forma de venda é vai apenas imprimir o símbolo que nós agarramos a partir do mesa de carteiras. Assim, a forma de venda vai enviar de volta ao sell.PHP. Olhando sell.PHP, este é o código que vai executar quando nos submetemos para esta página. Queremos validar que o usuário realmente entrou em um símbolo. Agora supondo que eles fizeram - então agora queremos determinar quantos compartilha o usuário está realmente vendendo e quanto dinheiro o usuário deve obter para a venda de ações que muitos. Então, pegue o número de ações que o usuário tem para este símbolo. Estamos buscando em carteiras para o determinado usuário e do símbolo reproduzido. Agora certifique-se de que, na verdade, que retornou uma linha. Porque se não o fez, o usuário não realmente tem esse símbolo para vender. Supondo que eles têm esse símbolo, queremos pegar o número de ações que eles têm. E agora nós queremos olhar para cima como muito cada ação vale a pena. Então nós usamos a função olhar para cima. Nós estamos olhando para cima o valor do símbolo. Supondo-se que o olhar se conseguiu, agora vamos realmente atualizar todos a informação. Por isso, queremos excluir das carteiras as ações que estamos vendendo. Queremos atualizar o usuário do quantidade de dinheiro. E nós estamos atualizando-o por ações vezes o preço das ações - de modo que é quanto dinheiro o usuário acabou de fazer. E agora queremos atualizar nossa história. Então, nós não tomaram uma olhada na mesa da história ainda. Então, nós vamos voltar a este. Agora, finalmente, vamos redirecionar voltar para o portfolio. Agora vamos dar uma olhada na compra. Assim, comprar deve ser bastante semelhante a vender. Vemos que vamos novamente verificar para ver se estamos submeter-se a esta página. Supondo-se que não estamos, estamos indo para carregar o formulário de compra. Então, o que a forma de compra parece? Nós vemos aqui é apenas um regular formar que vai enviar de volta ao buy.PHP. E vai ter um símbolo que o utilizador está a entrar, o número de ações que o usuário quer comprar desse símbolo, e é isso. Então, quando nos submetemos volta para buy.PHP, estamos agora indo para executar este código. Voltamos a querer validar que o usuário digitou algo válido. Então, aqui estamos certificando-se que realmente entrou em um símbolo. Aqui nós estamos certificando-se que eles ações efectivamente inscritas. E aqui estamos certificando-se que eles digitou um número inteiro de ações, de modo eles não estão tentando comprar ações ABC. Agora, queremos olhar para cima o preço do símbolo por isso sabemos quanto dinheiro nós deve subtrair do usuário. Agora vamos selecionar o quanto de dinheiro o usuário realmente tem e se certificar de que que conseguiu. Aqui nós estamos pegando o dinheiro. E agora, aqui, estamos certificando-se que o usuário tem dinheiro suficiente. Então, se o número de ações que o usuário quer comprar vezes o preço de cada dessas ações é maior que o quantidade de dinheiro que temos, então o usuário não pode permitir isso. Supondo-se que o usuário tem dinheiro suficiente, agora queremos inserir na carteira do usuário. Bem, vamos inserir o usuário do carteira, se este passa a ser o primeira vez que o usuário está comprando que o símbolo particular. Mas e se eles já acontecem ter algum estoque Apple? Bem, agora estamos fazendo uso da em duplicar declaração chave de atualização. Então é por isso mais cedo, especificou que ID e símbolo deve ser um conjunto chave primária, a fim de que se tentarmos inserir um ID e símbolo de que são já está lá, vamos atualizar o ações para incluir as novas ações que o usuário está comprando. Agora queremos atualizar a quantidade de dinheiro que o usuário tem, uma vez que eles só passei algum dinheiro nessas ações. E, finalmente, vamos atualizar tabela a história novamente. O que, mais uma vez, vamos dar uma olhada a em um segundo. E, finalmente, vamos redirecionar voltar ao portfolio.PHP. Então, vamos dar uma olhada tabela de histórico. Agora lembre-se que a tabela de história é deveria manter o controle de todas as compras e vende que todos os usuários fazem, não apenas o número atual de ações que o os usuários têm, que é o que portfolio é para. Então, nós estamos mantendo o controle do usuário que está comprando ou vendendo, se esta transação particular, foi uma compra ou uma venda, o símbolo que está sendo , o número de ações compradas ou vendidas que estamos comprando ou vendendo, a preço de uma única ação que está sendo comprado ou vendido, e, finalmente, o tempo de que essa compra ou venda está ocorrendo. E isso é tudo da história informações de que precisamos para acompanhar. Assim, quando olhamos para venda, vimos que fomos inserindo na história de venda, como se nós estamos comprando ou vendendo, o carimbo de tempo atual, eo usuário atual, o símbolo que está sendo vendidos, o número de ações que são sendo vendido, eo preço de o stock neste momento. Da mesma forma, em comprar, ele vai olhar quase o mesmo. A única diferença é que em vez de venda, estamos comprando. Assim, em vender e comprar, estamos inserindo tabela de histórias de todos os compra e vende que estão acontecendo. Então tudo history.php precisa fazer é agarrar a informação da história mesa, verifique se ele conseguiu, e prestar essa informação. Então, olhando para o modelo history.php, a informação interessante é aqui mesmo. Estamos loop para todo o transações, a impressão se esta foi um comprar ou vender, a formatação de data e hora que fizemos esta transação. Lembre-se de que precisamos usar htmlspecialchars no símbolo, apenas no caso. E, finalmente, o número de formatação ações que foram compradas eo preço de uma única ação naquele momento. E isso mostra toda a história informações de que precisamos. E é isso para este pset. Meu nome é Rob, e este foi CS50 Finanças.