miquimba 0 Denunciar post Postado Agosto 11, 2008 Galera dá uma olhada essa é minha pagina de cadastro de produtos. <? session_start(); session_register("cod_produto"); $_SESSION["cod_produto"] = "$cod_produto"; include "../bd/conecta.php"; //Conecta com a nosso banco de dados MySQL //include "ver_sessao.php"; //Verifica se a sessão está ativa # Definição das variáveis======================================================================= =============== $nome=trim($_POST['nome']); $descricao=trim($_POST['descricao']); $preco=trim($_POST['preco']); $opcao=$_POST['opcao']; $acao=$_GET['acao']; if($opcao=='sim'){ // abre a pag. para inserção de característica include("caracteristica.php"); //exit(0); } ?> <html> <head> <title>Produtos</title> </head> <body bgcolor="#FFFFFF" text="#000000"> <br> <table width="60%" border="0" cellspacing="0" cellpadding="0" align="center"> <tr> <td height="60"> <div align="center"><font face="Arial" size="4"><b>Cadastro de Produtos </b></font></div></td> </tr> </table> <br> <? if($acao == 'cadastrar') /*Cadastra o cliente depois que o formulário for enviado */ { if($nome == '') { $erros++; $html_erros = $html_erros."<br>Nome"; } if($erros == 0) { //Se não tiver nenhum erro, faz a inclusão $sql = mysql_query("INSERT INTO produtos (nome, descricao, preco, opcao) VALUES('$nome', '$descricao', '$preco', '$opcao')") or die("Erro no comando SQL:".mysql_error()); $cod_produto = mysql_insert_id(); //echo "mysql_insert_id Retornou: $cod_produto </br>"; echo "<div align=center><font face=Arial size=2>Produto cadastrado com Sucesso!! <br><br><a href='lista_produtos.php'>Voltar</a></font></div><br><br>"; } //fecha $erros == 0 else { echo "<div align=center><font face=Arial size=2><b>ATENÇÃO</b><br><br>Foram encontrados <b>$erros</b> erro(s) no cadastro de Produtos:<br><b>$html_erros</b> <br><br><a href='java script:history.go(-1)'>Voltar</a></font></div><br><br>"; }//fecha else } /*fecha acao= cadastrar*/ ?> <? if($acao == 'entrar') /*Mostra o formulário de cadastro de clientes */ { ?> <form name="frm_visitas" method="post" action="<? echo $PHP_SELF; ?>?acao=cadastrar" enctype="multipart/form-data"> <table width="60%" border="1" cellspacing="0" cellpadding="0" align="center" bordercolor="#D0DCE6"> <tr> <td width="40%" height="40"><font face="Arial" size="2"> Nome:</font></td> <td height="40" width="60%"><font face="Arial" size="2"> <input type="text" name="nome" size="50" maxlength="50"></font> </td> </tr> <tr> <td width="40%" height="40"><font face="Arial" size="2"> Descricao:</font></td> <td height="40" width="60%"><font face="Arial" size="2"> <textarea name="descricao" cols="30" rows="4"></textarea> </font> </td> </tr> <tr> <td height="40" width="40%"><font face="Arial" size="2"> Preço:</font></td> <td height="40" width="60%"><font face="Arial" size="2"> <input typo="text" name="preco" size="10" maxlength="10"> </font></td> </tr> <tr> <td width="40%" height="40"><font face="Arial" size="2"> Caraterística :</font></td> <td height="40" width="60%"><font face="Arial" size="2"> <input name="opcao" type="radio" value="nao" checked = "checked"> não <input name="opcao" type="radio" value="sim" > </font>sim</td> </tr> <tr> <td height="40" colspan="2"> <div align="center"> <input type="submit" name="cadastrar" id="cadastrar" value="Cadastrar Produto"> <input type="reset" name="limpar" id="limpar" value="Limpar"> <input type="button" name="voltar" id="voltar" value="Voltar" onClick='java script:window.history.back();' > </div></td> </tr> </table> </form> <? } /*fecha acao=entrar */ ?> </body> </html> Qdo clico em caracteristica para cadastrar as caracteristicas do produto o cod_produto que deveria ficar registrado na sessão não grava. Onde está o problema? Segue o script para cadastrar as caracteristicas <?PHP include "../bd/conecta.php"; session_start(); $caracteristica = $_POST['caracteristica']; // *** VARIÁVEIS DO SITEMA *** // $tabela contém o valor da tabela a se inserir. // $nr_fotos contém a quantidade de fotos que serão gravadas na tabela. É usado pelo script de manipulação de fotos mais abaixo. $tabela = "itens"; $nr_fotos = 0; $nome_sessao = "itens"; // *** INSERINDO O CONTEUDO NA TABELA *** $str = "INSERT INTO $tabela (caracteristica, cod_produto) VALUES ('$caracteristica', '$cod_produto')"; $sql = mysql_query($str) or die ("INSERIR_ERROR".mysql_error()); // *** RECUPERANDO O VALOR DO ÚLTIMO ID *** $sql_id = mysql_query("SELECT * FROM $tabela ORDER BY cod_item DESC") or die("ID_ERROR".mysql_error()); $dados = mysql_fetch_array($sql_id); $cod_item = $dados['cod_item']; // *** FORMATANDO AS IMAGENS *** // Para o funcionamento do script de manipulação de imagens, deve-se criar as pastas "deletar" e "images" na raiz do site, caso não tenham sido criadas ainda. // Caso queira utilizar outros nomes, deverá alterá-los abaixo. // O redimensionamento se dá indicando apenas o valor da largura da imagem na variável $image_wi. // Os outros valores e scripts de bd, não precisam de alterações. ////////********************************************////////// for($i=1; $i <=$nr_fotos; $i++){ $id_foto = "foto".$i; $foto = $_FILES[$id_foto]; if($foto['size']<= 0 ){ }else{ $nome = $foto['name']; $temp = $foto['tmp_name']; $nome_novo = "../images/".$nome_sessao.time()."_$i.jpg"; $dir = "../deletar/". $nome; $jpeg = move_uploaded_file($temp, $dir); $nome_final = "images/".$nome_sessao.time()."_$i.jpg"; switch($foto['type']){ case 'image/jpeg': $novo = imagecreatefromjpeg($dir); break; case 'image/jpg': $novo = imagecreatefromjpeg($dir); break; case 'image/pjpg': $novo = imagecreatefromjpeg($dir); break; case 'image/pjpeg': $novo = imagecreatefromjpeg($dir); break; case 'image/gif': $novo = imagecreatefromgif($dir); break; case 'image/png': $novo = imagecreatefrompng($dir); break; case 'image/x-png': $novo = imagecreatefrompng($dir); break; default: echo "Formato de imagem inválido!!<br/> <a href='java script:history.go(-1)'>Voltar</a>"; $tipo = explode("/",$foto['type']); $tipo_ext = $tipo[1]; echo "<br/> Essa imagem é .$tipo_ext, use apenas .gif, .jpg e .png!"; exit; break; } $he = imagesx($novo); $wi = imagesy($novo); $image_wi = 390; $image_he = $wi / $he * $image_wi; $peq = imagecreatetruecolor($image_wi, $image_he); imagecopyresized($peq, $novo, 0,0,0,0, $image_wi, $image_he, $he, $wi); $final = imagejpeg($peq, $nome_novo, 50); foreach (glob("../deletar/*.*") as $filename) { unlink($filename); } $str_foto = "UPDATE $tabela SET foto$i='$nome_final' where id='$id'"; $sql_foto = mysql_query($str_foto) or die("FOTOS_ERROR".mysql_error()); } } mysql_query("OPTIMIZE TABLE $tabela")or die(mysql_error()); // *** ALTERE CONFORME A SEÇÃO DO PAINEL*** // Ex.: header("location: texto_inserir_form.php"); header("Location: lista.php"); ?> Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Agosto 12, 2008 aparece alguma mensagem de erro ? Compartilhar este post Link para o post Compartilhar em outros sites
miquimba 0 Denunciar post Postado Agosto 13, 2008 aparece alguma mensagem de erro ?bom dianão aparece nenhuma mensagem de erro, somente não grava o cod_produto na tabela itens, que deveria vir pela sessão registrada Compartilhar este post Link para o post Compartilhar em outros sites
Gerep 0 Denunciar post Postado Agosto 13, 2008 Amigão, no início do seu código: $_SESSION["cod_produto"] = "$cod_produto"; A variável $cod_produto ta vindo de onde? Porque até o momento que você atribuiu ela à sessão, ela estava vazia...ela não esta vindo de lugar algum...da uma olhada nisso... Outra coisa...como é um valor numérico, não se usa aspas, o correto seria: $_SESSION["cod_produto"] = $cod_produto; Se não a sessão vai ter como valor não o código do produto mas sim o texto "$cod_produto".... Espero ter ajudado ;) Abraço e sucesso no projeto! Compartilhar este post Link para o post Compartilhar em outros sites
miquimba 0 Denunciar post Postado Agosto 13, 2008 Amigão, no início do seu código: $_SESSION["cod_produto"] = "$cod_produto"; A variável $cod_produto ta vindo de onde? Porque até o momento que você atribuiu ela à sessão, ela estava vazia...ela não esta vindo de lugar algum...da uma olhada nisso... Outra coisa...como é um valor numérico, não se usa aspas, o correto seria: $_SESSION["cod_produto"] = $cod_produto; Se não a sessão vai ter como valor não o código do produto mas sim o texto "$cod_produto".... Espero ter ajudado ;) Abraço e sucesso no projeto! A variável $cod_produto é o id da tabela produtos, com esse id preciso para inserir no campo cod_produto na tabela itens. a tabela produtos está assim; cod_produto nome descricao preco opcao e a tabela itens assim; cod_item cod_produto caracteristica Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Gerep 0 Denunciar post Postado Agosto 13, 2008 Então amigo, em que parte do seu código você está atribuíndo esse cod_produto na sessão? Compartilhar este post Link para o post Compartilhar em outros sites
miquimba 0 Denunciar post Postado Agosto 13, 2008 Então amigo, em que parte do seu código você está atribuíndo esse cod_produto na sessão?tirei as aspas como sugeriu e apareceu essa mensagem; Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0 Agora travou, pq não sei onde ativar as variaveis globais Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Agosto 14, 2008 responda à questão levantada pelo gerep, de onde vem a variável cod_produto ?? Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Agosto 14, 2008 Coloque no topo da página: error_reporting(E_ALL); e cole aqui o que retorna, já saberemos se a variável está definida oou não. Compartilhar este post Link para o post Compartilhar em outros sites
miquimba 0 Denunciar post Postado Agosto 15, 2008 Coloque no topo da página: error_reporting(E_ALL); e cole aqui o que retorna, já saberemos se a variável está definida oou não. Obrigado galera, consegui resolver o problema...tinha que pedir para a hospedagem ativas as variáveis globais. Obrigado pelas dicas. ATT. Marcos Compartilhar este post Link para o post Compartilhar em outros sites
Marcio Leandro 0 Denunciar post Postado Agosto 15, 2008 Não é correto isso. Lembre-se que a partir do PHP6 não haverá mais essa possibilidade. Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Agosto 15, 2008 Não é correto isso. Lembre-se que a partir do PHP6 não haverá mais essa possibilidade. Isso http://forum.imasters.com.br/public/style_emoticons/default/grin.gif Compartilhar este post Link para o post Compartilhar em outros sites