Mostrando postagens com marcador PHP. Mostrar todas as postagens
Mostrando postagens com marcador PHP. Mostrar todas as postagens

Calcular idade em PHP (em anos)

Neste script simples faremos o calculo da idade a partir da data de nascimento do usuário.

É um script simples, procure altera-lo conforme a sua necessidade.


<? 
if(isset($_POST['nascimento'])){?>Sua idade atual é de <?
$nascimento = mktime(0,0,0,substr($_POST['nascimento'],3,2),substr($_POST['nascimento'],0,2),substr($_POST['nascimento'],8,2)); 
$dthj   = mktime(0,0,0,date('m'),date('d'),date('Y')); 
$segundos_diferenca = $dthj - $nascimento; 
$dias_diferenca = ($segundos_diferenca / (60 * 60 * 24)); 
if($dias_diferenca >= 366){
$dias_diferenca = $dias_diferenca/365; 
$dias_diferenca = (int) $dias_diferenca;
echo $dias_diferenca.' anos';
}else{
$meses = $dias_diferenca/30;
$meses = rand($meses,0);
echo $dias_diferenca.' dias ('.$meses.' meses)';
}
?><a href="<?=$_SERVER['PHP_SELF']?>">Recalcular</a><?
}else{ ?>
Calcule sua idade.
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">Data de nascimento: <input type="text" name="nascimento" /> ex formato: 22/03/1986<br><input type="submit" value="calcular" /></form>
<? }?>
[ leia mais ]

Formulário de cadastro e confirmação de e-mail com PHP

Neste post, tentarei passar uma forma simples e rápida de criarmos uma página de cadastro, com envio de e-mail de link para confirmação do mesmo. Nesta página faremos de uma forma bem simles mesmo, mas você pode alterar o código da forma que desejar. Pois a minah intenção não será de elaborar o melhor código possível, mas sim, ajudar a ter uma noção de como fazer.


Seja sempre curioso, esqueça do Ctrl V e Ctrl C, tente digitar novamente o código para decorar, ou melhor, aprender a lógica criada na página, assim poderemos contruir uma web melhor. Mas enquanto isso não acontece, vamos ao código.

Eu estou utilizando a Classe PHPMAILER, você pode fazer o download do arquivo PHPMAILER cliacando aqui.

Com a classe em sua máquina, vamos criar nosso banco de dados mysql. Execute o script abaixo:

CREATE DATABASE `teste`;
USE `teste`;

CREATE TABLE `cadastro` (
`cadastrocod` INT (5) UNSIGNED ZEROFILL AUTO_INCREMENT, 
`nome_user` VARCHAR (150), 
`email_user` VARCHAR (150), 
`confir_email_user` CHAR (1) DEFAULT 'N', 
PRIMARY KEY(`cadastrocod`)
) TYPE = MyISAM;

Agoa com o banco de dados e nossa tabela criada, faça uma conexao com ela (esta parte não explicarei neste post), feita a conexao, vamos a página que interessa. Segue o código abaixo:
cadastro.php

