sexta-feira, 31 de agosto de 2012

Eu ja estou dentro, vamos ajudar a Anatel a medir a Banda Larga no Brasil

Seja um voluntário!

Indicadores de qualidade de conexão a rede de dados também foram definidos na Resolução 574/11, os quais deverão ser observados pelas prestadoras.

O Programa de Aferição de Qualidade da Banda Larga no Brasil, visa medir os indicadores de qualidade e precisa de voluntários.

Faça parte do grupo de brasileiros que irá medir a qualidade da conexão banda larga em nosso país.

Cidadãos e empresas de todos os estados brasileiros podem participar gratuitamente.

Participe!

domingo, 26 de agosto de 2012

Seja Empreendedor Polishop - vale a pena

Polishop com voce, o melhor negócio do mercado, feito para você!

Olá,

A Polishop já é a maior empresa multi-canal do mundo com mais de 10 anos de mercado, presença nos países do Mercosul, EUA, África e Europa e acaba de entrar no mercado de marketing multinivel, seu novo canal de distribuição.

Temos agora a oportunidade de sermos pioneiros neste mega negócio, Um Empreendedor Independente Polishop.
Saiba todos os detalhes acessando: http://sistemawinner.com.br/arthurbonora


Sucesso,


Arthur Bonora

terça-feira, 14 de agosto de 2012

Aprendendo a usar sessões no PHP

Mais postagens do Thiago Belem, com autorização.... (sou fã desse programador)

Sessão é um recurso do PHP que permite que você salve valores (variáveis) 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.

Você precisa iniciar a sessão antes de poder setar ou pegar valores dela. Não há limite de valores salvos na sessão. A sessão é pessoal de cada visitante. Quando um visitante acessa o site, é gerado um cookie no computador dele informando um id único de sessão e o PHP usa esse identificador pra ‘organizar’ as sessões entre os visitantes do seu site. Mas esse cookie tem validade apenas enquanto o browser estiver aberto.

Você precisa iniciar a sessão antes de iniciar o output, ou seja, antes de retornar QUALQUER coisa pro HTML. Antes de dar qualquer echo ou antes de inserir qualquer HTML fora de blocos php. Geralmente o início da sessão é uma das primeiras coisas no começo de todo site.
A sessão precisa ser iniciada em cada página que você for usar ou definir um valor dela, salvo arquivos que vieram por include, mas é preciso ter iniciado a sessão uma vez antes do include.

Para abrir a sessão é só usar esse comando no PHP:
1session_start(); // Inicia a sessão
Depois de iniciada a sessão você pode definir valores dentro dela dessa forma:
1$_SESSION['usuario'] = 'Thiago';
E quando você precisar exibir o valor salvo na sessão (provavelmente em outras páginas), é só fazer assim:
1echo $_SESSION['usuario']; // Resultado: Thiago
Você pode salvar quantos valores quiser, pode re-definir os valores e usa-los em echos, argumentos de funções e da forma que preferir.
Para deletar uma variável específica da sessão você usa o unset():
1unset($_SESSION['usuario']); // Deleta uma variável da sessão
Você também pode destruir toda a sessão de uma só vez, eliminando todas as variáveis salvas nela:
1session_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.
Espero que tenham gostado e adoraria que usassem o que aprenderam aqui.

Documentação Oficial:



Artigo originalmente publicado em 7 de março de 2009 por Thiago Belem: Aprendendo a usar sessões no PHP

Criando um sistema de login com PHP e MySQL

