ebotega 2 Denunciar post Postado Dezembro 28, 2009 Então, cá está um leigo (mas leigo mesmo...) em PHP e creio que para quem manja do assunto isso é moleza. Estou tentando aprender por conta e na marra PHP mas tem algumas coisas que não vai. Catei dois exemplos simples de insert no MySql via um form html, mas o problema é que quando clico no botão a página chama um txt com o scipt PHP que faz o insert no banco, tipo faz o download do script e mostra na tela em um bloco de notas. Como faço pra funcionar isso. Testei o script insert.php com registros fixos, ou seja, ao invés de colocar variáveis (vindos do formulário) eu informo valores fixos, tipo: insert into clientes values ('jose', ''m', 54, 'rua bla bla bla')... e funcionou! Mas quando tento pelo form, dá essa zica do download e não insere no banco... PHP, Apache e MySql funcionado perfeitamente, pelo menos nos outros testes ocorreu tudo ok. A conexão com o banco está sendo chamada no início do arquivo insert.php através da linha include "conexao.php";, testado com valores fixos e funcionando legal. Os dois códigos acima estão com <?php ... ?> mas foram testados em todos os casos: <?, <?php, <%. Não testei ainda select ou update, queria fazer funcionar primeiro o insert (creio que o update chamará o arquivo igual ao insert...). Seguem scripts que peguei na net: PRIMEIRO: arquivo: formulario.html <html> <body> <form action="insert.php" method="post"> Firstname: <input type="text" name="firstname" /> Lastname: <input type="text" name="lastname" /> Age: <input type="text" name="age" /> <input type="submit" /> </form> </body> </html> arquivo: insert.php <?php include "conexao.php"; $ sql = "INSERT INTO pessoas (nome, sobrenome, idade) VALUES ('Firstname $ _POST []','$_ POST [lastname ]','$_ POST [idade ]')"; if (mysql_query! ($ sql, $ con)) die ( 'Error:'. mysql_error ()); else echo "1 registro inserido." ?> SEGUNDO: arquivo: formulario.html <html> <head> <title>Formulário de inserção</title> </head> <body> <form action="insert.php" name="form" method="post"> Nome:<br> <input type="text" name="nome" maxlenght="100" size="25" /><br> Observações:<br> <textarea name="observacoes" rows="4" cols="20"></textarea><br> <input type="submit" value="Inserir" /> </form> </body> </html> arquivo: insert.php <?php include "conexao.php"; $nome = $_POST["nome"]; $observacoes = $_POST["observacoes"]; $sql = "INSERT INTO testes (nome, observacoes) VALUES ('$nome', '$observacoes')"; $resultado = mysql_query($sql) or die (mysql_error()); echo "Dados inseridos com sucesso!"; ?> Valeu... Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Dezembro 28, 2009 Mas quando tento pelo form, dá essa zica do download e não insere no banco... hein?! que zica? está rodando em: http://localhost/.. ? Apareceu algum erro? qual ? Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Dezembro 28, 2009 Também O Primeiro está completamente errado. Só de olhar!!!! O insert.php está errado. O nome das variáveis POST's estão incoerentes com os NAMES dos INPUT's do Formulário. O Certo seria assim: <?php include "conexao.php"; $sql = "INSERT INTO pessoas (nome, sobrenome, idade) VALUES ("'".$_POST ['Firstname']."'","'".$_POST ['lastname']."'",$_POST ['idade'])"; if (mysql_query! ($ sql, $ con)) die ( 'Error:'. mysql_error ()); else echo "1 registro inserido." ?> Mas o mais certo seria o exemplo 2, igualando as variávels POST's a outras variáveis. Compartilhar este post Link para o post Compartilhar em outros sites
ebotega 2 Denunciar post Postado Dezembro 28, 2009 Olá Dee, testei o script que você alterou e acontece a mesma coisa. William, estou rodando em localhost, todos os outros scripts que rodo funcionam, mas quando tento usar um formulário simples para inserir dados no banco, acontece essas "zica" que falei: ao invés de inserir os registros no banco, quando clico no botão, abre um bloco de notas do arquivo insert.php na tela... Consulto o banco e as informações não estão lá, ou seja, não executa o conteúdo do arquivo insert.php, apenas abre este arquivo na tela. Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Dezembro 28, 2009 está rodando em: http://localhost/.. ? Só vai acontecer oque você descreveu com o formulário, se você abrir o arquivo html com duplo clique. Enqnto deveria executar o código via servidor.. Compartilhar este post Link para o post Compartilhar em outros sites
ebotega 2 Denunciar post Postado Dezembro 28, 2009 Só vai acontecer oque você descreveu com o formulário, se você abrir o arquivo html com duplo clique. Enqnto deveria executar o código via servidor.. não entendi bem o que você quiz dizer... os arquivos estão em "C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs", abro o formulario.html (já tentei .htm e .php) por lá, informo os dados e clico no botão, resultado: abre o notepad com o código do insert.php... Qualquer outro código php vou de http://localhost/codigo.php Por enquanto obrigado pela força (e paciência). Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Dezembro 28, 2009 Faz o seguinte: http://localhost/formulario.html entendeu? 'rodando' o formulário pelo servidor, em vez de dar duplo clique! Como se fosse qualquer outro script... esse trecho abro o formulario.html (já tentei .htm e .php) por láme faz pensar que você está abrindo o formulário, sem usar o servidor.. ai a tua URL fica algo do tipo:file:///C:/Arquivos de programas/Apache Software Foundation/Apache2.2/htdocs/formulario.html e é ai que está o erro. Use sempre o 'localhost'. Compartilhar este post Link para o post Compartilhar em outros sites
ebotega 2 Denunciar post Postado Dezembro 28, 2009 aloco... na mosca. Me vem à mente: "por que não pensei nisso antes?", talvez por achar que não daria certo... nei sei, mas algumas coisas aprendemos apanhando ou com a ajuda de quem entendo (o que foi o caso agora). Valeu mesmo William!!! Compartilhar este post Link para o post Compartilhar em outros sites