Ir para conteúdo

POWERED BY:

Arquivado

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

Rosana.

Erro em formulário: 500 Internal Server Error

Recommended Posts

Quero criar um formulário de envio de e-mail no meu site mas não consigo fazê-lo funcionar!

Quando envio a mensagem aparece 500 Internal Server Error.

 

O formulário.asp é esse. O coloquei no mesmo diretório do mail.html (página do site onde coloquei o formulário)

 

 

<%@LANGUAGE="VBSCRIPT"%>

<%

response.buffer=(true)
set o = Server.CreateObject("ADISCON.SimpleMail.1")
o.MailServer = "localhost"
o.Sender ="contato@aiprock.com"
o.Recipient ="contato@aiprock.com"
o.Subject = "Contato via web"
o.MessageText = "Email via WEB" + vbCrLf + ""&_
"Nome = " + Request.Form("nome_form_contato") + vbCrLf + ""&_
"Email = " + Request.Form("email_form_contato") + vbCrLf + ""&_
"Telefone = " + Request.Form("fone_form_contato") + vbCrLf + ""&_
"Mensagem = " + Request.Form("mensagem_form_contato")


call o.Send
Set o = Nothing

response.redirect"index.htm"

%>

Devo mudar algo aqui?
o.MailServer = "localhost"


Início do código html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

Script (está no cabeçalho Head)

<script 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 == '');
}
//-->
</script>

Formulário no site:
<body><br></span><span style="text-decoration: underline;"><form action="formulario.asp" method="post" name="form_contato" id="form_contato" accept-charset="iso-8859-1,utf-8">
  <br><br><table border="0" cellpadding="0" cellspacing="0" width="100%">
    <tbody><tr>

      <td valign="top"><table border="0" cellpadding="0" cellspacing="0" width="100%">

        <tbody><tr>
          <td style="color: rgb(222, 222, 222);" width="50">Nome:</td>
          <td><input name="nome_form_contato" size="35" maxlength="80" accept-charset="iso-8859-1,utf-8" type="text"></td>
        </tr>
        <tr>
          <td> </td>
          <td> </td>

        </tr>

        <tr>
          <td style="color: rgb(222, 222, 222);">E-mail:</td>
          <td><input name="email_form_contato" id="email_form_contato" size="35" maxlength="100" accept-charset="iso-8859-1,utf-8" type="text"></td>
        </tr>
        <tr>
          <td> </td>
          <td> </td>

        </tr>

        <tr>
          <td style="color: rgb(222, 222, 222);">Fone:</td>
          <td><input name="fone_form_contato" id="fone_form_contato" size="35" maxlength="20" accept-charset="iso-8859-1,utf-8" type="text"></td>
        </tr>
        <tr>
          <td> </td>
          <td> </td>

        </tr>

        <tr>
          <td> </td>
          <td> </td>
        </tr>
        <tr>
          <td colspan="2"><br>
            <br></td>

        </tr>
      </tbody></table></td>

      <td valign="top"><table border="0" cellpadding="0" cellspacing="0" width="100%">
        <tbody><tr style="color: rgb(222, 222, 222);">
          <td height="14">Mensagem:</td>
        </tr>
        <tr>
          <td><textarea name="mensagem_form_contato" cols="40" rows="3" id="mensagem_form_contato" accept-charset="iso-8859-1,utf-8"></textarea></td>

        </tr>
        <tr>

          <td> </td>
        </tr>
        <tr>
          <td><input name="Submit" onclick="MM_validateForm('email_form_contato','','RisEmail','fone_form_contato','','R','mensagem_form_contato','','R');return document.MM_returnValue" value="Enviar" type="submit">
                <input name="limpar" id="limpar" value="Limpar" type="reset"></td>
        </tr>

      </tbody></table></td>
    </tr>
  </tbody></table><br><br><br></form></span></div></body>

 

Tentei outro formulário também mas dá o mesmo erro....

 

