Ren# 0 Denunciar post Postado Março 4, 2010 Boa tarde.. Bom, sou novo no forum e também na linguagem de php.. e estou desde ontem tentando fazer um cadastro simples, só pra teste e pra eu conseguir entender como funciona a inserção de informações no banco de dados através do PHP, mas não estou conseguindo... será que alguém poderia analizar o meu código e dar uma dica de porque eu estar errando? PS. Lembrando que eu uso o EasyPHP 2.0.0.0 Os códigos são os seguintes: 1 - Corpo da Página: index.php <html> <head> <h1>Cadastre-se aqui...</h><title>Cadastro</title></head> <body> <form method="POST" action="include.php"> <table border=0> <tr><td>Nome:</td><td><input name="nome" id="nome" type="text" style="width: 350px"></td></tr> <tr><td>Cargo:</td><td><input name="cargo" id="cargo" type="text" style="width: 350px"></td></tr> <tr><td>E-mail:</td><td><input name="mail" id="mail" type="text" style="width: 350px"></td></tr> <tr><td colspan=2><input type="submit" value="Enviar Dados."></td><td></td></tr> </table> </form> </body> </html> Página simples com apenas 3 campos onde devem ser ser inseridas as informações que serão gravadas no banco de dados. 2 - Configurações de conexão com o banco de dados: config.php <?php $host = "localhost"; $user = "root"; $pass = ""; $db = "cadastro"; $a = mysql_connect($host, $user, $pass) or die(mysql_error()); @mysql_select_db($db, $a) or die("erro ao se conectar com o db"); ?> 3 - Aqui é a parte onde as informações deveriam ser inseridas no banco de dados: include.php <?php include "config.php"; $nome = $_POST['nome']; $cargo = $_POST['cargo']; $mail = $_POST['mail']; $x = mysql_query("INSERT INTO usuario('NOME', 'CARGO', 'MAIL') VALUES('$nome', '$cargo', '$mail')"); if($x){echo"o cadastro foi feito com sucesso";// verificamos se os dados doi inserido se for ele executa o echo }else{ echo"o cadastro nao pode ser efetuado"; } //se o arquivo nao for inserido echo "<br><br>$_REQUEST[nome], $_REQUEST[cargo], $_REQUEST[mail]"; ?> O bando de dados ja foi criado, tem uma tabela de nome "cadastro" com 3 campos tipo VARCHAR(50): nome, cargo, mail. Como vocês podem notar eu fiz um "if" para caso aconteça um erro na inserção ele me retorne uma mensagem de erro.. que é a mensagem que aparece e os dados não são inseridos no banco de dados... alguem pode me ajudar com esse problema? Compartilhar este post Link para o post Compartilhar em outros sites
Eric Work(RJ) 0 Denunciar post Postado Março 4, 2010 <? /* o Primeiro passo é usar o addslashes para que não haja engraçadinhos usando sql injection no seu cadastro */ $nome = addslashes($_POST['nome']); $cargo = addslashes($_POST['cargo']); $mail = addslashes($_POST['mail']); /* Suponho que você tenha um campo ID Auto Increment */ $x = mysql_query("INSERT INTO usuario VALUES(NULL,'$nome', '$cargo', '$mail')"); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Ren# 0 Denunciar post Postado Março 4, 2010 Cara, deu certo! Muito obrigado mesmo. Bom.. como eu falei ainda sou novo em PHP, não conhecia esse recurso do "addslashes", como ele funciona? E como você disse, realmente eu tinha colocado um campo ID na minha tabela, só que como eu coloquei ele como auto-incremental eu achei que não precisaria ter colocado nada no código em PHP, foi esse meu erro? Ou foi o código que estava errado mesmo, por que o meu INSERT INTO estava diferente do seu... Compartilhar este post Link para o post Compartilhar em outros sites