Nov 04 2011

Resolvendo problema com Unicode no zend studio

Para resolver problema de acentuação de página no zend studio utilize no seu código a tag

meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″

. Sempre utilize o utf-8. por que? Porque é um padrão unicode e caso sua aplicação venha ser traduzida para outro idioma você não terá problemas. No zend studio vá no menu editar set encoding, pronto seu problema foi resolvido.

Oct 15 2011

Trocando valores de duas variáveis no php sem utilizar uma variável auxiliar

Hoje na empresa Brainatwork estavamos todos trabalhando quando o Diogo propos um desafio encontrado neste site: http://e-fabrica.com/blog/2009/10/26/php-desafio-trocar-valores-de-duas-variaveis/ .
O desafio é o seguinte dado duas variáveis troque o seus valores sem usar uma variável auxiliar. Sugiro que vocês tente antes de olhar o código abaixo.:)

<?php
$a=5;
$b=7;

list($a,$b)=array($b,$a);

echo $a.’<br />’;
echo $b;

?>

Oct 15 2011

Multiplicando matriz com php

Salve, salve rapaziada. Hoje iremos fazer um exercício matemático. Iremos multiplicar uma matriz A por uma matriz B. Segue o código.

$matrizA= array(
array(1,0,2),
array(-1,3,1),
);
$matrizB= array(
array(3,1),
array(2,1),
array(1,0)

);

for($i=0; $i<2; $i++){

for($j=0; $j<3; $j++){

$c[$i][$j]=0;
for($k=0;$k<3;$k++){
$c[$i][$j]+=($matrizA[$i][$k] * $matrizB[$k][$j]);
}
echo $c[$i][$j];
}

}
?>

Oct 12 2011

Fazer um popup box com javascript antes de excluir item

Geralmente como estamos desenvolvendo para web surge a necessidade de fazer um botão para excluir algum item do banco de dados, logo é necessário ter um mensagem de confirmação do tipo: “deseja realmente excluir esse item?”. É isso que mostrarei nesse artigo; Na verdade tentei otimizar o código da forma mais simples possível.

<a href=” excluir.php?excluir=$id” onclick=” return confirmacao()”>Excluir</a>

Esse link contém a chamada da função confirmação.

function confirmacao(){
var x=confirm(“Deseja realmente excluir?”);
if(x==false){ return false; } else { return true; }
}

Como você podem observar na função se retornar false o código não faz requisição para o servidor assim a página excluir.php não é chamada. Essa função e para evitar que se exclua algo que não deseja no banco de dados

Mar 28 2011

Redirecionamento de link com .htaccess

Problema: Conteúdo duplicado

Vomos direto ao assunto. Seu site pode ser acessado como www.dominio.com.br ou dominio.com.br. Isso gera conteúdo duplicato tanto para o site como para o google. O indexador do google não reconhece conteúdo duplicado.

A solução é adicionar este código no seu .htaccess

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^dominio.com.br$ [NC]
RewriteRule ^(.*)$ http://
dominio.com.br/$1 [L,R=301]

Esse código redireciona o domínio www.dominio.com.br  para dominio.com.br para fazer o contrário basta adicionar este código:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]

Para ter mais informação sobre conteúdo duplicado acesse:

http://www.google.com/support/webmasters/bin/answer.py?hl=pt-BR&answer=66359

Post retirado de: http://enarion.net/web/htaccess/redirect-www-and-no-www/

htaccess

Feb 26 2011

Descobrindo se um ano é bissexto ou não no PHP

Para saber se um ano é bissexto ou não, deve-se seguir as regras abaixo:
1.Se o ano for divisível por 4 e não termina em 00 ele é bissexto. Exemplos: 1988, 1992, 1996, 2004, e assim por diante;

2. Se o ano termina em 00, ele é bissexto se for divisível por 400. Exemplos: 2000, 2400, 2800, e assim por diante.

O código abaixo pode ser utilizado para verificação do ano bissexto.

<?php

$ano=2008;