Devo mudar alguma coisa no meu provedor, na parte ASP.NET Configuration for Domain? Ou em outra parte configurável?

 

 

Obrigada,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seja bem-vinda ao Fórum Rosana.

 

Ao que tudo indica você está usando ASP Clássico. Para encontrarmos a solução, você deve habilitar no painel do seu domínio para exibir mensagens de erro, ao invés de ocultar. Faça isso também no seu navegador, em Ferramentas/ Opções da Internet/ Avançado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi, Hargon

 

"Seja bem-vinda ao Fórum Rosana."

Obrigada! :rolleyes:

 

No Firefox não encontrei a opção para exibir mensagens de erro.

No IE encontrei "Exibir notificação sobre cada erro de script." Mesmo assim aparece a página 500 Internal Server Error e nada mais...

 

Na página Asp.Net do meu domínio tem opção:

Custom Error Settings

Custom error mode com as opções: on/off/remote only

 

Custom errors

Status Code Redirect URL

Essas 2 opções aparecem em branco.

Não sei o que posso colocar nesse status code tampouco na url...

 

 

As outras opções do Asp.Net são:

Connection String Manager

Compilation and Debugging

Globalization Settings

Code Access Security

Session Settings

 

Preciso mudar algo nelas também?

 

 

Muito obrigada por sua ajuda,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode estar encontrando dificuldades para depurar erros ASP em um navegador. Isso ocorre porque, o padrão é uma opção que suprime erros de uma forma mais "amigável" de erro. Isto vem de volta para o usuário como um 500,100 Internal Server Error ASP (0147) e, em determinadas situações uma página 404 não pode ser encontrado erro, e não deixar o usuário com as informações correta, exceto para dizer-lhes que "A página não pode ser exibida".

 

Para contornar esse erro e obter erro real, vá em Ferramentas do IE / Internet menu Opções e na guia avançado, desmarque a opção "Mostrar mensagens de erro HTTP amigáveis".

Compartilhar este post


Link para o post
Compartilhar em outros sites

você esta testando ele localmente ou no host ?!?!?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rosana..

 

O erro 500, é um erro padrão do Internet Explorer.. com essa descrição, não temos como dizer onde seu código está errado..

 

Pode ser um erro no componente que você está utilizando.. ou um erro de programação deste componente..

Ou algum outro erro.. que só saberemos vendo o erro real..

 

Se está hospedado na internet, que tal dar o link pra gente ver ?

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

O suporte do meu provedor falou que utiliza o cdonts. Eu uso adiscon. Será que é isso? O que devo mudar no código?

 

A página com o código (preciso mudar muitas coisas nela ainda, ainda é um site de teste, certo?) é:

http://www.aiprock.com/mail.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rosana

 

Acabei de rodar o codigo aqui.. e veja só:

 

Server object error 'ASP 0177 : 800401f3'

 

Server.CreateObject Failed

 

/formulario.asp, line 6

 

800401f3

Ou seja..

 

Sua linha 6:

 

set o = Server.CreateObject("ADISCON.SimpleMail.1")

 

 

Está tentando criar um componente chamado ADISCON.. o qual não possui instalado em seu servidor.

 

Se eles possuem cdonts, você precisa adaptar seu codigo para o CDONTS.

 

Abraços

 

dark0

 

 

Editando..

 

Numa breve busca na net.. achei um tutorial que eu mesmo criei sobre CDONTS..(a muito tempo atras).. mas que deve servir de ajuda ainda..

 

Veja-o aqui:

Componentes de E-mail - CDONTS

Compartilhar este post


Link para o post
Compartilhar em outros sites

o dark0 esta recebendo este erro pois naun tem ocomponente

ADISCON.SimpleMail instalado

 

Server object error 'ASP 0177 : 800401f3'

 

Server.CreateObject Failed

verifique se eles tem para instalar o Adiscon,ou podem instalar, senaun, no forum existe, ótimos exemplos de como usar o CDOSYS

e você odesabilitou a opcaun "Mostrar mensagens de erro HTTP amigáveis".

 

