PI S2 DSW III DouglasARS: mudanças entre as edições

De IFSC
Ir para navegação Ir para pesquisar
imported>Douglas
imported>Douglas
Linha 245: Linha 245:
==Por onde começar==
==Por onde começar==


#Peça Agora ! >> Abra sua conta.
;Etapa 1:
 
;Clique em Peça Agora !: Abra sua conta utilizando a conta do google ou facebook. Se preferir utilize o formulário de registro completando com:
 
*Seu nome:
*Seu e-mail:
*Senha:
*Re-digite sua senha:
 
Pronto! É só concordar com os termos de serviços já mencionados e estará criada sua conta.


=Resumo=
=Resumo=

Edição das 14h53min de 5 de maio de 2016

Apresentação

Olá Aluno,

...

Dediquem um tempo para seus estudos.

Falta pouco!

Fiquem atentos as postagens no Fórum e participem dos nossos encontros virtuais.

Prof. Douglas A.

Objetivos

  • Como alterar para o conjunto de funções MySQLi para conectar o PHP ao banco de dados MySQL.
  • Aprender a trabalhar com caixa de diálogos.
  • Como criar um Domínio gratuito na Internet.

Conexão PHP-MySQL

Nessa nossa volta ao desenvolvimento do sistema, me deparei com uma recomendação do PHP sobre a substituição do conjunto de funções MySQL por MySQLi, que é uma extensão do PHP feita para aproveitar os recursos mais avançados do banco de dados MySQL. O interessante desse novo conjunto de funções MySQLi é que pode ser usado de forma orientada a objetos.

Para que você possa utilizar as funções MySQLi você precisa do PHP 5 (ou superior) e MySQL 4.1.3 (ou superior). Não se esqueça de antes de testar esses scripts verificar se o MySQLi está habilitado no seu PHP dando uma olhada no phpinfo(). A Figura 1 apresenta como é essa tela de informações PHP.

Para testar a versão, basta criar uma página PHP que chame info.php, salvar no diretório padrão do Apache: /var/www/html (para Ubuntu 14). Você pode criar a página (arquivo) com editor de sua preferência, veja o exemplo com o gedit:

$ gedit /var/www/html/info.php &

Digite o seguinte código:

<?php

      phpinfo();

?>

Salve o arquivo, vá no seu navegador e digite:

http://localhost/info.php

Deverá aparecer uma tela como esta:


Info php.png

Figura 1 - Tela resultado da função phpinfo().


Agora vamos aos exemplos de scripts que fazem todas as operações comuns do MySQL, vou preferir aqui mostrar conexões estruturadas, sem usar o recurso de orientação à objetos, vamos fazer isso mostrando parte do código baseado no nosso sistema exemplo.

Conectando ao MySQL

<?php
$servidor = 'localhost';
$usuario = 'root';
$senha = '';
$banco = 'mydb';

// Conecta-se ao banco de dados MySQL
$link = mysqli_connect($servidor,$usuario,$senha,$banco) or die("ERRO: Não foi possível conectar-se ao banco de dados.");

Essa função faz de uma só vez a conexão com o MySQL e já seleciona o banco de dados.


Executando uma consulta SQL

Neste exemplo, vamos mostrar como conectar a um outro banco de dados e fazer o teste recuperando os dados através de um SELECT. Lembrando, se você quiser fazer o teste no seu servidor, é preciso reconfigurar as ligações (servidor, usuario, senha e banco).


<html>
<head>
	<title>Página de testes</title>
	<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
</head>
<body>

<b>Página de teste!</b><br><br>

<?php
echo "Teste"."<br>";

$servidor = 'mysql.hostinger.com.br'; // Servidor MySQL
$usuario  = 'u381978428_dars';        // Usuário MySQL
$senha    = 'Jujuba01';       	      // Senha MySQL
$banco    = 'u381978428_exemp';       // Banco de dados MySQL

echo $banco."... ";

