Sie sind auf Seite 1von 20

SISTEMA DE ENSINO PRESENCIAL CONECTADO ANLISE E DESENVOLVIMENTO DE SISTEMAS

DANIEL HENRIQUE SCANDOLARA

DESENVOLVIMENTO DE APLICAO WEB - PHP

Concrdia - SC 2010

DANIEL HENRIQUE SCANDOLARA

DESENVOLVIMENTO DE APLICAO WEB - PHP

Trabalho

apresentado de

ao

Curso da

Anlise UNOPAR

e -

Desenvolvimento

Sistemas

Universidade Norte do

Paran, para a disciplina

Desenvolvimento de Aplicao Web.

Prof. Veronice de Freitas.

Concrdia - SC 2010

Sumrio
Introduo...................................................................................................................4 1 Carrinho de Compras..............................................................................................5 1.1 Acesso Restrito......................................................................................................6 1.1.1 Cadastro de Produtos........................................................................................6 1.2 Busca......................................................................................................................6 1.3 Cadastro do Cliente................................................................................................7 2 Banco de dados....................................................................................................7

2.1 Tabela de Clientes..................................................................................................8 2.2 Tabela de Produtos................................................................................................8 2.3 Tabela de Usurios................................................................................................9 3 4 Arquivos Utilizados..............................................................................................9 Ligao entre Clientes e Carrinho....................................................................20

Concluso.................................................................................................................21

Introduo

O PHP uma linguagem orientada a objeto, com a sintaxe parecida com a do C, s que muito mais simples e prtica. O PHP se diferencia justamente pela rapidez e agilidade que os programadores tm em fazer programas e sistemas, pois com o PHP consegue-se desenvolver muito mais rapidamente do que outras linguagens de programao para Web, como por exemplo, ASP ou JSP. Uma das melhores habilidades do PHP lidar com bancos de dados de uma forma fcil. Hoje em dia os sistemas para Web esto cada vez mais usufruindo das capacidades magnficas que os bancos de dados podem oferecer. O MySQL um banco de dados simples, rpido e eficiente para se trabalhar com sistemas Web. Alm disso ele bem fcil e intuitivo.

1 Carrinho de Compras O objetivo foi aplicar o Carrinho de Compras em uma loja de compras de tv online, onde possvel adicionar os produtos ao carrinho.

Ao clicar no boto Comprar, o CD automaticamente enviado para o Carrinho de Compras, neste, podem ser definidas ainda as quantidades que sero compradas, sendo que, aps alterar a quantidade, deve-se clicar no boto Atualizar Carrinho para atualizar o valor total da venda. Possui ainda, a opo Continuar Comprando, que retorna para a pgina inicial, caso deseja adicionar mais produtos no carrinho, ou ainda, remover algum produto que j foi comprado, clicando no link Remover ao lado do item. 1.1 Acesso Restrito 1.1.1 Cadastro de Produtos Nesta sesso, o acesso somente ser feito pelo administrador do sistema, ou seja, um usurio que j est cadastrado no banco de dados com sua respectiva senha. Ao acessar, mostrar o nome do Usurio que tambm consta no banco de dados e a opo para cadastrar produtos, podendo inserir alm do nome e do preo, uma imagem do produto. Os campos sinalizados por asterisco (*) so obrigatrios, caso algum deles estiver em branco, ao clicar em Concluir o Cadastro, mostrar uma mensagem informando que o mesmo deve ser preenchido.

1.2 Busca Nesta sesso, o usurio poder fazer uma pesquisa pelo produto desejado (podendo ser pelo nome completo ou parte do nome). Ao fazer a pesquisa o mesmo localizado, exibindo abaixo da busca, o nome dos produtos que encontrou, bem como seu preo.

1.3 Cadastro do Cliente Ao clicar no link Cadastre-se, na pgina inicial, ir mostrar a tela para efetuar

o cadastro do cliente ou visitante do site. Os campos sinalizados por asterisco (*) so obrigatrios, caso algum deles estiver em branco, ao clicar em Concluir o Cadastro, mostrar uma mensagem informando que o mesmo deve ser preenchido.

2 Banco de dados Foi criado um banco de dados chamado carrinho_dri, contendo trs tabelas: clientes, produtos e usuarios.

2.1 Tabela clientes

2.2 Tabela produtos

2.3 Tabela usuarios

OBS: Existe a possibilidade de cadastrar mais usurios. 3 Arquivos Utilizados Primeiramente, os arquivos foram divididos em algumas pastas segue abaixo estrutura:

