Existe uma forma diferente de se trabalhar com condições no PHP… Se chama Operador Ternário e ele deixa o código mais resumido, e mais otimizado.
O seu uso consiste em agrupar, na mesma linha, a condição, os comandos para true (verdadeiro) e os comandos para false (falso).
Vamos ao velho exemplo de condições (if) que todo mundo já viu:
1
2
3
4
5
6
7
8
| <?
$nota = 4;
if ($nota >= 7) {
echo "Você passou!";
} else {
echo "Você não passou!";
}
?> |
Agora veja a versão ternária desse mesmo código:
1
2
3
4
| <?
$nota = 4;
echo ($nota >= 7) ? "Você passou!" : "Você não passou!";
?> |
A sintaxe do operador ternário é a seguinte:
(< condição >) ? < instruções para verdadeiro > : < instruções para falso >;
Veja outro exemplo de uso do operador ternário:
1
2
3
4
5
6
7
8
9
10
11
| <?
// Atribuição de um valor padrão a uma variável
// Versão "padrão"
if (!isset($variavel)) {
$variavel = 'valor padrão';
} else {
$variavel = $variavel;
}
// Versão usando operador ternário
$variavel = (!isset($variavel)) ? 'valor padrão' : $variavel;
?> |
Não se esqueçam de ver a documentação oficial sobre operadores de comparação, dentre os quais está o operador ternário.
Espero que tenham gostado!
Anderson Dicas, PHP, Programação PHP, Programação
Recentemente tive um site invadido onde o próprio invasor me enviou um e-mail mostrando alguns dados do meu banco e dizendo que poderia corrigir o problema mediante pagamento.
Fiz uma analise procurando saber como o site foi invadido. Depois de muito analizar, chego a conclusão que foi por SQL Injection.
Segue abaixo uma alternativa que evita esse tipo de ataque:
Primeiro crie um arquivo com o seguinte conteúdo:
funcoes.inc.php
<?
function anti_injection_post($array) {
foreach ($array as $key=>$value) {
$array[$key] = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|truncate|#|\*|--|\\\\)/"),"",$array[$key]);
$array[$key] = trim($array[$key]);
$array[$key] = strip_tags($array[$key]);
$array[$key] = addslashes($array[$key]);
}
return $array;
}
?>
Posteriormente nos arquivos do site onde você irá usar os arrays $_POST e $_GET use o seguinte no inicio do arquivo:
<?
include_once('funcoes.inc.php');
$_POST = anti_injection_post($_POST);
$_GET = anti_injection_post($_GET);
.
.
.
?>
Essa função evita que seja inserido instruções sql em campos ou na barra de endereço do seu site.
é isso ai…
Update:
Agradecimento ao meu irmão Andriel pela colaboração.
Anderson PHP, Programação PHP, Programação
Função que valida e-mail.
Verifica os caracteres informados, se possui a “@” e “.”, e não pode possuir caracteres inválidos.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| <?
function valida_email($str){
if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$", $str)){
return 1;
} else {
return 0;
}
}
//Modo de usar:
$email = 'teste@teste.com';
if (valida_email($email)) {
echo "e-mail valido";
} else {
echo "e-mail invalido";
}
?> |
Anderson PHP, Programação PHP, Programação
Segue uma função que mostra a diferença de dias entre duas data informadas:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| <?
function date_diff($from, $to) {
// Use DD-MM-AA ou DD-MM-AAAA
list($from_day, $from_month, $from_year) = explode("-", $from);
list($to_day, $to_month, $to_year) = explode("-", $to);
$from_date = mktime(0,0,0,$from_month,$from_day,$from_year);
$to_date = mktime(0,0,0,$to_month,$to_day,$to_year);
$days = ($to_date - $from_date)/86400;
return ceil($days);
}
$de = $_GET['de'];
$para = $_GET['para'];
echo 'A diferença de dias entre as duas datas seria: ' . date_diff("$de","$para");
?> |
é isso….
Anderson Dicas, PHP, Programação PHP, Programação
Escrever aplicativos com ajax é a vontade de 11 em cada 10 programadores web atualmente.
A linguagem facilita, e muito, a experiência do usuário no site e, além de ser um dos maiores ícones da web 2.0, coloca o(s) responsável(is) pelo projeto na “vanguarda da tecnologia” (assim dizem os profetas).
Só que nem tudo são flores quando o assunto é AJAX (Asynchronous JavaScript and XML). Principalmente se você for um programador brasileiro, como eu.
Digo isso por causa do nosso belo alfabeto, originado do latim e com seus acentos e caracteres peculiares.
Clique para continuar lendo...
Nós, brasileiros, utilizamos a codificação ISO-8859-1, enquanto que, por padrão, o AJAX trabalha com o UTF-8.
O resultado? Hieróglifos egípcios aparecem no lugar de palavras acentuadas e outros caracteres particulares do nosso idioma.
A solução?
Procurei por diversas soluções, mas nenhuma me atendia satisfatoriamente. Só uma, que posto a seguir:
1
| header(”Content-Type: text/html; charset=ISO-8859-1″), true); |
Não vou oferecer explicações a respeito da função nativa do PHP, header(). Deixo que vocês mesmos consultem o manual da linguagem para que entendam como funciona.
Existem outras alternativas, como modificar o header direto no HTML, com a tag META, mas geralmente não funcionam a contento.
Quem tiver outras soluções funcionais, postem nos comentários.
Fonte: Silvio Delgado
Anderson Ajax, PHP, Programação Ajax, PHP