>> [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.