Escolar Documentos
Profissional Documentos
Cultura Documentos
(Bacharelado)
BLUMENAU, DEZEMBRO/2001
2001/2-07
ii
BANCA EXAMINADORA
SUMRIO
LISTA DE FIGURAS ............................................................................................................... V
DEDICATRIA.......................................................................................................................IX
AGRADECIMENTOS .............................................................................................................. X
RESUMO .................................................................................................................................XI
1 INTRODUO ..................................................................................................................... 1
3 FERRAMENTAS .................................................................................................................. 7
5 CONCLUSES ................................................................................................................... 46
LISTA DE FIGURAS
LISTA DE QUADROS
LISTA DE SIGLAS
B2B Bussines-to-Bussines
B2C Bussines-to-Consumer
DEDICATRIA
Eu gostaria de dedicar meu esforo para o trmino deste trabalho a minha famlia que
apostou muito na minha capacidade, alm de minha namorada e amigos que tiveram um papel
muito importante para a concluso deste trabalho.
x
AGRADECIMENTOS
Agradeo as pessoas que sabiam que eu era capaz de desenvolver este trabalho por si
prprio. Alm de pessoas que me ajudaram momentos muito importantes como o prof. Wilson
Carli. Agradeo tambm a fora que a galera de Lages, meus amigos, tanto nas horas boas
como nas ruins, mas sempre me apoiando, sabendo que eu iria terminar por mais demorado
que fosse. Muito obrigado a todos, principalmente minha famlia que ao passar destes anos da
faculdade aumentou muito, pois so muitos novos irmos, colegas que se tornaram irmos.
xi
RESUMO
ABSTRACT
The work consists of the specification and implementation of a site of electronic trade
using PHP and MySQL, for a store of tools, construction materials and wood, placed in the
area of Lages (SC). The application is developed in PHP that access the database MySQL and
it allows that only registered users accomplishes purchases, besides sending e-mails of
promotions and advertising to the customers. The application has as purpose helping the
company in the taking of decision in its business.
1
1 INTRODUO
De acordo com Ean Brasil (1999), automao comercial consiste na informatizao de
todas as operaes internas da empresa, bem como na integrao desses processos internos
com o mundo externo e at mesmo com os consumidores, alm de contribuir decisivamente
para que as empresas comerciais conquistem e mantenham a clientela e obtenham lucros
adicionais. A automao comercial visa a racionalizao dos processos, eliminao de tarefas
que no agregam valor, minimizao de erros, melhoria do atendimento, aproveitamento da
informao. Como conseqncia a automao comercial confere maior produtividade e
confiabilidade aos processos da empresa, propiciando-lhe claras vantagens competitivas. Em
termos bem prticos, atravs da automao comercial o lojista pode obter lucros adicionais e
cativar a clientela.
Como pode-se fazer quase tudo no mundo virtual (comprar, vender, trocar
informaes, visualizar relatrios), a possibilidade de gerenciar informaes correlatas a estes
contratos a distncia atravs de acesso a banco de dados via Web, est se tornando uma
realidade. Uma das tecnologias atualmente disponveis so as de programao via Internet,
que fazem com que o Hiper Text Markup Language (HTML), antes inflexvel, transforme-se
em algo mutante e totalmente dinmico. O Personal Home Page Tools (PHP), que uma
tecnologia de scripts que rodam no servidor, Server-side, ou seja, sua interpretao feita
2
integralmente pelo servidor, sendo apenas a resposta (output) enviada ao cliente. Assim a
empresa difere das outras, estando disponvel para o cliente durante 24 horas por dia, sete dias
por semana, pois com o site, o cliente pode se comunicar a qualquer hora, fazer compras,
pesquisar preos e ofertas.
d) aproveitar no somente para controle interno, mas tambm para B2C, a infra-
estrutura que a empresa oferece;
O quarto captulo deste trabalho sobre a linguagem PHP, sua estrutura, suas
variveis, operaes, funes e resultado na Web.
2 COMRCIO ELETRNICO
Conforme Hartman (2000), a Internet est conduzindo uma economia eletronicamente
processada que cria oportunidades para pases, empresas e indivduos em todo o mundo, como
jamais se registrou na histria. Observando-se a crescente utilizao da Internet em todo o
mundo, o grande interesse das organizaes em fazerem um uso produtivo e adequado de seus
recursos como ferramenta de marketing e comunicao, verifica-se a importncia do tema
para a sociedade.
O B2C pode no ser atraente hoje, mas com certeza ter um papel importante como
servio adicional, criando e estreitando relacionamentos com bons clientes e aumentando a
convenincia do processo de compras. E entrar neste negcio hoje apresenta menos riscos,
uma vez que as lies dos pioneiros podem ser apreendidas. Uma das lies principais ter
uma estratgia bem definida de comrcio eletrnico e criar condies para que a loja virtual
realmente proporcione uma experincia de compra prazerosa e bem sucedida aos seus
clientes. Conhecer o cliente e o por que esto indo fazer compras na loja virtual condio
essencial para uma operao bem sucedida de B2C.
Na prtica o cliente entra em uma determinada pgina porque quer fazer uma compra.
Ele quer apenas duas alternativas: clicar no produto para comprar ou clicar no boto de sada
ou retorno, porque no se interessou pelo produto.
7
3 FERRAMENTAS
O Microsoft Personal Web Server (PWS) um servidor Web de rea de trabalho que
permite publicar home-pages e compartilhar documentos na rede corporativa diretamente do
prprio computador. O PWS como uma plataforma de desenvolvimento em etapas antes de
carregar o site num provedor Internet. O servidor Web de um site da Internet, coloca os
documentos disposio dos visitantes da Internet, atravs do navegador Web da sua Intranet
corporativa (Microsoft Corporation, 1998).
Para adicionar diretrios virtuais, o PWS cria um diretrio onde pode ser colocado
qualquer arquivo a ser publicado em um Web site. Tambm podem ser criados diretrios
adicionais para scripts, por exemplo, para publicar seu contedo.
Executar permite que qualquer aplicao ou script seja executado neste diretrio. Por
questes de segurana, no aconselhvel ativar esta permisso para um diretrio.
Scripts permite que scripts sejam executados sem a necessidade de que a permisso
Executar esteja setada. utilizada para diretrios que contenham scripts PHP, ASP, IDB,
entre outros. Esta permisso mais segura que a Executar porque pode limitar as aplicaes
que podem ser executadas neste diretrio.
Uma das vantagens do PHP, que o cdigo executado no servidor, sendo enviado ao
cliente apenas HTML puro. Assim ento interagir com o banco de dados e aplicaes
existentes no servidor, no expondo o cdigo fonte para o cliente. Outra vantagem que
tambm possvel utilizar outras linguagens de script, como o Javascript, dentro do cdigo
PHP. O PHP tambm tem como uma das caractersticas mais importantes o suporte a um
grande nmero de bancos de dados. E com o PHP, torna-se uma tarefa simples a construo
10
de uma pgina baseada em um banco de dados. Alm disso, o PHP tem suporte a outros
servios atravs de protocolos como IMAP, SNMP, NMTP, HTTP e POP3. Ainda possvel
abrir sockets e interagir com outros protocolos.
A linguagem PHP foi concebida durante o outono de 1994 por Rasmus Lerdorf. As
primeiras verses foram utilizadas em sua home-page apenas para que ele pudesse ter
informaes sobre as visitas que estavam sendo feitas. A primeira verso utilizada por outras
pessoas foi disponibilizada em 1995, e ficou conhecida como Personal Home Page Tools
(ferramentas para pgina pessoal). Era composta por um sistema bastante simples que
interpretava algumas macros e alguns utilitrios que rodavam por trs das home-pages: um
livro de visitas, um contador e algumas outras coisas.
Por volta de 1997 houve uma mudana no desenvolvimento do PHP. Ele deixou de ser
um projeto de Rasmus com contribuies de outras pessoas para ter uma equipe de
desenvolvimento mais organizada. Conforme Valda (2000), o interpretador foi escrito por
Zeev Suraski e Andi Gutmans. Este interpretador acabou sendo a base para a verso 3.
Cdigo PHP sempre comea com <?php, ou simplesmente <?, podendo colocar
vrios scripts PHP em uma pgina e concatena-los com tags HTML. Para fechar o script
utiliza-se ?>, podendo dentro destes atribuir valores a variveis, chamar funes, acessar o
banco de dados, formatar resultados entre outros recursos do PHP. Ao fim de cada linha de
11
Assim pode-se misturar HTML e PHP, pois desta forma no preciso se preocupar
com a formatao dos dados de sada. Basta coloca-los no formato HTML e inserir o cdigo
PHP para gerar os dados dinmicos. (Quadro 1).
Como mostra o Quadro 1, existem comandos PHP e tags HTML combinados E este
um dos motivos que faz com que o PHP seja uma ferramenta de autoria em Web, pois o valor
atribudo a uma varivel continua vlido at o trmino do processamento desta pgina. Desta
forma pode-se, ler o banco de dados e armazenar os valores encontrados em variveis do
PHP, liberar o buffer e continuar usando os valores por toda a pgina do PHP.
12
As variveis locais so aquelas declaradas dentro de uma funo e que fazem parte
somente da mesma. As variveis estticas so uma adaptao das variveis locais para que o
valor atribudo a elas dentro da funo no seja perdido quando a mesma funo terminar
conforme o Quadro 8.
O PHP possui diversas variveis de ambiente, como a $PHP_SELF, por exemplo, que
contm o nome e o path do prprio arquivo. Algumas outras contm informaes sobre o
navegador do usurio, o servidor HTTP, a verso do PHP entre outras. Para se obter uma
listagem de todas as variveis e constantes de ambiente, e seus respectivos contedos, deve-se
utilizar a funo phpinfo().
A funo que verifica o tipo de uma varivel usada em virtude da tipagem dinmica
utilizada pelo PHP. Nem sempre possvel saber qual o tipo de uma varivel em determinado
instante se no contar com a ajuda de algumas funes que ajudam a verificar isso. Esta
verificao pode ser feita de duas maneiras:
Funo que retorna o tipo da varivel: Esta funo a gettype, onde sua assinatura a
seguinte: string gettype (mixed var). A palavra mixed indica que a varivel var pode ser de
17
diversos tipos. Ela retorna os seguintes strings: integer, double, string, array,
object, e unknow type;
A destruio de uma varivel torna-se possvel desalocando uma varivel se ela no for
usada posteriormente atravs da funo unset, que tem a seguinte assinatura: int unset (mixed
var).
A funo destri a varivel , ou seja, libera a memria ocupada por ela, fazendo com
que ela deixe de existir. Se posteriormente for feita uma chamada a varivel, ser criada uma
nova varivel de mesmo nome e de contedo vazio, a no ser que a chamada seja pela funo
isset. Se a operao for bem sucedida, retorna true.
Para se verificar se uma varivel possui um valor, existem dois tipos de teste que
podem ser feitos para verificar se uma varivel est setada: com a funo isset e com a funo
empty.
A funo isset: int isset (mixed var), retorna true se a varivel estiver setada (ainda que
com uma string vazia ou o valor zero), e false em caso contrrio.
A funo empty: int empty (mixed var), retorna true se a varivel no contiver um valor
(no estiver setada) ou possuir valor 0 (zero) ou uma string vazia, caso contrrio, retorna
false.
Isso ocorre porque o cdigo PHP testa o contedo da varivel $texto. Inicialmente ele
uma string vazia, e por isso nada impresso na primeira parte. Quando algum texto digitado
no formulrio e submetido, o PHP passa a trat-lo como uma varivel. Como no formulrio o
campo possui o nome texto, a varivel com seu contedo ser $texto. Assim no prximo
teste o valor da varivel ser diferente de uma string vazia, e o PHP imprime um texto antes
do formulrio.
PHP no suporta listas de argumentos de tamanho varivel, mas um efeito similar pode ser
obtido utilizando-se arrays, conforme mostra o Quadro 14.
Como padro, o PHP passa parmetros por valor, o que no possibilita que as
alteraes feitas pela funo na varivel permaneam aps o trmino da funo. Para que as
funes alterem o valor das variveis definitivamente, usa-se a passagem de argumentos por
referncia, que consistem em colocar o sinal & antes do $. Caso seja necessrio passar um
argumento por referncia para uma funo que utiliza argumentos por valor, utiliza-se o &
tambm na passagem de parmetros, conforme o Quadro 15.
21
3.3 MYSQL
O Structured Query Language (SQL) uma linguagem estruturada para manipulao
de dados. padronizada para os bancos de dados relacionais, mas cada gerenciador pode
possuir uma extenso prpria dessa linguagem (SQL Server, 2000). Quem vai executar
propriamente os comandos como inserir, alterar, excluir, listar entre muitos outros, o
gerenciador.
O MySQL um banco de dados compatvel com a linguagem SQL Ansi. Ele oferece
uma plataforma prtica, rpida, eficiente, de fcil manuseio e extremamente confivel. Sua
instalao pode ser obtida gratuitamente na Internet. Existem vrias verses para as
plataformas diferentes como: Windows95/98, Windows NT, Linux. O MySQL nasceu da
insatisfao de algumas pessoas com o gerenciador de banco de dados mSQL. Essas pessoas
desenvolveram novas interfaces com o banco de dados e chamaram-no de MySQL. Para
gerenciar o MySQL, existe um utilitrio chamado mysql que instalado junto com o
22
A ligao para o servidor ser fechada assim que a execuo do script termine, a
menos que seja fechado mais cedo chamando a funo mysql_close. Uma vez conectado,
preciso selecionar o banco de dados existente no servidor com o qual se deseja trabalhar. Isso
feito atravs da funo int mysql_select_db, que possui a seguinte sintaxe:
23
Isto torna determinado banco de dados ativo no servidor atual associado com o
link_identifier especificado. Se nenhum link_identifier for especificado, a ltima ligao
aberta assumida. Se nenhuma ligao estiver aberta, a funo tentar estabelecer uma
ligao com a funo mysql_connect. Toda chamada subseqente para mysql_query ser feita
no banco de dados ativo.
No indica nada sobre o nmero de linhas que so afetadas (por comando insert,
update ou delete) nem devolvidas (por comando select). perfeitamente possvel uma query
ter sucesso, mas no afetar ou devolver nenhuma linha.
O comando envia uma consulta para o banco de dados atualmente ativo no servidor
associado com o link_identifier da ligao especfica. Se link_identifier no for especificado,
a ltima ligao aberta assumida. Se nenhuma ligao estiver aberta, a funo tenta
estabelecer uma ligao com mysql_connect, que ser chamado sem argumentos.
A consulta aos dados contidos em uma tabela feita usando o comando select. Este
comando diz ao banco para separar, de todos os dados contidos em uma tabela, apenas
aqueles que se precisa. Para saber quais pessoas, dentre as que preencheram o formulrio, tem
o primeiro nome Pedro, basta executar o seguinte comando:
4 DESENVOLVIMENTO DO TRABALHO
Com base em pesquisas e entrevistas realizadas com o scio gerente da empresa Zago
& Cia. Ltda situada na regio de Lages (SC), analisou-se a possibilidade e a necessidade de
desenvolver algo que chame mais clientes de uma maneira diferente e principalmente com
baixo custo. Esta empresa atua no ramo de ferramentas, materiais de construo e madeiras.
Com a possibilidade de abranger os negcios e a clientela da empresa, viu-se que a infra-
estrutura da empresa poderia no s servir para controle interno, mas tambm para vender
pela Internet. Com isso, alm de invadir uma rea desconhecida para empresas do ramo e
tambm pelas outras empresas da cidade, o aplicativo deveria oferecer os seus produtos
durante 24 horas, boletins digitais enviados aos seus clientes com as ofertas da semana,
visando facilitar a vida dos mesmos, alm de manter um contato mais prximo entre empresa
e cliente.
A empresa possui uma grande quantidade de itens cadastrados. Para este fato,
analisou-se a possibilidade e a necessidade de migrar o banco de dados Cobol existente, com
isto, evitando perca de tempo e mo-de-obra para o cadastramento manual de itens, clientes e
sub-grupos (fornecedores).
26
Perante este fato, viu-se possvel o desenvolvimento deste aplicativo que oferece ao
cliente uma compra prazerosa a hora que ele quiser sem ter que esperar em filas ou ser mal
atendido, mantendo tambm um relacionamento mais prximo entre cliente e empresa.
O aplicativo ser acessado via browser, atravs da Internet. As pginas PHP acessam o
banco de dados MySQL e retornam ao cliente uma pgina HTML com o devido resultado. A
tabela de produtos do banco de dados foi migrado do banco de dados Cobol existente na
empresa. Para isto foram utilizadas as ferramentas Microsoft Excel, Microsoft Access e o
software Access-to-MySQL Demo da Intelligent Converters.
4.3 ESPECIFICAO
As caractersticas esperadas por este prottipo so:
J o operador possui os mesmos processos que o cliente: Consultar Preos onde ele
possui um catlogo de produtos, alm do processo Efetuar Compra, sendo que a nica
diferena que para o operador estes processos so realizados na Intranet da empresa
enquanto o cliente pode utilizar tanto a Intranet como a Internet.
28
Cadastrar Tabelas
Gerenciar E-mails
Consultar Preos
Operador Cliente
Efetuar Compra
29
Operador
Grupo cdigo do operador
cdigo do grupo nome do operador
descrio do grupo cpf operador Pagto
cargo cdigo do pagamento
senha do operador descrio
pertence
escolhe
Cliente
cdigo do cliente
nome do cliente
cpf
Subgrupo carteira de identidade
endereo Nota
cdigo do subgrupo
insere cdigo da nota
descrio do subgrupo bairro
cidade data da compra
estado preo total da venda
pesquisa
telefone
email
senha do cliente
promoes
publicidade lista
Produto
cdigo do produto
nome do operador Item possui
seleciona
descrio preo unitrio
preo tem quantidade vendida
unidade
desconto
ligoferta
GRUPO
OPERADOR
CODGRUPO integer
CODSUBGRUPO integer CODOPERADOR integer
DESGRUPO varchar(30) NOMOPERADOR varchar(40)
CPFOPERADOR integer PAGTO
CARGO char(1) CODPAGTO integer
SENHAOPERADOR varchar(16) DESCRICAO varchar(50)
CODSUBGRUPO = CODSUBGRUPO
CODGRUPO = CODGRUPO
CODPAGTO = CODPAGTO
CLIENTE
CODCLIENTE integer
NOMCLIENTE varchar(40)
CPFCLIENTE integer NOTA
SUBGRUPO
IDCLIENTE varchar(15) CODNOTA integer
CODSUBGRUPO integer CODOPERADOR = CODOPERADOR
ENDERECO varchar(40) CODPAGTO integer
CODGRUPO integer
BAIRRO varchar(20) CODCLIENTE integer
DESSUBGRUPO varchar(30)
CIDADE varchar(30) CODOPERADOR integer
ESTADO char(2) DATACOMPRA timestamp
CODCLIENTE = CODCLIENTE
TELEFONE integer PRECOTOTALVENDA numeric(12,2)
EMAIL varchar(60)
SENHACLIENTE varchar(16)
PROMOS char(1)
CODSUBGRUPO = CODSUBGRUPO
PUBLICIDADE char(1)
CODNOTA = CODNOTA
PRODUTO
CODPRODUTO integer
CODSUBGRUPO integer ITEM RELATION_152
NOMOPERADOR varchar(40) CODPRODUTO integer CODNOTA integer
DESCRICAO varchar(50) PRECOUNITARIO numeric(12,2)
PRECO numeric(12,2) CODPRODUTO = CODPRODUTO
QTDVENDIDA integer
UNIDADE varchar(10)
DESCONTO integer
LIGOFERTA char(1)
30
Aps ter efetuado o login, o cliente pode acessar as pginas homecliente, alm de
poder consultar produtos e ento adiciona-lo ao carrinho de compras. Assim que terminar a
sua compra, o cliente escolhe a forma de pagamento, responde a uma enqute e ento finaliza
o processo.
forma de
index cliente pagamento
enquete
login homecliente
final
carrinho de
compras
cadastro
visualizar
consultar
produtos
grupo
ofertas
nome
institucional
ofertas
contato
index operador
carrinho de
login finalizar
compras
visualizar
consultar
produtos
institucional
grupo
ofertas
nome
contato
ofertas
index
administrador
login
cliente
inserir
alterar
excluir
produto
operador inserir
inserir alterar
alterar excluir
excluir
subgrupo
grupo inserir
inserir alterar
alterar excluir
excluir
forma pagto
inserir
alterar
excluir
carrinho de
finalizar
compras
estatsticas
vendas dia
ofertas
35
4.4 IMPLEMENTAO
O PWS teve muita importncia para testar o site, pois a cada script implementado o
teste era executado devido possuir uma boa plataforma para testes. O compartilhamento do
site atravs da Intranet no obteve problemas, funcionando perfeitamente de acordo com a
requisio do browser do cliente.
J para a migrao do banco de dados existente foram feitas vrias tentativas de vrios
modos. A maneira em que foi realizado este processo possibilitou a migrao dos dados, no
36
por completo devido a verso do software Access-to-MySQL, mas foi possvel comprovar sua
funcionalidade que era o necessrio.
As opes disponveis para quem entrar no site so: Login, Cadastro, Ofertas,
Intitucional e Contato. Para o cliente ir adiante necessrio cadastrar-se ou efetuar seu
login.
A tela seguinte da opo Login (Figura 10) exige do usurio a digitao da chave de
localizao, no caso o CPF (Cdigo Pessoal Fsico) e sua devida senha. Uma vez validado o
CPF e senha, o sistema ir apresentar uma pgina de boas vindas (Figura 11). Assim que o
cliente for identificado, e clicar no boto Clique aqui p/ continuar, o sistema ir
disponibilizar outras opes no seu menu, conforme mostra a Figura 12. O fonte do processo
de login do cliente est descrito Anexo 1.
37
As opes a mais disponveis aps o cliente ter efetuado o login so: Home Cliente,
Carrinho de Compras, alm das consultas de produtos, que so pesquisados por Nome do
produto e Cdigo do Grupo. Atravs destas opes o cliente j pode iniciar o processo de
compra pesquisando os produtos que desejar atravs das opes de consulta disponveis. Na
tela Home Cliente h uma tabela com a foto de alguns produtos que esto em promoo,
com seu respectivo preo.
Se o cliente j estiver efetuado seu login, a suas opes na tela aumentam. A opo
ofertas, o cliente j pode clicar no cdigo do produto e visualizar a foto do produto (se
disponvel no banco de dados), o nome, unidade e preo, conforme mostra a Figura 15. O
cliente pode consultar os produtos que quiser tanto pelo seu nome, ou trecho do nome (Figura
16). O fonte deste processo est no Anexo 3. Outras consultas disponveis nvel de produto
so pelo cdigo da categoria, o qual lista os produtos de uma determinada categoria como por
exemplo Acessrios para banheiro.
41
Logo que o cliente achar o que estiver procurando, para comprar o produto, basta
clicar no cdigo e aparecer a tela da Figura 17, a qual mostra o nome do produto em
destaque, alm do seu preo e unidade. Ento digita-se a quantidade desejada e clicar em
comprar. Aparecer uma outra tela, a do Carrinho de Compras, que contm os itens que o
cliente deseja comprar (Figura 18). Assim que quiser o cliente pode finalizar suas compras,
escolher a forma de pagamento e confirmar o local de entrega dos produtos. Inicialmente a
empresa s entregar mercadorias no estado de Santa Catarina devido a infra-estrutura da
empresa na parte de fretes.
Aps o cliente ter terminado suas compras, deve clicar em Finalizar, que chamar
outra pgina, a de confirmao da compra, local de entrega e forma de pagamento (Figura
19). Com isto o cliente efetivou sua compra com sucesso. Agora alm de responder a enqute
no final da sua compra (Figura 20), s aguardar que a encomenda j estar sendo
encaminhada para a entrega. O cliente estar a par da situao de sua encomenda atravs de e-
mails enviados pela empresa que informar o dia previsto de entrega e a situao da
encomenda em relao ao pagamento.
5 CONCLUSES
A realizao deste trabalho possibilitou o estudo e aprendizagem da linguagem de
script PHP. Esta linguagem de fcil entendimento e possibilita criar bons sites dinmicos
com uma certa facilidade. Outro ponto importante o banco de dados MySQL, que
possibilitou a migrao dos registros de produtos do banco de dados Cobol existente na
empresa. Apesar de no possuir a verso full do software Acces-to-MySQL utilizado para o
ltimo passo da migrao dos dados, ainda foi possvel comprovar a funcionalidade do
mesmo, pois possui uma interface simples e til para quem necessite este tipo de converso
mais freqentemente.
O uso do PWS foi importante por ter uma interface simples, mas possui muitos
recursos importantes, desde a forma de publicao do site tanto na Intranet como na Internet
at as estatsticas geradas, as quais so importantes para acompanhar o desempenho do site, os
dias mais movimentados, o nmero de visitantes entre outras.
Com este aplicativo os clientes tero acesso mais rpido e fcil aos produtos que
necessitem. As pesquisas de produtos feitas na Internet, podem ser feitas da mesma maneira
na Intranet da empresa em terminais que estaro disponveis ao pblico exclusivamente para
este fim.
Com isto, o relacionamento entre empresa e cliente se torna mais intenso, fazendo com
que ele fique sabendo das ofertas e promoes oferecidas pela empresa simplesmente
acessando o seu caixa de mensagens. Atravs das mensagens os clientes conseqentemente
acessaram mais vezes o site, fazendo disto quase que uma rotina.
Por ser um servio diferenciado e de baixo custo de implantao para a empresa, foi
possvel desenvolver este projeto oferecendo uma nova opo de compra para clientes
diferenciados que talvez no possam ir at a loja fisicamente, mas sim virtualmente tendo a
opo de comprar o que quiser quando quiser atravs do site na Web.
5.1 EXTENSES
Como sugesto de continuidade, pode-se aplicar um sistema de segurana, com troca
de mensagens com assinatura digital. Implementar um sistema de logstica para a parte de
entregas e expandir o servio para todo o Brasil. Outra sugesto utilizar sistemas
especialistas para criar o perfil dos clientes para saber o que eles mais gostam quando acessam
o site.
48
<html>
<? require("config.ini"); ?>
<head>
<title>ZAGO - Identificao do Cliente</title>
</head>
<?
if (!isset($login)) {
?>
<p class="headcadastro">ZAGO & Cia. Ltda.</p>
<table border=0 width=500 cellspacing=0 cellpading=8>
<tr>
<td colspan=2>
<p class="textos"> necessrio que seja efetuado o login no sistema para poder
efetuar sua compra.
</td>
</tr>
<tr>
<td align=center>
<form method=post action="<? echo $PHP_SELF; ?>">
<table width=100%>
<tr>
<td>
<p class="opctabcadastro" align=right>CPF:
</td>
<td>
<input type=text size=20 maxlength=11 name="edcpf" style="border: 1
solid #000099">
</td>
</tr>
<tr>
<td>
<p class="opctabcadastro" align=right>Senha:
</td>
49
<td>
<input type=password size=20 maxlength=16 name="edsenhacli">
</td>
</tr>
<tr>
<td> </td>
<td>
<input type=submit name="login" value="Login">
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</html>
<?
die();
}
elseif($login == "Login") {
$db = mysql_connect("$host", "$user", "$senha") or die("Erro de Conexo");
mysql_select_db("$dbNome", $db) or die("Base de dados no existe");
require("config.ini");
$query = "SELECT nomcliente FROM cliente WHERE "
."(cpfcliente='$edcpf') and (senhacliente='$edsenhacli')";
$resulta = mysql_query($query, $db);
if (mysql_num_rows($resulta) == 0) {
?>
<body>
<p class="headcadastro">ZAGO & Cia. Ltda.</p>
<table>
<tr><td><p class="textos">
Invlida combinao do CPF ou Senha.<br>
<a href=contato.php3>Esqueceu sua senha?</a>
50
</td></tr>
</table>
<?
mysql_free_result($resulta);
mysql_close($db);
die();
}
$nome = mysql_result($resulta,0,"nomcliente");
?>
<form method=post action="mainframelogok.php3" name=loginOK target="menu">
<input type="hidden" name="cpfcliente" value="<? echo $edcpf;?>">
<p class="headcadastro">ZAGO & Cia. Ltda.</p>
<br>
<p class="textos">Seja Bem Vindo <? echo "$nome";?>. A partir deste momento
voc pode efetuar sua compra.<br><br>
<br><br>
<p align="right"><input type=submit name="entrada" value="Click Aqui p/
Continuar"></p>
</form>
<?
mysql_free_result($resulta);
mysql_close($db);
}
?>
</html>
51
<head>
<title>ZAGO - Cadastro de Clientes</title>
<style type="text/css">
<!
.marcaregistrada { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 8pt;
font-style: normal; color: #000099; font-weight: bold}
.opcadastro { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt; font-
style: normal; color: #FF3333}
.textos { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt; color:
#000099}
.headcadastro { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12pt;
font-style: normal; font-weight: bold; color: #000099}
-->
</style>
</head>
<script language="JavaScript">
function checkForm(form) {
//Verifica todos os campos
for (var i =0; i < form.elements.length; i++) {
if (form.elements[i].value == "") {
alert("Preencha todos os campos")
return false
}
}
//Valida CPF
if ( (!checkCPF(form.cpfcliente.value)) || (!eNumero(form.cpfcliente.value))) {
alert("Nmero de CPF invlido")
form.cpfcliente.focus()
form.cpfcliente.select()
return false
}
//Valida o telefone
52
if (!eNumero(form.telefone.value)) {
alert("O nmero de telefone deve conter somente nmeros")
form.telefone.focus()
form.telefone.select()
return false
}
//Verifica as senhas
if (form.senhacliente.value != form.senhaclientev.value) {
alert("As senhas devem possuir o mesmo valor")
form.senhacliente.focus()
form.senhacliente.focus()
return false
}
return true
}
function checkCPF(numcpf) {
x = 0;
soma = 0;
dig1 = 0;
dig2 = 0;
texto = "";
numcpf1="";
len = numcpf.length; x = len -1;
for (var i=0; i <= len - 3; i++) {
y = numcpf.substring(i,i+1);
soma = soma + ( y * x);
x = x - 1;
texto = texto + y;
}
dig1 = 11 - (soma % 11);
if (dig1 == 10) dig1=0 ;
if (dig1 == 11) dig1=0 ;
numcpf1 = numcpf.substring(0,len - 2) + dig1 ;
x = 11; soma=0;
53
<td width="74%">
<input type="hidden" name="codcliente" value="<? echo "$codcliente" ?>
size="30" maxlength="15">
</td>
</tr>
<tr>
<td width="26%" class="opcadastro">
<div align="right">CPF:</div>
</td>
<td width="74%">
<input type="text" name="cpfcliente" size="30" maxlength="11">
</td>
</tr>
<tr>
<td width="26%" class="opcadastro">
<div align="right">Identidade:</div>
</td>
<td width="74%">
<input type="text" name="idcliente" size="30" maxlength="15">
</td>
</tr>
<tr>
<td width="26%" class="opcadastro">
<div align="right">Nome: </div>
</td>
<td width="74%">
<input type="text" name="nomcliente" size="30" maxlength="60">
</td>
</tr>
<tr>
<td width="26%" class="opcadastro">
<div align="right">Endereço:</div>
</td>
<td width="74%">
55
</select>
</td>
</tr>
<tr>
<td width="26%" class="opcadastro">
<div align="right">Telefone:</div>
</td>
<td width="74%">
<input type="text" name="telefone" size="30" maxlenght="10" maxlength="15">
</td>
</tr>
<tr>
<td width="26%" class="opcadastro">
<div align="right">Email:</div>
</td>
<td width="74%">
<input type="text" name="email" size="50" maxlength="80">
</td>
</tr>
<tr>
<td width="26%" class="opcadastro">
<div align="right">Digite uma senha:</div>
</td>
<td width="74%">
<input type="password" name="senhacliente" size="30" maxlength="16">
<? $senha_criptigrafada=md5('senhacliente'); ?> </td>
</tr>
<tr>
<td width="26%" class="opcadastro">
<div align="right">Confirmar Senha:</div>
</td>
<td width="74%" class="textos">
<input type="password" name="senhaclientev" size="30" maxlength="16"></td>
</tr>
57
<tr>
<td width="26%" class="opcadastro">
<div align="right">Promoções:</div>
</td>
<td width="74%" class="textos">
<input type="checkbox" name="promos" value="S" checked>
desejo receber emails com as ofertas da semana.</td>
</tr>
<tr>
<td width="26%" class="opcadastro">
<div align="right">Publicidade:</div>
</td>
<td width="74%" class="textos">
<input type="checkbox" name="publicidade" value="S" checked>
desejo receber emails publicitários do site.</td>
</tr>
<tr>
<td width="26%" class="opcadastro">
<div align="right"></div>
</td>
<td width="74%">
<input type="submit" name="Submit" value="Confirmar Cadastro">
<input type="reset" name="Reset" value="Limpar Formulrio">
</td>
</tr>
</table>
<span class="headcadastro"></span>
</form>
<p> </p><table width="100%" border="0">
<tr>
<td>
<div align="center" class="marcaregistrada">© 2001 Zago & Cia.
Ltda.</div>
</td>
58
</tr>
</table>
<?
mysql_close($res1);
?>
</html>
59
<html>
<? require("config.ini"); ?>
<head>
<title>ZAGO - Consulta de Produtos</title>
</head>
<body bgcolor="<? echo $bgForm ?>">
<p class="headcadastro">Consulta de Produtos</p>
<?php
echo "<p class=\"textos\">Entre com o trecho do produto para pesquisar.</p>";
echo "<form action=\"$PHP_SELF\" method=\"POST\">";
echo "<p class=\"opctabcadastro\">Trecho:";
echo "<input type=text name=trecho value=\"$trecho\" ";
echo " style=\"border:1 solid #000099\"></p>";
echo "<input type=submit value=\"Pesquisar\">";
echo "</form>";
if ($trecho == "") { die(); }
$db = mysql_connect("$host", "$user", "$senha") or die("Erro de Conexo");
mysql_select_db("$dbNome", $db) or die("Base de dados no existe");
$sql = "SELECT * FROM produto WHERE (nome LIKE '%$trecho%')";
$resSql = mysql_query($sql, $db);
$totProd = mysql_num_rows($resSql);
if ($totProd == 0) {
echo "<p class=\"textos\">Nenhum produto encontrado para esta informao</p>";
}
elseif ($totProd > 0) {
echo "Encontrado(s) $totProd produto(s) no trecho \"<b>$trecho</b>\".<br><br>";
$counter = 0;
if ($dir=="") { $dir = "Prximo"; }
$maxPag = 10;
if ($offset==0) { $offset=0; }
60
if ($dir=="Prximo") {
if ($totProd > $maxPag) {
$counter = $offset;
$offset += $maxPag;
$num = $offset;
if ($num > $totProd) { $num = $totProd; }
}
else { $num=$totProd; }
}
elseif ($dir=="Anterior") {
if ($totProd > $maxPag) {
$offset -= $maxPag;
if ($offset < 0) { $offset = 0; }
$counter = $offset - $maxPag;
if ($counter < 0) { $counter = 0; }
$num = $counter + $maxPag;
}
else { $num = $totProd; }
}
echo "<table width=100%>\n";
echo "<tr><th>Cdigo<th>Nome<th>Descrio<th>Preo</tr>";
while ($counter < $num) {
$nid = mysql_result($resSql,$counter,"codproduto");
echo "<tr><td><a href=\"escolhateste.php3?codproduto=$nid\">".$nid."</a>";
echo "<td>".mysql_result($resSql,$counter,"nome");
echo "<td>".mysql_result($resSql,$counter,"descricao");
echo "<td>".mysql_result($resSql,$counter,"preco")."</tr>\n";
$counter++;
}
print "</table><br>";
}
mysql_close();
if ($totProd > $maxPag) {
echo "<form action=\"$PHP_SELF\" method=\"POST\">\n";
61
REFERNCIAS BIBLIOGRFICAS
ANSELMO, Fernando. PHP e MySQL para Windows. Florianpolis: Visual Books, 2000.
FISCHER, Herber. PHP - Guia de consulta rpida. Rio de Janeiro: Novatec, 2000.
HARTMAN, Amir. Pronto para a web: estratgias para o sucesso na economia. Traduo
Carlos Antnio Moura. Rio de Janeiro: Campus, 2000.
STOCO, Lucio M. Integrando PHP com MySQL: guia de consulta rpida. So Paulo:
Novatec, 2000