$conecta = mysqli_connect($servidor,$usuario,$senha,$banco) or die("ERRO: ".mysqli_error($conecta)); 

echo "conectou. <br><br>";


$consulta = "SELECT * FROM usuarios" or die("ERRO: ".mysqli_error($consulta)); 

echo $consulta."<br>";

if ($resultado = mysqli_query($conecta,$consulta)){

    printf("Select returned %d rows.\n", mysqli_num_rows($resultado));

};

echo "<p>Usuário | Senha <br>";
while($linha = mysqli_fetch_assoc($resultado)){
    echo $linha["usuario"].' | ';
    echo $linha["senha"].'<br>';
}; 

mysqli_close($conecta); // Desconecta o banco de dados

?>
</body>
</html> 
Resultado
http://douglasars.esy.es/teste.php


Página de teste!

Teste
u381978428_exemp... conectou.

SELECT * FROM usuarios
Select returned 2 rows.

Usuário | Senha
adm | 81dc9bdb52d04dc20036dbd8313ed055
douglas | 81dc9bdb52d04dc20036dbd8313ed055


De fato, às modificações do uso da antigas funções (mysql) com as novas (mysqli), não é tão grande. Além desse i ao final da função, em alguns casos existe a unificação das funções, como na mysqli_connect(), que faz a conexão e já seleciona a base de dados. Outra modificação está na função mysqli_query($conecta,$consulta), na verdade essa é apenas uma ligação para a mesma função e passa ser associada a conexão representado pela variável "$conecta". A variável "$consulta" tem o código SQL com o SELECT da tabela. Veja como era e como ficaram as principais funções:


Nova função para conexão
mysqli_connect($servidor,$usuario,$senha,$banco) | substitui: mysql_connect($servidor,$usuario,$senha) e mysql_select_db($banco, $conecta)
Nova função para consulta
mysqli_query($conecta,$consulta) | substitui: mysql_query($consulta)
Nova função para retornar o número de registros (linhas)
mysqli_num_rows($resultado) | substitui: mysql_num_rows($resultado)
Nova função para retornar os dados para um vetor (colunas)
mysqli_fetch_assoc($resultado) | substitui: mysql_fetch_assoc($resultado)
Nova função para fechar o banco de dados
mysqli_close($conecta) | substitui: mysql_close($conecta)

Muitas vezes é necessário confirmar uma ação importante no sistema como por exemplo uma confirmação de exclusão de registro. Existem muitas maneiras de realizar essa tarefa, porém, escolhemos uma que utiliza o JavaScrit e está presente no nosso sistema exemplo. O código abaixo faz parte da página "listaclientes.php", nela encontra-se o botão "Excluir" que quando acionado chama a função apaga_registro(), que confirma a exclusão ou não do registro selecionado.

[...]
<script type="text/javascript">
  function apaga_registro(id) {
    if (confirm("Deseja realmente EXCLUIR o registro?")){
	window.location = 'listaclientes.php?tipo=9&id='+id;	    	
    }
}
</script>


<?php

if ($_GET["tipo"]==9) {
	apagar('clientes', 'id_cliente', $_GET['id'],$_SG['link']);
    	header("Location: listaclientes.php?tipo=2&filtro=0");
}

[...]

echo '<input name="excluir" type="button" onClick="apaga_registro('.$exibe['id_cliente'].')" value="Excluir"></td>';

[...]


Como já falei, esse trecho de código está no arquivo listaclientes.php, quando clicado o botão Excluir, é chamada a função apaga_registro() e passa como parâmetro o id do cliente, ou seja, sua identificação única que será utilizada com critério de exclusão do registros, isto se for confirmada pela função confirm() do JavaScritp. A Figura 2 mostra como fica uma tela de confirmação.


Tela confirm.png

Figura 2 - Tela confirma do cadastro de cidades.

Se a opção escolhida for Cancelar a função confirm() retorna FALSO e o sistema volta para o seu curso normal a partir de onde foi chamada. Se opção for OK a função confirm() retorna VERDADEIRO e trata de apagar o registro.