conexao.php
<?php mysql_connect("localhost","root","dri"); mysql_select_db("carrinho_dri"); ?>

index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>..::Livraria Online - Adquira j seu Livro::..</title> <STYLE TYPE="text/css"> BODY { font: 10pt Verdana} </STYLE> </head> <body background="img/fundo5.jpg" bgproperties="fixed"> <center> <table bordercolor=pink border=0 width=100%> <tr><td></td> <td align="center" width="60%"><h1><font face='Comic Sans MS' color='#EE0000'>..::Livros mais Vendidos::..</font></h1><br> </td><td align="right" width="20%"><a href="Clientes/form.html" target="_blank">Cadastre-se</a> | <a href="index.php">Home</a> </td> </TR>

9 <tr> <td rowspan="3"width="20%" valign="top" style="text-align:left"> <br><BR>Procurar Produto: <form name="frmBusca" method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>?a=buscar" > <input type="text" name="palavra" /> <input type="submit" value="Buscar" /> </form> <?php include('conexao.php'); $a = $_GET['a']; if ($a == "buscar") { $palavra = trim($_POST['palavra']); $sql = mysql_query("SELECT * FROM produtos WHERE nome LIKE '%".$palavra."%' ORDER BY nome"); $numRegistros = mysql_num_rows($sql); if ($numRegistros != 0) { while ($produto = mysql_fetch_object($sql)) { echo $produto->nome . " (R$ ".$produto->preco.") <br />"; } } else { echo "Nenhum produto foi encontrado com a palavra ".$palavra.""; } } ?> </td> <td> <?php require ("conexao.php"); echo '<table bordercolor=blue border=0 width=100% align=center><tr><td colspan=2 align=center>'; $sql = "SELECT * FROM produtos"; $qr = mysql_query($sql) or die (mysql_error()); while($ln = mysql_fetch_assoc($qr)){ echo '<h2>'.$ln['nome'].'</h2>'; echo '<b>Preo:</b> R$ '.number_format($ln['preco'], 2,',', '.').'<br><br>'; echo '<img src="img/'.$ln['imagem'].'" /> <br />'; echo '<a href="carrinho.php?acao=add&id='.$ln['id'].'"><br><img src="img/Comprar.jpg" width=110 height=35 border=0></img></a>'; echo '<hr><br />'; } echo '</tr></table>'; ?> </td> <td valign="top"> <form action="produtos/auth.php" name="autenticacao" method="post"> <table width="200" border="0" align="top" bordercolor=blue style="text-align:center"> <tr><td colspan=2><br><BR><b>Acesso Restrito</b></td></tr><tr> <td width="50">Login:</td> <td width="140"><input type="text" name="login" size="20" maxlength="20" /></td> </tr> <tr> <td>Senha:</td> <td><input type="password" name="senha" size="20" maxlength="8" /></td> </tr> <tr> <td colspan="2"><input type="submit" target="_blank" name="entra" value="Entrar" /></td> </tr> </table> </form>

10 </td> </tr> </table> </body> </html>

