Todo o conteúdo do blog é para aprendizado e de uso livre.

segunda-feira, 19 de dezembro de 2011

gettype("teste");

Aqui vai um tipo de variável:

echo
gettype("webARTz");


sexta-feira, 4 de novembro de 2011

timezone data

date_default_timezone_set('America/Sao_Paulo');

php set timezone


pega a extensão do arquivo anexo

function extensao($arquivo){

$pedaco = explode(".", $arquivo);
$tam = strlen($pedaco[1]);

switch ($tam){

case 3:
$extensao = substr($arquivo,-3);
break;
case 4:
$extensao = substr($arquivo,-4);
break;
case 5:
$extensao = substr($arquivo,-5);
break;
default:
$extensao = NULL;

}

return $extensao;

}

segunda-feira, 31 de outubro de 2011

cache de cookie e session

Definir o tempo de cache antes do session_start();


/* Define o limitador de cache para 'private' */
session_cache_limiter('private');
$cache_limiter = session_cache_limiter();

/* Define o limite de tempo do cache em 540 minutos */
session_cache_expire(540);
$cache_expire = session_cache_expire();

/* Inicia a sessão */
// session_start();
// echo "O limitador de cache esta definido agora como $cache_limiter
";
// echo "As sessões em cache irão expirar em $cache_expire minutos";


segunda-feira, 26 de setembro de 2011

html form input

title="(11) 5555-5555" placeholder="(11) 5555-5555" autofocus="autofocus" tabindex="1"

title -> serve para deixar escrito um exemplo no formulário

placeholder -> serve para deixar escrito um exemplo no formulário

autofocus -> serve para assim que carregar a página, deixar o foco no primeiro campo

tabindex -> serve para usar como guia para usar TAB

quarta-feira, 21 de setembro de 2011

quinta-feira, 25 de agosto de 2011

quarta-feira, 27 de julho de 2011

gerar log

error_log("erro no log", 3, "logs.php");

gera o log no arquivo logs.php.


quinta-feira, 7 de abril de 2011

evitar erros MySQL

$query = mysql_query(" SELECT * FROM tabela WHERE `tipo` LIKE '".$tipo."' ") or die(mysql_error()) ;

muito importante usar or die(mysql_error()) ;

sexta-feira, 4 de março de 2011

fonte boa para programar

http://www.ms-studio.com/FontSales/anonymouspro.html

terça-feira, 1 de março de 2011

include ou include_once

A única diferença de include ou include_once é a seguinte.

Se eu der o include de 1 header.php na página...
e logo depois der outro vez include no header.php
O PHP vai dar erro de 2 header definidos.

Ou então, se eu pego a variável $hora_atual no include hora.php. E num outro include no rodapé, sem querer, faço o include hora.php. a hora vai mudar.


Se eu usar o include_once() ele ignora se a página já foi chamada anteriormente.

quinta-feira, 28 de outubro de 2010

segurança php

no inicio do código colocar:

se o arquivo atual é igual a "config.php" continua a ler o código, senão mostra tela de erro.



if (basename($_SERVER["PHP_SELF"]) == "config.php")
header ("location: index.php");

segunda-feira, 27 de setembro de 2010

link

http://www.aprenderphp.com.br/artigo/conversao-de-tipos-de-dados-no-php

domingo, 26 de setembro de 2010

email

http://www.w3schools.com/php/php_secure_mail.asp

include

<?php include("menu.php"); ?>

função simples

<?php

function writeName($fname)

{

echo $fname . " Refsnes.<br />";

}



echo "My name is ";

writeName("Kai Jim");

echo "My sister's name is ";

writeName("Hege");

echo "My brother's name is ";

writeName("Stale");

?>

for loop

<?php

for ($i=1; $i<=5; $i++)

{

echo "The number is " . $i . "<br />";

}

?>

while

<?php

$i=1;

while($i<=5)

{

echo "The number is " . $i . "<br />";

$i++;

}

?>



<?php

$i=1;

do

{

$i++;

echo "The number is " . $i . "<br />";

}

while ($i<=5);

?>

quinta-feira, 23 de setembro de 2010

cakephp

eee

cakephp

Consegui rodar o primeiro script em cakephp.

O que eu fiz:
Instalei o cakephp pelo modo simples, copiei e colei.
Configurei o banco de dados.
Dei permissão as pastas.

Mudei os arquivos:
app/config/database.php
app/controllers/pagina.php
app/models/pagina.php
app/views/pagina/pagina/index.ctp

sexta-feira, 20 de agosto de 2010

relembrar e aplicar os que não deu

para relembrar

e fazer os que não foi feito antes por não saber como completar.


visitar do 0 os scripts de sites e fóruns de php.

quinta-feira, 5 de agosto de 2010

o mínimo do código php

<?php // topo ; ?>
<?php //require ; ?>
<?php // busca templates ; ?>
<?php // conexão ?>
<?php // busca ?>
<?php // mostra ?>
<?php // limpa temporarios ?>
<?php // fecha conexão ?>
<?php // redireciona ?>

quarta-feira, 28 de julho de 2010

redirecionamento com tempo

<?php
function redirecionar($url, $tempo)
{
$url = str_replace('&amp;', '&', $url);

if($tempo > 0)
{
header("Refresh: $tempo; URL=$url");
}
else
{
@ob_flush();
@ob_end_clean();
header("Location: $url");
exit;
}
}
?>


Para usar é só seguir o exemplo:

<?php

redirecionar('login.php'); // Redireciona imediatamente
redirecionar('login.php', 10); // Redireciona depois de 10 seg
?>

sexta-feira, 2 de julho de 2010

oscommerce template

Como mudar o template oscommerce

- substituir todos arquivos e pastas
- entrar na pasta instalar e seguir os passos

http://info.macross.com.br/oscommerce/tutorial-alterando-o-template-do-oscommerce/

quarta-feira, 30 de junho de 2010

site com dicas para desenvolvedor uolhost

http://blog.uolhost.com.br/category/desenvolvedores/

quinta-feira, 24 de junho de 2010

css dicas

para adicionar em todas as páginas de 1 vez:


