Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DiegoP

Insere no banco de dados, mas os campos aparecem em branco!

Recommended Posts

Hey pessoal!

 

 

eu estou criando um sistema de cadastro em banco de dados, bem simples...

funciona assim:

são duas páginas, insere.asp e inserea.asp

na página "insere.asp", tem um form pra inserir os dados;

na página "inserea.asp", os dados do form são requisitados e enviados pra um banco de dados (no caso, access).

ainda na inserea.asp, coloquei um alert que exibe uma mensagem dizendo que seus dados foram cadastrados e um redirecionamento...

 

Eis o problema:

 

o usuário digita os dados no formulário, clica em inserir e os dados são enviados pra outra página...

porém, quando vou ver no banco de dados os dados cadastrados, os campos estão em branco!

 

ou seja, cria-se um registro, porém não com as informações do formulário...

 

segue abaixo o código da "insere.asp" e "inserea.asp":

 

CODE
insere.asp:

 

<% @ language="vbscript" %>

<!-- #include file="topo.asp" -->

<html>

<head>

<title>Inserção de notícias</title>

</head>

<body>

<p>Insira os dados desejados:</p>

 

<form method="post" action="inserea.asp" enctype="multipart/form-data">

<table>

<tr>

<td>Título:</td><td><input type="text" name="titulo">*</td>

<tr>

<td>Descrição: </td><td><textarea name="descricao" rows="5" maxlength="200"></textarea></td>

<tr>

<td><input type="submit" value="Inserir"></td>

<td><input type="reset" value="Limpar"></td>

</tr>

</table>

 

</form>

<a href="java script:history.back()">Voltar</a>

<!-- #include file="rodape.asp" -->

</body>

</html>

 

CODE
inserea.asp:

 

<!-- #include file="conexao.asp" -->

<%

Dim titulo, descricao

titulo = Request.Form("titulo")

descricao = Request.Form("descricao")

 

Call AbrirConexao

Dim sql

sql = "INSERT INTO Notícias (titulo,descricao) VALUES ('" & titulo & "','" & descricao & "') "

Conexao.Execute(sql)

 

Response.Write "<script>alert('A notícia foi inserida com sucesso!')</script> "

Response.Write "<meta http-equiv='refresh' content='0; url=admin.asp'/>"

Call FecharConexao

%>

 

bem, é isso eee...alguém me ajuda! xD

obrigado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

se voce passar os dados com o form assim

 

enctype="multipart/form-data"

 

nao poderá recuparar com o request.form

Compartilhar este post


Link para o post
Compartilhar em outros sites

hum, obrigado pela ajuda Mário!

 

retirei enctype e utilizei o request, no entanto ainda continua o mesmo problema, recebe os valores do formulário mas não cadastra dado nenhum...

alguma idéia do que pode ser?

 

ou alguma idéia do que posso fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

que erro acontece?

Compartilhar este post


Link para o post
Compartilhar em outros sites

não dá erro, ele simplesmente envia um espaço em branco pro banco de dados...

o código, inicialmente, estava com trim, mas fui retirando partes pra ver se aparecia pelo menos alguma mensagem de erro, mas infelizmente não deu certo e o cadastro sem dados persiste...

 

testei outros códigos e funcionou perfeitamente, o problema é só com esse mesmo...

seria algum erro de digitação na expressão sql?

 

obrigado, denovo!

 

esqueci de mencionar, pode ser importante:

 

algumas vezes, ao invés do espaço em branco, foi inserido um "0" no banco de dados...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai DiegoP primeiramente te aconselho a verificar o metodo que estas a utilizar na camada de apresentação ou seja na pagina que contem o formulario, e tambem verificar o tipo de propriedade que estas a utilizar para o objecto response, se o metodo for post a propriedade a ser usada é o form se for get então é o querystring.Caso não for nenhum desses casos a solução então ai vai outra dica:

 

na camada de validação ou seja na pagina que verificas o dados introduzidos coloca:

 

dim campo1, campo2

campo1=Request.Form("text1")
campo2=Request.Form("text2)

con=Server.CreatObject("ADODB.Connection")
con.ConnectionString="dsn=nomedodsn"; \\Caminho da BD
con.Open()
recset=Server.CreatObject("ADODB.RecordSet")
recset.Open("SELECT *FROM nomedatabela,con,1,3)\\ Selecçiona todos os dados(*) da tabela que pretendes

recset.AddNew
recset("campo1").Value=o campo da BD onde pretendes insirir esse dado
recset("campo2").Value=o campo da BD onde pretendes insirir esse dado
Response.Write("O registo foi insirido com sucesso")
recset.Update
recset.Close
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%>\\ isto é no caso de der errado em vez de vbscript muda para JAVASCRIPT
"PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=C:\\Inetpub\\wwwroot\\SAcademico\\BD\\Sistema Academico.mdb;"\\ no lugar do dsn=nomedodsn podes usar isso

Espero que isto ajude

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.