carrinho.php
<?php session_start(); if(!isset($_SESSION['carrinho'])){ $_SESSION['carrinho'] = array(); } if(isset($_GET['acao'])){ if($_GET['acao'] == 'add'){ $id = intval($_GET['id']); if(!isset($_SESSION['carrinho'][$id])){ $_SESSION['carrinho'][$id] = 1; } else { $_SESSION['carrinho'][$id] += 1; } } if($_GET['acao'] == 'del'){ $id = intval($_GET['id']); if(isset($_SESSION['carrinho'][$id])){ unset($_SESSION['carrinho'][$id]); } } if($_GET['acao'] == 'up'){ if(is_array($_POST['prod'])){ foreach($_POST['prod'] as $id => $qtd){ $id = intval($id); $qtd = intval($qtd); if(!empty($qtd) || $qtd <> 0){ $_SESSION['carrinho'][$id] = $qtd; }else{ unset($_SESSION['carrinho'][$id]); } } } } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>..::Carrinho de Compras::..</title> </head> <body> <font face="Verdana" size="2"> <table align="center" border="0">

11 <thead> <tr><td colspan="5" align="center" bgcolor=navy><font color="#FFFFFF"><b>Carrinho de Compras</b></font></td></tr> <tr bgcolor="#99CCFF"> <th width="244">Produto</th> <th width="79">Quantidade</th> <th width="89">Pre&ccedil;o</th> <th width="100">SubTotal</th> <th width="80">Remover</th> </tr> </thead> <form action="?acao=up" method="post"> <tfoot> <tr> <td colspan="5"><input type="submit" value="Atualizar Carrinho" /></td> <tr> <td colspan="5"><a href="index.php">Continuar Comprando</a></td> </tfoot> <tbody> <?php if(count($_SESSION['carrinho']) == 0){ echo '<tr><td colspan="5">No h produtos no carrinho </td></tr>'; } else { require("conexao.php"); foreach($_SESSION['carrinho'] as $id => $qtd){ $sql = "SELECT * FROM produtos WHERE id = '$id'"; $qr = mysql_query($sql) or die (mysql_error()); $ln = mysql_fetch_assoc($qr); $nome = $ln['nome']; $preco = number_format($ln['preco'], 2, ',', '.'); $sub = number_format($ln['preco'] * $qtd, 2, ',', '.'); $total += $ln['preco'] * $qtd; echo '<tr> <td>'.$nome.'</td> <td><input type="text" size="10" name="prod['.$id.']" value="'.$qtd.'" style="text-align:center"/></td> <td>R$ '.$preco.'</td> <td>R$ '.$sub.'</td> <td><a href="?acao=del&id='.$id.'">Remover</a></td> </tr>';

} $total = number_format($total, 2, ',', '.'); echo '<tr> <td colspan="4">Total</td> <td>R$ '.$total.'</td> </tr>'; } ?> </tbody> </form> </table> </font> </body>

12 </html>

clientes/form.html
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>..::Cadastro de Clientes::..</title> <style type="text/css"> .style1 { color: #FF0000; font-size: x-small; } .style3 {color: #0000FF; font-size: x-small; } </style> <script type="text/javascript"> function validaCampo() { if(document.cadastro.nome.value=="") { alert("O Campo nome obrigatrio!"); return false; } else if(document.cadastro.email.value=="") { alert("O Campo email obrigatrio!"); return false; } else if(document.cadastro.endereco.value=="") { alert("O Campo endereo obrigatrio!"); return false; } else if(document.cadastro.cidade.value=="") { alert("O Campo Cidade obrigatrio!"); return false; } else if(document.cadastro.estado.value=="") { alert("O Campo Estado obrigatrio!"); return false; } else if(document.cadastro.bairro.value=="") { alert("O Campo Bairro obrigatrio!"); return false; } else if(document.cadastro.pais.value=="") { alert("O Campo pas obrigatrio!"); return false; }

13 else if(document.cadastro.login.value=="") { alert("O Campo Login obrigatrio!"); return false; } else if(document.cadastro.senha.value=="") { alert("Digite uma senha!"); return false; } else return true; } </script> </head> <body> <form id="cadastro" name="cadastro" method="post" action="cadastro.php" onsubmit="return validaCampo(); return false;"> <table width="625" border="0"> <tr><td colspan=2 align=center><font face="Verdana" size=4><b>Cadastre-se</b></font></td></tr> <tr> <td width="69">Nome:</td> <td width="546"><input name="nome" type="text" id="nome" size="70" maxlength="60" /> <span class="style1">*</span></td> </tr> <tr> <td>Email:</td> <td><input name="email" type="text" id="email" size="70" maxlength="60" /> <span class="style1">*</span></td> </tr> <tr> <td>Sexo:</td> <td><input name="sexo" type="radio" value="Masculino" checked="checked" /> Masculino <input name="sexo" type="radio" value="Feminino" /> Feminino <span class="style1">*</span> </td> </tr> <tr> <td>DDD:</td> <td><input name="ddd" type="text" id="ddd" size="4" maxlength="2" /> Telefone: <input name="telefone" type="text" id="telefone" /> <span class="style3">Apenas nmeros</span> </td> </tr> <tr> <td>Endereo:</td> <td><input name="endereco" type="text" id="endereco" size="70" maxlength="70" /> <span class="style1">*</span></td> </tr> <tr> <td>Cidade:</td> <td><input name="cidade" type="text" id="cidade" maxlength="20" /> <span class="style1">*</span></td> </tr> <tr>

14 <td>Estado:</td> <td><select name="estado" id="estado"> <option>Selecione...</option> <option value="AC">AC</option> <option value="AL">AL</option> <option value="AP">AP</option> <option value="AM">AM</option> <option value="BA">BA</option> <option value="CE">CE</option> <option value="ES">ES</option> <option value="DF">DF</option> <option value="MA">MA</option> <option value="MT">MT</option> <option value="MS">MS</option> <option value="MG">MG</option> <option value="PA">PA</option> <option value="PB">PB</option> <option value="PR">PR</option> <option value="PE">PE</option> <option value="PI">PI</option> <option value="RJ">RJ</option> <option value="RN">RN</option> <option value="RS">RS</option> <option value="RO">RO</option> <option value="RR">RR</option> <option value="SC">SC</option> <option value="SP">SP</option> <option value="SE">SE</option> <option value="TO">TO</option> </select> <span class="style1">* </span></td> </tr> <tr> <td>Bairro:</td> <td><input name="bairro" type="text" id="bairro" maxlength="20" /> <span class="style1">*</span></td> </tr> <tr> <td>Pas:</td> <td><input name="pais" type="text" id="pais" maxlength="20" /> <span class="style1">*</span></td> </tr> <tr> <td colspan="2"><input name="news" type="checkbox" id="news" value="ATIVO" checked="checked" /> Desejo receber novidades e informaes sobre o contedo deste site. </td> </tr> <tr> <td colspan="2"><p> <input name="cadastrar" type="submit" id="cadastrar" value="Concluir meu Cadastro!" /> <input name="limpar" type="reset" id="limpar" value="Limpar Campos preenchidos!" /> <span class="style1">* Campos com * so obrigatrios! <p> </p></td> </tr> </table> </form> </body> </span></p>

15 </html>

clientes/cadastro.php
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Cadastro realizado com sucesso!</title> </head> <body> <?php $nome= $_POST ["nome"]; $email= $_POST ["email"]; $ddd= $_POST ["ddd"]; $tel= $_POST ["telefone"]; $endereco= $_POST ["endereco"]; $cidade= $_POST ["cidade"]; $estado= $_POST ["estado"]; $bairro = $_POST ["bairro"]; $pais= $_POST ["pais"]; $login= $_POST ["login"]; $senha= $_POST ["senha"]; $news= $_POST ["news"]; $sexo= $_POST ["sexo"]; $conexao = mysql_connect("localhost","root","dri"); if (!$conexao) die ("Erro de conexo com localhost, o seguinte erro ocorreu -> ".mysql_error()); $banco = mysql_select_db("carrinho_dri",$conexao); if (!$banco) die ("Erro de conexo com banco de dados, o seguinte erro ocorreu -> ".mysql_error()); $query = "INSERT INTO `clientes` ( `nome` , `email` , `sexo` , `ddd` , `telefone` , `endereo` , `cidade` , `estado` , `bairro` , `pas` , `login` , `senha` , `news` , `id` ) VALUES ('$nome', '$email', '$sexo', '$ddd', '$tel', '$endereco', '$cidade', '$estado', '$bairro', '$pais', '$login', '$senha', '$news', '')"; mysql_query($query,$conexao); echo "Seu cadastro foi realizado com sucesso!Agradecemos a ateno."; ?> <table> <tr><td> <a href="javascript:window.close()">Sair</a> </td></tr> </table> </body> </html>

produtos/verifica.php
<?php session_start(); if(empty($_SESSION["id"]) || empty($_SESSION["nome"]) || empty($_SESSION["login"])) { header("Location:'../index.php'"); } ?>

16

produtos/auth.php
<?php $login = $_POST['login']; $senha = $_POST['senha']; $conn = mysql_connect("localhost", "root", "dri") or die("Impossivel conectar"); if($conn) { mysql_select_db("carrinho_dri", $conn); } $sql = "SELECT id, nome FROM usuarios WHERE login = '$login' AND senha = '$senha'"; $rs = mysql_query($sql, $conn); $num = mysql_num_rows($rs); if($num > 0) { $rst = mysql_fetch_array($rs); $id = $rst["id"]; $nome = $rst["nome"]; session_start(); $_SESSION["id"] = $id; $_SESSION["nome"] = $nome; $_SESSION["login"] = $login; mysql_close($conn); header("Location:index_prod.php"); } else { mysql_close($conn); echo "<b>Nenhum usurio foi encontrado com os dados informados...</b>"; echo "<meta http-equiv='refresh' content='3';URL='../index.php'>"; } ?>

produtos/cad_prod.php
<?php include ('../conexao.php'); if ($_POST['cadastrar']) {

$nome = $_POST['nome']; $preco = $_POST['preco']; $imagem = $_FILES["imagem"]; if (!empty($imagem["name"])) { $largura = 150; $altura = 180; $tamanho = 100000; if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $imagem["type"])){ $error[1] = "Isso no uma imagem.";

17 } $dimensoes = getimagesize($imagem["tmp_name"]); if($dimensoes[0] > $largura) { $error[2] = "A largura da imagem no deve ultrapassar ".$largura." pixels"; } if($dimensoes[1] > $altura) { $error[3] = "Altura da imagem no deve ultrapassar ".$altura." pixels"; } if($imagem["size"] > $tamanho) { $error[4] = "A imagem deve ter no mximo ".$tamanho." bytes"; } if (count($error) == 0) { preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $imagem["name"], $ext); $nome_imagem = md5(uniqid(time())) . "." . $ext[1]; $caminho_imagem = "../img/" . $nome_imagem; move_uploaded_file($imagem["tmp_name"], $caminho_imagem); $sql = mysql_query("INSERT INTO produtos VALUES ('', '".$nome."', '".$preco."', '".$nome_imagem."')"); if ($sql){ echo "Seu produto foi cadastrado com sucesso. <br><br><br>"; echo '<a href="../index.php">Home</a>'; } } if (count($error) != 0) { foreach ($error as $erro) { echo $erro . "<br />"; } } } } ?>

