helyoWAP |
|
PÁGINAS DINÂMICAS PHP+WML+MySQL EM AMBIENTE APACHE (1) |
|
Autores: Helio Fonseca Rosa |
Esta página contém 2 figuras. Aguarde a carga se a conexão estiver lenta.
Última atualização em 19/11/2002
O futuro tutorial usará as seguintes
ferramentas:
- Servidor Apache 1.3.26
- Interpretador PHP 4.2.2
- Data base MySQL 3.23.51
- Simulador de celular WAP OWG1 da Openwave.
Para quem já conhece e possui instaladas estas ferramentas,
estamos elaborando um "TUTORIAL REDUZIDO"(logo
abaixo).
Para principiantes, para quem não domina ou não possui algumas dessas
ferramentas, está em elaboração o TUTORIAL : PÁGINAS
DINÂMICAS PHP+WML EM AMBIENTE APACHE, mais detalhado (veja
mais abaixo)
Por favor, lembrem-se que estas são apenas anotações de estudo, bem distantes
de um texto final.
Sugestões, comentários e críticas são sempre bem-vindas.
(Início: 18/AGO/2002)
(Atualizado em 25/AGO/02)
TUTORIAL REDUZIDO
Direto ao ponto.
O objetivo imediato é verificar como estas ferramentas interagem.
Temos um simplíssimo banco de dados construído utilizando-se as linhas de
comando MySQL no console do DOS.
Este banco/exemplo é constituído de apenas uma tabela, um registro e dois
campos.
O nome do banco é database_01; a tabela chama-se table_01 e o
conteúdo dos campos deste registro único é "Monteiro" e
"Lobato".
Eis uma cópia do console do DOS correspondente:
C:\WINDOWS>cd
c:\ C:\>cd mysql\bin C:\mysql\bin>mysqladmin create database_01 C:\mysql\bin>mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 10 to server version: 3.23.51 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> use database_01 Database changed mysql> create table table_01 (field01 (char10),field02 char(10)); Query OK, 0 rows affected (0.05 sec) mysql> show tables; +---------------------------+ | Tables_in_database_01 | +---------------------------+ | table_01 | +---------------------------+ 1 row in set (0.00 sec) mysql> show columns from table_01; +---------+------------+-------+-------+----------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+------------+-------+-------+----------+-------+ | field01 | char(10) | YES | | NULL | | | field02 | char(10) | YES | | NULL | | +---------+------------+------+-------+-----------+-------+ 2 rows in set (0.06 sec) mysql> insert into table_01 (field01,field02) values ('Monteiro','Lobato'); Query OK, 1 row affected (0.05 sec) mysql> select * from table_01; +------------+---------+ | field01 | field02 | +------------+---------+ | Monteiro | Lobato | +------------+---------+ 1 row in set (0.05 sec) mysql> |
Num ambiente de servidor Apache,
um programa chamado con_wml01.php, mesclando scripts PHP com linguagem
WML, consultando o banco MySQL, gera o resultado abaixo, mostrado na tela do
simulador OWG1, da Openwave (ex-Phone.com):
Programa con_wml02.php (código):
<?php // send wml headers header("Content-type: text/vnd.wap.wml"); echo "<?xml version=\"1.0\"?>"; echo "<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\"" . " \"http://www.wapforum.org/DTD/wml_1.1.xml\">"; ?> <wml> <card id="card1" title="Prog con_wml02.php"> <p align="center"> ***HelyoWAP***<br/> WAP/PHP/MySQL/Apache<br/> Primeiro teste:<br/> </p> <p> <?php $conectar = mysql_connect("localhost", "root"); mysql_select_db("database_01",$conectar); $result = mysql_query("SELECT * FROM table_01",$conectar); printf("Nome: %s<br/>\n", mysql_result($result,0,"field01")); printf("Sobrenome: %s<br/>\n", mysql_result($result,0, "field02")); ?> </p> </card> </wml> |
Comentários:
O programa con_wml02.php foi gravado no diretório
raiz ou "pasta de trabalho" do servidor Apache - htdocs.
Assim, o endereço do programa é : C --> Arquivo de Programas -->
Apache Group --> Apache --> htdocs --> con_wml02.php.
O trecho
de código em azul é o preâmbulo comum à todos os programas PHP/WML.
O trecho em vermelho é o script PHP.
O trecho em preto corresponde à programação WML.
Lembrando o estabelecimento da conexão, seleção e consulta ao
banco:
1. A função mysql_connect("localhost", "root")
estabelece uma conexão entre o servidor Apache ("localhost") e
o servidor MySQL, com o nome-de-usuário "root". O resultado da conexão
é armazenado na "variável de conexão" $conectar.
2. Já vimos que o nome do banco é database_01. A função mysql_select_db("database_01",$conectar)
informa ao PHP que as consultas serão feitas ao database_01.
É um processo de seleção do banco, pois podem existir vários.
3. A consulta ao banco é feita pela "sentença ou função query"
mysql_query("SELECT * FROM table_01",$conectar) que envia uma
linha SQL ao servidor MySQL, usando a variável de conexão. O resultado
é armazenado em $result.
No campo de endereço do simulador de celular WAP deve ser digitado: http://localhost/com_wml02.php.
Podemos observar o código fonte
da página exibida: no simulador OWG1, abra o menu "Info" -->
"Source" e maximize a janela tipo DOS "Phone Information"
(normalmente minimizada no rodapé da tela do micro) .
Vemos abaixo uma listagem "copiada/colada" desta janela: aqui
materializa-se o conceito de páginas dinâmicas: o código que retornou
do servidor é diferente daquele que solicitou a página - os scripts
desaparecem e são substituídos pelos dados montados "on-the-fly".
Confira.
<?xml
version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card id="card1" title="Prog con_wml02.php"> <p align="center"> ***HelyoWAP***<br/> WAP/PHP/MySQL/Apache<br/> Primeiro teste:<br/> </p> <p> Nome: Monteiro<br/> Sobrenome: Lobato<br/> </p> </card> </wml> |
Sobre o simulador OWG1:
trata-se de um simulador robusto e bem testado mas...tem suas
"manhas"...
Algumas dicas rápidas e práticas:
a. Prefira usar o simulador com o mínimo possível de janelas abertas no micro
ou programas rodando em plano secundário.
b. Não esqueça de "ligar" o servidor Apache e "desligar" o
servidor PWS (ou outro em uso).
c. Ao copiar/colar uma listagem (como as exibidas acima) para teste, prefira
usar o "Bloco de Notas" que elimina formatações indesejadas e/ou
ocultas.
d. Para rodar o programa no simulador, prefira o procedimento de ressaltar o
campo de endereço, abrir o menu "Edit" e clicar em "Reload".
d. Depois que o simulador deu mostras que está operacional (seu programa
funcionou ou foi exibida uma mensagem de erro), uma boa prática para
corrigir/atualizar é deixar abertas simultaneamente as janelas do simulador, do
Bloco de Notas e do DOS (Phone Information).
Como curiosidade e para comparação, aqui está
a versão PHP/HTML para exibição pelo browser.
Programa con_html02.php (código) e o o resultado
visualizado pelo browser:
<html> <body> <?php $conectar = mysql_connect("localhost", "root"); mysql_select_db("database_01",$conectar); $result = mysql_query("SELECT * FROM table_01",$conectar); printf("Nome: %s<br>\n", mysql_result($result,0,"field01")); printf("Sobrenome: %s<br>\n", mysql_result($result,0,"field02")); ?> </body> </html> |
Comentário: o programa PHP/HTML foi gravado na pasta htdocs que é o diretório raiz do servidor Apache, com o nome de con_html02.php.
Referências:
Nas pesquisas, estão sendo visitados os
seguintes sites, artigos ou páginas (na ordem das visitas):
PHP
e WML - TUTORIAL
(http://www.praianet.com/tutoriais/php/wml/phpwmltutorial.php) Visite!
Site de
origem: http://www.zend.org/
Link do artigo: http://www.zend.org/zend/tut/wap.php
Site de origem: PHP
Builder (http://www.phpbuilder.com/)
Visite!
Link do artigo: http://www.phpbuilder.com/columns/mike20010118.php3
Site de origem: http://www.alimar.co.uk/
Visite!!!
Link: http://www.alimar.co.uk/devforum/misctips/example_of_php_and_wap.htm
Site de origem: http://www.devshed.com
Visite!
Link: http://www.devshed.com/Server_Side/PHP/PHP_WAP/page1.html
Visite!
DevArtivles ( http://www.devarticles.com/index.php)
Visite!
http://www.devarticles.com/content.php?articleId=85&page=4
WeberDev (http://www.weberdev.com/index.php3) Visite!
Site: GeekBrasil http://www.geekbrasil.com.br Colunas --> PHP Visite!
http://www.gimpster.com/php/tutorial/index.php Visite!
http://www.webestilo.com/php/php01.phtml Visite!
Site PHPBRASIL
http://phpbrasil.com/ Visite!
1. Instalando o PWS e
PHP/MySQL em plataformas Windows http://phpbrasil.com/articles/article.php/id/188
2. PHP + Banco de Dados Access http://phpbrasil.com/articles/article.php/id/253
Site SUPER PHP - Comunidade PHP
Brasileira http://www.superphp.com.br/home/index.php
WirelessBRASIL Portal helyoWAP Anterior Próxima |