Nota: A função confirm() não apaga nenhum registro. Quem apaga o registro é a chamada novamente da página (window.location = 'listaclientes.php?tipo=9&id='+id), uma técnica de recursividade da própria página, que envia um "tipo=9" e um "id" do cliente selecionado para ser apagado.

Quando a página é re-chamada com "tipo=9" o sistema desvia sua execução e o registo do cliente identificado por "id" é excluído pela função apagar() que está na página funcoes.php. Novamente a página é chamada normalmente, e se deu tudo certo com a exclusão do registro, esse cliente ou cidade não fará mais parte da consulta.

Nota 2: Não poderá haver dependência do tipo chave estrangeira para o registro cadastrado (FOREIGN KEY), ou seja, se você está tentando excluir uma cidade que foi utilizada por um cliente, este registro não poderá ser excluído.

Domínio na Internet

Existem muitos sites que oferecem Hospedagem Grátis na internet. O problema que muitos deles possuem anúncios em suas páginas e alguns termos restritivos de uso e tempo limitado. Além disso, não possuem nenhuma segurança quanto a servidores estáveis, o que parece uma coisa "preciosa", já que não se paga nada por isso. Pra mim, o único inconveniente é como fica o seu domínio, ou seja, o nome pelo qual você é encontrado na web. Também vale lembrar se o seu provedor gratuito tem PHP e MySQL em versões recentes compatíveis com o desenvolvimento da sua aplicação. Muitas vezes há limitações para o número de banco de dados ou mesmo, número de tabelas nesses banco de dados.

Vamos pegar o exemplo de hospedagem grátis Hostinger' que oferece:

  • 2000MB de espaço em disco
  • 100GB (100.000 MB) de banda
  • Hospede nomes de domínio ilimitados
  • Painel de Controle de hospedagem baseado em cPanel
  • Sem anúncios ou banners
  • Serviços de E-mail (IMAP/POP3/Webmail)
  • Suporte a PHP e banco de dados MySQL
  • Ativação de conta instantânea

Recursos do PHP:

  • PHP versões 5.2, 5.3 e 5.4
  • Suporte a upload de arquivos
  • Função PHP mail() e Sendmail
  • Função PHP fopen() e Sockets
  • Extensão MysqLi

Recursos do MySQL:

  • MySQL versão 5.1
  • Espaço em disco MySQL ilimitado!
  • Permitidos 2 bases de dados MySQL.
  • Suporte a phpMyAdmin
  • Armazenamento baseado em unidades de disco SSD (estado sólido)
  • Extensão MysqLi habilitada
  • Mecanismo de armazenamento MyISAM
  • Suporte a PDO e PDO MySQL
  • Suporte a SQLite
  • Powered by cloud computing

Por onde começar

Etapa 1
Clique em Peça Agora !
Abra sua conta utilizando a conta do google ou facebook. Se preferir utilize o formulário de registro completando com:
  • Seu nome:
  • Seu e-mail:
  • Senha:
  • Re-digite sua senha:

Pronto! É só concordar com os termos de serviços já mencionados e estará criada sua conta.

Resumo

Sistema exemplo

Endereço
http://douglasars.esy.es/
Usuário
adm
Senha
1234

Código Fonte

Download
http://douglasars.esy.es/down/exemplo.zip

Organização da Semana 3

Nesta segunda semana [...]

Até lá!

Bons estudos!

Prof. Douglas A.

Referências

[1] Guia prático de MySQLi no PHP: http://blog.thiagobelem.net/guia-pratico-de-mysqli-no-php

[2] Como hospedar seu site gratuitamente (com MySQL e PHP): https://www.youtube.com/watch?v=nGXOL_0fyDM

[3] Como usar o Filezilla (FTP): https://www.youtube.com/watch?v=qxhjYhgHF-M

[4] Tutorial de FTP - Como Usar o FileZilla: <http://www.comofazerumsite.com/criarsite/tutorial-ftp-filezilla.html>




<< <> >>