Gerard 0 Denunciar post Postado Outubro 7, 2008 Gente, eu sou muito novo em MySql, e manjo PHP há um tempo, suficiente para me interessar na interação deste com o MySql http://forum.imasters.com.br/public/style_emoticons/default/grin.gif Como muita gente por aí, o meu primeiro código teste foi um form básico que joga as informações num banco de dados qualquer.. Eu já li muito tutorial, mas acho que nada bate a prática para tratar eventuais erros... Bom, eu peguei pronto, pra testar se eu tava sabendo manipular tabelas, uma página em HTML, entitulada Cadastro.html <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>CADASTRO DE CLIENTES COM BANCO DE DADOS E PHP</title> <style type="text/css"> <!-- .style1 { color: #FF0000; font-size: x-small; } .style3 {color: #0000FF; font-size: x-small; } --> </style> <!-- ########## • Créditos • ############# # # # Autor: Wesley C. Nascimento # # Email: wesley_zeus@yahoo.com.br # # # # Nome do script:FormularioCliente# # Bonus: validaCampo # # # # Favor não retire os créditos # # # ##################################### --> <script type="text/javascript"> function validaCampo() { if(document.cadastro.nome.value=="") { alert("O Campo nome é obrigatório!"); return false; } else if(document.cadastro.email.value=="") { alert("O Campo email é obrigatório!"); return false; } else if(document.cadastro.endereco.value=="") { alert("O Campo endereço é obrigatório!"); return false; } else if(document.cadastro.cidade.value=="") { alert("O Campo Cidade é obrigatório!"); return false; } else if(document.cadastro.estado.value=="") { alert("O Campo Estado é obrigatório!"); return false; } else if(document.cadastro.bairro.value=="") { alert("O Campo Bairro é obrigatório!"); return false; } else if(document.cadastro.pais.value=="") { alert("O Campo país é obrigatório!"); return false; } else if(document.cadastro.login.value=="") { alert("O Campo Login é obrigatório!"); return false; } else if(document.cadastro.senha.value=="") { alert("Digite uma senha!"); return false; } else return true; } <!-- Fim do JavaScript que validará os campos obrigatórios! --> </script> </head> <body> <form id="cadastro" name="cadastro" method="post" action="cadastro.php" onsubmit="return validaCampo(); return false;"> <table width="625" border="0"> <tr> <td width="69">Nome:</td> <td width="546"><input name="nome" type="text" id="nome" size="70" maxlength="60" /> <span class="style1">*</span></td> </tr> <tr> <td>Email:</td> <td><input name="email" type="text" id="email" size="70" maxlength="60" /> <span class="style1">*</span></td> </tr> <tr> <td>Sexo:</td> <td><input name="sexo" type="radio" value="Masculino" checked="checked" /> Masculino <input name="sexo" type="radio" value="Feminino" /> Feminino <span class="style1">*</span> </td> </tr> <tr> <td>DDD:</td> <td><input name="ddd" type="text" id="ddd" size="4" maxlength="2" /> Telefone: <input name="telefone" type="text" id="telefone" /> <span class="style3">Apenas números</span> </td> </tr> <tr> <td>Endereço:</td> <td><input name="endereco" type="text" id="endereco" size="70" maxlength="70" /> <span class="style1">*</span></td> </tr> <tr> <td>Cidade:</td> <td><input name="cidade" type="text" id="cidade" maxlength="20" /> <span class="style1">*</span></td> </tr> <tr> <td>Estado:</td> <td><select name="estado" id="estado"> <option>Selecione...</option> <option value="AC">AC</option> <option value="AL">AL</option> <option value="AP">AP</option> <option value="AM">AM</option> <option value="BA">BA</option> <option value="CE">CE</option> <option value="ES">ES</option> <option value="DF">DF</option> <option value="MA">MA</option> <option value="MT">MT</option> <option value="MS">MS</option> <option value="MG">MG</option> <option value="PA">PA</option> <option value="PB">PB</option> <option value="PR">PR</option> <option value="PE">PE</option> <option value="PI">PI</option> <option value="RJ">RJ</option> <option value="RN">RN</option> <option value="RS">RS</option> <option value="RO">RO</option> <option value="RR">RR</option> <option value="SC">SC</option> <option value="SP">SP</option> <option value="SE">SE</option> <option value="TO">TO</option> </select> <span class="style1">* </span></td> </tr> <tr> <td>Bairro:</td> <td><input name="bairro" type="text" id="bairro" maxlength="20" /> <span class="style1">*</span></td> </tr> <tr> <td>País:</td> <td><input name="pais" type="text" id="pais" maxlength="20" /> <span class="style1">*</span></td> </tr> <tr> <td>Login:</td> <td><input name="login" type="text" id="login" maxlength="12" /> <span class="style1">*</span></td> </tr> <tr> <td>Senha:</td> <td><input name="senha" type="password" id="senha" maxlength="12" /> <span class="style1">*</span></td> </tr> <tr> <td colspan="2"><input name="news" type="checkbox" id="news" value="ATIVO" checked="checked" /> Desejo receber novidades e informações sobre o conteúdo deste site. </td> </tr> <tr> <td colspan="2"><p> <input name="cadastrar" type="submit" id="cadastrar" value="Concluir meu Cadastro!" /> <br /> <input name="limpar" type="reset" id="limpar" value="Limpar Campos preenchidos!" /> <br /> <span class="style1">* Campos com * são obrigatórios! </span></p> <p> </p></td> </tr> </table> </form> </body> </html> Bom, isso daí é muito trivial...agora vamos partir para a cadastro.php, que recebeu, em modo post, os dados do meu formulário Cadastro.php <html xmlns="http://www.w3.org/1999/xhtml"> <body> <?php // RECEBENDO OS DADOS PREENCHIDOS DO FORMULÁRIO ! $nome = $_POST ["nome"]; //atribuição do campo "nome" vindo do formulário para variavel $email = $_POST ["email"]; //atribuição do campo "email" vindo do formulário para variavel $ddd = $_POST ["ddd"]; //atribuição do campo "ddd" vindo do formulário para variavel $tel = $_POST ["telefone"]; //atribuição do campo "telefone" vindo do formulário para variavel $endereco = $_POST ["endereco"]; //atribuição do campo "endereco" vindo do formulário para variavel $cidade = $_POST ["cidade"]; //atribuição do campo "cidade" vindo do formulário para variavel $estado = $_POST ["estado"]; //atribuição do campo "estado" vindo do formulário para variavel $bairro = $_POST ["bairro"]; //atribuição do campo "bairro" vindo do formulário para variavel $pais = $_POST ["pais"]; //atribuição do campo "pais" vindo do formulário para variavel $login = $_POST ["login"]; //atribuição do campo "login" vindo do formulário para variavel $senha = $_POST ["senha"]; //atribuição do campo "senha" vindo do formulário para variavel $news = $_POST ["news"]; //atribuição do campo "news" vindo do formulário para variavel $sexo = $_POST ["sexo"]; //atribuição do campo "sexo" vindo do formulário para variavel //Gravando no banco de dados ! [b]//conectando com o localhost - mysql[/b] $conexao = mysql_connect("localhost","root"); if (!$conexao) die ("Erro de conexão com localhost, o seguinte erro ocorreu -> ".mysql_error()); //conectando com a tabela do banco de dados $banco = mysql_select_db("clientes",$conexao); if (!$banco) die ("Erro de conexão com banco de dados, o seguinte erro ocorreu -> ".mysql_error()); $query = "INSERT INTO `clientes` ( `nome` , `email` , `sexo` , `ddd` , `telefone` , `endereço` , `cidade` , `estado` , `bairro` , `país` , `login` , `senha` , `news` , `id` ) VALUES ('$nome', '$email', '$sexo', '$ddd', '$tel', '$endereco', '$cidade', '$estado', '$bairro', '$pais', '$login', '$senha', '$news', '')"; mysql_query($query,$conexao); echo "Seu cadastro foi realizado com sucesso!<br>Agradecemos a atenção."; ?> </body> </html> Bom, ela vai capturar as strings dos campos do form, tentar uma conexão com o meu banco de dados, e , em seguida, enviar para o bd. Então, o arquivo sql para criação da tabela está aki: Clientes.SQL comando SQL: CREATE TABLE `clientes` ( `nome` VARCHAR( 60 ) NOT NULL , `email` VARCHAR( 60 ) NOT NULL , `sexo` VARCHAR( 10 ) NOT NULL , `ddd` INT( 2 ) , `telefone` INT( 8 ) , `endereço` VARCHAR( 70 ) NOT NULL , `cidade` VARCHAR( 20 ) NOT NULL , `estado` VARCHAR( 2 ) NOT NULL , `bairro` VARCHAR( 20 ) NOT NULL , `país` VARCHAR( 20 ) NOT NULL , `login` VARCHAR( 12 ) NOT NULL , `senha` VARCHAR( 12 ) NOT NULL , `news` VARCHAR( 8 ) , `id` INT( 200 ) AUTO_INCREMENT , UNIQUE ( `id` ) ); Fui testar num server qualquer da web, que oferece suporte a PHP+MySql como o (000webhost.com), e descobri que, mesmo lendo sobre o assunto, sou um zero a esquerda!! haha Primeiro: em, $conexao = mysql_connect("localhost","root"); ....para o server remoto aqui de casa, beleza...mas, e para o servidor do site? que tem user, senha, etc?? Segundo, porque diabos clientes.SQL começa com a frase: comando SQL: Terceiro: eu tenho que criar, manualmente, no meu bd central, a tabela "clientes", para o form a modificar, ou o form a cria automaticamente?? Desde já, obrigado pela paciencia e cooperação! Queria salientar que o form não tem fins lucrativos para minha pessoa, eu só quero aprender!! Abraços!! Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Outubro 7, 2008 o "clientes.SQL", é um arquivo para você poder IMPORTAR qndo estiver no banco. Esse arquivo vai criar a estrutura do banco para você. Sim, você precisa ter senha e user para o banco de dados no site. Compartilhar este post Link para o post Compartilhar em outros sites
Gerard 0 Denunciar post Postado Outubro 7, 2008 Ah sim!! Entendi, então essa é a file do import! Mas a respeito da senha/user, a questão é: aonde colocar isso? uma vez que no "conexao" o autor coloca apenas localhost e root? outra pergunta, é preciso criar algo a mais para poder estabelecer uma conexão com o bd ou isso basta? Compartilhar este post Link para o post Compartilhar em outros sites
Gerard 0 Denunciar post Postado Outubro 7, 2008 Não sei se fui compreendido...tipo: seria só modificar o código: //conectando com o localhost - mysql $conexao = mysql_connect("localhost","root"); if (!$conexao) die ("Erro de conexão com localhost, o seguinte erro ocorreu -> ".mysql_error()); //conectando com a tabela do banco de dados $banco = mysql_select_db("clientes",$conexao); if (!$banco) die ("Erro de conexão com banco de dados, o seguinte erro ocorreu -> ".mysql_error()); Localhost seria o endereço da minha DB , isso eu não sei modificar, aonde eu verifico esse endereço?? Root seria o nome do usuer, de acordo com o site aki Aí eu acrescentaria mais uma virgula, colocando a senha... Olha só, funçando a database do server, no titulo tem isso: Server: localhost - Database: a3888502_12 A senha e o user serim os que eu uso pra dar login na database? Abraços! Compartilhar este post Link para o post Compartilhar em outros sites
Gerard 0 Denunciar post Postado Outubro 7, 2008 Erro de conexão com localhost, o seguinte erro ocorreu -> Access denied for user 'a3888502_1'@'localhost' (using password: YES) /home/a3888502/public_html/cadastro.php on line 27 Linha 27 do cadastro.php é exatamente a linha que estabelece a conexão com o bd Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Outubro 8, 2008 $conexao = mysql_connect("localhost","root","senha"); Está faltando parâmetros ai, o terceiro é a senha. Te negou o acesso, pq você não colocou. E o banco tem senha. O host te informa.. mas geralmente, eles te deixam trabalhar como "localhost" mesmo. Verifique na tua hospedagem.. se não, você tem que informar o IP de onde está o teu banco de dados. A senha e o user serim os que eu uso pra dar login na database? Sim.Melhor seria postar no forum de php. Compartilhar este post Link para o post Compartilhar em outros sites