Arquivo da Categoria ‘PHP’

Função para Paginação PHP

Quarta-feira, 19 de Novembro, 2008

Agência O Positivo - www.opositivo.com

Hoje vou mostrar como montar uma paginação

PLAIN TEXT
PHP:
  1. function paginacao($items, $items_pagina, &$pagina_atual, &$pagina_total, &$pagina_anterior, &$pagina_proxima, &$indice_primeiro, &$indice_ultimo, &$items_total) {
  2.         if ((!$items) || (!is_array($items)))
  3.             return array();
  4.         $items_total = sizeof($items);
  5.         $pagina_total = ceil($items_total / $items_pagina);
  6.         if ((!$pagina_atual) || ($pagina_atual <1) || ($pagina_atual> $pagina_total)) {
  7.             $pagina_atual = 1;
  8.         }
  9.         $pagina_anterior = ($pagina_atual == 1 ? 0 : ($pagina_atual-1));
  10.         $pagina_proxima  = ($pagina_atual == $pagina_total ? 0 : ($pagina_atual+1));
  11.         $indice_primeiro = ((($pagina_atual - 1) * $items_pagina) + 1);
  12.         $indice_ultimo   = (($indice_primeiro + $items_pagina - 1)> $items_total ? $items_total : ($indice_primeiro + $items_pagina - 1));
  13.         return array_slice($items, $indice_primeiro - 1, $items_pagina, TRUE);
  14.     }

Para fazer esta function funcionar, basta ter os dados em uma array ex:

PLAIN TEXT
PHP:
  1. $conteudo[]=array('Nome' => 'O Positivo', 'site'=>'www.opositivo.com');
  2. $conteudo[]=array('Nome' => 'O Positivo', 'site'=>'www.opositivo.com');
  3. $conteudo[]=array('Nome' => 'O Positivo', 'site'=>'www.opositivo.com');
  4. $conteudo[]=array('Nome' => 'O Positivo', 'site'=>'www.opositivo.com');
  5. $conteudo[]=array('Nome' => 'O Positivo', 'site'=>'www.opositivo.com');
  6. $conteudo[]=array('Nome' => 'O Positivo', 'site'=>'www.opositivo.com');
  7. $conteudo[]=array('Nome' => 'O Positivo', 'site'=>'www.opositivo.com');
  8. $conteudo[]=array('Nome' => 'O Positivo', 'site'=>'www.opositivo.com');
  9. $conteudo[]=array('Nome' => 'O Positivo', 'site'=>'www.opositivo.com');
  10. $conteudo[]=array('Nome' => 'O Positivo', 'site'=>'www.opositivo.com');
  11. $conteudo[]=array('Nome' => 'O Positivo', 'site'=>'www.opositivo.com');

Agora vamos chamar a função paginacao

PLAIN TEXT
PHP:
  1. $items_pagina   =5;
  2. $pagina_atual   =addslashes($_REQUEST['p']);
  3. if(!$pagina_atual)
  4.     $pagina_atual = 1;
  5.  
  6. $resultado=paginacao($conteudo, $items_pagina, &$pagina_atual, &$pagina_total, &$pagina_anterior, &$pagina_proxima, &$indice_primeiro, &$indice_ultimo, &$items_total);

Pronto a função vai retornar a array e os dados da paginação

