Ir para conteúdo
Fórum Script Brasil

laurinha2004

Membros
  • Total de itens

    101
  • Registro em

  • Última visita

Sobre laurinha2004

laurinha2004's Achievements

0

Reputação

  1. Estou começando a utilizar as classes PDO para conexão ao BD. Minha dúvida é a seguinte: Essa classe de conexão usa o padrão Singleton? Se não, como posso transformá-la em Singleton? <? class Conexao { private $con = null; private $dbType = "mysql"; private $host = "localhost"; private $user = "root"; private $senha = "root"; private $db = "meu_banco"; private $persistent = false; public function Conexao( $persistent=false ){ if( $persistent != false){ $this->persistent = true; } } public function conectar(){ try{ $this->con = new PDO($this->dbType.":host=".$this->host.";dbname=".$this->db, $this->user, $this->senha, array( PDO::ATTR_PERSISTENT => $this->persistent )); return $this->con; } catch ( PDOException $ex ){ echo "Erro: ".$ex->getMessage(); } } public function fechar(){ if( $this->con != null ) { $this->con = null; } } } ?>
  2. Preciso redirecionar uma página php passando 2 parametros via POST. Como faço? Ouvi dizer que não tem como fazer usando a função header, mas tem como utilizando sockets. Pesquisei na net procurando o redirecionamento via POST com sockets e não encontrei. Alguém pode me dar uma ajuda? As variáveis que preciso passar via POST são: pagina=1 produto=20 e a página será: novo_produto.php
  3. Estou usando o comando abaixo para gerar códigos para os nomes das minhas imagens: echo md5(uniqid(time())); Minha dúvida é a seguinte: Qual a possibilidade de se gerar um código repetido com o comando q estou usando? Tipo, se eu em algum pc coincidir da hora estar errada e bater c uma hora q eu já utilizei esse comando, vai gerar um repetido?
  4. laurinha2004

    Sessão

    Olá Romero, eu já tinha utilizado esse comando, mas mesmo assim a sessão continua aberta, ou seja, mostrando os produtos do carrinho. minha pagina do carrinho é a seguinte: carrinho.php <? $carrinhoComprasClass = new CarrinhoCompras(); $carrinhoComprasController = new CarrinhoComprasController(); $midia = $_GET['cod_midia']; $acao = $_GET['acao']; if($acao == "adicionar"){ $carrinhoComprasClass->setMidia($midia); $carrinhoComprasClass->setQuantidade(1); $carrinhoComprasController->adicionarItem($carrinhoComprasClass); } else if($acao == "alterar"){ $quantidade = $_GET['quantidade']; $carrinhoComprasClass->setMidia($midia); $carrinhoComprasClass->setQuantidade($quantidade); $carrinhoComprasController->alterarItem($carrinhoComprasClass); } else if($acao == "excluir"){ $carrinhoComprasClass->setMidia($midia); $carrinhoComprasController->removerItem($carrinhoComprasClass); } else if($acao == "limpar"){ $carrinhoComprasController->limpar(); } foreach($_SESSION["carrinho"] as $midiaCarrinho){ echo $midiaCarrinho->getMidia()." - "; echo $midiaCarrinho->getQuantidade()."<hr size='1'>"; } ?> <br><br> <a href="?acao=limpar">Limpar carrinho</a> CarrinhoComprasController.php ..... function limpar() { session_destroy(); } .....
  5. laurinha2004

    Sessão

    O meu método para limpar o carrinho inteiro não funciona. Já tentei usar unset($_SESSION["carrinho"]), $_SESSION["carrinho"] = "", $this->carrinho = "", unset($this->carrinho), e nenhuma dessas ele encerrou a sessão. Alguém pode me dar uma luz? <? class CarrinhoComprasController { var $carrinho; function CarrinhoComprasController() { session_start(); if(empty($_SESSION["carrinho"])){ $_SESSION["carrinho"] = Array(); } } function atualizarDados() { $_SESSION["carrinho"] = $this->carrinho; } function getCarrinho() { $this->carrinho = $_SESSION["carrinho"]; } function adicionarItem($carrinhoCompras) { $this->getCarrinho(); $codigo = $carrinhoCompras->getMidia(); if (!isset($this->carrinho[$codigo])) { $this->carrinho[$codigo] = $carrinhoCompras; } $this->atualizarDados(); } function removerItem($carrinhoCompras) { $this->getCarrinho(); $codigo = $carrinhoCompras->getMidia(); unset($this->carrinho[$codigo]); $this->atualizarDados(); } function limpar() { $this->getCarrinho(); unset($this->carrinho); } } ?>
  6. laurinha2004

    Sessão

    Ok Romero, funcionou perfeitamente. Agora só está c um problema....Essa linha abaixo só exibe os itens do carrinho quando eu adiciono um, ou seja, se eu entrar na página carrinho sem adicionar nenhum item, ele não exibe os que já estão lá. O q pode ser isso? foreach($carrinhoComprasClass->carrinho) as $midias){ echo $midias->getCodigo()." - "; } Outra coisa. O que posso fazer nessa classe para melhorá-la?
  7. laurinha2004

    Sessão

    Estou montando um carrinho de compras utilizando PHP5. Aparentemente ele está funcionando, somente uma coisa está meio estranha. Se eu entrar no carrinho sem adicionar nada, ele mostra o tamanho do carrinho = 0, se eu atualizar a página, ele já coloca o tamanho = 1. Do mesmo jeito q se eu adicionar um produto, ele mostra tamanho = 1, se atualizar a página ele mostra tamanho = 2. Onde será q está o problema? Como que eu verifico na página carrinho se o tamanho do carrinho = 0? tentei acessar o método getCarrinho() da classe CarrinhoCompras mas n deu certo. Classe CarrinhoCompras <? class CarrinhoCompras { var $carrinho; function CarrinhoCompras() { session_start(); if(empty($_SESSION["carrinho"])){ $_SESSION["carrinho"] = Array(); } } function atualizarDados() { $_SESSION["carrinho"] = $this->carrinho; } function getCarrinho() { $this->carrinho = $_SESSION["carrinho"]; } function adicionarItem($midia) { $this->getCarrinho(); $codigo = $midia->getCodigo(); if (!isset($this->carrinho[$codigo])) { $this->carrinho[$codigo] = $midia; } else { /*$quantidade = $midia->getQuantidade() + $carrinho[$codigo]->getQuantidade(); $this->carrinho[$codigo]->setQuantidade($quantidade);*/ } $this->atualizarDados(); } function removerItem($midia) { $this->getCarrinho(); $codigo = $midia->getCodigo(); unset($this->carrinho[$codigo]); $this->atualizarDados(); } } ?> carrinho.php <? require_once("classes/CarrinhoCompras.php"); require_once("classes/Midia.php"); $midiaClass = new Midia(); $carrinhoComprasClass = new CarrinhoCompras(); $midia = $_GET['cod_midia']; $midiaClass->setCodigo($midia); echo "Total = ".count($_SESSION["carrinho"])." - "; $carrinhoComprasClass->adicionarItem($midiaClass); foreach($carrinhoComprasClass->carrinho as $midias) { echo $midias->getCodigo(); } ?>
  8. Alguém tem um exemplo disso que estou precisando? Creio que deve ser utilizando cookies mesmo. Ai como faço akela barra de navegação (paginação) na parte inferior com os produtos visualizados para quando eu clicar na página 2, por exemplo, ele não atualizar a página completa, somente passar para a próxima coluna, ou seja, mostrar de 3 em 3 produtos, como nesses sites de comércio eletrônico. Já procurei um script desses e não achei nada. Se alguém souber onde acho ou qual é o nome correto para que eu posso pesquisar com mais detalhes. Obrigado.
  9. Qual a melhor maneira de fazer um histórico de navegação, como a gente vê em alguns sites (Na parte inferior do site mostra os produtos que o cliente visualizou, com a opção de limpar o histórico). Se alguém souber onde encontro um script desse jeito ou como fazer, posta ai!!!
  10. Estou montando uma loja online para alugar filmes em DVD e Blu-ray. Gostaria que me ajudassem a escolher a melhor estrutura. Fiz as seguintes: 1ª // 1 - DVD; 2 - Blu-ray CREATE TABLE tipo_midia ( codigo INTEGER NOT NULL AUTO_INCREMENT, nome VARCHAR(10) NOT NULL, PRIMARY KEY(codigo) ); CREATE TABLE midias ( codigo INTEGER NOT NULL AUTO_INCREMENT, titulo VARCHAR(60) NOT NULL, titulo_original VARCHAR(60) DEFAULT NULL, ano_lancamento INTEGER DEFAULT NULL, sinopse TEXT DEFAULT NULL, duracao INTEGER DEFAULT NULL, censura INTEGER DEFAULT NULL, cor ENUM('Colorido', 'Preto e branco') NOT NULL DEFAULT 'Colorido', regiao INTEGER, pais VARCHAR(30), imagem VARCHAR(40) NOT NULL, preço FLOAT(5,2) DEFAULT '0.00', quantidade_locacao INTEGER NOT NULL, cod_genero INTEGER NOT NULL, cod_categoria INTEGER NOT NULL, cod_tipo_midia INTEGER NOT NULL, PRIMARY KEY(codigo) ); CREATE TABLE elenco ( codigo INTEGER NOT NULL AUTO_INCREMENT, nome VARCHAR(30) NOT NULL, PRIMARY KEY(codigo) ); // 1 - Ator; 2 - Diretor CREATE TABLE tipo_elenco ( codigo INTEGER NOT NULL AUTO_INCREMENT, nome VARCHAR(30) NOT NULL, PRIMARY KEY(codigo) ); CREATE TABLE midias_elenco ( cod_midia INTEGER NOT NULL, cod_elenco INTEGER NOT NULL, cod_tipo_elenco INTEGER NOT NULL ); 2ª CREATE TABLE midias ( codigo INTEGER NOT NULL AUTO_INCREMENT, titulo VARCHAR(60) NOT NULL, titulo_original VARCHAR(60) DEFAULT NULL, ano_lancamento INTEGER DEFAULT NULL, sinopse TEXT DEFAULT NULL, duracao INTEGER DEFAULT NULL, censura INTEGER DEFAULT NULL, cor ENUM('Colorido', 'Preto e branco') NOT NULL DEFAULT 'Colorido', regiao INTEGER, pais VARCHAR(30), cod_genero INTEGER NOT NULL, cod_categoria INTEGER NOT NULL, PRIMARY KEY(codigo) ); CREATE TABLE tipo_midia ( codigo INTEGER NOT NULL AUTO_INCREMENT, nome VARCHAR(10) NOT NULL, PRIMARY KEY(codigo) ); CREATE TABLE midias_aux{ cod_midia INTEGER NOT NULL, cod_tipo_midia INTEGER NOT NULL, imagem VARCHAR(40) NOT NULL, preço FLOAT(5,2) DEFAULT '0.00', quantidade_locacao INTEGER NOT NULL } CREATE TABLE elenco ( codigo INTEGER NOT NULL AUTO_INCREMENT, nome VARCHAR(30) NOT NULL, PRIMARY KEY(codigo) ); // 1 - Ator; 2 - Diretor CREATE TABLE tipo_elenco ( codigo INTEGER NOT NULL AUTO_INCREMENT, nome VARCHAR(30) NOT NULL, PRIMARY KEY(codigo) ); CREATE TABLE midias_elenco ( cod_midia INTEGER NOT NULL, cod_elenco INTEGER NOT NULL, cod_tipo_elenco INTEGER NOT NULL ); Eu fiquei na dúvida pelo seguinte: Mantenho uma única tabela para os dados principais do filme, tendo em vista que o DVD e o Blu-ray terão os mesmos dados, somente mudando a imagem, o preço, quantidade de locação. Ou então cadastro os dados repetidos somente alterando o tipo de mídia, a imagem e a quantidade de locação
  11. Sim, isso mesmo, ai como eu saberia se o produto é um filme ou Alimento?
  12. Tipo, se caso o usuário optar por alterar a quantidade do filme ou do produto. Como vou saber se o item que ele alterou a quantidade é da tabela filmes ou da tabela produtos? (Os codigos poderao ser os mesmos)
  13. Estou desenvolvendo um site para uma locadora de dvds e me deparei com um problema. É o seguinte: Tenho uma tabela "Filmes": codigo - auto_increment, primary key titulo titulo_original duracao censura categoria preço ano_lancamento e uma tabela "Produtos" (produtos que podem ser entregues junto com o filme. Ex.: Coca-cola, pipocas, sorvetes, etc): codigo - auto_increment, primary key nome preço O usuário poderá adicionar filmes e produtos ao carrinho de compras. Isso não vai gerar um conflito pelo motivo de o codigo de um filme bater com um codigo igual da tabela de produtos? É correto fazer esse tipo de coisa ou tem algum jeito melhor de resolver isso? O q vocês me indicam fazer nesse caso?
  14. Preciso fazer a seguinte expressão regular, mas não sei como: Aceitar somente números e letras (não aceitar acentos nas letras)
  15. alterei o codigo da seguinte maneira, mas não escreveu nada dentro da tag span...é preciso colocar um método no javascript e dpois no select usar algum onselect? <script> var elemento=document.getElementById("resposta") switch(document.getElementById("tipo").value){ case 1: elemento.value="R$"; break; case 2: elemento.value="Kg"; break; default: elemento.value="Peças"; } </script> <select name="tipo" id="tipo"> <option value="1">Dinheiro</option> <option value="2">Alimento</option> <option value="3">Roupas</option> </select> &nbsp;&nbsp;<input type="text" name="valor" size="20"> &nbsp; <span id="resposta"></span>
×
×
  • Criar Novo...