Transcrições
1. Vídeo de boas-vindas: Oh, olá aí. Bem-vindo a como criar um sistema de login e registro do PHP usando o Ajax. Neste curso, vamos aprender como usar JavaScript, Jake cansado Ajax PHP meu SQL e obter para o nosso controle de versão. Faremos com que todos os nossos pedidos do Ajax retornem objetos do Jason. Então, se você não está familiarizado com Jason, enquanto este é o momento perfeito para obter suas mãos pouco sujando a prática com Jason, este curso inteiro é um grande projeto. Este é um projeto da vida real que você pode usar em todos os sites no futuro, e este código é 100% aplicável a todos os seus projetos. Todos os seus sites que você construirá agora estarão criando um sistema de registro,
um sistema de registro,
um sistema de log out e uma área única para membros. Então as pessoas têm que ser assinadas. Depois que você se registrou para ver essas páginas perto do final do curso, vamos transformar parte do código em funções, e então vamos em frente e transformar essas funções em classes que
suja suas mãos com algum objeto orientado programação. Agora, se você não está familiarizado com programação orientada a objetos ou OP. Então, novamente, este é um ótimo momento para ser apresentado a ele. Agora também estaremos atualizando seu conhecimento SQL. Então, se você está usando meu peço-vos aliado neste curso, o que nós vamos aprender é DOP, que é a versão Hopi do meu pedido. Você percebe que é muito mais limpo e muito mais seguro. Olá, meu nome é Caleb dizendo que sou seu instrutor para este curso. Ensinei mais de 38.000 alunos e contando, e esse número parece crescer uns 1000 a cada mês. E eu tenho implantado sites por quase duas décadas inteiras. Se você pode acreditar que agora, algo que os alunos dizem que realmente gostam em mim é a minha capacidade de pegar uma idéia complexa ou um problema complexo e realmente dividi-la em pedaços menores e
mais fáceis de entender de uma maneira que você pode realmente aprender e absorver. E isso é exatamente o que vamos fazer neste curso. Agora, este curso é definitivamente para você. Se você está interessado em Ajax PHP meu SQL I ou se você está interessado em apenas criar um membro único tipo de site como Facebook onde você tem que se registrar, a fim de realmente entrar. Ou, se você quiser aprender a usar, entre no cenário real de codificação da vida rial. Agora, fazendo este curso, o que você obterá é 24 7 Acesso a todos os vídeos HD. Obtenha exemplos de código para download após cada aula para que você possa acompanhar cada lição. Passo a passo e você realmente obter a fonte de código completo. É sobre Get hub. Agora é código aberto, e você pode ver exatamente o que usei. Então não há nada disso nos bastidores. Agora. Estou realmente ansioso para compartilhar meu conhecimento com você, e se você estiver interessado neste curso ou em qualquer parte deste curso, vá em frente, clique no botão de inscrição e eu o verei por dentro.
2. Introdução: Alô? Olá. Quão baixo? Bem-vinda. Bem-vinda. Bem-vinda. Neste curso, vamos aprender como criar um sistema de login e registro. Mas vamos usar PHP,
Jake, Riri, Riri, Ajax e meu SQL para o banco de dados. Vamos criar um sistema de registro porque quando você não conseguir entrar, se você não tiver uma conta, então vamos cobrir isso também. Nós vamos estar usando você. Eu criança em vez do bootstrap típico ou fundação para o framework front-end. Só porque não estamos interessados em escrever um monte de HD Miller, CSS sabe o curso. Este curso foi projetado para ensiná-lo como fazer login e como se registrar. Registre um novo usuário usando PHP. Não foi projetado para ser um site bonito. Não, o que é necessário neste curso? Bem, você deve estar bastante familiarizado com alguns HTML CSS um pouco de javascript, mas você sabe o que? Se não estiver, tudo bem, porque não vamos entrar nessas coisas. Não vamos entrar em JavaScript
avançado. O que vamos estar usando é consulta J, que é uma coisa bastante simples. Se você não sabe o que determinada função no deserto Javascript não faz, Uh, Google it. A mesma coisa com o PHP. Estamos indo para Nós vamos estar passando muito nesta lição ou neste curso em vez disso E apenas sinta-se livre para postar vídeo sempre que você vê algo que você não sabe o que ele faz. Se é PHP JavaScript para o meu SQL. Se você não sabe o que ele faz, pausar. Ah, e vá e pesquise. Agora. Nessa nota, eu tenho outro curso chamado o curso final do desenvolvedor HTML. Ah, e é tudo sobre aprender. Apenas html. Eu tenho outro curso chamado JavaScript Essentials. Você pode realmente obter cerca de metade dele no YouTube agora de graça e a outra metade. Se você quiser, você pode simplesmente digitar o tipo de máquina do Google em JavaScript essenciais. Caleb contando. Basta colocar meu nome lá, e você provavelmente vai encontrar algum onde você vai encontrar o curso completo de qualquer maneira. Ah, e se você está interessado em toda a pilha de lâmpadas, isso é a roupa de cama. Apache, minha pilha SQL e PHP. Eu tenho outro curso chamado The Complete Web Developer course, que você pode adivinhar no YouTube. Absolutamente grátis É 18 horas de duração É um pouco mais velho, mas é você sabe que é velho, mas é ouro tem um monte de informações úteis lá é um ir verificar que, também, Se você nunca ficar preso, Há um monte de informações que eu forneci gratuitamente na Internet. Além disso, toda a Internet está lá para ajudar agora sobre este curso? Este curso não deve ser muito longo. Vai ser muito rápido. Então, novamente, pause quando você precisa ir no Google algo. Se você precisa do Teoh, você não precisa assistir todo o vídeo e lembrar de tudo. Primeiro tiro, você pode assistir o mesmo vídeo três ou quatro vezes você pode ir e aprender algo novo e você pode voltar. Essa é a beleza dos cursos online. isso,
por favor , isto vai ser rápido. Então, Então, faça uma pausa no Google se precisar. A última coisa que você precisa saber sobre este curso é que ele estará vindo com um código, então no final dele, você terá acesso a todo o código que estamos usando. Provavelmente até vou vomitar no “Levante-se “para que você consiga todo o código de graça lá dentro. Nós vamos estar usando get realmente apenas um pouquinho. Eu não vou entrar em como obter é usado desnecessariamente. Pode entrar em algumas explicações básicas, mas nada avançado. E por último, vamos escrever funções PHP. Então, em vez de classes, estavam escrevendo funções para começar. Só porque isso é mais fácil para nós envolvermos nossas cabeças porque este é um
projeto muito pequeno . Nós realmente só precisamos escrever funções agora. Perto do final do curso, eu poderia acabar transformando todas essas funções em classes sobre colocá-los em get Hub para que você possa ver como tudo funciona e você pode baixá-lo e jogar com ele e todas essas coisas
boas. Mas, por enquanto, vamos ficar com funções só porque vai ser agradável e simples. Então, com tudo isso dito, vamos em frente e começar agora
3. Primeiros passos com Git: Olá. Olá. Olá. Nesta lição, nós vamos estar aprendendo sobre como nos preparar com nosso projeto antes de realmente fazermos qualquer outra coisa. Que a razão pela qual queremos fazer isso é porque ele é ótimo para controle de versão. Você pode ver quem fez alterações em qual código Se nós errarmos em algum momento, nós simplesmente não queremos gastar uma hora depurando seu código. Podemos sempre recuar e ir encontrar o insecto. Podemos olhar para as diferentes versões de diferentes arquivos em diferentes momentos no tempo. Em que é realmente a torre de Get Now por que é útil como um desenvolvedor individual pode não ser. É só um plano de backup, caso seu computador falhe ou algo assim. Mas como uma equipe, é absolutamente vital porque você e outras pessoas podem trabalhar no mesmo projeto ao mesmo tempo e incorporar o trabalho uns dos outros juntos. Nós não vamos fazer isso, e este curso não é, ah, obter curso. Mas quero que você se familiarize com Get agora. Se você está familiarizado com, obter incrível. Basta ignorar o este obter coisas Se você não está familiarizado com get No entanto, esta é provavelmente muito boa prática. Esta é uma pequena introdução ao mundo do Kit. Então, sem mais delongas. Vamos olhar para o nosso site. Temos anfitrião local. Esse é o meu site. Aqui é onde eu vou construir o sistema de log in. Está na minha máquina local e se você notou, estou usando seu pão também. Estou usando Lennox. Você não tem que fazer isso. Você pode usar janelas. Você pode usar o host local do Mac funciona da mesma maneira. Você também pode usar um servidor na nuvem que você pode usar. Aws Ah apresentador Gaber Host Gator Rather Ah Lin devia Digital Ocean qualquer que fosse uma canção. Isto está a correr? Basicamente Linux Apache, My SQL On PHP Você não pode usar janelas bem em vez de Lennox toe host este ambiente, mas é apenas um pouco mais de um pé no saco. Vamos buscar o Hub. A primeira coisa que queremos fazer é criar um novo repositório. Bem, quero dizer, se você não tem uma conta, criar uma conta e criar um novo repositório, o nome do repositório para este será apenas o sistema PHP Loggins Nada fantasia um exemplo de log in system com registro de usuário, público ou privado. Quero dizer, é como público porque eu quero que vocês sejam capazes de ver esta cabra. Eu também não quero pagar por um Rebo privado, Abreviação para repositório, que é basicamente o meu casaco é para cima na nuvem inicializado este repositório com o me
ler? Sim, poderia muito bem um criador Leia-me para mim se é um pouco menos trabalho que eu tenho que fazer Awesome. Faça isso por mim. Criar repositório. Agora, eu tenho um relatório. Se eu for para obter hub dot com slash kale italiano slash PHP log in system. Terei o meu sistema de login. Aqui está o nome. Aqui está a descrição. Nada extravagante, mas queremos é este botão verde aqui diz clone ou download kun com ssh significa que get hub tem minhas chaves ssh, que essencialmente só significa que get hub sabe que meu computador foi autenticado. Não preciso mais digitar minha senha de nome de usuário. Só sabe quem eu sou. Se você não tem essa opção se você não sabe o que é tudo
isso, tudo bem. Você pode usar o método https, e você notou que o earl realmente muda vai de Get out, get out dot com dois-pontos kill italiano nome do projeto para usar https, que é https dois-pontos barra barra get hub dot com barra nome do usuário barra projeto para que você possa apenas usar https e disse, E ele só vai pedir-lhe para o seu nome de usuário get hub. Ah, e sua senha, e tudo bem. Get Hub é muito confiável. Você pode enviar-lhes essa informação. Mas lembre-se, você precisa obter ajuda para que isso realmente funcione. Agora eu vou usar o S H um porque eu não quero gravar em meu nome de usuário e minha senha cada vez que fazemos qualquer coisa com get então nós vamos apenas pular esse
estágio inteiro e eu vou copiar este ano onde eu vou para o meu console e digite get clonar o sistema
de login do PHP. Então tudo o que fiz foi clonar todo o projeto que estou usando o shur também saber quem eu sou. E este é o diretório que eu quero que ele vá para. Eu realmente não quero chamá-lo de sistema. É chamado PHP Log no curso, eu acho que Hit. Digite roupas no PHP Log No curso, tudo é bom lá. Eu não vejo nenhum herdeiro CD PHP Logging curso Al l ou L A Stash A ou L s Dash L A. Todas essas opções diferentes mostram suas pastas diferentes. Agora temos 11 pasta para cima. Hum, nós temos a nossa pasta de obter, que é onde obter todas as suas mudanças, hum, e sua história e tudo mais. E então temos que Leia-me Agora que Leia-me. Esse arquivo é incrível que me leia ponto MD Agora abra Sublime. Eu tenho o curso de log PHP, e eu só tenho um arquivo. Agora, meu computador tem exatamente o mesmo código que o Get Hub tem. Isso é muito legal. Agora vamos fazer o nosso primeiro compromisso. Então o que queremos dio é criar um novo arquivo index dot PHP se eu pudesse soletrar esse direito para ser ótimo. Agora, isso é o que a página de índice se parece antes de eu criar o arquivo PHP index dot. E quando atualizo agora que tenho um arquivo de índice, nada aparece. Incrível. PHP echo. Olá, mundo. Se você não está familiarizado com muito PHP, tudo bem. Você realmente não precisa ser este curso e super avançado ou qualquer coisa em. Vamos ficar mais avançados à medida que avançarmos. Vai ser uma ótima curva de aprendizagem para você. Salvar. Atualize a página. Olá, mundo. Lá vamos nós. Nós temos nossa primeira página, mas se formos para obter eu apenas atualizar a página e não há nenhum arquivo PHP index dot. Eu tenho um índice de arquivos PHP. Por quê? Por que não tem isso? Bem, é porque não dissemos ao Get para baixar o arquivo de nós, ou melhor, não
contamos. empurrar nosso código para obter o hub dot com, então voltamos para o nosso terminal, eles obtiveram status, e temos arquivos não rastreados. Nós só temos um arquivo não rastreado, então obtenha o índice de anúncios PHP. Obter status novamente. Agora está em verde em vez de vermelho e diz novo arquivo impressionante. Agora, se eu voltar para obter hub e atualizar a página, adivinha? O código ainda não está lá. Bem, por que isso? Porque tudo o que fizemos foi encenar o código. Isso significa que está se preparando para ser empurrado para ser abraçado. Em vez disso, se estivéssemos editando 203 100 arquivos de cada vez, se estivéssemos usando algum ah, nenhum sistema de front-end NPM com grunhido ou gulp, talvez um compilador SAS, ele poderia editar uma tonelada de arquivos ao mesmo tempo, e talvez não queiramos empurrar todas essas mudanças. Só queremos empurrar o único arquivo. Era tudo o que queríamos agora. Então, agora que isso está em verde, nós digitamos obter status. Ótima. Então, qualquer coisa que é quando nós apenas lá realmente, qualquer coisa que está em verde significa esse palco. Obter cometer eles. Vamos chamar isso de “Olá Mundo”. Então get é um comando para executar. Qualquer comando get commit é basicamente a função a ser executada. É preciso um parâmetro traço M, e essa é a mensagem que vamos dar a ele. Eu apertei obter LG agora, que é um costume comandado disse que você poderia digitar log basicamente mostra a mesma coisa , mas tem o seu endereço de e-mail lá. Só gosto de ver este porque nos mostra onde está e onde estamos. Origin Master é onde get hub é Origin Head é onde get Hub pensa que é. E a nossa cabeça não origem. Slash tinha apenas nossa cabeça está em um estágio diferente. Agora vamos voltar para obter a página de atualização. Adivinha o quê O código. Ainda não está lá agora. Por que é isso? Bem, mais uma vez fizemos o compromisso. Demos uma mensagem a ele. Dissemos: “
Sim, Sim, isto está pronto para o apanhar, mas não o enviámos para o Hub, por isso precisamos de
mais um comando. Eu sei que isso soa como um monte de comandos, mas uma vez que você se acostumar com
isso, é super rápido. Então nós digite obter origem push, Mestre O que ele fez lá foi contar o número de objetos que temos número de arquivos. Essencialmente, ele está usando métodos de compactação Delta basicamente para compactar ou arquivo para que eles não
precisam . Você sabe, ele não tem que enviar dois gigabytes para obter hub cada vez. Pode comprimir isso em algo menor, por isso é muito mais rápido. Objetos de compressão 100% para ter dois objetos de escrita impressionantes. Escreveu alguns objetos para nós. Onde está indo? Vai para onde dissemos para ir. Aqui é onde clonamos nosso repo. Agora, quando vamos para obter hub, atualizar a página Agora é quando nosso código vai aparecer. Olhe para isso. Temos index dot PHP e tem a nossa mensagem aqui. Até tem o nosso tempo. Então, se nós clicamos em Olá mundo, poderíamos ver o que foi adicionado o que não estava nele? Se voltarmos, podemos clicar no índice PHP e podemos realmente ver o casaco. Agora isso combina com o que é agora se eu digitar teste aqui, que apenas texto normal, certo? E voltamos aqui e atualizamos nada vai acontecer e isso é porque não
dissemos que há mudanças ainda, então passaríamos por todo esse processo novamente. Vamos fazer isso algumas vezes através deste curso vai ser muito familiar para você novamente . Este não é um curso baseado em get, mas nós só queremos ter um projeto configurado com get para que possamos ter versões diferentes e você pode ver se você queria, você poderia ver o histórico de nossos arquivos. Então isso é ser configurado com. Se você quiser, você poderia seguir este procedimento todo com sua própria conta. Você não precisa usar o nome exato do sistema de login PHP. Você poderia chamar o que quiser e apenas criar seu primeiro arquivo e basicamente comprometido. Coloque-o na sua área de preparação e, em seguida, empurre-o para cima para obter. E uma vez que esteja lá, você está pronto para seguir em frente para a próxima lição. Se você já está familiarizado com get e você não quer fazer essas coisas totalmente bem e vamos vê-lo no próximo vídeo.
4. Página de login e configuração HTML: Tudo bem, agora estamos prontos para ir em frente e preparar nosso projeto com você. Eu kit. Agora, eu sei que muita gente quer aprender Bootstrap, e isso é fantástico. Mas você gosta quando se trata de apenas chicotear um site. Realmente, muito rápido é extremamente poderoso. Bootstrap é extremamente poderoso. Não me entenda mal. A Fundação é fantástica. Todos esses frameworks são incríveis, mas você gosta dele só tem aquele pequeno toque extra. Tudo bem, então o que você vê na sua frente é apenas a nossa estrutura básica html. Certo? Então temos o nosso tipo de doc é html de cinco maneiras. Tem a cabeça dela. Temos o corpo dela. Hum, nós temos um título lá. Tudo o que fiz foi ligar você eu kit CSS para nós usando o Cloudflare. Eu também coloquei em Jake cansado em e você gosta min dot Js e seus ícones Dodgy s. Agora, se você não sabe como eu tenho que ir para você como ele ponto com e clique nele começou e
basicamente instalação e tudo o que eu fiz foi pegar o CSS e eu agarrou o Jake cansado e eu agarrei o você que eu kit Js Isso é tudo que eu fiz. Se você não sabe como pegar essas coisas se você não sabe o que está fazendo aqui ainda, uh, é provavelmente uma boa hora para voltar e aprender sobre HTML. Sim, eu tenho o melhor curso de desenvolvimento masculino em HD. Digite isso no Google. Talvez coloque meu nome lá e você será capaz de encontrá-lo. Mas já deve estar familiarizado conosco. Agora vou remover isso, e tudo o que vou fazer é salvar. Volte para o Chrome, atualize minha noção de página. Nada aparece. Eu apertei F 12 para abrir minhas ferramentas de desenvolvedor ou, alternativamente ,
clique
direito , inspecionar e eu vou para o console e não há erros. Isso significa que tudo está carregando do jeito que deveria carregar. Incrível. Agora, este curso não é para te ensinar. Você gosta? Não se destina a ensiná-lo a fazer marcação HTML CSS básica. Então o que estou prestes a digitar você pode ignorar completamente, ou se estiver interessado em aprender que gosta, pode prestar atenção. Eu não vou aprender. não vou ensinar muito sobre isso Masnão vou ensinar muito sobre isso. Esso UK seção U K Container UK Centro de texto. Meio que... Eu faço o teste. Lá vamos nós. Temos algum conteúdo lá dentro. Simpático e simples. Snap. Se eu escrevesse, , vamos fazer uma grade do Reino Unido. Aquela criança do Reino Unido com isso que ninguém de três em pequeno também UK Criança com é um de um. Isto é móvel primeiro, o que significa que ele vai tomar este por padrão. Vai ser com um de um, que é 100% E quando a porta de visualização é pequena, que é, eu acredito, 640 pixels, uh, ou maior vai ser um com de 1/3 e você pode grade. Eu também uso um plug in chamado Emmett, que só me permite basicamente digitar,
uh, uh, HTML CSS e atributos como este e tudo que eu faço é sentar Tabin. Escreve todos os outros códigos para mim. Hum, então vamos em frente, mas teste lá dentro. Luxo legal. Ok em. E agora vamos até você como ele e colocar em um carrinho. Vamos olhar para um cartão e eu não sou nem um direito o html porque eu realmente não me importo muito
com ele. Um, você sabe, na verdade, um melhor seria forma quando parece OK. Algo com “Vamos fazer este da marcação “e tudo o que vou fazer é agarrar isto de novo. Não procuramos nada chique. Salvar. Refresque. Tenho um centro básico de tecnologia de formulários. Vamos nos livrar dessa forma básica legal em vez de ler texto lá, vamos colocar e-mail e vamos copiar isso. Coloque a senha e aqui mudou que Digite duas alterações de senha. Digite para e-mail, o que é ótimo para dispositivos móveis. Basicamente alterar o tipo de e-mail de texto no celular permitir é um teclado diferente em seu telefone para que você não como o usuário, você não tem que ir em busca para isso. Um pouco no símbolo só aparece para você. Normalmente, uh, você sabe, e-mail ponto com Isso não é a senha do símbolo at. Sua senha. Passar a ortografia na digitação corretamente hoje não é claramente a minha força. Livrar-se de tudo isso, dizer cada fresco lá vamos nós e precisamos fazer. Vamos em frente e copie isso. Precisamos enviar o botão. Me dê isso. Na verdade, precisamos que era margem do Reino Unido em seguida botão. Se você está familiarizado com CSS, você sabe que isso iria selecionar todos os botões. Em seguida, fazemos UK abotoado UK botão fita padrão é igual a enviar e fazer login. Agora temos um registro básico. Informar, certo? Nada extravagante. Nada extravagante, mas isso faz o trabalho. Então, estes precisam ser necessários? Isso é tão sim necessário é igual ao necessário. Copie isso. Certifique-se de que ambos são necessários. O que acontece quando enviamos o formulário HTML cinco Validation chutes agora. Não confie puramente nisso, mas está tudo bem, dedo do pé, permita a validação. Agora queremos adicionar uma classe. Qualquer coisa que tenha a ver com JavaScript. Eu costumo começar o nome da turma com Js. Então, Js chamavam-nos Login. Vamos chegar a isso um pouco mais tarde, e agora temos nossa página básica de login. Incrível. Ok, então o que eu quero fazer é que eu não quero ter que incluir isso em todas as páginas, e eu não quero ter que incluir Ah, um monte de coisas de cabeça em cada página, e eu quero incluir uma configuração e todas essas coisas. Então, Então, na próxima aula e no próximo vídeo, o que vou fazer é limpar isso um pouco. Na verdade, vou processar isso e, em vez disso, vamos colocar isso em seus próprios arquivos. Eso que se precisássemos mudar a versão do J Query, poderíamos apenas mudar de, como 3.213 ponto 22 E terá efeito em cada página em que os rodapés estão sendo
carregados . Hum, então isso é para isso Agora, uh, vamos obter status. Vamos fazer um get def no Index PHP. Olhe para todas as diferenças para que você possa ver aqui em cima. Diz, Ah, em vermelho menos Olá mundo. Não há linha nova no final do arquivo e todo o material verde é todo o novo código. J me deixa rolar para baixo K me deixa rolar para cima. Incrível. Então temos um monte de novos códigos lá dentro. Vamos em frente e obter add index dot PHP. Podemos verificar de novo. Certifique-se de que ele está realmente lá em vez de obter status. Eu gosto, sugeriu que iria fazer cometer login adicionado no formulário. Obter push origem Master, obter LG ou obter log. Você poderia ter elegia em vez disso. Se você não tem o comando LG, que provavelmente não tem, mas obter log é o padrão. Um basicamente mostra a mesma coisa. Agora vamos voltar para o nosso navegador Hit, Atualizar Log adicionado, informar. Olhe para isso. E há todo o nosso código completamente acessível à Internet. Muito legal, certo? Então agora outras pessoas podem olhar para o seu código, que às vezes é ótimo, às vezes não ótimo, dependendo do seu projeto. Quero dizer, se você está trabalhando para uma empresa como o Facebook, você não quer que o mundo inteiro olhe para o seu código. Mas se você está fazendo um projeto de código aberto, sim, claro, ainda
está muito bem. Notei que não me importo muito em inventar agora. Podemos corrigir isso com uma configuração do editor um pouco mais tarde. Então esse é o nosso diário. Informar Styled com você. Eu brinco de novo. Nada extravagante. Não é suposto ser. Tudo o que é suposto fazer é trabalhar e sinus, e, na altura, não
temos nada para validar. Se alguém colocar em seu endereço de e-mail e senha, ele literalmente não vai fazer nada. Na verdade, vamos até testá-lo. Teste no teste ponto com teste teste teste teste teste teste. Mudou que você foi capaz de um ponto de interrogação. Isso não é bom. Na verdade, não deve ser uma pergunta. Certo? E está no meio da forma. Queremos que esta seja uma forma Ajax eso coisas totalmente diferentes. Então, na próxima esquerda, eu vou limpar esse arquivo e então eu vou criar uma página de registro e provavelmente apenas a página de índice básico também.
5. Adicionando seu Adding e mais páginas: Tudo bem. Na última lição, tudo o que fizemos foi substituir nosso PHP por HTML. Nada extravagante. Na verdade, devemos ir em frente e nos limpar, e é isso que vamos fazer. Então a primeira coisa que eu realmente quero fazer é criar um arquivo de configuração para que eu possa ir tahp include realmente não requer a diferença entre ele e a diferença entre recall require e include. Incluir incluirá o arquivo que você especificar. Mas se não existir, a página basicamente tentará continuar. De qualquer forma, ele pode quebrar em vários lugares, especialmente se ele não consegue encontrar o arquivo CONFIG, enquanto que require tentará exigir o arquivamento. Se o arquivo não estiver lá, está basicamente indo para o pé. A mente vai explodir. Diga, Oh, eu não sei o que fazer e apenas morrer Agora, em alguns casos, nós queremos que se nós não podemos carregar a configuração, nós não podemos fazer mais nada então exigir Once and Let's Dio Inc barra eu poderia descobrir PHP salvar quando vamos para a nossa página, assistir o erro realmente nos obter 500 contra, porque isso não existe. Tinta de pasta cremosa criar um novo arquivo lá chamado config dot PHP. Agora funciona. Está bem, fixe. Então, o que podemos fazer aqui? Mas se fizermos PHP echo test exit mata sua página com os testes de texto de palavras nele. Isso é perfeito. Isso é o que queremos. Sabemos que os arquivos de conflito realmente sendo carregados através do índice. Agora, como prática de segurança, isso é algo que você pode fazer. Existem outras maneiras de contornar isso, Mas se você estiver indo para ter seu arquivo de configuração em uma pasta h e-mail acessível, isso significa que se alguém foi para o seu site dot com slash ng slash config dot PHP, eles
poderiam ver este arquivo? Tecnicamente, sim. Eles poderiam acessar um Sim. Isso produziria erros? Muito provavelmente, mesmo se você tiver erros desativados. Isso é ótimo para as pessoas verem uma página em branco? Não, você não quer isso. Em vez disso, onde você quer fazer é ter certeza de que eles não podem ter acesso a ele. Então eu vou me livrar disso porque é desnecessário de dizer, se não é definido configuração legal. Recarregue a página. Eu não tenho um arquivo de configuração. Isso porque isso não está definido agora no PHP. Temos variáveis. Temos constante. Temos todas essas outras coisas incríveis. Então, em vez de exigir no topo da página, vamos certificar-nos de que esta página é realmente permitido para incluir o arquivo de configuração. Fazemos isso definindo. Basicamente, este seria o nome constante que é em vez de uma variável. É uma variável que nunca pode mudar uma vez definida,
é definida para toda a vida. Ou basicamente, até que as Escrituras terminem de correr e nós vamos apenas definir isso verdadeiro. E vamos adicionar alguns comentários porque os comentários são sempre uma boa ideia. Ah, permitir que a configuração exija a configuração. Lá vamos nós, são pagos aparece. Mas se mudarmos, isso somará lá dentro. Não temos um arquivo de configuração agora. O que poderíamos fazer é redirecionar alguém aqui em vez de sair. Nós poderíamos. Isso é realmente o que devemos fazer como devemos redirecionar. Ou devemos mostrar-lhes uma página 404, para que pareça que não há nada lá. Mas por uma questão de simplicidade, por uma questão de brevidade, vamos manter isso agradável e curto com uma mensagem de saída. Agora, novamente, que um comentário se não houver nenhuma constante definir chamado config. Não carregue este arquivo agora. Qualquer coisa após a função de saída. Uh
, não vai deixar legal. Então, basicamente, se o nosso código passar aqui, tudo o resto está fazendo aspas aéreas. Mas é seguro. Não é seguro, mas é seguro. Er, é apenas uma precaução que você pode tomar agora. Nossa configuração está abaixo, e o que queremos em nossa configuração? No momento, não
queremos nada dentro da configuração foram ainda manter este agradável e em branco,
e esse é o nosso primeiro arquivo necessário. Agora, se quiséssemos mudar isso para outro lugar, poderíamos fazer isso também. O PHP requer. Uma vez requer uma vez, obviamente só tenta exigir o arquivo uma vez que ele já tenha sido necessário. Uh, e em vez de necessário. Na verdade, você pode usar incluir uma vez e então, se os arquivos já foram necessários ou incluídos, ele não vai tentar exigir incluído novamente, e isso é como se você tiver um loop, por exemplo, que está correndo uma e outra e outra vez. Em vez de exigir o mesmo arquivo 55 55 100 milhões de vezes, ele só vai tentar exigir de uma vez. Ah, e aqui estamos indo para ir inc barra rodapé dot PHP que não existe. Corta esse código aqui. Novos arquivos chamados rodapé dot PHP Coloque isso aqui. Espaçar abas realmente não importa. Agora. Se quiséssemos fazer a mesma coisa com o rodapé, poderíamos jogar isso aqui. Certifique-se de que temos nossa sintaxe esperando PHP e essa sintaxe de fechamento. Agora, nosso rodapé nunca vai carregar se não houver configuração carregada e nossa configuração é carregada aqui agora novamente, talvez não seja a melhor maneira de fazê-lo. Certamente não é a pior maneira de fazer isso. Em vez de ter você sabe, pé ou verificar se há configuração, você poderia ter outra constante aqui. Permitir rodapés Eagle verdadeiro aqui, dizemos, se não definido, permitir rodapé. Basicamente, o arquivo CONFIG não permite que você tenha isso em. Eles não vão fazer isso. Vamos ficar com ele de novo. Muito simples. Na verdade, eu realmente não me importo se as pessoas podem até mesmo acessar este arquivo porque é apenas um pouco de javascript. Não há nada secreto neste arquivo que precisamos manter longe de todos. É basicamente apenas um arquivo de modelo. Então, desfaça essas coisas. Diga isso de volta à página dela, Recarregar, inspecionar. E em nosso conselho, não
há erros de nenhum aviso só para mostrar o que quero dizer com isso é que se eu tivesse, você tinha um monte de dois aqui e fazer isso realmente nojento, e eu atualizo a página. Aqui diz que não se pode pegar nenhum desses. Essencialmente, o que ele está dizendo é que estes ar 404 ng Estes arquivos não existem. Mas se eu desfazer isso, não
recebemos esses avisos. Isso significa que esses arquivos estão sendo carregados em nossa página perfeitamente bem. E voilá. Temos uma página de índice mais limpa. Agora isso nos leva ao próximo. Não queremos necessariamente que esta seja a sua página de índice. Então vamos em frente e re salvar isso em um recente duplicado. Vou ligar para o Login e esta página não vai ter nada nela. E isso só vai dizer, você sabe, vá olá, mundo. E vamos jogar um pouco de PHP lá Data ano, meses. Eu não namoro. Claro, que seja. Uh uh uh hoje ele salva voltar para a nossa página de índice atualizar. Hoje é um dia que não controla porque nós não ecoamos. Lá vai você. Essa é a data. - Nada. Ótima. Mas se entrarmos em log in dot PHP agora, temos uma página especial de log in. Agora o que vamos fazer é duplicar isso mais uma vez, realmente vamos duplicar o log in página em si duplicado, e vamos chamá-lo de registro. E em vez de chamar este Js chamando este peito de classe, vamos ligar para o JS Register e vai ter uma funcionalidade diferente. Você pode adicionar seu e-mail. Você pode adicionar sua senha. Você pode adicionar uma segunda senha lá para que as pessoas tenham que pegar a senha e duas vezes todo tipo de coisa. Mas essencialmente, quando este formulário é preenchido vai agir de forma diferente através do JavaScript. E isso nos leva à seção Ajax, que é um pouco ah, à nossa frente agora. Mas temos basicamente uma página normal aqui onde vamos apenas fazer o registro, então sabemos em que página estamos. Ah, nós temos páginas regulares aqui onde nosso site realmente parece um pouco diferente e deixar algum espaçamento aqui eu não prefiro muito espaçamento. Uh, mas eu estou fazendo isso principalmente para o vídeo aqui. Então, se eu fiz isso, esta é a página de login. E se eu fui para registrado no PHP, nós temos uma página registrada, e na verdade, eu posso mudar para isso. Não precisa fazer login. Isso pode estar registrado. Agora, nós vamos fazer muito com essas páginas de login e registro, e eles vão ser drasticamente diferentes, considerando o fato de que eles parecem praticamente idênticos neste momento. Então, lá temos. Temos uma página de índice. Temos página de login e página de registro. Na verdade, eu nem gosto disso. Vamos mudar às duas. Uh, registrando que PHP iria adicionar um Lincoln aqui, fazer login e registrar. E agora, se eu voltar para a página de índice, temos que fazer login e temos um link de registro vai fazer login. Volto e clique em registrar vai para registrar. Incrível. Então agora temos nossa página básica de configuração. Finalmente, Caleb estava se metendo em algo bom. - Sim. isso faz parte da criação de um projeto entanto,isso faz parte da criação de um projeto. É o embarque Cada elemento TML a configuração de suas estruturas de página que obter sua configuração de configuração As pessoas não tendem a gostar de fazer isso. Desenvolvedores da Web ficam muito entediados fazendo coisas básicas como então o que vamos para Dio é configurar isso agora mesmo. Nós montamos, ficamos antes de fazermos tudo isso e então podemos começar a nos divertir agora. Mencionei obter status. Olha para isto. Nós modificamos o índice. Também temos um monte de novos arquivos em sua ação de arquivos de projeto. Eu deveria estar lá dentro. Mas este é um bom exemplo para adicionar vários arquivos. Obter anúncio Kid. Add Inc vai adicionar todo o diretório e que deveria ter um espaço lá. Agora, se eu conseguir status lá vamos nós. Esses arquivos serão incluídos em nosso próximo commit. Os arquivos do projeto não são. Fazemos um get commit, adicionou configuração. Log in Reg páginas adicionado flitter. Agradável e curto. Recebe mensagens. Precisa ser muito longo. Obter push origem Mestre, ir para cima para se levantar atualizado. Olha que temos Index Logging Register Inc. Temos todos os tipos de coisas incríveis em seu legal, legal. Deveriam ter sido em suas próprias mensagens? Deveríamos ter nos internado? Um arquivo de cada vez? Sim, provavelmente
poderíamos ter feito isso. Mas só porque esse projeto é tão pequeno, , não
é tão importante. Agora, se você está trabalhando em um grande projeto como US $100.000 site, sim, talvez fazer mensagens diferentes receber para que as pessoas em sua equipe possam ver exatamente o que está
acontecendo ou se você receber mensagem vai ser muito longa, talvez dividi-lo em dois, obter mensagens ou obter commits em vez disso. Então, aí está. Vamos passar para a próxima lição.
6. Ajuda-me a sair ?: Olá
, sou eu. Sou a voz por trás dos vídeos. Apenas um lembrete rápido de que se você já gostou de qualquer um desses vídeos até agora, você pode me acompanhar no compartilhamento de habilidades. Mas o mais importante, você pode realmente avaliar este curso. E simplesmente lendo este curso, isso realmente me ajuda muito. É super fácil e super rápido leva apenas alguns segundos, e eu quero dizer que realmente significaria o mundo para mim. Então, se você amou o que eu tenho ensinado a você, se você gosta do estilo dos meus cursos, dê um bom e velho polegar para cima, hum, e deixe outras pessoas saber o que você fez sobre esses vídeos também. Saúde.
7. Armazenando senhas: Bem-vinda. Bem-vindo, bem-vindo. Última lição. Criamos uma página de registro de login. Todas essas coisas. Incluímos nossa configuração. Nós incluímos um rodapé para que pudéssemos fazer alterações em várias páginas muito, muito facilmente. Mas antes que alguém possa fazer login antes que alguém possa se registrar, precisamos de um banco de dados. Caso contrário, nós estamos apenas armazenando basicamente senhas em impostos simples. Agora, com isso dito, eu quero mencionar algo bem rápido. Ok, no seu JavaScript, eu tenho visto isso muito ultimamente, mas no seu JavaScript, as pessoas têm armazenado senhas. Nunca armazene suas senhas e JavaScript nunca armazenar suas senhas e HTML CSS. Esses são todos acessíveis ao navegador. Não importa como tenta escondê-los. É visível para todos. Permitam-me, deixem-me ser muito claros com isto. Não faça qualquer coisa por qualquer propósito ou motivo. Sempre armazene uma senha em JavaScript, HTML ou CSS. Na verdade, eu diria até nunca armazenar uma senha em um PH normal. Uma corda B como esta. Nem faça isso porque o fato da questão é que nenhum servidor é inquebrável. Isso significa que alguém pode entrar. Pode não ser hoje pode não ser amanhã, mas se alguém realmente quisesse entrar, poderia pegar seu código. Agora há mais uma coisa que você tem que olhar para fora é quando nós digitar senha é igual a senha. E colocamos isso no Get Hub. Adivinha o quê Todo mundo confinou. Se quer uma chave P I, vá procurar. Levante-se. Há dezenas de milhares de chaves P I em suas dezenas de milhares de senhas que são codificadas em projetos. E as pessoas invadem só porque é publicamente acessível. Então, nunca faça isso. Em vez disso, o que vamos fazer é criar um banco de dados para que possamos contornar completamente que nem vamos usar senhas iguais a senha, algo assim. Nós não vamos armazenar nenhuma senha em variáveis puramente porque nós não queremos fazer isso. Nem quero te mostrar como se faz isso. Muitas pessoas dizem,
Oh, Oh, mas você sabe, PHP tem muitas falhas de segurança como Não, realmente
não, não se você sabe o que está fazendo. É que as pessoas são más programadoras às vezes, e quero que sejas um grande programador, por isso nunca ponhas as tuas palavras-passe em texto simples assim. é ruim o suficiente quando as pessoas colocam senhas em texto simples, como onde nós tínhamos senha é capaz de senha, e eu poderia ler isso. Mas mesmo que tenha sido criptografado com algo ruim, também, não coloque isso aí. Se alguém vai invadir seu servidor, faça-o trabalhar para isso. Eles têm que trabalhar muito duro. E para que possamos realmente fazer isso funcionar da maneira que queremos, precisamos de um banco de dados. Por isso, estou farto. O meu discurso sobre palavras-passe, por favor, tenha sempre a mente de segurança. K Segurança vem antes da boa aparência. A segurança vem antes da funcionalidade. A segurança vem antes de tudo. Se o Facebook tivesse uma invasão e perdesse dois bilhões de senhas, o que isso faria com a confiança do Facebook? Ninguém mais confiaria no Facebook do Google. Essas coisas acontecem. Portanto, apenas esteja muito atento sobre isso
8. Configurando nossa banco de dados, parte 1: O que eu vou fazer é ir host local barra Petri mente homens Ruedas rota Se você não sabe um PHP pode, homens é apenas uma interface para o meu SQL. Você pode usar minha bancada de habilidades que você pode usar. Ah, não precisa usar minha escola. Você pode usar Maria db, que é tecnicamente o preferido, que é uma queda em substituição do meu SQL. E isso é totalmente bom. Você pode usar isso em vez disso. Mas o que nós queremos aqui são bancos de dados e eu estou indo para tudo bem, eu vou fazer isso depois e vamos apenas chamar este sistema de log in. Não, eu não uso o sistema de palavras porque é uma espécie de curso Le Guin e a colisão. Eu vou para a parte inferior UTF oito m antes de sublinhar Unicode sublinhado c I c. Quero dizer, é insensível maiúsculas e minúsculas? Vou chupar isso. Basicamente o que isso significa é que qualquer caractere pode ser armazenado neste banco de dados. É permitido. Agora estamos apenas armazenando e e-mails e senhas que geralmente são apenas UTF a que são basicamente apenas caracteres regulares. Mas no caso de você querer estender seu dedo do banco de dados, ter os primeiros nomes, você tem que pensar que algumas pessoas escrevem árabe. Árabe vai da direita para a esquerda. Parece completamente diferente. Não parece raiva. Cidadela. O que russo russo é um diferente tinha alfabeto inteiramente diferente japonês. Vários alfabetos diferentes. Você tem que considerar essas coisas certo? Então vamos em frente e criar uma tabela. Vamos chamá-lo de usuários. Número de colunas Queremos uh, não, queremos usuário, i d. Temos o endereço de e-mail, temos uma senha e permite que sua data de registro Então você tem quatro estava certo e não, não usuário roadie I d. Agora eu sempre tento manter estes minúsculos e separados com um sublinhado. Você verá alguns lugares que escreverão como Roe i D. em um banco de dados. E é super inconsistente, para
não mencionar que alguns bancos de dados simplesmente não gostam quando você tem letras maiúsculas que irão forçá-lo a fazer tudo em minúsculas. Você está certo. Todo o seu código localmente usando maiúsculas, muito parecido com chicotes muito parecido com este. E então você coloca seu casaco em um servidor ao vivo, e de repente é como se eu não soubesse que ideias fileiras porque em vez de procurar uma linha, sublinhe a ideia. Na verdade, chamei de usuário I d. Ah, aqui. Vamos apenas ir com regular em cinco olhos de valor padrão não vai ser nada. Sempre vai ter algo a olhos, incrementos
automáticos para fazer. Salve que atributos não assinados significa que os números são sempre zero ou superiores. Se nós não selecionamos não assinados, o que isso basicamente significa é que iria em vez de, como começou para 56 que vão de menos 1 28 para 1 28 positivo 1 28 Nós não precisamos ah idéia de usuário que vai abaixo de zero. Então vamos mudar isso para um comentário assinado. Usuário i d. Tudo o resto nós vamos deixar. Nome. E-mail. Este era um caractere variável. 250 definidos, uh, como definido. Podemos dizer que o valor padrão é sempre e-mail em ponto com e-mail ou algo assim. Não é o que procuramos. E-mails
comerciais estão vazios. Não. Coisas da hora atual. Não tem nada a ver com isso. Vamos em frente e mudar o índice para índice e,
uh, bem, bem, na verdade, nós poderíamos tornar isso único bem, porque um usuário só pode ter um endereço de e-mail, então ele tem que ser completamente original e digite um e-mail, ir comentários,
usuários, usuários, senha de endereço de
e-mail. Caráter terrível. Vamos fazer 200 provavelmente nunca serão 200 porque vai ser bem criptografado. Mas isso é bom. Isso é bom. Mesma coisa, uh, valor
padrão realmente não importa. A senha não precisa ser exclusiva. Não precisa ser índices se alguém tem exatamente a mesma senha e de alguma forma
gerencia usado para usar exatamente o mesmo hash, que provavelmente nunca vai acontecer em qualquer momento. Mas se fosse dedo acontecer, único iria quebrá-lo. Único tem que ser completamente único. Índice. Bem, isso será armazenado como um valor criptografado. Então não vamos saber o que é isso. Eso, não precisamos indexar isso. Indexação basicamente significa Ei, meu SQL. Nós temos um certo pedaço de informação em uma determinada tabela, que você tem que priorizar. Mas se cada senha é armazenada criptografada e é diferente, não
temos idéia do que isso vai ser. E por isso não deve ser indexado. Vamos procurar as pessoas pelo endereço de e-mail primeiro. Então vamos pegar a senha, e depois vamos verificá-la. E por último, é você, hora do
Reg. E este pode ser fazer onde você marca a hora. Passo de tempo atual, uh, em atualizações Carimbo de data/hora atual? Bem, não, porque o tempo de inscrição só acontece. Uma vez que assume esse registro, nós salvamos que O índice, nós não precisamos indexar isso porque nós não estamos fazendo qualquer, como Data Analytics. Baseado em quando as pessoas estão se registrando. Nós só queremos ver quando eles registraram a hora e a data em que o usuário se registrou. Chame isso de que os usuários tabela coalizão fazer a mesma coisa mecanismo de armazenamento que você quer em um banco de dados ou meu ISM. Agora, sites
WordPress gostam de usar meu SM porque eles não escrevem muita informação, mas eles lêem muita informação, o que é ótimo. Mas você sabe, D B vai ler e escrever um monte de informações, tem alguns prós e contras como meu Assam tem indexação de texto completo, então poderíamos dizer índice de texto completo, e ele vai até tentar combinar em diferentes idiomas, enquanto que no ODP, que tem que não é tão grande com ele apenas muito bem porque nós não estamos tentando indexar artigos de blogueiros
inteiros ou qualquer coisa assim. Você sabe, DB também suporta transações, que significa que você pode adicionar 10 usuários e 50 postagens soprando e tudo mais, e se algo falhasse, você poderia ter um bloqueio tentar, pegar. E nesse e no bloco de captura, você poderia basicamente dizer Roll back, desfazer tudo isso. Porque se algo falhar como, eu não posso passar e isso é ótimo para, tipo, pagamentos ou sistemas bancários, a transação absolutamente tem que passar. Se ele não passar, nenhum outro dado é permitido passar. Você não quer ver pessoas. Eu te disse em seus extratos bancários, você não quer ver que você gastou um monte de dinheiro que na verdade não foi gasto. Você vai ficar muito confuso. Então é por isso que eles usariam transações. Isso seria um exemplo da vida real. Vamos em frente e salvar isso. Isso realmente tem uma tabela de usuários. E se voltarmos para nossa página e vamos entrar, nada acontece porque não estamos conectados a um banco de dados. Agora o que eu quero fazer é criar outra pasta dentro da tinta, e eu vou chamar isso de
não, não funções que ele é, se pudéssemos fazer isso. Você faz, uh, arquivo
cremoso. Chama-se Funções que PHP. Esta é uma maneira antiga de fazer as coisas e vamos também adicionar qualquer pasta, chamá-lo de classes, e nessa pasta, vamos criar uma nova classe chamada devi dot PHP. Ok, então o que eu tenho aqui é que eu acabei de colar nesta classe DB. Agora isso é chamado de classe singleton, o que significa que ele vai tentar obter a conexão de banco de dados uma vez. Se ele não existe, ele vai então realmente obter a conexão. Se ele existir, vai retornar a conexão. Desta forma, podemos chamar a nossa conexão de banco de dados uma e outra vez. Mas não vai esperar que,
sabe, sabe, 50 milissegundos cada vez que temos que nos conectar ao nosso banco de dados ou o que quer que
seja, hum, ele vai saber que vai ser agradável e fácil. Ele só vai conseguir uma vez agora para passar por isso rapidamente. Então eu escrevi algo semelhante a isso, uh, para vários outros projetos e meio que reduzi-lo para torná-lo muito simples. Agora o que estamos olhando aqui é PHP orientado a objeto, e isso é porque nós só queremos singleton uh, o singleton basicamente projetado a estrutura desta classe tem que ser, você sabe, apenas, disse que só uma vez obter o que definir. Então o que isso faz é definir uma nova classe chamada DB Não é um db dot PHP Então nós chamamos d be protected static, que significa que esta é uma variável chamada uma propriedade dentro de uma classe e está protegida Significa que não podemos editá-la de Lá fora com a classe. E também é estática, o que significa que podemos obtê-lo chamando-se auto indo Colin Tecnicamente, construção de função
privada. Esta é uma função mágica,
uh, uh, método
mágico em vez que, assim que você em Stan, ela oito db Então, quando você digita TV é igual a novo DB, isso é automaticamente chamado sobre Awesome. Isso é exatamente o que queremos que vai criar nosso golpe e aqui estão realmente fazer. Isso é errado? Vamos nos trocar. Foi muito rápido. Lá vamos nós. Uh, e nós vamos estar usando DOP. Então, em vez da minha mentira que muitas pessoas usam, vamos usar algo mais avançado porque isso é tecnicamente, isso é muito melhor. Meu SQL I é como a maneira novata de escrever, um, minhas instruções SQL usando PHP. Ah, o código vai estar disponível para que você não tenha que se preocupar em escrever tudo isso. Mas basicamente, isso é ficar conectado. Meu dedo SQL para o meu SQL Use o conjunto de caracteres utf oito. E antes de lembrar, nós configuramos isso com o banco de dados deles. Incrível. Incrível. Nosso anfitrião é local. Host Airport é 33 de seis por padrão. Nosso nome de banco de dados, que configuramos foi registrar o curso de sublinhado, meu nome de usuário e minha senha. Agora, se nada disso funciona não vai dizer crônica não poderia conectado banco de dados novamente. Desculpe. É porque copiei de outro projeto lá. Seja em vez de ter que digitar isso. Ter você basicamente me assistindo
datilografar isso,vai ser muito chato. Ter você basicamente me assistindo
datilografar isso, Basta dizer que não poderia se conectar ao banco de dados e as operadoras. Suas falas não precisam estar lá. Provavelmente 1000 gostariam de lá vamos nós. Koukal
9. Configurando nossa banco de dados, parte 2: Agora isso não vai fazer nada, porque quero dizer, se nós carregarmos a página
dela, ela não está sendo chamada. Então, se entrarmos em nossa configuração e dissermos, adivinha o que incluir o arquivo PHP D v dot? Nós poderíamos fazer incluir uma vez classes db dot PHP E eu tinha realmente soletrado essa sala. Vamos só usar renomear. Há um a mais. Sim, agora
é o que acontece quando eu vou atualizar a página Ainda carrega, mas está realmente carregando? Nós não sabemos. Teste de saída? Sim, é. Lá vamos nós. Agora. Poderíamos fazer o mesmo que fizemos com a configuração. E podemos pegar esse código. E se alguém está tentando acessar sobre devi dot arquivo PHP, podemos dizer, Bem, espere um minuto. Se você não tem o arquivo de configuração, que na verdade só é carregado de dentro do nosso log in dot PHP ou index dot PHP ou qualquer dos nossos arquivos de aplicativos, então adivinha. Você não pode ter acesso a isso. Então, você sabe, vá embora. Isto é para nós no Lee. Isso é essencialmente o que aquele ditado e por isso, sim, atualize. Lá vamos nós agora ele não está realmente fazendo nada. Esta é apenas a nossa turma. Não esteve em San. Ela ainda não começou. Precisamos começar com isso. Então vamos em frente e criar uma nova configuração interna variável e d b get conexão, mas morto. Como é que conseguiste isso? Bem, D B é o nome da nossa turma. Poderíamos facilmente chamar isso de bancos de dados. Bem, se quiséssemos. Ah, e a conexão get é a função estática pública. Agora, a função pública estática pública significa que podemos chamar essa função de fora de si mesmo. Então, qualquer código que não esteja aqui bem, ainda
podemos chamá-lo de parte estática significa basicamente, vamos usar o Coghlan para acessá-lo. A função é Bem, é uma função, e esse é o nome. Então agora temos Condi ser obter conexão. Incrível. Legal. O que acontece quando salvamos Atualizar? Bem, estamos nos conectando. Aparentemente. Legal, porque nada aconteceu. E se eu entrar como zombar? Algumas dessas coisas não foi possível conectar banco de dados? E se eu apenas zombasse de um desses? E se eu alterasse a senha para root? Dois não podem se conectar ao banco de dados. Lá vamos nós. Então estamos oficialmente conectados ao banco de dados, e isso é tudo o que há para ele. Agora, antes de continuarmos quando você cria um banco de dados, o que criamos era log. Claro, você vai precisar de um usuário agora. Se você estiver fazendo isso localmente, provavelmente
é raiz raiz. Uh, quando você está criando um aplicativo ao vivo, não use rota. Todo mundo vai adivinhar a rota. Não use publicitários. Provavelmente não use seu nome. Algo totalmente obscuro em sua senha deve ser loucura. Agora esta é uma das poucas vezes são difíceis. Revestir sua senha em seu aplicativo é realmente XX acessível. E isso é só porque não há outra maneira de contornar isto. E é por isso que adicionamos segurança adicional por aqui agora. Se quiséssemos suspeitar ainda mais de todos os nossos usuários, que é uma coisa boa, nós realmente moveríamos toda a pasta Inc fora de nosso aplicativo e em outro lugar para que, uh, a configuração poderia dizer, você sabe, ir duas pastas para cima, que é fora do lugar onde as pessoas podem acessar o índice que PHP ou ponto de log PHP , Uh, e realmente só estabeleceu que nossa aplicação terá acesso a isso. Essa é uma maneira que bem, acho que é outra maneira que fazemos, e essa é a maneira que devemos fazer isso. Mas para deixar isso claro para você entender, hum, e para ver como a hierarquia realmente funciona nós vamos mantê-lo assim. Mas tenha em mente que há maneiras de melhorar a segurança em torno disso agora para seus usuários. Se você não tem um usuário, você pode ir para PHP meu admin. Ou você pode escrevê-lo diretamente através do seu console ou do seu terminal. Em vez disso, você poderia escrever todo o meu SQL e aqui se você quisesse fazê-lo dessa maneira. Eu gosto de fazer isso visualmente para que você possa realmente ver o que está acontecendo. linha de comando tende a assustar muitas pessoas, especialmente quando se trata de gerenciar bancos de dados e criar usuários e outras coisas. É um pouco mais fácil para as pessoas apontarem e clicar, e neste caso em particular, isso não é nada ruim. Temos bancos de dados, contas de usuário de status
SQL. Queremos usuário. Tenho um lá chamado Caleb. Isto é realmente para o Docker, mas eu tenho todos os meus privilégios lá novamente, apenas privilégios de host local como apenas host local. Por isso, posso ter todos os privilégios. Raízes, senha de
raízes. Sim. Novamente, todos os privilégios globais. Aiken faz basicamente tudo com ele. Doce eso Isso foi tudo o que eu fiz para criar uma nova conta de usuário. Criando usuário que você tem usar seu nome, seu nome de host, uh, host
local. A senha muda de rota ou qualquer outra coisa. Se você estiver no servidor ativo, verifique se isso é seguro. Isto é completamente diferente, mas porque
somos locais, estamos apenas a usar mas porque
somos locais,
estamos apenas a usarcredenciais de registo. Isso não importa. Vá em frente. E se o seu local você pode verificar tudo se você não é local, você quer restringir o. Essa é outra forma de adicionar mais segurança. Portanto, se o seu usuário só tem permissão para selecionar inserir atualização excluir. Talvez Alter não tenha permissão para cair. Hum, isso é sobre isso. Então agora você tem, tipo, um usuário básico. que Mesmoquealguém entrasse e fizesse coisas maliciosas como pessoas de novo, pessoas falam sobre o PHP ter falhas de segurança. Não é necessariamente PHP. São as pessoas que não sabem como as ferramentas funcionam. E assim eles criam esses usuários que têm todas essas opções e, de repente, o SQL injetado, que é basicamente apenas adicionar SQL em que você está todos aqui. Então, onde diz adicionar usuário e estão onde diz token, certo? Isso está procurando um token no meu banco de dados agora. Meu banco de dados PHP id men. Agora, se eu digitei em usuários de tabela drop e vamos olhar para isso, nós temos uma tabela chamada usuários lá e esse usuário tem permissão para soltar tabelas. Adivinha o quê Perdeste todos os teus utilizadores. Agora, não
vamos fazer isso localmente porque obviamente não queremos deixar todos os nossos usuários. Estaríamos retrocedendo no tempo e desfazendo todo o nosso trabalho. Mas se executarmos um site ao vivo, você quer desmarcar que você quer em cheque basicamente todos esses Onley verificar os que você absolutamente precisa, E essa é outra maneira de realmente melhorar a segurança em seu aplicativo. Então isso é que na próxima lição, eu acho que devemos ir em frente e obter algum JavaScript, configurar alguma validação javascript e começar a fazer com que as pessoas realmente se registrem em nosso aplicativo. Tudo bem, veja, lá
10. Validação de formas com JavaScript Parte 1: Olá. Olá. Bem-vinda de volta. Então eu fiz algo nos bastidores que eu deveria ter feito o último vídeo. Ah, ou neste vídeo. Então, em vez disso, vou explicar o que fiz no último vídeo. Eu criei um banco de dados. E tudo o que fiz foi largar. que significa que eu criei basicamente um arquivo SQL que toda a informação da estrutura do banco de dados basicamente vai aqui para que você possa encontrar isso em seus arquivos de projeto totalmente. Se em algum momento você precisar configurar seu banco de dados novamente, isso irá configurá-lo para você. Tudo o que você precisa fazer é carregar este arquivo SQL e ele funcionará exatamente assim para você. Agora, neste último Não, o que eu quero fazer é que eu quero começar com algum JavaScript. Vamos fazer este pequeno Ajax ver. Vamos tornar isto um pouco mais dinâmico. Vamos ver o que podemos e não podemos dio agora, antes de fazer qualquer coisa bem, precisamos adicionar um novo arquivo JavaScript ao nosso rodapé. Agora podemos ir para o nosso rodapé e podemos adicionar qualquer tipo de javascript que quisermos aqui. Mas quero dizer que isso é nojento, porque eu sou carregado no
D.O M no modelo de objeto do documento na página toda vez. E enquanto isso não é legal. Então, em vez disso, o que vamos fazer é criar outro diretório e vamos chamar isso ativos. Vamos criar um lá dentro e vamos chamá-lo de Js, e vamos criar um arquivo lá dentro. Vamos chamá-lo de ponto principal Js. Agora, a razão que eu colocá-lo em ativos barra Js barra Enquanto você pode realmente ver no topo aqui ativos barra es barra ponto principal Js Você pode colocar CSS e imagens e coisas dentro de seus ativos. E assim todos os seus ativos locais, todos os seus ativos estáticos estão todos juntos. É que é mais limpo assim. Em vez de ter você sabe, três ou quatro diretórios diferentes por todo o lado. Quando eu olho para todo esse projeto, eu só tenho 23 diretórios Agora, se eu quisesse olhar para qualquer um dos meus ativos estáticos, eu sei que há apenas javascript lá, mas se houvesse CSS, eu poderia fazer outra pasta chamada CSS. Se houvesse imagens ou S P G. Eu poderia fazer isso também. Agora, essa dor, tudo o que eu quero fazer é um teste de alerta para ter certeza de que isso realmente funciona. Vá para o nosso tipo de rodapé e script como R C é igual a ativos barra es barra pontos principais gs. E a chave aqui é que começa com uma barra. Isso significa ir para a base do projeto. Seja qual for a coisa mais próxima da base do projeto, que é onde o índice vive. E ele vai procurar por ativos que nós temos e que vai procurar por um JavaScript , que nós temos, e ele vai olhar de Maine dot Js, que nós temos. Guarde isso. Vamos voltar à nossa página. Eu refresquei e diz teste só fiquei legal então sabemos que isso funciona agora. Mas o que acontece quando alguém realmente vai se registrar? Bem, vamos sair do login e ir para um PHP registrado. Vou fechar basicamente todos os outros arquivos porque não precisamos deles no momento, e sabemos que este formulário se chama JS Register. Agora. Se você não está familiarizado com Jake cansado, tudo bem, vamos fazer algo um pouco diferente. O que muitas pessoas vão dizer-lhe para dio usando consulta J é tecnicamente errado, especialmente com aplicações Ajax. Eles vão te dizer para fazer algo como esta função de clique. E então, quando a página
é carregada, ele vai selecionar esta classe, que é este formulário, e ele vai vincular a função on click. Mas se nós Ajax isso na página, bem, isso não existe. Então adivinha? Isso nunca fica amarrado e não funciona. Já vi pessoas lutarem, lutarem e lutarem com esse conceito. Então, em vez disso, o que nós dio é ligar todas as nossas funções todos os nossos ouvintes para a cúpula, para o modelo de objeto de documento, que é novamente nós estamos selecionando todo o documento que vamos dizer no envio formado A J s função de registro E em decidir comer um pouco ambíguo. Vamos fazer o evento. Ah, virar falso, não importa o que aconteça. E sempre queremos que os eventos não impeçam o padrão,
seja lá o que for. E sempre queremos que os eventos não impeçam o padrão, Alguns navegadores agem de forma diferente às vezes não é necessário, às vezes necessário. Realmente, dependendo do seu público. Quais navegadores eles estão usando. Vou jogá-lo lá de qualquer maneira, eu pego ou saio? Isso realmente não importa e vamos lá formulário de alerta foi enviado. Digamos que vá para uma atualização de página e quando clicarmos em registrar Wow, ele vai nos pedir informações e clicar em registrar. Olhe que formal submetido. Agora lembre-se quando estávamos enviando o formulário alguns vídeos atrás, isso estava realmente nos levando para longe da página. Não está mais fazendo isso. Está nos mantendo na página agora. Por que é isso? É porque os eventos impedem o padrão? Depende do navegador. Pode ser, mas principalmente porque está retornando falso. Então agora temos algo para trabalhar. Agora precisamos conseguir o endereço de e-mail e a senha. Então, se tomarmos essa forma, jogá-lo em uma variável chamada form variável nomenclatura convenções em JavaScript muito amplamente , especialmente quando se trata de Jake cansado. Então o que poderíamos fazer porque é um seletor. Poderíamos usar o jeito
J.J. Korea de selecionar as coisas e usar um cifrão e dizer isso. Isso se refere a todo o formulário. Ou poderíamos dizer forma é igual a isso ou algumas pessoas como a maneira mais curta poderíamos dizer f dot águia Teoh F é igual a isso ou poderíamos apenas fazer a forma forma normal é igual a esses grupos realmente depende de sua preferência. O que eu vou ficar com é sublinhado por causa do estado com Sublinhado, eu acho, uma vez que dois formulários é igual a este e agora que temos todos os elementos do formulário, vamos olhar para o JavaScript. Mas temos todo esse elemento de forma em uma variável. Agora podemos analisar o resto do HTML aqui e encontrar exatamente o que estamos
procurando . Então podemos encontrar nossa entrada onde o tipo é e-mail? Podemos encontrar a entrada dela onde o tipo é a senha? Sim, você pode apostar o seu, mas nós poderíamos. Vamos fazer isso. Vamos criar um objeto. Dados variáveis são iguais a objeto. E-mail é igual a Bem, vamos procurar o tipo de entrada de e-mail. Sabemos que só há um, então está tudo bem, e a maioria das pessoas deixa assim. Mas fato divertido. Se suas páginas são enormes, se é como um paciente da Amazon apenas 10.000 linhas de HTML, isso é um monte de HTML para percorrer. Então, em vez disso, vamos digitar formulário sublinhado, que se refere a isso e basicamente o que isso diz é Olhe através disso. Basta olhar através disso. Isso é tudo que é tudo ainda. Não, nem isso só olhou através do formulário. Isso é tudo que você tem que fazer. Basta olhar através do formulário e ignorar todo o resto. Caso contrário, se não especificarmos isso vai olhar através de todo o negócio. Agora sou a nossa página de pequeno, por isso não importa, não o ponto. O ponto é, eventualmente seus aplicativos vão ficar enormes, e você vai querer ter certeza de que seu JavaScript é o mais rápido possível. Agora algumas pessoas são como, Oh, bem, por que mesmo usado requer? Você acabou de usar o reator? Ele só usa angular. Bem, o fato é que a maioria dos sites usa consulta J, e é por isso que estamos Husing Jake. Ou se você quiser atualizar para reagir ou angular, qualquer outra coisa. Seja meu convidado. Vá para ele. Não há nada de errado com isso, mas a maioria dos sites usa Jake cansado, então estamos aprendendo do jeito Jake Weary. Agora pegamos quatro, pegamos o valor vírgula e vamos pegar a senha. O tipo de entrada é igual à senha novamente. Mesma coisa. Sublinhado forma ponto falta. E se o fizermos, Cônsul, não registre dados toda vez que o primeiro se submeteu. Diga que a página de atualização e nós fazemos teste no teste ponto com e e um clique registrar. Oh, olhe para isso. Olha, aqui está o meu endereço de e-mail e a minha senha totalmente segura. Bem, por que eu não deveria armazenar texto no meu JavaScript assim? É porque o JavaScript é acessível publicamente ao seu navegador.
11. Validação de formas com JavaScript Parte 2: Uma coisa a se certificar é que quando você está usando senhas quando se reúne formulários, quando você está enviando qualquer tipo de informação segura, você sempre quer ter certeza de que está usando https. Agora. Não tenho isso localmente. Eu não preciso disso localmente porque eu só estou executando isso localmente. Mas se isso foi em um site ao vivo, se isso foi em arc mont dot com, que usa um log muito semelhante em forma como este, ou realmente qualquer outro site que já foi feito usando PHP e Ajax sempre usa https. Tem uma coisa chamada Digitalize isso. Vamos criptografar, e isso nos dá SL de graça. Prepara isso para você. É um pouco de linha de comando, mas é como duas ou três linhas fora dos limites linhas de comando e dar-lhe o código e isso apenas funciona. E isso protege basicamente todo o seu site para você. Bem, eu não deveria dizer que garante. Ele realmente apenas criptografa o código que está sendo enviado do seu navegador para o servidor e volta. Então, ah, é apenas mais uma camada de segurança novamente, definitivamente recomendado. Talvez eu até faça um curso. Vamos criptografar Então temos nossos dados e avançar. Queremos ter certeza de que o e-mail tem um certo comprimento e queremos ter certeza de que a senha é certos gostos. Agora não vamos entrar na validação. Uh, realmente? Porque, claro, não
é muito sobre validação. Mas, você sabe, vamos fazer só um pouquinho. Só uma pequena quantidade. Então, aqui, vamos fazer div que a margem do Reino Unido ponto Js erro? Hum, sim, claro. Quando eu e dois Reino Unido alerta Reino Unido perigo Js Air hit guia teste página caloiro e eu tenho uma pequena caixa de alerta lá. Um pequeno erro. Então o que eu quero fazer agora é mostrar estilo nenhum. Certifique-se de que isso nunca apareça. Atualizar página. Olhe para isso. Ele vai embora. Incrível. Incrível. Não preciso mais disso. E vamos selecionar isso como nosso erro. Agora podemos voltar para o nosso JavaScript. Sua variável chamada erro é igual ao nosso erro, mas tipo de olhar através de todo o
D.O. D.O. M. Porque pode haver mais de uma classe ou mais de um elemento com uma classe de Js air Onley olhar na forma porque os formulários só vai ter um ou deve ter apenas um qualquer maneira. E agora podemos dizer se dados dot e-mail dot comprimento como menos do que qual é o endereço de
e-mail mais curto possível ? A em um ponto c A. Seis caracteres, certo? Então, se ele é menos de seis caracteres retornar false e fazer texto de ponto de erro. Por favor, insira um endereço de e-mail válido tinha ponto show. E vamos colocar isso em várias linhas aqui porque só vai torná-lo mais limpo para as pessoas que lêem. Então agora estamos selecionando o erro, que é fazer apenas aquele ar de jazz. Onde estamos? Ali mesmo? Ele vai selecionar isso. E então nós vamos dizer,
Oh, bem, bem, se o e-mail tiver menos de seis caracteres, bem, mostre o ar. Vamos em frente e dar uma chance. Na verdade,
não,
isso não vai funcionar porque preciso de alegações HTML 5 na cozinha. Na verdade, não, Então, como exemplo, vamos fazer se ele é menor que 16 então teste fora. Venha, olhe. Insira um endereço de e-mail válido. Por que é isso? Porque isso não tem 16 caracteres. Agora, certifique-se que você quer fazer algo assim. O retorno cai. Funciona da mesma maneira. É que nenhum código abaixo do retorno é realmente executado, e isso impede seu código de, você sabe, fazer qualquer outra coisa que eu estava fazendo. Se o comprimento do ponto da senha é menor que oito agora, ele não deve tecnicamente saber. Aqui. Este é um bom
momento educativo para todos. Não devíamos usar palavras-passe. Devíamos usar frases passadas. As senhas são fáceis de quebrar sempre que você tem, como uma senha de cinco caracteres. Sabe, se eu gosto da minha senha era você sabe, Caleb, 111 é tão fácil de invadir. Se minha senha era só senha, adivinha? É o pastor mais comum do mundo. Também é a senha mais comum que já foi invadida, mas os computadores, o que eles fazem, o que é uma força bruta é basicamente vai tentar senha e, em seguida, enviar para tentar
grupos de senhas . Eu não faço isso. Eu queria o Capital T ah, e então não é tentar senha, e então ele vai tentar senha. E vai continuar assim,
e depois, eventualmente, vai rebocar. Saiba isso e aquilo. E isso é então aquilo. Então isso e assim por diante e assim por diante até encontrar uma correspondência. Mas adivinha. Se a tua palavra-passe é
super, super, super, super longa, sabes, mesmo que seja básica e não tenha caracteres especiais, adivinha? É super seguro. Adivinha quanto tempo vai levar um computador para adivinhar cada letra até aqui e depois cada variação aqui e em cada variação aqui do que cada variação aqui em cada variação
até aqui, provavelmente nunca vai quebrar. Essa senha não precisa de números. Ele não precisa de caracteres especiais quando você entra em um banco ou PayPal e é como, Oh, você precisa, Ah, sua senha tem que ter pelo menos oito caracteres e você precisa, ah números e Como uma maiúscula e todas essas outras coisas Agora você não precisa, você só precisa de uma
senha super longa . É por isso que deveríamos usar frases passadas. Agora vou usar a palavra senha porque é com isso que todos estão familiarizados. Você sabe se eles demoram ou não. Isso é com você agora. Poderíamos dizer se sua senha tem menos de oito caracteres ou de nós poderíamos dizer, se sua senha com menos de 18 caracteres 28 caracteres não demoram muito porque as pessoas estão assustadas com isso. Muita mudança. Mas se você disse que sabe que sua senha tem que ter pelo menos 11 caracteres, isso está ficando melhor. Isso é significativamente melhor do que oito caracteres ou seis caracteres em alguns lugares usam. Então é isso que vamos fazer. Se a senha tiver menos de oito caracteres, selecionamos texto de ponto de erro. Insira uma frase secreta com pelo menos 11 caracteres. Long mostra e retorna falso. Vamos fazer um teste de tiro no Test Dot com, e meu congelamento passado pode ser qualquer coisa. Olha, Olha, a senha não está definida. Isso é porque não é senha sua senha de ponto de dados. Agora este é um objeto por uma razão, e nós vamos chegar a isso em apenas um pouco fresco. Vamos tentar isso mais uma vez. Teste atestado ponto com, colocar intestinos. Senha. Introduza palavras-passe com pelo menos 11 caracteres. Incrível. Então agora temos alguma validação básica. Agora, assumindo que o nosso código chega até aqui, podemos, uh, é na verdade que estou assumindo que o código chega neste fim de semana. Inicie o processo Ajax. Agora. As pessoas geralmente querem ver uma mensagem de erro desaparecer assim que algo está começando a funcionar. Então o que temos que fazer é em vez de mostrar, uh, digitar esconder ou esconder em vez de hoid. E isso é o teste de atualização no teste Taco, vem teste teste teste, teste teste. Vou colocar um monte de cartas de teste fazendo bem junto. Legal. Não aconteceu nada, é o que queremos. E se eu fizer um erro curto? E se eu fizer? Um longo vai embora. Isso significa que as coisas estão começando a funcionar. Agora temos tudo isso configurado na próxima lição. Eu vou realmente adicionar o código Ajax lá e nós estamos indo para Ajax nossa primeira página.
12. Nossa primeira chamada Ajax: Olá outra vez. Até este ponto, eu estava basicamente apenas comprometendo meu código para conseguir uma e outra vez. Não te mostrei os últimos vídeos, e provavelmente tudo bem. Vou te mostrar mais algumas vezes. Ah, mas eu não acho que nós precisamos ir sobre cometer uma e outra vez e outra vez. Além disso, você pode ver todo o histórico no próprio hub get. Agora, nesta lição, eu quero realmente adicionar um pouco de Ajax. Então, quando alguém estava se registrando, nós temos esse pequeno evento incrível que apenas observou um formulário para ser enviado. O registro JS forma validação básica jazz. Agora não confie apenas na validação do JavaScript. É bom para a frente, mas pode ser facilmente falsificado. E agora, se quisermos adicionar um pouco de Ajax, tudo o que fazemos é escrever o seguinte a maioria de copiar e colar porque me ver digitar um monte de coisas é apenas sim, é chato. Você pode ver um pouco mais disso no futuro. Se você me ver apenas copiar e pagar coisas, é mais provável porque eu não digitei. Eu só editei o vídeo para que você não tenha que vê-lo apenas como um aviso. Não precisas de ver duas horas a escrever-me. Isso é chato. Tudo bem, então eu apenas copiei isso lá dentro, nós temos Jake cansado Ajax. O tipo é igual a postar. Sempre quisemos informações sobre pôsteres. Se configurarmos isso para obter isso significa que as informações estão acessíveis no URL. Isso não é esperar. Queremos que ele se esconda. Embora não seja infalível, é um pouco mais seguro novamente. Essa camada extra de segurança é sempre útil. O euro não está definido. Os dados são definidos para o nosso objeto de dados. Chamamos isso de dados ok para fazer O B J para objeto. Lembre-se de mudar todos os seus lugares diferentes. Ah, quando terminarmos, nosso site vai retornar e quaisquer dados são e dados vai ser um objeto, bem como porque tipo de dados Jason e fazer isso um síncrono O que acontece se isso falhar? Isto falhou. O que acontece se isso falhar ou for bem sucedido? Sempre faça o que estiver aqui. E assim nossa forma sempre vai voltar falsa. Isso não importa. Mas o que é importante agora é esta pequena seção aqui e o que queremos é que basicamente temos a função Ajax feito executado. A função concluída é importante agora. Antes que pudéssemos fazer alguma coisa, precisamos dizer onde devemos. Ajax, a página. Então, novamente, comece com barra que vai para a raiz de sua página e vamos fazer Ajax slash register dot PHP e tudo o que eu vou fazer é Cônsul. Não registre dados, hum, conselho dot log e Se houver um erro, hum, e console log sempre só que podemos ver que ele funciona agora em nossa rota vamos nova pasta Ajax criar outra nova pasta, outro para arquivo, e vamos chamar isso registrado no PHP. E basicamente vamos pegar o que temos tirado do nosso log in file throat aqui porque nós sempre queremos que essa configuração seja adicionada. Mas se formos do nosso diretório atual para o diretório, bem, ele vai partir se lermos no topo. Aqui vai PHP log curso slash Ajax que vai ir uma barra inc slash config up enorme p que não existe. Então nós realmente precisamos mover essa pasta papa assim e qualquer dado que retornamos deve estar no formato Jason no PHP nos permite fazer isso muito facilmente. Vamos fazer. Honore é igual ao teste de teste para teste três. E, uh, vamos fazer Echo Jason e matriz de código. O Jason. Bonita impressão. E isso vai nos deixar ver com esta página realmente parece. Então, se entrarmos em Ajax menos registro, nós realmente 500 erro. Provavelmente por causa disso. Lá vamos nós, e ele está apenas nos dando informações regulares de volta. Então, o que realmente está procurando é o formato Jason. Então, se adicionarmos este pequeno cabeçalho agradável aqui que diz, basicamente, em vez de retornar texto simples retornado Jason, temos um aplicativo tipo de conteúdo barra Jason, Nós vamos jogar isso no topo. Se quiséssemos realmente ver o que sob a configuração. Certifique-se de configurar carregado primeiro e sempre retornando o formato Jason. E lá vamos nós agora onde as páginas realmente carregam de forma diferente. Se fôssemos fonte, também
parece diferente. Mas e se adicionássemos outra matriz aqui como uma matriz dentro do Andre? Certo, então nós temos, de fato, vamos realmente fazer uma matriz multidimensional. Nome é igual a Caleb, não igual Teoh gordura seta eso par valor chave. E agora temos bem, suportes
rígidos significa matriz. Temos valor, valor e um objeto. Se tivéssemos outro lá, sobrenome é igual a alto magra que vai no objeto também. E assim Jason, impressão
bonita só faz com que pareça legal para nós. Caso contrário, parece que isso, que é basicamente o mesmo, está lendo isso e isso é feio. Uh, eu sempre prefiro devolver letras bonitas. Tudo o que ele faz é apenas, basicamente, adicionar novas linhas e algumas abas. Uh, eu não vejo o problema com isso, especialmente se você está tentando depurar algo. Agora precisamos ter certeza de que esta página é Ajax porque eu posso acessar esta página sem Ajax . Como se eu tivesse ido direto para o local Slash Jack Slash Register Dot PHP E adivinha? Boom! Lá está ele. Está mostrando tudo o que preciso ver. Eu não quero isso. Então, em vez disso, temos. Se o método de solicitação do servidor é igual a postar, caso contrário morrer. Desligue o script, redirecione o usuário, faça algo independente. Então vamos realmente mostrar-lhe. Eu vou usar o método gap, que significa que apenas foi Teoh Ajax barra registrado um PHP, e eu nem sequer vejo nada lá dentro. Isso é porque eu tinha um pequeno asterisco lá dentro. Agora ainda está voltando. O Jason. Você pode dizer porque a fonte um pouco diferente. Então é realmente mover isso para aqui. Caso contrário, sempre retornou o formato regular. Vamos mover isso para nossas áreas de postagem. Bem, agora há outras maneiras de validar ou verificar se você está, defato, fato, acessando uma página através do Ajax. Uma das maneiras é através do método post. Ah, mas quero dizer, se você enviar um formulário normal, ele também vai trabalhar aqui. Que tipo de provas futuras daqui a pouco. Porque se alguém estava tentando enviar um formulário Ah, e Deus me livre, eles não estavam usando JavaScript. Bem, o que vai acontecer? Bem, se eles enviaram para este ano, este você estava fora para cortar Ajax barra registro dot PHP. O método post ainda funcionaria perfeitamente. Mas se eles têm javascript, adivinhe o que eles recebem os pequenos recursos agradáveis que vêm com ele. Agora temos você sabe, nem
precisamos fazer nada. Hum, algumas coisas que eu quero falar aqui. O 1º código Jason. Está sempre à procura de uma corrida. Portanto, certifique-se de que o array sempre existe. Não precisa necessariamente ser acusado. Poderíamos até chamar de retorno ou retorno em vez de retorno. Ah, a saída. Você sabe, desenvolvedores
Python, eles reclamam. Desenvolvedores Javid Java são como PHP. É tão ruim porque, você sabe, você pode simplesmente sair a qualquer momento. Mas honestamente, isso é uma coisa boa, porque por que ele precisa executar qualquer outra coisa depois disso? É como uma função quando uma função tem aquela palavra-chave de retorno pouco. Nada abaixo disso. Dentro da função é renderizada. Não é executado. A mesma coisa com a saída. Não há nenhum ponto. Mesmo que seja apenas três linhas, não
há nenhum ponto em execução. O resto. Apenas boom, saia. Você está farto de fazer o que precisa para dilatar. Então agora precisamos registrar o usuário, mas precisamos de algumas funções diferentes. Primeiro, precisamos ter certeza de que o usuário não existe. Precisamos ter certeza que o usuário pode ser adicionado, uh, e é realmente adicionado, e depois fora. Queremos retornar as informações apropriadas de volta para JavaScript para nos redirecionar agora com PHP, podemos usar um cabeçalho para redirecionar pessoas. Tudo o que temos que fazer é digitar, cabeçalho, localização. Acho que
o Google Dot com. Certo? E isso vai redirecionar alguém para o Google, não o que queremos. Não que isso vá funcionar de qualquer maneira, porque adivinha? O usuário tecnicamente não está atingindo sua página Ajax. Então redirecionar não vai funcionar. Quero dizer, ele vai redirecionar a página de qualquer Paige que você está indo para s para que possamos dizer em vez de ir de qualquer página a correr Agora, vamos realmente tornar isso um pouco visual. Então alguém Ajax é esta página. Eles preencheram a informação do centro de clique formulário é recolhida em JavaScript vai para a nossa página de registro de
barra Ajax são arquivo PHP. Mas se houvesse um redirecionamento lá, poderíamos redirecionado para fazer login dot PHP vai tentar executar isso e disse, mas pode não manter seus cabeçalhos postais. Então, uma maneira melhor é fazer o que você tem para dio e retornar um valor de redirecionamento ou uma
parte de redirecionamento de um objeto de volta para javascript retornará. Poderíamos dizer redirecionamento de retorno é igual a, e então, uh, vamos apenas indexar PHP. Isto foi um redirecionamento. E para mostrar o que quero dizer, se o redirecionamento de pontos de dados não é igual a indefinido, que significa que está definido, ele existe. Poderíamos dizer que a localização do ponto da janela é igual ao redirecionamento do ponto de dados. Agora, o que acontece quando executamos este teste no teste dot com Teste S S S S S S S EZ teste. Lembre-se, 11 caracteres ou mais. E olhe para esse ponto de índice PHP. Isto foi um redirecionamento. Não está no JavaScript dela. Não está em uma página de registro. Não, isso está tudo em nosso PHP. Então agora temos o nosso servidor dizendo javascript para onde mover a pessoa quando eles são feitos. , Na verdade,não
queremos isso. Queremos que uma página futura que não criamos, chamada painel e painel vai forçar as pessoas a fazer login. Isso é algo para vir no futuro. Não é algo com o qual precisamos nos preocupar. Precisamos criar um usuário primeiro. E isso é tudo o que há para Ajax. Agora, como mais um exemplo, vamos voltar. Nome é igual a Caleb. A Colleen. Nada extravagante. Mas lembre-se, isto é um array. Sabemos que isso não é array. Basicamente vai pegar aquele obre,
Jason, Jason, codificá-lo e jogá-lo de volta para JavaScript. Agora podemos ver como isso se parece e podemos acessá-lo. Podemos dizer alertar esses dados, esse nome de volta para sua página e eu vou testar esse teste ponto com. Eu realmente não me importo que tipo era no momento. E quando eu clicar em registrar, lá vamos nós. Aí está o meu nome e nós podemos realmente não, poderíamos tê-lo visto. Houve um redirecionamento deles porque muito eficiente. Aí está o meu nome. Ele sempre aparece. Sempre, sempre corre. Nada aconteceu lá, mas havia um cônsul registrado para um dado, que é o que ele retornou. Adivinha? Vai nos redirecionar de volta para o painel, e vai definir nosso nome como Caleb. E vimos que quando enviamos o formulário, ele dizia alerta. Caleb chamando isso foi de novo, PHP Isso não era de JavaScript. Isso foi do PHP. Agora tudo o que temos a fazer é consultar a nossa base de dados. Esse usuário existe? Saiba se eles não existem, crie um. Se o usuário existe, talvez tente registrá-los em Simple como isso Então, no próximo último, o que vamos fazer é criar um novo usuário. Mas antes de ir em frente, obter status. Obter anúncio uh, obter Apenas obter status vai unroll ou desvendar. O Diretório Ajax vai nos mostrar o que tem lá dentro. Obter commit adicionado primeira página Ajax obter push origem mestre. Lá está ele exatamente assim. Então, na próxima lição, vamos em frente e realmente criar um usuário.
13. Registro de usuários parte 1: Tudo bem, agora o que temos que fazer é procurar um usuário porque não podemos ter e-mails duplos e na mesma tabela. Porque, lembre-se, eu vou voltar aqui e clicar nos índices de estrutura. O e-mail tem que ser único. Eles nunca podem ser mais do que um dos mesmos e-mails. Então, com isso dito, vamos em frente e dar uma olhada no nosso código Ajax Register para que saibamos que temos acesso ao Khan porque Khan está na configuração como tipo e a configuração é carregada aqui, que significa que temos acesso a essa variável. Agora isso está dentro do nosso alcance. Se você está acostumado com o meu SQL I isso vai parecer um pouco diferente se você está acostumado apenas a minha SQL. Enquanto aqui está um pequeno deleite para você pode pedir que você foi obsoleto ID por um tempo. Tem uma tonelada de falhas de segurança. Use PDO, que é meu SQL I, que é a função baseada, ou PDO, que é uma classe baseada. Uso DOP porque é melhor. É mais fácil de ler. É apenas a base de classe futura é onde ele está, e vamos lentamente levá-lo lá, então precisamos ter certeza de que este usuário não existe. O que? O que temos que fazer aqui? Temos que consultar o banco de dados. Então vamos digitar. - Tudo bem. Usuário é igual a con Preparar Selecionar Usuário I d. De usuários Onde o usuário i d é igual ao usuário. Eu limitaria um. Agora deixe-me explicar isso rapidinho. Estamos selecionando apenas o usuário I D Row, o que significa que estamos fazendo falta de justiça. Nós vamos armazenar isso em uma sessão mais tarde, e isso vai para como isso vai ser, como o aplicativo sabe que você está ou não conectado. Nós vamos olhar na tabela do usuário direita usuários tabela ali mesmo. Vou procurar o usuário i d. onde a idéia do usuário é igual a frio e uso. Pronta? Isso é estranho. Mas essencialmente, isso é apenas procurar onde essas idéias de usuário são iguais ao usuário I D. E isso é realmente totalmente errado. Deve ser. E-mail é igual a e-mail, então estamos procurando qualquer que seja o e-mail, e vamos fazer um limite de um. Isso significa que se tivermos 500 milhões de usuários e encontrarmos o endereço de e-mail que estamos procurando. Digamos que dentro da 1ª 10 Rose,não
parece mais. Digamos que dentro da 1ª 10 Rose, Não faz o resto do que é suposto fazer. É exatamente o mesmo que está retornando de uma função ou usando este êxodo em breve é feito. É feito que torna o seu serviço ainda mais rápido. É por isso que usamos o Limite 1 agora. O objetivo aqui é idealmente, ele passa por cada linha e não existe, então espero que ele passe por cada linha. Se tivéssemos 500 milhões de usuários, não
temos. Portanto, este uso não vai existir. Mas vamos comprar alguma coisa. Então este pouco frio em que você vê lá dois pontos e-mail eram vinculativos. É aí que temos Ah, usuário
fino é um objeto e usamos o método por parâmetro Param e fazemos e-mail e e-mail PDO param força Vá em frente para liderar essa fita e executar. E então o que isso vai fazer é ligar esse valor com esse valor. Então, Caleb, por que não escrevo um e-mail? Bem, a coisa boa sobre PDO é que você pode realmente puxar suas variáveis fora de sua
instrução SQL . Isso significa menos chance de injeção SQL e PHP pode lidar com sua variável da maneira que ela
precisa . Então agora você não tem algum usuário mal-intencionado chegando pensando que há digitação que seu e-mail é usuários de tabela suspensa. Oops, usuários de mesa
deixados cair e ser injetado aqui na verdade seria mais parecido. Lá vamos nós algo como algo que onde e-mail é igual e essencialmente o que isso vai dizer. E esta é uma lição rápida sobre injeção de SQL, onde o e-mail é igual a. Realmente não importa. Você poderia ter apenas colocado um lá e usuários de tabela bêbado ponto-e-vírgula, SQL diz. Bem, esse é o fim da declaração. Então, não execute mais nada, deixa cair sua tabela de usuários como mau PDO tenta tirar algumas dessas coisas para fora, tenta certificar-se de que, em vez de apenas o apóstrofo, temos apóstrofos de barra, que tivemos acesso a antes através da minha string de escape real SQL e todas as outras coisas de função nomeada
desagradável. Mas desta vez temos DOP do nosso lado. Agora nós não queremos confiar completamente em PDO, e nós não queremos confiar completamente no PHP, e nós também não podemos apenas usar e-mail porque e-mail ainda não existe. Na verdade, o que realmente é é postar e-mail. Agora, como conseguimos isso? O e-mail Post vem do método post, que é o método post Ajax. E o e-mail vem desse objeto de dados. Bem
, vem de lá. Agora temos o Ajax a falar com o servidor dela. Podemos trabalhar com isso agora. Você não pode simplesmente digitar algum e-mail no email dot comum aqui. Isso realmente tem que ser uma variável. Tem que fazer referência a algo que faz parte da magia DOP. Mas, novamente, não
queremos apenas confiar no PHP. Por que teríamos? Por que confiaríamos em algo que não criamos? E mesmo que o tenhamos criado, ainda não devemos confiar nele. Como desenvolvedores, você tem que perceber que você é inteligente. Você é uma pessoa inteligente. Mas provavelmente há pessoas
mais inteligentes e maliciosas lá fora do que você, e eles vão encontrar uma maneira de estragar isso e destruir seu aplicativo. Então, como contornamos isso? Bem, podemos usar minha string de escape real SQL I ou se eu passar para minhas contas get home eu tenho que ir para ter dot com barra Caleb Antalya cortar filtros de dados de usuário PHP e filtrar PHP. E eu vou fazer toda essa aula e eu vou criar um novo onde nós um novo arquivo e eu vou chamá-lo de filtrado. PHP. Jogue isso lá e eu também vou Teoh, copie isso lá porque nós não temos pessoas tentando acessar isso involuntariamente. E então o quê? Este pequeno recurso faz esta pequena classe filtro string E se você fez e-mail, por exemplo, vai filtrar string e a string que você deseja separar. Então, na verdade, isso é desnecessário, porque isso é apenas ah, basicamente permitir que a nossa seja nossa. É de um projeto antigo. Nós vamos filtrar a variável, nós vamos desinfetar a corda e nós vamos nos despir. Ah, baixa prioridade. Basicamente, se um macho ela não é permitido águia de uma criança para falsa águia de HMO para falso, então também adicionar este e há caso contrário apenas sanitizado caracteres especiais completos, que permite codificação html. Então, essencialmente, o que isso está fazendo é PHP está indo. Vai filtrar a variável. Está indo Teoh, fazer o que pode fazer para ter certeza de que essa variável é realmente uma variável e que poderíamos ir filtrar string e em nossa configuração. Precisamos de ter isso aí. Agora. O e-mail é presumivelmente seguro. Nós também queremos ter certeza de que e-mail, cadeia
física para minúsculas e e-mails. É sempre minúscula. Ou em vez de ter isso aqui, enviamos e-mails. Nós poderíamos fazer mais baixo e vamos meu SQL lidar com isso. E vamos à minha escola. Vamos deixar meu SQL lidar com isso. PHP não precisa fazer isso. Minha escola é super rápida coisas básicas como essa. Se escrevermos localizar contagem de função de usuário é igual a um usuário existe outro. O usuário não existe. Peça-os agora no Google, certo? Então, o que acontece se o usuário existir? Bem, nós também podemos verificar se eles são capazes de fazer login. Mas em vez de fazer isso agora, o que vamos dizer é, erro de
retorno é igual a você já tem uma conta, e vamos voltar para o nosso JavaScript e aqui porque este status retornado 200 http é muito Importante. 200 significa que tudo é um OK, e então se nós temos mais, se o erro de ponto de dados não é igual a indefinido, isso significa que há um erro e nós dizemos sempre texto ponto é igual a qualquer erro de ponto de dados é e mostrá-lo e Vamos colocar isso em várias linhas para legibilidade e lá vamos nós. Então, se alguém não tem conta, isso já vai aparecer. Agora, o que acontece se o usuário não existir? Bem, temos que fazer uma conta para eles. Então nós fazemos declarações diferentes que de selecionar, nós inserimos. Então, em vez de eu estava prestes a digitar luta o que eu queria digitar era no usuário é igual a con preparar, inserir em usuários. E no que queremos inserir? Bem, nós queremos inserir o você sabe e a senha, então eu vou apenas configurar isso, e então nós vamos dar um passo atrás e realmente criar a senha em si. Então vamos inserir em usuários e-mail, senha, esses ar, o Estas são as colunas. Então, temos e-mail. Um passador eles se parecem com Rose. Na verdade, são tecnicamente colunas. Ah, e então valores é e-mail, senha e usuário. Nós vamos vincular nosso primeiro e-mail parâmetro Tiuna PDO Param string. Sabemos que isso é permitido, a propósito, esta string Param é porque PDO é saber que PDO sabe que isso vai ser uma string enquanto você está dizendo que na verdade vai ser uma string. Se fosse apenas um número, como se você estivesse procurando um usuário por seu i d ah em vez de, você sabe, fazer isso em vez de e-mail, poderia ser como usuário I D e usuário I d poderia tecnicamente ser uma string porque minha escola tecnicamente armazena tudo é cordas que poderíamos digitar PDO pirâmide int ou se fosse um valor não, seria nenhum eso. Temos algumas opções diferentes lá. O que estamos trabalhando agora é apenas as cordas e copiar o boom da senha. Copie isso. Executar tropas executar, apagar todo o resto.
14. Registro de usuários parte 2: isso vai adicionar uma variável chamada senha que não existe. Como criamos isso? Bem, nós precisamos realmente criar um hash. Então o que fazemos é criar uma variável chamada senha, e não temos que criptografar este passado ou qualquer coisa porque não são criptografados. Mas eu acho que, filtro, nós não temos que executar filtrar muito nada nele porque ele vai ser criptografado de qualquer maneira, então ele pode literalmente ser descartado usuários de tabela. Poderia estar literalmente acabando com o mundo. Mas vamos transformar essa corda em algo que é completamente ilegível. E fazemos isso com hash de senha. Agora, confie no PHP com esta senha não dura, hash, post password e senha padrão. Então o que isso vai fazer é pegar sua senha, certo? Você pode confiar em pH para uso como e vai transformá-lo em um hash. Agora, é
que isso se parece? Vamos voltar a registrar. Vamos jogar algo aqui e vamos embora. Uh, sim. Passes iguais a,
uh, eu não sei. Olá. Meu nome é Caleb Echo. Passe por isso. Vamos mudar. Estou fazendo isso só para mostrar o que isso parece. Senha ecológica, que é a nossa página de atualização de saída com hash. Esta é a senha armazenada como uma string. Esta é a senha que é armazenada pelo PHP. É Ele tem seu hashing lá, que é exclusivo para cada usuário. Tem a senha real, tipo. Lá dentro. Tem seus próprios métodos de verificação. É sólido. Não, eu tenho que te dizer para nunca,
nunca , nunca, nunca, nunca, nunca, nunca, nunca armazenar uma senha em texto simples. Você quer que seus cartões de crédito sejam roubados armazenados em texto simples. Você quer sua senha. Então, em toda a sua vida aqui, toda
uma vida online arruinada. Armazene sua senha em texto simples. Você quer arruinar a vida de outras pessoas, armazenar suas senhas em texto simples, o que provavelmente seria seguido por um processo muito grande. Portanto, tenha muito cuidado para que você
nunca armazene senhas ou informações confidenciais em texto simples. Fim da história, sem “se”, “e “mas”. Apenas encripte. E estamos falando de uma maneira de criptografia não ser capaz de descriptografar senha. Então temos um hash de senha. Podemos usar essa senha aqui. Incrível! Incrível. Incrível. Agora, se quisermos o usuário, eu d. Bem, podemos ir em consulta. Nós temos basicamente um usuário seleto i d do usuário onde o e-mail é igual a. Na verdade, o que eu queria aqui era que eu esqueci totalmente aquele mais baixo. Ah, mas poderíamos selecionar o usuário I d de usuários. Onde e-mails você para reduzir o limite de e-mail um. Podemos fazer isso de novo. Ou poderíamos apenas dizer usuário i d é igual a con última inserção i d que seria o que quer
que isso vai ser. Agora sabemos que vai ser um, mas pode ser 255.401 pelo que sabemos. Agora, se queremos assinar o usuário em nós criamos usuário sessão, I d é igual ao usuário i d e o que eu vou fazer aqui é isso é chamado de casting, certo? Então isso provavelmente voltará como um inteiro. Mas se selecionássemos o usuário I d. a partir
daqui, isso seria uma string. Agora podemos falar disso um pouco mais tarde. Eu só gosto de ter certeza de que o que eu estou enviando de volta para JavaScript é exatamente o que Javascript acha que deve ser. Não deve pensar que um é uma corda porque um não é o mesmo que um não é o
mesmo que um. Tecnicamente, essa é diferente. Esses são diferentes. Isso é o que meu SQL tenta retornar. Isto é o que queremos devolver. Isto é só um carro alegórico. Então tem pontos decimais. Agora tudo isso é bom. Podemos redirecionar. O redirecionamento sem retorno é igual ao PHP do painel. E então poderíamos dizer,
bem, bem, mensagem de
mensagem é igual a bem-vinda ou algo assim que eu recebi e vamos nos livrar disso. Já não é útil. E assim, de qualquer forma, voltamos. Vir em troca vai devolver algo que existe. E vai ser Jason Coda para retornar ao JavaScript. Se houver um erro vai mostrar no ar. Se houver um “se “funcionar, vai nos dar um redirecionamento. Nós poderíamos até mesmo dio retorno está logado é igual a true. E se quiséssemos, poderíamos dizer que um é falso. E então em nosso JavaScript, poderíamos dizer Ah, em vez de se erro de ponto de dados, dizemos se dot uh oops está logado é igual a true. Poderíamos fazer outra coisa. Não vamos fazer isso. Temos informação suficiente. Não precisamos enviar nada extra de volta. Então vamos em frente e dar uma chance a isso. , Na verdade, notei isso da última lição também. Não, nada de inestimável ou algo assim. Registre o teste no test dot com. Teste de elenco no teste direito três vezes. Oh, olhe para isso. Certo, então temos um erro de 500. Então, como eu notei isso? Bem, o mas não fez nada no meu cônsul. Eu tenho um pequeno X um, e ele diz erro interno post 500. Eu clico nisso. E isso me traz para a pequena área de rede onde diz registrar X h r. que é x http pedido ou http xml. Pedido tecnicamente. Eso em x h r significa JavaScript significa Ajax, que é tecnicamente JavaScript, retornar nosso clique desculpe na resposta do registro. Nada está voltando agora. Por que é isso? Por que não há nada voltando? Bem, dados de
forma de onda agora, o que acontece se o fizermos? Ou um é igual a um, e nós só queremos depurar isso. Oh, bem, olha, nada está aparecendo. Então, em nossa configuração, vamos em frente e definir permitir que grupos permitem erros e pop isso lá. Um relatório menos um significa tudo que eu e eu definimos exibição. Ares está ligado. Vamos ver o que acontece. Olhe para isso. Recebo um erro real. Agora. Acredito que esse seria o Jason também. E não queremos isso. Então vamos com isso. Oh, sob cinco e-mails variáveis. Bem, isso
não é interessante? Ok, bem, nós sabemos que isso vai ser indefinido porque, bem, seu método post e nós não estamos usando post nós estamos atualmente usando Get. Mas aqui temos o problema real. Sintaxe, erro ou violação de acesso. Yada, blá, blá, blá. Ah, perto de e-mail. Senha. E isso é porque eu fiquei um pouco animado demais e eu coloquei o mais baixo no lugar errado que deveria ter sido se ele iria inserir um e-mail minúsculo. Agora. O que podemos fazer é voltar. Podemos tentar isso mais uma vez. , Na verdade,de novo. Filtrar online. Este filtro linha oito. Isso foi um problema. Esse teste de teste de teste é a senha Indefinido? Porque lembra-te, estava a tentar alertar o meu nome. Bem
, já não existe. Voltou é indefinido. e olhe para isso. Então estamos logados. Era para nos redirecionar. Está a fazer o seu trabalho. Só não acertei o JavaScript. Então agora eu basicamente comentei o redirecionamento. Vai redirecionar. Livre-se dos alertas. Isso é desnecessário. Livrar-se do registro de concertos desnecessário ou que conselho augat necessário. Refresque. E, na verdade, eu vou criar outro usuário, porque olhe para isso. Eu vou para a minha mesa e eu tenho o usuário um. Eu recebi o e-mail que eu adicionei, eu tenho a senha, qualquer que seja o inferno que realmente é e o tempo que eu registrei, qualquer que seja a hora do servidor na verdade, que, estranhamente, é como morto. Normalmente, isso é como várias horas de folga quando se trata de desenvolvimento local, então sabemos que isso está funcionando. Vamos testar esse teste ponto com. Vamos tentar outro. Vamos usar exatamente o mesmo endereço de e-mail. Oh, você já tem uma conta. Por que é isso? Bem, porque o teste no test dot com já existe, então lá temos. Temos uma solicitação Ajax criando uma força de usuário. Agora tudo o que temos que fazer é criar uma função de login que basicamente diz, Oh, esse e-mail realmente existe em nosso banco de dados? Se sim, ok, vá e puxe a senha. E se essa senha, o hash corresponde ao novo hash que vamos criar para qualquer frase-passe que eles usaram para fazer login e vamos deixar o PHP fazer a correspondência de algoritmo porque, como humanos, nós meio que fazemos algoritmos. Mas computadores são incríveis quando esses algoritmos combinam e não é o mesmo é como, você sabe, um é igual a um eles são muito, muito diferentes. Mas se eles coincidirem lá, entregamos o usuário. E quando assinamos esse usuário, podemos redirecioná-lo de volta para o painel. Então é isso para esta lição. E a próxima lição. Vamos em frente e realmente criar o login
15. Login do usuário via Ajax Parte 1: Olá. Olá. Olá. Já criamos registro via Ajax. Isso foi muito legal. Agora vamos criar o login real via Ajax. Também é muito legal, mas requer um pouco algo que é um pouco diferente do que
normalmente fazemos . Ah, e em vez de usar um hash de senha, o que vamos fazer é basicamente rehash a nova senha e verificar se os hashes
para são, você sabe, combinando. Eles não estão tecnicamente combinando comparado com a corda. Mas os dados que os algoritmos acabam produzindo são na verdade os mesmos. Então vamos começar indo para fazer login dot PHP E isso faz alguma coisa nova? Claro que não. Tudo bem, bem, o que temos que fazer aqui? Vamos entrar em nosso log in dot arquivo PHP e temos Js log in. Bem, vamos ao nosso arquivo principal. Não temos Js Logan. Então o que podemos fazer é copiar e colar é agora isso quebra. Uma das regras fundamentais da programação é que estamos copiando e colando um pouco de código aqui, e com toda a honestidade, não
deveríamos ser. Devemos escrever uma função que lida basicamente com tudo isso. Mas este não é um zelador, é
claro. Então não temos que seguir essa regra. No entanto,
deixareiisso com você em suas futuras aplicações para otimizar esse casaco. deixarei No entanto, Então, uh, copiando ritmo e temos que ir linha por linha, caso contrário nós definitivamente vamos perder algo estranho sobre o login do jazz. Isso já faz sentido? Js log é uma classe evitar erro padrão. Isso existe? Não, eu não acredito que isso aconteça. Então vamos. Bem, na verdade, na verdade, o que não registramos. Copie isso, literalmente. Copie isso. Acabou. Isso é exatamente a mesma classe e tudo o que lá vai olhar para a frente e formar o e-mail e a senha. Temos um e-mail. Temos a senha para aqueles que coincidem com esses tipos. Tipo adequado de e-mail e senha. Isso é perfeito. Se enviarmos e-mails com menos de seis. Sim. Nunca. Se sua senha for menor que 11, eles estão assumindo. Ok, lá vamos nós. Queremos que as alterações façam login. E olha para isso. Não mudamos quase nada aqui. Ah, nós não mudamos realmente nada. Tudo o que mudamos foi isso. E isso é tudo o que vamos mudar agora. podemos otimizar isso muito, muito facilmente. E em vez de ter todo esse ouvinte, podemos basicamente subir aqui e podemos dizer para fazer se vamos fazer uma vez Eri aqui Então eu me formei em tem classe Js entrar? Então faríamos o login. Caso contrário, Ajax registrado em PHP. Então, se isso é um registro, informe, tente, faça login, caso contrário tentamos registrar, isso é o que poderíamos fazer. Não vamos fazer isso. Quero manter este código. Embora seja muito mais longo, eu quero mantê-lo separado apenas para ser capaz de ir em experiência mais tarde. Agora este é um bom ponto para continuar, otimize seu código se o seu interesse otimizar código. Mas geralmente eu espero um pouco mais e otimizei meus treinadores porque eu não tenho certeza se este registro vai realmente ter mais alguma coisa agora. Eu sei porque eu fiz tantos. O registro de Lockett não vai ter mais nada para este uso particular, mas se este tempo e teve que fazer outra coisa, eu posso não querer usar exatamente o mesmo código para o registro e login. Então vamos para o registro dela são Ajax barra registradora página. Vamos dizer que isso é se livrar disso e antes de fazermos qualquer coisa porque eu quero fazer isso da última vez, obter status. Obter anúncio. Adicionamos nosso filtro. Adicionamos um login. Nós modificamos a configuração de índice, principal e registro. Então vamos em frente e adicionar tudo isso. Além
disso, é uma prática
muito, muito boa para entrar em realmente ler cada linha. Só que não demora tanto, porque às vezes há algo lá que você não quer necessariamente cometer. Então se comprometa. M adicionou registro de registro via Ajax
Ajax, Ajax obter origem push Mestre do boom feito. Sim, aí está. Vamos checar isso. Já nem estamos no repo certo. E olha para isso. Temos uma tonelada de informações no seu doce. Temos novos arquivos. Temos todo o tipo de coisas na sua leitura incrível. Eu precisa de um pouco de amor, mas tudo bem. Isso é apenas uma simples redução. Agora, para o log in. Vamos continuar e duplicar essa chamada duplicada que faça login novamente. A duplicação tem que passar por tudo. Ah, estamos usando o e-mail. Nós também vamos estar sempre usando a senha. Certo, precisamos achar o usuário? Sim, nós temos. Precisamos encontrá-los pelo endereço de e-mail deles, e precisamos obter sua senha para que não queremos apenas o usuário deles. Você pesa também quer sua senha se o usuário não existe? Lembre-se, então o que estamos fazendo aqui é que estamos selecionando usuário I D e senha da tabela do usuário, onde o e-mail do usuário é igual a qualquer e-mail que eles adicionaram no limite de formulário um. Agora, se o usuário existir doce, tente assiná-lo. E se o usuário não existir, adivinhe o que ele precisa para criar uma nova conta. Então vamos criar um erro. Vamos fazer um novo registrado no PHP, e tudo isso está indo para dio é se o usuário não tem uma contagem, vai dar-lhes um link para ir criar conta, porque porque não que há algo para não mencionar. Você pode realmente alterar os cabeçalhos. Você pode adicionar um status 200. Se tudo está indo bem, você pode adicionar um 4034 proibição você pode adicionar um 302 ou três um para Rita Rex, Hum, e Jake Weary E sua função Ajax pode realmente pegar naqueles http diferente. O status é, mais uma vez, por causa da simplicidade. Só estamos fazendo dessa maneira. Vamos adicionar um erro aqui, ou vamos tentar assinar alguém e redirecioná-lo. É tudo o que estamos a fazer. Mas há realmente muito melhor maneira um pouco mais perto de em um P I onde é um pouco mais apátrida, e você pode usar cabeçalhos http para basicamente dizer aos outros desenvolvedores como, Oh, quando eles estão tentando entrar lá recebendo um quatro ou três, Bem, por que eles estão recebendo um 43? Vem com outro erro? Faz mais alguma coisa? E então, de repente, se você tiver, como um 403 você é bem sucedido. O código Ajax não está mais no Ajax feito. Provavelmente estaria no Fail, ou estaria aqui onde acreditava que seu código de status. E então colocamos, como 403 função e, em seguida, alerta, não permitido ou algo assim para que pudéssemos fazer algo junto. Essas linhas não iam entrar nisso se você quiser. Você definitivamente pode. Mas este curso deveria ser, você sabe, encurtado doce. Então vamos em frente e o usuário existe. Vamos fechar isso porque eu não quero confundir isso com nenhum outro código. E agora o que precisamos é pegar o usuário e a senha. Então vamos em frente e dizer que o usuário é igual a encontrar Oops. Encontrar usuário, buscar DOP, buscar uma meia. Uh, e o que isso vai fazer é criar e ele Ray Então,
usuário, usuário, agora de repente parece que o usuário I d. Ziegel para um e senha de usuário é igual a bem, seja lá o que diabos isso é. E então isso é essencialmente o que vai criar para nós, certo? Então agora nós temos acesso a estes sem realmente ter que escrevê-los porque ele é armazenado
no banco de dados para nós. Mas eu gosto de elenco porque é uma boa maneira de saber com o que você está trabalhando. Ele também tipo de configurar você para python no futuro e outras linguagens que dependem, você sabe, há um pouco mais estritamente escrito PHP não é estritamente escrito onde você sabe que poderíamos . Ideia certa do usuário é igual a um. E poderíamos dizer,
uh, uh, se o usuário I d é igual a um.
16. Login do usuário via Ajax Parte 2: Certo. Então ele vai tentar combinar com isso e aquilo e isso vai voltar a ser verdade. E isso nem sempre é aplicável em outros idiomas. Então o que eu gosto de fazer é user i d é igual a Inter. Jurado, basta lançar. Usuário I d na senha. Não precisamos fazer nada agora nesta área. Precisamos validar o usuário. Como é que fazemos isso? Porque temos essa senha grosseira. fazemos ideia do que é isso, e isso é bom. Não precisamos saber o que é isso. Então, por causa da simplicidade, vamos tomar senha é igual a senha do usuário. Vamos também mudar isso para o usuário I d. Então estes são apenas um pouco mais padronizados. Sabemos com o que estamos trabalhando mais tarde, então não temos que usar o array bruto basicamente agora, antes de eu continuar, A razão pela qual eu não coloquei isso em uma string que eu poderia e seria perfeitamente bom é porque este senha já é uma força. Quando nossa consulta de banco de dados volta, ele basicamente pensa que é que essa não é a nossa senha. Essa é a nossa senha. E ele volta em uma string que sabemos que está na string porque entre aspas, nós não queremos isso. E por que fazer isso? Porque toda a string vai fazer vai transformar um em um que está sempre indo para dio então a mesma coisa agora para verificar o usuário. Nós não fazer a verificação de senha. Queremos verificar sua senha com seu hash. Então backtracking aqui senha é igual a postar senha Google que nunca é enviado para o banco de dados que não precisamos de ar limpo, despi-lo ou qualquer coisa. Esta senha. Vamos mudar o nome do hash porque tecnicamente, é um hash. Então agora temos nossa senha. Estamos comparando a senha do usuário com o hash. Isto é, então o que ele estava basicamente tentando fazer é que esta era a minha senha. Tipo, esses combinam? Não, mas o PHP é inteligente o suficiente para descobrir como combiná-los. O usuário está conectado inválido inválido usuário E e-mail combinação de senha e para retornar ao ar. Vamos até mesmo dizer que em válido um usuário até mesmo uma combinação de senha faixa, e aqui poderíamos fazer retorno. Redirect é igual a onde quer que vamos dizer para redirecionar qual só vai ser a página do painel PHP. Mas também precisamos definir um usuário de sessão I d. É igual ao usuário I d. Agora a razão pela qual eu lancei este pouco mais cedo não só porque é uma ótima prática, especialmente se você estiver indo para escrever de qualquer maneira linguagens como Python no futuro. Mas agora esta sessão também é definida como um inteiro. Não é mais uma força. Isso importa? Não está no PHP? Na verdade, não. É só uma boa prática. Agora há uma coisa que você precisa saber. primeiras sessões completas são pequenos arquivos armazenados no servidor, assim como um cookie normal no seu navegador. Mas em vez de estar no seu navegador, adivinha? Está no servidor. Então, se você tem 100 milhões de usuários e tem 100 milhões de pequenos arquivos e seus servidores vão diminuir a velocidade, você tem que se preocupar com isso agora? - Não. Se você está assistindo este vídeo, você provavelmente não está criando um serviço que vai ter 100 milhões de pessoas no próximo ano. Então, sim, muito tempo para aprender. Então não se preocupe com isso. A outra coisa que você precisa saber é que as sessões precisam estar em Stan Shih ated por padrão. Eles não estão excitados. E só por essa razão, também. Então, se formos para a nossa configuração e nos certificamos de que nossas sessões estão sempre
ativadas, as sessões estão sempre ativadas, poderíamos dizer, se é definido qualquer sessão. E isso é uma super variável global, assim como nós escrevemos post ou get ou request ou server. A sessão é a mesma coisa e tudo o que queremos fazer é começar e novamente. Caleb, você está tendo um dia ruim hoje digitando. Mas tudo o que estamos fazendo é marcar a sessão. Apenas começando estava dizendo comportamento de pH que poderíamos estar esperando uma sessão para entrar. Então, talvez apenas permita que isso aconteça. Vá em frente, diga que configure interna. Nós temos nossa sessão em seu Nós temos um usuário, eu d incrível. Incrível. Incrível. Agora vamos em frente e ver o que aconteceu. , Na verdade, antes de fazermos isso, temos um erro que retorna html legal. O problema é nosso erro não mostra um homem. Agora ele faz. Estava mostrando apenas texto antes das diferenças. Ele vai levar o seu HTML e ele irá mostrá-lo como texto versus realmente usando o método HTML aqui será realmente processado como HTML regular. Então vamos em frente. Teste de atualização no teste Duck. Tessa Test dot com Test test test test test. Bem,
olhe o paciente encontrado. Tessa Test dot com Test test test test test. Bem, Isso é incrível, porque não temos o Dashboard Dot PHP. Então, tudo está realmente funcionando e estamos assinados agora. Agora, como sabemos onde assinou? Bem, vamos em frente e vamos pegar índice e vamos duplicar e chamar esse ponto de painel PHP e eco sessão usuário I d é seu usuário. Eu sairia de tudo. Vamos dar uma olhada nesse é o seu usuário. Agora, se eu estiver aqui no modo incógnito, nada acontece. Olhe para aquele usuário de índice indefinido Por que isso? E isso é basicamente reclamar que isso não existe. Mas porque nos conectamos, ele existe. E agora que sabemos que pode ou não existir, podemos agora dar certas informações às pessoas. Podemos dar-lhes um feed de notícias com curadoria. Poderíamos permitir que eles acessassem seus e-mails. Poderíamos permitir que enviassem mensagens a outras pessoas que também tenham sessão iniciada. Temos todo este mundo que se abre para nós com apenas um pouco de verificação, e tudo o que é é um pequeno número. E neste caso é o número um. Isso é tudo o que é agora no futuro, vamos usar esta sessão usuário I d como a idéia real do usuário para ir e pegar outras partes de informação. Então não apenas definir elogiado é igual a verdadeiro, porque isso não é útil. Bem, claro, o usuário está logado, mas ,
como vamos conseguir o usuário deles? E então quais sessões você sessões por miss? As sessões persistem. Página sobre página sobre página. Então, se eu pegasse isso e eu fui até Vamos para registrar um é o usuário i d. E se eu fosse fazer login Um é o usuário I d. Então agora temos essa informação que existe em cada página sem que tenhamos configurá-la. Eles não precisam assinar em todas as páginas. Não precisamos usar um cookie, é seguro no servidor. E eu realmente vou fazer isso porque eles são feios e nós não queremos que eles
mantenham o painel um e vamos apenas ir em frente e nos livrar de qualquer coisa que está lá dentro porque isso é desnecessário. Google legal. Então, nesta lição, o que fizemos foi criar uma página de login do Ajax. Temos uma página de registro agora. Nós só precisamos forçar as pessoas a fazer login em determinadas páginas como o painel em, não ter um erro aparecer, e precisamos ser capazes de logout de pessoas. E é isso. Isso é tudo o que há para ele. É bem simples agora. Há maneiras de tornar isso muito mais complicado, mas não vamos entrar nisso porque realmente,neste
momento,
tudo o que neste
momento, você precisa é de um sistema de login. Agora, antes de decolar, obtenha status. Obter anúncio. Não deseja adicionar talvez ainda eu quero adicionar a configuração? Sim. Então eu quero adicionar o registro no caso de você fazer. Quero adicionar o ritmo do painel. Sim, vamos aos animais obter status. Obter commit em, adicionado Le Guin via Ajax. Obter origem push, Mestre, lá vamos nós. Isso está lá dentro. Vamos voltar para você. Chame Hub! Olhe para isso, Ajax acrescentou. Faça login via Ajax. Doce. Tudo está funcionando como esperávamos. Legal, legal. Então eu vou vê-lo no próximo vídeo
17. Force Login em determinadas páginas: Tudo bem. Bem-vindo de volta. Então as coisas estão ficando animadas. Criamos um sistema de registro usando Ajax. Criamos sistema de registro usando Ajax. Poderíamos teoricamente criar um sistema de log out v Ajax. Embora isso seja um pouco exagerado para o que funcionalmente realmente é. Chegaremos a isso daqui a pouco. Mas hoje, ou melhor, neste vídeo, vamos aprender como forçar alguém a ter um usuário. Eu d sessão e na verdade é bastante simples. O que podemos fazer é dizer, se é definido usuário sessão I d. Então tudo é bom. Poderíamos fazer outra coisa e não é se o usuário é permitido aqui e podemos dizer outra coisa se o usuário não é permitido aqui. Então, o que fazemos se o usuário não é permitido, vamos apenas redirecioná-los. Vamos fazer a localização do cabeçalho e vamos apenas movê-los para fazer login dot PHP e nós não queremos que isso nunca seja executado depois, então vamos adicionar uma saída e é isso. Então, se eu ir para o painel bem, ele me permite em seu eso. Há algo lá dentro que é apenas dizer painel apenas para que possamos vê-lo painel aqui, Google Dashboard está lá que significa que eu sou Londres. Mas o que acontece se eu abrir um anonimato onde não há sessão definida? Isso foi muito rápido. Então, se eu for para um host local dashboard dot PHP, bem, isso está me forçando a voltar para a página de login esta questão quantas vezes atrás vai
me forçar a fazer login uma e outra vez. Isso é tudo o que há para ele. Agora, em vez de escrever isso porque esta é uma variável super global é tecnicamente o que é chamado podemos escrever uma função chamada Basicamente, podemos chamá-lo de qualquer coisa que quisermos. Verifique se o login ou três diretos ou apenas dizemos login forçado, que é o que eu gosto de usar. Jogue isso aí e olhe para isso. Então, se vamos para o painel agora,
na verdade, isso é fazer painel de navegação anônima. Isso vai aparecer legal, não o que queremos, porque não estamos conectados no modo de navegação anônima. Mas se executarmos o login forçado com um único pequeno comando e voltarmos para nossa
página anônima , isso nos força a fazer login novamente. Perfeito. Então, o que queremos fazer com esta função? Bem, nós criamos um arquivo há muito, muito tempo atrás chamado funções. Lá estamos as funções de crabber de sintaxe PHP através de um comentário lá, forçou o usuário a ser logado ou redirecionado. Estes não são comentários impressionantes, mas eles são pelo menos comentários. Isso não vai fazer nada, porque se você teve convidados, não está aqui porque você está certo. Ainda não está sendo incluído no arquivo dela. Bem, não
precisamos incluir a parte das aulas. Tudo o que precisamos incluir é as funções dot PHP. Agora. Por que é isso? Embora porque CONFIG está na pasta de tinta aqui e tudo o que procura são funções, ele está procurando por um irmão, não uma criança, não um avós, não um pai, apenas um irmão. E isso está na mesma hierarquia. Então nós não usamos o DOT Nós não usamos uma pasta. Nome tem apenas funções no PHP. Vá em frente, diga isso e vamos fazer isso. Loggins, como se tudo estivesse indo painel nos força a entrar e vamos voltar ao painel enquanto estamos logados. Então está bem ali. Nós temos isso, e é assim que você força alguém a fazer o login Agora e se nós queremos fazer o oposto onde ninguém tem permissão para acessar a página de login ou a página de registro enquanto eles estão logados. Bem, vamos voltar às funções e vamos criar função,
força, força, painel ou algo assim. E, essencialmente, é a mesma coisa que isto. Poderíamos dizer se a sessão é definida, mas em vez de fazer isso, vamos ao painel. E se a sessão não estiver definida, continuaremos a continuar. Mas redirecione mesmo assim. E se formos a uma foto que queremos ligar, colocamos uma placa de estoque. E se fomos para se registrar e colocamos para um quadro de estoque e fomos para o painel e disse, Dashboard, aqui você está conectado como sessão de usuário usar painel de floresta pronto, sintaxe
inesperada lá. O que está dizendo? Drew para fazer a linha 13. E a razão para isso é porque eu escrevi que errado Cool Dashboard funciona. Agora vamos fazer login na página. Não me vai deixar entrar num tronco. Pages realmente me forçou de volta para o painel assim. E se eu for para a página de registro de novo, não vai me deixar ir. Obrigou-me a voltar ao painel. Incrível. Então agora temos um sistema onde as pessoas que já estão logadas não vêem as páginas de login que não vêem as páginas de registro tem tudo baseado em uma pequena sessão e vice-versa. Quando eles estão na página do painel e eles não estão conectados, nós os forçamos a fazer login em coisas muito simples. Agora que sabemos como todas essas peças realmente funcionam juntas. Então isso nos deixa com apenas sair. E então poderíamos limpar o código depois. E como de costume, , limpe o painel de status do garoto. Uh, o que eu quero ver? O que eu fiz de forma diferente no painel? Quero dizer, eu sei muito bem, mas se eu não me lembro se isso foi de assim ontem ou algo
assimOh, olhe para isso. Eu adicionei força de login e adicionei uma nova linha em sua legal. Então sei que posso ficar com isso. Não em tudo. O que? Eu queria ter o painel de anúncios. Hp obter def. Existe algo que eu fiz de forma diferente no arquivo de funções? Bastante um pouco. Parece que eu adicionei as duas funções get add in functions, get status agora eu tenho uma configuração. Morgan e registre-se. Eu era Deus. O resto deles fui chamado. Log e funções são empurrados. Origem, Mestre. E agora aqueles que se levantam e se levantam assim.
18. Login.: já. Então agora temos um login. Temos um registro. Temos páginas que só podem ser acessadas por pessoas que estão conectadas. Agora temos que ser capazes de sair. Então vamos em frente e apenas copiar o registro. E acho que apanhei o logout e não precisamos disso. Não precisamos disso. Na verdade, não
precisamos de nada. Tecnicamente, tudo o que precisamos é então o que você vê aqui é o tempo passado , que é hora agora? Menos normalmente uma hora. Bom o suficiente. Embora já tenha visto lugares onde uma hora não é suficiente. Tempo menos uma hora de segundos, que é 60 vezes 60. 3600 é bom o suficiente. Então vamos começar a recessão que vamos destruir a sessão. Nós vamos fechar a sessão, e, ah, se nós tivermos algum cookie da sessão e vamos nos livrar deles e nós também
vamos regenerar quaisquer idéias e isso vai forçar o usuário a sair agora, Por último, também
precisamos redirecionar o usuário para algum lugar onde você sabe que eles resignam de volta ou a
página inicial ou algo assim. Então vamos inscrevê-los de volta, não não os mandar entrar. Uh, em vez vamos apenas movê-los para o índice até página PHP intenção que porque eu não gosto de código tocando as paredes muitas vezes. Guarde isso. Vá por aqui. Certo. Ok. O Dashboard acha que estou logado. Vou sair. Agora estou de volta ao índice, mas não sei se realmente estou logado, então vamos voltar ao painel. Nenhum painel não me deixa voltar. Por que não me deixa voltar? Oh, é porque eu não tenho mais uma sessão? Minha sessão de usuário i d se foi. Então, a maneira como nos livramos de uma sessão. Tecnicamente, olhos podemos começar a sessão, mas podemos passar o valor do passado que neste código é realmente obsoleto. Sobre isso, poderíamos destruir a sessão basicamente, dizendo Ok, esta sessão expira uma hora atrás, e então um computador vai embora. Expirou há uma hora. Ok, é que não é mais relevante, mas em vez disso vamos usar sessões. Começo destruído, certo. Fechar. Vamos remover qualquer biscoito e regenerar o ID e assim, temos feito há muito tempo. Agora a razão pela qual eu mostrei a parte passada que passa igual ao tempo menos 3600. Isso é puramente porque muitos projetos mais antigos como o PHP 5.6 uh, session destroy não necessariamente destruirá sua sessão. Tudo o que ele fará é destruir uma sessão em uma página. Houve um pouco de controvérsia em torno disso, mas essencialmente no PHP 5.6 e versões mais jovens ou versões mais antigas, eu acho que 5.6 e abaixo. Eles precisavam basicamente de uma sessão para expirar uma hora atrás, que era meio estranho, considerando que você deveria ser capaz de destruir a sessão certa e ela se foi. Acho que está consertado nos dias de hoje. Incrível. Incrível. Então não temos mais que lidar com isso. Mas eu queria mostrar a vocês que porque você vai vir junto, você vai ver alguns projetos PHP no futuro. E isso é exatamente o que eles vão ter é algo assim. Você vai pensar para si mesmo Bem, que se lixe, mas adivinha? Isso não importa. Nós nem precisamos ter nossa configuração neste arquivo também. É bem fácil. Tudo o que faz é se livrar de sua sessão e movê-lo de volta para a home page, e isso é tudo o que há para sair agora, Como de costume, vamos em frente. Obter status. Obter anúncio obter adicionar, obter status, obter commit em uma página de log out. Obter push origem mestre, e vamos para obter hub. Certifique-se de que vamos para lá. Na verdade, não vamos verificar as roupas que vão nos dar esta pequena mensagem aqui, resolvendo Delta é um de um completado com um objeto local. Também nos deu nosso pequeno haxixe lá dentro. E então, sim, isso nos diz que tudo está indo bem, então nós realmente não temos que verificar. Obter ajuda ponto com para ele. Só sabemos que vai funcionar porque nos deu a mensagem de trabalho. E então há um pouco de confiança que você tem que construir com obter, mas é. É muito, muito confiável. É uma ferramenta que fez programação em equipes fez programação que Facebook e Google, Yahoo, Amazon ou todas essas outras empresas. É realmente feito isso muito, muito possível caso contrário, lidar com como 2000 engenheiros a qualquer momento vai ser muito, muito difícil, então você não precisa olhar para obter o tempo todo e essa é a nossa página Lago. E então nós basicamente temos um login. Então, algum sistema de Lagos, temos um sistema de registro. Tudo isso é feito através do Ajax. Nós temos um painel que apenas certas pessoas podem ver se há realmente registrado. E agora a única coisa a fazer é limpar o nosso código. E embora você não se preocupe em limpar o código, é realmente importante manter seu código. Essa é a parte mais difícil de ser desenvolvedores da Web. Mantendo seu casaco. Se você não consegue manter seu código, como você vai melhorá-lo? Vais deixar o teu código. O peso é agora, que é honestamente, o código R é bastante desleixado e vamos voltar daqui a dois meses. Vamos pensar no que diabos estávamos trabalhando? O que estávamos fazendo? Por que isso não está em uma função? Por que isso não está em uma classe
19. Como criar funções: Tudo bem, tudo bem. Bem-vinda de volta. Então, para esta lição, o que eu gostaria de fazer é apenas limpar um pouco do código em talvez adicionar apenas um ligeiro toque
pessoal e talvez um link de logout. Ah, nada extravagante vai acontecer. Aqui está eu vou tentar passar por isso muito, muito rápido. Então, a primeira coisa que eu quero fazer é no painel em vez de dizer que você está conectado em seu usuário um. Quero exibir seu endereço de e-mail. Mas como obtemos isso do usuário? Eu d Então nós podemos fazer isso idéias do usuário igual a sessão usuário I d. Sabemos que se o código fica passado força login em que temos o usuário I d que é acessível para nós. Porque se nós apenas saltar para cima para funções acima, PHP se ele está definido, não
fazer nada. Se não for dito, vai nos redirecionar. Então, se não fosse dito que não estaríamos executando nenhum desses códigos. Algum sentido que o usuário i d. Em vez de escrever usuário sessão, eu d apenas uma espécie de manter as coisas consistentes em todo o resto do aplicativo. E então vamos encontrar, uh, vamos encontrar o registro Data o endereço de e-mail deste usuário Então vamos obter informações do usuário é igual a con Preparar, selecionar e-mail e ah, vamos fazer Reg data de usuários onde usuário i d é igual ao usuário i d linnet um. Obter informações do usuário sobre Remember, nós compramos os parâmetros com DOP. Nós sempre ligar, Não use o tipo D direito na variável usar direito. E desta vez vamos usar PDO param int e obter informações do usuário. Nós apenas executá-lo. Agora, se você tem um sistema que pode excluir pessoas, se talvez seu sistema é convidar apenas alguém entrou e você queria expulsá-las, você poderia excluir as informações deles. Ah, se você tem algo assim, você sempre vai querer verificar se esse usuário realmente existe. Se alguma coisa foi encontrada, não
é difícil diligir. E também não requer muito poder de processamento. Então é uma pequena vitória rápida para você se você apenas digitar. Se Jack usuário info throw count é igual a um usuário caso contrário não está conectado porque com nosso funcional faz, esta verificação dessa sessão é definida. Então, se alguém está no site, mas dentro dos 15 minutos que você sabe que a sessão está viva até que eles atinjam a próxima página aproximadamente dar ou demorar alguns minutos. Se apagou essa informação,
se apagou o usuário deles do banco de dados. Se apagou essa informação, Bem, adivinha? Eles ainda serão capazes de acessar tudo o que você precisa para ter certeza de que eles não podem acessar nada. Então, um exemplo real disso seria como ser banido de um grupo, , ou ser expulso do Facebook, por exemplo. Então nós queremos verificar para ter certeza de que o usuário apenas E se isso não acontecer, nós fazemos a localização do cabeçalho, e nós vamos forçá-los a fazer logout e log. Oh, isso vai trazê-lo para indexado acima enorme para ser, mas ele vai se livrar de todas as outras informações de sessão s para que o sistema pode tipo de apenas atualizar suas configurações. Agora, se o usuário foi encontrado. Usuário waas encontrado begin type user é igual para obter informações do usuário, buscar PDO. Traga uma meia, que é Honore. Se você queria buscar um objeto em vez de não pronto, você apenas digitar buscar LBJ, mas correu tipo que Jae Sok. E agora sabemos que se o usuário existir, haverá esse objeto de usuário em nosso código. Mas se o usuário não existir, bem, adivinhe o que o resto do código não vai executar. E vamos adicionar um pouco. A pequena saída é apenas um pouco de segurança, mas só por precaução. E então queremos dizer, vamos fazer isso. Uh, a palavra traço, não a tábua de faixa. E olá, Paige P eco email do usuário Você se cadastra no PHP Usuário. Encontro Reg. E então tudo o que fiz lá foi ter o endereço de e-mail da nossa consulta. Eu tenho Reg data de nossa consulta, e eu tenho a variável, o array de usuário novamente de nossa consulta. Então, se eu disser que atualizar olhar para Reg, Date não existe. Por que é isso? Bem, se voltarmos ao seu estado não vermelho, é o Reg. Hora de ir, hora do
Reg. E lá vamos nós. Esse é o meu endereço de e-mail, e eu me registrei naquele momento perfeito. Tão pouco toque pessoal lá. Agora, se você tem um primeiro nome Ah, você pode adicionar seu primeiro nome lá quando eles se registram. Você pode adicionar isso lá também. E vamos apenas a um júri de Zika para lago Deus PHP com um pequeno link Lago lá. Então nós temos que logout link, e isso vai essencialmente apenas deixar as pessoas gostam de entrar e sair legal. Então isso é um pouco mais arrumado. Agora vamos olhar para nossas funções em alguns de nossos passos Ajax que temos log-in, certo? Bem, queremos fazer login no usuário, mas não queremos necessariamente escrever todo esse código. Então o que podemos fazer é envolver isso em uma função e basicamente usa uma e outra vez . Então é certo uma nova função. , Na verdade, vamos dar uma olhada no que isso pode fazer e está fazendo isso. Ah, o que ele está fazendo? É só que está procurando o usuário. Se o usuário existir, ele tentará conectá-lo. Se não existir, vai dar-lhes um ar diferente. Que parte disso podemos usar mais de uma vez enquanto queremos procurar o ar? Uh, desculpe. Queremos procurar o usuário mais de uma vez. Nós provavelmente queremos olhar para o usuário aqui é Bem, você
poderia olhar para isso? É basicamente o mesmo código. Então, o que acontece se quisermos escrever isso apenas uma vez? O que? Tomamos isso e vamos encontrar Usuário é igual a encontrar a função do usuário, que ainda não existe. E o
que, o que estava procurando? Eu estava procurando apenas o e-mail. São os únicos dados personalizados lá dentro, e também requer a conexão. Então vamos digitar o e-mail. Não, ao invés de pegar a conexão e depois o e-mail, é uma ótima função. Encontrar anos, nosso e-mail de conexão. E vamos mover isso em palavras. E agora temos e-mail, que deveria ser filtrado aqui. Mas não vamos confiar nisso de qualquer maneira, porque se alguém está escrevendo essa Coca-Cola, você não sabe se é confiança ou não. E filtrar pela segunda vez não é
grande coisa, realmente. Email eso é igual a e-mail string, e vamos apenas garantir que isso é sempre um strings irá lançá-lo, e o que precisamos retornar é, bem, basicamente, toda
a consulta. Se a contagem de estradas for igual a um, uh ou não, então poderíamos apenas retornar a contagem de papéis porque isso é tudo o que isso está sendo usado apenas aqui e ali. Então vamos encontrar o usuário. E se encontrar User escreveu contagem é igual a um retorno verdadeiro, caso contrário retornou falso, nós também poderíamos adicionalmente seu, uh caso contrário, eu acho que poderíamos fazer Ah, usuário encontrado é igual a booleano encontrar usuário bro contagem e o usuário de retorno encontrado. Então o que isso vai fazer é se houvesse um usuário encontrado enquanto um em booleano é verdadeiro e zero em booleano é falso, então poderíamos apenas retornar o valor booleano de quantas linhas foram retornadas. Então agora, em vez de colocar isso em sua variável, poderíamos apenas dizer se encontrar usuário e ele procura o usuário. Agora. Não vamos fazer isso porque está um pouco confuso. Nós preferimos colocar isso em nossa própria variável e, em seguida, se vamos realmente renomear que ir usuário encontrado. Então, se isso for verdade, vai para o espaço. Se você disser sim, o usuário já foi encontrado. Se for falso, IDs vai para a frente e criar um novo usuário, mas vamos em frente e suplemento que são injetar que em Logan dot PHP bem e excluir tudo o que agora apenas um headhead up. Se você está trabalhando com WordPress, você vai ver muito deste Global Con, que significa basicamente, que a variável de conexão que vem da nossa configuração vai ser permitido usar aqui , e ele não vai aparecer como um parâmetro. Eu aconselho você a não fazer isso. Isso era aceitável há 15 anos. Isso não é mais aceitável. Não faça isso. Basta passá-lo para dentro Nada de errado em passar uma de suas variáveis em um dos parâmetros de suas funções. Então lá vamos nós. Em vez de ter que escrever a consulta duas vezes, nós realmente só escreveu a consulta uma vez em. E se em qualquer ponto no tempo essa consulta precisa mudar vai afetar ambos os lugares. Então agora é extremamente eficiente. Então vamos sair. Conecte Tess no teste ponto com. O teste de teste diz que já tem uma conta. O que é realmente para fazer se você estiver lá, descobrimos que queremos fazer o oposto. Se não foi encontrado nenhum usuário, então vá em frente e faça login no usuário. Mas na verdade, é que este é um pouco diferente porque está procurando o usuário achado. Então vamos em frente. E, uh, vamos tornar esta função um pouco mais complexa. E isso é um retorno que uma meia é capaz de falsificar. Mas se por alguma razão fosse verdade, então poderíamos dizer, se isso for verdade, basta retornar. Encontrar usuário, buscar PDO, buscar uma meia e isso só vai retornar o objeto inteiro. Caso contrário, ele vai devolver o booleano. Então vamos fazer o login. Mudou isso para Verdadeiro. Agora diz que não tenho conta. Bem, por quê? Por que é isso? Bem, é porque diz que já tem uma conta. Bem, isso é totalmente bom. Mas agora, por que isso? Bem, olha, tivemos um redirecionamento. Temos ar aqui. Quando temos um ar, não
queremos mostrar esse erro. Ainda diz que já temos uma conta. Bem, por que isso? Bem, vamos dar uma olhada no dedo do pé dela. Este é um ótimo exemplo de como podemos realmente depurar. Então, vamos clicar neste clique fazer login. Oh, olhe para essa variável indefinida encontrar usuário 9 22 e o que queremos fazer aqui é contagem de estradas. Você não sabe disso. Provavelmente dizer o mesmo no conselho novamente. Vamos passar por todo esse processo de depuração juntos. Ah, ligue para lembrar a função. Busque Honore no 9 22 Não há necessidade de fazer isso, porque isso já existe. Então, em vez disso, o que podemos fazer é porque quando colocamos essa última variável ou aquele parâmetro menos é verdadeiro, lembre-se, retorne uma meia. Está devolvendo a meia A exatamente como estávamos fazendo antes. Agora só vamos mudar. Na verdade, isso não é útil. Então vamos em frente. Apague isso e altere estes. Diz que já tem uma conta. Ok, bem, por que isso? Bem, vamos voltar para lá. Rápido de novo. Olha, essa senha, senha invalidada. Bem, bem, por que isso? Bem, porque quando voltarmos aqui, olha, ele não está procurando a senha. Deve ser. Vá lá, mude. E isso é basicamente como nós depuramos através do Ajax. Algumas pessoas perguntaram isso há pouco tempo. Como faço para depurar através do Ajax? É exatamente assim que fazemos. Eles conseguiram que funcionasse. Agora estamos logados. Agora o que acontece se quisermos registrar com o que trocamos o código antigo por uma função . Algo realmente tinha que escrever um. Então vamos fazer um novo teste de registro para o teste de teste de ponto com teste de teste. E isso funcionou. E vamos conferir nossos usuários e olhar para o teste para Perfect. Agora tudo está funcionando, e mudamos tudo para funções. Agora, nós também podemos adicionar isso a uma função bem no novo usuário. Ah, e basicamente apenas devolveu o usuário. Na
verdade, verdade, podemos fazer isso na próxima lição. Então, para este último, eu vou encerrar isso, vamos mover cada que nós mudamos tudo para funções, e na próxima lição, vamos mover tudo por tudo. Quero dizer, vamos passar sobre essas funções para uma classe para que você possa ver como a programação
orientada a objetos realmente funciona. Agora, estas serão apenas funções estáticas, o que é totalmente bom. Mas isso só mostra como podemos mover uma função para um objeto real ou uma classe
real
20. Como criar objetos OOP Parte 1: Olá. Bem-vindos de volta a uma das últimas lições desta. Vamos assumir as nossas funções. Vamos colocá-los em aulas. Então nós vamos aumentar o nosso jogo PHP apenas um pouco. Vou ser totalmente honesto com você aqui. Para a maior parte, se você começar a trabalhar com classes você já superou o WordPress. WordPress ainda é muito baseado em função. As aulas são o futuro. É mais fácil trabalhar com ele. Você tem padrões de design diferentes. A vida fica muito mais fácil quando se começa a trabalhar com a classe. É assim que temos uma função de usuário fina e vamos em frente e colocar isso em uma classe. Então vamos em frente e fazer tudo bem, este chamá-lo usuário dot PHP e porque classe, usuário e então nós vamos fazer duas coisas. Vamos criar uma função estática, que tem medo deste telefone. Pegue isso através deste e aqui e chame essa função estática pública. E assim, em vez de chamar uma função como encontrar usuário, nós chamamos como usuário encontrar usuário. Ou podemos renomeá-lo para encontrar o usuário. E também podemos nos livrar da conexão aqui. Mas as primeiras coisas primeiro. Então vamos renomear isso para descobrir que temos que ir para Le Guin e mudar isso para usuário encontrar que
vai se registrar. Usuário encontrar assim funções estáticas ou métodos sempre usado o muito frio dentro a lado. E isso diz ao PHP. Estamos à procura de uma função estática. É essencialmente apenas uma função que poderia ser chamada usando o usuário ou qualquer que seja o nome da sua classe como um espaço de nome. Isso é realmente tudo o que é. A próxima coisa é nos livrarmos do Khan. Não precisamos mais passar isso lá dentro. Nós podemos. Não há problema em mantê-lo lá dentro. Mas se quiséssemos nos livrar dele para que tenhamos um parâmetro a menos para nos preocupar, enfraquecer que Khan é igual a DB. Obter conexão. E o que isso vai fazer é Devi. Obter conexão Agora, se a conexão não estiver definida, vai criar uma nova instância de banco de dados que sua única função é uma construção. Assim que ele é e postura criado, ele vai criar este objeto e vai armazená-lo como auto-conexão. Então, da próxima vez que você ir
buscá-lo, ele já está conectado novamente. Isso é chamado de design singleton é muito, muito útil. Agora, não
precisamos mais de um passe lá dentro, o que também significa que no login, podemos nos livrar da conexão. Nós não precisamos disso lá, e você também pode se livrar dele lá dentro. Então vamos nos certificar de que isso está funcionando. O que, na
verdade, não vai porque filtra lá. Agora vai funcionar. Teste no teste de teste de pente,
teste de teste. Lá vamos nós. Eu estou dentro Então sabemos que isso funciona. Agora, se sabemos que isso funciona, podemos estar bastante confiantes que o registro funciona. Mas se você vai fazer uma mudança fundamental em sua base de código assim, talvez vá em frente e testá-lo de qualquer maneira, eu não vou fazer só porque eu sei que vai funcionar. Ou, pelo menos, espero que funcione. Caso contrário, é meio embaraçoso se não acontecer, , mas sim, geralmente só vá em frente, teste seu código depois de termos mais uma coisa que podemos fazer aqui. Fazemos construção de função pública e vamos fazer con privado, que é uma função privada chamada Con. E toda vez que criamos uma nova instância de usuário, que basicamente é esta. Ele vai definir esta conexão como conexão TV get, que significa que agora podemos usar este aerocon sempre que precisarmos. Então agora podemos passar a ideia do usuário. Nós vamos digitar dica com um inteiro, que significa que esta classe só está indo para ou este método só será
capaz de aceitar isso como um inter. Registrar que estou desperdiçando meu dedo aqui não funciona, tem que ser um inteiro que agora é por isso que colocamos no painel dela. Nosso usuário I d é sempre um inteiro. O que está destruindo isso? Poderia ter sido uma corda teria sido perfeitamente bom. Mas dissemos isso como um inteiro, e agora estamos entrando em algumas boas práticas de programação zehr. Então, se fizéssemos idéias de usuário igual para filtrar no usuário i D. E isso é apenas uma das funções ou um dos métodos que vieram com a classe de filtro que eu injetei aqui basicamente apenas força seus dados para ser um inteiro strips tudo o resto que poderíamos fazer encontrar User Wow! Precisamos fazer isso? Não, não necessariamente porque já o temos. Então o que podemos fazer é o usuário é igual a auto Encontrar o quê? Não sabemos o e-mail, então não podemos fazer isso. Então eu acho que eles são mãos um pouco amarradas. Então vamos escrever um novo usuário de consulta é igual a este con. Lembre-se, este golpe está definido para a conexão aqui em cima. Preparar tampas. Bloquear está em Selecionar usuário i d. E-mail Tempo de Reg de usuários Onde idéias de usuário para usuário i d. Limitar um usuário Vincular Param Usuário I d sequela para a idéia do usuário que injetamos PDO Param inteiro porque sabemos que é uma lesão e, em seguida, executado. E então poderíamos dizer se a contagem de linhas do usuário é igual a um outro. Nenhum redirecionamento do usuário para sair lago dot PHP e extra apenas no caso de irmos contas de linha para fazer. Hoje vamos e, em seguida, poderíamos dizer Usuário é igual ao usuário Fetch PDO buscar uma meia. Mas na verdade vamos dio BJ em vez disso Esse objeto e podemos definir Este e-mail é igual ao usuário e mail. Este usuário i d é igual ao usuário usuário i d. Este horário francês é igual ao tempo Reg do usuário, então vamos apenas limpar isso. Eu gosto de ter meu PHP limpo. Muitos desenvolvedores não se importam. Preferia que te importasses que te ajudasse no futuro. Coisas como Python ou ir ou não. Será que os skits realmente vão te ajudar? E então nós vamos lançar estes como inteiro string e string, respectivamente. E tudo isso está fazendo é que o usuário é um objeto. E agora temos usuários, podemos ver que combina aqui embaixo. Temos as correspondências de e-mail lá em baixo. Temos jogos de tempo do Reg lá em baixo, e está a definir todas estas coisas para nós. Se alguma vez tivesses isso quando eras aquilo. E agora, em vez de ter que escrever um usuário privado ou algo assim, podemos apenas configurá-lo de dentro da construção. Nós não estamos indo para uma espécie de má prática, mas em vez disso o que nós vamos usar a idéia de usuário público. Nós não vamos dar um valor a ela. Ele estava certo, D, uh,
e-mail, bem como o horário francês e estes ar. Estes são todos valores vazios. Não há nada lá, mas assim que você chamar o usuário,
uh, uh, usuários iguais a um novo usuário. E então você coloca uma entrevista lá, como sua sessão. Ele vai puxar automaticamente as informações e você pode nos usar. Não faz muito sentido agora, mas deixa-me mostrar-te a magia por trás disto. Vamos para o painel em vez de obter essas informações. Weaken Dio usuário é igual a novo usuário. Injecte a sessão que eu tinha ali. E não precisa ser uma sessão do Se você fosse um administrador, você poderia colocar qualquer idéia lá. Você poderia procurar um monte de usuários e apenas colocar qualquer idéia lá e obter suas informações . E assim sabemos que o Lago vai funcionar automaticamente para nós. Se não houver usuário, ele fará logout automaticamente, o que é perfeitamente bom. E não precisamos mais disso. E, em vez disso, porque este é um objeto, não
usamos mais os colchetes de matriz. Usamos setas
21. Como criar objetos OOP Parte 2: Olha, estou a refrescar a minha página, e está a funcionar perfeitamente. Você nem notou que nada mudou. Então, agora temos movido uma função sobre uma classe. Mas a esta altura, provavelmente
estás a perguntar ao Caleb porquê? Por que eu faria isso? Isso foi muito trabalho para nenhum ganho extra quando todo o meu código já estava lá e funcionando. Isso é totalmente justo. Essa é uma grande pergunta. Na verdade. A primeira razão é que esta é apenas uma boa prática de programação. Quando você entrar em estruturas como Larry Bell, você vai começar a trabalhar com objetos e classes. Quando entrares no Python, vais começar a trabalhar com objetos, Class. Especialmente como o Django, por exemplo, eu vou começar a trabalhar com o Awesome maior. O nosso CMS está no futuro. Você vai começar a trabalhar com um monte de programação orientada a objetos. E, francamente, empregos pagam mais. Se você sabe Opie objeto orientado programação para que nós temos isso. Criamos nossa classe de usuário. Incrível. Incrível. Ah, nós entramos aqui e vamos mover isso. Na verdade, podemos até amarrá-lo. Aqui vamos nós, página da
turma, e eu vou continuar e vou duplicar isso de novo. Vamos chamar essa página e apagar esse lance em nosso novo código de página. Incrível! Incrível. Indo aqui para ele lá também. E agora, em vez de painel procurando log forçado em que você sabe é bem bem, aqui, deixe-me dizer que lá não está mais bem porque essa função não existe. Tudo o que temos que fazer é encontrá-lo e colocar na página quatro. Slog em direita. Eu não os declarei extasiado e deveria ter feito, porque tecnicamente não há nada. Não há razão para que eles não precisem ser Sadiq. Eles não se relacionam muito um com o outro. Lá vamos nós. Então, registre-se. Nós não faríamos nada. No entanto, página de registro do método estático da idade do
índice, não a página de agentes. Lá vamos nós. Oh, bom. E foi tudo o que fizemos. Acabamos de transferi-lo para uma aula. Agora, a segunda razão pela qual usar uma classe é melhor do que apenas funções. Porque onde estamos aqui para fazer o arquivo de disfunções, que agora está vazio se você vem de um fundo PHP desleixado e se você fizer isso, não
há nada de errado com isso. Mas há maneiras melhores. É que estas funções são arquivo PHP pode ficar muito, muito, muito longo. Estamos falando de milhares de linhas de comprimento e agora todos nós, e você tem funções chamando funções. Colin funciona funções Colin, e enquanto eles estão tentando se relacionar um com o outro, não
há contexto. Você pode deixar comentários, mas não necessariamente vai funcionar. Sem mencionar que todas as funções são globais. Ah, e às vezes você quer que eles trabalhem dentro
deste e às vezes você quer que eles trabalhem dentro
destepequeno contêiner e cooperem uns com os outros,
por exemplo,
sempre que você cria um novo usuário. pequeno contêiner e cooperem uns com os outros, por exemplo, Então deixe-me tirar isso de novo. Forma tem usuários iguais a um novo usuário. E vamos colocar o usuário de um lá. Poderíamos então chamar o usuário definir e-mail, novo em e-mail ponto com, e o que isso está dizendo é dentro desta classe, chamar uma função. Chame essa função pública chamada set email que é digite new email. Agora já temos esta configuração. Já temos os e-mails existentes. Poderíamos dizer ecoar este e-mail e que seria o endereço de e-mail atual. Poderíamos dizer eco este usuário i d Theo usuário existente. Eu d. Agora nós não estamos passando nada através de parâmetros não estávamos tendo que enganar nosso caminho através do PHP com
ID de usuário global ou Colander Global. E você pensa assim. Se quiséssemos uma conexão com o nosso banco de dados, tudo o que temos a fazer é este con preparar e, em seguida, a nossa instrução SQL aqui. Feito, feito, feito. Está tudo pronto para você na construção. Então agora temos uma maneira de enviar e-mail pode se relacionar com outros dados
configurados automaticamente para você. E essa é apenas uma função mágica. Há outros também. Então eu acho que a segunda razão para usar programação orientada a objeto como esta é porque você pode criar um bom pouco funções como este. Caso contrário, se você estivesse usando funções que PHP, seria muito parecido com o e-mail de mudança de função. Então você tem usuário I d. Novo e-mail pode ser uma conexão. Talvez não. Se você não tem uma conexão, ele parece desleixado,
porque, em seguida, é como con global e, em seguida, con,
e, em seguida, sua consulta SQL. E aí você tem seu e-mail e lá você cortou todas essas outras coisas. Parecia nojento, enquanto que se você está se não estiver, se não estiver familiarizado com
O.P. O.P Isso parece muito, acredite em mim, não é grande coisa, e isso é realmente tudo o que você tem que fazer. Então eu vou comentar isso e eu vou deixar isso para você para que você possa ir e fazer o que quiser com isso. Se você quiser talvez pegar isso e dar às pessoas uma página de perfil onde elas podem ir e realmente mudar seu endereço de e-mail, você pode fazer isso em alguma manga. Isso aí com você, é comentado. Por isso,
não vai magoar ninguém. E então essa seria a segunda razão para a programação orientada a objetos. A terceira razão é a manutenção. Agora, se voltarmos para este arquivo de funções, poderíamos ter o nome da função. Bem, quero dizer, nós não vamos ter nada flutuando ou abrindo sintaxe, função, nome e assim pode continuar e continuar. E às vezes você tem funções que fazem basicamente a mesma coisa, mas para diferentes partes de sua aplicação. Então, se é como, ah, se é como mudar
o nome Bem, e se isso é mudar o nome de usuário, então você chamaria de mudar nome de usuário. Mas e se você quisesse mudar o nome? Claro que sim. Mudança de lição. Nome do curso. E se você quiser mudar o nome do seu animal de estimação mudar o nome do animal de estimação, certo? E se você quisesse mudar o nome de e ele continua e continua. Enquanto que em uma classe, é realmente muito mais fácil porque você pode nomear as mesmas funções uma e outra vez. Você pode ter. Tudo bem, veja esta classe animal de estimação função pública, defina o nome ou mude o nome. Se você quisesse ser consistente com nossos exemplos anteriores, você poderia ter usuário. E claro, isso não é que eu uso senti que era um pequeno tipo estranho de lá. E agora você tem um usuário animal de estimação e curso que todos têm exatamente a mesma função. Nome. O nome do método é é o mesmo em todos os três destes. Não importa. Não, mas se você tiver a mesma função, não
nomeie mais do que uma vez. Na verdade, se você tem duas das mesmas funções, o
PHP vai gritar com você e dizer, Oh ,
bem, não
podemos precisar porque não podemos distinguir entre elas. Então agora você tem uma maneira de basicamente nomear espaço e ele lhe dá contatos. Pet mudou de nome? O que você está fazendo? Você altera o nome do seu usuário de estimação Alterou oito. O que você está fazendo? Você está alterando o nome do curso do usuário. O que você está fazendo? Você está mudando o nome do curso. E assim, adicionando apenas duas palavras juntas, você deu a si mesmo mais contatos. Você deu seu co-desenvolvedores de seus colegas ou seus companheiros de equipe contexto mawr no que você está realmente fazendo. E então essa é uma ótima razão para entrar em um pouco de p Não é o ponto deste curso, mas eu só pensei que eu iria compartilhar isso com você porque é extremamente importante quando você se move para ser um maior, incrível ou desenvolvedor. Eu ia cometer tudo isso, pelo jeito que fiz quando digitei “Get Add Dog”. Esqueça em tudo. Eu olhei rapidamente para quais eu queria adicionar aqui. Mover funções para classes. Apenas algo basicamente ruim. Obter push Origin, Mestre! E lá vamos nós. Nós temos isso. Há o nosso código assim. Então agora temos um sistema de registro de log in totalmente funcional
22. O que Construir próximo: Tudo bem. Este curso está basicamente acabado, mas eu queria apenas dar-lhe um pouco de uma idéia de onde ir a seguir. As pessoas sempre dizem que eu não sei em que projeto trabalhar. Não sei o que fazer com o que estou aprendendo aqui. Então este tem sido um curso baseado em todo o projeto de basicamente criar um sistema de login e registro. Então agora você tem essa base para trabalhar. Mas há muito mais. Você pode fazer isso. Você pode enviar uma verificação por e-mail para uma verificação de e-mail. Realmente? Vamos entrar no PHP. Pode significar que aqui voltou a entrar. Basta criar outra coluna aqui e chamar o código de confirmação ou o que quiser. Dê uma string aleatória. Não tem de ser encriptado nem nada. Você é como um MD 5 aleatório ou S H um um. E então você envia esse código para alguém, e quando eles clicam em um determinado link, ele volta para sua página, e pode ser como verificado no PHP. Código é igual a um, qualquer que seja o código. Ah, você vai procurar isso no seu banco de dados. Seja qual for o nome da coluna, código de
confirmação ou o que for. Ah, e se isso for encontrado, vá em frente e remova isso. E se esse valor for não ou vazio, então esse usuário foi verificado. Isso é tudo o que é. Então você tem a confirmação do usuário. Você pode fazer isso por e-mail. Você pode fazer a autenticação de dois fatores. Se você queria ficar muito legal, há um pequeno serviço legal chamado Twilio. Uh, apenas clique aqui. Espero que não me leve a uma página de destino nojenta. Eu codifiquei em PHP, e eu gostaria de aprender um barco SMS começar. O que TWILIO vai fazer para você é permitir que você envie mensagens de texto basicamente para qualquer pessoa em todo o mundo para sujeira barato. Estamos falando como se eu não sei, talvez 0,1 centavos por 10 ou 100 mensagens. Oh, não, é super,
super barato, eu acho. Da última vez que fiz uma autenticação de 22 fatores em um dos meus projetos, acho que investi uns
20 dólares nos últimos
seis meses,
e estamos falando como,
uh, uns
20 dólares nos últimos uns
20 dólares nos últimos
seis meses,
e estamos falando como,
uh, seis meses, e estamos falando como, centenas e centenas. Talvez até milhares de textos tenham saído apenas para autenticação básica de dois fatores. Foi muito fixe. Então você pode fazer que crepúsculo é um grande serviço. Se você quiser adicionar em seu próprio tipo de autenticação de dois fatores, talvez esse seja outro curso que eu possa criar para você. Se isso é algo que você está interessado, você pode adicionar um. Esqueci minha senha. Esqueceu a página da senha. Então, em vez de registrar, seria esquecido senha ou senha recente, e ele vai continuar, redefinir uma senha ou dar a alguém um código secreto no qual eles podem clicar e vai trazer de volta para o nosso site. Seria como senha reset password dot código PHP é igual a, ou qualquer que seja o código. Valide esse código. E quando esse casaco é, você sabe que realmente existe em nosso banco de dados, então você pode ir e deixar o usuário redefinir sua própria senha. E ele já está passando pelo endereço de e-mail validado porque você adicionou
validação de e-mail . Verificação de e-mail. Você pode fazer isso também. Ah, você pode estender todo o serviço permitindo que as pessoas mudem seus e-mails, alterem suas senhas uma vez ou mais. Eles podem se inscrever com o primeiro nome sobrenome. Eles podem ser amigos um ao outro. Você pode criar outra tabela aqui chamado apenas amigos, e tudo o que é usuário um e usuário para Isso é tudo que é tão como poderia ser usuário um nesta coluna usado para nesta coluna. E basicamente, se o usuário um é você ou o usuário é seu amigo e vocês estão na mesma linha que seus amigos, isso é realmente tudo o que a mesa de amigos é. Ah, e então você pode juntar essas tabelas usando o usuário I d. e você pode obter nomes e todas essas coisas também. Jean criar sem amigos. Você pode criar um feed de notícias, criar outra tabela chamada news. Ah, e então você pode criar autores. Blawg publica tudo o que você tem que fazer para os autores. Coloque o usuário que eu d lá Agora isso é que vem da sessão, o usuário da sessão i d. E que vai ser seu autor de modo que se você tem um blawg chamado aprendendo a fazer seu próprio sistema de login PHP do zero ou algo assim assim. Ah, e o autor é usuário I d um e eles mudam seu endereço de e-mail. Bem, você não tem que ir e mudar esse blawg também. Você pode apenas mudar esta pequena seção aqui, e isso vai mudar tudo o resto no sistema para você? Bem, na verdade ,
tecnicamente, não só muda aqui, mas parece que o resto do sistema muda. Baseado neste ponto de dados, é muito legal. Então aqui estão algumas idéias. notícias amigo feed. Mudar a mudança de e-mail. Redefinição de Senha. Senha. Talvez queira convidar um amigo. Certo? Então, em um módulo de convite onde eles colocam e-mail, endereço automaticamente e e-mail para alguém, você pode armazenar esse e-mail também para que você possa ver quem está convidando quem. E se você quisesse, você poderia envolver outra função em torno disso e, você sabe, cada tipo, três ou quatro dias você poderia cutucar alguém e apenas enviá-lo um pouco, sabe? O teu melhor amigo convidou-te para a missa,
mas ainda não aceitaste. teu melhor amigo convidou-te para a missa, Talvez você devesse clicar neste grande verde, exceto botão em um primeiro nome no sobrenome. Adicionar e-mail de confirmação na confirmação por SMS. O crepúsculo. Podias fazer todo o tipo de coisas. Então aqui estão algumas idéias para trazer essa ideia adiante. Se você ficar preso. Lembra do grupo do Facebook? Venha e pergunte. Algumas perguntas ficaram felizes em ajudar as perguntas do ar. Gosto de responder porque estes estavam ficando um pouco mais complexos. Isso está indo de iniciante para um pouco mais intermediário para algum lugar na área mais sênior. Aprender como um aplicativo maior pode realmente começar a ser formado a partir de algo tão pequeno como um sistema de login. isso, quero dizer, , Tirandoisso,
quero dizer,
vai sujar as mãos. Quebrá-lo. Quero dizer, se você quebrá-lo, apenas volte para a guitarra. Brembo, que é obter ponto com barra Caleb m italiano barra PHP log in sistema. Você tem todo o código ali. Você também pode baixar todo o código dependendo do serviço em que você está assistindo. Ah, mas se for como Art Montes ou você para mim, você pode baixar todo o código também. Mas na verdade, na minha opinião, basta colocar isso em funcionamento, ter todo esse sistema que construímos para colocá-lo em funcionamento. Escolha um destes e vá para ele. Vai ser difícil porque você não sabe exatamente para onde ir, e tudo bem. Isso faz parte da curva de aprendizagem. E parte dessa curva de aprendizagem é o que vai fazer você absolutamente ótimo. Então vá em frente. Escolha um desses começa. E por favor, quando terminar, venha compartilhar com o grupo. Venha compartilhar com os quase 2000 desenvolvedores que eu tenho minha arena de grupos no Facebook. Estamos mais do que felizes em apoiá-lo. Ah, com suas perguntas com qualquer idéia que você possa ter se você ficar preso, nos
avise que estamos aqui para ajudar. Eu estou fora. Obrigado por se juntar a mim neste curso. Isto tem sido uma explosão e eu vou vê-lo espero em outro curso. Saúde.