quinta-feira, 16 de dezembro de 2010

Apresentação de Slides em duas telas

Muitas pessoas fazem apresentações utilizando um laptop/notebook e um datashow. Mas me parece que poucas pessoas conhecem os truques para facilitar a apresentação utilizando as duas telas.

Descobri por acaso que é muito útil utilizar as duas telas com informações diferentes em cada tela. Usando as versões mais novas do PowerPoint é muito fácil fazer a configuração. Basicamente são três passos:

1) Ajustar as configurações de vídeo do computador para que o datashow seja uma extensão de vídeo. Procure as configurações de vídeo e ajuste para utilização de duas telas onde uma é a extensão da outra. Coloque a tela do notebook como sendo a tela principal (tela 1), e ajuste para a resolução usual. Coloque o datashow para a tela secundária (tela 2) e ajuste para uma resolução de 800 por 600.

2) Abra sua apresentação no PowerPoint e procure nas abas de cima pela aba de Apresentação de Slides. Veja no lado direito e configure: a) Resolução 800 X 600 b) Mostrar Apresentação em: Monitor 2 c) Clique em Usar Modo de Exibição do Apresentador.

3) No lado esquerdo, escolha fazer apresentação a partir do primeiro slide. Veja que no datashow aparece a apresentação normal, e no laptop aparece uma tela com uma miniatura da apresentação, um temporizador (mostrando quanto tempo já utilizou na apresentação), uma mostra pequena dos slides adjacentes, e o campo de anotações (lembretes importantes para o apresentador). Edite seus slides colocando lembretes no campo de anotações para lhe auxiliar na apresentação.

Lembre de ficar olhando para a plateia enquanto faz sua apresentação. Tenha a tela do laptop virado para você, e assim o público não vê suas anotações.

Boa apresentação.

quinta-feira, 25 de novembro de 2010

Utilização de Sessão em PHP

Utilização de Sessão em PHP



Uma coisa que tenho utilizado nas minhas programações em PHP é o acesso restrito a certas páginas. Como mencionei no meu tutorial sobre Campos interessantes em um banco de dados MySQL, eu gosto de colocar um campo de "level" (nível) de usuário no banco de dados de membros. Assim fica fácil liberar ou restringir de acordo com o nível do usuário.

Na programação em PHP eu utilizo a variável $_SESSION para salvar informações sobre a pessoa que está visitando o site. Se o usuário não efetuou o login, não tem informações na variável $_SESSION. Se fez o login, eu salvo informações do usuário, tipo nome completo, nível e data da última visita.

No início de cada página PHP, é colocado o seguinte código:
if(session_id() == "") session_start(); # Isto garante que a sessão seja inicializada
if(!isset($_SESSION['user']) ) {
    if(isset($_POST['user']) && isset($_POST['password'])) {
        $row['user'] = $_POST['user'];
        $password = $_POST['password'];
        $crypt_password = crypt($password, $row['user']);
        $read = user_read($row);
        if(($read == 1) && ($row['password'] == $crypt_password)) {
            $_SESSION['user_level'] = $row['user_level'];
            if($row['user_level'] > 0) {
                $_SESSION['user_is_logged_in'] = true;
                $_SESSION['user'] = $row['user'];
                $_SESSION['full_name'] = $row['full_name'];
                $_SESSION['last_date'] = $row['last_date'];
            }
            $row[last_date] = date("Y/m/d");
            user_write($row);
        }
    }
}

Todo código após a primeira linha pode ser colocado em uma rotina, inclusive em um outro arquivo para ser acessado por todas as páginas do site.

Note que após a identificação do usuário, são salvos vários dados do usuário na variável $_SESSION. Também é importante observar que primeiro é salvo na variável $_SESSION o valor da última visita, depois é atualizado para o dia de hoje, no banco de dados.

Veja também que a função user_read($row) lê os dados do usuário do banco de dados, e a função user_write($row) escreve os dados do usuário no banco de dados.

Após a execução dos códigos acima, podemos executar códigos condicionais dependendo do nível do usuário, da seguinte maneira:
if($_SESSION['user_level'] >= 1) {
   echo("Usuário autenticado!");
}

quarta-feira, 3 de novembro de 2010

Programando no MatLab

Programando no MatLab


Sou programador de C já faz um bom tempo (desde 1986). Recentemente fui apresentado ao MatLab de maneira meio por necessidade, e fiquei apavorado com a quantidade de arquivos pequenos que podem ser gerados, pois cada função tem que ter seu próprio arquivo ".m"

Se divido o meu fluxo de programa em sub-rotinas ou funções,  cada uma tem que ter seu próprio arquivo. Então a solução para manter o número de arquivos sob controle é colocar muitas coisas em uma única função. Para fazer isto de maneira ordenada no MatLab, que é uma linguagem interpretada, deve ser utilizado o comando "switch" com vários "case"s.

O MatLab permite passar um número variável de variáveis para uma rotina ou função. Então é viável utilizar algo desta maneira:

function [s1 s2] = faz_tudo(o_que, p1, p2, p3)
  switch o_que
    case 'plota'
        % p1 contém os dados a plotar, plot1 é a TAG do elemento onde deve ser plotado o gráfico.
         plot(handles.plot1, p1);
    case 'liste'
       % p1 contém a lista a ser mostrada
        % p2 é o "handle" que aponta para a matriz de elementos.
        set(p2.lista1, 'String', p1);
  end % fim do case
end  % fim da função.

Desta forma, cada pedacinho que seria uma função separada, fica dentro de um case. Basta chamar a função faz_tudo passando os parâmetros necessários para aquele "case".  Usa-se as primeiras variáveis (p1, p2, p3) e passa apenas a quantidade que precisar para cada caso ("case"). Desta forma só precisa de uma função faz_tudo, e cada "rotina" fica dentro do seu próprio "case", eliminando uma série de arquivos pequenos.

É claro que se a rotina crescer muito, poderá merecer o seu próprio arquivo, e não ser apenas um case no faz_tudo.

Utilizando a sugestão proposta acima, poderá ser criado uma espécie de biblioteca de funções úteis, tudo em um único arquivo. Cada função seria um case da função "biblioteca". Assim não será necessário re-escrever tudo (ou copiar diversos arquivos) para cada novo projeto. Basta copiar o arquivo "biblioteca" e já estará meio caminho andado para a conclusão de seu novo projeto.

Utilizando a interface gráfica do MatLab

MatLab GUI(de)


O uso básico da interface gráfica do MatLat (Matrix Lab) é relativamente simples de programar. Existem poucos campos que precisam ser configurados para integrar a interface gráfica aos seus programas.

A parte mais complicada é feita fora do ambiente MatLab. Inclusive deve ser feito preferencialmente fora do computador. Esta parte é o rascunho utilizando lápis e papel para definir o que vai aparecer em sua tela. Quais as plotagens que serão feitas, e onde vão aparecer? Quais os controles, quais os tipos de caixas interativas serão utilizadas e onde vão aparecer?

A interface gráfica do MatLab oferece diversos recursos para entrada de dados: Botão, Lista, Controle deslizante, caixa de entrada de texto, etc. Também oferece diversos tipos de saída como plotagem 2D, Saída de texto e painel.

Uma vez definindo o que vai aparecer na sua tela, e onde, então deve se partir para a implementação da interface utilizando o GUI(de). Pode ser chamado digitando GUI na linha do MatLab, ou escolhendo File->New->GUI no menu. Uma vez inicializado o editor gráfico, comece escolhendo no menu os botões, controles, e área de plotagem desejado. Ajuste o tamanho de cada elemento.

Existem basicamente dois elementos que necessitam ser definidos, para integrar com os seus programas: as propriedades e os callbacks.