PLAIN TEXT
PHP:
  1. // imprimindo tudo que a função retorna, para você mostrar na tela
  2. echo "<li> Pagina Atual = ".$pagina_atual;
  3. echo "</li><li> Pagina Total = ".$pagina_total;
  4. echo "</li><li> Pagina Anterior = ".$pagina_anterior;
  5. echo "</li><li> Proxima Pagina = ".$pagina_proxima;
  6. echo "</li><li> Primeira Chave = ".$indice_primeiro;
  7. echo "</li><li> Ultima Chave= ".$indice_ultimo;
  8. echo "</li><li> Total de dados = ".$items_total;
  9. echo "<pre>";
  10.  
  11. // montar anteriores e proximas paginas
  12. if($items_total> 1){
  13.     $paginas .="PAGINAS:";
  14.     if($pagina_atual> 5) {
  15.         $inicio_paginacao=$pagina_atual-3;
  16.         $pagina_final=$pagina_atual+4;
  17.         if($pagina_final> $pagina_total)
  18.             $pagina_final=$pagina_total;
  19.         $paginas .=" ... | ";
  20.  
  21.     }else {
  22.         $inicio_paginacao=1;
  23.         $pagina_final=($pagina_total> 13 ? 13 : $pagina_total);
  24.     }
  25.    
  26.     for($i=$inicio_paginacao; $i <= $pagina_final; $i++){
  27.         if($pagina_atual==$i)
  28.             $paginas .="<a href='?p=$i'><font color=red><b>$i</b></font> | ";
  29.         else
  30.             $paginas .="<a href='?p=$i'>$i</a> | ";
  31.     }   
  32.     if($pagina_final <$pagina_total)
  33.         $paginas .=" ... ";
  34.     }
  35.  
  36. // mostrando o resultado agora basta você saber trabalhar eles
  37. echo $paginas;
  38. echo "<pre>";
  39. print_r($resultado);

Ta feito a brincadeira.
Agora é só colocar o layout e saber trabalhar a array

Link para testar: http://opositivo.selfip.com:9080/blog/paginacao.php

Ducca - Agência O Positivo | www.opositivo.com

Na categoria PHP | 1 Comentário »

Criando uma combo dinâmica “< Select >“

Sábado, 7 de Junho, 2008

O Positivo www.opositivo.com
Soluções Web

Boa noite garela!!!
Antes de dormir resolvi postar hehehehe.

Vamos criar uma function onde passamos uma array com as informações da combo "Select" e o item da combo selecionado.

PLAIN TEXT
PHP:
  1. function combo($array, $selecionado){
  2.     if(is_array($array)){//verificamos se a array existe
  3.         foreach($array as $cod => $valor){// vamos ler a array linha por linha
  4.            
  5.             $selected=($selecionado==$cod ? "SELECTED" : "");// aqui verifcamos se este item é igual o códiglo selecionado
  6.             $saida .="<option $selected value=\"$cod\">$valor</option>"; // montamos a saida da combo
  7.         }
  8.     }
  9. return $saida; // retornamos a saida
  10. }
  11.  
  12.    $array_meses = array
  13.    (
  14.       1 => 'Janeiro',
  15.       2 => 'Fevereiro',
  16.       3 => 'Março',
  17.       4 => 'Abril',
  18.       5 => 'Maio',
  19.       6 => 'Junho',
  20.       7 => 'Julho',
  21.       8 => 'Agosto',
  22.       9 => 'Setembro',
  23.       10 => 'Outubro',
  24.       11 => 'Novembro',
  25.       12 => 'Dezembro',
  26.    );
  27.  
  28.  
  29. $combo_meses=combo($array_meses, 5);
  30. echo "<select name=\"mes\">". $combo_meses ."</select>";
  31.  
  32.    $array_sexo = array
  33.    (
  34.       '0' => '-- sexo --',
  35.       'M' => 'Masculino',
  36.       'F' => 'Feminino',
  37.    );
  38.  
  39. $combo_sexo=combo($array_sexo, "M");
  40. echo "<select name=\"sexo\">". $combo_sexo ."</select>";

Para montar sempre combo simples e mais rápida basta colocar o código < select > dentro da function. O problema é que você perde o poder de colocar eventos dentro do select como onChange etc...