body {
padding:0;
margin:0;
background:url(images/bg.jpg) 0 0 repeat-x #1C1C1C}


body, td, input, textarea{

font:normal 11px Tahoma, Arial;

color:#636363;

line-height:14px;

vertical-align:top;

padding:0px;

}

select {
font:normal 10px Tahoma, Arial;
vertical-align:middle}

img {border:0px;}

quarta-feira, 23 de junho de 2010

código php velho antigo obsoleto

obsoleto em php


em vez de usar:
if (session_is_registered('login')) {

é melhor usar:
if (isset($_SESSION['login'])) {

terça-feira, 22 de junho de 2010

msn dentro do site online

para colocar o msn dentro do site:
http://settings.messenger.live.com/applications/WebSettings.aspx


para entrar com o e-mail da empresa no msn:
https://accountservices.passport.net/reg.srf?fid=RegCredOnlyEASI&ru=https://accountservices.passport.net/ppnetworkhome.srf%3Fvv%3D450%26lc%3D1046&cru=https://accountservices.passport.net/ppnetworkhome.srf%3fvv%3d450%26lc%3d1046&sl=1&vv=800&mkt=PT-BR&lc=1046

quinta-feira, 10 de junho de 2010

data no php

http://blog.hboaventura.com/php-usando-a-classe-datetime-para-manipular-datas/

resume texto - limita caractete - sem cortar palavra - resumo

<?php

function limitaCaracteres($texto, $limite) {



$texto = strip_tags($texto);

$trecho = substr($texto, 0, $limite);



if (strlen($trecho) < strlen($texto)) {

$trecho = substr($trecho, 0, strrpos($trecho, " ") + 1) . " ...";

}



return $trecho;

}

?>

<?php

echo limitaCaracteres("O texto tem limite de caracteres e não corta a palavra no meio teste. teste",64 );

?>

php mail

http://www.tutordanet.com/enviando-e-mails-com-php-com-o-phpmailer/

contar quantos caracteres tem string

<?php

$numCaracteres = strlen("Frase de exemplo");

echo $numCaracteres;

?>

contar quantos caracteres tem string

<?php

$aString = str_split("Aqui vai a frase inteira");

$numCaracteres = count($aString);

echo $numCaracteres;

?>

upload

form.html
<form id="form" name="form" method="post" action="upload.php.php" enctype="multipart/form-data">

<table width="402" border="0" align="center" cellpadding="0" cellspacing="0" class="texto12">

<tr>

<td align="left">Foto:</td>

</tr>

<tr>

<td align="left"><input name="arquivo" type="file" class="texto12" id="arquivo" size="50" /></td>

</tr>


<tr>

<td align="center"><input name="Submit" type="submit" class="texto12" value="Cadastrar pe&ccedil;a" /></td>

</tr>

</table>

</form>


config.php

<?php

$limitar_ext = "sim" ; // sim ou nao

$extensoes_validas = array(".jpg", ".jpeg") ;

$caminho_absoluto = "G:\InetPub\site\www\empresa\produtos" ; // as barras são invertidas mesmo \

$limitar_tamanho = "sim" ; // sim ou nao

$tamanho_bytes = "20000000000000" ; // 3 megas

$sobrescrever = "sim" ; // sim ou nao

?>





upload.php

<?php

require("config.php") ;
$nome_arquivo = $_FILES['arquivo']['name'] ;
$tamanho_arquivo = $_FILES['arquivo']['size'] ;
$arquivo_temporario = $_FILES['arquivo']['tmp_name'] ;
/*
echo "$nome_arquivo";
echo "
";
echo "$tamanho_arquivo";
echo "
";
echo "$arquivo_temporario";
echo "
";
echo "$limitar_ext";
*/

if (!empty($nome_arquivo))
{
if ($sobrescrever == "nao" && file_exists("$camiho_absoluto/$nome_arquivo"))
die("Arquivo já existe.");
if (($limitar_tamanho == "sim") && ($tamanho_arquivo > $tamanho_bytes))
die("Arquivo deve ter no máximo 3 megas.");
$ext = strrchr($nome_arquivo,'.');
if ($limitar_ext == "sim" && !in_array($ext,$extensoes_validas))
die("A foto tem que ser JPG.");
if(move_uploaded_file($arquivo_temporario, "$caminho_absoluto/$nome_arquivo"))
{
echo "O upload do arquivo ".$nome_arquivo." foi concluído com sucesso - foto: ".$foto1."";
}
else
echo "Erro";
}
else
die("selecione");
?>


terça-feira, 8 de junho de 2010

recupera senha com ****

revelation v2

substr php

<?php

$rest = substr("abcdef", -1); // retorna "f"

$rest = substr("abcdef", -2); // retorna "ef"

$rest = substr("abcdef", -3, 1); // retorna "d"

?>

upload e funções array php

http://www.htmlstaff.org/ver.php?id=4334

segunda-feira, 7 de junho de 2010

desfragmentador

http://www.infologico.com/2010/01/os-melhores-desfragmentadores-de-disco.html

instalando wampserver

www.wampserver.com


para instalar, basta colocar a mesma senha nesses 2 lugares:


wamp/app/phpmyadmin/config.inc.php
na linha 16
$cfg['Servers'][$i]['password'] = 'senha';


e no phpmyadmin
clicar em privilégios
mudar a senha do usuário root para a mesma que usou no config.inc.php

domingo, 30 de maio de 2010

teste

Testando o post com adobe contribute cs5

.

quarta-feira, 26 de maio de 2010

select sql

Para enviar ou excluir mais de um registro de uma vez só com array é só usar o in ().

DELETE FROM `tabela` WHERE `id` IN (7,9,15)
testar mais exemplos depois

.

.

sexta-feira, 21 de maio de 2010

link para wiki livros

http://pt.wikibooks.org/w/index.php?title=Especial:Pesquisar&search=web&go=Ir

quinta-feira, 20 de maio de 2010

css dicas simples

http://revolucao.etc.br/archives/as-dicas-de-css-que-voce-nao-deve-deixar-de-saber/

ver depois com calma

http://www.digitalminds.com.br/tags/zenoop




pdo php

facilita na hora de migrar o banco de dados

http://www.digitalminds.com.br/blog/posts/3478






sql pelo dreamweaver com acentos br

sql pelo dreamweaver com acentos br

usar latin 2

quarta-feira, 19 de maio de 2010

proteção php

<?php
$pages = array(
'index.html',
'page2.html',
'page3.html'
);

if (in_array($page, $pages)) {
include($page);
} else {
die("Boa tentativa.");
}
?>

Essa proteção serve para não incluir arquivo via get




mensagem de erro

error_function.php

<?php

function error_function($var, $tipo)
{
$width = 400; /* comprimento em pixels do box de erro */
$font_size = 12; /* tamanho da fonte do box de erro */
$borda = 2; /* grossura da borda do box de erro */
$corError = '#FEEAE2'; /* cor [alerta] da mensagem do box de erro */
$corOk = '#E1F0FF'; /* cor [sucesso] da mensagem do box de erro */
$font_family = 'Verdana, Arial'; /* tipo da fonte do box de erro */

/* A variável $estilo concatena as strings de estilo css com as variáveis informadas */
$estilo .='
<style type="text/css">
.erro_style_0 {
font-family: '.$font_family.';
font-size: '.$font_size.'px;
font-weight: bolder;
color: #000000;
background-color: '.$corError.';
border: '.$borda.'px dotted #CC0000;
padding:10px;
display:block;
width: '.$width.'px;
}
.erro_style_1 {
font-family: '.$font_family.';
font-size: '.$font_size.'px;
font-weight: bolder;
color: #000000;
background-color: '.$corOk.';
border: '.$borda.'px dotted #0000CC;
padding:10px;
display:block;
width: '.$width.'px;
}
</style>';

/* A variável $estilo concatena as strings de estilo css com as variáveis informadas */
$estilo .= '<span class="erro_style_'.$tipo.'">';
$estilo .= $var;
$estilo .= '</span>';
/* imprime a variável com a formatação do erro informado */
echo $estilo;
}

?>






BD_errors.php
<?php

/* variaveis com as frases de erro */
$ERROR_SENHA1 = "Erro! Preencha o Campo Senha...";
$ERROR_SENHA2 = "Erro! O Campo Senha deve ter no mínimo 4 caracteres...";
$ERROR_SENHA3 = "Erro! O Campo Senha deve ter no máximo 8 caracteres...";

$ERROR_LOGIN1 = "Erro! Preencha o Campo Login...";

$ERROR_LOGIN_E_SENHA = "Erro! Preencha os Campos Login & Senha...";

$MSG_SUCESSO1 = "OK! Validação Realizada com Sucesso!";

?>






index.php
<?php

/* Inclusão do arquivo responsável pela função */
include "error_function.php";
/* Inclusão da biblioteca de variaveis de erro */
include "BD_errors.php";

/* Simule aqui se a entrada de dados e veja como funciona! */
$login = "admin"; /* altere esse valor para vazio pra testar */
$senha = "1234"; /* altere esse valor para vazio, 3 ou 9 digitos pra testar*/

if (empty($senha) && empty($login)) {
/* verifica se os campos senha E login estão vazios - em caso afirmativo retorna o erro */
error_function($ERROR_LOGIN_E_SENHA,0);

} elseif (empty($senha)) {
/* verifica se o campo senha esta vazio - em caso afirmativo retorna o erro */
error_function($ERROR_SENHA1,0);

} elseif (strlen($senha) < 4) {
/* verifica se o campo senha é menor que 4 - em caso afirmativo retorna o erro */
error_function($ERROR_SENHA2,0);

} elseif (strlen($senha) > 8) {
/* verifica se o campo senha é maior 8 - em caso afirmativo retorna o erro */
error_function($ERROR_SENHA3,0);

} elseif (empty($login)) {
/* verifica se o campo login esta vazio - em caso afirmativo retorna o erro */
error_function($ERROR_LOGIN1,0);

} else {
error_function($MSG_SUCESSO1,1);
}

?>






fonte: http://www.phpbrasil.com/artigo/OqY8UDpXDr_/padronizando-mensagens-de-erro

data no php

<?php

$hoje = date("d/m/Y"); // Pego a Data de Hoje no formato brasileiro.
$vencimento = $hoje; // Seto $vencimento como $hoje para adicionar 15 dias na linha abaixo.
$data = explode("/", $vencimento); // Divido a data pela '/' para colocar na função mktime.
$expira = date("d/m/Y", mktime(0, 0, 0, $data[1], $data[0]+15, $data[2])); // Adiciono 15 dias para data de expiração


echo "Hoje &eacute; dia: ";
echo $hoje."<br>"; // Mostro na Tela a data de de hoje.
echo "<br>";
echo "+ 15 dias = ";
echo "<br>";
echo "<br>";
echo $expira; // Mostro na Tela a data de expiração com acréscimo de 15 dias.
?>

Hoje é dia: 20/05/2010

+ 15 dias =

04/06/2010





terça-feira, 18 de maio de 2010

Meta Tags

Tag Name
Example(s)
Description

Author
<META NAME="AUTHOR" CONTENT="Tex Texin">
The author's name.


cache-control
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
HTTP 1.1. Allowed values = PUBLIC | PRIVATE | NO-CACHE | NO-STORE.
Public - may be cached in public shared caches
Private - may only be cached in private cache
no-Cache - may not be cached
no-Store - may be cached but not archived
The directive CACHE-CONTROL:NO-CACHE indicates cached information should not be used and instead requests should be forwarded to the origin server. This directive has the same semantics as the PRAGMA:NO-CACHE.

Clients SHOULD include both PRAGMA:NO-CACHE and CACHE-CONTROL:NO-CACHE when a no-cache request is sent to a server not known to be HTTP/1.1 compliant.

Also see EXPIRES.
Note: It may be better to specify cache commands in HTTP than in META statements, where they can influence more than the browser, but proxies and other intermediaries that may cache information.



Content-Language
<META HTTP-EQUIV="CONTENT-LANGUAGE" CONTENT="en-US,fr">
Declares the primary natural language(s) of the document. May be used by search engines to categorize by language.


CONTENT-TYPE
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=UTF-8">
The HTTP content type may be extended to give the character set. It is recommended to always use this tag and to specify the charset.


Copyright
<META NAME="COPYRIGHT" CONTENT="&copy; 2004 Tex Texin">
A copyright statement.


DESCRIPTION
<META NAME="DESCRIPTION" CONTENT="...summary of web page...">
The text can be used when printing a summary of the document. The text should not contain any formatting information. Used by some search engines to describe your document. Particularly important if your document has very little text, is a frameset, or has extensive scripts at the top.


EXPIRES
<META HTTP-EQUIV="EXPIRES" CONTENT="Mon, 22 Jul 2002 11:12:01 GMT">
The date and time after which the document should be considered expired. An illegal EXPIRES date, e.g. "0", is interpreted as "now". Setting EXPIRES to 0 may thus be used to force a modification check at each visit.
Web robots may delete expired documents from a search engine, or schedule a revisit.
HTTP 1.1 (RFC 2068) specifies that all HTTP date/time stamps MUST be generated in Greenwich Mean Time (GMT) and in RFC 1123 format.
RFC 1123 format = wkday "," SP date SP time SP "GMT"


wkday = (Mon, Tue, Wed, Thu, Fri, Sat, Sun)
date = 2DIGIT SP month SP 4DIGIT ; day month year (e.g., 02 Jun 1982)
time = 2DIGIT ":" 2DIGIT ":" 2DIGIT ; 00:00:00 - 23:59:59
month = (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec)


Keywords
<META NAME="KEYWORDS" CONTENT="sex, drugs, rock & roll">
The keywords are used by some search engines to index your document in addition to words from the title and document body. Typically used for synonyms and alternates of title words. Consider adding frequent misspellings. e.g. heirarchy, hierarchy.


PRAGMA NO-CACHE
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
This directive indicates cached information should not be used and instead requests should be forwarded to the origin server. This directive has the same semantics as the CACHE-CONTROL:NO-CACHE directive and is provided for backwards compatibility with HTTP/1.0.
Clients SHOULD include both PRAGMA:NO-CACHE and CACHE-CONTROL:NO-CACHE when a no-cache request is sent to a server not known to be HTTP/1.1 compliant.
HTTP/1.1 clients SHOULD NOT send the PRAGMA request-header. HTTP/1.1 caches SHOULD treat "PRAGMA:NO-CACHE" as if the client had sent "CACHE-CONTROL:NO-CACHE".
Also see EXPIRES.



Refresh
<META HTTP-EQUIV="REFRESH" CONTENT="15;URL=http://www.I18nGuy.com/index.html">
Specifies a delay in seconds before the browser automatically reloads the document. Optionally, specifies an alternative URL to load, making this command useful for redirecting browsers to other pages.


ROBOTS
<META NAME="ROBOTS" CONTENT="ALL">
<META NAME="ROBOTS" CONTENT="INDEX,NOFOLLOW">
<META NAME="ROBOTS" CONTENT="NOINDEX,FOLLOW">
<META NAME="ROBOTS" CONTENT="NONE">

CONTENT="ALL | NONE | NOINDEX | INDEX| NOFOLLOW | FOLLOW | NOARCHIVE"
default = empty = "ALL"
"NONE" = "NOINDEX, NOFOLLOW"
The CONTENT field is a comma separated list:
INDEX: search engine robots should include this page.
FOLLOW: robots should follow links from this page to other pages.
NOINDEX: links can be explored, although the page is not indexed.
NOFOLLOW: the page can be indexed, but no links are explored.
NONE: robots can ignore the page.
NOARCHIVE: Google uses this to prevent archiving of the page. See http://www.google.com/bot.html


GOOGLEBOT
<META NAME="GOOGLEBOT" CONTENT="NOARCHIVE">
In addition to the ROBOTS META Command above, Google supports a GOOGLEBOT command. With it, you can tell Google that you do not want the page archived, but allow other search engines to do so. If you specify this command, Google will not save the page and the page will be unavailable via its cache.
See Google's FAQ.






css 3

Many exciting new functions and features are being thought up for CSS3. We will try and showcase some of them on this page, when they get implemented in either Firefox, Konqueror, Opera or Safari/Webkit.

Here they are:

Borders

border-color
border-image
border-radius
box-shadow

Backgrounds
background-origin and background-clip
background-size
multiple backgrounds

Color

HSL colors
HSLA colors

opacity
RGBA colors

Text effects


text-shadow
text-overflow
word-wrap

User-interface

box-sizing
resize
outline
nav-top, nav-right, nav-bottom, nav-left

Selectors

attribute selectorsBasic box model

overflow-x, overflow-y

Generated Content

content


Other modules

media queries
multi-column layout
Web fonts
speech


html5

http://www.pinceladasdaweb.com.br/html5/



quarta-feira, 12 de maio de 2010

botão topo devagar

pesquisar tambem como criar o efeito do botão topo que quando clica, vai subindo bem devagar.

interag.net





formulário

tentar colocar no formulário a tag title para aparecer quando coloca o mouse em cima


igual ao site: interag.net

no contato

quarta-feira, 28 de abril de 2010

ADM - editar - página que edita o cadastro

Edita o cadastro:

<?php
session_start();

$id_materia = $_POST['id_materia']; // vem pelo campo input type hidden

$campo_01 = $_POST['campo_01'];
$campo_02 = $_POST['campo_02'];
$campo_03 = $_POST['campo_03'];

$data = date("d/m/Y");
$hora = date("H:i:s");

// o código do config.php está em algum outro post
// o código do funcao.php está em algum outro post

require("config.php");
require("funcao.php");
conexao_mysql($host,$user,$pass,$database);

$update = mysql_query("UPDATE `tabela` SET

campo_1='$campo_01',
campo_2='$campo_02',
campo_3='$campo_03',
data='$data',
hora='$hora'

WHERE id ='$id_materia'");

header ("Location:proxima_pagina.php");

?>

ADM - lista editar - página que escolhe se edita ou exclui cadastros

Página inicial para excluir ou editar ou cadastrar novo formulário.



<!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=iso-8859-1" />
<title>Untitled Document</title>
<link href="css.css" rel="stylesheet" type="text/css" />
</head>

<body>
<table width="800" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="800" align="center" valign="middle">



<span><strong>
Matérias </strong></span>

<br />
<br />
<a href="materia_cadastrar.php">Clique aqui para cadastrar mat&eacute;ria</a><br />
<br />

<?php
require("config.php");
// require("config_wamp.php"); // as informações do wamp são diferentes do servidor
require("funcao.php");
conexao_mysql($host,$user,$pass,$database);
?>
<?php

$bloco = $_GET["pagina"]; // informação do número da página a buscar

$limite = "3"; // número de itens na página

if($bloco == ""){
$inicio = "0";
}else{
$inicio = $bloco;
}

$mostrapag1 = $inicio + 1;
$mostrapag = $inicio + $limite;

$resultado2 = mysql_query("SELECT * FROM `tabela` ORDER BY id DESC");
$total2 = mysql_num_rows($resultado2);

$resultado1 = mysql_query("SELECT * FROM `tabela` ORDER BY id DESC LIMIT $inicio, $limite");
$total1 = mysql_num_rows($resultado1);

?>
<center>
<br />
<span class="texto12">Foram encontrados <b>
<?php echo $total2 ?>
</b> matérias cadastradas.<br />
Resultado de <b>
<?php echo $mostrapag1 ?>
</b> a <b>
<?php echo $mostrapag ?>
</b> nesta p&aacute;gina.</span><br />
<br />
</center>

<table width="700" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="45" height="25" align="center" bgcolor="#D7D7D7">C&oacute;digo</td>
<td width="10" bgcolor="#D7D7D7">&nbsp;</td>
<td width="340" align="left" bgcolor="#D7D7D7">Campo 01</td>
<td width="10" bgcolor="#D7D7D7">&nbsp;</td>
<td width="55" align="left" bgcolor="#D7D7D7">Campo 02</td>
<td width="10" bgcolor="#D7D7D7">&nbsp;</td>
<td width="90" align="left" bgcolor="#D7D7D7">Ação (Editar - Excluir)</td>
<td width="10" bgcolor="#D7D7D7">&nbsp;</td>
<td width="70" align="left" bgcolor="#D7D7D7">Data</td>
<td width="10" align="left" bgcolor="#D7D7D7">&nbsp;</td>
<td width="50" align="left" bgcolor="#D7D7D7">Hora</td>
</tr>
</table>
<?php

while($row = mysql_fetch_array($resultado1)) {

$id_materia = $row['id'];
$campo_01 = $row['campo_01'];
$campo_02 = $row['campo_02'];
$campo_03 = $row['campo_03'];
$data = $row['data'];
$hora = $row['hora'];

?>

<table width="700" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="45" height="25" align="center" bgcolor="#e7e7e7"><?php echo $id_materia ; ?></td>
<td width="10" bgcolor="#e7e7e7">&nbsp;</td>
<td width="340" align="left" bgcolor="#e7e7e7"><?php echo $campo_01 ; ?></td>
<td width="10" bgcolor="#e7e7e7">&nbsp;</td>
<td width="55" align="left" bgcolor="#e7e7e7"><?php echo $campo_02 ; ?></td>
<td width="10" bgcolor="#e7e7e7">&nbsp;</td>
<td width="90" align="left" bgcolor="#e7e7e7">
<a href="materia_editar.php?materia=<?php echo $id_materia ; ?>" target="_top" class="texto12">Editar</a> -
<a href="materia_excluir.php?materia=<?php echo $id_materia ; ?>" target="_top" class="texto12">Excluir</a></td>
<td width="10" bgcolor="#e7e7e7">&nbsp;</td>
<td width="70" align="left" bgcolor="#e7e7e7"><?php echo $data ; ?></td>
<td width="10" align="left" bgcolor="#e7e7e7">&nbsp;</td>
<td width="50" align="left" bgcolor="#e7e7e7"><?php echo $hora ; ?></td>
</tr>
<tr>
<td colspan="11" height="1" align="right" bgcolor="#d7d7d7"></td>
</tr>
</table>

<?php

}

?>
<br />

<table width="568" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="278" align="right">
<?php

if ($inicio < 1){
print('');
}else{
$cap2 = $inicio - $limite;
print('<strong><a href="materia.php?pagina='.$cap2.'">Página anterior</a></strong>');
}

?> </td>
<td width="12" height="25"></td>
<td width="278" align="left">
<?php

$soma = $inicio + $limite;
if ($total2 > $soma){
print('<strong><a href="materia.php?pagina='.$soma.'">Pr&oacute;ximo página</a></strong>');
}

?>
</td>
</tr>
</table>



</td>
</tr>
</table>
</body>
</html>

ADM - cadastra - página que cadastra o formulario

Como cadastrar informações vindas de formulário php no banco de dados mysql.

palavras chave: cadastrar, inserir, banco de dados.




<?php
session_start();

// require("funcoes.php"); // serve para diminuir a foto

$campo = $_POST['campo'];
$data = date("d/m/Y");
$hora = date("H:i:s");
$ver = "sim";

// ############################################################################################################################
// ARQUIVO 1
// ############################################################################################################################


// alterar apenas dimensões da imagem, pasta onde será inserida e nome da foto e do thumb.
class Upload
{
var $arquivo = "";
var $erro = array ( "0" => "upload executado com sucesso!",
"1" => "O arquivo é maior que o permitido pelo Servidor",
"2" => "O arquivo é maior que o permitido pelo formulario",
"3" => "O upload do arquivo foi feito parcialmente",
"4" => "Não foi feito o upload do arquivo"
);

function Verifica_Upload()
{
$this->arquivo = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE;
if(!is_uploaded_file($this->arquivo['tmp_name'])) {
return false;
}
$get = getimagesize($this->arquivo['tmp_name']);

if($get["mime"] != "image/jpeg")
{
echo "<span style="color: white; border: solid 1px; background: red;">Essa foto nao é uma imagem valida</span>";
exit;
}
return true;
}

function Envia_Arquivo()
{
if($this->Verifica_Upload()) {
$this->gera_fotos();
return true;
} else {
echo "<br><span style="color: white; border: solid 1px; background: red;">".$this->erro[$this->arquivo['error']]."</span>";
}
}

function gera_fotos()
{
$diretorio = "../produtos/";
$diretorio2 = "../produtos/";


// gera um número randomico entre 1 e 1000 para adicionar no fim do nome da foto
$num = mt_rand(1, 10);


$nome_foto = date("dmYHis").$num."1.jpg";
$nome_thumb = date("dmYHis").$num."1.jpg";

$_SESSION ["session_1"] = $nome_foto;

//determino uma resolução maxima e se a imagem for maior ela sera reduzida
reduz_imagem($this->arquivo['tmp_name'], 500, 375, $diretorio.$nome_foto);
//passo o tamanho da thumbnail
reduz_imagem($this->arquivo['tmp_name'], 120, 90, $diretorio2.$nome_thumb);
echo "<span style="color: white; border: solid 1px; background: blue;">".$this->erro[$this->arquivo['error']]."</span>";
}
}


$upload = new Upload();
$upload->Envia_Arquivo();



$foto1 = $_SESSION['session_1']; // serve para passar o nome da foto para outra pagina se precisar.





//$foto1 = "foto.jpg";




require("config.php");
require("funcao.php");
conexao_mysql($host,$user,$pass,$database);


/*
// aqui esta o codigo da pagina config.php
<?php
$host = "localhost"; // endereço ou ip do phpmyadmin
$user = "usuario"; // usuário do banco de dados
$pass = "senha"; // senha do usuário do banco de dados
$database = "nomebancodedados"; // nome do banco de dados
?>
*/


/*
<?php
// aqui esta o conteúdo da página funcao.php

//// funcao que realiza a conexao com o banco de dados ////
function conexao_mysql($host,$user,$pass,$database){
global $host, $user, $pass, $database;
//verifica se as variaveis (host,user,pass,db_super_news) estao setadas
if(isset($host) and isset($user) and isset($pass) and isset($database)){
//realiza a conexao com o banco de dados
$conexao = mysql_connect($host, $user, $pass);
//checa se a conexao foi bem sucedida
if(!$conexao){
print("<font color='#FF0000'>Error!! Impossível conectar-se ao MYSQL.</font>");
exit();
}

//verifica e seleciona o banco de dados
if(!@mysql_select_db($database, $conexao)){
print("<font color='#FF0000'>Error!! Impossível selecionar o banco de dados $database" . mysql_error() . '</font>');
exit();
}

}else{
print("<font color='#FF0000'>Error!! Alguma(s) da(s) variáveis (host, user, pass, db_super_news), não está atribuída!!</font>");
}
}

//Formata a data do banco de dados MYSQL (ex.: 2004-02-08 22:56:30) para uma mais
//convencional (ex.: 08 de Fevereiro de 2004 - 22h 56min).

function formatData($data)
{
$dia = substr($data, 8, 2);
$mes = substr($data, 5, 2);
switch ($mes) {
case 1:
$newmes = "Janeiro";
break;
case 2:
$newmes = "Fevereiro";
break;
case 3:
$newmes = "Março";
break;
case 4:
$newmes = "Abril";
break;
case 5:
$newmes = "Maio";
break;
case 6:
$newmes = "Junho";
break;
case 7:
$newmes = "Julho";
break;
case 8:
$newmes = "Agosto";
break;
case 9:
$newmes = "Setembro";
break;
case 10:
$newmes = "Outubro";
break;
case 11:
$newmes = "Novembro";
break;
case 12:
$newmes = "Dezembro";
break;
}
$ano = substr($data, 0, 4);
$novadata = $dia . ' de ' . $newmes . ' de ' . $ano;
$novahora = $novadata . ' - ' . substr($data, 11, 2) . 'h' . substr($data, 14, 2) . 'min';
$datahora = $novahora;
return $datahora;
}
?>

*/

$resultado = mysql_query("INSERT into `tabela` (

campo,
data,
hora

) VALUES (
'$campo',
'$data',
'$hora'


)");


unset($_SESSION["session_1"]);
session_unregister($_SESSION["session_1"]);


header ("Location:nomeproximapagina.php");


?>

mostra div com mouseover no link

Teste de javascript que mostra conteúdo de div escondida quando coloca o mouse sobre link.


<!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=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<script type="text/javascript" language="JavaScript">
var cX = 0; var cY = 0; var rX = 0; var rY = 0;
function UpdateCursorPosition(e){ cX = e.pageX; cY = e.pageY;}
function UpdateCursorPositionDocAll(e){ cX = event.clientX; cY = event.clientY;}
if(document.all) { document.onmousemove = UpdateCursorPositionDocAll; }
else { document.onmousemove = UpdateCursorPosition; }
function AssignPosition(d) {
if(self.pageYOffset) {
rX = self.pageXOffset;
rY = self.pageYOffset;
}
else if(document.documentElement && document.documentElement.scrollTop) {
rX = document.documentElement.scrollLeft;
rY = document.documentElement.scrollTop;
}
else if(document.body) {
rX = document.body.scrollLeft;
rY = document.body.scrollTop;
}
if(document.all) {
cX += rX;
cY += rY;
}
d.style.left = (cX+10) + "px";
d.style.top = (cY+10) + "px";
}
function HideContent(d) {
if(d.length < 1) { return; }
document.getElementById(d).style.display = "none";
}
function ShowContent(d) {
if(d.length < 1) { return; }
var dd = document.getElementById(d);
AssignPosition(dd);
dd.style.display = "block";
}
function ReverseContentDisplay(d) {
if(d.length < 1) { return; }
var dd = document.getElementById(d);
AssignPosition(dd);
if(dd.style.display == "none") { dd.style.display = "block"; }
else { dd.style.display = "none"; }
}
//-->
</script>


<br />
<br />
<br />
<a
onmousemove="ShowContent('olhovivo'); return true;"
onmouseover="ShowContent('olhovivo'); return true;"
onmouseout="HideContent('olhovivo'); return true;"
href="javascript:ShowContent('olhovivo')">
produto 1
</a>

<br />
<br />
produto 2
<br />
<br />

<a
onmousemove="ShowContent('olhovivo'); return true;"
onmouseover="ShowContent('olhovivo'); return true;"
onmouseout="HideContent('olhovivo'); return true;"
href="javascript:ShowContent('olhovivo')">
produto 3
</a>
<div
id="olhovivo"
style="display:none;
position:absolute;
border-style: solid;
background-color: white;
padding: 20px;">
<center>
<font face="Arial, Helvetica, sans-serif" size="2" color="#999999">
Este produto faz parte da
<br />
campanha OLHOVIVO da Eurofarma.
</font>
</center>
</div>

</body>
</html>

quarta-feira, 25 de novembro de 2009

passar informações via get

errado:

$produto = $_GET['id'];


certo:

$produto = (int)$_GET['id'];

segunda-feira, 23 de novembro de 2009

login com MD5

MD5 simples
[code=PHP]
$string = 'Something';
$hash = md5($string);
echo $hash;
?>
[/code]

MD5 com salt
[code=PHP]
$string = 'something';
$salt = 's+(_a*';
$hash = md5($string.$salt);
?>
[/code]

hash = md5 ( ( password + salt ) + salt )

terça-feira, 17 de novembro de 2009

php e mensagens de erro

http://www.w3schools.com/PHP/php_error.asp

como postar código html correto

http://blogcrowds.com/resources/parse_html.php

upload

<pre>
<form action="upload_file.php" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input name="file" id="file" type="file">


<input name="submit" value="Submit" type="submit">
</form>
</pre>

<?php
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "
";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "
";
echo "Type: " . $_FILES["file"]["type"] . "
";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb
";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}

?>


restrição
<?php
{
echo "Error: " . $_FILES["file"]["error"] . "
";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "
";
echo "Type: " . $_FILES["file"]["type"] . "
";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb
";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
}
else
{
echo "Invalid file";
}
?>

<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";

if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
?>

data e hora

echo date("d/m/Y") ;

echo date("H:i:s") ;

função simples



function writeName($fname)
{
echo $fname . " Refsnes.
";
}

echo "My name is ";
writeName("Kai Jim");
echo "My sister's name is ";
writeName("Hege");
echo "My brother's name is ";
writeName("Stale");
?>

Output:
My name is Kai Jim Refsnes.
My sister's name is Hege Refsnes.
My brother's name is Stale Refsnes.

for


for ($i=1; $i<=5; $i++)
{
echo "The number is " . $i . "
";
}
?>


Output:
The number is 1
The number is 2
The number is 3
The number is 4
The number is 5

while




$i=1;
while($i<=5)
{
echo "The number is " . $i . "
";
$i++;
}
?>


operadores lógicos


Logical Operators
Operator Description Example
&& and x=6
y=3
(x < 10 && y > 1) returns true


|| or x=6
y=3
(x==5 || y==5) returns false


! not x=6
y=3
!(x==y) returns true


abre e fecha conexão

$con = mysql_connect("localhost","peter","abc123");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("my_db", $con);

$result = mysql_query("SELECT * FROM Persons");

while($row = mysql_fetch_array($result))
{
echo $row['FirstName'] . " " . $row['LastName'];
echo "
";
}

mysql_close($con);
?>

sexta-feira, 13 de novembro de 2009

função sleep do PHP

sleep (60);

para ele pausar o script por 60 segundos..
ele continua automaticamente...

segunda-feira, 19 de outubro de 2009

explode 2

$data = $_POST['dia'].'/'.$_POST['mes'].'/'.$_POST['ano'];

explode

// Example 1
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo
$pieces[0]; // piece1
echo $pieces[1]; // piece2

// Example 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list(
$user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo
$user; // foo
echo $pass; // *

?>

domingo, 20 de setembro de 2009

Principais comandos MySQL

Vamos lá:

Comandos
Descrição
mysql_affected_rows Retorna o número de linhas afetadas por uma consulta
mysql_close Fecha a conexão com o banco de dados MySQL
mysql_connect Abre a conexão com um banco de dados MySQL
mysql_create_db Cria um banco de dados MySQL
mysql_data_seek Move o ponteiro interno de uma consulta
mysql_db_query Envia uma consulta MySQL para o banco de dados
mysql_drop_db Exclui um banco de dados MySQL
mysql_errno Retorna o número do erro da última chamada MySQL
mysql_error Retorna a mensagem de erro da última chamada MySQL
mysql_fetch_array Retorna o resultado de uma consulta como array
mysql_fetch_field Retorna informações sobre um campo da consulta (objeto )
mysql_fetch_lengths Retorna o tamanho máximo de cada campo em uma consulta
mysql_fetch_object Retorna uma linha da consulta como um objeto
mysql_fetch_row Retorna uma linha da consulta como um array
mysql_field_name Retorna o nome de um campo da consulta
mysql_field_seek Posiciona o ponteiro para um campo específico da consulta
mysql_field_table Retorna o nome da tabela à qual o campo pertence
mysql_field_type Retorna o tipo de dado do campo
mysql_field_flags Retorna os flags associados a um campo da consulta
mysql_field_len Retorna o tamanho de um campo da consulta
mysql_free_result Libera os recursos alocados a uma consulta
mysql_insert_id Retorna o ID da última cláusula INSERT executada
mysql_list_fields Relação de campos de uma consulta
mysql_list_dbs Lista os Bancos de Dados disponíveis no Sevidor
mysql_list_tables Lista as tabelas existentes em um Banco de Dados MySQL
mysql_num_fields Retorna o número de campos de uma consulta
mysql_num_rows Retorna o número de linhas de uma consulta
mysql_pconnect Estabelece uma conexão persistente com o Banco de Dados
mysql_query Envia uma consulta SQL ao Banco de Dados MySQL
mysql_result Retorna os dados de uma consulta
mysql_select_db Seleciona um Banco de Dados MySQL
mysql_tablename Retorna o nome da Tabela de um campo.



quinta-feira, 12 de fevereiro de 2009

mostrar erro na coxexão mysql

Este arquivo conecta um banco de dados MySQL - Servidor = localhost

$dbname="teste"; // Indique o nome do banco de dados que será aberto

$usuario=" "; // Indique o nome do usuário que tem acesso

$password=" "; // Indique a senha do usuário



//1º passo - Conecta ao servidor MySQL

if(!($id = mysql_connect("localhost",$usuario,$password)))
{
echo "Não foi possível estabelecer uma conexão com o gerenciador MySQL. Favor Contactar o Administrador.";

exit;

}



//2º passo - Seleciona o Banco de Dados

if(!($con=mysql_select_db($dbname,$id))) {

echo "Não foi possível estabelecer uma conexão com o gerenciador MySQL. Favor Contactar o Administrador.";

exit;

}

?>

segunda-feira, 9 de fevereiro de 2009

mostrar erro de query (select)


if (!$result) {
die(
'Invalid query: ' . mysql_error());
}


Exemplo:
= mysql_query('SELECT * WHERE 1=1');
if (!
$result) {
die(
'Invalid query: ' . mysql_error());
}

terça-feira, 6 de janeiro de 2009

gerar um número aleatório

$num = mt_rand(1, 1000);
echo $num ;



não sei se funciona em todas as versões de php

sábado, 3 de janeiro de 2009

links uteis

http://www.phpavancado.net
http://www.oficinadanet.com.br/area/6/javascript

pesquisar sobre smarty e zend framework

sexta-feira, 2 de janeiro de 2009

scripts para galeria de fotos

http://www.smashingmagazine.com/2007/05/18/30-best-solutions-for-image-galleries-slideshows-lightboxes/

links úteis

http://www.oficinadanet.com.br/artigo/976/manipulacao_de_arquivos_no_php

selecionar comum entre 2 tabelas

http://www.oficinadanet.com.br/artigo/786/mysql_consulta_com_duas_tabelas

Hoje vou demonstrar como fazer uma consulta utilizando duas tabelas, as tabelas são:


- ESTADO ----
| estado_id |
| estado |
-------------

- CIDADE ----
| cidade_id |
| estado_id |
| cidade |
-------------


Estas são as tabelas, vamos selecionar o nome e o id das duas.
SELECT c.cidade_id, c.cidade, e.estado_id, e.estado
FROM cidade c
INNER JOIN estado e
ON e.estado_id = c.estado_id

Esta consulta é uma das formas mais otimizadas de retornar o resultado acima solicitado. Ele ira pesquisar em cidade dizendo que é obrigatória a relação com estado, ou seja, a cidade deverá conter um estado relacionado.

Podemos fazer a mesma consulta sem a obrigatoriedade da cidade conter o estado, fazendo a troca de INNER JOIN por LEFT JOIN.

Na próxima coluna estarei publicando as diferenças entre INNER, LEFT e RIGHT JOIN.

segunda-feira, 15 de dezembro de 2008

dicas php

usar echo em vez de print

melhor usar switch / case do que if / else

quando puder, melhor include do que require

quarta-feira, 10 de dezembro de 2008

select em 2 tabelas

"
SELECT
a.campo1,
a.campo2,
a.campo3,
b.campo001,
b.campo002
FROM
tabela1 a,
tabela001 b
WHERE
(a.campo1 NOT LIKE '' AND
(a.campo2='CHEVROLET' AND
(a.capo3='sim' AND
(b.campo001 = 'sim' AND
b.campo001 = a.campo1))))
ORDER BY RAND()"

sexta-feira, 5 de dezembro de 2008

limpar form simples

 
$item = "Zak's Laptop";
$escaped_item = mysql_escape_string($item);
printf ("String escapada: %s\n", $escaped_item);

quarta-feira, 3 de dezembro de 2008

útil para trabalhos em andamento

http://www.criarweb.com/artigos/193.php

http://www.criarweb.com/artigos/481.php

http://www.criarweb.com/artigos/454.php

http://www.criarweb.com/artigos/186.php

http://www.criarweb.com/artigos/180.php

http://www.criarweb.com/artigos/177.php

http://www.criarweb.com/artigos/176.php

http://www.criarweb.com/artigos/174.php

login de múltiplos usuários

http://www.criarweb.com/artigos/autenticacao-php-para-multiplos-usuarios-mysql.html

criarweb - manual completo

no site http://www.criarweb.com/php/ tem vários artigos explicando o PHP desde iniciante até PHP5.

terça-feira, 2 de dezembro de 2008

sql injection

para limpar o código basta usar



$item = "Zak's Laptop";
$escaped_item = mysql_escape_string($item);
printf ("String escapada: %s\n", $escaped_item);

solução para método GET

primeiro vc define uma senha e encripta a informação a ser passada

index.php

//Esta página esta passando os parâmetros criptografados pelo GET.

function get_rnd_iv($iv_len)
{
$iv = '';
while ($iv_len-- > 0) {
$iv .= chr(mt_rand() & 0xff);
}
return $iv;
}

function md5_encrypt($plain_text, $password, $iv_len = 16)
{
$plain_text .= "x13";
$n = strlen($plain_text);
if ($n % 16) $plain_text .= str_repeat("{TEXTO}", 16 - ($n % 16));
$i = 0;
$enc_text = get_rnd_iv($iv_len);
$iv = substr($password ^ $enc_text, 0, 512);
while ($i < $n) { $block = substr($plain_text, $i, 16) ^ pack('H*', md5($iv)); $enc_text .= $block; $iv = substr($block . $iv, 0, 512) ^ $password; $i += 16; } return base64_encode($enc_text); } $con = new ConexaoMysql(); $result = $con->sql("SELECT * FROM clientes");
$dados = mysql_fetch_array($result);
$linhas = mysql_num_rows($result);
$ini = 0;

while ($linhas > $ini)
{
echo "";
$id = $dados['id'];
$password = "123";
$id_cript = md5_encrypt($id, $password);
echo "Cliente";
echo "Editar";
echo "";

$dados = mysql_fetch_array($result);
$ini++;
}
?>




depois vc desencripta a informação passada via get com a mesma senha

editar.php

//Essa página recebe os parâmetros criptografados e tem a função de "decriptografar" os dados recebidos

$id_cript = $_GET['oi'];
$password = "123";

function md5_decrypt($enc_text, $password, $iv_len = 16)
{
$enc_text = base64_decode($enc_text);
$n = strlen($enc_text);
$i = $iv_len;
$plain_text = '';
$iv = substr($password ^ substr($enc_text, 0, $iv_len), 0, 512);
while ($i < $n) { $block = substr($enc_text, $i, 16); $plain_text .= $block ^ pack('H*', md5($iv)); $iv = substr($block . $iv, 0, 512) ^ $password; $i += 16; } return preg_replace('/\x13\x00*$/', '', $plain_text); } $id = md5_decrypt($id_cript, $password); $con = new ConexaoMysql(); $result = $con->sql("SELECT * FROM clientes WHERE id = '$id'");
$dados = mysql_fetch_array($result);
$nome = $dados['nome'];
?>

dicas segurança PHP

não usar o método GET para informações importantes

sempre que usar GET, limpar os dados transferidos

sempre que usar UPLOAD, conferir se os arquivos são seguros



Sempre que for gravar um arquivo via upload, tenha certeza do tipo de arquivo que está gravando. Por exemplo, um arquivo de imagem pode ser simplesmente tratado usando uma validação de tipos.

Exemplo:

function type_up()
{//Verifica se o mime-type do arquivo de imagem
if(!eregi("^image/(pjpeg|jpeg|png|gif|bmp)$", $this->arquivo["type"])){
return 0;
}else{
return 1;
}
}

global register

como trabalhar com global register = off

quando o global esta off - o php não sabe o que é $cod - tem de especificar exatamente o caminho:


$cod = $_GET['cod'] //tipo get
$cod = $_POST['cod'] //tipo post
$cod = $_SESSION['cod'] //tipo session
$cod = $_COOKIE['cod'] //tipo cookie

segunda-feira, 3 de novembro de 2008

diferença no SELECT

SELECT campo1, campo2 FROM tabela WHERE cod = 1 
SELECT campo1, campo2 FROM tabela WHERE nome = 'fulano de tal'

quando é número inteiro não precisa de aspas

terça-feira, 7 de outubro de 2008

select com filtro

criar select com filtro usando OR e AND

$resultado2 = mysql_query("SELECT * FROM `tabela` WHERE (campo1='$session_nome' OR campo2='$session_nome' OR campo3='$session_nome') AND outrocampo LIKE 'teste' ORDER BY id DESC");

terça-feira, 30 de setembro de 2008

php classes

http://www.phpclasses.org/browse/package/2630.html

estudar php classes

sábado, 20 de setembro de 2008

Manual simplificado PHP

http://www.criarweb.com/manuais/programacao_php/

preenchendo o meta corretamente

Segundo o site criarweb. A forma correta de preencher o META de um site é:



http://www.criarweb.com/gen_meta/

array

http://www.vedovelli.com.br/?p=13

http://www.vedovelli.com.br/?p=14

site com dicas php

http://japs.etc.br/2005/10/gerar-thumbnail-automaticamente/

sexta-feira, 19 de setembro de 2008

if simples

if($advogado3 != ""){
  $virgula2 = ", ";
}else{
  $virgula2 = "";




if completo
header('Content-type: text/html; charset=UTF-8') ;

$d = date("D");

if ($d == "Fri"){
echo "Hoje é sexta-feira!";
}elseif ($d == "Sat"){
echo "Hoje é sábado!";
}elseif ($d == "Sun"){
echo "Hoje é domingo!";
}else{
echo "Tenha um bom dia!";
}

sessions


Gravar

$teste = "teste 1" ;
$teste2 = " teste 2 " ;

session_start();

$_SESSION ["session_1"] = $teste;

$_SESSION ["session_2"] = $teste2;


Ler

session_start();

echo "$session_1" ;

echo "
" ;

echo "$session_2" ;


Apagar

session_start();
unset($_SESSION["session_1"]);