Como enviar um formulário HTML para um banco de dados MySQL usando PHP | John Morris | Skillshare

Velocidade de reprodução


  • 0.5x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 2x

Como enviar um formulário HTML para um banco de dados MySQL usando PHP

teacher avatar John Morris, I help freelancers get clients.

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Aulas neste curso

7 aulas (2 h 13 min)
    • 1. Formulários É O de Internet

      4:29
    • 2. Como criar um formulário simples

      34:48
    • 3. Como proteger seu formulário

      33:26
    • 4. Como criar um formulário avançado

      27:08
    • 5. Como limpar seu formulário com um arquivo de funções

      17:13
    • 6. Como mostrar seus dados

      14:21
    • 7. Próximos passos

      1:16
  • --
  • Nível iniciante
  • Nível intermediário
  • Nível avançado
  • Todos os níveis

Gerado pela comunidade

O nível é determinado pela opinião da maioria dos estudantes que avaliaram este curso. Mostramos a recomendação do professor até que sejam coletadas as respostas de pelo menos 5 estudantes.

1.564

Estudantes

3

Projetos

Sobre este curso

Formulários são a internet. Confira qualquer aplicativo ou site popular.... Facebook, Twitter, Google, WordPress, YouTube. Você usar um formulário para enviar um post do no Facebook, um twitto, uma busca, postar um blog ou fazer o upload de um vídeo. Saber enviar dados de um formulário em um de um formulário para um de banco se abre para poder criar todos os tipos de coisas incríveis.

Faça o Wufoo de Forms, por exemplo.

É um serviço online que ajuda não techem a criação de formulários online. Ele foi de 2006 com apenas de 118.000 em investimentos de anjo. No 2011, é vendido à a o SurveyMonkey por mais de o E, em 2014, a SurveyMonkey, em si, é valorizada em 2 de bilhões.

Então, é uma indústria is

Aprender uma coisa pode ser tudo o que você precisa.

Agora, quase uma década, criei o PHP de formas no curso. E, para esses 10 anos, a minha de mais popular, por de até o mais...com com 781.458 em YouTube. Mas, é quase uma década a anos. Então, não HTML5, não CSS3, no PHP 7. Por que criei este curso.

Por que criei este curso.

Para dar esse tutorial no nosso de a atuação.

Mostre a mais recente no HTML5 e a sua compatibilidade com CSS3 e no PHP7. Para ensinar o conceito de "de defesa em camadas" e como proteger seus formas online de de as pessoas.

Então, quer você quer criar o "próximo grande

Ou de apenas de contato simples.

Este curso vai ensinar sua habilidade que é responsável para tudo o que o ela.

É seis a aula de de seis a aula em mais de 2 horas de tempo de tempo de execução e inclui o código de origem completo para o download para fazer o download, seguir e usar como você se de se ajustar.

Faça um Enroll de hoje para começar.

Conheça seu professor

Teacher Profile Image

John Morris

I help freelancers get clients.

Professor

Click here to start this class

Visualizar o perfil completo

Nota do curso

As expectativas foram atingidas?
    Superou!
  • 0%
  • Sim
  • 0%
  • Um pouco
  • 0%
  • Não
  • 0%
Arquivo de avaliações

Em outubro de 2018, atualizamos nosso sistema de avaliações para melhorar a forma como coletamos feedback. Abaixo estão as avaliações escritas antes dessa atualização.

Por que fazer parte da Skillshare?

Faça cursos premiados Skillshare Original

Cada curso possui cursos curtas e projetos práticos

Sua assinatura apoia os professores da Skillshare

Aprenda em qualquer lugar

Faça cursos em qualquer lugar com o aplicativo da Skillshare. Assista no avião, no metrô ou em qualquer lugar que funcione melhor para você, por streaming ou download.

Transcrições

