InFog

Um blog sobre GNU, Linux, Open Source, Desenvolvimento e Nerdices em Geral

Dicas Away do InFog – 1

Tags: , , ,

Olá pessoal!

Bem, aqui começa uma nova série no blog, são as fantásticas “Dicas Away do InFog”!

“Mas o que são as dicas away?” Você deve estar se perguntando, pois eu respondo: Dicas Away são dicas em geral para várias atividades de vários softwares/comandos/arquivos de configuração… Enfim, um monte de dicas aleatórias de coisas que eu faço no dia-a-dia e estou afim de compartilhar aqui.

Então vamos começar! =)

Dica 1 – Subversion

Adicionar coisas novas em um repositório subversion com apenas uma linha de comando.

Essa é pra você que utiliza repositórios subversion para seus projetos e vez ou outra precisa incluir bastante coisa neste repositório.

O problema é o seguinte, você está desenvolvendo o seu projeto e no final das contas vai fazer um commit, mas você adicionou coisas novas e precisa adiciona-las ao repositório. Ok como fazemos isso?

Bem, com a opção status do svn nós podemos saber o que mudou desde o último update:

$ svn status
?      arquivo_novo.txt
M     arquivo_modificado.txt

Certo, aqui só tem um arquivo novo, então bastaria um “svn add arquivo_novo.txt” para adiciona-lo ao repositório. O problema está quando temos muitos arquivos novos, bem o svn exibe um “?” para os arquivos novos, então vamos filtrar isso:

$ svn status | grep ^\?
?      arquivo_novo.txt

Hum, legal, agora ele já exibiu somente o arquivo novo, mas a interrogação ainda está atrapalhando, afinal queremos somente o nome dos arquivos novos, então:

$ svn status | grep ^\? | tr -d \?
arquivo_novo.txt

Olha só que legal! Agora temos apenas o nome dos arquivos novos =) Então vamos adiciona-lo:

$ svn add `svn status | grep ^\? | tr -d \?`
A         arquivo_novo.txt

Prontinho! Com isso adicionamos todos os arquivos novos ao repositório subversion.

Dica 2 – PHP & MySQL

Essa é legal para desenvolvedores em PHP que utilizam o banco de dados MySQL. Lá está você inserindo um registro no banco quando de repente você precisa pegar o número que foi registrado (para campos autonum). O que você faz? Simples, use a função do php mysql_insert_id(), exemplo, com uma tabela assim:

Cliente
codigo_cliente integer autonum
nome_cliente varchar(30)

O código seria mais ou menos assim:

<?

mysql_query(“INSERTO INTO Clientes (nm_cliente) VALUES (‘{$nm_cliente}‘)”);

$codigo = mysql_insert_id();

?>

E essas foram as dicas de hoje. Gostaram? Se alguém quiser pedir uma dica basta se pronunciar nos comentários de enviar um envelope com R$ 50,00 para a minha casa que eu faço a dica com todo o prazer auheoiahe.

Abraços

InFog

1 Comentário

Curso de Desenvolvimento de Loja Virtual com PHP e MySQL na Unimonte

Tags: , ,

Olá Pessoal!

Estou aqui para divulgar um minicurso de desenvolvimento de loja virtual utilizando PHP e MySQL na Unimonte (Santos-SP) durante os dias 1, 2 e 3 de Outubro.

Eu já ministrei este curso na Fatec no ano passado e agora é a vez da Unimonte.

Durante o curso o aluno aprenderá um pouco sobre o PHP e sua integração com o SGBD MySQL. A loja desenvolvida durante o curso é conceitual e serve como base para um sistema maior e mais complexo.

Requisitos: O aluno interessado em fazer o curso deve conhecer alguma linguagem de programação ter noções básicas de SQL para poder aproveitar melhor as explicações.

O curso custa apenas R$ 20,00 e será realizado das 19:00 às 22:30.

Se você se interessou pelo curso basta preencher o formulário para fazer a sua inscrição.

O laboratório para as aulas será definido de acordo com o número de alunos inscritos.

Aqui está um resumo do conteúdo das aulas:

1º dia – quarta-feira – 01 de Outubro de 2008

  • Apresentação da proposta do curso

  • O que é uma loja virtual

  • Por que vender on-line? (custos, facilidades)

  • O que é PHP

  • O que é MySQL

  • Demonstração da loja funcionando

  • Explicação dos conceitos e do projeto da loja

2º dia – quinta-feira – 02 de Outubro de 2008

  • Conexão com o banco de dados

  • Desenvolvimento das estruturas de suporte

  • Desenvolvimento da “vitrine” (página principal)

  • Desenvolvimento do carrinho

3º dia – sexta-feira – 03 de Outubro de 2008

  • Adicionando e removendo itens do carrinho

  • Finalizando a compra

  • Relatório de vendas

<Atualização>

Estarei em um dos laboratórios da Unimonte hoje a partir das 19:00h. Caso algum aluno queira se inscrever na hora basta ir falar comigo.

</Atualização>

<Atualização2>

Curso cancelado devido à falta de interesse dos alunos e creio que também à divulgação tardia. Essa fica para a próxima. Obrigado à Unimonte pelo convite e sorte à todos.

</Atualização2>

Evaldo Junior – InFog

