Rafael Laurindo Postado Maio 21, 2010 Denunciar Share Postado Maio 21, 2010 (editado) Pessoal, deêm uma olhada neste scriptMatriculaDAO.php<?php include_once 'Main.php'; class MatriculaDAO { private $TO, $_db; public function __construct() { //cria a conexão com o banco de dados, criar sempre com singleton $main = Main::getInstance(); $this->_db = $main->__get('_conn'); $this->TO = new MatriculaTO(); } private function obterDds() { $this->TO->setId_disciplina($_POST['cbDisciplina']); } private function definirCookies(){ $sec = 60; setcookie('pessoaNome', $_POST['txtNome'], time() + $sec); } public function adicionar() { $this->_db->beginTransaction(); $this->obterDds(); $this->definirCookies(); $pessoa = new PessoaDAO(); if (!$pessoa->adicionar()) $this->_db->rollBack(); $select = " select max(id) from pessoa "; $id_pessoa = $this->_db->query($select)->fetchColumn(); $data = strftime('%d/%m'); $hora = strftime('%H:%M:%S'); $ano = strftime('%Y'); $id_disciplina = $this->TO->getId_disciplina(); $cod = $this->gerar_codMatricula($_POST['cbDisciplina']); $add = " insert into matricula(id, ano, id_instrumento, data, hora, ativo, id_pessoa) values(NULL, '$ano', '$id_disciplina', '$data', '$hora', 1, '$id_pessoa') "; $stmt = $this->_db->prepare($add); if ($stmt->execute()){ header("Location: http://localhost/esplendor/matricula/confirm_matricula.php"); } else $this->_db->rollBack(); $this->_db->commit(); } } confirm_matricula.php <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>SIMESP</title> </head> <body> <b>Nome: </b> <?php echo $_COOKIE['pessoaNome']; ?> <br /> <b>Data da matrícula: </b> <font size="4pt"><?php //echo $_COOKIE['teste'] ?></font> <br /> <b>Hora: </b> <?php //echo $_COOKIE['horaMatricula'] ?> </body> </html>Os dados são gravados no banco normalmente, mas o cookie não é mostrado na página confirm_matricula.phpAlguém poderia me ajudar Editado Maio 31, 2010 por Rafael Laurindo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 *FIT* Postado Maio 21, 2010 Denunciar Share Postado Maio 21, 2010 Aonde está chamando a função? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rafael Laurindo Postado Maio 21, 2010 Autor Denunciar Share Postado Maio 21, 2010 (editado) Chamo ela dentro do método adicionar, como na classe.public function adicionar() { $this->_db->beginTransaction(); $this->obterDds(); $this->definirCookies(); $pessoa = new PessoaDAO(); if (!$pessoa->adicionar()) $this->_db->rollBack(); $select = " select max(id) from pessoa "; $id_pessoa = $this->_db->query($select)->fetchColumn(); $data = strftime('%d/%m'); $hora = strftime('%H:%M:%S'); $ano = strftime('%Y'); $id_disciplina = $this->TO->getId_disciplina(); $cod = $this->gerar_codMatricula($_POST['cbDisciplina']); $add = " insert into matricula(id, ano, id_instrumento, data, hora, ativo, id_pessoa) values(NULL, '$ano', '$id_disciplina', '$data', '$hora', 1, '$id_pessoa') "; $stmt = $this->_db->prepare($add); if ($stmt->execute()){ header("Location: http://localhost/esplendor/matricula/confi...ula.php"); } else $this->_db->rollBack(); $this->_db->commit(); } Editado Maio 21, 2010 por Rafael Laurindo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rafael Laurindo Postado Maio 24, 2010 Autor Denunciar Share Postado Maio 24, 2010 Vale ressaltar que o navegador é o firefox, se a sintaxe de definição de tempo for diferente... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 *FIT* Postado Maio 24, 2010 Denunciar Share Postado Maio 24, 2010 Tente usar sem limitar o tempo, só a nível de teste. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rafael Laurindo Postado Maio 27, 2010 Autor Denunciar Share Postado Maio 27, 2010 (editado) Testei e não funcionou, o engraçado é que eu abro o Firefox --> Ferramentas --> Opções --> Aba "Privacidade" --> botão "Exibir cookies" e o maldito está lá, com o seu nome e valor. Só Jesus nessa causa aí eim, huahuaha. Será um bug do PHP? Por que eu do refresh na página confirm_matricula.php com F5 com Ctrl + F5 e nada aparece nessa jossa.Está aparecendo isso na páginaNome:Notice: Undefined index: pessoaNome in C:\usr\bin\apache\htdocs\esplendor\matricula\confirm_matricula.php on line 9Matricula:Data da matrícula:Hora: Editado Maio 27, 2010 por Rafael Laurindo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rafael Laurindo Postado Maio 31, 2010 Autor Denunciar Share Postado Maio 31, 2010 (editado) Descobri o que é, o parâmetro path quando omitido, o cookie fica visível apenas no mesmo path onde foi criado, como falam no link http://br2.php.net/manual/pt_BR/function.setcookie.phpEu estava estudando sobre cookie no js, desenvolvi um objeto e tudo mais, e não dei muita atenção para a correta sintaxe, não lendo atentamente sobre caminho que estava no manual, achando assim que poderia omiti-lo que o padrão é '/', mas lendo atentamente vi que o padrão é '.' (ponto), ou seja, visível no mesmo diretório.Ao meu ver, o padrão devia ser '/', então fiz uma classe modificando a função setcookie, podendo assim omitir o expires e o path.Por tanto, ao lerem o manual, tente ler atentamente sobre todos os parâmetros de um método, caso de erro, tente outros caminhos, tente usar mais parâmetros, pois às vezes achamos que uns podem ser omitidos. Demorei para entender isso, mas finalmente percebi.Abraço a todos, Deus os abençoe. Editado Maio 31, 2010 por Rafael Laurindo Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Rafael Laurindo
Pessoal, deêm uma olhada neste script
MatriculaDAO.php
confirm_matricula.phpOs dados são gravados no banco normalmente, mas o cookie não é mostrado na página confirm_matricula.php
Alguém poderia me ajudar
Editado por Rafael LaurindoLink para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.