Ir para conteúdo

POWERED BY:

Arquivado

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

amigaval

[Resolvido] Formulário asp feito no DW não envia dados ao bd Acce

Recommended Posts

Estou fazendo um site em asp com área restrita. Tudo saiu perfeitamente: a conexão entre o dw e o bd access, as páginas de login, área restrita... tudo está se comunicando perfeitamente, menos o formulário que não envia os dados para o bd. Ainda não publiquei, estou fazendo os testes no servidor IIS versão 5.1. Ainda não entendo bem de banco de dados, mas o que fiz, segui um tutorial e não consigo encontrar o erro.O que pode ser? Alguém pode me ajudar?

Agradeço desde já.

Valéria

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você postar o seu código ajuda....

 

Abraços....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou começando agora com asp. O código começa aí? Tem mais acima deste, porém, achei que o formulário começa aqui. Me ajude aí..rsrs

 

<body onLoad="MM_validateForm('Nome','','R','email','','RisEmail','login','','R','senha','','R');return document.MM_returnValue">
<form method="post" action="<%=MM_editAction%>" name="form1">
  <table align="center">
	<tr valign="baseline">
	  <td nowrap align="right">Nome:</td>
	  <td>
		<input type="text" name="Nome" value="" size="32">
	  </td>
	</tr>
	<tr valign="baseline">
	  <td nowrap align="right">Email:</td>
	  <td>
		<input type="text" name="email" value="" size="32">
	  </td>
	</tr>
	<tr valign="baseline">
	  <td nowrap align="right">Login:</td>
	  <td>
		<input type="text" name="login" value="" size="32">
	  </td>
	</tr>
	<tr valign="baseline">
	  <td nowrap align="right">Senha:</td>
	  <td>
		<input name="senha" type="password" value="" size="15">
	  </td>
	</tr>
	<tr valign="baseline">
	  <td nowrap align="right"> </td>
	  <td>
		<input name="inserir" type="submit" id="inserir" value="registrar">
	  </td>
	</tr>
  </table>
  <input type="hidden" name="MM_insert" value="form1">
</form>
<p> </p>
</body>
</html>
<%
Recordset1.Close()
Set Recordset1 = Nothing
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá.. esse é o seu form......

 

Mas cadê o código ASP que faz a inserção no BD ?? Hein ???

 

Abraços..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá.. esse é o seu form......

 

Mas cadê o código ASP que faz a inserção no BD ?? Hein ???

 

Abraços..

Vou colocar tudo aqui..rs..estou começando agora, não ria .r.srs...

 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="Connections/usuarios.asp" -->
<%
' *** Edit Operations: declare variables

Dim MM_editAction
Dim MM_abortEdit
Dim MM_editQuery
Dim MM_editCmd

Dim MM_editConnection
Dim MM_editTable
Dim MM_editRedirectUrl
Dim MM_editColumn
Dim MM_recordId

Dim MM_fieldsStr
Dim MM_columnsStr
Dim MM_fields
Dim MM_columns
Dim MM_typeArray
Dim MM_formVal
Dim MM_delim
Dim MM_altVal
Dim MM_emptyVal
Dim MM_i

MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
If (Request.QueryString <> "") Then
  MM_editAction = MM_editAction & "?" & Request.QueryString
End If

' boolean to abort record edit
MM_abortEdit = false

' query string to execute
MM_editQuery = ""
%>
<%
' *** Redirect if username exists
MM_flag="MM_insert"
If (CStr(Request(MM_flag)) <> "") Then
  MM_dupKeyRedirect="erro_cadastro.asp"
  MM_rsKeyConnection=MM_usuarios_STRING
  MM_dupKeyUsernameValue = CStr(Request.Form("login"))
  MM_dupKeySQL="SELECT login FROM usuarios WHERE login='" & MM_dupKeyUsernameValue & "'"
  MM_adodbRecordset="ADODB.Recordset"
  set MM_rsKey=Server.CreateObject(MM_adodbRecordset)
  MM_rsKey.ActiveConnection=MM_rsKeyConnection
  MM_rsKey.Source=MM_dupKeySQL
  MM_rsKey.CursorType=0
  MM_rsKey.CursorLocation=2
  MM_rsKey.LockType=3
  MM_rsKey.Open
  If Not MM_rsKey.EOF Or Not MM_rsKey.BOF Then 
	' the username was found - can not add the requested username
	MM_qsChar = "?"
	If (InStr(1,MM_dupKeyRedirect,"?") >= 1) Then MM_qsChar = "&"
	MM_dupKeyRedirect = MM_dupKeyRedirect & MM_qsChar & "requsername=" & MM_dupKeyUsernameValue
	Response.Redirect(MM_dupKeyRedirect)
  End If
  MM_rsKey.Close