PLAIN TEXT
PHP:
  1. function comboCompleta($array, $selecionado, $nome_select){
  2.     if(is_array($array)){//verificamos se a array existe
  3.         $saida ="<select name=\"". $nome_select ."\">";
  4.         foreach($array as $cod => $valor){// vamos ler a array linha por linha
  5.            
  6.             $selected=($selecionado==$cod ? "SELECTED" : "");// aqui verifcamos se este item é igual o códiglo selecionado
  7.             $saida .="<option $selected value=\"$cod\">$valor</option>"; // montamos a saida da combo
  8.         }
  9.         $saida .="</select>";
  10.     }
  11. return $saida; // retornamos a saida
  12. }
  13.  
  14.    $array_sexo = array
  15.    (
  16.       '0' => '-- sexo --',
  17.       'M' => 'Masculino',
  18.       'F' => 'Feminino',
  19.    );
  20.  
  21. $combo_sexo=comboCompleta($array_sexo, "M", "Sexo");
  22. echo $combo_sexo;

Agora é só inventar na function do combo.

isso ajuda muito ...

até mais

Ducca

Na categoria PHP | 1 Comentário »

Função para validar CEP

Quinta-feira, 5 de Junho, 2008

Agência Opositivo www.opositivo.com

Hoje vou explicar como montar uma função para validar CEP ele retorna 0 se der erro e 1 se for verdadeiro.

PLAIN TEXT
PHP:
  1. function valida_cep($CEP)
  2. {
  3. for ($i=1; $i&lt;=strlen($CEP); $i++) // srtlen retorna o tamanho da string
  4. {
  5. $ch = substr($CEP,$i-1,1); // substr retorna uma parte da string
  6. if (ord($ch)&gt;=48 &amp;&amp; ord($ch)&lt;=57)// ord retorna o valor ASCII do caractere , para saber mais entre em http://www.asciitable.com/
  7. $tmp.=$ch;
  8. }
  9. $CEP=$tmp;
  10.  
  11. if (strlen($CEP)!=8) // verificando o tamanho do $CEP
  12. return(0);
  13.  
  14. return (1);
  15. }

conforme post anteriores expliquei sobre salvar todas as funções em um único arquivo, aproveite para colocar mais esta.

abç

Ducca

Etiquetas:validando cep
Na categoria PHP | Sem Comentários »

Comparando datas no formato Brasileiro

Quinta-feira, 5 de Junho, 2008

A agencia Opositivo desenvolve sistemas web tais como Intranet, Extranet, site etc... saiba mais visitando o site www.opositivo.com

Para quem tem dúvidas na hora de comparar datas, querendo saber qual das duas datas é maior etc.. Estou publicando uma function que te retorna se a data é igual maior ou menor.

PLAIN TEXT
PHP:
  1. // esta function Pega a data "AAA/MM/DD" e transforma em "DD/MM/AAAA"
  2. function BrazilianDate($data)
  3.    {
  4.       // 1985-01-23 => 23/01/1985
  5.       $pecas = split('[-/]', $data);
  6.       if ($pecas[2]> 31)
  7.          return($pecas[0]."/".$pecas[1]."/".$pecas[2]);
  8.       return($pecas[2]."/".$pecas[1]."/".$pecas[0]);
  9.    }
  10.  
  11.    // date_explode ( $data )
  12.    // quebra os elementos de uma data no formato brasileiro
  13.    // basta passar o valor da data no formato Americano "AAA/MM/DD"
  14.    function brazilian_date_explode($data)
  15.    {
  16.       # 01/01/2002
  17.       $pecas = split('[-/]', brazilianDate($data));
  18.       $saida = array
  19.       (
  20.          'dia' => $pecas[0],
  21.          'mes' => $pecas[1],
  22.          'ano' => $pecas[2],
  23.       );
  24.       return($saida);
  25.    }
  26.  
  27.    
  28. // Compara duas datas no formato brasileiro
  29.    // Retorna 2 se as datas forem iguais, 1 se a data1 for maior que a data2 e
  30.    // 0 se a data2 for maior que a data1
  31.    function brazilian_date_compare($xdata1, $xdata2)
  32.    {
  33.       $data1 = brazilian_date_explode($xdata1);
  34.       $data2 = brazilian_date_explode($xdata2);
  35.       $timestamp1 = gmmktime(0,0,0,$data1['mes'],$data1['dia'],$data1['ano']);
  36.       $timestamp2 = gmmktime(0,0,0,$data2['mes'],$data2['dia'],$data2['ano']);
  37.       if ($timestamp1 == $timestamp2)
  38.          return(2);
  39.       $r = (($timestamp1> $timestamp2) ? 1 : 0);
  40.       return($r);
  41.    }
  42.    
  43.    $saida =brazilian_date_compare("12/05/2008", "12/05/2008");
  44. echo $saida; // retorna 2 pois as datas são iguais
  45.  
  46.    $saida =brazilian_date_compare("12/05/2008", "11/05/2008");
  47. echo $saida; // retorna 1 pois primeira data é menor que a segunda data
  48.  
  49.    $saida =brazilian_date_compare("11/05/2008", "12/05/2008");
  50. echo $saida; // retorna 0 pois primeira data é maior que a segunda data