if( ( ($ano%4 === 0) && ($ano%100!=0) ) || ($ano%400===0) )
echo ‘Ano bissexto’;
else echo ‘não é bisexto’;

?>

Outra forma descobrir-se se o ano é bissexto ou não é com a função date() logo abaixo segue o exemplo:

<?php

$ano=2008;

$bissexto = date(“L”, mktime(0, 0, 0, 1, 1, $ano));
if($bissexto == 0)
echo “Não é bissexto”;
else
echo “Ano é bissexto;

?>

Feb 06 2011

Corrigindo erro de segurança do XAMPP 1.7.4

Olá pessoal, depois de instalar o xampp estava navegando em sua página principal quando cliquei no menu de segurança para adicionar a senha do meu mysql e o seguinte erro apareceu:
Warning: include(langpt_br.php) [function.include]: failed to open stream: No such file or directory in C:\xampp\security\htdocs\index.php on line 13 “.

Para corrigir esse erro basta você ir no diretorio C:\xampp\security\htdocs e abrir o arquivo index.php depois substituir a linha 13 por está: <?php include “lang”.’/’.file_get_contents(‘lang.tmp’).’.php’; ?> .  Logo em seguida acesse C:\xampp\htdocs\xampp\lang e compie o arquivo pt_br.php e cole no diretório: C:\xampp\security\htdocs\lang. Aconselho ainda a baixar uma versão anterior a está. Versões anteriores apresenta maior suporte em forus de discussões…

Até a próxima…! :)

Jan 30 2011

Quando gravar dados em arquivos é inviável no php?

Olá pessoal, todos que trabalham com php já sabem que gravar dados em um arquivo PHP não é complicado. Normalmente a função utilizada é a fwrite(). Temos básicamente 3 passos para gravar dados em arquivo são eles:.

  • Abrir o arquivo. Caso ele nao exita, ele deve ser criado.
  • Gravar os dados no arquivo
  • Fechar o arquivo

Exemplo:

<?php

$gravar=”teste”;//variavel a ser gravada

$fp = fopen(“caminho onde estar o arquivo”, ab);//criação //do ponteiro

fwrite($fp,$grava);// grava a string armazenada em $grava no arquivo //apontado por $fp

fclose($fp);

?>

Lê dados do arquivo tambem é relativamente simples. Temos básicamente 3 passos para ler dados em arquivo são eles:

  • Abrir o arquivo. Caso ele nao exita, ele deve ser criado.
  • Ler os dados no arquivo
  • Fechar o arquivo

Exemplo:

<?php

$gravar=”teste”;//variavel a ser gravada

$fp = fopen(“caminho onde estar o arquivo”, ab);//criação //do ponteiro

while(!feof($fp)){
$dados=fgets($fp,999);
echo $dados.’<br />’;//imprimi os dados do arquivo
}
fclose($fp);

?>

Até aqui tudo bem, mas imagine uma situação onde dois usuários estejam tentando comprar um produto ao mesmo tempo. Não é surpresa nenhuma uma vez que o tráfego do seu web site aumenta consideravelmente. Agora pense seu um cliente chamar fopen() e começar a gravar e outro tambem chamar fopen() e começar a gravar? Qual será o resultado final do arquivo? O resultado será a primeira solicitação seguido da segunda ou virce-versa? A resposta depende do sistema operacional, mas ate então e impossivel saber.

Então você deve esta se perguntando como envitar isso? Logo te respondo com bloqueios de arquivo. No php e implementado com a função flock(). Essa função faz o bloqueio do arquivo onde o arquivo não mais pode ser compartilhado. Exemplo de como ficaria nosso código:

<?php

$gravar=”teste”;//variavel a ser gravada

$fp = fopen(“caminho onde estar o arquivo”, ab);//criação //do ponteiro

flock($fp, LOCK_EX);//faz o bloqueio

fwrite($fp,$grava);// grava a string armazenada em $grava no arquivo //apontado por $fp

flock($fp, LOCK_UN);//faz o desbloqueio

fclose($fp);

?>

// exemplo do segundo arquivo :
<?php

$gravar=”teste”;//variavel a ser gravada