Hoje vou ensinar a criar um sistema de login simples usando PHP e MySQL.
É recomendável que você já tenha um conhecimento prévio de HTML e, se possível, PHP e MySQL para tornar as coisas mais fáceis.
Nosso sistema será bem simples: um arquivo chamado seguranca.php, que deverá ser incluído no topo do seu site (em todas as páginas) e que faz a conexão com o banco de dados e que possui algumas funções usadas para redirecionar o visitante para o formulário de login (login.php) caso ele não esteja logado.
Vamos ao trabalho:
O que iremos definir primeiro é a tabela usada para armazenar os usuários do sistema:
1DROP TABLE IF EXISTS `usuarios`;
2CREATE TABLE IF NOT EXISTS `usuarios` (
3`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
4`nome` varchar(100) NOT NULL,
5`usuario` varchar(50) NOT NULL,
6`senha` varchar(50) NOT NULL,
7PRIMARY KEY (`id`),
8UNIQUE KEY `usuario` (`usuario`)
9) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Execute esse bloco SQL no seu banco de dados para criar a tabela usada pelo sistema.
Depois disso, vamos ao formulário de login que você colocará dentro de um arquivo chamado login.php:
1<form method="post" action="valida.php">
2<label>Usuário</label>
3<input type="text" name="usuario" maxlength="50" />
4
5<label>Senha</label>
6<input type="password" name="senha" maxlength="50" />
7
8<input type="submit" value="Entrar" />
9</form>
Esse formulário, com apenas dois campos, manda pra página valida.php, que é um pequeno PHP que receberá os dados enviados pelo formulário, fará a validação deles e mandará o visitante ou pra página interna (index.php) ou de volta pra página de login (login.php).
Esse é o codigo fonte do arquivo valida.php:
01// Inclui o arquivo com o sistema de segurança
02include("seguranca.php");
03
04// Verifica se um formulário foi enviado
05if ($_SERVER['REQUEST_METHOD'] == 'POST') {
06// Salva duas variáveis com o que foi digitado no formulário
07// Detalhe: faz uma verificação com isset() pra saber se o campo foi preenchido
08$usuario = (isset($_POST['usuario'])) ? $_POST['usuario'] : '';
09$senha = (isset($_POST['senha'])) ? $_POST['senha'] : '';
10
11// Utiliza uma função criada no seguranca.php pra validar os dados digitados
12if (validaUsuario($usuario, $senha) == true) {
13// O usuário e a senha digitados foram validados, manda pra página interna
14header("Location: index.php");
15} else {
16// O usuário e/ou a senha são inválidos, manda de volta pro form de login
17// Para alterar o endereço da página de login, verifique o arquivo seguranca.php
18expulsaVisitante();
19}
20}
A estrutura do seu site, até esse ponto, deve estar dessa forma:
../pasta_do_seu_site/index.php » Página intera a ser protegida
../pasta_do_seu_site/login.php » Página com o formulário de login
../pasta_do_seu_site/valida.php » Página que faz a validação dos dados do formulário
Agora vamos criar o arquivo seguranca.php na mesma pasta dos demais arquivos:
001/**
002* Sistema de segurança com acesso restrito
003*
004* Usado para restringir o acesso de certas páginas do seu site
005*
006* @author Thiago Belem
008*
009* @version 1.0
010* @package SistemaSeguranca
011*/
012
013//  Configurações do Script
014// ==============================
015$_SG['conectaServidor'] = true;    // Abre uma conexão com o servidor MySQL?
016$_SG['abreSessao'] = true;         // Inicia a sessão com um session_start()?
017
018$_SG['caseSensitive'] = false;     // Usar case-sensitive? Onde 'thiago' é diferente de 'THIAGO'
019
020$_SG['validaSempre'] = true;       // Deseja validar o usuário e a senha a cada carregamento de página?
021// Evita que, ao mudar os dados do usuário no banco de dado o mesmo contiue logado.
022
023$_SG['servidor'] = 'localhost';    // Servidor MySQL
024$_SG['usuario'] = 'root';          // Usuário MySQL
025$_SG['senha'] = '';                // Senha MySQL
026$_SG['banco'] = 'test';            // Banco de dados MySQL
027
028$_SG['paginaLogin'] = 'login.php'; // Página de login
029
030$_SG['tabela'] = 'usuarios';       // Nome da tabela onde os usuários são salvos
031// ==============================
032
033// ======================================
034//   ~ Não edite a partir deste ponto ~
035// ======================================
036
037// Verifica se precisa fazer a conexão com o MySQL
038if ($_SG['conectaServidor'] == true) {
039$_SG['link'] = mysql_connect($_SG['servidor'], $_SG['usuario'], $_SG['senha']) or die("MySQL: Não foi possível conectar-se ao servidor [".$_SG['servidor']."].");
040mysql_select_db($_SG['banco'], $_SG['link']) or die("MySQL: Não foi possível conectar-se ao banco de dados [".$_SG['banco']."].");
041}
042
043// Verifica se precisa iniciar a sessão
044if ($_SG['abreSessao'] == true) {
045session_start();
046}
047
048/**
049* Função que valida um usuário e senha
050*
051* @param string $usuario - O usuário a ser validado
052* @param string $senha - A senha a ser validada
053*
054* @return bool - Se o usuário foi validado ou não (true/false)
055*/
056function validaUsuario($usuario, $senha) {
057global $_SG;
058
059$cS = ($_SG['caseSensitive']) ? 'BINARY' : '';
060
061// Usa a função addslashes para escapar as aspas
062$nusuario = addslashes($usuario);
063$nsenha = addslashes($senha);
064
065// Monta uma consulta SQL (query) para procurar um usuário
066$sql = "SELECT `id`, `nome` FROM `".$_SG['tabela']."` WHERE ".$cS." `usuario` = '".$nusuario."' AND ".$cS." `senha` = '".$nsenha."' LIMIT 1";
067$query = mysql_query($sql);
068$resultado = mysql_fetch_assoc($query);
069
070// Verifica se encontrou algum registro
071if (empty($resultado)) {
072// Nenhum registro foi encontrado => o usuário é inválido
073return false;
074
075} else {
076// O registro foi encontrado => o usuário é valido
077
078// Definimos dois valores na sessão com os dados do usuário
079$_SESSION['usuarioID'] = $resultado['id']; // Pega o valor da coluna 'id do registro encontrado no MySQL
080$_SESSION['usuarioNome'] = $resultado['nome']; // Pega o valor da coluna 'nome' do registro encontrado no MySQL
081
082// Verifica a opção se sempre validar o login
083if ($_SG['validaSempre'] == true) {
084// Definimos dois valores na sessão com os dados do login
085$_SESSION['usuarioLogin'] = $usuario;
086$_SESSION['usuarioSenha'] = $senha;
087}
088
089return true;
090}
091}
092
093/**
094* Função que protege uma página
095*/
096function protegePagina() {
097global $_SG;
098
099if (!isset($_SESSION['usuarioID']) OR !isset($_SESSION['usuarioNome'])) {
100// Não há usuário logado, manda pra página de login
101expulsaVisitante();
102} else if (!isset($_SESSION['usuarioID']) OR !isset($_SESSION['usuarioNome'])) {
103// Há usuário logado, verifica se precisa validar o login novamente
104if ($_SG['validaSempre'] == true) {
105// Verifica se os dados salvos na sessão batem com os dados do banco de dados
106if (!validaUsuario($_SESSION['usuarioLogin'], $_SESSION['usuarioSenha'])) {
107// Os dados não batem, manda pra tela de login
108expulsaVisitante();
109}
110}
111}
112}
113
114/**
115* Função para expulsar um visitante
116*/
117function expulsaVisitante() {
118global $_SG;
119
120// Remove as variáveis da sessão (caso elas existam)
121unset($_SESSION['usuarioID'], $_SESSION['usuarioNome'], $_SESSION['usuarioLogin'], $_SESSION['usuarioSenha']);
122
123// Manda pra tela de login
124header("Location: ".$_SG['paginaLogin']);
125}
Não vou poder explicar todas as funções do arquivo pq é muita coisa.. Mas todas elas estão devidamente comentadas e documentadas… É só olhar.
Com esse arquivos nós já nos conectamos automaticamente ao servidor MySQL, então se você usar outra forma pra fazer a conexão, vá na parte de configurações do seguranca.php e defina a variável $_SG['conectaServidor'] pra falso (false). O mesmo acontece pra sessão com a variável $_SG['abreSessao'].
Agora é só incluir essas linhas no topo de cada arquivo que deverá ter o acesso restrito:
1include("seguranca.php"); // Inclui o arquivo com o sistema de segurança
2protegePagina(); // Chama a função que protege a página
Quando vocês quiserem exibir o nome do usuário logado, é só fazer isso:
1echo "Olá, " . $_SESSION['usuarioNome'];
Veja mais sobre escrever e pegar valores da sessão (coisa que acontece muito nesse sistema de login) no tópico Aprendendo a usar sessões no PHP.
Viram como é fácil?
Pra quem quiser um tutorial mais explicado e detalhado recomendo: Como criar um Sistema de Login com Níveis de Permissão (passo-a-passo).
Nota: Alguns de vocês devem ter notado que durante essa semana, no post Criando Sistemas Seguros, falei sobre não usar nomes óbvios para tabelas de usuários. Mas esse exemplo é apenas explicativo, você pode mudar o nome da tabela de usuários se preferir e depois é só alterar a variável no bloco de configurações dentro do seguranca.php.

Veja aqui como criar um sistema de login usando classes (Orientação a Objetos) e que funciona no PHP 4 e PHP 5.


Artigo originalmente publicado em 9 de março de 2009 por Thiago Belem: Criando um sistema de login com PHP e MySQL

Feliz 2021

Fala pessoal, o blog ta parado, mas vamos deixar aqui o Feliz Ano Novo que 2021 seja excelente para todos. Sempre com Deus Não esqueçam d...