Resumo
A primeira function chamada BrazilianDate tem o objetivo de pegar a Data no formato Americano e convertar para Formato Brasileiro

A segunda function chamada brazilian_date_explode recebe a data no formato Americando ou Brasileiro e quebra em array separado por Dia, Mês e Ano

A terceira function chama brazilian_date_compare que o objetivo é comparar as datas que foram passadas

Organização
Eu recomendo que crie uma pagina chamada "strings.php" e jogue todas as funções criadas, assim na hora de programar é so incluir esta página no topo do arquivo.

PLAIN TEXT
PHP:
  1. require_once('strings.php');

Até mais

Ducca

Etiquetas:Comparando datas
Na categoria PHP | Sem Comentários »

Comparando Datas no fomato Americano

Quinta-feira, 5 de Junho, 2008

A agencia Opositivo desenvolve sistemas web tais como Intranet, Extranet, saiba mais visitando o site www.opositivo.com

Para quem tem dúvidas na hora de comparar datas, querendo saber qual das duas datas é maior etc.. Estou publicando uma function que te retorna se a data é igual maior ou menor.

PLAIN TEXT
PHP:
  1. function americanDate($data)// pega a data no formato Brasileiro e transforma em formato Americano
  2. {
  3. // 23/01/1985 =&gt; 1985-01-23
  4. $pecas = split('[-/]', $data);
  5. if ($pecas[0]&gt; 31) // verifica se a data está no formato Brasileiro
  6. return($data);
  7. return($pecas[2]."-".$pecas[1]."-".$pecas[0]);
  8. }
  9.  
  10. // date_explode ( $data )
  11. // quebra os elementos de uma data no formato americano
  12. function date_explode($data)
  13. {
  14. # 2002-02-02
  15. $pecas = split('[-/]', americanDate($data));
  16. $saida = array
  17. (
  18. 'dia' =&gt; $pecas[2],
  19. 'mes' =&gt; $pecas[1],
  20. 'ano' =&gt; $pecas[0],
  21. );
  22. return($saida);
  23. }
  24.  
  25. // Compara duas datas no formato americano
  26. // Retorna 2 se as datas forem iguais, 1 se a data1 for maior que a data2 e
  27. // 0 se a data2 for maior que a data1
  28. function date_compare($xdata1, $xdata2)
  29. {
  30. //      echo "data1=($xdata1), data2=($xdata2)
  31. ";
  32. $data1 = date_explode($xdata1);
  33. $data2 = date_explode($xdata2);
  34. $timestamp1 = gmmktime(0,0,0,$data1['mes'],$data1['dia'],$data1['ano']);
  35. $timestamp2 = gmmktime(0,0,0,$data2['mes'],$data2['dia'],$data2['ano']);
  36. if ($timestamp1 == $timestamp2)
  37. return(2);
  38. $r = (($timestamp1&gt; $timestamp2) ? 1 : 0);
  39. return($r);
  40. }
  41. $saida =date_compare("2008/05/12", "2008/05/12");
  42. echo $saida; // retorna 2 pois as datas são iguais
  43. $saida =date_compare("2008/05/12", "2008/05/11");
  44. echo $saida; // retorna 1 pois primeira data for maior que a segunda data
  45. $saida =date_compare("2008/05/11", "2008/05/12");
  46. echo $saida; // retorna 0 pois primeira data é menor que a segunda data