1. Formulários É O de Internet: Olá, John Morris. Aqui, John Morris online ponto com. Esta lição. Eu só quero tipo de dar-lhe uma cartilha sobre por que eu acho que este conjunto de habilidades é tão importante e por que eu acho que apenas aprender esta uma coisa sozinho pode eu quero dizer que ele pode realmente liberar você até fazer algumas coisas incríveis quando se trata de Web projetado e desenvolvimento Web. Agora eu sei que as pessoas meio que reviram os olhos para isso, mas eu quero fazer é apenas um tipo de mostrar algumas das coisas diferentes. Então, por exemplo, vamos pegar um site como o Facebook. Eu o quê? A principal coisa que você faz aqui é postar status e respondeu a status, Poderia ser em sua própria linha do tempo. Pode estar nas coisas de outras pessoas. Pode ser em grupos no final do dia. O que você está fazendo é postar dados em uma caixa. Isto aqui é uma forma, então, em última análise, o núcleo em torno do que um site como este é construído em torno de formas. Se você vai para o Twitter novamente, a principal coisa que você faz aqui postando em um formulário quando você era uma resposta a postagens de outras pessoas sua postagem em um formulário quando você envia um vídeo para o YouTube. Eu arrastaria um vídeo até aqui, e então eu teria um formulário inteiro que eu teria que preencher. Se você quiser continuar insinuando para empregos. Isto é tudo um formulário que preciso preencher aqui. Até o Google, o motor de busca, é um formulário que você precisa preencher. Então o ponto é que forma de construção e compreensão deste fundamental básico você pega todas as coisas que as pessoas gostam de falar em todas as coisas extravagantes Ajax e nós queremos fazer nota. E queremos fazer todas essas coisas. No final do dia, a coisa muito fundamental que você tem que fazer que corre tudo isso são formas. Você está preenchendo formulários, e ser capaz de fazer esse tipo de coisa é exatamente isso. É essa habilidade fundamental que permitirá que você seja capaz de fazer o que quiser . Agora, obviamente, há uma complexidade muito mais complexa que muitas dessas coisas quero dizer, Google tem todos os tipos de algoritmos por trás disso. Facebook, etc. Mas no final do dia, a interação que eles têm com o usuário final é através de um formulário. Então, saber como fazer isso é uma habilidade fundamental, fundamental e crítica que quando você aprende, você pode fazer com ele o que quiser. Você pode tipo de ir todos os tipos de maneiras diferentes e novamente, como eu disse, abre você para ser capaz de construir algumas coisas incríveis na Internet. Então eu quero ensinar que habilidades fundamentais vão ensinar a você como fazê-lo com HTML, minha sequela e PHP e eu quero tipo de eu quero ter certeza que eu estou claro que não é qualquer um desses sobre o outro. Então, por exemplo, no curso, vou ensinar-lhe algumas das coisas novas e html cinco que você pode usar para alguns campos obrigatórios de validação básica , usando campos de e-mail e todos esses tipos de coisas que permitirá que você aproveite o poder da casa H, ensine três milhas cinco e o que há de novo nisso para ajudá-lo com sua forma. Então há definitivamente um forte foco na parte HTML, mas também vamos entrar na minha parte sequela dela, e falar sobre, você sabe, construir seu banco de e falar sobre, você sabe, você sabe, dados e os diferentes tipos de dados e como realmente mostrar-lhe como criar. Seu primeiro banco de dados. Se você não fez isso em todos esses tipos de coisas, nós vamos entrar nisso. E então, claro, há o código PHP no meio que conecta os dois, e nós vamos entrar pesado nisso. Falar com você sobre segurança protegendo seus formulários, , fazendo com coisas PHP embutidas principalmente, mas também mostrando algumas opções que você tem. Se você quiser sair disso, você algumas coisas de terceiros higienização validação impedindo a injeção de SQL, impedindo ataques de script entre sites. Todos esses tipos de coisas iam entrar dentro deste curso. Então, se você quiser aprender essa habilidade fundamental ah, você quer aprender como pegar dados de um formulário, colocá-lo fazendo para um banco de dados e, em seguida, ser capaz de recuperar esses dados de volta para fora do banco de dados e fazê-lo em um muito conciso, específica, maneiraespecífica, precisa do que eu encorajaria você a mergulhar neste curso em tackle cabeça sobre. Então isso é um pouco sobre o curso de um pouco sobre o que vamos entrar, modo que disse, Vamos mergulhar nele. 2. Como criar um formulário simples: Olá, John Morrissey, John Morse online ponto com. Esta lição que estamos indo para isso é uma espécie de formulário simples tutorial. Agora ainda há um pouco que acontece aqui, mas o que eu quero mostrar aqui é a conexão base do seu formulário HTML para o seu script de processamento PHP e, finalmente, em seu banco de dados de sequelas. Como essas 33 coisas se conectam. Então é por isso que vamos passar aqui muito rápido. Antes de entrares nisso, só quero tirar umas coisas do caminho para não ficarmos atolados com isso . Aqui, primeiro da nossa estrutura, tenho três arquivos. Eu tenho conflito tem PHP, que vamos chegar em um minuto. Ter simples dot PHP, que é o que você está olhando agora, tem a maioria do código, a forma e o script de processamento em tudo isso. Então eu tenho esse estilo que CSS para o estilo dot CSS é bonito, apenas CSS básico. Eu não vou passar por tudo isso porque eu quero realmente me concentrar nas partes PHP deste , mas é o que tipo de dá isso É um pouco do olhar aqui, então eu não queria que fosse apenas uma forma completamente simples. Mas é apenas um estilo muito, muito básico aqui, certo? Então, sabe, como eu disse, não vou mais cobrir isso depois deste ponto. Tudo bem? Então, uh, a primeira coisa que eu realmente quero passar aqui é que eu quero tipo Eu quero cobrir o formulário rapidamente, e então eu quero saltar para o banco de dados e mostrar a vocês como criar o banco de dados que estamos vai enviar isso em. E então isso vai nos dar tipo de onde estamos começando com o formulário em que estamos terminando com o banco de dados. E então podemos falar principalmente sobre o código entre os dois. Certo, então se chegarmos ao formulário Ah, ignore tudo isso aqui por um segundo. Começando aqui com esta declaração de tipo doc, eu tenho um tipo padrão de página HTML que você teria aqui com uma tag HTML ahead tag, body tag. Estou definindo o conjunto de personagens. Isto é para a capacidade de resposta móvel aqui. Estou ligando na minha folha de estilo bem aqui. Tenho aqui a minha etiqueta de título. Então essa área da cabeça, nada de especial nisso. Isto é tudo basicamente padrão H dois a maioria das coisas. Você vê, eu tenho este tipo de bloco PHP livro aqui. Chegaremos a isso em um segundo. Não quero falar nisso ainda porque não faz sentido até entrarmos na parte do código disto. Então a grande coisa em que eu quero me concentrar agora é essa parte de forma. Então esta é a forma real que vemos aqui à direita. Então, quando escrevemos nossa tag de formulário, há algumas coisas que precisamos especificar no mínimo. Portanto, precisamos especificar a ação. E a ação é essencialmente para onde queremos enviar os dados que serão enviados pelo formulário. Então, neste caso, nós deixamos em branco. E o que isso significa é que este formulário de dados que é enviado será realmente enviado de volta para esta mesma página. Então isso é o que seria um chamado um formulário de auto-submissão. E é por isso que nosso código PHP que o processa está aqui na mesma página. Agora, se você quiser, você poderia colocar algo como, digamos, processar dot PHP aqui. E então você poderia vir aqui e você poderia criar um novo arquivo chamado process dot PHP. E você poderia pegar todo esse código e colocá-lo ali, se você quisesse. Hum um. Eu queria manter todo o código em um só lugar, então estávamos pulando entre uma tonelada de arquivos. Serei muitas vezes. Um formulário de auto-envio como este é perfeitamente bom para o que você precisa, então Ah, eu decidi fazê-lo assim. Não há necessariamente nenhum Ah, você sabe, não há necessariamente uma maneira certa de fazê-lo, mas isso é exatamente o que eu decidi fazer aqui. Em seguida é o método, e ele está definido para postar. Agora há lá. As duas opções principais que você pode colocar aqui são postar ou obter, e você pode ou não estar familiarizado com eles. Essencialmente, a diferença é se você enviar dados via get Então, se fôssemos nos mudar para ficar assim, o que isso faria é quando este para Miss enviou todos os dados seriam anexados ao U. R L como consulta parâmetros, e é aí que você realmente puxaria os dados de assim com e na maioria das vezes, a única vez que você realmente faz isso com tipo de formulários padrão é com um formulário de pesquisa e que a razão que você faz isso com o formulário de pesquisa é porque se você deseja um link para determinadas pesquisas do que tudo o que você precisa fazer é ter, quanto mais rápido você pode executar a pesquisa, pegue o parâmetro de consulta. Você pode realmente vincular diretamente a essa pesquisa sem ter que enviar o formulário para fazer a pesquisa. Quando temos um formulário como este em que estamos terminando, você sabe, um nome e e-mail, é um tipo de dados confidenciais. Geralmente, não queremos colocar isso no URL. Então, a maioria dos formulários que você vai ter vai usar este método post. Eu diria que eu padrão para usar post a menos que você sabe com certeza tem alguma razão convincente para que você precisa desses dados. Ah, na URL aparecer depois disso, eu tenho um tipo de algum html padrão aqui de alguns embrulhar cada um desses campos em Ah Div. Com uma classe de campo de formulário, isso é apenas uma espécie de estilo de ajuda um pouco. Você certamente não tem que fazer isso se quiser. Não é necessário. Super importante. Aqui você pode ver cada uma das entradas e, em seguida, o botão estão todos dentro de um desses Ah , formulário dibs campo. O principal aqui são esses tipos de entrada. Então estamos fazendo uma tag de entrada. Estamos definindo o 1º 1 para um tipo de texto porque esse é o nosso nome. E então nós só queremos texto de string de texto lá. Ah, estamos guardando a aula para texto. Então isso foi para que pudéssemos segmentar com o nosso CSS. Então. A grande coisa aqui é que estamos definindo que o nome desta entrada para nomear. Certo, então, você poderia, isso foi muito confuso. Você faz o nome completo. Podes fazer o primeiro nome do que quiseres, o nome disto quando o processares em código. Isso é o que você diria aqui. Ah, o espaço reservado. Aqui está o que coloca esse fim do seu nome aqui. Então, Então, é isso que o espaço reservado faz. Isso é tipo de um novo tipo de html cinco coisa tipo E então nós temos esta tag aqui chamado obrigatório, que significa HTML vai ver o navegador vai ver este campo conforme necessário. E assim, se nós realmente tentar enviar este formulário sem quaisquer dados, vai dizer, Por favor preencha este campo. Portanto, é uma maneira fácil de ter alguma validação de entrada realmente básica lá. Mas novamente, a grande coisa para nossos fins de código é o nome deste é definido como nome, e nós temos outro campo de entrada. O tipo é definido como e-mail. Então, o que? Ao definir o tipo Tomo, o que isso vai fazer é que ele vai realmente nos fornecer um pouco de validação. Então, se tentarmos fazer J.J. J. E não temos nenhum sinal aqui, tudo bem, e tentarmos enviar este formulário, ele vai dizer Por favor inclua esse site no endereço de e-mail, e assim está indo de novo. Faça alguma validação básica de e-mail agora. Não é infalível. Por exemplo, você poderia fazer J J. J na BBB, e isso me deixaria enviar este formulário. Certo, de novo, é muito básico. Mas, você sabe, nós meio que usamos tudo o que está disponível para nós novamente. Aqui. Nós meio que temos este conjunto para classe de texto novamente. Temos o espaço reservado aqui, mas o nome deste agora é e-mail. Certo, então temos nosso botão aqui embaixo. Eu disse um botão com um tipo de classe de botão para que pudéssemos segmentar instâncias muito direto para ele. Ok, então esse é o formulário, as principais coisas novamente, como eu disse ou este nome são os elementos do nome aqui. Estes ar o quê? Vamos aparecer no nosso código, e eu mostro-te onde? Aqui. Ah, em apenas um segundo. Está bem. Então, na verdade, deixe-me ir em frente e fazer isso aqui. Então eu vou fazer impressão são. E eu quero mostrar a vocês como esses dados são enviados, impressos ou postados, e então nós vamos sair. Logo depois disso, vamos imprimir o que está neste bloco de correio, e depois vamos acabar com o guião para podermos ver o que está lá dentro. Vou escrever o meu nome e o endereço de e-mail do Justin aqui. Eu fui atingido. Enviar boletos. Anita, colocar impressões estão, uh bem. Bem, recarregue isso. E então o quê? Isso faz. Por isso, quero tentar ter a certeza de que isto está claro. Se você não estiver familiarizado com isso, sempre que você criar um formulário como este, este é um formulário Peter e HTML como este e você coloca o método de postar o que realmente vai fazer quando você enviar o formulário. Quando você enviar o botão para o formulário é que vai pegar os dados que estavam em cada um desses campos de entrada, e ele vai colocá-lo no que é chamado de super global. E um super global é essencialmente, um, é uma variável que no PHP está disponível em todos os lugares, certo? Então é um global e é um super global, então é apenas ele está disponível. Basicamente, em todos os lugares que você não tem dedo do pé, não há nada que você tem que fazer. É apenas um tipo de magia lá, ok? E ah, então é isso que quando eu faço esta impressão é o que isso é. Ok, agora, se você tivesse usado o método get e estudo usando post assim, você usaria impressão são ficar bem, e há outros super globais que estão lá fora. Mas esses são os dois quando você está trabalhando com formado fora de seu principalmente vai trabalhar com , e assim todos os nossos dados que foram enviados no formulário. Não importa quantas entradas tivéssemos, poderíamos adicionar mais 100 entradas aqui. Todos eles vão acabar neste post super global. E esse super global é, como você pode ver aqui, um array. E tem o nosso nome e e-mail do nosso formulário. Ok, então é por isso que esta parte do nome aqui é importante, porque isso é o que vai ser a chave para cada elemento em nossa matriz. Se mudarmos isto para nome completo, este seria agora o nome completo aqui. Ok, então estes são como nós vamos fazer referência ao que foi enviado no formulário durante todo o resto do nosso caso código. Isso é importante, muito importante para ter em mente enquanto passamos por isso. Ok, então agora eu não vou entrar em todo esse código ainda porque eu quero ir para o outro lado e apenas mostrar o site do banco de dados porque, em última análise, é para onde os dados vão. Então, para mim, eu vou passar para PHP meu administrador agora, dependendo do ambiente em que você está, talvez em um host local esperança como servidor Wamp ou, um Ah, Zamfir. Algo mais como que eles geralmente têm PHP meu admin disponível com isso? Ah, muitas vezes você só vai se você está acessando para fora. Host local, você iria para um host local barra PHP, meu administrador. Então, na verdade, isso é para mim. Isso é o que eu faço. Eu só tenho Ah, você é l para o meu porque é uma nuvem eu d. e eu vou para PHP meu administrador e e isso é o que eu recebo para o seu on ah tipo de um servidor Web regular , Então você pode precisar entrar para ver painel e ver painel . Há geralmente você pode tipo de rolar para baixo e você vai encontrar um link lá que diz, PHP meu administrador. Ele vai deixar você entrar em seus diferentes bancos de dados e você verá algo semelhante a isso. Tudo depende de que versão do que eles instalaram e todo esse tipo de coisa, então pode não ser exatamente assim, mas deve ser alguém bonito. Será perto o suficiente para que possamos funcionar aqui em nós em uma página semelhante, então eu não tenho o banco de dados criado tudo ainda, então eu vou realmente mostrar a vocês como criar o banco de dados. Então essa é a primeira coisa que queremos fazer aqui, ah, ah, é criar um banco de dados. Então o que vamos fazer aqui é você pode ver que eu estou em casa aqui. Eu tenho todas essas opções aqui termos uma janela de consulta, todos esses tipos de coisas. Se quiséssemos, poderíamos clicar em um de nossos bancos de dados aqui. Hum, parece que eu fui desconectado. Faça atividade Teoh. Alguém logar novamente e novamente. Então, há todo tipo de opções aqui. O que estamos procurando aqui é que esses links de bancos de dados clicarão sobre isso e você verá logo no topo. Nós criamos um banco de dados, então eu vou criar um banco de dados chamado Forms. Está bem. E se você sabe o agrupamento aqui, você tem algo específico que você quer usar. Você certamente pode fazer isso. , Acho que,a partir disto, hesito em dizer algo específico, porque isto tende a mudar uma quantia decente. Então você provavelmente precisa fora de olhar isso dependendo da hora que você está vendo este tutorial. Eu acho que o recomendado agora é utf a e antes sublinhado sido então vamos em frente e usar isso aqui. Podemos apenas querer fazer uma pesquisa rápida no Google para o tipo de agrupamento de banco de dados padrão e ver o que parece ser o sabor do dia para esse período de tempo específico. Mas de qualquer maneira, ou você poderia simplesmente deixá-lo em branco e deixá-lo meio que escolher o seu próprio. Mas vamos bater, criar aqui. E então agora ele criou esse banco de dados e você pode ver que o banco de dados está aqui, então vamos em frente e clicar sobre isso. E agora o que precisamos fazer é criar uma tabela na qual vamos enviar esses dados. Então vamos criar uma tabela chamada usuários e o número de colunas que vamos definir como três. E eu vou te mostrar o porquê aqui em um segundo. Então os usuários Colunas três e vai bater Ir. Ok, então sabemos que temos nosso nome e nosso e-mail dos dados que vamos enviar para este banco de dados. Então, são apenas duas colunas. Por que precisamos de três? O que? Vamos criar o que é chamado de coluna de identificação. Então vamos dar a este 1º 1 um nome de I D, e eu vou deixar esse conjunto para o fim. Hum, eu vou definir isso para 20 e ah, nós vamos para chave primária e não, nenhum valor padrão. E isso deve ser bom lá. Então, o que estamos fazendo aqui . Necessidade de definir incremento automático. Isso é crucial aqui. Ok, esta IA é auto Inker pode precisar ter certeza de que isso está verificado. Então, basicamente, o que isso vai fazer é toda vez que isso para a Srta submetida, ele vai criar um novo registro em nosso banco de dados e vamos dar uma olhada no que isso parece aqui em um segundo. Mas nós queremos ser capazes de numericamente tipo de indexar aqueles certo? Se você pensar em uma planilha do Excel quando estiver na planilha, você terá números no lado esquerdo. Isso é um 1234 e você tem números em todo o topo que dizem um B C D. Bem, por padrão, um banco de dados como este não tem esses números ao longo do lado esquerdo. Então, se você quer aqueles e você praticamente qualquer aplicativo, você vai querer aqueles que você precisa para você realmente criar isso. E então é isso que este campo I D é agora. Quando você coloca este ah, auto incremento, o que significa é que você não tem que colocar manualmente os números lá direito, então você não precisa especificar o um, os dois, os três. O que ele vai fazer é quando o primeiro registro é enviado, ele vai automaticamente dar que o número um o próximo registro vai automaticamente dar-lhe o número dois. Então é isso que os incrementos automáticos significam. Vai para incrementos automáticos. Como cada olho de registro adicionado, Ele também vai usar isso como um primo, a chave primária. Então é basicamente dizer, Ah, minha sequela, que esta é a chave primária para este banco de dados que vamos usar para quatro King. Essencialmente adicionar estes números I d é o que isso é. Então, para King, esta mesa. Ah, e precisa ser único e todo esse tipo de coisa. Então é isso que esta coluna é. A seguir, então, são aqueles que você tipo de padrão pensar. Então nós vamos ter nome e nós vamos agora você pode ir e voltar aqui se você vai ter algo que tem, você sabe, você sabe, talvez esta é uma caixa de comentários. Ou talvez você esteja criando um CMS e você vai colocar Ah, esta vai ser a sua caixa de conteúdo post. Você faria algo maior, como texto. Ou talvez você poderia ir até aqui para um longo texto, dependendo da quantidade de dados que você acha que vai ser colocado lá. Você meio que decide. E há todo tipo de informação sobre como decidir isso. Como o quê? Um é ar, certo? Para que cenário? , De novo, quero tentar manter isto simples, por isso quero entrar nisso. Mas aqui, nós vamos usar var char, e nós vamos apenas ir 20 porque o nome vai ser, você sabe, vai ser justo. A maioria dos nomes vai ser bem curto, por isso não temos dedo do pé. Na verdade, estamos indo para 40 porque isso deve ser suficiente para o que precisamos aqui. E então nós vamos com e-mail e nós vamos com 2 55 que é uma espécie de coisa padrão para ah, usando e-mails vamos fazer var char novamente. Até agora, carregar significa que é uma variável. Personagens que poderiam ter, você sabe, cinco caracteres nele, poderia ter 20 apenas é algo que é uma variável. E a maneira como ele se sente meio que afeta a maneira como ele preenche os dados no banco de dados . Então você não está ocupando tanto espaço ajuda com o desempenho um pouco. Essa é a ideia básica aqui. Não é algo para se embrulhar demais para estes. Eu apenas tipo de ficar com isso aqui e então nós não precisamos definir mais nada para qualquer um desses para que nós possamos ir em frente e bater salvar aqui e agora que vai criar esses. Se formos para a estrutura, agora temos o nosso campo de identificação. Temos o nosso nome sentir e temos o nosso campo de e-mail. Então, agora temos nossa estrutura na qual podemos enviar nossos dados. Então nós temos nosso formulário que tem o que vai realmente coletar os dados que agora temos nosso espaço de armazenamento que vamos armazenar esses dados em tipo de são. Se você quiser usar a analogia de uma planilha, temos a planilha. Vamos armazenar os dados agora. Precisamos nos conectar com os dois juntos. Então, quando o formulário é enviado, ele realmente o envia para esta tabela e este banco de dados. Então é isso que o código PHP sobre o qual vamos falar realmente faz. E precisamos afundar essas coisas. Assim seria dito. Há algumas coisas que precisamos ver aqui. Então, a primeira coisa é, precisamos entrar em nosso arquivo de conflito. Gosto de colocar isso em um arquivo de conflito, e precisamos. Precisamos especificar algumas coisas aqui para acessar nosso banco de dados, então a primeira coisa que precisamos especificar é o nome do banco de dados. Então lembre-se, nós criamos o banco de dados. É chamado de formulários, e por isso vamos especificar que o nome desse banco de dados. Em seguida, precisamos do usuário. Então, neste caso, eu estou apenas usando a conta raiz porque eu estou em um ambiente de teste, e assim o nome de usuário nas senhas ou usuário e passar aqui. É rude, e é uma senha em branco. Agora que é padrão em, eu diria, se usando algo como William Server exemplo. Já faz um tempo desde que te tenho alguns desses. Mas lembro que isso é padrão para testes de ambientes que serão rotas e uma senha em branco. Você pode apenas precisar verificar com o que você está usando. Talvez um pouco diferente. Então você só verifica e, em seguida, vê , mas quando se trata de servidores de produção reais, maioria das vezes você vai ter um assistente onde você realmente cria o banco de dados através painel ver. E quando você criar o banco de dados vai ter que definir um nome de usuário e senha, e assim você vai ter esses. Apenas certifique-se de copiar isso em algum lugar. Então você tem aqueles disponíveis para você, mas aqueles ar que você colocaria aqui para o anfitrião mais configurado tal vai ser anfitrião local . Eu vi alguns, eu acho, Go, papai, onde você tem que especificar algo um pouco diferente. Então, se você tentar host local e você está recebendo algum tipo de ar que sobre isso relacionado ao host, então você pode ir para a sua documentação para o seu servidor Web e ver se há algo mais que você precisa especificar ou entrar em contato com seu suporte lá para ver se há algo mais que você precisa especificar aqui. Mas eu diria que a maioria deles, vai ser essa coisa de anfitrião local. Certo, então estamos colocando tudo isso nesse arquivo de conflito, para não precisarmos redefini-lo constantemente. Estamos definindo-os como Constance, o que significa que eles são meio básicos. A maneira de colocá-lo é o tipo deles globalmente disponível. Estarão disponíveis dentro e fora das funções por padrão. Nós não temos nenhuma função na versão simples, mas ah, no caso de termos, é apenas uma prática padrão colocar isso no arquivo de conflito. Certo? Então eu vou fechar isso porque nós não vamos usá-lo mais. Você pode ver que estamos fazendo uma requisição uma vez aqui para exigir que o arquivo de conflito em nosso arquivo PHP ponto simples diz que está basicamente trazendo os dados do arquivo de conflito. Então, agora que podemos avaliar essas constantes aqui, tudo bem, então isso está pronto. Você pode ver aqui. Este é, na verdade, o nosso código de inserção aqui. Então você pode ver que é realmente muito simples. Não há uma tonelada para isso. Então a primeira coisa que vamos fazer é ver se este post super global tem algum dado nele. E a razão pela qual queremos fazer isso é porque se formos a este formulário e nenhum dado tiver sido enviado, então quando alguém aterrissar primeiro no formulário, não queremos fazer nada porque não há dados para trabalhar. E então nós apenas estamos verificando para ver se este post super global está vazio. Se não estiver vazio. Então é isso que significa este ponto de exclamação antes de vazio. Então, não está vazio. Então é isso que vamos fazer quando vamos fazer o resto destas coisas aqui. Certo, então vamos nos livrar disso aqui por um segundo, e vamos guardar isso. E a primeira coisa que vamos fazer é fazer uma conexão com a minha sequela. Então vamos instância oito, uma nova instância da minha vida quadrada. Então este é o tipo de extensão construído na minha escola I para ah, para PHP. E, claro, você poderia usar DOP aqui. Se você está familiarizado com isso, você certamente pode fazer isso. E você pode trocar isso aqui. E eu só vou tentar ir com o tipo de padrão. O que está aqui e disponível? Hum, dentro de um PHP, embora novamente, PDO está nos dias de hoje. Mas, de qualquer forma, vamos suportar que ela seja uma nova instância da minha escola. Isto vai abrir uma ligação à nossa base de dados ou à minha sequência e depois selecionar a nossa base de dados para podermos começar a trabalhar. Então passamos no host do banco de dados, que, lembre-se, era o host local. Passamos nosso nome de usuário, que me lembro de nosso conflito. perfil era a rota. Nossa senha estava em branco. E então o nome do nosso banco de dados, que era formulários e o que isso faz é criar basicamente uma conexão com nosso banco de dados que agora podemos começar a executar consultas. Ok, agora, precisamos fazer isso primeiro, porque eu vou usar esse método que está disponível para o meu SQL. Eu chamei a verdadeira corda de fuga. E você precisa ter a conexão da minha sequela antes de fazer isso. Certo, então é por isso que precisamos fazer isso primeiro. Então o que vamos fazer é fazer um mapa da chuva. Então, essencialmente, o que um mapa de raios faz é que ele está indo, ele passa por uma matriz, e ele disse que cada elemento nessa matriz para uma função de retorno de chamada que você especifica. Então o que estamos passando para um array é o nosso post array. Lembre-se, nós tínhamos nosso array que tem todas as informações do nosso formulário nele. Então, somos o Pat. Essa é a matriz que vamos passar. E a função que vamos enviá-lo para é na verdade um método de classe. E então quando você faz um classmethod em vez de apenas colocar no nome da função aqui Ah, você coloca em um raio e você passa no objeto. Ah, variável. Aqui. Então minha sequela, isso é o que nos conectamos e passamos, em seguida, o método principal. Então, essencialmente, o que este mapa de matriz vai fazer vai pegar cada elemento em nosso post super global post array, e ele vai executá-lo através desta, minha sequela, minha sequela, Real Escape String Method. Agora, o que esse método faz é essencialmente escapa dos dados. Então isso é apenas um tipo básico de coisa de segurança que estamos fazendo aqui, e então leva essa fuga. É preciso que os dados de escape os coloquem de volta na matriz, e ele é salvo como esta variável de dados e você verá daqui em diante esses dados, variáveis vão ser tipo do que nós trabalhamos. Então esta é uma verificação de segurança muito básica aqui. Agora, quero avisá-lo aqui. Este é o mínimo absoluto. E realmente, a única razão pela qual eu fiz isso é porque eu não queria te dar um código que não tivesse pelo menos o mínimo em termos de segurança. Mas isso não é segurança suficiente para realmente usar isso na produção. Vou falar sobre segurança na próxima lição. Nós vamos entrar e dizer como garantir isso, mas eu meio que debati entre Ah, colocar isso dentro. Eles não vão colocar isso aí. E eu decidi colocar lá porque eu não queria te dar algo que não tivesse pelo menos ah, mínimo. Mas isso não é suficiente. Estou tentando me concentrar na conexão com minha sequela e todo esse tipo de coisa. Então, estou tentando não enfrentar insegurança pesada aqui. Então o que eu quero avisá-lo é pensar Oh, bem, eu sou bom em segurança. Estou seguro agora. Sim, ele vai escapar dos dados e provavelmente vai ficar bem. Mas há algumas advertências para isso, e há alguns Ah, nós não estamos fazendo tudo exatamente perfeitamente aqui, então Ah, eu só quero ter certeza que isso está claro. Tudo bem. Então, fora do caminho, então a próxima coisa que vamos fazer é executar a extração em nossos dados. Então, essencialmente, o que isso faz é extrair leva os elementos da nossa matriz e os transforma em variáveis. E assim ele leva e usa porque é uma matriz associativa. Deixe-me apenas ir em frente e imprimir isso Ah, matriz de volta para fora. Já que estamos falando tanto sobre isso, então e depois sair. Vamos continuar e enviar este formulário novamente para que possamos ver os dados com os quais estamos trabalhando aqui. Então Smit que Ok, então temos um raio associativo significa chamados pares de valor de chave. Então esta é a chave, e então este é o valor para este elemento, e esse é o primeiro elemento na matriz. E então temos uma chave e um valor para este elemento aqui. Então, o que a extração faz é essencialmente leva esses dados e cria uma variável chamada nome cujo valor é definido como John Morris. Então isso seria essencialmente a mesma coisa que dizer Nome é igual a John Morris. Tudo bem. Ele cria uma variável com o nome da chave e o valor definido para o que quer que esteja no valor aqui. Certo, então só estamos fazendo isso porque temos um array. Estamos apenas fazendo isso sem ter que especificar cada elemento Ah, com o qual queremos trabalhar aqui. Ok, então, essencialmente, depois de executarmos a extração, o que temos é que temos uma variável chamada nome e uma variável chamada e-mail, e eles são definidos para esses dados a partir desta matriz. Hum ah. Uh, em conformidade. Então agora podemos realmente usar esses dados. Precisamos fazer isso por causa da forma como estamos passando os dados aqui. Usarmos usar a rua Data da matriz não funcionaria muito bem. Isto vai ser menos do que acontece quando chegarmos à próxima parte em que falamos protegê-lo. Mas agora aqui podemos configurar nossa consulta. Assim, para inserir dados em um banco de dados, usamos a inserção no nome da nossa tabela, que se lembram, era usuários e, em seguida, as colunas que nós não vamos enviar os dados em. Então lembre-se, em nosso banco de dados temos uma coluna. Temos a coluna identificação de identificação. A coluna de nome na coluna de email. Agora não temos de o fazer. Como eu disse, nós não temos que especificar o i. D. Ele vai incrementos automáticos, então nós não podemos nem enviar dados para ele, mesmo que nós quiséssemos. Então, tudo o que precisamos especificar são as outras duas colunas. Então, a coluna de nome no e-mail. Calma. Então, esta é a calma em que vamos enviar dados. E, em seguida, estes ar os valores. E assim é nome e variável de e-mail. Então, esses são os dados que obtivemos do nosso formulário. Então vamos do formulário para a nossa matriz post ah da nossa matriz post em nossa consulta aqui. Então é assim que estamos ligando nossa forma através do nosso PHP frio, em última análise ao nosso banco de dados. Então, estamos combinando colunas com dados do nosso formulário. Isso é isso é, em última análise, este nome de variável é dados enviados a partir do nosso formulário. Este e-mail variável são dados enviados do nosso formulário, por isso é passado de uma coisa para a outra. Ok, e estes estão em ordem, então se eu fosse mudar isso e dizer o nome de e-mail, o código PHP não sabe nada diferente. Ele iria enviar o nome da variável nome para a coluna de e-mail. Ok, então é... É estúpido nesse sentido. Então você precisa ter certeza de que estes ar na mesma ordem que um outro, Então nome, nome, e-mail, nome, e-mail. Certo. Então, agora, uma vez que tenhamos essa consulta toda configurada, então e deixe-me apenas executar isto eram impressões de Meteo estão ligadas porque eu poderia apenas ecoar. Mas vamos fazer isso já que já estamos lá. As impressões digitais estão lá. Vamos nos livrar deste e mostrar-lhe as esperanças reais de consulta. Necessidade de reenviar os dados. E assim você pode ver inserir na tabela de um usuário o nome e colunas de e-mail, os valores John Morris eo remorso esportes feminino ponto com. Você também notou essas aspas simples aqui. Eles precisam estar lá também. Certo, do jeito que funciona. Você precisa tê-los lá. Caso contrário, a criação não funcionará. Certo, assim que tivermos tudo isso, tudo o que precisamos fazer é executar nossa consulta. Então vamos passar nossa consulta que acabamos de criar aqui nesta minha sequela, método de consulta, que na verdade vai executar a consulta, enviá-la para a minha sequela e obter uma resposta de volta. Então este é o verdadeiro tudo até este ponto, realmente? Está configurando para executar nossa consulta. Este é o lugar onde nós realmente executamos. Esta é a linha 14 aqui? Ok, então quando fazemos isso, essencialmente com agora, o método de consulta, dependendo dele, depende do tipo de instrução de consulta que você enviar. Então, se você enviar uma instrução select, você está realmente pegando dados do banco de dados. E então você vai se a consulta passar, você vai ter esses dados de volta. E há alguns outros em que o que este método de consulta retorna será diferente. Mas com uma declaração inserida como esta, isso simplesmente vai retornar verdadeiro ou falso. Ok, então esta variável de inserção ou vai ser verdadeira ou vai ser falsa. Ah, e então podemos usar isso. Isso é então o que usamos aqui para especificar nossa mensagem. Tudo bem, então, novamente, neste ponto, nossos dados são enviados ou não, e então aqui em baixo, nós vamos dizer, Bem, OK, se inserir está definido para algo, direita, então se ele está definido para qualquer coisa, então nós queremos ver o que ele definiu também. Então, se for, ah, nós vamos mostrar isso ou uma mensagem de sucesso e mensagens aéreas depende do que está definido para nós precisamos embrulhar isso está definido. Caso contrário, o resto destes irá dar-lhe um erro de aviso. Então, basicamente, run é definido primeiro e, em seguida, dentro disso, se for definido como true, vamos executar esta mensagem de sucesso e se ela está definida para qualquer outra coisa que não seja true, que seria falso porque ou é verdadeiro ou falso que vamos exibir uma mensagem aérea e que havia um ar com esta submissão. Então, se eu vou recarregar isso, você pode ver que temos isso. Os dados foram inseridos com sucesso Mensagem dos dados que acabamos de enviar. Se chegarmos ao nosso banco de dados aqui, clicamos novamente em nossos usuários. Você pode ver agora que temos nosso campo de trabalho. Temos nossa coluna de nome, nossa coluna de e-mail, e temos nossos dados enviados ou formulário aqui. Então ele foi submetido com sucesso novamente, que é o caminho do formulário através do código PHP em última análise para o banco de dados. Então é assim que enviar dados de um formulário Htomo melt html em um banco de dados de sequela usando PHP. Agora, eu sei que provavelmente atirei muito em você lá. O que eu recomendo é que você entre aqui e meio que bagunça com isso você mesmo. Podemos falar sobre mais campos e assim por diante. Um pouco mais tarde. Mas entre aqui e bagunça isso você mesmo configurando seu banco de dados. Você sabe, uh, tipo de descobrir o código, passar por isso novamente se você precisar, hum e apenas meio que realmente tipo de mergulhar nisso porque esse tipo de coisa, este formulário para banco de dados tipo de coisa é que é realmente um fundamental fundamental fundamental para construir qualquer tipo de aplicação ou realmente construir um site que tem qualquer tipo de interatividade para Ele não importa. Para sua coleta de nomes e e-mails, pode ser qualquer coisa se você olhar para o Twitter, Twitter tweets ou se é um formulário que você está enviando para postagens do Facebook. Ah, há um formulário que você está se submetendo. Se você enviar um vídeo do YouTube. A maior parte do que você tem que preencher é preencher um formulário, então tudo é formulários. Então esta é uma habilidade fundamental fundamental para se você quiser ser um codificador apenas construção de sites . Em geral, se você quiser ter um site interativo, você deseja coletar informações. É uma habilidade chave. Então, cavar neste tipo de passar por ele, colocar sua cabeça em torno dele, e ele deve começar a ficar um pouco mais claro. Tudo bem, isso é suficiente para esta lição. Obrigado por assistir. Falamos com você da próxima vez. 3. Como proteger seu formulário: Heather John Morris aqui, John Morris on-line ponto com este sistema. Vamos falar sobre como garantir a nossa forma agora. Então há algumas coisas que temos que aderir e apenas para cobrir brevemente mentalidade aqui, a coisa que eu sempre tento dizer às pessoas quando se trata de segurança é a coisa é ter em mente que não há nenhum tipo de difícil, regras rápidas porque, em última análise, o que você está lidando com pessoas que estão tentando hackear coisas. Então, cada solução ou coisa que descobrimos para ajudar a tornar algo mais seguro, eles estão sempre tentando encontrar maneiras de contornar esses dedos de maneiras diferentes e assim por diante. Então é por isso que os valores mobiliários meio que sempre estão evoluindo tipo de porta giratória em diferentes coisas que temos que aprender. Mas com isso dito, há alguns fundamentos que podemos passar por alguns conceitos básicos que podemos fazer a fim ah, proteger as ameaças conhecidas que estão lá fora e tipo de construir uma maneira onde seria difícil hack ou Garlits da abordagem que alguém pode tomar. Então, há algumas coisas que você quer ter em mente com isso. Em primeiro lugar, há o que eu chamaria de forma de validação, e isso é provavelmente um pouco diferente do que você ouviu. A maneira como você já ouviu falar sobre isso antes em Eu vou fazer a distinção aqui, mas para invalidação é realmente validar que os dados que recebemos para o nosso script post. Então, a parte do nosso script que vai processar o post Atta que o formulário recebeu um foi na verdade da nossa forma, porque quando você tem um script lá fora que irá processar dados de postagem, ele irá processar esses dados de postagem de um Pedido de Ajax. Ele vai processá-lo a partir de ah, pedido de curl arquivado, ser pego qualquer um desses tipos de coisas para que alguém possa realmente encontrar o seu formulário e descobrir onde está o seu script de processamento. Neste caso, é nas mesmas páginas ou formulário, e se eles quisessem, eles poderiam construir ah programa ou usar um script programador que enviaria um para ele não realmente a partir deste formulário particular. Então o que queremos fazer é ajudar a eliminar tudo isso, e há uma maneira que podemos fazer isso usando não, ah, nuances de forma e vamos falar sobre isso neste vídeo. Há também o que eu chamaria de validação de entrada, que é Mawr. O que você pensa quando você pensa em validação de formulário e que são os dados reais que foram enviados em cada uma das entradas validando e ou sanitizando esses dados antes de nós vamos colocá-lo em nosso banco de dados, então temos impedindo ah SQL ataques de injeção, que nós vamos falar sobre isso e usando declarações preparadas e, em seguida, outro que nós teríamos seria ataques de cross-site scripting. E nós não vamos falar sobre isso neste vídeo porque você lida com isso quando você realmente vai para exibir os dados que nós ainda não chegamos. Mas quando falamos sobre a exibição dos dados, todos também cobrem esses ataques de scripting entre sites. Então tudo isso dizia, Ah, essas eram algumas das coisas que vamos falar sobre como nos defender contra esses e alguns fundamentos que você pode passar para fazer isso. Então, um pouco de configuração aqui. Primeiro, se formos para o nosso arquivo de conflito, você vai notar que eu criei uma nova constante aqui chamada Nonce Soul e eu tenho uma espécie de sequência aleatória de caracteres aqui. Agora você pode É ah, ponto aleatório ou cara acredita que é. Você pode ajudar a usar isso para obter uma sequência aleatória de caracteres. Agora, esse tipo de coisa. O que eu vou mostrar a vocês com todas as coisas de hash que não é recomendado para senhas PHP construiu em hash de senha coisas. Então, Então, isto não é só para gerar e nonce. Hum, e não são anúncios, porque mesmo que alguém se espalhe, isso ainda estamos protegendo, os ataques do SQL Injection mostrarão uma maneira que você pode outra maneira de lidar com spam e assim por diante. Então não é tão crítico. Eu diria que sim. Ah, você sabe, nós não vamos tipo de algoritmos de hash padrão aqui, mas se você está lidando com senhas e uma loja aqueles no banco de dados, é muito crítico que você use o material embutido no PHP, mas novamente, você pode ir para organizações de ponto aleatório e permitir que você gere strings aleatórias que eu recomendo. Basicamente, o que eu faço é um gerar cinco popa cinco cordas que ar 20 caracteres e, em seguida, todos pegar dois ou três deles e combiná-los juntos para criar este absurdo. Cada palavra que você, uh, instalou este formulário em O R. Realmente, cada página que você está usando este formulário deve ter um diferente não sal. Se você usar o mesmo, não sal em diferentes formas torna-se mais fácil para alguém descobrir o que esse absurdo e realmente ser capaz de hackett. Então você deve estar sempre usando um não-sal diferente para cada instância deste formulário. Ah, que você está usando. E então vamos para algumas outras maneiras que nós vamos fazer esta variável também. Mas eu tenho essa definição de “non side”. Isto é algo que não é sal. Isso é algo que você terá que adicionar manualmente novamente. Você pode usar ponto aleatório ou para ajudá-lo a gerar esse fluxo. Certo, então uma vez que temos isso, então há algumas coisas que adicionamos à nossa forma. Então, se você vir aqui, você vê, nós agora temos três campos de entrada escondidos aqui e aqueles ação de tempo de ar e hash. Assim são os nomes foram forma carimbado, ação e forma hash. Então, basicamente, a idéia aqui é sempre que esta página carrega essencialmente o que vamos fazer é criar o que é chamado de nonce, que é um número usado uma vez. E cada vez que esta página carrega que nonce vai ser diferente porque é baseado fora do tempo. Então, se , uh , olha, se voltarmos aqui, você pode ver que estamos agarrando o tempo agora. Então esta é uma função de tempo é uma função PHP embutida que nos dá caso de timestamp UNIX. Vamos definir isso para definir esta ação para enviar formulário. Então, a maneira como a ação funciona é basicamente o que você está tentando, a qualquer momento, qualquer tipo de ação que você está tomando que você quer nonce direito, que você quer fazer este tipo de proteção para deve ter um Cada um desses sua própria declaração de ação. Então, por exemplo, se estivéssemos em um CMS e quiséssemos deixar alguém clicar em um link para excluir usuários, poderíamos fazer nós. Nós pegamos nonce. Ah, isso fazendo Ah, usando um formulário e usando obter em oposição a postar. Mas essa ação de exclusão que seria uma ação em si mesma. Então excluir post estaria em ação. Outra ação dentro desse TMS pode ser excluir um comentário. Excluir comentário seria uma ação diferente ou excluir um usuário excluir usuário seria uma ação diferente ou excluir categoria seria uma ação diferente. Então eles são todas ações diferentes, e eles teriam valores diferentes aqui para essa ação. Então você realmente mudaria isso aqui para cada um desses. Agora com isso novamente, assim como o não deve ser diferente para cada instância deste formulário que você colocar em seu site. Esta ação deve ser diferente, bem, então eu apenas enviar formulário para manter um genérico. Mas seja o que for para a Srta. Quatro. Então, por exemplo, digamos que você é meio genérico. Opte no formulário para que você possa colocar a opção genérica. E, em seguida, se você colocar isso em outra parte do seu site e você tiver alterado os campos de entrada completamente e você estiver recebendo seus comentários de modo que seria o formulário de feedback para que você usasse uma ação diferente. Portanto, é importante que essas variáveis sejam diferentes para as diferentes instâncias deste formulário em que você está usando, sejam sites diferentes ou páginas diferentes no mesmo site. Ah, é importante que eles sejam diferentes porque se você mantê-los iguais em todos esses formulários, se alguém realmente quiser tentar invadir seu site, eles vão começar a ser capazes de descobrir, ah, o absurdo e assim por diante e o torna mais fácil para eles para ser capaz de hackear o seu site. Então você quer fazer tudo isso diferente. Então temos tempo. Nós temos a ação e nós temos não são vendidos. Estas são as três coisas que vamos usar para criar um hash. Então você poderia dizer que eu estou usando Sprint F aqui. A forma como o Sprint F funciona são estas percentagens ou espaços reservados. Então a ação é colocada no lugar disso. Ah, este aqui, tempo é colocado no lugar do 2º 1 e o não sal é colocado no lugar deste 3º 1 Então, basicamente, o que temos é que temos ação sublinhado tempo sublinhado não são sal. Então essa é a nossa corda. Acabamos de criar uma cadeia dessas três coisas. E então o que vamos fazer é executá-los através desta função hash usando este algoritmo Shah 5 12. E passando essa corda, e nós vamos salvar esse hash do dedo do pé aqui. Então é isso que cria nosso hash. Certo, então se escutarmos, recarregue essa página ou rápido se eu inspecionar isso e lembre-se, estamos ecoando esse hash aqui em baixo neste campo escondido chamado hash de formulário. Ok, então se eu inspecionar isso aqui em baixo, isso é essencialmente o que estamos recebendo. Estamos recebendo essa longa cadeia de caracteres ok que nós criamos de acordo com um padrão. Agora, o que é importante é que nós criamos esse hash, mas nós temos que enviar este formulário, e quando este formulário enviar vai recarregar esta página, e então todo esse valor de tempo vai ser redefinido quando essa página recarregar. Então, na verdade, vai ser diferente do que era quando nos submetemos. Ah, o formulário. E então nós temos que realmente colocar o carimbo de hora em nosso campo escondido aqui para que possamos enfraquecer re Podemos verificar nosso hash. Isso foi passado com base no tempo em que a página do formulário realmente carregou, não quando foi enviada, porque isso basicamente fará com que eles não correspondam. Ok, então é por isso que estamos colocando carimbo de tempo aqui e formando ação aqui porque nós vamos realmente enviar, lembre-se, estamos usando, Ah, tempo que estamos usando ação, e então estamos usando um nonce. Bem, estamos colocando no tempo a ação e o hash que foi criado quando tudo isso foi carregado. Então temos tudo o que precisamos para fazer nossa comparação e, em seguida, são absurdos armazenados em nosso arquivo de conflito. Então a coisa que o hacker não sabe são os nós. Certo? Então eles puderam chegar a isso e eles puderam ver lá usando o carimbo de tempo usando esta ação formulário . Mas eles não conhecem o nonce. E isso é como se você pensar em uma chave pública e uma chave privada, é assim que muitos olhos AP e outras coisas funcionam. Agora, o absurdo essencialmente tipo de nossa chave privada. E de certa forma, novo, o que isso nos permite fazer é que são nossas formas, basicamente não vamos nos submeter se nosso nonce não coincidir. Certo, então estamos criando uma maneira de sabermos que ele foi enviado deste formulário em particular. Certo, assim que tivermos tudo isso pronto, então o que podemos fazer é voltar ao nosso lembrete que tínhamos antes. Se Post, se Post não está vazio, então vamos fazer coisas com nossos dados postais. Agora tudo isso aqui mudou. Vou te dizer isso agora, mas vou passar por tudo isso passo a passo. Então a primeira coisa que eu faço aqui é apenas extrair Post. Não vamos mais usar um mapa de raios e minha sequela, “ Real Escape String “disso. Vamos usar declarações preparadas e fazer direito. E então nós só precisamos de um thes em variáveis. Vai ser mais fácil trabalhar com ele. Então Extract vai pegar todos os nossos dados postais e criar variáveis fora dele que podemos então trabalhar com. Então a primeira coisa que vamos fazer é checar nossos nós. Então o que vamos fazer é lembrar-nos aqui em cima que criámos um fluxo como este. Bem, o que vamos fazer é recriar essa string agora com o mas vamos usar esses dados enviados. Ok, então vamos lembrar, a formulário foi a ação que foi enviada neste campo, e vamos para o carimbo de data/hora é o carimbo de data/hora que foi enviado neste campo. Então, agora vamos levar as coisas. foram os Essesforam os dados que foram enviados pelo formulário. E estamos criando um hash fora de. Estamos criando essencialmente um novo hash a partir disso. Ok, então e depois por diante. E é isso que estas duas linhas fazem aqui. Eles são basicamente os mesmos que essas duas linhas aqui em cima, mas eles são os dados que foram enviados pelo formulário. Ok, na forma Campos escondidos aqui em baixo. E então estamos comparando esse cálculo re do hash com o hash que foi passado no formulário. Ok, então nós temos um hash que foi criado quando a página foi carregada, e então estamos recriando esse hash quando o for miss enviado, e estamos verificando o que calculamos quando o formulário foi enviado versus o hash que foi criado quando a página foi carregada. E essas duas coisas têm que ser as mesmas agora. A única instância e com a qual eles não seriam os mesmos é se estes os dados do post que foram enviados para o nosso script de processamento não vieram deste formulário. Ok, então é assim que nós validamos que esses dados, os dados que foram enviados para o nosso script post vieram deste formulário. A única maneira de eles se igualarem é ter vindo desta forma. Então elimina basicamente as pessoas usando Ajax e enrolar em todas essas outras coisas para tentar enviar nosso formulário. É só um limite. Nosso formulário não vai se submeter. Ok, então é isso que tudo isso se destina a fazer. E isso é o que tudo o que está essencialmente criando todos esses hashes e, em seguida, executando esta verificação bem aqui. Então, Lee, se combinarem, vamos entrar no resto do roteiro? Se não há uma correspondência, estavam executando este bloco mais bem aqui, que essencialmente define inserir dedo falso. Certo, então vamos conseguir isso. Eles basicamente estão mostrando mensagem aérea que diz falso. Então nada vai acontecer se isso não funcionar de novo, essa é nossa primeira linha de segurança é garantir que os dados que obtivemos vieram deste formulário específico. Tudo bem, agora, uma vez que essa é realmente a parte mais complicada de tudo isso, o resto disso é realmente muito, muito simples, então Ah, e também, que é por isso que quando você está usando hash, você está fazendo senhas que eu realmente recomendo usar o PHP é construído em funções porque eles são apenas funções que você pode chamar, e eles tornam isso muito mais fácil. A outra coisa é que eu não poderia fazer isso. Ah, eu poderia limpar isso colocando este algoritmo de hash bem aqui do jeito que estamos fazendo hash em sua própria função. E em vez de ter o dedo direito recriado aqui, eu poderia chamar a função sempre que eu precisar. Mas isso cria uma camada extra de abstração que poderia ser difícil de seguir indo da forma que tínhamos antes para a forma que temos agora. Então eu não queria fazer isso. Eu queria torná-lo um pouco, pouco detalhado aqui para que você pudesse ver, você sabe, só que eu não queria torná-lo 22 abstraído para você onde começa, você começa a se perder um pouco. Então, novamente, agora temos todas as nossas verificações nonce feitas. Sabemos que os dados que foram enviados vieram deste formulário e novamente. Isso não é uma missão crítica, pode haver maneiras de contornar isso, mas é algo que fornece uma espécie de nível básico de defesa imediatamente. Sabe, não é necessário. 100% infalível e isso, mas não precisa ficar bem, só que vai nos eliminar de apenas 95% do material e lixo que pode estar lá fora . Pessoas tentando spam isso ou o que quer que seja. Outra opção que você tem aqui é que você também tem recaptura. E então a recaptura é do Google, e eles têm a versão dois. Então, se você já esteve em ah site e foi enviar um formulário e eles têm aquela pequena caixa de seleção que você tem que verificar que diz que eu não sou um robô que foi recapturado, essa é a versão dois de Recapture. E então o que você está olhando aqui, esta é na verdade uma classe P de pêssego que você pode usar para adicionar na funcionalidade de recaptura. Agora você tem que ir ao local de recaptura e obter uma chave de site em uma chave secreta e todo esse tipo de coisa. Mas uma vez que você faz isso usando este Ah, esta classe é realmente muito simples. Você pode ver um exemplo completo aqui em baixo onde você cria uma nova instância, passando seu site, afiando sua chave secreta. E então você está usando isso. Há um tipo de script Java de snippet que você tem que adicionar na página, então é isso que isso faz. Ah, e então há uma pequena linha que você precisa adicionar em seu formulário em seu campo de formulário. Então é isso que isto faz. E então na sua verificação real, você tem um pequeno cheque que você precisa executar, e é isso que isso faz. Então sua classe faz com que seja muito, muito fácil de integrar. Recapture em sua forma. Você certamente poderia fazer isso de novo. Eu queria ficar com coisas construídas em PHP. Isso não é coisa de terceiros, porque essas coisas sempre podem mudar. Então, ah, é por isso que estamos fazendo o que estamos fazendo aqui com essas coisas. Mas, novamente, essa coisa de captura recut é uma opção que também irá ajudá-lo a fazer com spam e bots e assim por diante. Tudo bem, agora, uma vez que tenhamos feito tudo isso, agora podemos entrar em Essa é a validação estrangeira. Agora podemos entrar na entrada, validação e higienização. Então, primeiro, a diferença entre sanitização e validação sanitização é permitir que os dados passem, certo? Você não vai parar o roteiro, mas você está escapando dele ou seu higienizá-lo de alguma forma para torná-lo seguro. Então você pode estar recebendo dados que são perigosos. Mas você está rodando através de certos tipos de algoritmos, a fim de torná-lo seguro. Então você está higienizando-o assim e, em seguida, validação é a sua verificação para garantir que ele se encaixa em um determinado conjunto de critérios. Se não acontecer, você não vai fazer isso, não vai seguir em frente. Então, qual você usa e quando Ele realmente depende dos dados que estão sendo enviados e diferentes tipos de dados. Eu lidaria com maneiras diferentes. Então as coisas que são como missão crítica que tem que ser, têm que estar certas. Eu usaria validação, coisas que você pode, você sabe, seria ótimo. Se estivessem, estavam certos. Mas você pode continuar mesmo que eles não sejam 100% perfeitos. Então eu usaria higienização para que você possa ver com nossas duas variáveis aqui. Temos bons exemplos de que para o nome estavam usando sanitização porque o nome é bom dedo do pé tem. Mas não é necessariamente. E, novamente, isso pode mudar no conteúdo, dependendo do contexto. Mas não é necessariamente, ah, 100% de missão crítica. Onde está o endereço de e-mail? Precisamos do endereço de e-mail para entrar em contato com essas pessoas. Então, se eles estão enviando este formulário para que possamos entrar em contato com eles, nós absolutamente temos que ter isso para que isso seja de qualquer utilidade. Então vamos validar isso. Outro exemplo é, você sabe, se você tivesse uma área de texto neste formulário e está permitindo que as pessoas enviem feedback através desse poço novamente, o e-mail seria imperativo. Mas esse feedback não necessariamente ah b que ele tem que se encaixar em uma determinada estrutura ah para que ele seja submetido. Você pode meio que, você sabe, se não for 100% perfeito vai ficar bem, então isso pode ser mais um candidato para higienização. Então você tem que pensar sobre isso dependendo do contexto da aplicação e dos dados que estão sendo enviados e assim por diante. Mas essa é realmente a diferença entre os dois. Agora há algumas funções úteis dentro do PHP, mas a que estamos usando aqui é chamada Filter Var. Eu fiz alguns pares de vídeos no passado onde ele falou sobre entrada de filtro, que realmente permite que você pegue dados diretamente de uma matriz de cartazes e filtre dessa forma . Mas porque já extraímos tudo aqui porque precisávamos fazer todas as nossas verificações nonce e assim por diante agora elas já são invariáveis, então podemos usar filtro var. Então eles realmente fazem a mesma coisa. Então, é apenas uma questão do tipo de dados que você está lidando. Então nós vamos filtrar o nome da variável, e nós vamos executá-lo através do Papai Noel Tie o filtro de cadeia desinfetante. Agora eu recomendo quando você está olhando para tentar descobrir o que higienizar e validar, apenas filtro do Google var sublinhado. E então nessa página haverá um link que tem uma lista, diz alguns, como lista dos diferentes filtros. Clique sobre isso e você verá salvará validação. Filtros dirão filtros de saneamento. Alguns outros que estão lá apenas olharam através deles e ver o que se encaixa nos dados e o que você quer realizar com esses dados em termos de validação e sanitização , porque novamente, será diferente para cada cenário. Mas toda essa informação está lá fora para você olhar. Portanto, este sinalizador essencialmente diz ao filtro var como ele precisa filtrar esses dados. Então nós vamos desinfetá-lo e é uma cadeia de caracteres de dados. Então é isso que nós vamos e lá vai ele se você for e olhar para isso vai te dizer exatamente o que ele faz. E, em seguida, para o e-mail foram novamente correndo através do filtro de nossa filtragem o e-mail, e nós vamos validar isso e nós vamos validar que é um endereço de e-mail. Então isso é realmente vai validar que este é um endereço de e-mail adequado e então eu posso mostrar-lhe um exemplo aqui se nós apenas ir membro antes onde eu estava dizendo, se você fez em um BB neste formulário html cinco não vai pegar isso como um endereço de e-mail inválido. É obviamente um endereço de e-mail inválido. Então, se enviarmos isso agora, você pode ver que recebemos a mensagem aérea. Havia um ar com esta submissão. Isso é por causa deste cheque de validação bem aqui. Então é assim que você validar que esses endereços de e-mail apropriados. Certo, então agora estamos armazenando essas variáveis. Essas barras filtradas sanitizadas, validadas variáveis como nome do filtro e filtro de e-mail. Então nós sabemos disso. Agora há dados limpos, por assim dizer, ou dados de arquivos. E então vamos fazer essa verificação, então filtrar o e-mail quando for uma validação, como quando é higienização vai passar pelo desinfetante e devolver as gravatas de Saturno. Os dados limpos eso isso nós salvamos isso. É este nome de filtro para validação. Se validar corretamente, ele vai voltar. Os dados validados aqui atrás são essa variável. Mas se não validar corretamente, vai retornar Falso. Então, basicamente, o que vamos fazer é verificar o e-mail de filtro e se ele não for igual a false, então isso significa que se ele não é igual a false, isso significa que ele é válido. Ok, vindo um cabelo duplo negativo. Mas se não for igual a falso, então sabemos que são bons dados limpos, e podemos ir em frente e depois enviá-los para o nosso banco de dados. Se não são dados limpos, então vamos executar este bloco mais aqui e novamente transformar Ah disse inserir dois falsos. E isso vai acionar mensagens aéreas aqui em baixo, certo? E, claro, se não for, se é igual a false, nenhum deste código aqui vai ser executado, certo, certo, porque para que este código execute o e-mail de filtro não tem que ser igual toe false. Tudo bem, agora, assumindo que isso é bom dado, então nós vamos, ah, conectar a minha sequela novamente. Este é exatamente o mesmo antes de uma vez dançando e novos incidentes do meu s julho ou passando em nosso host ou usuário são passar Ah, senha e nosso nome de banco de dados. É aqui que fica um pouco diferente. Agora, aqui está o que nós vamos fazer é usar declarações preparadas para que você possa ver em vez de passar nossa consulta para minha consulta escalada onde estamos passando para a minha escola, eu preparo. Agora. É principalmente o mesmo em que temos inserir em nosso nome de tabela. Temos nossas colunas, nome e e-mail. Nós temos valores, mas nos valores parênteses aqui temos que interrogar pontos. Estes são água chamada espaços reservados. Então não estamos colocando os dados reais na consulta estavam dizendo, Haverá dados aqui, mas nós não enviamos esses dados para você ainda. E é assim que as declarações preparadas ajudam a garantir. Ah, as perguntas que você envia na minha sequência. Porque a primeira coisa que você faz quando você executar esta declaração preparar O que, você está realmente enviando esta declaração preparar para a minha sequela e contando a minha sequela? Ei, estávamos prestes a executar esta consulta e nós vamos enviar-lhe os dados em um segundo. Ok, então você está dividindo a consulta dos dados reais que você está enviando na consulta e ataques de injeção SQL . Confie em que essas duas coisas estejam juntas. Na verdade, ele está injetando código queary no lugar dos dados. Quando você separa essas duas coisas , literalmente não pode acontecer. Ele cria uma linha dura entre, ah, a consulta que está sendo executada e os dados. Então, quando você faz uma declaração preparada como esta e nós realmente enviar nossos dados do que toe minha sequela depois de enviar-lhes esta consulta, minha sequela não pega os dados e, em seguida, colocá-lo na consulta e executar a consulta. Ele já tem a consulta pronta, e só precisa dos dados, e as duas coisas nunca se misturam. Ok, então novamente, é apenas uma correção difícil dois ataques de injeção SQL. É por isso que tantas pessoas dizem e recomendam usar declarações preparadas. É que é uma linha dura que não pode ser atravessada. Então, uh, é por isso que nós colocamos esses espaços reservados e nós não estamos colocando os dados reais, e então nós vamos dizer a eles quais dados usar. E isso é o que esta próxima linha é que está comprando Paramus. Então, essencialmente, o que você está fazendo é vincular esses parâmetros a esses espaços reservados. Então você está contando minha sequela. Certo, esses são os dados que queremos colocar no lugar desses espaços reservados. Agora, você tem este tipo identificar o IRS aqui eles são basicamente dizer a minha sequência que tipo de dados é este. Neste caso, temos s para string. Pode ser imager pode ser fluxo para decimal. Há um número deles, dependendo dos dados que você tem, mas neste caso, ambos são strings. Então, quando você envia os dados, se você diz que é um imager, mas você envia uma string, é óbvio que não vai passar. Se você diz que é uma corda e você enviar um ferido do que é, obviamente, eu vou passar por isso isso isso é apenas uma forma de, ah adicionar segurança extra lá e então novamente, porque as duas coisas se separam. Enviamos a consulta através da declaração preparada. Agora estamos vinculando os parâmetros para eles, e então instrução executar é onde nós realmente executar a consulta e executar a consulta. E isso vai para isso é como antes, hum, você sabe, se certo tipo de consultas, eles vão se há um seleto que espera dados de volta, isso vai dar a você um minha fonte de pesquisa de sequela de volta que você pode usar para ser capaz obter esses dados neste caso com uma inserção porque não há nada que estamos pedindo de volta. Nós só vamos fazer uma turnê falsa aqui. E então estamos definindo nossa inserção igual a se isso é verdadeiro ou falso. E se for verdade, então vamos mostrar inserções que vão ser definidas como verdadeiras. Isso vai acionar nossa mensagem aqui para baixo, por alguma razão, ela não foi submetida, então vai acionar falso, e nós vamos lançar essa mensagem. Então, se formos para o nosso banco de dados aqui, vamos olhar para a nossa tabela de usuários aqui Deixe-me ir em frente e fazer login novamente. Nós olhamos para a nossa tabela de usuários, você pode ver que não temos dúvida que eu removi todos os dados dela. Então, se fizermos nossa coisa padrão e enviarmos o Zied diz que os dados foram inseridos com sucesso. E se voltarmos aqui, vocês podem ver que os dados estão agora lá se formos e novamente tivermos visto isso. Mas vamos fazer isso, uh, esse tipo de coisa e tentamos inseri-lo. Estamos chegando ao ar que não foi enviado, e olhamos para aqui, você pode ver que não foi enviado. Estes são os dados que tínhamos antes. Ah, e então finalmente, se você fizer algo assim, nós vamos apenas fazer aquele e-mail. Então esta é uma citação e nós estamos higienizando membro ou higienizando nossa corda aqui. Então há diferentes tipos de bandeiras que você pode ouvir usar aqui. Alguns codificarão as aspas, e outros não, neste caso, este irá. Vai codificar estas citações. Então, se eu enviar isso, nós vamos obter os dados foram inseridos porque nós não validamos, nós higienizamos. Mas se viermos aqui e olharmos para a nossa submissão, podem ver que isto foi codificado. Essa citação foi codificada em entidades HTML, vez de ficar como uma citação. Ok, então isso é uma forma de higienização. E isso entra em jogo quando começamos a falar sobre, você sabe, se você está recebendo ah, Sanitizar String também vai se livrar de se alguém tentar inserir código html, mas não há razão para ter uma equipe Oh, no bloco de nome. Ok, então ele vai limpar se alguém tamanho enviar script Java, que é ele está nos ajudando a lidar com ataques de scripts entre sites deste lado. Você ainda quer fazer isso no lado da exibição, mas é que estamos lidando com isso também. Ok, então, hum, é por isso que essas citações Aaron codificaram, porque aspas podem ser tipo de caracteres problemáticos, dependendo, você sabe, então, hum, é por isso que essas citações Aaron codificaram, porque aspas podem ser tipo de caracteres problemáticos, dependendo, você sabe, vai ser usado em se alguém está tentando enviar JavaScript. Oh, estão tentando enviar código SQL etcetera. Então codificar isso ajuda a torná-los não perigosos. Então, de novo, apenas diferente. Felizmente, a coisa que você obtém de tudo isso é uma coisa específica, específica prática que você pode fazer. Mas na verdade, é apenas sua mentalidade de camadas de segurança. Temos os acenos de forma por si só, não é necessário 100%. Eficaz . Mas cria uma camada. Em seguida, temos filtrar as variáveis onde há sanitização ou validação novamente. Poderia haver maneiras que alguém poderia descobrir para talvez contornar isso individualmente, mas com o formulário dançando e então você teve neste saneamento e validação e então você adiciona em duas declarações preparadas para se preparar contra ataques de injeção emitidos . Então você adiciona, nós vamos fazer, hum, ajudar a escapar para ataques de script entre sites na tela. Então você só tem várias camadas de segurança que se torna realmente difícil para alguém tentar hackear o que você está fazendo ou encontrar uma maneira de entrar no que você está fazendo. E você sabe, isso foi algo que eu aprendi quando eu estava no exército. Mas eu disse, essa idéia de ser um alvo difícil. A maioria dos hackers está procurando por seus alvos de oportunidade. Eles estão procurando alvos fáceis, então se eles sentam aqui e eles começam a tentar mexer com suas coisas e eles estão correndo para o não-material. E depois o Senado. Eles são apenas, sabes que mais? Vou passar para outra pessoa que é mais vulnerável e facilitar, e isso permite que você seja ignorado. E essa é a ideia de tudo isso. Então, espero que essa seja a mentalidade que você conseguiu com isso de novo. Coisas práticas muito específicas que você pode fazer. Mas provavelmente a coisa maior e mais importante a longo prazo é a mentalidade de criar essas diferentes camadas de segurança. E à medida que surgem novas ameaças, você pode aprender sobre elas, e você pode aprender a adicionar ainda mais camadas e ah, e assim por diante. Então, de qualquer forma, é assim que protegem seus formulários. Esses tipos de ar são os fundamentos básicos deste lado para fazer isso. Então, espero que tenha tirado algo disso. Obrigado por assistir. Falaremos com o dia seguinte. 4. Como criar um formulário avançado: Ei , , John Morse. Aqui. John Morris, ponto com online. Esta lição. Nós vamos entrar em uma forma um pouco mais avançada, e eu vou mostrar-lhe alguns dos outros tipos de entrada ou campo que você pode usar em seus formulários e como lidar com aqueles em seu código. Então, como você pode ver, aqui, temos mais do lado direito, nós temos, ah, ah, algumas caixas de rádio. Temos algumas caixas marcadas. Temos uma caixa de seleção e temos uma área de texto. Então isso é praticamente a maioria das coisas que você vai usar, provavelmente em uma base regular para seus formulários. Quero dizer, há outras coisas lá fora, mas não estão perto é comum. Então eu quero ter certeza e cobrir isso. Ele é muito comum. Tudo bem, então se formos até o fundo aqui, eu posso mostrar o HTML primeiro, e então nós podemos novamente ir para o nosso banco de dados e depois ir para o nosso código PHP para conectar os dois. Então vamos começar aqui com essa seção de freqüência anormal aqui, e vamos fazer nossas caixas de rádio. Então, primeiro a entrada que você disse para um tipo de rádio, então isso torna o que o torna um botão de opção. Eu dou-lhe uma classe de rádios, como um alvo via CSS. Embora eu não tenha adicionado nenhum CSS para os botões de rádio aqui, , vamos pular o I d por um segundo, e então nós tínhamos dado um nome de frequência. Ah, o valor do dia a dia. E então você pode ver que tem isso verificado, ah atributos aqui. Agora, se olharmos para o outro e eu falarei sobre isso em um segundo, olharemos para o outro botão de rádio. Você pode ver que tem um tipo de entrada de rádio, uma classe de rádio bem ignorado I d. para segunda utilização. Você pode ver que o nome é o mesmo, então sua freqüência também, o que é diferente é o valor. É assim que você lida com caixas de seleção porque as caixas de seleção são destinadas a ser uma coisa ou tipo . E então, ah, quando as caixas de seleção diárias marcadas o que vai ser enviado? Lembre-se, nossos dados que estão em nosso formulário é enviado para que post super global que post array. Bem, quando temos essas duas caixas de seleção e ambas têm o mesmo nome, o que quer que esteja marcado é o único que vai ser submetido ao nosso script PHP . Ok, então não vamos ter dois elementos no nosso raio. Vamos ter um, e será diário ou será semanal. Ok, então é assim que você lida com botões de rádio de novo? Porque eles são um ou uma situação. E se tivesses três botões de rádio,o Armento Onley tem um dos três selecionados. E se tivesses três botões de rádio, Então sempre haverá apenas um se você fizer algo diferente disso, você não deve usar botões de rádio para que isso seja apenas algo a ter em mente. Quando você está quando você está construindo isso. Agora vamos falar sobre o i D. Por um segundo aqui, você pode ver que eu tenho este eu d definido para frequência traço diário e freqüentemente traço semanal e, em seguida , no rótulo aqui eu tenho quatro igual frequência traço diário e frequência Dash semanal para estes. Então estes quatro atributos corresponde ao ar no rótulo aqui, corresponde ao I d. Atributo na entrada que é. Então, se eu clicar nas palavras semanalmente, ele realmente muda e se eu clicar diariamente, ele muda de volta. É assim que você faz que está usando esses quatro atributos, e é para o I d da entrada. Então você tem que acrescentar que eu d se você quiser que esse tipo de coisa funcione. Caso contrário, você terá que clicar diretamente na caixa de seleção para que ele funcione. Muito bem, no início do botão de rádio. Acho que devo dizer que a seguir são as caixas de seleção. E então as caixas de seleção são um pouco diferentes em que, ao contrário de um botão de opção, isso é tipo de ou caixas de seleção permitem que você selecione vários, então eu posso selecionar todos eles de uma vez. Então lidamos com isso um pouco diferente. Então, para a entrada temos tipo de entrada igual a classe caixa de seleção é igual a caixa de seleção. Você já sabe por que tenho isso aqui. São exatamente as mesmas razões acima. Você pode ver meu rótulo quatro aqui então nós realmente não vamos cavar isso porque o mesmo está aqui em cima . Então digite a caixa de seleção, classe caixa de seleção e, em seguida, nosso nome. Temos interesses, e então temos PHP entre parênteses e aqui temos interesses em HTML e colchetes e aqui. Temos interesses em CSS e colchetes e todos eles estão definidos com um valor de um. Então, ao contrário das caixas de seleção onde o que está marcado é o que vai ser submetido neste caso, os que ainda são os que verificaram o ar. Mas porque estamos basicamente estavam lá todos os interesses e queremos ter essencialmente matriz uma matriz dos interesses que alguém verificou. Ok, então deixe-me ir em frente e nós vamos checar isso e deixe-me apenas eu quero te mostrar isso bem rápido . Então, vamos subir aqui. Vamos imprimir a nossa matriz de postagem. Oops. Bem, o nome desse cara e vamos sair por lá. E eu estava passando por alguns dados aqui e vou enviar isso. Isso deve dar-nos o que precisamos. Ok, então você pode ver isso sob interesse bem aqui. Este é o nosso elemento de interesse. Ele se torna um array e você pode ver que ele tem um elemento de PHP set toe one em um HTML set toe one. Então, basicamente, se não fizermos isso dessa maneira, se definirmos todos esses Teoh os interesses do nome, nós só não seríamos capazes de ter múltiplos dentro de uma matriz. Certo? Porque se funcionasse como o botão de rádio, só nos permitiria ter um que foi selecionado. Então, o que estamos fazendo é essencialmente em nosso bloco de nome ou usando uma notação de raio, envolvendo isso entre parênteses. E isso é Ah, isso é o que está criando esta matriz bem aqui. Então nós acabamos com este ah, interesses de nome chave de nível superior. E então temos uma matriz em qualquer caixa verificada pelo ar. Vamos ter elementos com esses valores, definir o dedo do pé um. Agora, o único realmente não importa neste sentido, mas, ah, nós apenas temos um valor lá dentro. Para que ele é definido aqui, ok. E depois falaremos sobre como lidar com isso. Nós vamos meio que mexer com isso para Nagel que um pouco em nosso código PHP. Mas novamente, é importante que quaisquer caixas de seleção que você tem que você usar este tipo de padrão aqui . Então você obtém este bom array que você pode então trabalhar com. Certo, então essas são as caixas de seleção. Vamos recarregar isso. A próxima é a do país. Agora você vê aqui realmente tem uma lista de todos os países aqui. Hum, eu só queria dar a você um exemplo de uma lista, e eu pensei que países uma coisa muito popular que as pessoas querem saber como fazer. Então eu fui em frente e fiz isso. Agora você vai ver que eu tenho o arquivo deste país aqui, então se nós abrirmos isso, você pode ver que é apenas esta lista de países. É uma grande variedade com todos os países. Agora, eu não me sentei e datilografei tudo isso. alguém Felizmente, fez isso por nós. E eu uso isso do “get hub” aqui. Então, hum, você obviamente será capaz de ver e obter o código que eu tenho. Mas se você quiser Ah, use isso. Você pode apenas tipo de matriz de países do Google PHP. E isso é como se os primeiros resultados chegassem aqui e copiassem. Então foi exatamente o que eu fiz. Deixo tudo em um arquivo aqui, e se voltarmos aqui, vamos para o topo. Você pode ver que estou exigindo esse arquivo aqui. Só para eu não querer soltar toda essa linha apenas neste arquivo aqui e tipo de criar um monte de código aqui que poderia causar uma bagunça visualmente. Então eu apenas colocá-lo em seu próprio separado encontrado e exigi-lo em. Então, agora que temos essa variedade de países, não vá em frente e feche isso, então o que podemos fazer é criar nossa caixa fina a partir disso. Então temos selecionar Temos o nome. Eu coloquei uma classe de seleto e eu sou eu fiz isso curso necessário não tem que fazer isso. Mas eu fiz. E, em seguida, criamos uma opção com o valor definido como branco chamado. E então nós, uh, definir selecionar um país aqui. E isso é apenas para que tenhamos um bom seleto um país Ah, coisa bem aqui para nós usarmos. Agora, uma coisa a ter em mente com isso é HTML 5 é inteligente. Então nós temos este conjunto para obrigatório, e tecnicamente, este selecionar um país é uma opção. Mas se eu tentar enviar este formulário assim, ele reconhece que esse valor está vazio e não vai me deixar enviá-lo para que isso seja uma coisinha útil com HTML cinco. Tenho que escolher um país aqui. Ok, então nós apenas fazemos isso, isso aqui para o visual disso. Então, uma vez que temos isso, então o que vamos fazer é percorrer a matriz do nosso país e para cada país, vamos criar uma nova opção na nossa lista aqui. Então, opção. E o valor é definido para o nome do país. E, em seguida, o isto fecha a abertura para tag opção bem aqui. Este Ah, este sinal bem aqui. E então nós ecoamos o nome do país novamente para que ele apareça. Ele aparece aqui em cima. Então, se inspecionarmos isso rapidamente, você pode ver que temos valor de opção igual, neste caso, Afeganistão e depois Afeganistão também. Então o que você realmente vê na tela é que neste caso é o que vai ser salvo no banco de dados agora. Você nem sempre tem que fazer isso. Estes valores podem ser diferentes do que você disse aqui, se você tem algum tipo de, você sabe, como se eu pudesse tornar todos os países menos maiúsculos que por alguma razão eu queria fazer isso. Você sabe que isso pode ser uma coisa que faz sentido. Para que eu pudesse fazer isso. Mas, neste caso, não o fiz. Então, novamente nós fizemos loop através, e isso é o que cria nossa lista real. Aqui está aquela série de países e looping através disso para criar isso. E, em seguida, fechamos o nosso para cada loop em close-se nossa tag de seleção, e isso nos dá nossa caixa de seleção aqui. E a última é nossa seção de comentários. Então esta é uma área de texto. Então, é classes de área de texto igual a área de texto. Nome é igual a comentário, e nós temos nosso espaço reservado definido para inserir seus comentários aqui e, em seguida, uma coisa sobre áreas de texto que é diferente de algumas dessas outras, como os campos de entrada, é que eles não são auto fechando. Então você realmente tem uma tag de área de texto de fechamento, e a razão é porque você poderia realmente escrever em vez de usar um espaço reservado, você poderia escrever texto padrão e isso realmente teria texto padrão aqui. A diferença entre os espaços reservados que você vê o espaço reservado, eu posso apenas começar a digitar. Onde está o texto padrão? Eu tenho que eu realmente teria que copiar esse texto e excluí-lo aqui fora seria texto real que está na caixa. Qualquer coisa que você colocar entre esses dois. Então, neste caso, vamos deixar um espaço em branco e usar o espaço reservado. Certo? Então esse é o HTML pode estar familiarizado com isso. Talvez não. Não estou totalmente certo, mas apenas tipo de andar através dele para que você possa conceber o que é. Eles são provavelmente o tipo de coisa mais matizada. São essas caixas de seleção aqui e fazendo essa parte aqui? Então preste atenção nisso. Então vamos em frente e realmente me deixe. Parece que fechei dinheiro acidentalmente. PHP. Meu administrador me colocou de volta nisso. Você não precisa mais disso. E então vá para PHP. Meu administrador e nós entraremos em nossos formulários. Banco de dados entrará em nossa tabela de usuários. Vamos para a estrutura e você verá que criei mais algumas colunas aqui. Agora, como você faz isso? Você vê bem aqui em baixo, quando você está sob a estrutura, você vê, ele diz adicionar uma coluna e, em seguida, no final da tabela, no início da tabela. Ou você pode especificar depois de uma coluna existente específica. Então eu tinha acabado de adicionar quatro colunas no final da tabela. Então, antes de termos apenas eu d nome e e-mail. E então eu adicionei as quatro colunas frequência, interesse, país e comentário. E então, se eu bater em ir aqui, ele vai trazer isso à tona para onde eu posso fazer isso. Agora, eu realmente não vou, eu não sei se isso vai realmente, sim. Eu não selecionei nada que realmente não os adicionou, mas isso é o que parece para estes novamente. Isso é, você sabe quem provavelmente está debatendo sobre exatamente como isso é. Você meio que tem uma chance com o seu, quero dizer, Deus ou o quê? Você sabe, em termos de que tipo de estrutura usar aqui para a frequência eles usaram texto minúsculo porque ou será semanal ou diário. Eu sei como a palavra maney deixa letras ou personagens. Vai ser ou vai ser cinco ou seis caracteres, então eu não preciso criar um grande, enorme tipo de bloco aqui para ser capaz de armazenar esses dados. Sei que vai ser pequeno e minúsculo Texas planejando segurá-lo, então eu só uso texto minúsculo aqui para interesses. Quero dizer, neste caso, só temos um punhado, mas vamos serializá-lo. Falaremos sobre isso em um segundo, então faz um pouco mais. E então, você sabe, você pode estar adicionando qualquer número de feridos. Já vi formulários que não têm, tipo, 30 ou 40 nenhum interesse que alguém possa verificar. Então ele faz. Meio que eu fui com Bar Char e coloquei 55 Hum, isso provavelmente é maior do que o que você vai acabar com. Mas eu só, você sabe, novamente, isso poderia ser usado de várias maneiras diferentes. E este bloco de interesse é algo que poderia ser, , você sabe, ele poderia ser usado. Poderia ser um eu tenho um número de interesses diferentes, então eu só queria explicar esse país. Fez o gráfico de barras para 55? Eu provavelmente poderia cortar isso porque sabemos que podemos olhar para nossa lista e ver qual é o número máximo de caracteres em nossa lista, e assim podemos ter uma boa idéia do que precisamos aqui. Hum, mas você sabe, há alguém longo. Há alguns nomes um pouco mais longos no cabelo, e isso é apenas uma espécie de padrão como coisa padrão para mim. Então eu meio que fui com isso. Você poderia. Você poderia mexer um pouco com isso. Só não acho que seja grande coisa para algo assim. Você sabe, nós não estamos armazenando apenas milhões e milhões de registros e grandes pedaços de dados, então eu não sei quanta diferença isso vai fazer. Mas se você realmente quer estar consciente sobre o desempenho, você pode realmente apertar um pouco isso e então comentar. Eu coloquei a mensagem. Então eu acho que isso é provavelmente bastante padrão. Texto é meio que. É grande o suficiente para onde você pode pegar um pedaço decente de texto. Mas você sabe, você não vai escrever como uma palavra completa. Não há 10.000 palavras WordPress blawg posts ou algo em. E eu realmente não quero que as pessoas enviem isso neste bloco de comentários de qualquer maneira, então a tecnologia parecia um meio feliz para mim lá, então esses são os únicos. Quero dizer, foi tudo o que eu disse. Não preparei mais nada para o resto destes. Mas esse é o banco de dados. É onde vamos armazenar novamente os nomes das colunas ou interesses de frequência, país e comentário. Vamos procurar, então você pode ver que isso está vazio agora. Então voltamos aqui, então o que vamos fazer é amarrar esses novos campos no formulário de volta ao banco de dados. Um, então muitas dessas coisas no topo são as mesmas. Então eu não mudei o hash ou qualquer um desses tipos de coisas. A única coisa que eu realmente fiz foi adicionar o que precisávamos adicionar nesses novos campos. Então você pode ver agora, em vez disso, basta filtrar o nome e filtrar o e-mail. Eu tenho estes 33 extra aqui, que ou frequência, país e comentário. E estamos usando filtro var e todas essas cordas higienizadas de filtro de ar porque estas são todas estranhas. Agora você pode estar dizendo Ok, bem, os países estavam pré-povoando isso certo? Estamos especificando o que são. Por que precisamos desinfetá-los? Bem, novamente, é possível que alguém potencialmente envie este formulário. Ah, de certa forma, não usando este formulário essencialmente e então nós sempre temos que assumir que os dados com que estamos trabalhando estão sujos de alguma forma. Então nós sempre assumimos, você sabe, você nunca assume dados limpos de qualquer tipo de entrada de usuário. Mesmo que você esteja especificando o que eles podem colocar em um determinado campo de formulário, há sempre desperdício para hackers contornar isso. E você definitivamente não quer que essa seja sua linha principal e defesa. Então ainda vamos desinfetar as coisas. Então, novamente, a frequência é diária ou semanal. Então isso é uma série de ar do país. Todas as cordas. O comentário é uma string, então eu estou apenas usando filtro Santa Charlie amarrando aqui. Pode haver alguns novos desejos que você poderia olhar para os diferentes campos novamente. Você sabe, ir para aquela entrada de filtro Ah ah, função e PHP e olhou através do filtro diferente. O link existe para os diferentes tipos de filtros. E veja se algo faz mais sentido para os dados que você está coletando. Mas neste caso, eu só quero desinfetar a tensão. Outra coisa que eu quero mencionar aqui é que você sabe, você vai notar que isso é meio detalhado. Eu estou literalmente olhando para cada, uh eu estou executando todo mundo tipo de manualmente, em certo sentido, através de filtro var Há maneiras lá fora para você fazer isso um pouco mais programaticamente e realmente loop através a matriz e fazê-lo ou você algumas das funções de matriz que estão lá fora para fazê-lo. Então você não precisa, hum, hum, acertar cada um de novo. Como eu mencionei antes, Eu decidi neste tutorial para ser um pouco mais dela, tanto porque eu descobri quando eu começar a ficar super concisa com as coisas, pessoas que são novas para codificação 10 dedo do pé, que tende a ser um pouco confuso. E às vezes acho que essa é a única maneira de fazer as coisas. E então eu só quero mostrar a vocês a maneira mais detalhada de fazer isso. E então, à medida que você ganhar experiência, você vai pensar que você vai ver maneiras de fazer isso mais conciso. Agora, só para aqueles de vocês que estão assistindo isso, que talvez um pouco mais longo e eles estão tipo, eu realmente quero fazer isso conciso. O que você gostaria é esta função aqui filtrar matriz de importação. Então, se nós viermos aqui, você verá que leva um tipo, e neste caso, estaríamos fazendo entrada Post. Então, seria de nosso conhecimento, para usar nossa matriz de post. Podemos definir alguns argumentos, Will. Podemos definir alguns argumentos, Olhe para o segundo anúncio vazio. Eu não sei. É basicamente se o Sr. Key está faltando, você quer adicionar Knoll a que, hum, hum, pode ou não pode se aplicar ao que você está fazendo, mas você pode ver aqui isso está simulando alguns dados postais. Tudo bem, então este é um post rate tem produto I d componente, etcetera, aqui em nosso bloco de ovos, que é o que nós passamos em nosso segundo parâmetro aqui para filtrar matriz de entrada. Então esse é o nosso parâmetro de definição aqui. Hum, o que estamos criando é um array, e nós estamos especificando, para cada chave estavam dizendo usar este filtro. Então, se um produto eu d usar este filtro para a chave de componente usado esses filtros com sinalizadores e opções para as versões. Use este filtro para que você possa passar por isso e você poderia dizer OK para cada um desses elementos Elka na minha matriz Ah, você especifica o que Ah, qual filtro você deseja usar e usar a entrada de filtro. Organizar disse ter feito isso para ambos como este. Mas novamente, eu só queria mantê-lo um pouco detalhado, para que você possa tipo de ver como as coisas progridem ao longo, mas para torná-lo mais conciso matrizes de entrada de filtro, o que você está procurando agora, o único tipo de para tudo isso é o chamado Array. Há o campo da chave chamado interesses. E mais uma vez, eu extraí todos estes aqui em cima. Acho que não mencionei isso, mas foram extraídos. Então estas são todas agora como, hum, muito variáveis. Então as chaves foram transformadas em variáveis. Mas com este, porque o valor real novamente que Ah, e nós estamos recebendo o imager, certo? Se nos lembrarmos da nossa matriz de postagem, vamos pegar o gerador de imagens. Deixe-me imprimir isso de volta bem rápido para que possamos olhar para isso porque isso é um tipo de dedo importante sob o suporte. Como isso está se juntando. Tudo bem, então vamos em frente e verificar tudo isso. Vamos submeter isso. Então, novamente, nós temos nossa chave de interesses bem aqui e é um array. O que realmente precisamos é da chave, certo, desta que não precisamos. Vamos descartar completamente isso porque está lá. Para que isto, porque é assim que o formulário funciona, apareça aqui. Mas o que realmente precisamos do interesse que precisamos é PHP e HTML. É isso que queremos os dados. E isso é o que precisamos para higienizar aqui e de novo. Nós só vamos ser completamente desprezados. Descarte estes aqui. Não precisamos deles. Então o que fazemos aqui é realmente fazer um para cada loop em nossa matriz de interesses, mas nós executamos uma chave de raio nele primeiro. Então, basicamente, o que isso vai fazer é isso. Quando você executa uma chave de raio em uma matriz, ele vai pegar todas as chaves e criar um novo raio de apenas as chaves. Então isso é realmente o que estamos fazendo loop por aqui quando nós looped através aqui, este é um array das chaves, não este array real aqui mesmo quando isso basicamente ali apenas descarta alugar esses e nos dá uma matriz de o que realmente precisamos. Então, para cada chave de matriz como um interesse, então vamos criar uma nova matriz chamada Interesses de filtro. E nós vamos executar cada uma dessas chaves através do filtro do nosso porque lembre-se coisa, os atributos, o que realmente precisamos de nossa forma é o que finalmente veio através da chave. Então é isso que precisamos filtrar, porque é isso que vamos armazenar em nosso banco de dados. Então vamos filtrar cada interessante. Vamos apenas usar filtro, desinfetar string, desinfetar string, e eles serão salvos de volta para este novo interesse do filtro de chamada de matriz. Então, novamente, só para mostrar o que isso parece, nós viemos aqui e fazemos uma impressão sobre interesses de filtro. Depois de ter feito toda essa filtragem, nós recarregamos este quadro, você pode ver agora o que temos aqui é um array, e ele tem PHP cada vez. Ellen CSS É um array indexado com nossos interesses nele. E aqueles aqueles que tínhamos desapareceram completamente. Então isso é o que realmente vamos inserir em nosso banco de dados, certo? partir daí, o resto é muito, muito simples, muito parecido com o que fizemos antes. Então, aqui estamos verificando se nossos filtros de e-mail foram configurados como false novamente, assim como fizemos antes. Estamos nos conectando ao nosso banco de dados como fizemos antes. Mas agora estamos mudando nossa declaração preparada. Estamos adicionando infrequência, interesse, país e comentário foram adicionando espaços reservados mawr para combinar com os novos campos em que vamos inserir dados, adicionamos mais quatro designações de tipo. Eles são todos cordas novamente porque vamos serializar nossa matriz de interesses aqui em apenas um segundo. E então estamos passando filtro, nome, filtro, e-mail, e-mail, freqüência de filtro. Vamos falar sobre o serializado no segundo, mas filtrar interesses país filtro e filtro comentário. Então, basicamente, tudo o que fizemos é que acabamos de adicionar ao código que já tínhamos as colunas extras, campos extras nos quais vamos enviar dados e coincidir com aqueles agora serialize aqui esta função PHP. Se você não estiver familiarizado com ele, você não pode pegar um array e simplesmente inseri-lo em um banco de dados. OK, tem isso. Esse tipo de dados na minha sequência não existe. Então, se você quiser, há algumas maneiras de você lidar com isso. Você pode ter me ouvido falar sobre relacionamentos, mesas antes. Em alguns casos, isso faz sentido. Neste caso em particular, não sei se necessariamente faz. Então, se você quer apenas salvá-lo de uma maneira simples, o que você pode fazer, é serializá-lo. E essencialmente, o que a serialização faz é pegar essa matriz e colocá-la em uma string. Mas é uma string que é trabalhada de uma maneira particular, modo que quando puxamos os dados do banco de dados, podemos usar uma função chamada un serialize e que irá levá-lo de uma string de volta para uma matriz para que possamos usá-lo como uma matriz. Ok, então serializado só faz com que possamos armazenar no banco de dados. E, em seguida, quando vamos para exibir dados, vai mentiras insérias que e que vai se transformar em uma matriz. Ok, então é isso que serialized faz aqui. É por isso que, em última análise , temos todas as cordas aqui, e então vamos executar e roupas e todas as coisas que fizemos antes disso tudo é praticamente o mesmo. Então, agora com toda a minha ex, ela se foi. Se eu recarregar este quadro, devemos obter dados foram inseridos com sucesso. Se viermos aqui e olharmos para isso, você pode ver que nossos dados foram colocados em seu nome e-mail diariamente. Esta é a aparência da string serialize. Nossos países, Argélia. Não posso deixar um comentário. Então vamos voltar aqui e fazer semanalmente. Vamos fazer HTML CSS nós. E vamos colocar alguns comentários aqui para que você possa ver que estamos recebendo os dados que deveriam ter tão fracamente. Html CSS EUA comentários Anos vai em frente. Smith que e Coréia para os usuários. E você pode ver o nome de e-mail semanalmente agora html CSS Estados Unidos e comentários aqui. Ok, então estamos recebendo os dados que deveríamos estar recebendo. E, claro, se algo falhasse, você receberia a mensagem de falha como fez antes. Então isso é um que é um pouco mais de um tipo avançado de forma e manipulação e assim por diante e mostrando o tipo diferente dos campos de formulário HTML mais comuns com os quais você pode trabalhar e como lidar com eles e lidar com eles no PHP e armazenar em seu banco de dados também. Novamente, isso é algo sobre o primeiro tipo de passado. Você é como, Oh, isso é muito. Isso é simplesmente bom. Entra e trabalha com ele. Entre com o código-fonte e trabalhe com ele. Talvez assista esse vídeo de novo. E como você está fazendo isso e passa por isso e quanto mais você começar a interagir com ele , mais ele deve começar. Ah, para fazer sentido. Então isso é suficiente para esta lição. Obrigado por assistir. Falamos com você da próxima vez. 5. Como limpar seu formulário com um arquivo de funções: Ei aí. John Morrissey, John Morris online ponto com. Essa lição nós vamos tipo de passar e limpar tudo um pouco e meio que eu tenho sugerido o fato de que há maneiras mais concisas de fazer isso. E então eu queria passar por isso e mostrar-lhe isso um pouco aqui nesta lição. Então você pode dar o próximo passo com ele. Agora, olhando para esta página todo tipo de aviso. Agora, principalmente, esta página é apenas uma espécie de html. Há um pouco no cabeçalho aqui agora, mas a maior parte desse código se foi, e estamos fazendo referência a algumas funções. Então criar nonce neste processo, método ou função aqui e assim aqui em baixo em vez de nossos blocos If else, temos fazer mensagens. Então nós apenas meio que limpar isso um pouco e eu vou mostrar a vocês apenas passar e mostrar a vocês o que nós fizemos lá um pouco agora algumas coisas, porque nós pegamos tudo o que vai no post aqui, e nós colocamos dentro de funções. As e as variáveis dentro dessas funções estarão operando em um escopo local . Ah, não temos que nos preocupar tanto com colisões com estas variáveis aqui fora. Então eu renomeei algumas dessas coisas para provavelmente estar um pouco mais perto do que eu realmente chamaria . Então, por exemplo, carimbo de data/hora. Agora, em vez de ação de formulário de tempo é realmente o mesmo. E então nós não temos nada em vez de haxixe. E se viermos até aqui tipo de atualizamos isso na forma. Então você vê, este é o carimbo de hora e seu eco. Carimbo de data/hora aqui formam ações da mesma forma. E então temos nots e eco nonce aqui. Ok, então apenas algumas mudanças nesta frente e ouvir também como eu mencionei ter ecoado mensagens aqui, em mensagens aqui, e nós estamos passando. Inserir inserção vem daqui. Vamos fazer algumas verificações sobre isso, esse tipo de coisa. Hum, mas ah, que basicamente tira a maior parte do código real do PHP daqui e só o traz via chamada de função. Então isto mantém isto muito mais limpo. Então essa é a ideia aqui. Outra coisa é, quando você notar aqui, ter exigem uma vez e, em seguida, baixo ponto PHP. Se eu abrir o PHP de ponto baixo. Este tem o nosso arquivo de conflito do nosso país dot PHP E agora ele tem este novo arquivo que eu criei chamado função stop PHP e funções dot PHP depende de ponto de conflito PHP. Então, Então, eu faço o major para chamar isso em uma ordem particular, mas eu sou um fã desse tipo de tipo. Estes Ah, esses arquivos de carga como este porque caso contrário cada página que você quer, você sabe , colocar isso, você teria que lembrar de exigir todas essas coisas, enquanto que se você colocá-lo em uma carga arquivo como este, então você pode simplesmente exigir que o arquivo de carregamento, e é sempre o mesmo. de Gostode fazer isso para tornar as coisas um pouco mais fáceis. Então, vamos apenas passar por isso. Então eu tenho o meu pedido aqui, tenho o meu tempo, mas tenho o meu para inação. E então eu estou passando isso para uma função chamada criar nós, e eu estou passando na ação formulário e o carimbo de data/hora. Então, se passarmos para este arquivo de funções aqui, você verá que eu tenho uma função chamada create nonce, e ele leva a ação e o timestamp, e ele basicamente faz o que fizemos antes de criar nossa string para nós toe hash e então realmente hashes, e então ele apenas retorna que Então este é exatamente o mesmo código que tínhamos antes. Acabamos de colocá-lo dentro de uma função tão simples. Ah, você também notou que em todos esses eu os embrulhei. Se a função existe, isso é apenas realmente tipo de Ah, bom hábito de entrar em Just no caso de você ter outras coisas que estão no espaço global e PHP você pode correr em colisões. E então você executa esta função se existe aqui e você vai mantê-lo de pelo menos arejar para fora neste ponto, e então você meio que sabe se há, hum, você sabe, se algo não está funcionando aqui, então vai te dar uma dica de que algo está acontecendo lá. Então é apenas um bom hábito para entrar, para verificar se uma função que já existe antes de criá-la. Então é por isso que eles fazem em cada um desses. Então eu tenho ah, essa função chamada, uh, na verdade, Lett's voltar para simples que PHP então criar o nonce e nós estamos usando o nonce aqui para colocar em nossa forma. E então isso vai acontecer O que vai preencher o nosso formulário aqui? Ah, se olharmos para este campo bem rápido estão escondidos aqui são valor absurdo que criamos ou não, para que possamos preenchê-lo lá. Então essa é a função que está criando isso para nós? E então você vê, se o post não está vazio, estamos passando para apoiar este método de processo. Então, se descermos para este método de processo, então este é todo o código que tínhamos antes para realmente processar. Ah, os dados. Mas nós meio que reorganizamos um pouco. Agora, uma das coisas que é por isso que eu gosto de colocar essas coisas e funções é porque se você se lembra, antes de nós termos esse tipo de grandes blocos de se, se mais assim era assim se outra coisa e depois outra. Se mais fosse, eles eram, ah, meio que aninhados um pouco profundos, e fica um pouco difícil de lidar quando você coloca algo dentro de uma função. O que é bom é que você pode realmente verificar se há falso ou verificar se há um resultado negativo como um resultado que você não quer. E então se você conseguir um resultado que você não quer, você pode apenas retornar. Ok, quando você não está dentro de uma função, você realmente não pode fazer isso assim. E é por isso que gosto de colocar coisas e funções porque muda a forma como escrevemos nosso código e torna um pouco mais eficiente. Então a primeira coisa que eu posso fazer aqui agora por causa disso é que eu posso verificar os nós porque isso é realmente o que eu quero fazer primeiro. Eu realmente não quero fazer mais nada a menos que eu verifique os nós. Ah, onde está antes nós tivemos que fazer algumas coisas a fim de fazer isso, e nós tivemos que embrulhá-lo nestes grandes blocos L fells. Podemos apenas verificar o nonce imediatamente. Então nós chamamos esta função verify nonce aqui, e estamos passando o nonce que temos a partir do formulário HTML. Então, novamente lembre-se onde nós temos nonce aqui que vai ser enviado como uma parte de nossos dados postais. Então estamos passando que estamos passando post para aqui e, em seguida, usando esta variável. Então esse é o nosso post nonce. Isso foi o que foi submetido. Hum, pela nossa forma são formados ação do nosso post nos selos de tempo. Então esses campos escondidos estão bem aqui, e não precisamos fazer. Não precisamos e não precisamos fazer. Não precisamos verificar nada em termos de segurança ou esse tipo de coisa. Porque não estamos. Tudo o que estamos fazendo é hash, e vamos rehash e checar o haxixe. Então, se alguém está passando alguma coisa estranha, só significa que vou trabalhar com os hashes. Então passamos isso para verificar nonce. Se olharmos para verificar nonce aqui em cima, o que ele faz é tomar a ação no tempo aqui, e ele usa criar nonce para recriar o nonce baseado no que foi enviado pelo formulário para criar nosso hash criador re. E então ele verifica isso contra o que foi passado pelo formulário. Ok, então nós exatamente o que estávamos fazendo antes, nós apenas agora temos em funções. E então se isso retorna false do que nós vamos retornar false aqui, e nenhum do resto deste código será processado porque nós retornamos bem aqui Ok, então isso é o que é bom é que você pode fazer como, você pode tipo de fazer uma série de cheques e basta retornar false se você não conseguir o que deseja . E então, uma vez que você meio que fez todas essas verificações, você pode então apenas executar seu código. Você não tem que embrulhar tudo nesses blocos de feltro grandes. Certo, o próximo, então verificamos que não é o próximo que vamos entrar. Nós vamos verificar validar nosso e-mail porque esse é o próximo Se nosso e-mail é inválido, nós não queremos o Nós não queremos o envio. Então, realmente, a mesma idéia que estamos dirigindo nosso posto. Nosso e-mail que foi enviado em nosso formulário através de filtro válido um e-mail. Se for falso, nós vamos retornar falso e apenas tipo de matar o script neste momento. Certo, então uma vez que temos esses dois tipos de verificações do Maine que estamos fazendo isso neste momento ou tipo de validação depois disso. Agora podemos meio que checar. Podemos começar a normalizar nossos dados para que possamos inseri-los em nosso banco de dados. Lembra-se que falei de forma justa? Uh, pelo menos um pouco antes sobre como você pode usar filtro, matriz de entrada ou, neste caso, filtrar matriz var para filtrar através de dados de uma variável ou uma entrada de como o post super global. Para obter super global etcetera, você não precisa escrever cada filtro de nossa linha. Bem, este é um exemplo disso. Podemos fazer isso aqui. Ah, agora dentro. E é um pouco mais simples. Assim como eu disse, você criou nossa matriz de ovos e para cada uma das chaves que do seu post Ray que você quer filtrar dedo do pé, você pode colocá-los aqui. Então Papai Noel apertado. Nome, frequência, frequência, país e comentário. E vamos passá-los todos através de cordas desinfetantes. Agora você percebe que não temos e-mail e não temos interesse. Não temos e-mail porque já enviamos e-mails aqui. Nós já fizemos o filtro do nosso e nós validamos. Então isso já foi filtrado, então não precisamos nos preocupar com isso. Então nós fazemos. Nós não estamos fazendo isso aqui e também para o interesse do filtro, nós temos que fazer algumas coisas especiais com o interesse. Nós meio que conversamos sobre isso antes, então não vamos nos preocupar com isso aqui em cima também. Então nós criamos esta matriz e dizemos ao nosso filtro nossa função, que filtros? Queremos correr para cada chave que queremos para higienizar aqui. E então passamos isso para o filtro da nossa raça. Passamos nossos dados postais e passamos nossas artes. E essencialmente, o que vai fazer é combinar com o que especificamos aqui em nossos ovos com o que ele encontra em postagens. Execute-o através do filtro de sanitização ah e, em seguida, devolva o array como poste de filtro. Então esta postagem de filtro aqui está sobre Lee indo para conter nome, frequência , país e comentário, e tudo vai ter sido higienizado. Ok, então é só um pouco mais eficiente maneira de fazer isso. Então, neste ponto, temos e-mail de filtro. Temos nome de filtro, frequência, país e comentários. Temos cinco dos seis que precisamos. O último que precisamos é filtrar os juros. E então, se você se lembra, nós temos dedos nós realmente temos que loop através do nosso Ah, esse array. E vamos nos livrar dos que estavam nele, e vamos pegar as chaves e todas as coisas que fizemos antes. Isso é basicamente o que estamos fazendo aqui. Uma coisa que estamos adicionando é este cheque. Então, se o interesse do post não está vazio, porque uma coisa que vai acontecer é se você enviar este formulário sem nenhum destes marcado , você pode ter notado isso. Se você enviar este formulário e você não verificar nada disso, você teria recebido um erro dizendo que este para cada esperado ou realmente é um ray keys esperado que este seja um array e eu acho que sei o que é dado ou algo assim. Então isso lida com isso. Diz que se isto não estiver vazio, então vamos passá-lo. Caso contrário, se estiver vazio, vamos apenas configurá-lo para um valor em branco, ok? E então é basicamente só vai ficar em branco em nosso banco de dados porque não temos nada definido para ele, que é o que a multa para o que estamos fazendo aqui. Mas se for, se houver dados nele, então vamos fazer o loop e fazer exatamente o que fizemos antes. Vamos pegar um ancinho, aliviar os interesses. então Eentãonós vamos rodar esses através do filtro var e criar uma nova matriz de apenas as chaves aqui. E, em seguida, aqui estavam realmente serializando isso aqui. A razão pela qual estamos fazendo isso aqui em vez de aqui embaixo. Agora, você vê, nós não estamos serializando. Nossa compra é mais por causa disso, porque se nós serializamos aqui em baixo e ele estava em branco, ele meio que coloca alguns caracteres errados no banco de dados, e nós não queremos isso. Só queremos que fique em branco. Então estamos serializando aqui agora, e só estamos serializando se for realmente um Ray data. Caso contrário, vamos enviar em branco aqui, a partir daí. Esta coisa é praticamente a mesma coisa. Uma nova instância da minha escola. Eu estou preparado. A declaração é exatamente a mesma. Estão comprando cram. Nosso tipo se identifica com o mesmo. A única coisa que é realmente diferente aqui é que agora estamos indo fora de realmente usando nosso post de filtro de matriz porque, ah, se você tentar e extrair de um post de filtro aqui simplesmente não funciona. E assim e não é necessariamente Ah, eu diria a melhor maneira de fazer as coisas neste caso. Hum e então ele e nós lá é realmente apenas conveniência que nós poderíamos usá-lo neste ponto qualquer maneira, então , hum, antes de nós estávamos fazendo isso porque nós estamos usando esses dados e diferentes maneiras de percorrer a barra de filtro. Poderíamos ainda ter que usar o array real, mas era um pouco mais conveniente. Mas aqui, , você sabe, não funciona, e não é realmente necessário. Então, vamos usar o poste de filtro. Lembre-se, isso é daqui de cima. Depois de passarmos por um filtro do nosso caminho para um nome que não o nosso e-mail, lembrámo-nos aqui em cima. Então é daí que isso vem. Filtro, Filtro de frequência Postagem Interesse foi outro comentário especial um país post. Ok, então isso muda um pouco para passar os dados lá dentro, mas isso é muito bom também. E então vamos executar nossa instrução executar e, uh, salvar o resultado daquilo que é verdadeiro ou falso como inserir. Vamos fechar as nossas ligações, e depois devolvemos as inserções. Então, se você olhar para este insert ou este Este método, essencialmente esta função poderia retornar false, false e, em seguida, tour false aqui. Então, três falsos é e um verdadeiro. Ele só vai retornar verdadeiro se os dados forem e realmente enviar todo o caminho através do banco de dados, qualquer coisa menos que isso, ele vai praticamente retornar. Falso. E lembre-se, em nosso simples que o PHP estava salvando o resultado do processo, que é essa a função com a qual estamos trabalhando aqui é processo. Vamos salvar o resultado disso como inserção. Então esta inserção vai ser, ah ou verdade. Se tudo se submeter ou algo menos que isso, vai ser falso. E então estamos passando isso para nossas mensagens do fazer aqui porque precisamos saber qual foi o resultado da consulta, a fim de fazer nossas mensagens. Então voltamos a fazer mensagens. Isso é basicamente o que temos exatamente a mesma coisa que tínhamos antes, exceto que é colocado em uma função aqui. Uma das coisas talvez mais matizadas disso é que temos inserção e padrão toe knoll . Então é basicamente assim que isto é agora. Não há nada na inserção nem está definido, certo, então não está definido ou algo assim. E então se é se a inserção aqui não foi executada, tentamos e jogamos inserto aqui do que é basicamente que nada está sendo passado. E isso vai executar esse padrão, que é basicamente configurá-lo para Knoll. E então a primeira coisa que verificamos para ver é se é não. Se não for, vamos voltar porque não voltamos. Não houve nada enviado. Esta é apenas a primeira exibição do formulário, então não há nenhuma mensagem para exibir. Então, ah, se basicamente não é saber que ele não vai retornar, e então nós podemos construir nossa mensagem e se, se isso é baseado, se é verdade ou é falso. Então, se for verdade, vamos reproduzir a mensagem de sucesso falsa, vamos exibir a mensagem deles. Então, novamente, isso é a maioria, bem, praticamente todo esse código. Realmente. Eu apenas copiei e coloquei em funções e mudei um pouco, então para fazê-lo funcionar dentro de uma função e este é o que eu mais mexi para fazer isso. Mas eu meio que analisei por que e como fiz isso. Então voltamos para cá e vamos para o nosso post em apenas verificar alguns dados aqui. Podemos bater, enviar dados foi inserido com sucesso. E se formos até aqui, podem ver que há nossos dados bem aqui. Ok, então isso é apenas limpar um pouco para que Ah, esta página aqui é muito mais limpa. Não tem grandes pedaços de código. É um pouco mais eficiente. Um pouco mais reutilizável e assim por diante. Provavelmente há outras coisas que poderíamos fazer aqui, mas acho que para o que estamos fazendo aqui, isso provavelmente é suficiente, obviamente. Você sabe, se você usar isso e você usá-lo várias vezes, você pode desenvolver algumas coisas que torná-lo um pouco mais fácil para você. Mas, ao todo, bastante limpo neste momento. Tudo bem, isso é suficiente para esta lição. Obrigado por assistir. Falamos com a próxima vez 6. Como mostrar seus dados: Olá, John Morris. John Morris, coluna de pontos online. Esta lição. Vamos falar sobre exibir nossos dados do nosso banco de dados. Então veja, aqui no lado direito, eu tenho uma espécie de uma pequena tabela de exibição simples aqui de dados que temos em nosso banco de dados. Venha aqui ao nosso banco de dados. Você pode ver que os dados aqui espelham o que estamos recebendo em nosso site, e então eu vou mostrar a vocês como fazemos isso. Também vou falar um pouco sobre a parte de segurança disto. Então, a primeira coisa que eu adicionei uma função aqui em nosso arquivo de funções. Esta é, na verdade, a parte de segurança disto. Isto é uma função. É sublinhado. E basicamente significa eco. E basicamente, o que isso faz é que você passa uma string para o Irã que string através de entidades HTML com essas bandeiras e aspas vai escapar entre aspas simples e duplas. E h t ent html cinco vai exibir código como HTML cinco. Então e, ah, o conjunto de caracteres aqui para isso é UTF 8, que acontece de estar usando aqui. Então? Então, eu diria algo bastante padrão. para fazer aqui. A idéia básica aqui é que você verá aqui, bem aqui. A idéia básica aqui é que você verá aqui, Este script de trabalho. Deixe-me recarregar esta página. Agora, se eu não estivesse fazendo a higienização que eu estava fazendo no front-end escapando que eu estou fazendo no back-end aqui, então isso quando nós carregamos esta página, este código realmente seria executado. Está bem? E se nós ah, visualizarmos a fonte do quadro aqui bem rápido, você pode ver a razão pela qual não acontece é porque é na verdade todos os oito. Os caracteres especiais e assim por diante foram transformados em entidades HTML. Então é assim que eles são realmente impressos no código no código-fonte para que quando eles são exibidos, eles splay assim em vez de como, por exemplo, por exemplo, este javascript não exibindo e realmente renderizando e processando como javascript. Se você fosse para escrevê-lo em seu código-fonte seria Ok, então é isso que é essencialmente como você lida com ataques de script cross-site novamente. Também somos como eu mencionei fazendo higienização na frente. Então, isso é parte disso. Nós também estamos fazendo escapando no back-end que continua nos dá outra camada. Essas duas camadas juntas ajudarão a evitar que esse tipo de coisa ajude as pessoas a impedir que as sejam capazes de injetar javascript em seus aplicativos e ter um processo quando você exibe seus dados. Então essa é a função que eu adicionei aqui. E essa é realmente a parte de segurança de toda essa parte dessa coisa. A partir daí, podemos entrar em como realmente obtemos os dados. Então, novamente temos a nossa exigência uma vez para a nossa carga, temos o nosso tipo padrão de cabeçalho html. Aqui. Eu fiz um estilo corporal realmente fez este um pouco mais largo. Você se lembra da nossa forma, era olhares, eu acho, 500 pixels. Eu só fiz um estilo em linha aqui para deixar isso um pouco mais branco. Provavelmente, você sabe, não necessariamente a melhor coisa a fazer. Ela poderia talvez ir sobre, , você sabe, realmente dando a esta etiqueta corpo uma aula sobre o esconderijo. De qualquer forma, eu não queria passar por isso. Ah, só para este propósito é Então eu só fiz um pouco mais largo lá, e então nós entramos em nosso código real para selecionar de nosso banco de dados. Então, Então, nos conectamos ao banco de dados, então soubemos, por exemplo, minha escola, da minha escola, eu meio que gosto que estivemos fazendo. Então, nosso usuário host passar e nome de banco de dados e, em seguida, aqui porque estamos selecionando todos os dados de uma tabela específica e não há dados inseridos pelo usuário ao executar esta consulta. Nós realmente apenas executar este dedo do método de consulta. Agora, se o usuário inseriu os dados, você gostaria de usar declarações preparadas , , como fizemos no passado. Então, neste caso em particular, porque não estamos, estou só a correr este ano. Mas se você fosse dizer, Digamos que você deseja exibir dados de um determinado usuário para que você talvez tenha feito algo como este usuário. É igual a, digamos apenas um, acho que um. É igual a, digamos apenas um, Se olharmos para os nossos bancos de dados lá, se sim, digamos que queríamos fazer isso agora, agora , não estamos processando, então não vai fazer nada, mas você pode querer fazer algo como onde eu d é igual. E então, você sabe, meio que no passado, você pode realmente obter e obter esse usuário. Eu gostava disto. Tudo bem. Bem, isso é realmente inseguro e seguro porque esses dados na U.R L qualquer um pode ir lá e mudar isso. Então, o que você faria é, como nós fizemos, você colocaria um suporte de lugar, e esta seria a minha sequela. Preparar em vez de consulta e, em seguida, aqui em baixo, e nós realmente fazer esta declaração ah, declaração ah, e então nós fazemos declaração cego Paramus. E neste caso, isto seria um imager, e nós usaríamos Eu não vou fazer nada. Quero dizer, você ainda gostaria de filtrar isso e coisas como fizemos potencialmente dependendo do que os dados não vão fazer nada disso aqui só para mostrar isso rápido. Então vamos fazer o nosso parâmetro de compra e vapor e executar o que isso iria executar esse tipo de, Ah, que iria executar essa declaração. Então eu acho que você tem que correr como, obter resultados. Hum, a fim de obter o resultado, e então você iria fazer um loop através dele assim, mas você faria. A questão é, você usaria declarações preparadas como você tem aqui. Está bem. Então, Ah, você não quer, se você vai fazer algo assim, você não quer. Injecte os dados que não pretende abrir a injecção SQL. Certo, mas de novo, porque neste caso, não vamos fazer. Não vamos fazer isso. Estamos apenas limpando para todos os usuários. Então estamos bem em fazer o que estamos fazendo aqui tão bem não ter recarregado isso. Certifica-te de que está tudo bem aqui. E então, uma vez que temos nossos dados, então temos nosso queer aqui e nós temos nossos dados. Então nós vamos executar um loop while e nós vamos, Então isso é um pouco complicado aqui, mas ah, mas ah, o que fazemos aqui é quando você executa essa consulta e isso é o mesmo verdadeiro. É por isso que quando cheguei a esse ponto em, ah, com as declarações preparadas, eu tive que pensar um pouco, e eu não queria atolar o tutorial, mas isso realmente retorna um recurso, Está bem? Ele não retorna a matriz real de dados se você vir aqui e imprimir. Este recurso não é a matriz de dados que você acha que você poderia obter Ok. Veja, diz o meu objeto de resultado de atribui. É o campo de campo atual dele. Incontáveis. Como se isso não fosse os dados que isso só te diz sobre os dados Ok. Então, quando você executa uma consulta, se usar instruções preparadas ou qualquer outra coisa que você realmente obter de volta é este objeto de recurso. Então você tem que fazer. Esta é basicamente a minha sequência dizendo Ei, é assim que os dados se parecem. Aqui é onde você pode encontrar os dados. Aqui é onde você precisa ir buscá-lo. Ei, bem, então você tem que realmente ir buscá-lo. E se você apenas correr, buscar, objeto como este, ele só vai buscar tipo de primeira fila. E isso é tudo que você vai ter de volta. Essa é a primeira fila? Bem, nós queremos todas as fileiras. Então o que vamos fazer é fazer um loop de tempo e vamos fazer um loop. Ah, e nós vamos buscar cada fileira. E estamos definindo ro igual ao resultado de buscar objeto. Então estamos essencialmente o que estamos fazendo é que estamos passando por cada linha Ah, em nossos resultados, que aqui e nós estamos pegando e pegando como um objeto. Então nós vamos obter um objeto de volta, e nós estamos armazenando isso como um elemento em nossa matriz. Está bem. E então nós somos uma linha em nossa matriz, e então nós estamos pegando cada linha, e nós estamos colocando-o nesta matriz de resultados. Certo, então se imprimirmos nossos resultados agora, depois de ter feito isso, então o que teremos é o que você esperaria. Hum, e sim. Veja, agora, isso é porque eu tenho Eu não me lembro que eu não escapei dos dados lá dentro. Só estou imprimindo cru. Então é por isso que eu tenho o JavaScript para processar. Então, novamente, É por isso que escapar saída é importante. Então você pode ver aqui nós temos uma matriz, e dentro de cada, cada linha é um objeto. Estes são os dados que você normalmente esperaria obter de volta. Certo, então é isso que isso faz. Para ser honesto com você, realmente não importa se você entende isso necessariamente porque você praticamente todos os dados onde você está esperando para obter algo de volta onde você está fazendo uma declaração seletiva . Essencialmente, você vai ter que fazer isso, e é praticamente o mesmo código todas as vezes. Então apenas escreva esse cone ou use esse código ou coloque isso em algum lugar porque você vai usar isso uma e outra e outra vez. Certo, então isso nos dá nossa matriz. Isso estava procurando por aqui. E agora temos que construir nossa mesa. Então, em nossa tabela são seção de cabeçalho e nossa seção de rodapé aqui eles vão ficar os mesmos? Então nós construímos manualmente, assim como você faria com qualquer tabela normal. Então tabela T cabeça, tabela, linha, cabeçalho da tabela para cada item. Quero dizer, isto é coisa de mesa padrão aqui. É apenas t pé do que tabela, linha, cabeçalho da tabela para cada item. Certo, então sua equipe padrão de coisas de mesa cada um para a maioria das coisas aqui no corpo é onde nós realmente temos que passar. E então aqui estamos fazendo um quatro cada, e estamos passando por nossos resultados definidos aqui e para cada resultado. Como resultado, então vamos construir uma linha. Então vamos construir uma linha para cada registro, e em seguida, cada célula nessa linha vai conter nossos dados que coincidem com o que colocamos em nossa cabeça ou assim Nome, e-mail, e-mail, interesses de freqüência, comentário do país, etc. Está bem. E você verá que estamos executando cada um destes através deste sublinhado e. É por isso que quando eu imprimi isso diretamente e eu tinha aquele script Java lá dentro. Ele ecoou. Na verdade, ele executou o JavaScript. Enquanto que quando eu não faço isso direito, se eu apenas executar isso como é, ele não faz isso. Imprime assim. Então, de novo , isso é realmente perfeito. Ótimo exemplo de por que você precisa escapar de seus dados quando você produzi-los. E você sabe que o script Java neste caso está apenas em alerta. Mas esse script Java pode ser qualquer coisa, então ele poderia fazer todos os tipos de coisas nefastas na pessoa que para a pessoa carrega esta página. É por isso que você quer fazer isso. Mas aqui estamos apenas ecoando essencialmente cada item do nosso ah da nossa coluna do nosso banco de dados aqui. Então nome, e-mail, frequência, interesse, comentário do país. Então é só isso que estamos fazendo aqui. O que é um pouco mais complicado aqui é, como mencionamos, tipo de ter aludido é nossa área de interesses porque eles são armazenados em nosso banco de dados como serializado um raise. Então a primeira coisa que temos que fazer é desserializar aqueles Agora eu tenho tudo isso juntos, mas vocês podem ver que eu tenho resultados interesses aqui em vez de apenas ecoar. Na verdade, estou desserializando no início, então estamos não serializando. Isso o transforma em uma matriz. Mas nós ainda não podemos simplesmente não podemos, você sabe, nós queremos que seja amigável para ler. Então não vamos apenas imprimir a matriz. Então o que fazemos é usar implode, e assim implode faz é que ele pega os elementos de Honore e os transforma em uma string usando algum tipo de delimitador que você especifica. E aqui estamos especificando uma vírgula e, em seguida, um espaço. Então, essencialmente, ele vai levar o valor de cada matriz. Então esta coisa exemplo particular Elemento um em nosso raio foi elemento PHP para é cada um para o meu elemento literal. Zero era PHP um que um era cada um para melão elemento para um CSS. É pegar esses valores cada um deles, e está esmagando-os em uma string. Mas é colocar uma vírgula e, em seguida, um espaço entre cada um. Então, basicamente, pega sua chuva, transforma-a em uma corda que você pode apenas ecoar. E então é isso que estamos fazendo aqui ecoando isso. E o resto é apenas um comentário padrão do país. Estamos ecoando todas essas coisas. Então é assim que passamos. E nós realmente pegar nossos dados e, em seguida, neste caso, loop através de construir uma tabela com ele. Agora, é claro, você não quer ter, você sabe, unidade sensível aos dados do usuário. Isso é apenas uma ampla abertura para o público como este. E há todo um tipo de outra arena que poderíamos falar em termos de ter um lugar para entrar, para poder fazer isso e todo esse tipo de coisa. Mas este é apenas um exemplo simples de como você realmente entra e pega aquele pai para fora e depois coloca em algum tipo de tabela de resultados para você olhar. Então, isso é praticamente direto como isso não é realmente uma tonelada para ele. E novamente, como eu meio que mencionei realmente importante que você use que Ah, entidades html. Caso contrário, você vai se abrir para as pessoas Bajammal postar todos os tipos de script Java apenas tipo de willy nilly em todo o seu site. Então, tudo bem, isso vai bastar para esta lição. Obrigado por assistir. Falamos com a próxima vez 7. Próximos passos: Sou honesto que não há mais. Então online.com, tão pouca limpeza para terminar este curso. Se ainda não o fez, certifique-se de ir para a área de aula. Há uma seção de classe para alguns, alguns passos para você percorrer para este curso. Portanto, certifique-se de que está sob a discussão na guia Projetos que você verá no curso. Além disso, se você entrar no meu perfil, certifique-se de me dar um acompanhamento no meu perfil aqui para que você seja notificado quando eu lançar novos cursos. E também tenho um curso de estilo podcast semanal chamado “Let's Talk freelance”. Então, se você gostaria de ter um tipo de acesso a treinamento contínuo sobre freelancing e negócios on-line e assim por diante. Certifique-se de verificar isso. Vamos falar de curso freelance também. E, finalmente, eu tenho um boletim diário de dicas no meu site em John Morris online.com. Se fores para lá, podes inscrever-te na lista de discussão. Você também será colocado no meu próprio, meu próprio aplicativo móvel, ou você terá acesso a mais de 78 horas de conteúdo gratuito no momento desta gravação relacionada ao freelance e assim por diante também. Então, se você está interessado nisso, BD certeza de verificar isso também. Novamente, esse é John Morris Online.com. Tudo bem. Obrigado por ter assistido à aula. Se gostou, agradeço-lhe por si. Deixe uma crítica e nos vemos no próximo curso.