Beruflich Dokumente
Kultur Dokumente
CAMPUS DE VIDEIRA
AREA DE CIENCIAS EXATAS E DA TERRA
CURSO DE CIENCA DA COMPUTA~AO
DESENVOLVIMENTO
DIEGO DE COSTA
Orientador:
HERCULANO HAYMUSSI DE BIASI
VIDEIRA-
2011
SC
DE VENDAS
DIEGO DE COSTA
DESENVOLVIMENTO
Trabalho
de
apresentado
Computeciio
DE VENDAS
conclusiio
de
curso
ao Curso de Ciencie
da Universidade
da
do Oeste
a disciplina
do titulo
de Bacharel
em
Oiencie
da
Computa9iio
VIDEIRA-
2011
SC
DIEGO DE COSTA
DESENVOLVIMENTO
DE VENDAS
ao
do titulo de Bacharel
Cornputacao.
Aprovado em
BANCA EXAMINADORA
Prof.
Professor Membro da Banca Examinadora
Universidade do Oeste de Santa Catarina
Prof.
Professor Membro da Banca Examinadora
Universidade do Oeste de Santa Catarina
para
em Ciencia da
apoio
dedicacao
conhecimentos e estudos.
aos
AGRADECIMENTOS
RESUMO
acessibilidade
geograficamente
portabilidade,
permitindo
acessos
sirnultaneos
de
usuaries
aplicativo
automatiza
os processos
de ernissao
de pedidos
por
garantir
todos os requisitos
e desenvolvimento.
0 desempenho
utilizando
tecnicos
exigidos
da cornunicacao
0
para a sua
entre cliente e
Os rnodulos da aplicacao
desempenho,
nao necessitando
ABSTRACT
An application
requirements
accessibility
developed
web (World
a new concept
based on
and portability, allowing accesses from users at the same time. The
analysis of the processes of sales of the company of drink was realized through
diagrams,
determining
emission and sales reports, allowing the user's access of any place and region. To
present problems of communication between processes and departments, to create
and to define the usage case model, defining its usage and its modules. The project
must create a robust system, safe that can accept a great quantity of connected
users, a meaningful rate of transference between client and provider is essential. The
pieces of information are commutated
provider that has to interpret the data. Using technologies as the PHP language and
MySQL data bank is possible to guarantee all the technical requirements demanded
for its constructions
and development.
The performance
of the communication
methodology allows the answer to be showed in the browser without the need of the
page being reprocessed. The modules of the application are able to fulfill functions of
sending of e-mails, documentation
validation
itself, optimizing
the
performance, not being necessary to wait for an answer from the provider. The ideal
characteristics were searched for the data bank and web provider, guaranteeing the
application to be reliable and active.
SUMARIO
1 INTRODUCAO
10
11
11
1.3 JUSTIFICATIVA
11
2 DESENVOLVIMENTO ........................................................................................
13
13
2.2 APLICACAo
14
WEB
15
16
17
DE HIPERTEXTO (HTML)
18
19
19
2.6.1 Hist6ria
20
2.6.2 Caracteristicas
21
22
23
2.6.5 SessOes
24
2.6.5.1 Sessao
24
2.6.5.2 Cookies
25
2.6.6 Seguranc;a
26
26
27
27
28
2.7.2 Integridade
referencial
30
31
2.7.4 phpMyAdmin
31
2.8AJAX
32
2.8.1 XML
34
2.8.2 JavaScript
34
(DOM)
XMLHttp
35
35
36
36
2.9.2 XAMPP
37
2.9.3 Microsoft
Internet Information
Services (115)
38
38
2.10.1 Desenvolvimento
39
de Formularies
2.10.2 Spry
39
2.11 METODOLOGIA
40
40
41
42
2.11.4 Arquitetura
43
geral
44
45
2.11.7 Autentlcacao
46
de usuario
2.11.8 Cadastros
2.11.9 lnclusao
47
de pedidos
48
49
2.11.11 Relat6rios
49
2.11.12 Logoff
50
de dados
51
53
54
de e-mails
55
3 CONCLUSAO
57
REFERENCIAS
59
APENDICES
63
64
65
66
67
69
71
73
75
ANEXOS
77
78
10
1 INTRODUCAO
A automatizacao
e importante
para a deterrninacao
inicial
para
desenvolvimento
diagramas
deterrninacao
caracteristicas
funcionais
facilita
a visualizacao
ajudando 0 desenvolvimento,
Atraves dos diagramas
dos requisitos
ea
para
comercial. Utilizar
que 0 aplicativo
deve possuir,
e possivel
MySQL, este banco de dados e utilizado por grandes portais pelo mundo inteiro,
demonstra uma grande estabilidade e desempenho para web, nao necessitando de
muitos recurs os de hardware no servidor onde se encontra.
Para atender
funcionais
e utilizado
criando diversos
todas
as condicoes
necessaries,
proposta
pelos objetivos
beneffcios
na facilidade
de utilizacao
e na disponibilidade
e utilizada
do
a
linguagem PHP (PHP: Hypertext Preprocessor) que possui uma grande quantidade
de extensoes
permitindo
e bibliotecas
uma vasta
disponiveis
diversidade
de mecanismos
para
gerenciar
os dados
e responsavel
por determinada
entidade,
como por exemplo, cliente e pedido. Os acessos a esses m6dulos e fungoes sao
gerenciados
criado
niveis
aos dados,
cadastrado
conforme
e
a
entre as detinicoes
dados deve ser garantida na utilizacao de um servidor web que suporte gerenciar a
execucao do PHP, sua cornunicacao com 0 banco de dados e 0 processamento
de
11
do programador
incispensavel
e hornoloqacao
no
servidor da empresa.
Desenvolver
de vendas do setor de
bebidas.
1.3 JUSTIFICATIVA
e interpretada
garantindo uma grande compatibilidade com todos os usuaries do sistema que estao
localizados por todo pais, independente se estes usam um computador com sistema
operacional
especlfico
de
12
em diversas formas e
padrao
de envio de pedidos
sera criado,
eliminando
de forma automatizada,
comercias consistente.
o sistema
das
lancados,
inforrnacoes,
evitando
deixando
desperdicio
os
de tempo
processos
de
em
venda,
representante,
desenvolvimento
entre os departamentos,
e preciso
imprimir as
entre diversos
da empresa
em uma
13
2 DESENVOLVIMENTO
e de
e a sobrevivencia
no mercado.
utilizacao
constantemente
de
um software
para
gerenciamento
de
mtormacao
entre intormacoes
e sistemas,
aumenta
essencial construir um
sistema robusto, seguro, que consiga aceitar uma grande quantidade de usuaries
conectados, com uma taxa significativa de transterencia entre cliente e servidor.
Em qualquer conteudo web, 0 c6digo fonte
paqina do servidor que possui scripts interagindo entre si, somente no servidor e
totalmente invisivel para 0 browser (navegador) do cliente, que so recebe conteudo
atraves
de um protocolo
especifico.
As paginas
do cliente escritas
por uma
o B2B e 0 processo
14
Atraves da internet
criada pelas transacoes,
possivel
e possivel
aumentar
garantindo
quantidade
interconexoes
entre
de
entidades
divers os servidores,
envolvidas
no
aplicativo
descentralizando
ou centralizando
e padronizado
precisa.
Os aplicativos de B2B permitem que a empresa possa atender uma grande
demanda
de clientes
e parceiros,
compras
a qualquer
hora.
disponibilizando
0 limite
operacional
diversos
dados
se concentra
sobre suas
somente
em
2.2 APLICACAo
WEB
Aphcacao web
na intemet
e qualquer
ou em redes privadas,
localizado
em um servidor
web, as quais
15
esta pode estar em qualquer servidor ou data center, em qualquer local do planeta.
A simplicidade da atualizacao e rnanutencao nas aplicacoes web representa uma de
suas principias caracteristicas, visto que e necessario aplicar as rnudancas somente
nos servidores on de 0 c6digo fonte esta localizado, no pr6ximo acesso que 0 usuario
realizara, ja estara aces sando a versao atualizada do sistema. Existem diversas
linguagens para web, onde pode ser construidos
como
da
paqina ate a plataforma do cliente e suas respostas ao servidor web sao realizadas
com este protocolo. A cornunicacao HTTP entre 0 cliente e servidor e feita atraves de
mensagens.
de requisicao
cabecalho
contern intorrnacoes
especificas de confiquracao
de servidor ou de
cliente, e 0 corpo da mensagem contern os dados que serao tratados pelo Hypertext
Markup Language (HTML) como texto, imagem ou ate mesmo um arquivo para
download.
o
cliente
e servidor,
esses
como
de intorrnacoes entre
pad roes por diversas
16
web para tornar a aplicacao interativa. Essa tecnologia permite que 0 browser do
cliente passe parametres para serem processados no servidor. Os scripts CGI geram
as paginas com base das variaveis enviadas pelo cliente. Sao ativados pelo HTML,
que informa 0 metoda utilizado para envio dos parametres.
Um servidor web pode ser configurado para aumentar 0 nivel de interatividade
com 0 cliente como afirma Della Valle e Ulbrich (2005, p. 201):
Os servidores HTTP podem ser amplamente estendidos com a acocao de
mecanismos que permitam 0 chamado conteuoo dinamlco. uma tecnologia
que possibilita a montagem de paginas personalizadas e de conteudo
variavet para cada visitante e acesso.
e a principal
caracteristica
de
sua habilidade
de
cornpreensao do usuario.
A interface criada
responsavel
feitas pelo
e incumbido
de interagir para
17
o ClIENTE solicita
uma URL ao servidor
ClIENTE
SERVIDOR
WWW
WWW
formrtll e
A URl solicitada
umCGI eo SER\I100R
executa 0 CGI
apresenta
a infonna~o
recelJjda
...
CGI
o CGltrabalhil
chamando outros
prolJ"amas
OUTROS
PROGRAMAS
browser do cliente. Com esse conteudo, 0 navegador pod era enviar e receber dados
previstos no c6digo HTML. Enquanto que 0 CGI ficara responsavel para encaminhar
ou receber as informacoes do aplicativo correto, contido no servidor.
o metoda
da variavel
separadas
por caracteres
especiais como simbolos comercial ("&"). Todo 0 endereco e os dados podem ser
observados na barra de enderecos do navegador apos 0 envio a paqina de destino
(MUTO, 2006).
ficam invisiveis
informando
variaveis
para 0 usuario,
ou valores
impossibilitando
manualmente.
um possivel
POST
ataque
uma solucao
muito
A linguagem HTML
DE HIPERTEXTO (HTML)
e utilizada
por navegadores para gerar paginas estaticas. Foi criada em 1990 por Tim BernsLee com a finalidade de tornar possivel 0 acesso e a troca de intorrnacoes entre
seus colegas. Com a disserninacao do padrao HTML em toda internet, em 1994 foi
criado a World Wide Web Consortium (W3C), 0 cons6rcio intemacional da internet,
que tinha como objetivo a padronizacao
e rnanutencao
interpreta e
mostra seu
conteudo formatado.
Um c6digo HTML
dos simbolos
e formado
menor que "e" e maior que U>". Essas tags dividem 0 conteudo
CSS
em
e uma
linguagem
de rnarcacao.
Foi desenvolvido
pela W3C
com 0 objetivo
de
visuais
CSS. A linguagem
ser completamente
descritos
na
ao HTML, diretamente
ou
A linguagem HTML tarnbern pode ser usada para definir 0 layout de web
sites. Contudo, a CSS proporciona mais opcoes,
mais precisa e
sofisticada, alem de ser suportada pela maioria dos navegadores atuais. A
principal diterenca entre HTML e CSS
que 0 primeiro
usado para
formatar conteudos eo segundo para conteudos ja estruturados.
e muito
padrao
modlticacao
do
layout
no
arquivo
e possivel
em todas
CSS,
as
as paginas.
paginas
Com qualquer
serao
modificadas
automaticamente.
Preprocessor)
uma linguagem
para criacao de
solicitado algo ao servidor web, 0 PHP ira executar e retornar as intormacoes para 0
navegador. Por ser interpretado no servidor, 0 usuario s6 consequira ler as tags em
HTML e nao 0 c6digo em PHP. Essa solucao apresenta ser veloz e multiplataforma.
A sua capacidade e muitas vezes colocada a prova em sites e portais com milh6es
de acessos.
redistribuido
aberto,
modificado
2007).
As variaveis
sao verificadas
dinamicamente
pela linguagem,
ou seja, e
2.6.1 Hist6ria
Foi criada em 1994 por Rasmus Lerdof, como um pacote CGI para sua
paqina pessoal, que ate aquele momento era utilizado um conjunto de scripts Perl. 0
autor Muto (2006), afirma que a primeira versao do PHP, ainda com nome de
PHP/FI, ja possuia um interpretador conhecido como FI (Form Interpreter) e varias
caracterfsticas
encontradas
ao c6digo-fonte,
por Andi
primeira versao a
possibilitar a utilizagao de extensoes, que por sua vez atraiu diversos programadores
para
desenvolvimento
de
m6dulos.
Renomeada
para
PHP:
Hypertext
21
alguns inconvenientes
que apresentavam
e sua
e compilado
e depois
executado, enquanto que antes era compilado e executado ao mesmo tempo. Com
uma independencia maior do servidor web, a linguagem se tomou mais po rtave I e
dinamicamente
mais interpretada
diversos.
da mem6ria e a utilizacao
novas, como
de ponteiros
no c6digo,
de somente
um objeto, e a necessidade
foi possfvel a
de copiar somente 0
ponteiro, sendo assim quando 0 objeto sofrer alguma rnudanca, esta se aplicara em
todo lugar onde contenha a instancia do ponteiro. 0 novo suporte ao banco de
dados MySOL foi melhorado. Souza (2007) descreve que com a versao cinco do
PHP houve a inclusao
da interpretacao
de comandos
SOL (Structured
Query
Language) via extensao MySOLi que permitiu ao PHP, a compatibilidade com novas
funcionalidades disponibilizadas pela versao 4.1 do banco de dados.
2.6.2 Caracteristicas
adaptarem-se
simplicidade.
Seu objetivo
mais rapidamente,
qracas a sua
conteudo dinarnico para paginas da internet, onde 0 usuario possa interagir de uma
22
funcoes,
Possui
extensoes
para
acesso
a banco
de
dados
MySQL,
que contribuem
na constnrcao
de um sistema
possibilita
com esta
a criacao de
sistemas dinarnicos de discos virtuais on-line para que os usuaries possam alterar,
excluir, realizar
pode
operar
automaticamente
se for
configurada
para
tal,
enviando
com valores do
o envio
com 0 usuario do sistema, que pode ser avisado por e-mail caso haja alguma nova
inclusao de dados no aplicativo. Esta funcao permite que 0 c1iente nao precise entrar
23
que sejam
textos
em suas variaveis
e posslvel
ou incluindo
c6digos
e enviada.
conteudo do e-mail.
d) Header, cabecalho
contendo
intormacoes
adicionais
como espectticacoes
para HTML.
referenda no c6digo para onde a imagem esta localizada, ou seja, em seu local de
hospedagem.
A biblioteca
uma biblioteca
cores,
quebra
de
lin has
entre
outras
opcoes
que
pennitem
Mas 0
e em toda comunidade
livre, contribui
em
24
2.6.5 SessOes
o PHP Group
sessoes
de preservar
dados
subsequentes,
permitindo
unlco acesso, sao considerados como parametres validos para conceder acessos e
rnoditicacoes especiais.
2.6.5.1 Sessao
o metoda
ate 0 usuario fechar seu navegador ou a sessao expirar, seja por inatividade ou por
comando do aplicativo.
Segundo Muto A. (2006 p. 158):
Para cada sessao criada por cliente, um arquivo e criado no servidor com 0
mesmo
nome da identiticacao
enviada
ao navegador.
Este arquivo
s6 existe
de sessoes no
servidor permite uma flexibilidade para 0 aplicativo ser rnutavel pelas deterrninacoes
das variaveis, em um sistema com usuario e senha, as intorrnacoes referentes ao
cliente pode determinar
usuario podera
acessar.
A sessao
diretamente
a mem6ria,
e recomendado
esta ligado
25
2.6.5.2 Cookies
possivel
criar
personalizacao
customizada
para os
Armazenar
exclusividade
certas
variaveis
no
navegador
do
cliente
permite
que
paqina for fechada. Quando 0 usuario acessar novamente 0 aplicativo ira verificar
em seu cookie quais sao seus parametres de contiquracao.
a PHP Group (2010) define seis variaveis em um cookie, sao elas:
a) name, define 0 nome do cookie;
b) value,o valor da variavel passado no pararnetro name;
c) expirstion, determina um tempo que estara acessivel;
d) domain, armazena qual 0 dominio ou hostvalido;
e) path, determina para quais os diret6rios 0 cookie
e valido;
f) security, se 0 valor desta variavet for "1", 0 cookie sera transmitido pelo
Hypertext Transfer Protocol secure (HTTPS).
26
2.6.6 Seguranc;a
A sequranca
conectado
16gica em
uma
aplicacao
web
e lncispensavel,
mesmo
confidencialidade,
sua
Utilizando
rnetodos
de criptografia
de senhas, tratamentos
de dados de
e posslvel
para gravar 0 resultado da operacao com base em um valor de uma senha, ou seja,
coditica-la.
seu valor oficial. Usuaries que possuem acesso ao banco de dados nao conseguem
visualizar a senha real. A sintaxe utilizada para a criptografia MD5 no PHP e muito
simples,
s6 e necessario
27
e comparado
e feito
dados.
A injecao de SOL
web, onde
acesso
utiliza banco de dados, onde sao enviados sintaxes pelo script do servidor, a qual
recebe seus parametres da linguagem HTML.
Segundo Santos (2008 p.133):
o tratamento
em dados recebidos pelo cliente soluciona grande parte dos problemas de injecao
de SOL.
MySOL
um sistema gerenciador
existindo uma versao com licenca comercial e outra de c6digo aberto com licenca
General
Foi
desenvolvido
por
varios
anos,
pelos
28
programadores
Davi Axmark,
Allan
Larsson
e Michael
Widenius.
MySQl
foi
do governo e laborat6rios
de pesquisas
sua velocidade. Um
service
MySQl controla 0 acesso a estes dados, permitindo que varies usuaries, consigam
incluir ou consultar
MySQl
grandes quantidades
e multiusuario
e multitarefa,
de intorrnacoes
utiliza linguagem
ao mesmo tempo.
pacrao
Structured
Query
Language (SQl).
Com a imensa facilidade de inteqracao do MySQl com varias linguagens, a
sua utilizagao para web em portais imensos com missao critica, ou simples sites com
poucos acessos tomam-se uma solucao viavel e muito contiavel.
Para Videiro (2008) 0 desempenho deste banco colabora na sua grande fama,
sendo considerado por grandes empresas 0 banco de dados mais popular existente.
Sua imensa compatibilidade
o
banco
de
caracterlsticas
dados
MySQl
um
dos
mais
utilizados.
Dentre
as
principais
atual, compatibilidade
com diversas
linguagens,
estabilidade
e desempenho
nas
o MySQl
transacionais
insfrucoes
e processa-las
29
Um banco de dados pode conter tabelas de diferentes tipos, ou seja, podese desenvolver uma aplicacao tranquilamente utilizando os varies tipos de
tabelas disponiveis, aproveitando dessa forma 0 melhor de dois mundos.
e superior
Mesmo trabalhando
com tabelas
transacionais
a performance
e 0 padrao
utilizado,
os
HEAP sao tipos de tabelas que fazem parte do grupo das nao transacionas tal
como 0 MyISAM, mas seus indices sao armazenados
tipo transacional
performance
de
usado largamente em
sites que possuem banco de dados superiores a um Terra byte (TB). As tabelas
podem ser de qualquer tamanho, mesmo em sistemas operacionais onde 0 tamanho
do arquivo
e limitado,
seguro, foi
30
desenvolvido para eficiencia em nivel de central processing unit (CPU). Possui sua
propria area de buffer para armazenar dados e indices na memoria principal (MUTO,
2006).
BerkeleyDB (BOB) e mais um tipo de tabelas existente no MySOL, possuem
diversos
2.7.2Integridade
Integridade
referencial
referencial
e um metodo utilizado
garantir que os dados nao possam ser excluidos quando houver relacionamentos de
niveis hierarquicos nas tabelas, evitando assim que a intormacao seja corrompida.
Atraves das chaves estrangeiras e possivel identificar se a intorrnacao e dependente
de outra tabela.
Segundo Duarte (2006):
um registro da tabela
cujos
31
As transacoes
simples
em qualquer
e realizada
o comando
ficara
comportamento
pendente.
nenhuma
A sintaxe
instrucao
pode
de delimitador
ser cancelada
com
no final, a
algum
mau
comando rollback como delimitador final, dessa forma todo 0 SOL da transacao nao
sera interpretado pelo banco de dados.
software
phpMyAdmin
foi desenvolvido
em linguagem
interface web para navegador, com este aplicativo e possivel criar e remover banco
de dados, tabelas e campos, enfim, qualquer operacao necessaria para rnanipulacao
e conncuracao
um conjunto de
necessitando apenas de um
servidor web que seja compativel com a versao do PHP a qual 0 phpMyAdmin foi
construido.
Suas
atualizacoes
desenvolvimento
sao
criados
por
toda
phpMyAdmin
e amplamente
de banco
de dados
possam
realizar
qualquer
operacao
32
2.8 AJAX
Ajax
JavaScript,
usa das
tecnologias
XML (eXtensible
Markup
e sincronos.
Language)
objetivo do Ajax
evitar que a cada solicitacao enviada pelo cliente ao servidor, nao seja necessario
carregar toda a pagina (MORONI, 2007).
A metodologia
proposta
e
de
A criacao de um objeto Ajax, tem como proposta solucionar uma grande parte
dos
problemas
atuais
das
linguagens
web,
permitindo
que
ele
acesse
as
nao s6 um desempenho
com Ajax.
a esquema
33
user
oweor
J.v.~Pt
o'lt
'"
lnterilO!
call
HTML~diO
Aju engine
;n;'j(s~ 1
I
XMld~tI
datastores, backend
~ng,
~
systems
=terns
se ve
classic
e rio
ems
Ajax
web application model
As requisicces
sincronas,
HTTP da metodologia
Ajax, podem
ser assincronas
de outro formulario,
acao, como
2.8.1 XML
objetivo
da concepcao
e dividida
arquivo
computadores
XML
possui
um alto
nivel
de
legibilidade,
permitindo
que
intormacces
sao utilizados
em arquivos
2.8.2 JavaScript
e a Sun, a linguagem
passou a se chamar
uma estrutura HTML, possui urn desempenho de resposta muito rapido, devido que
o JavaScript
carregado
juntamente
de uma
Triacca
(2007),
problemas de compatibilidade
outra linguagern compativel,
browser
no comeco
linguagem
possula
diversos
para 0
diferentes, desenvolvedores
de
paginas web tiveram que criar scripts diferentes para cada navegador, necessitando
em uma deteccao de browserna
o Modelo
e uma especiticacao
da W3C de
e possivel
Esse conceito
alterar dinamicamente
mostra
uma estrutura
ea
uma linguagem
linguagem
de marcacao.
Quando
documento
representacao de rnetodos,
estiver
carregado,
possivel
2.8.4 Requislcao
Conforme
XMLHttp
um objeto na linguagem
JavaScript, utilizado para criar uma conexao entre a paqina e 0 servidor da aplicacao
operacao do Ajax.
A deteccao
utilizam 0 objeto
do objeto Active X.
pode implementar
de diversas
maneiras diferentes.
Utilizando metodos especificados no DOM,
entre a paqina e 0 script do servidor.
e possivel
Servidor web
e 0 software
e responsavel
acessado atraves dos dominios que estao associados ao Internet Protocol (IP) do
servidor (STEVENS; FENNER; RUDOFF, 2004).
Os pedidos para visualizacao e download dos c6digos HTML, imagens, sons
ou qualquer outro sao feitos atraves dos navegadores instalados nas plataformas
dos clientes. Com a utiliza\;:ao de linguagens especificas para serem processadas e
executadas nos servidores,
atender
as solicitacoes
garantir
milhares
de acessos
sirnultaneos
servidores
que podem
sao configurados
para
ocorrer em um site ou
o software
Apache
e um
em mais de 50% de todos os servidores do mundo. Foi criado em 1995, por Rob Mc
Cool, tuncionario da National Center for Super Computing Applications (NCSA). Com
saida de Rob da NCSA, varias pessoas cornecaram a adaptar 0 software as suas
necessidades.
continuacao
Brian
Behlendorf
e Cliff Skolnick
foram
os
responsaveis
pela
patches
e baseado
servidor
compatlvel
com 0 protocolo
para
diversas plataformas. Composto por rnodulos que realizam as mais variadas funcoes
e recursos, como compatibilidade
livre,
continua
sendo
por
diversas
pessoas
votuntarias,
com desempenho
para os
servidores.
o Apache e capaz
Perl, Shell Script e Active Server Pages (ASP). Pode ser configurado como servidor
HTIP
2.9.2 XAMPP
A fundacao
Apache
Friends
que visa
promover 0 servidor Apache, fundada em 2002 por Kai 'Oswald' Seidler e Kay
Vogelgesang.
softwares para servidor web, incluindo MySOL, Apache, PHP, FileZilla entre outros.
Seu nome
e um acr6nimo
e multiplataforma,
MySOL, e duas vezes a letra "p", que significam PHP e PERL (APACHE FRIENDS,
2009).
A principal
configura9ao,
caracteristica
do software,
sua facilidade
de instalacao
sem a necessidade
locais para
de upload em um servidor na
internet.
2.9.3 Microsoft
Internet Information
Services (115)
Windows,
disponibilizada
operacional,
estabilidade
e sequranca
sendo 0
(RODRIGUES
ao sistema
DE FREITAS,
2006).
linguagem
igualmente ao PHP
protocolos
diversas
caracterlsticas
adicionais
de sequranca.
nas versoes
A Microsoft
as vulnerabilidades.
Ainda
e posslvel
Segundo
desenvolvimentos
Remoaldo
(2008), 0 Adobe
Dreamweaver
um software
para
com
Conta
reconhecendo
uma
interface
que
padroes de comandos.
auxilia
desenvolvimento
de
c6digo,
possivel criar
Dreamweaver
permitindo
automatica
possui
um menu exclusivo
facilita
desenvolvimento
do layout da aplicacao,
do c6digo
pela W3C.
2.10.2 Spry
no formato
JavaScript
e CSS, permitindo
a criacao
de
a tecnologia
Ajax e possivel
criar diversas
e realizado
total mente
otimizamdo 0 desenvolvimento.
no Dreamweaver,
na aba
propriedades,
e responsavel
por
realizada
c6digo
JavaScript,
permitindo uma reposta rapida, antes mesmo de 0 torrnulario ser enviado, pois as
instrucoes sao baixadas na plataforma do usuario, ou seja, 0 processamento
validacao
feito localmente,
de
de esperar uma
resposta do servidor.
2.11 METODOLOGIA
o projeto
seus funcionamentos
PHP, onde cada um
e responsavel
dividido em arquivos
por um m6dulo.
Para determinar
como 0 software
A soma
de totais
de impostos
e produtos
em um pedido devera
ser
autornatica;
representante, faturamento,
producao, administrador;
departamento,
sao representados
on de cada departamento
realiza diversas
atividades
previstas
das possibilidades
que 0
uc
Ului';O'rO~
autor
o diagrama
Diagramas
cornpreensao.
propostos
de classes
devem
pelo aplicativo,
relacionamentos
facilitando
a sua
objetos
o aplicativo
navegador
se comunica
e interpretado,
para ser
e recebendo
lente
Browser
[,-
~_IT_M_L_-----,)144
--t"(
JavaScript
Servidor
PHP
MySQL
Sessao -
Conexiio
Banco de Dados
converseo
autor
o arquivo
"config.php" possui
para 0 funcionamento
OS
durante 0 processo de instalacao. Seu conteudo deve ser protegido pelo servidor
formado
inteiramente
por
diversas paginas, para realizar tuncoes de conexao ao banco de dados, envio de emails e parametros de ernissao de relat6rios.
<?php
$Iocal_database = "Iocalhosf';
$database = "projeto";
$usuario_database = "root";
$senha_database = "";
$e_mailremetente = "contato@machsolucoes.com";
$e_maildestinatario = "contato@machsolucoes.com";
I/Configura<;ao de retatonos
$fonte = 'Arial';
$tamanho
'10'; 7>
Oualquer paqina PHP que utilize uma sintaxe de SOL para fazer qualquer
operacao com 0 MySOL, deve possuir as fungoes nativas da linguagem para criar a
conexao com 0 banco de dados. 0 c6digo descrito possui a tuncao para conexao
com 0 MySOL e outra para selecionar a base de dados.
incluido tratamento em
caso de erro atraves do trye catch, que realiza a tentativa de conexao, e em caso de
falha exibe a mensagem de erro.
<?php
include ("config.php");
try{
if(!$db = mysql_connect("$local_database","$usuario_database","$senha_database")){
throw new Exception("Erro ao estabelecer conexaol ".mysql_errnoO." - ".mysql_error());
}else{
try{
if(!mysql_select_db("$database",$db)){
throw new Exception("Erro ao
".mysql_errorO);
}
}catch(Exception $e){
echo $e->getMessage();
selecionar
banco
de dados!
".mysql_ermo()."
}
}catch(Exception $e){
echo $e->getMessageO;
?>
As
variaveis
$Iocal_database,
$usuario_database,
$senha_database
2.11.7 Autenticac;ao
de usuario
faturamento,
padrces do
producao e administrador.
com
os campos
que devem
no apendice C, contem 0
ser preenchidos
pelo usuario
na sua
autenticacao.
Apes a validacao,
sao incluidos
em
<?
$Iogin = $_POST['login1;
$senha = $_POST[,senha1;
$departamento = $_POST[,dpto1;
include "conexao.php";
$sql = mysql_query("SELECT'
FROM usuario WHERE login = '$Iogin''');
$cont = mysql_num_rows($sql);
while($linha = mysql_fetch_array($sql{
$senha_db = $linha['senha1;
$departamento_db = $Iinhardepartamento');
}
if($cont == O){
echo"
<META HTTP-EQUIV=REFRESH
CONTENT ='0; URL= ..llogin.php'>
<script type=\"texVjavascript\">
alert(\"O nome de usuario nao corresponde.\");
</scrip!>";
}else{
if($senha_db != md5($senha{lIconfere
senha
echo"
<META HTTpEQUIV=REFRESH
CONTENT ='0; URL= ..llogin.php'>
<script type-V'textjavascriptv'
alert(\" A senha nao corresponde.\");
-c/script ";
}else{
if($departamento_db != $departamento){lIdepartamento
echo"
<META HTTP-EQUIV=REFRESH
CONTENT ='0; URL= ..llogin.php'>
<script type=\"texVjavascript\">
alert(\"Departamento incorreto.\");
e feito
em PHP
e/scrlpts";
}
else{
sesstonstartr):
$_SESSION[,login_usuario')
= $Iogin;
$_SESSION[,senha_usuario1
= $senha;
$_SESSION['departamento_usuario']
= $departamento;
header('Location: ..Iindex.php');
}
}mysql_close($db)
;?>
de transicao
para
usuario,
convertido
utilizando
um algoritmo
e possivel
usuario
redirecionado
2.11.8 Cadastros
o cadastre
utilizacao
de todas
departamento
as funcionalidades
de
de faturamento e adrninistracao
rotinas
previstas
e essencial
para a
no aplicativo.
produtos, bem como seus dados tecnicos, como por exemplo, 0 campo peso que
utilizado para emissao de uma ordem de carregamento
e impostos freqOentemente
representante cadastrara
OS
responsavel de
2.11.9 lnclusao
de pedidos
preco,
realizando
processo. No final
responsavel em armazenar os
internas. 0 departamento
de faturamento
Na
finallzacao da carga devera ser feita sua baixa, registrando no banco de dados que
os pedidos ja foram carregados.
e divido
2.11.11 Relat6rios
desenvolvimento,
possiveis no
Os
usuaries somente deverao informar as variavels de uma consulta como data, cliente
ou produto.
Os relat6rios sao gerados em Portable Document Format (PDF). 0 sistema
utiliza a biblioteca FPDF para converter os resultados do banco de dados em um
arquivo PDF,
e posslvel
<?php
Include
define('FPDF _FONTPATH', 'fpdf/font!');
require('fpdf/fpdf.php') ;
include("conexao.php") ;
$busca = mysql_query("SELECT id_cliente, nome, endereco, uf FROM cliente");
$pdf = new FPDF();
$pdf->OpenO;
$pdf->AddPageO;
$pdf->SetFont('Arial', 'B', 10);
$pdf->CeU(40, 5, 'CNPJ / CPF');
$pdf->SetX(35);
$pdf->Cell{135, 5, 'Nome');
$pdf->SetX(90);
$pdf->Cell{135, 5, 'Endereco');
$pdf->SetX(150);
$pdf->Cell{40, 5, 'UF');
while ($resultado = mysql_fetch_array{$busca))
$pdf->lnO;
$pdf->Cell{40, 5, $resultado[,id_cliente1);
$pdf->SetX(35);
$pdf->Cell(135, 5, $resultado[,nome1);
$pdf->SetX(90);
$pdf->Cell(135, 5, $resultado['endereco']);
$pdf->SetX(150);
$pdf->Cell{40, 5, $resultado['uf1);
}
$pdf->OutputO; ?>
2.11.12 Logoff
necessario dispor de
quando clicado nesta opcao 0 usuario sera redirecionado na pagina inicial, para uma
nova autenticacao.
E utilizada
<?php
include "conexao.php";
$sair = $_GET['sair');
sessionstartr):
if (isset{$_SESSION['ultima_acao'])
> 300)) {
sessionjfestroyf):
session_unsetO;
}
$_SESSION[,uttima_acao1
= timeO;
com 0 horario da
ultima acao do usuario no sistema, se for menor que trezentos segundos, ou cinco
minutos, as sessces sao destruidas,
tempo limite sem acao permite uma garantia para quando 0 usuario esquecer 0
sistema
autenticado
nao autorizada,
Algumas
mtorrnacoes digitadas
pelos usuaries
necessitam
ser tratadas,
e gravado
entre 0 padrao
no banco de dados.
linguagens
abaixo
para a conversao
converter 0 dado para gravar no banco de dados MySQL ou apresentar na tela para
o usuario. 0 c6digo foi escrito em linguagem PHP e criado por Marcelo Bento da
Rocha (2010 p. 1)
,.
<? p
h p
@param $data
@return $data
., Marcelo Bento da Rocha
function converterData($data)
{
if(substr($data,2, 1) == "f')
{
$dd = substr($data, 0,2);
$mm = substr($data, 3,2);
$aa = substr($data, 6,4);
$time = substr($data, 11,8);
if($time != "")
$data = $aa."-".$mm."-".$dd."
else
$data = $aa."-".$mm."-".$dd;
".$time;
else
{
$dd substr($data, 8,2);
$mm = substr($data, 5,2);
$aa = substr($data, 0,4);
$time = substr($data, 11,8);
if($time != "")
$data =$dd."I".$mm."/".$aa."
else
$data = $dd."/".$mm."/".$aa;
}
if($data=='ff)
{
$data = ";
}
return $data;
".$time;
e utilizado
virgula
entre os algarismos de unidades e decirnas, mas 0 padrao exigido por muito banco
de dados, como
on de
e utilizado
ponto no lugar
ela
e capaz
de
e necessario
A Iuncao pode ser demonstrada abaixo, com 0 valor de uma variavel digitada pelo
usuario que deve ser convertida antes da qravacao no banco de dados.
<?php
$ipi = strjeplacet",",
".", $ipi);
t-:
no cadastro
de clientes
0 CNPJ
ou CPF,
con forme padronizado, este c6digo possui pontos e barras que dividem parte dos
algarismos. Para isso
intorrnacao,
legivel
e utilizado
completando
para conterencia.
automaticamente
possivel
validar
as divis6es
necessarias,
os nurneros digitados
tomando-o
comparando
resultados dos algarismos com 0 c6digo verificador, se 0 valor informado nao estiver
correto
e executada
utilizada
JavaScript, presente no anexo A, 0 c6digo foi escrito por Leandro Alexandre (2009 p.
2).
2.11.14 Contlrmacoes
e avisos em JavaScript
interagindo
com os botoes
A fun gao "elertt)" recebe uma mensagem que sera exibida na tela
requisitando a contirmacao do usuario para que ela seja fechada. 0 c6digo abaixo
<script LANGUAGE=\"Javascript\,'>
alert(\"Pedido cadastrado - Numero: $numero_pedido\");
-e/scrlpt
A tuncao "etert" no caso citado acima fica encapsulada dentro do c6digo PHP
para que seja posslvel preencher
a variavel "$numero_pedido"
com 0 c6digo do
antes de realizar uma determinada acao. A funcao "confirm()" gera uma mensagem
com dois botoes: um "OK" e outro "CANCELAR". Oependendo da escolha do usuario
o script retorna "true" ou "telse', estes valores sao utilizados para confirmar uma
execucao
do c6digo
PHP ou cancela-la.
script abaixo
e utilizado
function show_confirm(pagina,funcao,id,retorno)
(
var id
var retorno
var r=oonfirm("Aperte OK para deletar");
if (r==true)
{
window. location =pagina +" ?funcao=" -funcao- "& id=" +id+" &retorno= "Hetorno;
}
else
{
window.locationeretomo:
}
}
para a
A tuncao "show_confirm(")
de onde
foi chamada,
permitindo
utilizada
por varias
paginas,
de faturamento.
<?php
include "..leonfig.php";
$emailsender = "$e_mailremetente";
/* Verifica qual
$mensagemHTML
'<P></P>
<P>Um novo pedido foi adicionado numero<lP>
<p><b><i>' .$n_pedido. '</i></b></p>
chre-';
$headers
$headers
$headers
$headers
$headers
$headers
if(!mail($emaildestinatario,
$assunto, $mensagemHTML, $headers ,"-r".$emailsender)){
$headers.= "Return-Path:" . $emailsender . $quebra_linha;
mail($emaildestinatario, $assunto, $mensagemHTML, $headers);
} ?>
aplicativo
possui
um
menu
personalizado
para
cada
departamento,
realizado um rastreamento da
qual departamento
usuario
pertence. A funcao "switch()" do c6digo abaixo, identifica que valor possui a variavel,
encaminhando um "include" para cada tipo de usuario.
sessionstartt):
$departamento_usuario
$_SESSION["departamento_usuario");
switch ($departamento_usuario) (
case 1:
include "representante .php";
break;
case 2:
include "faturamento.php";
break;
case 3:
include "producao.php";
break;
case 4:
include "admin.php";
break;
}
Para evitar que um usuario consiga acessar uma pagina responsavet por um
modulo nao pertencente ao departamento
a qual
e registrado, e utilizadas
de verlficacao
avisando
que
autorizado,
caso
esteja
fungoes
por um dialogo
tentando
acessar
atraves de um
e a paqina de cadastro de
. . . "'' '
~o.
Ira
......
....:..
f@"!JI'_._ ..
,III'
. t"1~"'_
Q]
D'
..........
-"._.-
-1-1-lc:...oo-ll\t-I-
..'.
CI'I'
--
CHPJ
'-
I~a...
'I
....
....
I .--..
f--Clltnl.
OtI>J/CfI'F
0'0.' ......
DIEGO DE COSTA
Ir-II
'~l
..
Figura 1: Tela do aplicativo com cadastro de clientes
Fonte: 0 autor
de fungoes
para
e executado
3 CONCLUSAO
A qualidade
das intorrnacoes
tomada de decisoes
software
e orqanizacao
da empresa.
importante
para a
que 0
concisos. Este sistema deve estar disponivel para acesso em qualquer lugar, visto a
necessidade de usuaries remotos pelo pais inteiro, sendo assim
criar mecanismos
localizacao.
que possam
Para garantir
e interessante,
a eficacia
do conjunto
do software
nao
faixa de
necessaria
para determinar
processos
e rotinas em que 0
tuncoes, devera ser realizada uma nova analise para que 0 contexte proposto nao
seja afetado em sua estrutura principal, garantindo que 0 aplicativo somente deve
ser melhorado quando adicionado mecanismos uteis ao objetivo.
A criacao de um sistema a partir de uma linguagem confiavel e robusta foi de
grande
irnportancia
planejado.
PHP e mundialmente
conhecido por ser uma linguagem legivel, que ao mesmo tempo consegue construir
projetos complexos, com ambiente de rnlssao critica. validacoes locais garantem um
grande nivel de interacao com 0 usuario, permit indo que 0 desempenho do aplicativo
seja melhorado, dividindo servlcos de carga de dados entre 0 servidor e a plataforma
do cliente.
o banco de dados MySQL que e totalmente
PHP, tem
como
principal
caracteristica
sua
velocidade,
utilizado
quase
essencialmente para web, [a que conta um desempenho superior para este nicho.
Pode-se dizer que utilizar a internet como um meio para disponibilizar
pod em
e necessario
mecanismos
e possivel
que
locais ou
de outros aplicativos
ernissao de uma nota fiscal ou lancamentos na contabilidade. Para garantir uma total
autornatizacao
de todos os procedimentos
decorrentes
da vendas de bebidas e
REFERENCIAS
ANTUNES LAMIM, Jonatham. Gerando PDFs com PHP e a classe FPD. 2010.
Disponivel em:
<http://www.oficinadanet.com.br/artigo/php/gerando_pdfs_com_ph
p_e_a_class e_fpd
f_instalacao_e_primeiras_linhas_de_codigo>.
Acesso em: 23 out. 2010.
COAR, Ken; BOWEN, Rich. Apache Guia Pratico. Rio de Janeiro: Alta Books,
2008.272 p.
Hacker. 5. ed.
60
0 Guia Definitivo.
Sebastopol, Ucranla:
da
Sao
MORONI, Herbert. Cria~ao de sites em Ajax. Sao Paulo: Digeratti Books, 2007.
128 p.
61
na
PHP GROUP. PHP. 2010. Disponivel em: <httpJ/php.net/>. Acesso em: 23 out. 2010.
Sequranca em sistemas de
de Cornunlcacao
de Dados. Rio de
de Rede
62
Acesso em: 23
63
APENDICES
64
~------------I :
!
I
-n ~n==
!
t ~I
r _
---~--i~----- ----
Ii
.l
-n
--
---.---j --i
J --: ----
. j
I ~} i.. .~----------
------------~---
65
Olente
_ Id_cllente . int
_ nome: string
_ tndere~o . string
_ uf : string
_ cldade string
_ data Date
_ observa~6es : string
_ usuarlo . string
r
0 ..
_ Id"pedldo : Int
_ Id_ordem : Int
_ Id_cllente . Int
_ valor. float
_ desconto float
_ condpgto : nrl n9
_ login: string
_ carregamento : boolean
+ IndulrO : void
+ editarO void
+ excluirO : void
+ cadastrarO : void
+ edltarO . void
trens
1.."
_ Id_ltens . Int
_ id..produto . Int
_ id_pedido : 1m
_ quantidade : int
_ vtunitario . float
_ vtst float
_ vltoral : float
+ inciulrO : void
+ deletarO : void
1
0 ..
Usuarlo
_ Id_usuarlo Int
_ nome string
_ login. string
_ senha : sui ng
_ departamento:
string
+ cadaslrarO : void
+ edltarO : void
+ desativarO . void
....!..
1. .
Ordem
Produto
_ Id ordem : Int
_ qu-antldade : Int
_ peso float
_ entregas : Int
_ transportadora : string
_ motorlSla : sIring
_ datacarreg : Dale
_ Id_produto : Int
_ nome char
_ peso: float
_ data: Date
_ observacees : char
_ Ipl . double
+ IncluirO : void
+ edilarO : void
+ deletarO : void
+ editarO : void
+ deletarO : void
+ cadastrarO : void
I't
66
-etr
td width="94 "> <ltd>
-etd width="296"><h3><strong>Efetue
0 login<fstrong></h3><ltd>
<Itr>
<tr>
-ctde-cdiv align="right">Usuário:<fdiv><ftd>
-etde<label>
<input type="text" name="login" id="login" I>
<!label>
<ltd>
Iir
<tr>
ctds-cdiv align="right">Senha:</div><ftd>
<ld>
-dabeb<input type="password" narne-r'senha" id="senha" I>
<!label>
<ltd>
-dt:
<lr>
<ld><div align="right">Departamento:<fdiv><1Id>
-ctde-cselect name="dpto" id="dpto">
<option value="1 ">Representante<loption>
<option value="2">Faturamento<loption>
<option value="3">Producao<loption>
<option value="4">Admin<loption>
</select><ftd>
</tr>
<tr>
-etd height="37"><ltd>
-etde-cinput typa-'submit'
<ftr>
<!form>
-e/table
-e/hfmb-
valua-'Loqar'
classe'botao' I><ftd>
67
68
$retomo = $_GET[,retorno');
$sql_alterar = mysql_query("UPDATE cliente SET nomee'Snorne',
encereco-'sercereco', uf='$uf', cidade='$cidade', enderecoentrega='$enderecoentrega',data='$data',
observacoese'sobservacoes' WHERE id_cliente = '$id'");
header("Location: $retomo?nome_busca=$nome");
}
if($_GET['funcao1 == "excluir_cliente"){
$id = $_GET['id');
$retomo = $_GET['retorno'];
$sql_del = mysql_query("DELETE FROM cliente WHERE id_cliente = '$id'");
header("Location: $retomo");
69
$id_cliente = $_GET('id_cliente');
session jstartf);
$_SESSION[pedido_dados)[id_clientej
= $id_cliente;
head er("location: ..lpedido _inciuLphp?fu ncac-editar _ cliente");
//&id_cliente=$id_cliente
}
if($_GET['funcao'j=="incluir_iten")
(
$id_produto = $_GET[,id_produto1;
$quantidade = $_POST[,quantidade'j;
$preco = $_POST[,preco1;
session staru):
$_SESSION[indicej = $_SESSION[indicej+
$indice = $_SESSION[indicej;
1;
$_SESSION[pedido)[$indice)[id_produto)
= $id_produto;
$_SESSION[pedidoj($indice)[quantidade)
= $quantidade;
$_SESSION[pedidoj($indice)[preco)
= $preco;
$sql_ipi = mysql_query("SELECT ipi FROM produto WHERE id_produto = '$id_produto'");
if (isset($sql_ipi){
while($linha_produto = mysql_fetch_array($sql_ipi)(
$tabela_ipi = $linha_produto['ipi1;
}
}
$_SESSION[pedidoj($indice)[ipij
= $tabela_ipi;
$_SESSION[pedidoj($indice)[total)
= (($preco+$tabela_ipi)*$quantidade);
//--- DESCOBRIR TOTAL DO PEDIDO
$indice = $_SESSION[indice);
$_SESSION[pedido_dados)[total)
= $_SESSION[pedido_dados)[total)
+
$_SESSION[pedido)[$indicej(totalj;
header("location: ..lpedido_incluLphp?funcao=editar_cliente");
}
if($_GET('funcao'j=="adicionais")
{
$sql_adicionais = mysql_query("UPDATE pedido SET condpgto = ('$condicao') where
id_pedido = ('$id_pedido')");
$sql_adicionais = mysql_query("UPDATE pedido SET confirm ado = ('1') where id_pedido =
('$id_pedido')");
}
//**CONFIRMAQAO DO PEDIDO
if($_ GET['funcao1 == "confirmar")
(
//-- PEDIDO
session jstartt):
$id_cliente = $_SESSION[pedido_dadosj(id_clientej;
$vltotal = $_SESSION[pedido_dados)[totaJ);
70
I/---INSERINDO PEDIDO
$Iogin_usuario
$_SESSION("login_usuario"];
$sql_confirma_pedido
mysql_query("INSERT INTO pedido (id_cliente, valor, condpgto,
login, carregamento) value ('$id_cliente','$vltotal':$condpgto','$login_usuario','O')");
$tabela_pedido
mysql_query("SELECT max(id_pedido) FROM pedido");
if (isset($tabela_pedido){
while($linha_pedido = mysql_fetch_array($tabela_pedido){
$numero_pedido = $Iinha_pedido['max(id_pedido)'];
}
}
$_SESSION[pedido_dados][id_pedido]
= $numero_pedido;
/I-------ITENS
$indice = $_SESSION[indice];
$contador_itens = 1;
while ($contador_itens<=$indice)
{
$id_produto = $_SESSION[pedido][$contador_~ensj[id_produto];
$quantidade = $_SESS 10N[pedidoj[$contador _itens][ quantidade];
$preco = $_SESSION[pedido][$contador_itens][preco];
$total_itens = $_SESSION[pedidoj[$contador_itensj[total];
$sql_confirma_itens = mysql_query("INSERT INTO itens (id_produto, id_pedido, quantidade,
vlunitario, vltotal) value ('$id_produtO','$numero_pedido','$quantidade','$preco','$total_itens')");
$contador_itens
= $contador_itens+l;
$_SESSION[pedido_dados]
= NULL;
$_SESSION[pedido] = NULL;
echo'xscript LANGUAGE=\"Javascript\">alert(\"Pedido
cadastrado - Numero:
$numero_pedido\");</SCRIPT>";
echo "cscrjpte-window.location-' ..Ipedido_inciuLphp';</script>";
71
}
//--TRATAMENTO FINAL
$peso = $peso $quantidade;
$datacarreg = converterData($datacarreg);
//--INSERQAO FINAL
$final = mysql_query("update ordem set quantidade = '$quantidade', peso = '$peso', entregas
='$entregas', transportadora = '$transportadora', motorista = '$motorista', datacarreg = '$datacarreg'
where id_ordem = '$ordem_id"');
echo "<script type='texVjavascript'>alert('Ordem
criada - Numero: $ordem_id');<lscripl>";
echo "<script>window.location='.Jordem.php';<lscripl>";
} else {
echo "<script type='texVjavascript'>alert('Selecione
algum pedidol'j.e/scripb-":
echo "cscrlpb-wincow.location-,' ..!ordem.php';<lscript>";
}
u- BAIXA DE OADEM
if ($_POSTrfuncao') == "baixar")
(
if ($_POST['id_ordem') == "")
{
echo "<script type='text/javascript'>alert('Selecione
alguma ordeml'j.e/scripts";
echo" -cscriptswindow.locatione' ../ordem _baixa.php' ;</scripl>";