Resumo
A primeira function chamada americanDate tem o objetivo de pegar a Data no formato Brazileiro ou Americano e convertar para o formato Americano. O legal desta função é que você pode jogar um dos dois formatos de data (Brasileiro ou Americando) que ela te retorna o formato Americano.

A segunda function chamada date_explode recebe a data no formato Americando ou Brasileiro e quebra em array separado por Dia, Mês e Ano

A terceira function chama date_compare que o objetivo é comparar as datas que foram passadas no formato Americano e retorna 2 se as datas forem iguais, 1 se a data1 for maior que a data2 e 0 se a data2 for maior que a data1

Organização
Eu recomendo que crie uma pagina chamada "strings.php" e jogue todas as funções criadas, assim na hora de programar é so incluir esta página no topo do arquivo.

PLAIN TEXT
PHP:
  1. require_once('strings.php');

espero ter ajudado a galera que tem dúvidas com data.

No próximo post vou escrever sobre o mesmo tópico mas para as datas no formato Brasileiro.

Até mais

Ducca

Etiquetas:Comparando datas
Na categoria PHP | Sem Comentários »

Criando função para enviar E-mail

Quarta-feira, 28 de Maio, 2008

Boa noite galera, este é o meu primeiro tópico então vou me apresentar. Meu nome é Thiago Ducca mas sou conhecido como "Ducca", tenho 23 anos e trabalho na O+. Tenho um grande conhecimento na área Web e vou tentar passar um pouco desta experiência para vocês.
Hoje vou mostrar como criar uma função para enviar e-mail, muito simples porém muito utilizada no dia a dia.

1º etapa: vamos criar a página de contato chamada “contato.php”
Estou criando uma página simples sem estilo só para demonstrar como funciona a função de enviar email.

PLAIN TEXT
HTML:
  1. HTML:
  2. <form id=”contato”>
  3.     Nome:<input type="text" id="formulario[Nome]" name="formulario[Nome]" />
  4.     E-mail:<input type="text" id="formulario[E-mail]" name="formulario[E-mail]" />
  5.     Telefone:<input type="text" id="formulario[telefone]" name="formulario[telefone]" />
  6.     Assunto:<input type="text" id="formulario[Assunto]" name="formulario[Assunto]" />
  7.     Mensagem: <textarea id="formulario[Mensagem]" name="formulario[Mensagem]" cols="40" rows="5">
  8. </textarea></form>

Podemos observar que em todos os campos do formulário eu coloquei o name=”formulario[NOME DO CAMPO]”. Desta forma os valores serão enviados dentro de uma Array().

2º etapa: vamos criar a função de enviar o e-mail.

PLAIN TEXT
PHP:
  1. function enviar_email($array, $tituloEmail, $email){
  2. if(is_array($array)){ // verificando se existe uma array
  3.         foreach($array as $titulo => $valor){ // criamos o foreach para ler linha por linha da array e mostrando seus valores na variável $formulario
  4.             $formulario .=$titulo .":". $valor ."<br />";
  5.         }
  6.         // criamos os headers para poder enviar o email em HTML
  7.         $headers  = "MIME-Version: 1.0\n";
  8.         $headers  .= "Content-Type: text/HTML\n";
  9.         $headers  .= "From: Contato site \n";
  10.         $subject =$tituloEmail;
  11.         // esta variável monta o layout do e-mail então fique livre para desenvolver o HTML
  12.         $mensagemEmail="
  13.          <html>
  14.                          <head>
  15.                 </head>
  16.                 <body>
  17.                     ". $formulario ."
  18.                 </body>
  19.             </html>
  20.         ";
  21.         $r = mail($email, $subject, $mensagemEmail, $headers); // aqui vamos enviar o email e retornar o resultado na variável de $saida
  22.         if($r)
  23.             $saida="mensagem enviada com sucesso";
  24.         else
  25.             $saida="mensagem não enviada";
  26.     } else
  27.         $saida="mensagem não enviada";
  28. return $saida;// retornamos o resultado
  29. }

