PI S1 DSW III DouglasARS: mudanças entre as edições
imported>Douglas |
imported>Douglas |
||
| (10 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
| Linha 87: | Linha 87: | ||
Com isso você tem total controle das sessões no seu site e pode salvar, por exemplo, o nome de usuário depois que ele fez o login e salvar outra variável informando que o usuário está logado. Esta é uma prática muito comum em sistemas de autenticação de usuário. | Com isso você tem total controle das sessões no seu site e pode salvar, por exemplo, o nome de usuário depois que ele fez o login e salvar outra variável informando que o usuário está logado. Esta é uma prática muito comum em sistemas de autenticação de usuário. | ||
==Teste | ==Teste de página== | ||
http://douglasars.esy.es/teste1.php | ;Endereço: http://douglasars.esy.es/teste1.php | ||
;Código da página de teste: | ;Código da página de teste: | ||
| Linha 172: | Linha 172: | ||
</center> | </center> | ||
Como você podem perceber, a tela é a mesma do cadastro, só que traz as informações do cliente cuja identidade '''id'' é recuperada a partir do GET. Abaixo temos o código completo da página '''editarclientes.php'''. | Como você podem perceber, a tela é a mesma do cadastro, só que traz as informações do cliente cuja identidade '''id''' é recuperada a partir do GET. Abaixo temos o código completo da página '''editarclientes.php'''. | ||
<pre> | <pre> | ||
| Linha 286: | Linha 286: | ||
</pre> | </pre> | ||
Basicamente, o código pega as informações da tabela '''clientes''' através da execução de uma consulta SQL e coloca as informações recuperadas a partir do '''id_cliente''' em variáveis para serem utilizadas | Basicamente, o código pega as informações da tabela '''clientes''' através da execução de uma consulta SQL e coloca as informações recuperadas, a partir do '''id_cliente''', em variáveis para serem utilizadas na propriedade '''value''' dos campos de formulário. Logo abaixo do formulário, o botão salvar agora chama a página '''editando.php''' ao invés de cadastrando.php utilizada para inserir novos registros. Vamos mostrar agora o código da página '''editando.php'''. | ||
<pre> | <pre> | ||
| Linha 311: | Linha 311: | ||
$sql = mysqli_query($_SG['link'],"UPDATE clientes SET nm_cliente='$nm_cliente',endereco='$endereco',numero='$numero', | $sql = mysqli_query($_SG['link'],"UPDATE clientes SET nm_cliente='$nm_cliente',endereco='$endereco',numero='$numero', | ||
complemento='$complemento',cep='$cep',id_cidade=$id_cidade, | |||
email='$email',telefone='$telefone',celular='$celular' WHERE id_cliente=$id_cliente"); | |||
echo "<br>Registro editado com sucesso!".'<br>'; | echo "<br>Registro editado com sucesso!".'<br>'; | ||
| Linha 325: | Linha 325: | ||
==Testar o sistema exemplo== | ==Testar o sistema exemplo== | ||
http://douglasars.esy.es/ | ;Endereço: http://douglasars.esy.es/ | ||
Usuário: | ;Usuário: <span style="color:red;">teste</span> | ||
Senha: 1234 | |||
;Senha: <span style="color:red;">1234</span> | |||
==Código Fonte== | ==Código Fonte== | ||
http://douglasars.esy.es/down/exemplo.zip | ;Download: http://douglasars.esy.es/down/exemplo.zip | ||
=Organização da Semana 2= | =Organização da Semana 2= | ||
Nesta primeira semana ... | Nesta primeira semana conversamos sobre como vão ser nossas atividades, apresentamos o Plano de Ensino e conversamos um pouco sobre as avaliações. Também falamos sobre a continuidade do desenvolvimento do sistema desenvolvido até aqui e fizemos também uma pequena avaliação sobre os trabalhos apresentados no final da DS2 e que agora continuaremos com o desenvolvimento do sistema proposto. Para terminar, mostramos como funciona o uso de sessões no PHP e também como alterar dados já cadastrados. Ao final da primeira interação, foi possível testar sessões e também a alteração do cadastro de clientes do nosso sistema exemplo agora na WEB. Na próxima semana vamos mostrar como criar um '''domínio''' gratuito na internet e falaremos também sobre novas funções de acesso ao banco de dados MySQL pelo PHP e mostraremos também como fazer uma chamada de uma caixa de diálogo para que o usuário tome um decisão sobre a continuidade ou não de uma determina ação, como excluir um registro, por exemplo. | ||
Até lá! | Até lá! | ||
| Linha 369: | Linha 371: | ||
=Organização da Semana 2= | =Organização da Semana 2= | ||
Nesta primeira semana ... | Nesta primeira semana apresentamos nosso plano de ensino e recomeçamos o desenvolvimento do sistema, explicando sobre como utilizar sessões, para controlar o acesso às páginas, também aprendemos sobre edição dos dados já inseridos. Na próxima semana, vamos dar uma passado sobre o uso de novas funções de conexão do PHP com o banco de dados MySQL. Veremos também como colocar sua aplicação em um domínio gratuito na internet. | ||
Não percam! | |||
Bons estudos! | Bons estudos! | ||
Edição atual tal como às 18h29min de 15 de maio de 2016
Apresentação
Olá Estudante,
Nessa nossa primeira semana de estudos vamos discutir algumas atividades previstas para nossa unidade. A intenção é aproveitar o sistema que começou a ser desenvolvido pelas equipes, incorporando outras técnicas e complementando o desenvolvimento. Ainda nessa primeira semana, vou apresentar como trabalhar com sessões, de modo que se possa fazer um tratamento individual de cada usuário que acessa um site desenvolvido em PHP. Também vou mostrar como alterar dados do formulário e falar um pouco sobre recursividade de páginas.
Bons Estudos!
Fiquem atentos as postagens no Fórum e participem dos nossos encontros virtuais.
Prof. Douglas A.
Objetivos
- Apresentar a unidade curricular.
- Trabalhando com sessões.
- Alterando dados com HTML/PHP/MySQL.
Trabalhando com sessões
Sessão é um recurso do PHP que permite que você salve variáveis com seus valores para serem usados ao longo da visita do usuário. Valores salvos na sessão podem ser usados em qualquer parte do script, mesmo em outras páginas do site. São variáveis que permanecem setadas até o visitante fechar o browser ou a sessão ser destruída.
Um visitante acessando a sua homepage ganha um identificador único, chamado id de sessão. Este id é salvo em um cookie do lado do usuário ou propagado via URL. Desta forma, é possível registrar um número arbitrário de variáveis que serão preservadas entre as requisições. Quando
um visitante acessar o seu site, o PHP irá conferir quando um id de sessão específico for enviado com a requisição. Existem algumas formas de criar variáveis de sessão, a seguir é mostrado um exemplo simples de atribuição e recuperação dos dados.
O PHP usa uma variável global, denominada $_SESSION para armazenar os dados de sessão. Para atribuir um valor de uma variável de sessão podemos usar a seguinte sintaxe:
<?php session_start(); $_SESSION['variavel']='Valor a armazenar'; ?>
A função session_start() inicia o uso de sessão da página. Este comando é obrigatório para todas as páginas que forem utilizar sessões;
- $_SESSION é o identificador global para sessões; variavel é o índice sob o qual será armazenado um valor e "Valor a armazenar" é o valor atribuído a variável de sessão. Este valor armazenado pode ser usado em qualquer página do seu website.
<?php session_start(); echo $_SESSION['variavel']; ?>
Exemplo
Depois de iniciada a sessão você pode definir valores para ela da seguinte forma:
<?php $_SESSION['usuario'] = 'Douglas'; $_SESSION['acessos'] +=1; ?>
Quando você precisar exibir o valor salvo na sessão, provavelmente em outras páginas, é só fazer assim:
<?php echo $_SESSION['usuario']; // Resultado: Douglas echo $_SESSION['acessos']; // Resultado: 1 (experimente dar <F5> na página) ?>
Você pode salvar quantos valores quiser, pode redefinir os valores e usa-los nos comandos echo, argumentos de funções ou da forma que preferir.
Para deletar uma variável específica da sessão você usa a função unset().
<?php unset($_SESSION['acessos']); // Deleta uma variável da sessão ?>
Pode também destruir toda a sessão de uma só vez, eliminando todas as variáveis salvas nela.
<?php session_destroy(); // Destrói toda sessão ?>
Com isso você tem total controle das sessões no seu site e pode salvar, por exemplo, o nome de usuário depois que ele fez o login e salvar outra variável informando que o usuário está logado. Esta é uma prática muito comum em sistemas de autenticação de usuário.
Teste de página
- Endereço
- http://douglasars.esy.es/teste1.php
- Código da página de teste
<?php
//Iniciando a sessão
session_start();
//Verifica se a variável nome foi passada. Na primeira vez nunca é passada pelo GET.
if (!isset($_GET["nome"])){
$_SESSION['usuario']='visistante';} // Cria a variável usuário é coloca a informação de visitante.
else{
$_SESSION['usuario']=$_GET["nome"]; // Recupera o nome que foi passado com GET.
}
$_SESSION['acessos']+=1; // Conta cada vez que entrou na sessão.
?>
<html>
<head><title>Pagina de Teste 1</title></head>
<body>
<P><b>Informações</b>
<form name="teste1" method="get" action="teste1.php">
<p>Nome: <input type="text" name="nome" id="nome" size="20" autofocus />
<input type="submit" value="OK">
</form>
<?
echo "<p>Olá visitante: ".$_SESSION['usuario']." você acessou a página: ".$_SESSION['acessos']." vezes(s)."
?>
<p>Tecle F5 para atualizar a página.</p>
</body>
</html>
Mas, atenção! Os dados de sessão não ficam armazenados para consultas futuras. Quando o usuário deixa de interagir com a homepage por um longo período, os dados que estavam armazenados na sessão serão perdidos. Por isso, devemos tomar cuidado com a utilização do recurso de sessão.
Resumo
O uso de sessões permite criar aplicações personalizadas a nível de usuário, pelo simples fato de podermos identificar cada usuário. Também é possível armazenar variáveis no servidor web de cada usuário que está acessando a página ou a aplicação. É importante lembrar que os dados armazenados durante uma sessão serão perdidos em caso da sessão expirar, ou a sessão ter sido propositalmente destruída (session_destroy()), ou ainda se o usuário abandonar o site. [1][2]
Alteração de Dados
Vou mostrar uma sequência de instruções do PHP que possibilita fazer alterações nos dados já cadastrados, ou seja, que já estão no banco de dados MySQL. Como foi visto na unidade anterior, criamos uma página para inserção de dados no banco, uma página para listar os dados inseridos no banco e uma página para excluir os registro. Vou mostrar como atualizar um registro em uma de nossas tabelas. A Figura 1 mostrar a página de Consulta Clientes com a ação de excluir.
Figura 1 - Consulta clientes com filtro.
Para atualizarmos um registro, precisamos inicialmente listar os registros da tabela. Neste caso já temos isso pronto no nosso sistema exemplo. Lembram??? Tínhamos uma ação para excluir o registro. Vamos colocar agora uma ação para editar o registro. A Figura 2 mostra onde fica o botão que chama a página que vai Editar o registo. Em seguido eu coloco o código dessa página.
Figura 2 - Consulta clientes com botão editar.
O código fonte será disponibilizado na íntegra. Vamos atentar somente aos trechos de código que foram modificados para realizar a edição do registro.
Primeiramente, para colocar o botão Editar precisamos alterar o arquivo listaclientes.php.
[...]
echo '<td><input name="editar" type="button" onClick="window.open(\'editarclientes.php?id='.$exibe['id_cliente'].'\',\'_self\')" value="Editar"> ';
[...]
Olhando só linha de código, percebemos que é chamada a página editarclientes.php e é passado o parâmetro id_cliente que corresponde o registro do cliente que se deseja alterar. A Figura 3 mostra a página de editar clientes.
Figura 3 - Página editar clientes.
Como você podem perceber, a tela é a mesma do cadastro, só que traz as informações do cliente cuja identidade id é recuperada a partir do GET. Abaixo temos o código completo da página editarclientes.php.
<?php
include("seguranca.php"); // Inclui o arquivo com o sistema de segurança
protegePagina(); // Chama a função que protege a página
$user=$_SESSION['usuarioNome'];
include("funcoes.php");
?>
<html>
<head>
<title>Sistema Exemplo</title>
<meta name="author" content="Douglas ARS">
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta http-equiv="content-language" content="Portugues">
<link rel="stylesheet" href="estilos/estilos.css" type="text/css" />
</head>
<script type="text/javascript" src="scripts/jquery.js"></script>
<script type="text/javascript" src="scripts/jquery.maskedinput.js"></script>
</head>
<script type="text/javascript">
//Máscaras para os campos
$(document).ready(function(){
$("input.data").mask("99/99/9999");
$("input.cpf").mask("999999999-99");
$("input.cep").mask("99999-999");
$("input.telefone").mask("(99)9999-9999");
$("input.celular").mask("(99)9999-9999");
});
</script>
<body>
<div id="topo" style="position:relative; margin:0 0 30px 0;">
<div id="topo-imagem" style="float: left;">
Sistema Exemplo </div>
</div>
<?php
$id = $_GET['id'];
$sql = mysqli_query($_SG['link'],'SELECT * FROM clientes a, cidades b WHERE a.id_cidade = b.id_cidade AND id_cliente = "'.$id.'"') or print (mysql_error());
while($res = mysqli_fetch_assoc($sql)){
$_nm_cliente=$res['nm_cliente'];
$_endereco=$res['endereco'];
$_numero=$res['numero'];
$_complemento=$res['complemento'];
$_cep=$res['cep'];
$_id_cidade=$res['id_cidade'];
$_nm_cidade=$res['nm_cidade'].' - '.$res['uf'];
$_uf=$res['uf'];
$_email=$res['email'];
$_telefone=$res['telefone'];
$_celular=$res['celular'];
}
$sql2 = mysqli_query($_SG['link'],"SELECT * FROM cidades ORDER BY nm_cidade") or print (mysql_error());
?>
<div class="box-modulo">
<center>
<div class="box-modulo-interno">
<div class="box-modulo-txt-float">Cadastro de Clientes</div>
<div class="box-modulo-txt-b">Editando o cadastro de clientes</div>
<div class="box-modulo-interno-b">
<table>
<form name="cadclientes" id="cadclientes" method="post" onsubmit="validaForm(); return false;" action="editando.php" />
<input name="formulario" type="hidden" value="1" />
<input name="id_cliente" type="hidden" value="<?php echo $id ?>" />
<tr><td>Nome:</td><td><input type="text" name="nm_cliente" id="nm_cliente" size="50" autofocus value="<?php echo $_nm_cliente ?>" /></td></tr>
<tr><td>Endereço:</td><td><input type="text" name="endereco" size="50" value="<?php echo $_endereco ?>" /></td></tr>
<tr><td>Número:</td><td><input type="text" name="numero" size="5" value="<?php echo $_numero ?>" />
Complemento: <input type="text" name="complemento" size="25" value="<?php echo $_complemento ?>" /></td></tr>
<tr><td>CEP:</td><td><input type="text" class="cep" name="cep" size="9" value="<?php echo $_cep ?>" /></td></tr>
<tr><td>Cidade:</td></td><td>
<select name="id_cidade" style="width: 100%" value="<?php echo $id ?>">
<option><?php echo $_nm_cidade ?></option>
<?php while($exibe = mysqli_fetch_array($sql2)) { ?>
<option value="<?php echo $exibe['id_cidade'] ?>"><?php echo $exibe['nm_cidade'].' - '.$exibe['uf'] ?></option>
<?php } ?>
</select></td></tr>
<tr><td>E-mal:</td><td><input type="text" name="email" id="email" size="50" value="<?php echo $_email ?>" /></td></tr>
<tr><td>Telefone:</td><td><input type="text" class="telefone" name="telefone" id="telefone" size="18" value="<?php echo $_telefone ?>" />
Celular: <input type="text" class="telefone" name="celular" size="18" value="<?php echo $_celular ?>" /></td></tr>
<tr><td colspan="2">
<input type="submit" value="Salvar" width="10" />
<input name="voltar" type="button" onClick="window.open('listaclientes.php','_self')" value="Voltar">
</form>
</td></tr>
</table>
</div>
</div>
</center>
</div>
</body>
</html>
Basicamente, o código pega as informações da tabela clientes através da execução de uma consulta SQL e coloca as informações recuperadas, a partir do id_cliente, em variáveis para serem utilizadas na propriedade value dos campos de formulário. Logo abaixo do formulário, o botão salvar agora chama a página editando.php ao invés de cadastrando.php utilizada para inserir novos registros. Vamos mostrar agora o código da página editando.php.
<html>
<head>
<title>Editando...</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
</head>
<body>
Aguarde... <br>
<?php
include("seguranca.php");
$id_cliente=$_POST['id_cliente'];
$nm_cliente=$_POST['nm_cliente'];
$endereco=$_POST['endereco'];
$numero=$_POST['numero'];
$complemento=$_POST['complemento'];
$cep=$_POST['cep'];
$id_cidade=$_POST['id_cidade'];
$email=$_POST['email'];
$telefone=$_POST['telefone'];
$celular=$_POST['celular'];
$sql = mysqli_query($_SG['link'],"UPDATE clientes SET nm_cliente='$nm_cliente',endereco='$endereco',numero='$numero',
complemento='$complemento',cep='$cep',id_cidade=$id_cidade,
email='$email',telefone='$telefone',celular='$celular' WHERE id_cliente=$id_cliente");
echo "<br>Registro editado com sucesso!".'<br>';
echo '<p><a href="listaclientes.php">Voltar</a>';
?>
</body>
</html>
Explicando o código. Basicamente, se recupera as informações do POST do formulário editarcliente.php, e na sequência se faz um UPDATE do banco de dados, atualizando somente os dados do cliente selecionado.
Testar o sistema exemplo
- Endereço
- http://douglasars.esy.es/
- Usuário
- teste
- Senha
- 1234
Código Fonte
Organização da Semana 2
Nesta primeira semana conversamos sobre como vão ser nossas atividades, apresentamos o Plano de Ensino e conversamos um pouco sobre as avaliações. Também falamos sobre a continuidade do desenvolvimento do sistema desenvolvido até aqui e fizemos também uma pequena avaliação sobre os trabalhos apresentados no final da DS2 e que agora continuaremos com o desenvolvimento do sistema proposto. Para terminar, mostramos como funciona o uso de sessões no PHP e também como alterar dados já cadastrados. Ao final da primeira interação, foi possível testar sessões e também a alteração do cadastro de clientes do nosso sistema exemplo agora na WEB. Na próxima semana vamos mostrar como criar um domínio gratuito na internet e falaremos também sobre novas funções de acesso ao banco de dados MySQL pelo PHP e mostraremos também como fazer uma chamada de uma caixa de diálogo para que o usuário tome um decisão sobre a continuidade ou não de uma determina ação, como excluir um registro, por exemplo.
Até lá!
Bons estudos!
Prof. Douglas A.
Referências
[1] http://blog.thiagobelem.net/aprendendo-a-usar-sessoes-no-php
[2] Mendonça, Igor Thiago Marques. Programação para WEB. Florianópolis : Publicações do IFSC, 2010.
| << | <> | >> |
|---|
Seções
Alteração de Dados
Recursividade de Páginas
Organização da Semana 2
Nesta primeira semana apresentamos nosso plano de ensino e recomeçamos o desenvolvimento do sistema, explicando sobre como utilizar sessões, para controlar o acesso às páginas, também aprendemos sobre edição dos dados já inseridos. Na próxima semana, vamos dar uma passado sobre o uso de novas funções de conexão do PHP com o banco de dados MySQL. Veremos também como colocar sua aplicação em um domínio gratuito na internet.
Não percam!
Bons estudos!
Prof. Douglas A.
Referências
[1]
| << | <> | >> |
|---|


