domingo, 17 de junho de 2018

Contar caracteres de uma variável em PHP

Você pode precisar um dia contar quantos caracteres uma certa variável contém para processar as condições desejadas para o seu sistema em PHP. Por exemplo, para definir se o usuário entrou com uma senha entre 6 e 10 caracteres.

É bem simples, o código. Veja só:

Temos uma variável com uma frase exposta:

$frase = "Vai, Corinthians!";

Agora, usamos uma nova variável ($total) para saber quantos caracteres contém aquela variável com a requerida frase:

$total = strlen($frase);
echo $total;

O resultado será 17 caracteres. Note que o sistema também conta espaços, sinais de pontuação, etc.

Simples assim.

quarta-feira, 13 de junho de 2018

Definir o foco de um campo em um formulário ao carregar página

Algumas coisas simples tornam um sistema muito prático e sofisticado.

Uma coisa simples é definir o foco de um campo em um formulário ao carregar página, evitando que o usuário precise clicar neste campo para iniciar a digitação dos valores, por exemplo, ao preencher um cadastro.

Vamos ver como fazer isso de forma bastante simples com JavaScript:

Primeiro, acrescente o código de chamada da função na tag inicial da body da página onde o formulário será carregado, que ficará assim:

<body onLoad="setFocus()">

Agora, dentro desta página, coloque a função seguinte:

<script type="text/javascript">
function setFocus() {
  document.getElementById("campoComFoco").focus();
}
</script>

A função define que o campo do formulário que receber o id campoComFoco será o que receberá o foco quando a página for carregada.

Exemplo de um formulário e um campo definido para receber a função setFocus:

<form method="post" action="#">
   <input type="text" name="produto" id="campoComFoco">
   <button type="submit">Consultar</button>

</form>

É isso!

Melhor sistema para buscar endereço pelo CEP em PHP


Trazemos aqui um recurso avançado, e ao mesmo tempo muito simples de se fazer, para cadastrar um endereço num sistema em PHP pegando os dados (rua, complemento, bairro, cidade, estado) pela digitação apenas do CEP.

Vamos dizer que você tem um formulário numa página (index.php, por exemplo) com o campo para o usuário digitar o CEP:

<form method="post" action="funCEP.php">
   <input type="text" maxlength="8" name="cep" id="cep">
   <button type="submit">Consultar</button>
</form>

Então o usuário digita o CEP e clica no botão para enviar o formulário ao arquivo php que fará a consulta no sistema ViaCep, que por sua vez retorna os valores caso o valor de CEP fornecido for válido.

A mágica está então no arquivo funCEP.php: primeiro, ele pega a variável do CEP enviada pelo formulário e executa uma função para extrair somente os números (pode ser que o usuário tenha inserido uma letra ou um traço separador). Daí, ele pega os números extraídos e os submete ao banco de dados do ViaCep retornando os campos (logradouro, bairro, cidade, etc.).

O código completo do arquivo funCEP.php é este:

<?php
$str = $_POST['cep'];
// extrair só números da variável
function soNumero($str) {
    return preg_replace("/[^0-9]/", "", $str);
}
$ecCEP = soNumero($str);
$num = strlen($ecCEP);
// em caso de erro
if ($num <> 8) {
  echo "CEP inválido";
// se tudo certo com o CEP
} else {
  // pegar endereço pelo CEP
  function get_endereco($cep){
    $url = "http://viacep.com.br/ws/$cep/xml/";
    $xml = simplexml_load_file($url);
    return $xml;
  }
  $endereco = (get_endereco("$ecCEP"));
  // guardando variáveis
  $ecRua = $endereco->logradouro;
  $ecEndComp = $endereco->complemento;
  $ecBairro = $endereco->bairro;
  $ecCidade = $endereco->localidade;
  $ecUF = $endereco->uf;
}

Daí é só pegar as variáveis com cada detalhe do endereço e usá-las para salvar em seu banco de dados ou apenas exibi-las no próprio arquivo funCEP.php, por exemplo:

echo $ecCidade;