Agora, para finalizar, vamos montar um if verificando se o botão foi apertado e depois chamar a function.

PLAIN TEXT
PHP:
  1. if(isset($_REQUEST['enviar'])) {
  2.     $enviar=enviar_email($_REQUEST['formulario'], "E-mail de Contato", "meuemail@dominio.com.br");
  3.     echo $enviar;
  4. }

Para Finalizar vamos mostrar o código completo

PLAIN TEXT
PHP:
  1. if(is_array($array)){ // verificando se existe uma array
  2.         foreach($array as $titulo => $valor){ // criamos o foreach para ler linha por linha da array e mostrando seus valores na variável $formulario
  3.             $formulario .=$titulo .":". $valor ."<br />";
  4.         }
  5.         // criamos os headers para poder enviar o email em HTML
  6.         $headers  = "MIME-Version: 1.0\n";
  7.         $headers  .= "Content-Type: text/HTML\n";
  8.         $headers  .= "From: Contato site \n";
  9.         $subject =$tituloEmail;
  10.         // esta variável monta o layout do e-mail então fique livre para desenvolver o HTML
  11.         $mensagemEmail="
  12.          <html>
  13.                          <head>
  14.                 </head>
  15.                 <body>
  16.                     ". $formulario ."
  17.                 </body>
  18.             </html>
  19.         ";
  20.         $r = mail($email, $subject, $mensagemEmail, $headers); // aqui vamos enviar o email e retornar o resultado na variável de $saida
  21.         if($r)
  22.             $saida="mensagem enviada com sucesso";
  23.         else
  24.             $saida="mensagem não enviada";
  25.     } else
  26.         $saida="mensagem não enviada";
  27. return $saida;// retornamos o resultado
  28. }
  29.  
  30. if(isset($_REQUEST['enviar'])) {
  31.     $enviar=enviar_email($_REQUEST['formulario'], "E-mail de Contato", "meuemail@dominio.com.br");
  32.     echo $enviar;
  33. }

HTML

PLAIN TEXT
HTML:
  1. <form id=”contato”>
  2.     Nome:<input type="text" id="formulario[Nome]" name="formulario[Nome]" />
  3.     E-mail:<input type="text" id="formulario[E-mail]" name="formulario[E-mail]" />
  4.     Telefone:<input type="text" id="formulario[telefone]" name="formulario[telefone]" />
  5.     Assunto:<input type="text" id="formulario[Assunto]" name="formulario[Assunto]" />
  6.     Mensagem: <textarea id="formulario[Mensagem]" name="formulario[Mensagem]" cols="40" rows="5"></textarea>
  7.     </form>

Agora é so enviar os e-mails...

Ducca

Na categoria PHP | 4 Comentários »

  • Categorias

    • C# (1)
    • CAPA (13)
    • Design (2)
    • Fotografia (3)
    • HTML (2)
    • Links positivos (9)
    • PHP (6)
    • Sem categoria (2)
    • Sharepoint (3)
    • SQL (1)
    • VBA (1)
    • Visual basic (1)
  • Posts Recentes

    • Tabela Tipográfica
    • Design de logos 2009
    • Função para Paginação PHP
    • Color Blender
    • Pulseira USB
  • Páginas

    • Acerca

O + criado com WordPress
RSS Artigos e RSS Comentários.