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


Nota dos autores: Esta página contém apenas anotações do estudo que estamos fazendo visando a organização de um Tutorial sobre páginas dinâmicas mesclando códigos WML com scripts PHP em ambiente Apache e database MySQL.
O conteúdo estará sofrendo modificações e adaptações a todo instante, sem prévio aviso.
A idéia é tornar disponível, desde logo, os primeiros resultados, compartilhando-os com os leitores
Agradecemos a compreensão.

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.phpVisite!
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