produtos/index_prod.php
<?php include_once("verifica.php"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>..::Cadastro de Produtos::..</title> <STYLE TYPE="text/css"> BODY { font: 10pt Verdana} </STYLE> <style type="text/css"> .style1 {

18 color: #FF0000; font-size: x-small; } .style3 {color: #0000FF; font-size: x-small; } </style> <script type="text/javascript"> function validaCampo() { if(document.cadastro.nome.value=="") { alert("O Campo nome obrigatrio!"); return false; } else if(document.cadastro.preco.value=="") { alert("O Campo preo obrigatrio!"); return false; }

else return true; } </script> </head> <body> <div>Ol : <b><?php echo $_SESSION['nome'] ?></b></div><br><br><br> <form id="cadastro" name="cadastro" method="post" action="cad_produtos.php" onsubmit="return validaCampo(); return false;" enctype="multipart/form-data"> <table width="625" border="0"> <tr><td colspan=2><b>Cadastro de Produtos</b></td></tr> <tr> <td width="69">Nome:</td> <td width="546"><input name="nome" type="text" id="nome" size="70" maxlength="60" /> <span class="style1">*</span></td> </tr> <tr> <td>Preo:</td> <td><input name="preco" type="text" id="preco" size="70" maxlength="60" /> <span class="style1">* utilize . (ponto) como separador decimal e somente nmeros <b>Ex:</b> 12.85</span></td> </tr> <tr> <td>Imagem:</td> <td><input name="imagem" type="file" id="endereco" size="70" maxlength="70" /> <span class="style1"></span></td> </tr> <tr> <td colspan="2"><p> <input name="cadastrar" type="submit" id="cadastrar" value="Concluir o Cadastro!" /> <input name="limpar" type="reset" id="limpar" value="Limpar Campos preenchidos!" /> <span class="style1">* Campos com * so obrigatrios! <p> </p></td> </tr> </table> </form> </span></p>

19 <a href="../index.php">Home</a> </body> </html>

4 Ligao entre Clientes e Carrinho O cadastro de clientes poderia ser utilizado ao finalizar a venda. Sem o cadastro no conseguiria comprar os itens que foram adicionados ao carrinho. E ainda, clientes que j esto cadastrados, poderiam possuir login e senha, e ter acesso aos produtos que j foram comprados, bem como, efetuar novas compras, fazer pedidos, reservas e alterar seu cadastro.

20

Concluso Carrinho de compras o meio pelo qual os clientes podem escolher os produtos que queiram adquirir pela Internet, deletar os itens caso mude de ideia, digitar dados para envio e pagamento, e at uma ordem de cancelamento de todas as compras, se necessrio. Ele a pea fundamental para obter sucesso no ecommerce (comrcio eletrnico, ou mais conhecido, como loja virtual). O carrinho de compras o lugar onde o cliente decide se fecha um negcio ou desiste dele. Ele tem influncia direta na primeira e mais crtica fase, a escolha, tendo em vista que a segunda o pagamento e na grande maioria dos casos esta funo desempenhada por empresas especializadas como, por exemplo, PagSeguro ou PayPal, posteriormente o carrinho tambm se faz necessrio para trazer ao cliente a informao sobre o pagamento, se foi efetuado com sucesso ou no. No caso deste trabalho, no foi feita nenhuma verificao quanto a questo dos pagamentos, foi realizado, somente uma pgina simples que adiciona os produtos no carrinho.

Das könnte Ihnen auch gefallen