$fp = fopen(“caminho onde estar o arquivo”, ab);//criação //do ponteiro

flock($fp, LOCK_EX);

while(!feof($fp)){
$dados=fgets($fp,999);
echo $dados.’<br />’;//imprimi os dados do arquivo
}

flock($fp, LOCK_UN);
fclose($fp);

?>

Nosso arquivo agora está mais seguro. Verdade, está mais seguro, mas imagine agora se dois scripts pedirem um bloqueio ao mesmo tempo? O resultado é uma condição de concorrência, onde processo agora competem por bloqueios mas é incerto por exemplo não temos condição de saber qual processo consiguirá ser bem sucedido, isso poderia causar mais problemas.

O que deve ser feito para resolver o problema de acesso concorrente  é a utilização de um sistemas de gerenciamento de banco de dados. Os RDBMSs têm  mecanismo predefinidos para lidar com acesso concorrente para que você, como um programador, não tenha dor de cabeça…:-)

Referências:

http://www.php.net/

PHP E MYSQL Desenvolvimento Web. Autores: LUKE WELLING & LAURA THOMSON..

Jan 22 2011

Contador de click em links

Olá pessoal, estive muito ocupado durante esse fim de ano agora volto com força total para dá algumas dicas ou responder dúvidas. Nesse poste ensino a fazer um contador de click em links, primeiro iremos iniciar com script sql:

CREATE TABLE IF NOT EXISTS `contar` (
`contador` int(11) NOT NULL,
PRIMARY KEY (`contador`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Agora vamos criar a página index.php. O link/URL é adicionado ao script e o click será inserido no banco de dados:

<html>
<head>
</head>
<body>
<?php
$con = mysql_connect(‘localhost’,'root’,”) or die (mysql_error());
mysql_select_db(‘contador’,$con) or die(mysql_error());
$resul=mysql_query(“SELECT contador FROM contar”) or die(mysql_error());
$dado=mysql_fetch_array($resul) or die(mysql_error());
$cont=$dado['contador'];
echo $cont.’<br />’;
?>
<a href=”teste.php?cont=<?php echo $cont; ?>”>Conta link </a>
</body>
</html>

Vamos para o final do nosso post, que é criar um script para atualizar o banco de dados. O nome do arquivo é teste.php

<?php

echo $cont.’— somado’.'<br />’;
$con = mysql_connect(‘localhost’,'root’,”) or die (mysql_error());
mysql_select_db(‘contador’,$con) or die(mysql_error());

echo $cont.’–getttttt’.'<br />’;
if(isset($cont)){
$cont= $cont+1;
$query=mysql_query(“UPDATE contar set contador=$cont”) or die (mysql_error());
}

?>
</body>
parabens<br />
<a href=”index.php”  >voltar</a>
</html>

Oct 29 2010

Lendo um Banco de Dados e inserindo no combo box

Olá pessoal, hoje vamos fazer uma consulta simples no mysql. Esse trabalho surgiu devido a uma dúvida de um colega meu de faculdade. Este código simplesmente lê os dados do banco e imprimi eles no combo box.

Criação da tabela box:
CREATE TABLE IF NOT EXISTS `box` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nome` varchar(120) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;

Inserindo valores na tabela :
INSERT INTO `box` (`id`, `nome`) VALUES
(1, ‘maria’),
(2, ‘lucas’),
(3, ‘vanessa’);

__________________________________________________________

<?php // código php  para lê o banco de dados.

$banco = mysql_connect(‘localhost’,'root’,’ senha ‘) or die(‘falha conexao’);// //conecta ao banco,  .
$con= mysql_select_db(‘combo’,$banco) or die(‘falha select db’);//seleciona //o banco de dados

$sql=”select * from box”;
$result = mysql_query($sql);//executa a sql.
?>
<select name=”nome”>
<?php
while($dados = mysql_fetch_array($result)){// enquanto tiver dados faça
?><option><?php echo $dados['nome']; ?> </option>
<?php
}?>
</select>

Alibi3col theme by Themocracy