Miligear 0 Denunciar post Postado Setembro 4, 2011 Olá Amigos, estou com um problema, fiz um código de cadastro de formulario, nada muito complexo (bem simples na realidade) mas sou iniciante em php e o código não funciona por nada, gostaria de uma ajuda. Segue os códigos. banco.php <?php class Banco { private $dbc; private $query; public function Banco(){ $dbc = mysqli_connect ('localhost', 'root', '9896', 'usuario') or die ('Erro'); } public function Inserir_u($user, $senha, $email, $civi){ $query = ("INSERT INTO usuario (nome_usu, senha, email, nome_civi, id) VALUES ($user, $senha, $email, $civi,)"); $result = mysqli_query($dbc, $query) or die('Erro no Banco 1'); $query = "INSERT INTO cons (soldado, avioes, tank, id, ouro) VALUES ('1', '1', '1', '1','')"; $result = mysqli_query($dbc, $query) or die('Erro no Banco 2'); mysqli_close($dbc); } } ?> index.html <html> <head> <title>Cadastro de Usuarios</title> <style type="text/css"> #tit { text-align: center; } #font { font-size: 24px; text-align: center; font-family: Verdana, Geneva, sans-serif; color: #F00; } </style> <link href="fontes.css" rel="stylesheet" type="text/css" /> </head> <body> <form action="cadastro.php" method="post"> <p>Cadastro de Usuarios<br /> <br /><table width="299" height="121" border="0"> <tr> <td><span class="menu1">Nome de Usuario:</span></td> <td><input name="nome" type="text" /><br /></td> </tr> <tr> <td><span class="menu1">Senha:</span></td> <td><input name="senha" type="text" /><br /></td> </tr> <tr> <td><span class="menu1">E-mail:</span></td> <td><input name="email" type="text" /><br /></td> </tr> <tr> <td><span class="menu1">Nome Civilização:</span></td> <td><input name="civi" type="text" /><br /></td> </tr> </table> <input type="submit" class="menu1" value="Enviar" /> </p> <p class="menu1"> </p> </form> </body> </html> cadastro.php <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <meta name="author" content="FreeUser" /> <title>Sem título 2</title> </head> <body> <? $nome = $_POST['nome']; $senha = $_POST['senha']; $email = $_POST['email']; $civi = $_POST['civi']; include_once("classes/banco.php"); $teste = new Banco; $teste -> Inserir_u($nome, $senha, $email, $civi); ?> </body> </html> Estou realmente angustiado, ja li varios tutoriais e não consigo encontrar o erro, para consulta estou usando o Livro Use a Cabeça PHP / MySQL. Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Setembro 4, 2011 Exixte um erro no SQL Veja: $query = ("INSERT INTO usuario (nome_usu, senha, email, nome_civi, id) VALUES ($user, $senha, $email, $civi,)"); // falta o valor para a coluna id Se o id no banco de dados é AUTO_INCREMENT, coloque NULL como valor ou simplesmente não informe o id no SQL. // exemplo 1 $query = ("INSERT INTO usuario (nome_usu, senha, email, nome_civi, id) VALUES ($user, $senha, $email, $civi, NULL)"); // exemplo 2 $query = ("INSERT INTO usuario (nome_usu, senha, email, nome_civi) VALUES ($user, $senha, $email, $civi)"); Compartilhar este post Link para o post Compartilhar em outros sites
Miligear 0 Denunciar post Postado Setembro 5, 2011 Corrigi da forma que me indicou porem continua o mesmo erro, aparece uma pagina em branco escrito. Inserir_u($nome, $senha, $email, $civi); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Setembro 5, 2011 Bom, então o problema agora é outro. Mude a tag <? por <?php Compartilhar este post Link para o post Compartilhar em outros sites
Miligear 0 Denunciar post Postado Setembro 5, 2011 Bom, então o problema agora é outro. Mude a tag <? por <?php Opa, esse eu pensei tmb, ja mudei e nada rs Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Setembro 5, 2011 Coloque no início do arquivo cadastro.php e execute novamente, se aparecer algum erro, poste ele. <?php ini_set('display_errors', true); error_reporting(E_ALL); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Miligear 0 Denunciar post Postado Setembro 5, 2011 Mesma coisa: Inserir_u($nome, $senha, $email, $civi); ?> Ja tentei mudar o index pra .php mas sem resultado tmb, ja não sei mais o que fazer. Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Setembro 5, 2011 o php está instalado e devidamente configurado? Compartilhar este post Link para o post Compartilhar em outros sites
Luis Vasconcellos 0 Denunciar post Postado Setembro 5, 2011 Reparei na hora de conectar voce usou o banco e dados chamado usuario e sua tabela tambem tem o nome usuario. Claro que isso nao é um erro, mas voce entende a diferenca entre os dois ? Talvez o banco de dados ou a tabela foram definidos com outro nome. Veja se nao é isso ! Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Setembro 5, 2011 se o código PHP está sendo exibido no navegador, a probabilidade maior é que não possui o PHP instalado ou mesmo que tenha um ambiente corretamente configurado, pode estar tentando acessar pelo path físico. outra coisa muito estranha é a forma como está usando e como escreveu a classe <?php class Banco { private $dbc; private $query; public function Banco(){ $dbc = mysqli_connect ('localhost', 'root', '9896', 'usuario') or die ('Erro'); } public function Inserir_u($user, $senha, $email, $civi){ $query = ("INSERT INTO usuario (nome_usu, senha, email, nome_civi, id) VALUES ($user, $senha, $email, $civi,)"); $result = mysqli_query($dbc, $query) or die('Erro no Banco 1'); $query = "INSERT INTO cons (soldado, avioes, tank, id, ouro) VALUES ('1', '1', '1', '1','')"; $result = mysqli_query($dbc, $query) or die('Erro no Banco 2'); mysqli_close($dbc); } } ?> $teste = new Banco; $teste -> Inserir_u($nome, $senha, $email, $civi); Faz chamada o método "Inserir_u", no entanto, dentro desse método há variáveis indefinidas. A variável $dbc, por exemplo, deveria ser $this -> dbc ou self::$dbc Além do mais é chamado o método para inserção sem nem ao menos ter feito a conexão com o banco. (avaliando os scripts publicados) Enfim, está sem pé nem cabeça... mesmo que o PHP estivesse sendo executado, o script geraria diversos erros. Compartilhar este post Link para o post Compartilhar em outros sites
Miligear 0 Denunciar post Postado Setembro 7, 2011 se o código PHP está sendo exibido no navegador, a probabilidade maior é que não possui o PHP instalado ou mesmo que tenha um ambiente corretamente configurado, pode estar tentando acessar pelo path físico. outra coisa muito estranha é a forma como está usando e como escreveu a classe <?php class Banco { private $dbc; private $query; public function Banco(){ $dbc = mysqli_connect ('localhost', 'root', '', 'tcc') or die ('Erro'); } public function Inserir_u($user, $senha, $email, $civi){ $query = ("INSERT INTO usuario (nome_usu, senha, email, nome_civi, id) VALUES ($user, $senha, $email, $civi,)"); $result = mysqli_query($dbc, $query) or die('Erro no Banco 1'); $query = "INSERT INTO cons (soldado, avioes, tank, id, ouro) VALUES ('1', '1', '1', '1','')"; $result = mysqli_query($dbc, $query) or die('Erro no Banco 2'); mysqli_close($dbc); } } ?> $teste = new Banco; $teste -> Inserir_u($nome, $senha, $email, $civi); Faz chamada o método "Inserir_u", no entanto, dentro desse método há variáveis indefinidas. A variável $dbc, por exemplo, deveria ser $this -> dbc ou self::$dbc Além do mais é chamado o método para inserção sem nem ao menos ter feito a conexão com o banco. (avaliando os scripts publicados) Enfim, está sem pé nem cabeça... mesmo que o PHP estivesse sendo executado, o script geraria diversos erros. Olá Amigo, como o amigo em cima disse o nome do banco estava realmente errado, éra tcc. Não entendo pq a variavel dbc esta indefinida ?, no Construtor eu estou passando a conexão com o banco pra essa variável, veja: $dbc = mysqli_connect ('localhost', 'root', '9896', 'usuario') or die ('Erro'); O PHP esta funcionando agora, estou postando novamente o arquivo que foi modificado: banco.php <?php class Banco { private $dbc; private $query; public function Banco(){ $dbc = mysqli_connect ('localhost', 'root', '', 'tcc') or die ('Erro'); } public function Inserir_u($user, $senha, $email, $civi){ $query = ("INSERT INTO usuario (nome_usu, senha, email, nome_civi, id) VALUES ($user, $senha, $email, $civi,NULL)"); $result = mysqli_query($dbc, $query) or die('Erro no Banco 1'); $query = "INSERT INTO cons (soldado, aviao, tank, id, ouro) VALUES ('1', '1', '1', NULL,'1')"; $result = mysqli_query($dbc, $query) or die('Erro no Banco 2'); mysqli_close($dbc); } } ?> Olhe o erro que esta ocorrendo: Notice: Undefined variable: dbc in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\classes\banco.php on line 12 Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\classes\banco.php on line 12 Erro no Banco 1 Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Setembro 7, 2011 você corrigiu alguns pontos, mas não prestou atenção no que comentei.. você disse no post #11 Olá Amigo, como o amigo em cima disse o nome do banco estava realmente errado, éra tcc. Não entendo pq a variavel dbc esta indefinida ?, no Construtor eu estou passando a conexão com o banco pra essa variável, veja: veja o que postei no post #10 Faz chamada o método "Inserir_u", no entanto, dentro desse método há variáveis indefinidas. A variável $dbc, por exemplo, deveria ser $this -> dbc ou self::$dbc Frisando novamente, eu comentei que o problema inicial era falha em alguma configuração que não estava executando o PHP. Mesmo que estivesse funcionando o script geraria diversos erros, dentre os quais, o erro de variável indefinida. Veja o resultado que você mesmo mostrou no post #11: Olhe o erro que esta ocorrendo: Notice: Undefined variable: dbc in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\classes\banco.php on line 12 Undefined variable: dbc -> variável indefinida: dbc Leia o post #10 e consulte http://php.net/manual/en/language.oop5.basic.php Compartilhar este post Link para o post Compartilhar em outros sites
Miligear 0 Denunciar post Postado Setembro 8, 2011 Olá Amigos, tudo certo, desisti de usar construtor rsrs, declarei todas as variais na função de inserção mesmo, agradeço pela ajuda de todos, agora ta tudo ok. Compartilhar este post Link para o post Compartilhar em outros sites