SlideShare uma empresa Scribd logo
1 de 44
Baixar para ler offline
Nível Básico
18/06/2016
Workshop PHP
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Agenda
Público – 2
09:15 - 09:20 Sobre vocês
09:20 - 09:22 Sobre nós
09:22 - 09:25 Introdução ao protocolo HTTP
09:25 - 09:45 Como o HTTP funciona em relação as aplicações web
09:45 - 10:00 Métodos do HTTP para web (GET, POST...)
10:00 - 10:40 Formas de realizar as requisições (Formulários e Ajax)
10:40 - 11:20 Conexão com MySQL
11:20 - 12:00 Criação de um sistema de cadastro e login
12:00 - 13:00 Dúvidas
Sobre vocês
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Sobre vocês
Público – 4
1. Nome
2. O que faz da vida
3. Experiência com Web
4. Experiência com PHP
5. O que espera desse Workshop
Contem um pouco sobre vocês!
Sobre nós
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Sobre nós / Colaboradores
Público – 6
Otávio R. Rossi
Graduado em
Sistemas de
Informação pelo
Mackenzie, possui
grande experiência
na área de
desenvolvimento de
aplicações Web e
consultoria de
negócios na área de
tecnologia em
grandes empresas
do mercado
Michel Zarzour F.
Graduado em
Sistemas de
Informação pelo
Mackenzie, possui
grande
experiência na área
de desenvolvimento
de aplicações
WebApp e
participação em
grupos de startup.
Gustavo Soré
Graduado em
Sistemas de
Informação no
Mackenzie.
Desenvolvedor de
aplicativos,
especialista em iOS.
Responsável por
aplicativos de CRM e
mídia digital para o
setor farmacêutico
na América Latina.
Guilherme Uezima
Graduado em
Sistemas de
Informação pelo
Mackenzie, atua há
mais de cinco anos
com o
desenvolvimento de
soluções
tecnológicas para
diversas
plataformas.
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Sobre nós
Público – 7
Tecnologias e ferramentas
modernas para desenvolvimento
de soluções em cloud
Foco na experiência do usuário na
utilização das soluções
customizadas em multiplataformas
Gerenciamento dos feedbacks,
recomendações de mercado e
implementação de melhorias
http://inopus.com.br
Introdução ao
protocolo HTTP
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Introdução ao protocolo HTTP
Público – 9
Hypertext Transfer Protocol
“Is an application-level protocol for distributed,
collaborative, hypermedia information systems. HTTP has
been in use by the World-Wide Web global information
initiative since 1990. The first version of HTTP, referred to
as HTTP/0.9, was a simple protocol for raw data transfer
across the Internet”. IETF
 Camada de aplicação
 Hypermedia
 Usado pela WWW (World-Wide Web)
 Atualmente da versão 2.0 (HTTP/2)