No editor de propriedade você tem acesso a muitos elementos relativos a cada objeto. (Para acessar o editor de propriedades, clique no botão da direita, enquanto o mouse estiver sobre o elemento, e escolha "Property Inspector". Não fique assustado com a quantidade de propriedades, pois a maioria pode deixar como estar. A minha sugestão é alterar o mínimo possível, ou seja, uns 2 ou 3 elementos.

Veja que as diversas propriedades estão listadas em ordem alfabética. Procure o item chamado "Tag". Este é o nome que será chamado dentro do seu programa para interagir com este elemento (mais a este respeito será discutido abaixo). Sugiro que mude o TAG para alguma coisa fácil de lembrar a que se refere. Pode mudar o nome do primeiro plot para plot1 por exemplo. Uma outra propriedade que pode querer alterar é chamado de "String". Se for uma caixa de texto, este será o texto mostrado (até sera alterado) na caixa. Pode ser mudado para instruir o usuário do programa, ou pode ser deixado em branco. Se o elemento for texto, poderá alterar também o tamanho das letras, alterando o FontSize (inicialmente é definido como sendo 8).

Depois de definir as propriedades de cada elemento, é necessário definir a interação com o programa. Isso é feito usando "callback". Os callbacks são pequenas rotinas que são executadas quando acontece algum evento (clique do mouse, digitação de texto, etc). Cada elemento de sua interface gráfica tem os seus próprios callbacks. Deve ter um callback para a criação do elemento, outro quando deletar o elemento, e outro quando houver alguma intervenção do usuário (via teclado ou mouse). Estas funções devem conter o que fazer quando o usuário interage com o programa. Exemplo: quando o usuário altera alguma entrada, o gráfico deve ser plotado novamente. Se um valor for alterado, a variável deve ser atualizada.


A atualização de algum elemento é feito utilizando o comando "set".
set(handles.texto1,'String','Testando minha interface');
set(handles.temperatura1,'Value','25');
No primeiro "set" temos a "TAG" chamado de texto1, com o tipo String, cujo valor é "Testando minha interface". Veja que a variável "handles" é na realidade uma matriz com vários elementos e no exemplo só alteramos o elemento "texto1" que é a TAG de acesso ao elemento. No segundo "set" não temos uma "string" e sim um Value, onde será atribuido o valor de 25. A TAG que identifica o elemento neste caso é temperatura1. Cada elemento tem uma TAG que deve ser única no seu projeto. Esta TAG será usada para atualizar o elemento.

No caso de um botão, podemos obter o valor do botão utilizando o comando get.
a = get(handles.plot_type,'Value');
A variável "a" vai conter o valor da elemento cuja TAG é "plot_type".
Para ler um texto de um quadro de texto, cuja TAG é texto1, usamos:
str = get(handles.texto1, 'String');
A variável "str" conterá o texto associado.

segunda-feira, 4 de outubro de 2010

Campos interessantes em um banco de dados MySQL

Campos Interessantes



Como mencionei em um post anterior eu gosto de colocar um id como primeiro campo em qualquer banco de dados. Isto facilita a indexação e a atualização (usando comando REPLACE) de cada ficha no banco de dados.

Outro campo que eu gosto de acrescentar, sempre que crio um banco de dados de pessoas (membros) é um campo de "nível" (level). Normalmente eu coloco com um inteiro, e uso como um conjunto de bits (8 ou 16), onde cada bit pode dar acesso a alguma coisa.

Normalmente crio uma área do site que todas as pessoas possam ter acesso. Uma área anônima, por assim dizer. Depois eu crio outra área que apenas as pessoas identificadas (pelo login) tem acesso. Outras áreas são restritas a gerentes e/ou pagantes, ou ao dono.

Cada área tem um bit associado no campo de nível. Se o bit estiver setado, o membro tem acesso. Se o bit estiver resetado, o membro não tem acesso. Acesso negado.

É claro que depende do caso, mas muitas vezes o acréscimo deste campo elimina a necessidade de ter outras tabelas apenas para administradores. No caso, o administrador é cadastrado normalmente, apenas com os bits de nível setados, para dar acesso a mais áreas do site.

sábado, 2 de outubro de 2010

Utilizando PHP para consultar um banco MySQL


Utilizando PHP para consultar um banco MySQL


Primeiramente uma advertência em relação aos dados de acesso ao banco de dados. Para acessar o banco de dados é necessário informar o nome do computador, do usuário, e sua senha. Minha sugestão em questão de segurança é não colocar estas informações diretamente nos programas PHP. Imagine o que acontece se o servidor web for ativado sem o interpretador PHP? Suas informações de nome e senha para acesso ao banco de dados serão vistos por todos que tentarem acessar suas páginas.

Uma forma bem mais segura é definir variáveis e coloca-las em um arquivo que fica fora da árvore do servidor web. Esse arquivo deve ser incluído (include("arquivo");) pelo PHP. Se o PHP não estiver funcionando, aparecerá nas páginas web apenas o nome das variáveis, mas não o seu conteúdo, preservando assim sua senha e seu login.

Os comandos mais comuns do PHP para acessar um banco de dados MySQL são os seguintes:

  1. $link = mysql_connect ($host_name, $user, $password) or die ("Erro ao conectar ao banco de dados.\n");
  2. mysql_select_db($banco_de_dados, $link) or die ("Erro ao selecionar banco de dados.\n");
  3. $result = mysql_query ("CREATE TABLE IF NOT EXISTS `$tabela` ('id'  bigint(20) unsigned NOT NULL auto_increment, 'login' varchar(20) default NULL, 'nome' varchar(40) default NULL, 'senha'  varchar(20) default NULL, "PRIMARY KEY  (`id`) ) ");
  4. $result = mysql_query ("SELECT * FROM $tabela WHERE id = '$id' ");
  5. $quantidade = mysql_num_rows($result);
  6. $ficha = mysql_fetch_array ($result);
  7. $result = mysql_query ("INSERT INTO $tabela VALUES ('$id', '$login', '$nome', '$senha') ", $link);
  8. $result = mysql_query ("REPLACE INTO $tabela VALUES ('$id', '$login', '$nome', '$senha') ", $link);

O primeiro comando faz a conexão com o servidor MySQL.
O segundo comando seleciona o banco de dados no servidor.
O terceiro comando é utilizado caso queira criar uma tabela no banco de dados.
O quarto comando seleciona dados do banco de dados onde o id da ficha é igual à variável $id.
O quinto comando seta a variável $quantidade igual ao número de fichas encontrado na busca
O sexto comando coloca na variável $ficha (como array de dados) todos os campos lidos da ficha de dados.
O sétimo comando cria uma nova ficha de dados no banco de dados previamente selecionado.
O oitavo comando substitui uma ficha de dados existente no banco de dados previamente selecionado.

Base de Dados MySQL


Base de Dados MySQL



Em algumas ocasiões é interessante fazer consulta a uma base de dados para prover algum conteúdo dinâmico, atualizado. Isso é muito fácil utilizando páginas em PHP.

Uma base de dados em MySQL é composto por tabelas, contendo fichas que contém diversos campos. Repetindo: cada tabela contém um grupo de fichas. Cada ficha é composto por diversos campos. A base de dados mais simples poderá ter apenas uma tabela.

Um exemplo típico de uma tabela é a que contém fichas de cadastro. Os campos na ficha poderão ser, por exemplo: id, login, senha, nome completo, rua, número, complemento, bairro, cep, cidade, estado, país, telefone, celular, nacionalidade, naturalidade, cpf, rg, sexo, conjuge, data de nascimento, etc. etc. conforme a aplicação.

Como pode ser observado, os diversos campos podem ser compostos por tipos de informação diferentes. Os tipos mais comuns são: int (usado para números inteiros), float (ponto flutuante), double (ponto flutuante dupla precisão), date (datas), var char (texto).

Uma dica que eu aprendi depois de criar várias bases de dados, é que fica mais fácil encontrar e editar os dados posteriormente se o primeiro campo for um índice numérico, auto-crescente.

Agora eu normalmente coloco um "bigint", "auto increment", como o primeiro campo, e depois utilizo este valor quando eu quero editar e salvar modificações na base de dados. Anteriormente eu utilizava um campo como o nome ou login para indexar a base. Mas em algumas ocasiões é conveniente modificar o login, e nestes casos, o comando de substituir ("REPLACE") não funciona mais, e acaba criando uma nova ficha. Se usarmos um índice auto-crescente, não podem existir 2 índices iguais, e podemos utiliza-lo para fazer a substituição.

domingo, 25 de julho de 2010

Divulgação

Divulgação do site



Depois que escolheu o conteúdo, a hospedagem e o domínio, é necessário fazer a divulgação do site.

Email: Uma das maneiras mais baratas, mas com pouco alcance, é colocar o endereço no final dos emails, na maioria dos emails que envia. Só quem ver o link é quem recebe um email do autor.

Banners: Algumas pessoas optam por comprar um certo número de visualizações de banners em sites de divulgação. Na maioria dos grandes portais existe a possibilidade de divulgação de banners, a um custo relativamente barato. Outros usam sites de troca de banner (grátis ou pagos).

Busca: Outra maneira bastante utilizada é divulgar pelos serviços de busca. No caso, alguns fazem malabarismos para tentar manter seu site na primeira página de resposta nos sites de busca, para determinadas palavras de busca. Outros pagam para que possa aparecer logo no topo, na página de resposta de buscas.

Publicações: Outros ainda colocam anúncios em revistas, jornais, panfletos e afins.

Domínio

Domínio do site



Uma parte integrante de seu visual na Internet é o domínio de suas páginas. Normalmente deverá ser escolhido um domínio condizente com o produto ou serviço sendo oferecido. Cada tipo de domínio deve indicar algo a respeito do produto ou serviço.

Um domínio terminando em .br indica um site no Brasil. Um domínio com terminação .ca é do Canadá. Um site com terminação .com deveria ser um site comercial nos Estados Unidos, mas isso nem sempre é o caso. Muitas empresas brasileiras usam domínios .com para facilitar a identidade visual. Alguns registram diversos domínios e apontam para o mesmo conteúdo. Dois exemplos bem conhecidos de empresas que registram tanto o domínio .com, quanto o .com.br são Americanas e Globo.

Todos os domínios .br ou .com ou .ca tem um certo custo anual. Alguns sites de hospedagem registam nomes sugestivos e depois criam subdomínios para oferecer a outros, ou gratuitamente, ou por preços reduzidos.

No caso específico do Brasil os domínios são registrados no Registro.br Existe uma lista grande de tipos de domínios possíveis. Existem os tipos normais (com.br, org.br, gov.br, net.br edu.br, etc) e existem para profissionais liberais (como por exemplo eng.br, adm.br, vet.br, jor.br, etc). Existe até domínio específico para pessoas físicas: nom.br.

No caso específico deste meu blog (http://tutoriaisdobob.blogspot.com/) o subdomínio (tutoriaisdobob) foi escolhido para ser bem sugestivo, em relação ao conteúdo do site. No caso foi hospedado gratuitamente no Blogger da Google, com o domínio blogspot.com Quem paga o domínio blogspot.com é a própria Google.

É possível também registrar um domínio no registro.br e apontar para o conteúdo em um provedor de conteúdo gratuito. Basta apontar o DNS no registro.br para os servidores DNS do site hospedeiro das páginas. No meu caso específico, não tenho registrado nenhum domínio pago. Já registrei subdomínios em diversos sites ao longo dos anos. Inclusive tenho registrado domínios onde o conteúdo está em um provedor com IP dinâmico. Neste caso, minha identidade visual tem partes que são de empresas hospedeiras:
rrbrandt.webhop.org
Tutoriais do Bob
rrbrandt.comli.com
Pergunte ao Bob

Hospedagem

Hospedagem de sites na Internet



Uma vez criadas as páginas em HTML, elas tem que ser hospedadas em algum lugar. Existem sites hospedeiros gratuitos e hospedeiros pagos. Se o autor das páginas tiver muita vontade, pode até montar um servidor web próprio para hospedagem de suas páginas.

A decisão de usar um site hospedeiro pago ou gratuito vai depender muito do tipo de presença pretendida, e do orçamento disponível. No meu caso específico, até aqui tenho sempre procurado sites gratuitos, por que minha aplicação é mais para divulgação de tutoriais e teste de alguns aplicativos PHP. Não são para divulgação de serviços pagos. Ou seja como minha divulgação é de hobby, não costumo pagar para hospedar.

Obviamente se a aplicação é um comércio na internet, o usual seria uma hospedagem paga, pois qualquer coisa colocada no site seria tido como propaganda do comércio.

Se a divulgação é de serviços de autônomos, vai depender muito do nível dos serviços a serem prestados. Se um profissional liberal quer divulgar seus serviços poderá optar por um serviço pago, mas na faixa mais barata da escala. Provavelmente vai apresentar algo de seu currículo, localização geográfica de atuação, meios de contato, etc. Provavelmente seriam páginas estáticas.

Conteúdo

Conteúdo de Páginas para marcar presença na Internet



Para ter presença na Internet, é preciso criar uma página e adicionar o conteúdo. No caso da criação de páginas não vou dizer muita coisa porque já existe muita informação na rede a respeito de criação de páginas HTML. Existem muitos programas para criar páginas, e existem também muitos sites de blog que já formatam as páginas automaticamente.

Vou apenas me limitar a dizer que existem páginas estáticas e páginas dinâmicas. As estáticas são aquelas em que a página é escrita e não se modifica. Todos as pessoas que acessam a página estática verão o mesmo conteúdo. Blogs (como esse) em geral tem páginas individuais estáticas. Só são alterados se o autor se logar no serviço e editar a página.

Páginas dinâmicas, por outro lado, mudam constantemente (pelo menos o conteúdo, se não o formato). Páginas de notícias são bons exemplos de páginas com conteúdo dinâmico. Outros exemplos são páginas de estatísticas de utilização e páginas de webcams.

Obviamente o autor da página tem que pensar bastante sobre o que deve ser colocado ou não nas suas páginas. Tem que ser autor das informações e ser responsável por elas.

Também deve ser alguma informação que seja útil aos demais internautas.

Presença na Internet

Para poder promover a sua presença na Internet, são necessários vários itens diferentes. Não sei se posso listar todos, mas pelo menos os principais que estou lembrando são os seguintes:
  1. Conteúdo
  2. Hospedagem
  3. Domínio
  4. Divulgação

quinta-feira, 15 de julho de 2010

PHP com formulário

Este post faz parte da série de programação em PHP.

Vamos fazer uma página de teste em PHP com uma simples contagem da quantidade de vezes que carregamos a página. Não se trata de um contador, pois se fecharmos a página e abrirmos novamente, a contagem volta ao zero. Mas é apenas para mostrar a flexibilidade dos formulários com PHP.

Crie uma página qualquer em PHP e coloque as linhas seguintes:

<html>
<head>
<title>Página de Teste</title>
</head>
<body>
<center><h2>
<?php
$conta=0;
if(isset($_REQUEST[conta])) $conta = $_REQUEST[conta];
echo("<form method=post>");
echo("<input type=submit value=soma>");
$conta++;
echo("$conta<br>);
echo("<input type=hidden name=conta value=$conta>");
echo("</form>");
?>
</h2></center>
</body>
</html>

Explicação do formulário utilizado no exemplo acima. Cria-se a página em PHP com título e corpo. O conteúdo do corpo é centralizado (utilizando o comando html <center> e </center> Depois é inicializado um trecho com programação em PHP.

O primeiro comando em PHP é o de inicializar uma variável chamada $conta, com o valor zero. Segundo comando é para recuperar o valor anterior desta mesma variável, caso tenha sido definido em carregamento anterior do formulário descrito abaixo. Para isso, é testado se existe definição da variável $_REQUEST[conta], caso positivo, seu valor é colocado na variável $conta. $_REQUEST é o nome do arranjo(array) com todas as variáveis definidas no formulário que chamou esta página.

O formulário tem um botão de submissão (submit), e um campo escondido (hidden) contendo o valor de $conta incrementado (adicionado) de um. Também ecoa o valor incrementado de $conta. Portanto na primeira vez que a página é carregada, o $conta começa em zero, e é incrementado por um antes de ser ecoado ao navegador do usuário. A cada vez que o formulário é submetido, o valor anterior é recuperado, incrementado por um e ecoado novamente. Um contador de quantas vezes o formulário foi carregado. Só não serve para contador de páginas, pois toda vez que é carregado no navegador, começa novamente no zero.

Variáveis em PHP

Este post faz parte da série de programação em PHP.

PHP é bastante flexível quanto às variáveis. Ao contrário da linguagem C, as variáveis em PHP não precisam ser definidas formalmente. Podem apenas ser inicializadas e usadas. Toda variável em PHP começa com o cifrão ($).

Veja o seguinte código:
$tmp[0] = "domingo";
$tmp[1] = "segunda";
$tmp[2] = "terça";
$tmp[3] = "quarta";
$tmp[4] = "quinta";
$tmp[5] = "sexta";
$tmp[6] = "sábado";
$tmp[7] = 2010;

Acabamos de definir um arranjo (array) de 8 elementos, onde os primeiros 7 são os dias da semana e o oitavo valor é um número;

Então podemos fazer:
$tmp1 = 3;
echo("Hoje é $tmp[$tmp1]\n");
e vamos ter na tela:
Hoje é quarta

E podemos notar que foi definido uma variável chamada $tmp1 (cujo valor é 3) e um arranjo chamado $tmp[] que contém os dias da semana e mais um número.

Esses arranjos múltiplos são utilizados bastante na consulta a bancos de dados, onde a ficha inteira pode ser transferida para um arranjo, na volta da rotina de consulta. Cada elemento no seu respectivo campo, conforme definido no banco de dados.

Veja agora um programa exemplo, para contar cada vez que envia o formulário.

PHP Funções

Este post faz parte da série de programação em PHP.

A linguagem PHP pode ser organizada em bibliotecas de funções. Para definir uma função é muito simples:

function soma($parametro1, $parametro2)
{
    $parametro3 = $parametro1 + $parametro2;
    return($parametro3);
}
$tmp1 = 4;
$tmp2 = 3;
$soma = soma($tmp1, $tmp2);

echo("$soma\n");

Isso manda um 7 para o navegador do usuário.

Veja agora o uso de variáveis na programação em PHP.

PHP Estrutura de programação

Este post faz parte da programação em PHP.

Como em C e muitas outras linguagens de programação, o PHP permite alterar o fluxo do programa fazendo comparações. Quem tem familiaridade com outra(s) linguagem(s) de programação, não deve ter dificuldade para programar em PHP.

Como comandos de fluxo podemos citar:

if( ) {
    ...
} else {
    ...
};

A comparação pode ser igualdade (==), maior que (>), menor que (<), menor ou igual (<=), maior ou igual (>=), ou diferente, não igual (!=). Podemos comparar strings, inteiros, flutuantes, quase tudo.

O PHP também tem o famoso "for" loop do C.

for($i = 0; $i < 10; $i++)
{
    ...
} e também o:
do {
    ...
} while(..);

E por último vou citar o maravilhoso switch:
switch($tmp) {
    case '1':
        echo("Caso 1\n");
        break;
    case '2':
        echo("Caso 2\n");
        break;
    default:
        echo("Outros casos\n");
        break;
}

Veja agora como utilizar funções na sua programação.

Introdução a PHP

Esta pequena introdução à linguagem PHP destina-se àqueles que já tem noções de programação, mas não conhecem o PHP, e querem aprender. Aqui dou algumas rápidas pinceladas, para que alguém possa começar a usar o PHP. Apenas lembro que o PHP tem muitas funções para diversas aplicações diferentes, e a minha sugestão é que consulte diretamente a página e documentação do PHP online, para outras funções interessantes.

PHP é uma linguagem de programação genérico, muito parecido com a linguagem C. Em ambientes Linux é possível usar diretamente na linha de comando, mas sua utilização mais frequente é integrado com o servidor web Apache.

Uma vez que o PHP esteja instalado, é muito fácil integrá-lo com as páginas web. Basta criar páginas com a extensão .php e invocar o PHP quando precisar, colocando o seguinte comando na página HTML:

<?php comandos_do_PHP ?>

Na linguagem PHP (como no HTML e em C) branco pode ser colocado em diversos lugares e não afeta o resultado. Portanto na maioria das vezes é possível fazer endentações para melhor visualização do código fonte, sem alterar as páginas geradas. Apenas em alguns casos específicos que não se pode acrescentar um espaço em branco.

Em PHP, todo comando termina com ponto-e-vírgula (;)

Um dos comandos mais usados do PHP é o echo, pois tudo que é ecoado, é enviado ao navegador cliente (se não for redirecionado).

O próprio comando echo pode ter diversos delimitadores. Por exemplo, as duas linha seguintes produzem o mesmo resultado:

echo "Primeira frase";
echo("Primeira frase");

É muito comum usar o comando echo para construir partes dinâmicas das páginas. O PHP permite variáveis dentro do echo, e arranjos de texto podem ser criados para depois serem ecoados.

Como exemplo, podemos criar uma variável (toda variável em PHP começa com $) tipo "string" e enviar isto para o navegador. As duas linhas a seguir tem o mesmo efeito de cada uma das duas acima:
$tmp = "Primeira frase";
echo("$tmp");
ou ainda
echo $tmp;

O comando sprintf (emprestado do C) também pode ser utilizado na formatação dos dados:
$tmp = sprintf("Primeira frase");
echo "$tmp";

Veja agora comandos para ajudar na estrutura de programação.

Formulários HTML

Esta secção faz parte do corpo HTML.

Também o uso de tabelas é imprescindível na elaboração de formulários. Formulários são muito importantes, pois para providenciar páginas dinâmicas, precisamos saber o que o usuário quer (ou precisa). Para isso é preciso o usuário nos informar do que está procurando ou qual a informação desejada.

Para utilizar formulários também só precisamos nos lembrar de poucos comandos (e suas inúmeras variações):
  1. <form> Formulário (form) </form>
  2. <input> Campo de entrada de dados (input)
Usamos
<form>
Nome: <input name=nome type=text><br>
<input type=submit value=Enviar> </form>

Para formar isso:
Nome:

Deve ser bastante claro que é necessário alguma programação para que o formulário seja útil.

Tabelas

Esta secção faz parte do Corpo HTML.

Tabelas são bastante úteis na construção de páginas HTML por vários motivos, o principal sendo alinhamento de informações. Exemplos são campos de formulários, partes de imagens, dados em geral.

Para construir uma tabela é bastante fácil, e só precisa se lembrar de 3 comandos básicos.
  1. <table> tabela (table) </table>
  2. <tr> linha (table row) </tr>
  3. <td> dado (table data) </td>
Para construir uma tabela 2 linhas, 3 colunas, fazemos o seguinte:
<table>
<tr><td>11</td><td>12</td><td>13</td></tr>
<tr><td>21</td><td>22</td><td>23</td></tr>
</table> para conseguir isso:
11 12 13
21 22 23


Uma vez colocando tabelas na página, talvez seja interessante usar formulários para enviar informações do usuário ao servidor web.

Listas

Esta secção faz parte do corpo HTML, e em especial à formatação do texto.

Uma outra formatação bastante útil em páginas HTML são as listas. Temos dois formatos de listas mais usados: listas ordenadas (ordered list) e desordenadas (unordered list). Cada uma pode ter inúmeros itens de lista (list items).

Para criar uma lista ordenada usa-se o seguinte comando: <ol> <li>Item</li> <li>Item</li> <li>Item</li> </ol> Que resulta no seguinte:
  1. Item
  2. Item
  3. Item
Para criar uma lista não ordenada, ou desordenada (unordered list) é bastante semelhante: <ul> <li>Item</li> <li>Item</li> <li>Item</li> </ul> Que resulta no seguinte:
  • Item
  • Item
  • Item
Uma outra coisa que pode usar são letras: <OL TYPE=A> Que resulta em algo do tipo:
  1. Item
  2. Item
  3. Item
Outra ferramenta que facilita a formatação de textos são as tabelas.

Formatação

Esta secção faz parte do corpo da página.

A formatação do texto será visualizada de formas diferentes nos diversos navegadores existentes no mercado. Portanto, em muitas ocasiões o conteúdo é mais importante que a formatação. Em todo caso uma formatação simples pode estar em ordem.

Definição de parágrafo: comando "p". Exemplo:

<p>Novo parágrafo</p>


Quebra de linha. Simplesmente <br> Este caso também é exceção, pois não é usual utilizar a conclusão do comando (</br>).

Negrito (bold): <b>Negrito</b>.

Itálico: <i>Italico</i>
<center>Centralização</center>


Um outro tipo de formatação de texto que é bastante importante são as listas.

O Corpo

O que vem antes do corpo é o Cabeçalho.

O corpo da página HTML é tudo o que tem entre o <body> e o </body>. Esta é a parte que será visualizada pelo usuário que esteja navegando pela sua página. Nesta secção é necessário começar com o básico: Links e Imagens.

Para colocar um link para outra página usamos o comando "a". O comando "a" tem uma diferença em relação aos comandos mencionados até aqui, no sentido de que o comando "a" tem um parâmetro (href=endereço) acrescentado no inicio. Exemplo: <a href=http://tutoriaisdobob.blogspot.com>Tutoriais do Bob</a>

Existe a possibilidade de colocar um link para outra parte da própria página usando o comando "a" mas no lugar de colocar o endereço no "href", coloca-se o nome do marcador precedido por #. Fica então assim: <a href="#marcador2">Secção 2</a>

Para colocar o marcador na página usa-se o comando "a" com o "name", da seguinte forma: <a name="marcador2">Item 2</a>.

Para colocar uma imagem na página usa-se o comando "img". Exemplo: <img src=http://www.gravatar.com/avatar/63df39d98e6b45b2733303e4390187f9.png> que é visualizado assim:

Como falamos no inicio do tutorial, existem exceções ás regras. No caso o comando img não termina com </img>. Apenas tem o inicio do comando, e todos os parâmetros já são incluídos ali.

Continue lendo a respeito da formatação do texto.

quarta-feira, 14 de julho de 2010

Meta Tags

Os meta tags devem ser colocados na parte do Cabeçalho.

O que são META TAGS e para que servem?

Os META tags são "etiquetas eletrônicas" usadas para colocar informações adicionais em paginas WEB para uso por parte dos serviços de busca ou os indexadores de paginas. Estas informações podem ser sobre o autor, o conteúdo, ou como indexar e seguir links.

Os Meta Tags devem ser colocados em cada pagina web, no cabeçalho entre o <head> e o </head>

Ex:
<html>
<head>
<meta name="robots" content="follow,index">
<meta name="description" content="Esta pagina mostra ...">
<title> Pagina ... </title>
</head>
</html>

Aqui vamos dar alguns exemplos de META TAGS para uso na criação de páginas. Substitua os textos entre aspas, após a palavra CONTENT, conforme o caso.

  • INDEXAÇÃO: <meta name="robots" content="[NO]INDEX, [NO]FOLLOW"> A intenção deste tag é informar ao robô de indexação se a página pode ou não ser indexado e se pode ou não seguir os links nela contidas.
  • DESCRIÇÃO: <meta name="description" content="Tutoriais do Bob"> A intenção deste tag é para que o serviço de indexação possa fornecer ao solicitante uma breve descrição da pagina (ao invés das primeiras linhas da página). Por causa de abusos de alguns proprietários de sites, este marcador caiu em desuso.
  • AUTOR: <meta name="author" content="Robert Rice Brandt"> Indicação do autor da página.
  • PALAVRAS CHAVE: <meta name="keywords" content="Professor, Engenharia Eletrica"> Indicação de palavras chave da página. Nem todos os serviços de busca utilizam este marcador.
  • NÃO FAZER CACHE: <meta equiv="Pragma" content="no-cache"> Indicação de não colocar no cache do navegador, ou seja sempre vai buscar nova página.
  • FAZER REFRESH AUTOMATICO: <meta equiv="Refresh" content="60"> Indicação para fazer atualização da pagina a cada 60 segundos. (Usado com câmeras de vídeo).
  • FAZER REDIRECIONAMENTO AUTOMATICO: <meta equiv="REFRESH" content="3;URL=http://www.google.com"> Indicação para ficar 3 segundos na pagina atual, depois redirecionar para a pagina indicada.
Para continuar aprendendo neste tutorial, vá para o corpo.

O Cabeçalho

Se perdeu a parte anterior, então vá para Introdução a HTML parte 2.

O Cabeçalho HTML é tudo aquilo que fica entre o <head> e o </head> Nenhum dos comandos colocados nesta secção são mostrados diretamente. São comandos destinados ao navegador ou aos serviços de busca e indexação.

Um dos comandos que deve estar presente no cabeçalho, é o título dá página. O título é destinado ao navegador para ser colocado na barra de cima do navegador. Não é visualizado dentro da janela do navegador. O título é definido com o comando title. Ou seja, começamos o título com <title> e terminamos com </title>.

No cabeçalho também pode haver vários outros comandos. Podemos citar aqui comandos para redirecionar a página para outra, ou recarregar a pŕopria página, após um tempo determinado, bem como comandos para indicar o que deve ou não ser indexado pelos serviços de busca.

Estes comandos são chamados de META TAGS.

Introdução a HTML - parte 2

Se perdeu a primeira parte deste tutorial, vá para Introdução a HTML. Como toda linguagem, o HTML tem diversas regras para sua construção. E como toda regra, existem algumas exceções. Vamos começar listando algumas regras da linguagem HTML.
  • A linguagem HTML entende um espaço (SPACE) ou uma tabulação (TAB) como sendo espaço em branco. E entende também que 1 espaço em branco é igual a 10 espaços em branco ou 99 espaços em branco. Não importa o número de espaços em branco, aparece apenas 1 na tela. Não se pode pensar em formatação de texto usando apenas espaços em branco.
  • A linguagem HTML utiliza os símbolos "<" e ">" para separar o texto dos comandos. Ou seja, os comandos HTML são demarcados assim: <comando_html> texto texto </comando_html> texto texto texto<comando_html></comando_html>
  • A maioria dos comandos em HTML começa com <comando> e termina com </comando> ou seja, a barra (/) antes do nome do comando indica a conclusão daquele comando. Como exemplo, podemos dizer que toda página HTML começa com <html> e termina com </html>.
  • Toda página deve ter uma secção que começa com <html> e termina com </html>. Dentro desta secção deve ter duas outras: head e body. Ou seja o esqueleto de uma página web deve ser: <html><head> ... </head><body> .... </body></html>
  • Entre um comando e outro poderá haver espaços em branco que não afetarão a diagramação da página final. Ou seja, os comandos podem ser escritos de forma corrida como no item acima, ou podem ser formatados para ficar bem bonito, um abaixo do outro, e até com endentação. <html> <head> ... </head> <body> ... </body> </html>
Para continuar lendo o nosso tutorial, siga para o cabeçalho.

Criando páginas HTML - Introdução a HTML

HTML significa Hyper Text Markup Language, ou seja, é simplesmente uma linguagem de marcação em hipertexto. É a linguagem utilizada para criação de páginas na Internet, ou páginas WEB.

O nosso tutorial vai mostrar como é fácil criar páginas para a Internet, quando se conhece um pouco da linguagem HTML. Esse tutorial é direcionado principalmente para pessoas que querem aprender o HTML para depois criarem páginas dinâmicas utilizando a linguagem PHP.

Obviamente nosso tutorial será dividido em diversas partes, para que a página do blog não fique demasiadamente grande. Também diremos logo do começo que este tutorial não será um tutorial "completo", pois não serão mostrados todos os comandos HTML, apenas os mais básicos que são necessários para criação de conteúdo dinâmico com o uso de scripts em PHP.

Poderá servir também para uma consulta rápida por usuários que esqueceram a sintaxe de algum comando, ou como fazer uma determinada parte do HTML.

Para continuar com a Introdução a HTML, vá para a Introdução a HTML parte 2.