End If
%>
<%
' *** Insert Record: set variables

If (CStr(Request("MM_insert")) = "form1") Then

  MM_editConnection = MM_usuarios_STRING
  MM_editTable = "usuarios"
  MM_editRedirectUrl = "confirma_cadastro.asp"
  MM_fieldsStr  = "Nome|value|email|value|login|value|senha|value"
  MM_columnsStr = "Nome|',none,''|email|',none,''|login|',none,''|senha|',none,''"

  ' create the MM_fields and MM_columns arrays
  MM_fields = Split(MM_fieldsStr, "|")
  MM_columns = Split(MM_columnsStr, "|")
  
  ' set the form values
  For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
	MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
  Next

  ' append the query string to the redirect URL
  If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
	If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
	  MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
	Else
	  MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
	End If
  End If

End If
%>
<%
' *** Insert Record: construct a sql insert statement and execute it

Dim MM_tableValues
Dim MM_dbValues

If (CStr(Request("MM_insert")) <> "") Then

  ' create the sql insert statement
  MM_tableValues = ""
  MM_dbValues = ""
  For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
	MM_formVal = MM_fields(MM_i+1)
	MM_typeArray = Split(MM_columns(MM_i+1),",")
	MM_delim = MM_typeArray(0)
	If (MM_delim = "none") Then MM_delim = ""
	MM_altVal = MM_typeArray(1)
	If (MM_altVal = "none") Then MM_altVal = ""
	MM_emptyVal = MM_typeArray(2)
	If (MM_emptyVal = "none") Then MM_emptyVal = ""
	If (MM_formVal = "") Then
	  MM_formVal = MM_emptyVal
	Else
	  If (MM_altVal <> "") Then
		MM_formVal = MM_altVal
	  ElseIf (MM_delim = "'") Then  ' escape quotes
		MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
	  Else
		MM_formVal = MM_delim + MM_formVal + MM_delim
	  End If
	End If
	If (MM_i <> LBound(MM_fields)) Then
	  MM_tableValues = MM_tableValues & ","
	  MM_dbValues = MM_dbValues & ","
	End If
	MM_tableValues = MM_tableValues & MM_columns(MM_i)
	MM_dbValues = MM_dbValues & MM_formVal
  Next
  MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"

  If (Not MM_abortEdit) Then
	' execute the insert
	Set MM_editCmd = Server.CreateObject("ADODB.Command")
	MM_editCmd.ActiveConnection = MM_editConnection
	MM_editCmd.CommandText = MM_editQuery
	MM_editCmd.Execute
	MM_editCmd.ActiveConnection.Close

	If (MM_editRedirectUrl <> "") Then
	  Response.Redirect(MM_editRedirectUrl)
	End If
  End If

End If
%>
<%
Dim Recordset1
Dim Recordset1_numRows

Set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = MM_usuarios_STRING
Recordset1.Source = "SELECT * FROM usuarios"
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 1
Recordset1.Open()

Recordset1_numRows = 0
%>
<html>
<head>
<title>CADASTRO</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
	d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
	if (val) { nm=val.name; if ((val=val.value)!="") {
	  if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
		if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
	  } else if (test!='R') { num = parseFloat(val);
		if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
		if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
		  min=test.substring(8,p); max=test.substring(p+1);
		  if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
	} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caramba.. não sabia que o DW gerava tanto LIXO no código assim apenas para uma simples inclusão no BD.. ¬¬

 

Só uma pergunta.... dá algum erro ou simplesmente não adiciona nada ao BD ??

 

PS: Quando for postar um código.. use a tag "Code".. =)

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caramba.. não sabia que o DW gerava tanto LIXO no código assim apenas para uma simples inclusão no BD.. ¬¬

 