' conectar à porta 25 do servidor SMTP.
Dim iMsg 
Dim iConf 
Dim Flds 
Dim strHTML

Const cdoSendUsingPort = 2

set iMsg = CreateObject("CDO.Message")
set iConf = CreateObject("CDO.Configuration")

Set Flds = iConf.Fields

' Defina a configuração CDOSYS para usar a porta 25 no servidor SMTP.

With Flds
	.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort
	'ToDo: indicar o nome ou o endereço IP do servidor SMTP remoto
	.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "<remote SMTP server>" 
	.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10  
	.Update
End With

' Mensagem HTML para construir o body.
strHTML = "<HTML>"
strHTML = strHTML & "<HEAD>"
strHTML = strHTML & "<BODY>"
strHTML = strHTML & "<b> Este é o teste mensagem HTML body</b></br>"
strHTML = strHTML & "</BODY>"
strHTML = strHTML & "</HTML>"

' Aplicar as configurações para a mensagem 
With iMsg
	Set .Configuration = iConf
	.To = "<email address>" 'ToDo: Digite um endereço de email válido.
	.From = "<email address>" 'ToDo: Digite um endereço de email válido.
	.Subject = "Este é um teste CDOSYS enviado via Porta 25 "
	.HTMLBody = strHTML
	.Send
End With

' limpar variáveis
Set iMsg = Nothing
Set iConf = Nothing
Set Flds = Nothing

MsgBox "email enviado com sucesso!"

O código cria uma mensagem formatada com HTML e a envia usando o serviço SMTP do computador remoto

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exato xan

 

O erro, eu peguei acessando o site que ela postou..

 

E como ela citou que eles possuem CDONTS instalado.. lhe dei um exemplo ;)

 

Abraços..

Compartilhar este post


Link para o post
Compartilhar em outros sites

você odesabilitou a opcaun "Mostrar mensagens de erro HTTP amigáveis"

Mas onde eu habilito isso? É no provedor?

No Firefox não encontrei nada... E no IE está habilitado.

 

Se eles possuem cdonts, você precisa adaptar seu codigo para o CDONTS.

Vi o seu tópico e tenho uma dúvida.

Se eu instalar o cdonts.dll no meu pc o formulário vai funcionar aqui. Mas e no das outras pessoas que não o tem instalado? Funcionará também? Pelo que entendi o dll ficará no pc, não é?

 

Agradeço pelos posts, vocês estão me ajudando muito!

Compartilhar este post


Link para o post
Compartilhar em outros sites

atualiza para CDOSYS

Compartilhar este post


Link para o post
Compartilhar em outros sites

depois que habilitou no IE

 

"Mostrar mensagens de erro HTTP amigáveis"

 

Você testou denovo com o IE e o erro permaneceu o mesmo? teste novamente no IE com isso habilitado

Compartilhar este post


Link para o post
Compartilhar em outros sites

depois que habilitou no IE

 

"Mostrar mensagens de erro HTTP amigáveis"

 

Você testou denovo com o IE e o erro permaneceu o mesmo? teste novamente no IE com isso habilitado

 

 

Após habilitar o no IE o erro é o mesmo:

Server object error 'ASP 0177 : 800401f3'

 

Server.CreateObject Failed

 

/formulario.asp, line 6

 

800401f3

 

Pelo que entendi tenho que mudar para o cdonts, com adiscon não vai dar. Vou tentar antes o aspx, que sabe dá certo...

 

Obrigada,

Compartilhar este post


Link para o post
Compartilhar em outros sites

você naun tem o objeto instalado, CDOSYS ou o adiscon , poste a linha...

 

Falha de Server.CreateObject(ID inválido)

Compartilhar este post


Link para o post
Compartilhar em outros sites

na verdade você precisa ver que componentes o seu servidor possui para desenvolver usando-o e evitar trabalho desnecessário

 

contate o servidor e faça este questionamento depois retorne aqui

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.