<?php
include 'conexao.php';
Abre_Conexao();
if($_SERVER["REQUEST_METHOD"] == "POST"){ //IF 1
mysql_query("Insert Into cadastro (`nome_user`,`email_user`) Values ('".$_POST['nome']."','".$_POST['email']."')");
if(mysql_affected_rows()==0){
$erro[] = 'Não foi possível realizar o cadastro';
}else{
/*ENVIANDO COM PHPMAILER*/
/* INCLUI A PÁGINA DA CLASS*/ 
include("phpmailer/class.phpmailer.php"); 
/*CORPO DO E-MAIL*/ 
$html = " 
<html> 
<body> 
Olá ".$_POST['nome'].", seu cadastro foi realizado, mas para ter acesso ao conteúdo, clique no link abaixo para confirmar seu endereço de e-mail.<br><br>
<a href='http://www.seusite.com.br/cadastro.php?email_confirm=".$_POST['email']."' target='_blank'>Ativar/Validar e-mail</a><br><br>
Atenciosamente,<br>
Admin.
</body> 
</html>"; 
/*INSTANCIA A OBJETOS*/ 
$mail = new PHPMailer(); 
/*MANDAR VIA SMTP*/ 
$mail->IsSMTP(); 
/*SERVIDOR SMTP*/ 
$mail->Host = "mail.seusite.com.br"; 
/*HABILITA SMTP AUTENTICADO - NAO ALTERAR */ 
$mail->SMTPAuth = true; 
/*USUARIO DESTE SERVIDOR SMTP*/ 
$mail->Username = "seuemail@seusite.com.br"; 
/*SENHA USUARIO DESTE SERVIDOR SMTP*/ 
$mail->Password = "*****"; 
/*E-MAIL UTILIZADO PARA ENVIO, PODER SER O MESMO DO USERNAME*/ 
$mail->From = 'seuemail@seusite.com.br'; 
$mail->FromName = 'seuemail@seusite.com.br'; //Ex: nome_aqui (email@dominio.com) 
/*WRAP SET O TAMANHO DO TEXTO POR LINHA*/ 
$mail->WordWrap = 50; 
/*ENVIAR EM HTML*/ 
$mail->IsHTML(true); 
/*INFORMANDO O E-MAIL DO REMETENTE*/ 
$mail->AddReplyTo('seuemail@seusite.com.br','seuemail@seusite.com.br'); 
/*LISTA DE ENDEREÇOS QUE DEVE SER MANDADO O E-MAIL*/ 
$mail->AddAddress($_POST['email'],'Sr(a).'.$_POST['nome']); 
$msg = $html; 
/*O ASSUNTO DO E-MAIL*/ 
$mail->Subject = "Confirmacao de Cadastro"; 
/*ADICIONANDO O HTML NO CORPO DO E-MAIL*/ 
$mail->Body = $msg; 
/*DEFININDO A LINGUAGEM*/ 
$mail->SetLanguage("br", "phpmailer/language/"); 
/*ENVIANDO E RETORNANDO STATUS DO ENVIO*/ 
if(!$mail->Send()){ 
/*ERRO NO ENVIO*/ 
echo "Ocorreu um erro no envio do e-mail. Erro: ".$mail->ErrorInfo; //FUNCAO INFORMA O ERRO OCORRIDO // 
exit; 
} 
/*FECHA ENVIO DE PHPMAILER*/
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Fixa de Cadastro</title>
<style>
body{font-family:Arial; font-size:12px;}
form{background:#CCCCCC; border:solid 1px; width:500px; padding:10px;}
</style>
</style>
</head>
<body>
<?
if(isset($erro)){//IF 0
foreach($erro as $erros){
echo $erros.'<br><br>';
}
?>
<a href="<?=$_SERVER['PHP_SELF']?>">voltar a ficha de cadastro</a>
<?
}else{//ELSE IF 0
if($_SERVER["REQUEST_METHOD"] != "POST" && !isset($_GET['email_confirm'])){ //IF 1
?>
Ol&aacute;, seja bem vindo. Preencha o formul&aacute;rio abaixo e cadastre-se gratuitamente.<br><br>
<form action="<?=$_SERVER['PHP_SELF']?>?cadastrar" method="post">
<div style="float:left; width:50px;">Nome:</div><div><input type="text" name="nome" value="" maxlength="100" size="40"/></div>
<div style="float:left; width:50px;">E-mail:</div><div><input type="text" name="email" value="" maxlength="100" size="50"/></div>
<div style="width:50px; margin-top:10px;"><input type="submit" value="cadastrar"></div>
</form>
<?
}else{
if(isset($_POST['nome'])||isset($_POST['email'])||$_GET['email_confirm']){
if(isset($_GET['email_confirm'])){//IF 2
$sql_cadastros = mysql_query("Update `cadastro` Set `confir_email_user`='S' Where email_user='".$_GET['email_confirm']."'")or die(mysql_error());
if(mysql_affected_rows()>0){//IF 3
?>
Seu e-mail foi confirmado e seu cadastro foi ativado!
<?
}else{//ELSE IF 3
?>
Este e-mail não consta em nossos registros.
<?
}//FECHA IF 3
}else{ //ELSE IF 2
?>
Seu cadastro foi realizado com sucesso!<br><br> Enviamos uma confirma&ccedil;&atilde;o de cadastro para o e-mail informado.<br><br> Clique no link contido no e-mail para ativar seu cadastro!
<?
} //FECHA IF 2
}else{
?>
Pedido inválido
<?
}
} //FECHA IF 1
}//FECHA IF 0
?>
</body>
</html>

Este código utiliza a mesma página realizar toda operação, mas ode optar utilizar mais de uma. Está ai a dica, qualquer dúvida, comente.
[ leia mais ]

Gerar arquivo PDF com PHP

Estava trabalhando com um Web Site, e precisei criar uma página de contrato para os clientes da empresa don do site, porém, esta suposta página de contrato precisava ser exibida aos clientes no formato PDF para ser imprimida, então, procurando encontrei uma classe para o PHP chamada FPDF que gera o arquivo PDF.

Bem, assim resolvi postar aqui a lógica básica do código. Vejamos abaixo:


Em primeiro lugar, clique aqui faça o download da classe para sua máquina ou acesse o site http://www.fpdf.org e descompacte-a o arquivo ZIP no diretório de seu site.

Crie um documento PHP dê o nome de pdf.php. Este documento deverá ser como no exemplo abaixo:

<?php 
//chamando a classe fpdf php . OBS: aponte para a pasta que está sua classe
include "fpdf/fpdf.php"; 
//define a pasta contendo as fontes usdas no documento
define('FPDF_FONTPATH','font/');
//configurações iniciais
$pdf = new FPDF('P','cm','A4');
$pdf = new FPDF();
$pdf->Open();
$pdf->AddPage();
//define a fonte utilizada para odocumento
$pdf->SetFont("Arial",'', 12);
//titulos de configuração do documento
$pdf->SetAuthor("Titulo do arquivo");
$pdf->SetTitle("Titulo do arquivo");
$pdf->SetSubject("Titulo do arquivo");
$pdf->Header();
//exibe o cabecalho do documento
$pdf->MultiCell(0,5,"Texto cabecalho",0, 'R');
//distancia do titulo da margem superior
$pdf->Ln(6);
//Titulo do documento
$pdf->MultiCell(0,5,"Titulo do documento",0,'C');
//distancia do texto e do titulo do documento
$pdf->Ln(6);
//texto do documento
$texto = "texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto ";
//gerar o texto no documento
$pdf->MultiCell(0,5,"$texto",0, 'J');
//cria o arquivo pdf e exibe no navegador
$pdf->Output();
?>


Tentei deixar o código um pouco comentado para facilitar no entendimento. Se desejar mais informações sobre a classe, acesse o site do desenvolvedor no endereço: http://www.fpdf.org/
[ leia mais ]

Função para validar CPF em PHP

Esta é uma função simples feita em PHP para validar um CPF. A função pode ocorrer alguns erros, foi testada em alguns CPFs e retornou como esperado. Então, antes de aplicá-la em sua página, teste-a. Para nós programadores, quando criamos uma função precisamos que outra pessoa, que não conheça a função/script para realizar corretamente os testes. Mas é isso, abaixo a função.

<?php
function CPF($cpf){
  $caracteres = array('.','-');
  $CPF = str_replace($caracteres, "", $cpf);
  /*ENCONTRA PRIMEIRO DIGITO*/
  $soma = 0;
  for($i=0;$i<=8;$i++){
    $soma += substr($CPF, $i, 1)*(10-$i);
  }
  $soma = $soma-((substr(($soma/11), 0,2))*11);
  if ($soma<=1) $div1 = 0; else $div1 = 11-$soma;
  /*ENCONTRA SEGUNDO DIGITO*/
  $soma = 0;
  for($i=0;$i<=8;$i++){
    $soma += substr($CPF, $i, 1)*(11-$i);
  }
  $soma += ($div1*2);
  $soma = $soma-((substr(($soma/11), 0,2))*11);
  if ($soma<=1) $div2 = 0; else $div2 = 11-$soma;
  /*RESULTADO*/ 
  $result = $div1.$div2;
  $final = substr($CPF, 9,2);
  if ( $result == $final )
    return 'CPF nº <u>'.$cpf.'</u> válido';
  else
    return 'CPF nº <u>'.$cpf.'</u> inválido';
}
echo CPF("012.098.765-15");
?>
Um abraço a todos. Até a próxima.
[ leia mais ]

Função para retirar acentos em php

Olá pessoal. Algumas vezes precisamos de trabalhar strings (textos) em php. Recentemente precisei retirar acentos em algumas strings, e o que resolvi fazer foi uma função para isso. Veja abaixo:
function Acentos($TEXTO){
$Validos   = array("A"  , "a"  , "A"  , "a"  , "A"  , "a"  , "A"  , "a"  , "E"  , "e"  , "E"  , "e"  , "E"  , "e"  , "I"  , "i"  , "O"  , "o"  , "O"  , "o"  , "O"  , "o"  , "U"  , "u"  , "U"  , "u"  , "U"  , "u" , "c" , "C" );


$Invalidos  = array("Á"  , "á"  , "À"  , "à"  , "Â"  , "â"  , "Ã"  , "ã"  , "É"  , "é"  , "È"  , "è"  , "Ê"  , "ê"  , "Í"  , "í"  , "Ó"  , "ó"  , "Ô"  , "ô"  , "Õ"  , "õ"  , "Ú"  , "ú"  , "Ù"  , "ù"  , "Ü"  , "ü" , "ç" ,"Ç" );
$Acentos  = array("`" , "´" , "^" , "\"" , "~" );
$TEXTO   = str_replace($Invalidos, $Validos, $TEXTO);
$TEXTO   = str_replace($Acentos, "", $TEXTO);
return $TEXTO;
}
Esta retornará a string sem os acentos. Inclusive os cedilhas (ç). Para retornar a string em sua página, para quem não sabe, basta fazer assim:
$texto = Acentos('áéíóú');
echo $texto;
Abraços. Qualque dúvida. Postem no comentário. [ leia mais ]

Paginação em PHP

Olá novamente. Hoje vou mostrar uma forma simples de realizar uma paginação em php. Começamos com o arquivo paginação. Ele poderá ser baixado aqui. Não irei explicar o arquivo paginação...mas sim, como utilizá-lo em suas páginas.

Tenho o arquivo paginação.php em sua máquina, vamos à utilização dele. Crie uma arquivo com o nome de noticia.php. Este arquivo deverá conter duas query's. Uma para nos retornar o número total de registro, enquanto a outra, retornará somente a quntidade definida pela paginação. Então vamos ao arquivo notocia.php.

O arquivo começará da seguinte forma:
<?
$base = mysql_connect("caminho_do_banco", "seu_usuario", "sua_senha") or die ("erro ao conectar ao servidor");
$db_config = mysql_select_db("seu_banco") or die ("erro ao selecionar banco");
$max = 15;//maximo por pagina
//para sabermos quantas notícias existentes no total
$num_reg= mysql_num_rows(mysql_query("Select noticiacod From noticias"));
//chamando a paginação para calcular
include "paginacao.php";
?>
Feito isso na página, já teremos como exibir uma paginação. Agora, precisamos exibir os registros que queremos na página. Então coloque no arquivo noticia.php assim:
<?
//exibindo a lista de notícias mas com o limite dpor página, chamamos outro sql mas, agora...utilizando as variáveis $inicio e $final para limitar os registros
$SqlArtigo=mysql_query("Select * From noticiasLIMIT $inicio, $final");
$artigo=0;
while($AuxArtigo=mysql_fetch_assoc($SqlArtigo)){
/*exibe as notícias disponíveis*/
}
//chama a variável $paginação que exibirá os números das páginas
echo $paginacao;
?>
Pronto. A paginação já ocorrerá nos resultados. No final, sua página ficará mais ou menos assim.
<?php
$base = mysql_connect("caminho_do_banco", "seu_usuario", "sua_senha") or die ("erro ao conectar ao servidor");
$db_config = mysql_select_db("seu_banco") or die ("erro ao selecionar banco");
$max = 15;//maximo por pagina //para sabermos quantas notícias existentes no total
$num_reg= mysql_num_rows(mysql_query("Select noticiacod From noticias"));
//chamando a paginação para calcular include "paginacao.php";
?>
<html>
<head>
<title>Paginação em PHP</title>
<style type="text/css">
/*um stilo para a paginação, você pode criar a que desejar*/
a.LinkPaginacao:link {text-decoration: none; color: #000000;}
a.LinkPaginacao:visited {text-decoration: none; color: #000000;}
a.LinkPaginacao:hover {text-decoration: underline; background: #F9F9F9; color: #000000;}
a.LinkPaginacao:active {color: #000000;}
</style>
</head>
<body>
<?
//exibindo a lista de notícias mas com o limite por página, chamamos outro sql mas, agora...utilizando as variáveis $inicio e $final para limitar os registros
$SqlArtigo=mysql_query("Select * From noticiasLIMIT $inicio, $final");
$artigo=0;
while($AuxArtigo=mysql_fetch_assoc($SqlArtigo)){
/*exibe as notícias disponíveis*/
}
//chama a variável $paginação que exibirá os números das páginas
echo $paginacao;
?>
</body>
</html>
Uma braço a todos. Qualquer dúvida entre em contato.
[ leia mais ]

Enviando e-mails com PHP e PHPMAILER Class

Envio de e-mail com PHP e phmailer

Olá a todos, neste post, veremos como podemos fazer para enviar um e-mail utilizando o PHP e a class phpmailer. Simples, primeiro baixe a classe nesse endereço:

Download PHPMAILER Class

Após realizar o download da class, abra um novo documento, e insira o código abaixo alterando o que for necessário:

/* INCLUI A PÁGINA DA CLASS*/
include("phpmailer/class.phpmailer.php");
/*CORPO DO E-MAIL*/
$html = "
<html>
<body>
conteúdo do e-mail
</body>
</html>";
/*INSTANCIA A OBJETOS*/
$mail = new PHPMailer();
/*MANDAR VIA SMTP*/
$mail->IsSMTP();
/*SERVIDOR SMTP*/
$mail->Host = "mail.meuservidor.com.br";
/*HABILITA SMTP AUTENTICADO - NAO ALTERAR */
$mail->SMTPAuth = true;
/*USUARIO DESTE SERVIDOR SMTP*/
$mail->Username = "seuemail@meuservidor.com";
/*SENHA USUARIO DESTE SERVIDOR SMTP*/
$mail->Password = "*******";
/*E-MAIL UTILIZADO PARA ENVIO, PODER SER O MESMO DO USERNAME*/
$mail->From = 'seuemail@meuservidor.com';
$mail->FromName = 'seuemail@meuservidor.com'; //Ex: nome_aqui (email@dominio.com)
/*WRAP SET O TAMANHO DO TEXTO POR LINHA*/
$mail->WordWrap = 50;
/*ENVIAR EM HTML*/
$mail->IsHTML(true);
/*INFORMANDO O E-MAIL DO REMETENTE*/
$mail->AddReplyTo('seuemail@meuservidor.com','seuemail@meuservidor.com');
/*LISTA DE ENDEREÇOS QUE DEVE SER MANDADO O E-MAIL*/
$mail->AddAddress('email@destino.com','email@destino.com');
/*CRIANDO O HTML PARA ENVIO*/
$msg = $html;
/*O ASSUNTO DO E-MAIL*/
$mail->Subject = "Titulo do e-mail";
/*ADICIONANDO O HTML NO CORPO DO E-MAIL*/
$mail->Body = $msg;
/*DEFININDO A LINGUAGEM*/
$mail->SetLanguage("br", "phpmailer/language/");
/*ENVIANDO E RETORNANDO STATUS DO ENVIO*/
if(!$mail->Send()){
/*ERRO NO ENVIO*/
echo "Ocorreu um erro no envio do e-mail. Erro: ".$mail->ErrorInfo; //FUNCAO INFORMA O ERRO OCORRIDO //
exit;
}


[ leia mais ]

Área restrita em PHP utilizando sessões

Salve galera do blog. Hoje vou passar uma forma simples de criar um acesso restrito ao seu site em php utilizando um formulário HTML simples.

Em primeiro passo, vamos criar banco de dados e nossas tabelas em nosso MySQL. Acesse o seu MySQL e execute o código abaixo:

CREATE DATABASE `bancoteste`;

Já com nosso “bancoteste” criado, vamos adicionar nossa tabela.


CREATE TABLE `bancoteste`.`usuarios` (

`login` VARCHAR (50), `senha` VARCHAR (20), PRIMARY KEY(`login`) ) TYPE = MyISAM


Ok. Agora com o nosso banco de dados e nossa tabela criada, vamos dar início ao código. Abra um documento e salve-o como índex.php.

OBS: Para nunca perder seu código, salve-o sempre. Em qualquer alteração.

Na página índex, insira um formulário HTML com os campos Login e Senha como o exemplo abaixo:

<form id="form1" name="form1" method="post" action="<?=$_SERVER['PHP_SELF']?>?Action=logar">
Login : <input type="text" name="login" id="login" maxlength="50" /><br />
Senha : <input type="text" name="senha" id="senha" maxlength="20" /><br />
<input type="submit" name="logar" id="logar" value="Logar" />
</form>
Observe que colocamos na action do form, o comando <?=$_SERVER['PHP_SELF']?>?Action=logar, isso significa que ao dar o submit no form, o mesmo será carregado na página index.php. Agora com o form em nossa página, vamos ao código PHP.

No início da página, antes da tag <HTML>, vamos colocar o seguinte código:
<?
//testanos se existe a variavel Action e se ela é igual a logar
if(isset($_GET['Action']) && $_GET['Action']=='logar'){
//testamos também se esxiste as variáveis login e senha evniadas pelo form
if(isset($_POST['login']) && isset($_POST['senha'])){
//testamos se a variável login está vazia, es estiver, criamos o vetor erro
if(empty($_POST['login'])){
$erro[] = 'Preencha o campo login';
}
//testamos se a variável senha está vazia, es estiver, criamos o vetor erro (OBS: se erro existir, será acrescentado o valor a ele)
if(empty($_POST['senha'])){
$erro[] = 'Preencha o campo senha';
}
//se não existir erro, executamos o código abaixo
if(!isset($erro)){
//criamos a conexao com o banco de dados que criamos
$base = mysql_connect('127.0.0.1','root','')or die("erro na conexao");
//selecionamos o banco de dados
$bd = mysql_select_db('bancoteste')or die("erro ao selecionar o banco de dados");
//fazemos o select no banco para ver se o usuário digitado existe
$select = mysql_query("Select * From usuarios Where login='".$_POST['login']."' and senha='".$_POST['senha']."'")or die("erro no select");
//quantos registros retornaram
$qtde = mysql_num_rows($select);
//vemos se o número de registro é maior que zero
if($qtde > 0){
//pegamos os resultados
$aux = mysql_fetch_assoc($select);
//abrimos a sessão do usuario logado
session_start()
//criamos a sessão do usuário logado
$_SESSION['logado'] = $aux['login'];
$_SESSION['senha'] = $aux['senha'];
//redirecionamos para a página restrita
header ("Location: arearestrita.php");
exit();
}else{
//se não for maior que zero. gera o erro
$erro[] = 'Usuário não existe!';
}
}
}
}
//se existir o erro, mostramos ele na tela
if(isset($erro)){
echo 'Erro(s):<br>';
//como nosso erro está em vetor, exibimos todos os indices do vetor
foreach($erro as $mostraerro){
echo $mostraerro.'<br>';
}
}
//caso tente entrar na area restrita sem logar, receberemos a variavel get erro
if(isset($_GET['erro'])){
echo 'Erro(s):<br>';
echo $_GET['erro'];
}
?>
Observe que deixei os comentários dentro do próprio código. Agora vamos criar a página restrita. Abra um novo documento e salve-o como arearestrita.php. Digite o seguinte código:
<?
//abrimos novamente a sessao nesta página
session_start();
//se existir as sessões criadas na página index
if(isset($_SESSION['logado']) && isset($_SESSION['senha'])){
echo 'Seja bem vindo '.$_SESSION['logado'].'<br>';
}else{
header ("Location: index.php?erro=Faça o login");
exit();
}
?>
Agora é só cadastrar o usuário no banco de dados que criamos, e testar

[ leia mais ]