Só uma pergunta.... dá algum erro ou simplesmente não adiciona nada ao BD ??

 

PS: Quando for postar um código.. use a tag "Code".. =)

 

Abraços...

POis é... nem eu sabia que isso tudo era lixo..ainda nao sei bem sobre códigos... é o primeiro site em asp que faço. Só fazia html.

bom, quando insiro os dados, abre " esta página não pode ser exibida" . MOstra também o tipo de erro:

 

Tipo de erro:

Microsoft JET Database Engine (0x80004005)

A operação deve usar uma consulta atualizável.

/TMP5qm5fdpxd3.asp, line 141

 

OBrigada pela paciência!

Val

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aaaaaaaaaaa tah....

 

Isso ai não é erro do ASP em si... é apenas a falta de permissão de escrita/edição na pasta onde se encontra a sua página..

 

Vá até a pasta onde está a sua página e o BD.. e de permissão de gravação a todos os usuários nela...

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aaaaaaaaaaa tah....

 

Isso ai não é erro do ASP em si... é apenas a falta de permissão de escrita/edição na pasta onde se encontra a sua página..

 

Vá até a pasta onde está a sua página e o BD.. e de permissão de gravação a todos os usuários nela...

 

Abraços...

 

onde vou? no iis ou no dw?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é o compartilhamento....

 

você tem o IIS .. certo ?

 

Logo.. se você nao musou as configurações, as suas páginas estão em C:\Inetpu\Wwwroot

 

Vá até a pasta Wwwroot, pelo Windows Explorer, botão direito nela... segurança...

 

Ai vai aparecer uma lista de usuários e permissões lá..

 

Se não tiver o usuário "todos", clique em Adicionar e digite "todos".. e de ok..

 

Depois marque a opção "COntrole total"... se ele já estiver na lista.. apenas marque o controle total..

 

Aplicar.. Ok... e pronto... ¬¬

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok Vou fazer isso..agora tenho q dar uma saida, depois te dou uma posição se consegui. um abraço

E obrigada.

Val

 

ai..clicando com o mouse botão direito, não tem esse item segurança, tem compartilhamento e segurança e abrindo, não tem esses itens que você falou. Mas não tem problemas, valeu mesmo. Sabe o que vou fazer, tudo de novo...excluí tudo e vou fazer novamente para ver se consigo encontrar esse erro. obrigada

Depois dou notícias...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mesmo você excluindo e fazendo tudo de novo.. esse erro vai continuar...

 

Enquanto você nao arrumar as permissões da pasta.. esse erro vai persistir e você nao vai conseguir incluir ou alterar dados da sua tabela...

 

=)

Compartilhar este post


Link para o post
Compartilhar em outros sites

vai na pasta raiz do projeto

 

botão direito nela -> PROPRIEDADES -> clica na aba COMPARTILHAMENTO DA WEB e clica no "radiobutton" COMPARTILHAR ESSA PASTA

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao consigo inserir figura aqui!

 

A página que abre ao tentar inserir dados no formulário vem com estas informações

 

Não é possível exibir a página

Ocorreu um problema com a página que você está tentando acessar e não é possível exibi-la.

 

--------------------------------------------------------------------------------

 

 

 

HTTP 500.100 - Servidor interno Erro - erro do ASP

Internet Information Services

 

--------------------------------------------------------------------------------

 

Informações técnicas (para a equipe de suporte)

 

Tipo de erro:

Microsoft JET Database Engine (0x80004005)

A operação deve usar uma consulta atualizável.

/TMPx85mdqaa5.asp, line 141

 

 

Tipo de navegador:

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)

 

Página:

POST 99 bytes to /TMPx85mdqaa5.asp

Compartilhar este post


Link para o post
Compartilhar em outros sites

Minha cara....

 

Como já dito antes.... esse erro é um erro de permissão da pasta.. não de programação ASP...

 

Enquanto você não conseguir alterar os atributos de permissões da pasta onde o seu BD está.. esse erro continuará....

 

Qual é o Windows que você usa ??

 

Se for o caso eu movo o seu tópico para o fórum apropriado ao seu Windows... já que os caminhos que te demos não resolveram..

 

Att;

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.