4 Comentários

Sistema de Autenticação em PHP – Parte2

Tags: , ,

Bem vindos à segunda parte do desenvolvimento do sistema de autenticação em PHP, a primeira parte você encontra aqui.

Bem, nessa parte falarei sobre sessões e cookies em PHP, quando utilizar um e quando utilizar o outro.

Por que sessões e cookies? É bem nessa parte que o desenvolvimento de aplicativos para web se diferencia do desenvolvimento de aplicações desktop, pois em uma aplicação para desktop você pode manter dados em memória de forma muito simples, basta criar variáveis e armazenar os dados nelas, e para valores que o programa todo mais usar basta criar as variáveis globais.

Já no desenvolvimento web a coisa complica um pouco, pois, por exemplo, um script PHP não consegue “enxergar” as variáveis definidas em outro script, e isso pode complicar muito as coisas…

Pensemos assim, em um aplicativo desktop bastaria eu criar uma variável global chamada usuario_logado e atribuir um valor booleano para ela e assim fazer o controle para saber se o usuário está logado ou não, e posso criar também uma variável tempo_sessao para definir quanto tempo dura a sessão do usuário antes que ele precise se identificar novamente.

Agora vamos pensar no mesmo problema, mas com uma visão para a web. Eu posso ter um script PHP que faz a autenticação do usuário e dá os valores corretos às variáveis que indicam que ele está logado e quanto tempo dura a sessão, mas no próximo script esse valor se perderia… Então, como fazer para ter acesso à estes dados? A resposta está nas sessões e nos cookies.

Então vou explicar o que são essas sessões e os cookies, vou começar pelas sessões.

No PHP existe a variável global chamada $_SESSION, e ela é definida (ou resgatada) quando você utiliza a função session_start(). Esta variável é global e ela passa de página para página, ou de script para script, até que a sessão tenha sido finalizada, expirada ou o browser seja fechado. Lembrando que cada script que for utilizar as variáveis globais devechamar a função session_start().

Tá, mas como eu posso manter dados na variável de sessão? Hum, vamos pensar um pouquinho… $_SESSION é uma variável, logo eu posso fazer algo tipo:

$_SESSION = “InFog”;

Certo? Bem, talvez, não sei se isso funcionaria, nunca testei, mas assim você armazenaria apenas um valor, e não é bem isso o que queremos certo? Mas dá para fazer algo que tornará essa variável algo muito legal, transformá-la em uma array! Isso mesmo assim ela vira quantas variáveis desejarmos! Faça assim:

$_SESSION = array();

OK, assim podemos fazer algo assim:

$_SESSION['usuario'] = “InFog”;

$_SESSION['logado'] = true;

Legal né? Muito mais fácil, prático e rápido!

O problema com as sessões é que elas terminam quando o navegador é fechado, ou seja não podemos utilizar a famosa opção “Lembrar de mim”. Mas para isso existem os COOKIES, aqueles deliciosos biscoitos com pedacinhos de chocolate… Não não, os cookies não são isso, os cookies são dados armazenados no lado cliente (browser) que podem guardam informações e têm uma coisa legal chamada validade, você pode definir a validade de um cookie para, por exemplo, dez minutos, o que seria interessante em páginas que exigem uma segurança maior e que o usuário não pode abandonar o browser aberto.

A utilização dos cookies é bem parecida com as sessões, mas os cookiessão definidos de um em um com a função setcookie(), assim:

setcookie(‘nome_do_cookie’, “Valor”, validade_do_cookie);

Um exemplo:

setcookie(‘usuario’, “InFog”, time() + 3600 * 5);

A função time tráz o timestamp atual (hora do servidor), e nesse caso eu estou somando mais 3600 segundos (1 hora) multiplicado por 5, ou seja a hora atual mais 5 horas, essa é a validade do cookie, em 5 horas ele expira.

Para recuperar o valor do cookie fazemos assim:

$usuario = $_COOKIE['usuario'];

A variável global $_COOKIE guarda os valores em forma de array também, sendo o nome do cookie o índice no array.Você pode recuperaros valores dos cookies em qualquer página (script) aberta após o cookie ser ’setado’ desde que ele não tenha expirado é claro.

Ok, conhecendo esses tópicos podemos pensar como será nosso sistema de autenticação:

Faremos algo assim: O usuário acessa a página e lhe é exibida uma página de login, ele digita usuário e senha, clica ou não em ‘lembrar de mim’ e clica em ‘logar’, com isso os dados são enviados ao nosso script de login que pega usuário e senha e confere se batem com o que está armazenado no banco de dados, se conferir iniciamos a sessão dele e o mandamos para a página inicial do site, caso ele tenha escolhido a opção ‘lembrar de mim’ nós criamos os cookies que serão os responsáveis por “lembrar” da nossa página e lembrar que o usuário já está logado. Se a senha não bater a página de login é exibida novamente com uma mensagem de erro.

Então tudo certo! Já temos o conhecimento sobre as sessões e os cookies, o que falta agora é o banco de dados… que será discutido no próximo capítulo.

Vejo (???) vocês na terceira parte.

InFog

4 Comentários

© 2009 InFog. All Rights Reserved.

This blog is powered by Wordpress and Magatheme by Bryan Helmig.