Utilização:
Como o HTTP
funciona em
relação as
aplicações web
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Como o HTTP funciona em
relação as aplicações web
Público – 11
Cliente Servidor
Solicita páginas web
para o servidor da
aplicação
Recebe a requisição,
processa e retorna as
páginas solicitadas
Renderiza as páginas
recebido através do
navegador
Evento
Retorno
.html
.js
.css
.php
.aspx
.js*
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Hello World!
Público – 12
hello_world.html
01 <h1>hello world!</h1>
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Hello World!
Público – 13
hello_world.php
01 <h1>
02 <?php
03 echo "Hello World!!";
04 echo ("Hello World!! - Assim também funciona!!");
05 print ("E que tal assim?");
06 ?>
07 </h1>
08
09
10
11
12
13
14
15
16
17
Métodos do HTTP
para web (GET,
POST...)
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Métodos do HTTP para web (GET,
POST...)
Público – 15
O HTTP possuí alguns métodos que indicam a ação requerida com aquela
requisição. Dentre esses diferentes tipos de métodos existentes, existem 5
que são os mais utilizados e difundidos.
Method Request Body Response Body
GET No Yes
HEAD No No
POST Yes Yes
PUT Yes Yes
DELETE No Yes
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Métodos do HTTP para web (GET,
POST...)
Público – 16
GET http://tecnodrom.com/Postagens/380/inopus-vence-hackathon-da-ibm
POST https://rapordo.com/usuario/entrar
usuario: otavio
senha: af12354abcd134fed
https://www.google.com.br/search?q=tecnodrom&ie=utf-8&oe=utf-
8&client=firefox-b-ab
GET
Formas de realizar
as requisições
(Formulários e
Ajax)
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Formas de realizar as requisições
(Formulários e Ajax)
Público – 18
Formulários Ajax
1. <form> no HTML representa uma
seção do documento que contém
elementos interativos para serem
enviados ao servidor;
2. Principais atributos do <form>:
2.1. action – URL que receberá o
formulário;
2.2. enctype – utilizado no POST,
MIME Type do conteúdo;
2.3. method – Método HTTP que será
utilizado (GET ou POST).
1. Asynchronous JavaScript + XML;
2. Termo utilizado para descrever uma
“nova” (2005) abordagem na
utilização de diversas tecnologias;
3. XMLHttpRequest();
3.1. API para transferência de dados;
3.2. Modos assíncronos e síncronos;
3.3. Utilizado principalmente para
JSON.
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Formas de realizar as requisições
(Formulários e Ajax)
Público – 19
formulario_get.html
01 <form action="servico_get.php" method="get">
02 <label for="usuario">Usuário</label>
03 <br>
04 <input type="text" name="usuario" id="usuario">
05 <br>
06 <label for="nome">Nome</label>
07 <br>
08 <input type="text" name="nome" id=“nome">
09 <br>
10 <input type="submit" value="Enviar">
11 </form>
12
13
14
16
17
17
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Formas de realizar as requisições
(Formulários e Ajax)
Público – 20
servico_get.php
01 <?php
02 echo $_GET["usuario"] . ' - ' . $_GET["nome"];
03 ?>
04
05
06
07
08
09
10
11
12
13
14
16
17
17
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Formas de realizar as requisições
(Formulários e Ajax)
Público – 21
formulario_post.html
01 <form action="servico_post.php" method="post">
02 <label for="usuario">Usuário</label>
03 <br>
04 <input type="text" name="usuario" id="usuario">
05 <br>
06 <label for="nome">Nome</label>
07 <br>
08 <input type="text" name="nome" id="nome">
09 <br>
10 <input type="submit" value="Enviar">
11 </form>
12
13
14
16
17
17
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Formas de realizar as requisições
(Formulários e Ajax)
Público – 22
servico_post.php
01 <?php
02 echo $_POST["usuario"] . ' - ' . $_POST["nome"];
03 ?>
04
05
06
07
08
09
10
11
12
13
14
16
17
17
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Formas de realizar as requisições
(Formulários e Ajax)
Público – 23
ajax_get.js
01 function enviaFormulario(){
02 // Obter os dados digitados pelo usuário nos campos da tela
03 var usuario_campo = document.getElementById("usuario").value;
04 var nome_campo = document.getElementById("nome").value;
05 var xhr = new XMLHttpRequest(); // Instancio um novo objeto XMLHttpRequest
06 xhr.onreadystatechange = function() {
07 // Verifico os estados da requisição (e.g. se a requisição retornou êxito)
08 if (xhr.readyState == 4 && xhr.status == 200) {
09 alert(xhr.responseText); // Caso o retorno seja sucesso
10 }
11 };
12
xhr.open("GET", "servico_get.php?usuario=" + usuario_campo + "&nome=" + nome_campo,
true);
13 xhr.send();
14 }
15
16
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Formas de realizar as requisições
(Formulários e Ajax)
Público – 24
ajax_get.html
01 <script src="ajax_get.js" type="text/javascript"></script>
02
03 <form>
04 <label for="usuario">Usuário</label>
05 <br>
06 <input type="text" name="usuario" id="usuario">
07 <br>
08 <label for="nome">Nome</label>
09 <br>
10 <input type="text" name="nome" id="nome">
11 <br>
12 <input type="button" onclick="enviaFormulario()" value="Enviar">
13 </form>
14
16
17
17
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Formas de realizar as requisições
(Formulários e Ajax)
Público – 25
ajax_post.js
01 function enviaFormulario(){
02 // Obter os dados digitados pelo usuário nos campos da tela
03 var usuario_campo = document.getElementById("usuario").value;
04 var senha_campo = document.getElementById("nome").value;
05 var data = new FormData();
06 data.append('usuario', usuario_campo);
07 data.append('nome', senha_campo);
08 var xhr = new XMLHttpRequest(); // Instancio um novo objeto XMLHttpRequest
09 xhr.onreadystatechange = function() {
10 // Verifico os estados da requisição (e.g. se a requisição retornou êxito)
11 if (xhr.readyState == 4 && xhr.status == 200) {
12 alert(xhr.responseText); // Caso o retorno seja sucesso
13 }
14 };
15 xhr.open("POST", "servico_post.php", true);
16 xhr.send(data);
17 }
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Formas de realizar as requisições
(Formulários e Ajax)
Público – 26
ajax_post.html
01 <script src="ajax_post.js" type="text/javascript"></script>
02
03 <form>
04 <label for="usuario">Usuário</label>
05 <br>
06 <input type="text" name="usuario" id="usuario">
07 <br>
08 <label for="nome">Nome</label>
09 <br>
10 <input type="text" name="nome" id="nome">
11 <br>
12 <input type="button" onclick="enviaFormulario()" value="Enviar">
13 </form>
14
16
17
17
Conexão com
MySQL
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Conexão com MySQL
Público – 28
MySQL
Segundo banco de dados mais popular do mundo, é um
RDBMS (Relation DataBase Management System) open-
souce, desenvolvido, distribuído e suportado pela Oracle
Corporation. Servidor de
aplicação (PHP)
Servidor de BD
(MySQL)
Exemplo de tabela do MySQL
id nome idade profissão
João da Silva 28 Desenvolvedor(a)
1 Maria da Silva 27 Desenvolvedor(a)
Tabela Pessoa
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Conexão com MySQL
Público – 29
 Para criar uma tabela no MySQL vamos utilizar o phpMyAdmin. Para acessa-lo,
