25. juli 2004 - 11:53Der er
37 kommentarer og 1 løsning
Validerings problemer på web10´s server
Hej jeg har lavet en emailformular, hvor jeg har lavet noget validering på email-feltet (skal indtastes, og tjekker om rigtigt format). Det virker fint når jeg køre det på min computer men på web10´s server virker det ikke, jeg får følgende fejlmeddellelse:
The server rejected the sender address. The server response was: 553 5.5.4 <gfg>... Domain name required for sender address gfg Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Runtime.InteropServices.COMException: The server rejected the sender address. The server response was: 553 5.5.4 <gfg>... Domain name required for sender address gfg
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Jeg får følgende fejlmeddelelse, når jeg ikke indtaster noget i email-feltet:
At least one of the From or Sender fields is required, and neither was found. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Runtime.InteropServices.COMException: At least one of the From or Sender fields is required, and neither was found.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Som du kan se af koden, så har jeg lavet valideringen i designdelen i visual studio net, her er koden:
Imports System.Web.Mail
Public Class Kontakt Inherits System.Web.UI.Page Protected WithEvents cboOmraade As System.Web.UI.WebControls.DropDownList Protected WithEvents txtNavn As System.Web.UI.WebControls.TextBox Protected WithEvents txtFirmanavn As System.Web.UI.WebControls.TextBox Protected WithEvents txtEmail As System.Web.UI.WebControls.TextBox Protected WithEvents txtTlf As System.Web.UI.WebControls.TextBox Protected WithEvents txtBesked As System.Web.UI.WebControls.TextBox Protected WithEvents cmdSend As System.Web.UI.WebControls.Button Protected WithEvents RegularExpressionValidator1 As System.Web.UI.WebControls.RegularExpressionValidator Protected WithEvents RequiredFieldValidator1 As System.Web.UI.WebControls.RequiredFieldValidator Protected WithEvents cmdNulstil As System.Web.UI.WebControls.Button
#Region " Web Form Designer Generated Code "
'This call is required by the Web Form Designer. <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init 'CODEGEN: This method call is required by the Web Form Designer 'Do not modify it using the code editor. InitializeComponent() End Sub
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub cmdSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSend.Click SmtpMail.SmtpServer = "smtpserver.get2net.dk" SmtpMail.Send(txtEmail.Text, "janl@tele2adsl.dk", "Spg. ang. " + cboOmraade.SelectedItem.Value, "Evt. firmanavn: " + txtFirmanavn.Text + vbLf + "Navn: " + txtNavn.Text + vbLf + "Tlf: " + txtTlf.Text + vbLf + vbLf + "Besked: " + vbLf + txtBesked.Text) Response.Redirect("Tak.htm") End Sub
Private Sub cmdNulstil_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdNulstil.Click cboOmraade.SelectedIndex = 0 txtNavn.Text = "" txtFirmanavn.Text = "" txtEmail.Text = "" txtTlf.Text = "" txtBesked.Text = ""
nej det ved jeg godt, men det virker fint, bare ikke når jeg taster forkert, den skulle jo gerne vise en besked med at email-adressen mangler eller at email-adressen er af forkert format, men det sker ikke.
OK - jeg har tidligere her på exp set at andre har haft problemer med at aspnet_client biblioteket på web10. Iøvrigt vil det være enm god idé at lave et If Page.IsValid() tjek inden du sender mailen afsted
Jeps.. Men det er lettere at sætte op clientside.. Hvis man kan leve med det.. Jeg har bøvlet en del med det, men foretrækker også serverside. Ihvert fald nu hvor jeg ved hvordan det gøres..
Når der bruges en RequiredFieldValidator (for eksemplets skyld) vil resultatet være følgende.
Når brugeren forsøger at fremkalde et postback (f.eks. ved at trykke på en knap), vil der - med mindre du specifikt har angivet på den aktuelle knap, at den ikke skal medføre validering, eller browseren ikke understøtter det - blive kørt en client-side validering.
Hvis valideringen går godt, og resultatet er positivt, vil der ske et postback - ellers ikke.
På serversiden vil valideringen altid blive udført (med mindre du har disabled din validator), og validatoren vil efter et postback optræde med den angivne fejltekst, hvis der ikke har været en indtastning i det tekstfelt (eller hvad det nu er) som validatoren er angivet til at validere.
Det der kræves for at det kan fungere client-siden er, at de nødvendige scripts, der ved en standard opsætning vil være placeret i kataloget aspnet_client, i IIS-ens rodbibliotek.
snepnet som du kan se af koden har jeg de der protected.... og jeg har sat dem til EnableClientScript=True og jeg har også lagt mappen aspnet_client ud på min server, men det giver stadig de fejlmeddelelser jeg har skrevet for oven. Med hensyn til om valideringerne skal køre på client eller serversiden, så blev jeg lidt forviret af det i har skrevet ovenstående
Gider du poste den præcise fejlmeddelelse, som den ser ud når du trykker på knappen nu, også skrive din kode som den ser ud lige pt... Altså den handler hvor de sender mailen.
Byg eventuelt mailen op med en MailMessage istedet... Så bliver det lidt mere overskueligt - sådan her :
Koden ser stadig ud som der står beskrevet ovenfor, men du kan jo evt. selv prøve min mailformular: http://www.zaz.dk/kontakt.aspx så kan du jo se de fejlmeddelelser den kommer med når man ikke taster noget i email-feltet eller taster en forkert emailadresseformat.
Det ligner da mit en del, jeg går ud fra at det er det jeg også har gjort, men det virker ikke, og jeg kan forstå at der er andre der har fået det til at virke på web10
har du prøvet at lægge det direktory du har liggende i inetpub/wwwroot der hedder aspnet_client ud på serveren ? du skal bare lægge det i roden af dit webdir. Jeg tror ikke filerne kan findes, hvilet scripet ikke fejl på, hvilket det gør hos mig.
At du angiver noget i din aspx-fil har ikke noget at gøre med hvorvidt det eksekverer client-side eller serverside, og i det du har skrevet er det tværtimod direkte angivet at det skal køre på serveren ved runat="server".
Resultatet af at du skriver det i din aspx-kode er det samme som hvis du havde indsat det programmatisk ved at skrive det i din code-behind som f.eks.
TextBox tb = new TextBox(); RequiredFieldValidator rfv = new RequiredFieldValidator(); rfv.ErrorMessage = "Felt er ikke udfyldt";
Men hvis du prøver at åbne den i browseren (vil normalt medføre at du får mulighed for at åbne den, eller gemme den), kommer der bare en fejl om at den ikke findes.
Kan du ikke lige checke dit web, om filerne ligger sådan, eller om der er et eller andet der er smuttet i den forbindelse.
den sidste mappe med scriptfilerne hedder 1_0_3705_0 & 1_0_3705_288 hos mig, jeg ved ikke om det har noget at sige???
Hvor kan du se at der henvises til: /aspnet_client/system_web/1_1_4322/WebUIValidation.js for så skal det vel bare rettes, da stien så ikke passer helt???
det har jeg godt nok lagt mærke til, når jeg køre windows update, så vil den ligge en dansk version ind af frameworket, jeg er bange for det vil give problemer, den jeg har nu er engelsk??
Og som du kan læse så er der ingen problemer i af have begge versioner installeret på din maskine - faktisk så har jeg selv installeret 4 forskellige .NET frameworks på min maskine.....
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.