pasta acessar a URL http://localhost:8081/phpmyadmin.
 A imagem abaixo mostra os pontos para criar uma tabela, com o nome de
“usuario”, com 4 colunas.
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Conexão com MySQL
Público – 30
 As quatro colunas criadas deveram ser preenchidas conforme mostra a imagem
abaixo.
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Conexão com MySQL
Público – 31
 As quatro colunas criadas deveram ser preenchidas conforme mostra a imagem
abaixo.
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Conexão com MySQL
Público – 32
 Depois da marcar a columa A_I (Auto Increment) da coluna “id”, a caixa abaixo
irá aparecer. Basta clicar no botão “Go”.
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Conexão com MySQL
Público – 33
 Depois de configurar o campo (coluna) “id” como A_I, basta clicar no botão
“Save” no final/meio da tela na direita.
 A página será redirecionada mostrando a estrutura da tabela, como mostra a
imagem abaixo
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Conexão com MySQL
Público – 34
conexao_bd.php
01 <?php
02 $conexao = mysqli_connect("localhost:3308", “root", "", "test");
03 if (!$conexao)
04 die(“Erro na conexão com MySQL");
05 ?>
06
07
08
09
10
11
12
13
14
15
16
17
Criação de um
sistema de
cadastro e login
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Criação de um sistema de
cadastro e login
Público – 36
cadastro.php
01 <h1>Cadastro</h1>
02 <form action="cadastro2.php" method="post">
03 <label for="usuario">Usuário</label>
04 <br>
05 <input type="text" name="usuario" id="usuario">
06 <br>
07 <label for="nome">Nome</label>
08 <br>
09 <input type="text" name="nome" id="nome">
10 <br>
11 <label for="senha">Senha</label>
12 <br>
13 <input type="text" name="senha" id="senha">
14 <br>
15 <input type="submit" value="Cadastrar">
16 </form>
17
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Criação de um sistema de
cadastro e login
Público – 37
cadastro2.php
01 <?php
02 require("conexao_bd.php");
03 $usuario = $_POST["usuario"];
04 $senha = $_POST["senha"];
05 $nome = $_POST["nome"];
06
$sql = "INSERT INTO usuario (usr, sen, nome) VALUES ('" . $usuario . "','" . $senha
. "','" . $nome . "')";
07 if (mysqli_query($conexao, $sql))
08 echo "Cadastrado com sucesso";
09 else
10 echo "Houve um erro";
11
12
13
14
15
16
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Criação de um sistema de
cadastro e login
Público – 38
login.php
01 <h1>Login</h1>
02 <form action="login2.php" method="post">
03 <label for="usuario">Usuário</label>
04 <br>
05 <input type="text" name="usuario" id="usuario">
06 <br>
07 <label for="senha">Senha</label>
08 <br>
09 <input type="text" name="senha" id="senha">
10 <br>
11 <input type="submit" value="Entrar">
12 </form>
13
14
15
16
17
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Criação de um sistema de
cadastro e login
Público – 39
login2.php
01 <?php
02 require("conexao_bd.php");
03 session_start();
04 $usuario = $_POST["usuario"];
05 $senha = $_POST["senha"];
06
$sql = "SELECT * FROM usuario WHERE usr = '" . $usuario . "' AND sen = '" . $senha
. "'";
07 $result = mysqli_query($conexao, $sql);
08 if (mysqli_num_rows($result) > 0) {
09 $row = mysqli_fetch_array($result);
10 $_SESSION["usuario_logado"] = $row;
11 echo "Bem vindo - " . $_SESSION["usuario_logado"]["nome"];
12 } else {
13 echo "Usuário ou senha incorretos";
14 }
15
16
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Criação de um sistema de
cadastro e login
Público – 40
login.php
01 <h1>Login</h1>
02 <?php
03 session_start();
04 if ($_SESSION["usuario_logado"]) {
05 ?>
06 Você já está logado como <?=$_SESSION["usuario_logado"]["nome"]?><br>
07 <button onclick="location.href = 'sair.php'">Deslogar</button>
08 <?php
09 } else {
10 ?>
11 <form action="login2.php" method="post">
12 [...]
13 </form>
14 <?php
15 }
16 ?>
17
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Criação de um sistema de
cadastro e login
Público – 41
sair.php
01 <?php
02 session_start();
03 session_destroy();
04 echo "Deslogado";
05
06
07
08
09
10
11
12
13
14
15
16
17
Otávio R. Rossi
Guilherme Uezima
Obrigado!
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Contatos
Público – 43
Otávio R. Rossi
Consultor de Negócios
+ 55 11 9 8544-4724
otavio@inopus.com.br
Michel Zarzour Filho
Desenvolvimento Front-end
+ 55 11 9 8174-7375
michel@inopus.com.br
Gustavo Soré
Desenvolvimento Back-end
+ 55 11 9 8585-4328
gustavo@inopus.com.br
Guilherme Uezima
Design e Integração
+ 55 11 9 7692-7785
guilherme@inopus.com.br
© 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828.
Referências
Público – 44
• https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form
• https://www.shimmercat.com/en/blog/articles/whats-push/
• http://php.net/manual/en/function.mysqli-connect.php
• http://php.net/manual/en/mysqli.close.php
• http://php.net/manual/en/mysqli.error.php
• https://tools.ietf.org/html/rfc7540
• https://developer.mozilla.org/en/docs/AJAX
• https://msdn.microsoft.com/en-us/library/ms526971(v=exchg.10).aspx
• https://msdn.microsoft.com/en-us/library/ms527355(v=exchg.10).aspx
• http://db-engines.com/en/ranking/relational+dbms
• http://dev.mysql.com/doc/refman/5.7/en/what-is-mysql.html
• https://www.phpmyadmin.net/about/

Mais conteúdo relacionado

Semelhante a Workshop PHP: Introdução ao protocolo HTTP e conexão com MySQL

Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sitesthiagolima
 
Palestra MVC - Online tech day 2010
Palestra MVC - Online tech day 2010Palestra MVC - Online tech day 2010
Palestra MVC - Online tech day 2010Alexandre Tarifa
 
Apresentação - O projeto de potencialização do MXM-WebManager (MXM Day 2018 n...
Apresentação - O projeto de potencialização do MXM-WebManager (MXM Day 2018 n...Apresentação - O projeto de potencialização do MXM-WebManager (MXM Day 2018 n...
Apresentação - O projeto de potencialização do MXM-WebManager (MXM Day 2018 n...MXMSistemas
 
Relatorio_Final_TCC1_Bruno_dos_Anjos_Silveira
Relatorio_Final_TCC1_Bruno_dos_Anjos_SilveiraRelatorio_Final_TCC1_Bruno_dos_Anjos_Silveira
Relatorio_Final_TCC1_Bruno_dos_Anjos_SilveiraBruno Dos Anjos Silveira
 
Workshop de Firefox OS
Workshop de Firefox OSWorkshop de Firefox OS
Workshop de Firefox OSDavid Ruiz
 
RPA - Apresentação Conceitual com uiPath
RPA - Apresentação Conceitual com uiPathRPA - Apresentação Conceitual com uiPath
RPA - Apresentação Conceitual com uiPathEduardo Britto
 
Apresentação Conceitual de RPA com Automation Anywhere
Apresentação Conceitual de RPA com Automation AnywhereApresentação Conceitual de RPA com Automation Anywhere
Apresentação Conceitual de RPA com Automation AnywhereEduardo Britto
 
RPA - Apresentação Conceitual - iProcess
RPA - Apresentação Conceitual - iProcessRPA - Apresentação Conceitual - iProcess
RPA - Apresentação Conceitual - iProcessEduardo Britto
 
Asp Net 4 0 Para Iniciantes Cp 2010
Asp Net 4 0 Para Iniciantes   Cp 2010Asp Net 4 0 Para Iniciantes   Cp 2010
Asp Net 4 0 Para Iniciantes Cp 2010Campus Party Brasil
 
Clients pb dl03-web-v.4.8
Clients pb dl03-web-v.4.8Clients pb dl03-web-v.4.8
Clients pb dl03-web-v.4.8confidencial
 
Apresentação Institucional
Apresentação InstitucionalApresentação Institucional
Apresentação InstitucionalInnersite
 
Slide 01 introdução ao php e ao code igniter
Slide 01   introdução ao php e ao code igniterSlide 01   introdução ao php e ao code igniter
Slide 01 introdução ao php e ao code igniterRaniere de Lima
 
Faça suas pesquisas com EnqueteFacil.com
Faça suas pesquisas com EnqueteFacil.comFaça suas pesquisas com EnqueteFacil.com
Faça suas pesquisas com EnqueteFacil.comEnquete Fácil
 
powerPointFinal.pptx
powerPointFinal.pptxpowerPointFinal.pptx
powerPointFinal.pptxAdilsonLucas6
 

Semelhante a Workshop PHP: Introdução ao protocolo HTTP e conexão com MySQL (20)

Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sites
 
Palestra MVC - Online tech day 2010
Palestra MVC - Online tech day 2010Palestra MVC - Online tech day 2010
Palestra MVC - Online tech day 2010
 
Apresentação - O projeto de potencialização do MXM-WebManager (MXM Day 2018 n...
Apresentação - O projeto de potencialização do MXM-WebManager (MXM Day 2018 n...Apresentação - O projeto de potencialização do MXM-WebManager (MXM Day 2018 n...
Apresentação - O projeto de potencialização do MXM-WebManager (MXM Day 2018 n...
 
Relatorio_Final_TCC1_Bruno_dos_Anjos_Silveira
Relatorio_Final_TCC1_Bruno_dos_Anjos_SilveiraRelatorio_Final_TCC1_Bruno_dos_Anjos_Silveira
Relatorio_Final_TCC1_Bruno_dos_Anjos_Silveira
 
Workshop de Firefox OS
Workshop de Firefox OSWorkshop de Firefox OS
Workshop de Firefox OS
 
Cake Php
Cake PhpCake Php
Cake Php
 
RPA - Apresentação Conceitual com uiPath
RPA - Apresentação Conceitual com uiPathRPA - Apresentação Conceitual com uiPath
RPA - Apresentação Conceitual com uiPath
 
Apresentação Conceitual de RPA com Automation Anywhere
Apresentação Conceitual de RPA com Automation AnywhereApresentação Conceitual de RPA com Automation Anywhere
Apresentação Conceitual de RPA com Automation Anywhere
 
o que é ajax
o que é ajaxo que é ajax
o que é ajax
 
Joomla
JoomlaJoomla
Joomla
 
RPA - Apresentação Conceitual - iProcess
RPA - Apresentação Conceitual - iProcessRPA - Apresentação Conceitual - iProcess
RPA - Apresentação Conceitual - iProcess
 
Asp Net 4 0 Para Iniciantes Cp 2010
Asp Net 4 0 Para Iniciantes   Cp 2010Asp Net 4 0 Para Iniciantes   Cp 2010
Asp Net 4 0 Para Iniciantes Cp 2010
 
Clients pb dl03-web-v.4.8
Clients pb dl03-web-v.4.8Clients pb dl03-web-v.4.8
Clients pb dl03-web-v.4.8
 
Html5 ass
Html5 assHtml5 ass
Html5 ass
 
Apresentação Institucional
Apresentação InstitucionalApresentação Institucional
Apresentação Institucional
 
Novidades do PHP 5.3 e 6
Novidades do PHP 5.3 e 6Novidades do PHP 5.3 e 6
Novidades do PHP 5.3 e 6
 
Slide 01 introdução ao php e ao code igniter
Slide 01   introdução ao php e ao code igniterSlide 01   introdução ao php e ao code igniter
Slide 01 introdução ao php e ao code igniter
 
Faça suas pesquisas com EnqueteFacil.com
Faça suas pesquisas com EnqueteFacil.comFaça suas pesquisas com EnqueteFacil.com
Faça suas pesquisas com EnqueteFacil.com
 
powerPointFinal.pptx
powerPointFinal.pptxpowerPointFinal.pptx
powerPointFinal.pptx
 
ASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e alémASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e além
 

Workshop PHP: Introdução ao protocolo HTTP e conexão com MySQL

  • 2. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Agenda Público – 2 09:15 - 09:20 Sobre vocês 09:20 - 09:22 Sobre nós 09:22 - 09:25 Introdução ao protocolo HTTP 09:25 - 09:45 Como o HTTP funciona em relação as aplicações web 09:45 - 10:00 Métodos do HTTP para web (GET, POST...) 10:00 - 10:40 Formas de realizar as requisições (Formulários e Ajax) 10:40 - 11:20 Conexão com MySQL 11:20 - 12:00 Criação de um sistema de cadastro e login 12:00 - 13:00 Dúvidas
  • 4. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Sobre vocês Público – 4 1. Nome 2. O que faz da vida 3. Experiência com Web 4. Experiência com PHP 5. O que espera desse Workshop Contem um pouco sobre vocês!
  • 6. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Sobre nós / Colaboradores Público – 6 Otávio R. Rossi Graduado em Sistemas de Informação pelo Mackenzie, possui grande experiência na área de desenvolvimento de aplicações Web e consultoria de negócios na área de tecnologia em grandes empresas do mercado Michel Zarzour F. Graduado em Sistemas de Informação pelo Mackenzie, possui grande experiência na área de desenvolvimento de aplicações WebApp e participação em grupos de startup. Gustavo Soré Graduado em Sistemas de Informação no Mackenzie. Desenvolvedor de aplicativos, especialista em iOS. Responsável por aplicativos de CRM e mídia digital para o setor farmacêutico na América Latina. Guilherme Uezima Graduado em Sistemas de Informação pelo Mackenzie, atua há mais de cinco anos com o desenvolvimento de soluções tecnológicas para diversas plataformas.
  • 7. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Sobre nós Público – 7 Tecnologias e ferramentas modernas para desenvolvimento de soluções em cloud Foco na experiência do usuário na utilização das soluções customizadas em multiplataformas Gerenciamento dos feedbacks, recomendações de mercado e implementação de melhorias http://inopus.com.br
  • 9. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Introdução ao protocolo HTTP Público – 9 Hypertext Transfer Protocol “Is an application-level protocol for distributed, collaborative, hypermedia information systems. HTTP has been in use by the World-Wide Web global information initiative since 1990. The first version of HTTP, referred to as HTTP/0.9, was a simple protocol for raw data transfer across the Internet”. IETF  Camada de aplicação  Hypermedia  Usado pela WWW (World-Wide Web)  Atualmente da versão 2.0 (HTTP/2) Utilização:
  • 10. Como o HTTP funciona em relação as aplicações web
  • 11. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Como o HTTP funciona em relação as aplicações web Público – 11 Cliente Servidor Solicita páginas web para o servidor da aplicação Recebe a requisição, processa e retorna as páginas solicitadas Renderiza as páginas recebido através do navegador Evento Retorno .html .js .css .php .aspx .js*
  • 12. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Hello World! Público – 12 hello_world.html 01 <h1>hello world!</h1> 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17
  • 13. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Hello World! Público – 13 hello_world.php 01 <h1> 02 <?php 03 echo "Hello World!!"; 04 echo ("Hello World!! - Assim também funciona!!"); 05 print ("E que tal assim?"); 06 ?> 07 </h1> 08 09 10 11 12 13 14 15 16 17
  • 14. Métodos do HTTP para web (GET, POST...)
  • 15. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Métodos do HTTP para web (GET, POST...) Público – 15 O HTTP possuí alguns métodos que indicam a ação requerida com aquela requisição. Dentre esses diferentes tipos de métodos existentes, existem 5 que são os mais utilizados e difundidos. Method Request Body Response Body GET No Yes HEAD No No POST Yes Yes PUT Yes Yes DELETE No Yes
  • 16. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Métodos do HTTP para web (GET, POST...) Público – 16 GET http://tecnodrom.com/Postagens/380/inopus-vence-hackathon-da-ibm POST https://rapordo.com/usuario/entrar usuario: otavio senha: af12354abcd134fed https://www.google.com.br/search?q=tecnodrom&ie=utf-8&oe=utf- 8&client=firefox-b-ab GET
  • 17. Formas de realizar as requisições (Formulários e Ajax)
  • 18. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Formas de realizar as requisições (Formulários e Ajax) Público – 18 Formulários Ajax 1. <form> no HTML representa uma seção do documento que contém elementos interativos para serem enviados ao servidor; 2. Principais atributos do <form>: 2.1. action – URL que receberá o formulário; 2.2. enctype – utilizado no POST, MIME Type do conteúdo; 2.3. method – Método HTTP que será utilizado (GET ou POST). 1. Asynchronous JavaScript + XML; 2. Termo utilizado para descrever uma “nova” (2005) abordagem na utilização de diversas tecnologias; 3. XMLHttpRequest(); 3.1. API para transferência de dados; 3.2. Modos assíncronos e síncronos; 3.3. Utilizado principalmente para JSON.
  • 19. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Formas de realizar as requisições (Formulários e Ajax) Público – 19 formulario_get.html 01 <form action="servico_get.php" method="get"> 02 <label for="usuario">Usuário</label> 03 <br> 04 <input type="text" name="usuario" id="usuario"> 05 <br> 06 <label for="nome">Nome</label> 07 <br> 08 <input type="text" name="nome" id=“nome"> 09 <br> 10 <input type="submit" value="Enviar"> 11 </form> 12 13 14 16 17 17
  • 20. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Formas de realizar as requisições (Formulários e Ajax) Público – 20 servico_get.php 01 <?php 02 echo $_GET["usuario"] . ' - ' . $_GET["nome"]; 03 ?> 04 05 06 07 08 09 10 11 12 13 14 16 17 17
  • 21. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Formas de realizar as requisições (Formulários e Ajax) Público – 21 formulario_post.html 01 <form action="servico_post.php" method="post"> 02 <label for="usuario">Usuário</label> 03 <br> 04 <input type="text" name="usuario" id="usuario"> 05 <br> 06 <label for="nome">Nome</label> 07 <br> 08 <input type="text" name="nome" id="nome"> 09 <br> 10 <input type="submit" value="Enviar"> 11 </form> 12 13 14 16 17 17
  • 22. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Formas de realizar as requisições (Formulários e Ajax) Público – 22 servico_post.php 01 <?php 02 echo $_POST["usuario"] . ' - ' . $_POST["nome"]; 03 ?> 04 05 06 07 08 09 10 11 12 13 14 16 17 17
  • 23. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Formas de realizar as requisições (Formulários e Ajax) Público – 23 ajax_get.js 01 function enviaFormulario(){ 02 // Obter os dados digitados pelo usuário nos campos da tela 03 var usuario_campo = document.getElementById("usuario").value; 04 var nome_campo = document.getElementById("nome").value; 05 var xhr = new XMLHttpRequest(); // Instancio um novo objeto XMLHttpRequest 06 xhr.onreadystatechange = function() { 07 // Verifico os estados da requisição (e.g. se a requisição retornou êxito) 08 if (xhr.readyState == 4 && xhr.status == 200) { 09 alert(xhr.responseText); // Caso o retorno seja sucesso 10 } 11 }; 12 xhr.open("GET", "servico_get.php?usuario=" + usuario_campo + "&nome=" + nome_campo, true); 13 xhr.send(); 14 } 15 16
  • 24. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Formas de realizar as requisições (Formulários e Ajax) Público – 24 ajax_get.html 01 <script src="ajax_get.js" type="text/javascript"></script> 02 03 <form> 04 <label for="usuario">Usuário</label> 05 <br> 06 <input type="text" name="usuario" id="usuario"> 07 <br> 08 <label for="nome">Nome</label> 09 <br> 10 <input type="text" name="nome" id="nome"> 11 <br> 12 <input type="button" onclick="enviaFormulario()" value="Enviar"> 13 </form> 14 16 17 17
  • 25. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Formas de realizar as requisições (Formulários e Ajax) Público – 25 ajax_post.js 01 function enviaFormulario(){ 02 // Obter os dados digitados pelo usuário nos campos da tela 03 var usuario_campo = document.getElementById("usuario").value; 04 var senha_campo = document.getElementById("nome").value; 05 var data = new FormData(); 06 data.append('usuario', usuario_campo); 07 data.append('nome', senha_campo); 08 var xhr = new XMLHttpRequest(); // Instancio um novo objeto XMLHttpRequest 09 xhr.onreadystatechange = function() { 10 // Verifico os estados da requisição (e.g. se a requisição retornou êxito) 11 if (xhr.readyState == 4 && xhr.status == 200) { 12 alert(xhr.responseText); // Caso o retorno seja sucesso 13 } 14 }; 15 xhr.open("POST", "servico_post.php", true); 16 xhr.send(data); 17 }
  • 26. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Formas de realizar as requisições (Formulários e Ajax) Público – 26 ajax_post.html 01 <script src="ajax_post.js" type="text/javascript"></script> 02 03 <form> 04 <label for="usuario">Usuário</label> 05 <br> 06 <input type="text" name="usuario" id="usuario"> 07 <br> 08 <label for="nome">Nome</label> 09 <br> 10 <input type="text" name="nome" id="nome"> 11 <br> 12 <input type="button" onclick="enviaFormulario()" value="Enviar"> 13 </form> 14 16 17 17
  • 28. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Conexão com MySQL Público – 28 MySQL Segundo banco de dados mais popular do mundo, é um RDBMS (Relation DataBase Management System) open- souce, desenvolvido, distribuído e suportado pela Oracle Corporation. Servidor de aplicação (PHP) Servidor de BD (MySQL) Exemplo de tabela do MySQL id nome idade profissão João da Silva 28 Desenvolvedor(a) 1 Maria da Silva 27 Desenvolvedor(a) Tabela Pessoa
  • 29. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Conexão com MySQL Público – 29  Para criar uma tabela no MySQL vamos utilizar o phpMyAdmin. Para acessa-lo, pasta acessar a URL http://localhost:8081/phpmyadmin.  A imagem abaixo mostra os pontos para criar uma tabela, com o nome de “usuario”, com 4 colunas.
  • 30. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Conexão com MySQL Público – 30  As quatro colunas criadas deveram ser preenchidas conforme mostra a imagem abaixo.
  • 31. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Conexão com MySQL Público – 31  As quatro colunas criadas deveram ser preenchidas conforme mostra a imagem abaixo.
  • 32. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Conexão com MySQL Público – 32  Depois da marcar a columa A_I (Auto Increment) da coluna “id”, a caixa abaixo irá aparecer. Basta clicar no botão “Go”.
  • 33. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Conexão com MySQL Público – 33  Depois de configurar o campo (coluna) “id” como A_I, basta clicar no botão “Save” no final/meio da tela na direita.  A página será redirecionada mostrando a estrutura da tabela, como mostra a imagem abaixo
  • 34. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Conexão com MySQL Público – 34 conexao_bd.php 01 <?php 02 $conexao = mysqli_connect("localhost:3308", “root", "", "test"); 03 if (!$conexao) 04 die(“Erro na conexão com MySQL"); 05 ?> 06 07 08 09 10 11 12 13 14 15 16 17
  • 35. Criação de um sistema de cadastro e login
  • 36. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Criação de um sistema de cadastro e login Público – 36 cadastro.php 01 <h1>Cadastro</h1> 02 <form action="cadastro2.php" method="post"> 03 <label for="usuario">Usuário</label> 04 <br> 05 <input type="text" name="usuario" id="usuario"> 06 <br> 07 <label for="nome">Nome</label> 08 <br> 09 <input type="text" name="nome" id="nome"> 10 <br> 11 <label for="senha">Senha</label> 12 <br> 13 <input type="text" name="senha" id="senha"> 14 <br> 15 <input type="submit" value="Cadastrar"> 16 </form> 17
  • 37. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Criação de um sistema de cadastro e login Público – 37 cadastro2.php 01 <?php 02 require("conexao_bd.php"); 03 $usuario = $_POST["usuario"]; 04 $senha = $_POST["senha"]; 05 $nome = $_POST["nome"]; 06 $sql = "INSERT INTO usuario (usr, sen, nome) VALUES ('" . $usuario . "','" . $senha . "','" . $nome . "')"; 07 if (mysqli_query($conexao, $sql)) 08 echo "Cadastrado com sucesso"; 09 else 10 echo "Houve um erro"; 11 12 13 14 15 16
  • 38. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Criação de um sistema de cadastro e login Público – 38 login.php 01 <h1>Login</h1> 02 <form action="login2.php" method="post"> 03 <label for="usuario">Usuário</label> 04 <br> 05 <input type="text" name="usuario" id="usuario"> 06 <br> 07 <label for="senha">Senha</label> 08 <br> 09 <input type="text" name="senha" id="senha"> 10 <br> 11 <input type="submit" value="Entrar"> 12 </form> 13 14 15 16 17
  • 39. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Criação de um sistema de cadastro e login Público – 39 login2.php 01 <?php 02 require("conexao_bd.php"); 03 session_start(); 04 $usuario = $_POST["usuario"]; 05 $senha = $_POST["senha"]; 06 $sql = "SELECT * FROM usuario WHERE usr = '" . $usuario . "' AND sen = '" . $senha . "'"; 07 $result = mysqli_query($conexao, $sql); 08 if (mysqli_num_rows($result) > 0) { 09 $row = mysqli_fetch_array($result); 10 $_SESSION["usuario_logado"] = $row; 11 echo "Bem vindo - " . $_SESSION["usuario_logado"]["nome"]; 12 } else { 13 echo "Usuário ou senha incorretos"; 14 } 15 16
  • 40. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Criação de um sistema de cadastro e login Público – 40 login.php 01 <h1>Login</h1> 02 <?php 03 session_start(); 04 if ($_SESSION["usuario_logado"]) { 05 ?> 06 Você já está logado como <?=$_SESSION["usuario_logado"]["nome"]?><br> 07 <button onclick="location.href = 'sair.php'">Deslogar</button> 08 <?php 09 } else { 10 ?> 11 <form action="login2.php" method="post"> 12 [...] 13 </form> 14 <?php 15 } 16 ?> 17
  • 41. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Criação de um sistema de cadastro e login Público – 41 sair.php 01 <?php 02 session_start(); 03 session_destroy(); 04 echo "Deslogado"; 05 06 07 08 09 10 11 12 13 14 15 16 17
  • 42. Otávio R. Rossi Guilherme Uezima Obrigado!
  • 43. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Contatos Público – 43 Otávio R. Rossi Consultor de Negócios + 55 11 9 8544-4724 otavio@inopus.com.br Michel Zarzour Filho Desenvolvimento Front-end + 55 11 9 8174-7375 michel@inopus.com.br Gustavo Soré Desenvolvimento Back-end + 55 11 9 8585-4328 gustavo@inopus.com.br Guilherme Uezima Design e Integração + 55 11 9 7692-7785 guilherme@inopus.com.br
  • 44. © 2016 Inopus ou Inopus Soluções são referencias a empresa Michel Zarzour Filho 41217787828. Referências Público – 44 • https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form • https://www.shimmercat.com/en/blog/articles/whats-push/ • http://php.net/manual/en/function.mysqli-connect.php • http://php.net/manual/en/mysqli.close.php • http://php.net/manual/en/mysqli.error.php • https://tools.ietf.org/html/rfc7540 • https://developer.mozilla.org/en/docs/AJAX • https://msdn.microsoft.com/en-us/library/ms526971(v=exchg.10).aspx • https://msdn.microsoft.com/en-us/library/ms527355(v=exchg.10).aspx • http://db-engines.com/en/ranking/relational+dbms • http://dev.mysql.com/doc/refman/5.7/en/what-is-mysql.html • https://www.phpmyadmin.net/about/