webForumDet fria alternativet

Variabel som inte hänger med till Jmailscript

ASP

13 svar · 346 visningar · startad av MickeA.com

Medlem sedan feb. 20034 441 inlägg
Frågan#1

Tja!
Har gjort en grej för anmälan till nyhetsbrev. Det hela är väldigt simpelt, man fyller i sin mailadress i en ruta och trycker på "Skicka". Ett mail skickas då iväg till en adress där den emailadress man fyllt i visas.

Problemet är bara att det man fyllt i aldrig kommer med i mailet.
Det är inget fel på formuläret, för jag kan få ut värdet av textrutan (mailaderss man angav) m.h.a en alert(""); i javascript.

Även fast jag skrivet ett fast värde på variablen i aspscriptet, så skickas det inte med i mailet, det hela är väldigt kosntigt, för jag hittar inte några fel i koden:

Set msg = Server.CreateObject("Jmail.Message")

	strMail = Request.Form("strMail")
	
	'strMail = "Blahh"
	msg.From = "NoReply@MickeA.com"
	msg.Subject = "Nyhetsbrev!"

'	msg.Addrecipient "Info@Allinmind.com"
	msg.Addrecipient "Info@MickeA.com"
	'sylver.webhotellet.net
	
	Set Obj = Server.CreateObject("Scripting.FileSystemObject")
				Set objFile = Obj.OpenTextFile(Server.MapPath("inc\mail_doc_head.inc"))
					txtHeader = objFile.ReadAll
						objFile.Close
	Set Obj = Nothing
	
	msg.Body = txtHeader & VbCrLf & strMail & VbCrLf & VbCrLf & "Den här tjänsten tillhandahålles av MickeA.com, det går ej att besvara detta mail!"

If Not msg.Send("smtp.bredband.net") Then %>
	<table cellpadding="0" cellspacing="0" style="width: 180px; height: 127px;">
	<tr>
	<td class="text" style="text-align: center; vertical-align: middle; width: 180px; font-size: 7pt;">Ett fel uppstod.</td>
	</tr>
	</table>
<%
Else
%>
<table cellpadding="0" cellspacing="0" style="background-image: url('pics/nLetter.gif'); width: 180px; height: 127px;">
<tr>
<td class="text" style="padding-left: 28px; padding-top: 35px;">
<table cellpadding="0" cellspacing="0">
<tr>
<td class="text" style="height: 25px;"><img src="pics/nl2.gif" style="border 0px;" alt=""></td>
</tr>
</table>
</td>
</tr>
</table>
<%
End If

Är det någon som kan hitta fel i koden ovan och hjälpa mig med det här?`

Tack!

Medlem sedan juni 200032 967 inlägg
#2

Kommer alltså allt utom innehållet i strMail med i mailet?

Medlem sedan feb. 20034 441 inlägg
#3

@nders skrev:

Kommer alltså allt utom innehållet i strMail med i mailet?

Precis, allt utom värdet av strMail. Jag provade att skicka med CDONTS istället och bytte Request.Form till Request.Querystring och skickade med en adress i adressfältet.

Då kommer allt med och funkar precis som det ska. Det konstiga är bara att det inte kan bero på stavfel el. liknande, eftersom "rätt" värde dyker upp vid en alert.

Kan det vara en bugg i jMail komponenten? Jag vet, låter väldigt långsökt, för jag har provat samma script (med samma resultat) på flera servrar.

Medlem sedan juni 200032 967 inlägg
#4

Om du istället för:

msg.Body = txtHeader & VbCrLf & strMail & VbCrLf & VbCrLf & "Den här tjänsten tillhandahålles av MickeA.com, det går ej att besvara detta mail!"

Skriver:

strTmp = txtHeader & VbCrLf & strMail & VbCrLf & VbCrLf & "Den här tjänsten tillhandahålles av MickeA.com, det går ej att besvara detta mail!"
msg.Body = strTmp

, blir det samma fel då?

Medlem sedan feb. 20034 441 inlägg
#5

@nders skrev:

...blir det samma fel då?

Hmm, vad skulle det spela för roll? Är det något spec. som blir annorlunda då?

För felet *bör* inte ligga där, i.o.m att allt i strängen hänger med utom strMail. Provade att ersätta strMail med Request.Form("strMail") och då blev det samma resultat, dvs. ingenting alls.

Medlem sedan juni 200032 967 inlägg
#6

Hmm, vad skulle det spela för roll? Är det något spec. som blir annorlunda då?

Egentligen bör det inte spela någon roll. Men å andra sidan så är det mycket som är konstigt, så varför inte testa?

Medlem sedan feb. 20034 441 inlägg
#7

Hmm, nu börjar jag bli sne på det här, nu är jag 100% säker på att det inte beror på jMail.

Jag har nämligen tänkt om lite, så istället så sparar jag alla emailadresser i en accessdatabas, så att man i ett senare skede kan skapa en adresslista vid varje utskick.

Såhär har jag gjort:

<!-- NYHETSBREV -->
<%
If Request.Querystring("sP") = "sMail" Then
	
	db()
	strMail = FixSQL(Request.Form("strMail"))
	Set oRec = oConn.Execute("INSERT INTO tbl_mail (strMail) VALUES('" & strMail & "')")
	
%>
<table cellpadding="0" cellspacing="0" style="background-image: url('pics/nLetter.gif'); width: 180px; height: 127px;">
<tr>
<td class="text" style="padding-left: 28px; padding-top: 35px;">
<table cellpadding="0" cellspacing="0">
<tr>
<td class="text" style="height: 25px;"><img src="pics/nl2.gif" style="border 0px;" alt=""></td>
</tr>
</table>
</td>
</tr>
</table>
<%
Else
%>
<table cellpadding="0" cellspacing="0" style="background-image: url('pics/nLetter.gif'); width: 180px; height: 127px;">
<tr>
<td class="text" style="padding-left: 28px; padding-top: 35px;">
<form name="frm_nl" action="default.asp?mP=home&sP=sMail" method="post" style="margin: 0px;" onSubmit="return frmNL();">
<table cellpadding="0" cellspacing="0">
<tr>
<td class="text" style="height: 25px;"><img src="pics/nl1.gif" style="border 0px;" alt=""></td>
</tr>
<tr>
<td class="text" style="padding-top: 5px; padding-left: 2px;"><input type="text" name="strMail" value="Din e-mailadress" class="txtNL"></td>
</tr>
<tr>
<td class="text" style="text-align: right; padding-top: 5px;"><a href="#" onClick="document.frm_nl.submit(); return false;" class="grLink">Skicka »</a></td>
</tr>
</table>
</form>
</td>
</tr>
</table>
<%
End If
%>
<!-- // NYHETSBREV -->

Problemet nu är bara att det skapas en tom post i databasen, strMail innehåller alltså inte värdet nu heller.

Formuläret ser ni i koden ovan och när formuläret postas har jag följande javascript för att validera formuläret:

<!--
function frmNL(){
	var f = document.frm_nl;

	if(f.strMail.value == "" || f.strMail.value == "Din e-mailadress"){
		alert("Du måste fylla i en mailadress");
		return false;
	}
	//alert(f.strMail.value);
//	f.submit();
}
//-->

Nu är alltså alert(""); i koden ovan bortkommenterat, men kör jag med den så visas den adress man matat in där, alltså, såhär långt inget fel.
Men vad som händer sen och vad det kan bero på är oklart.

Medlem sedan juni 200032 967 inlägg
#8

Jag vet inte vad som kan vara fel.
När jag testar koden hos mig fungerar det (förutom javascriptet, det verkar inte köras).

mvh

Medlem sedan feb. 20034 441 inlägg
#9

@nders skrev:

När jag testar koden hos mig fungerar det...

Då kanske jag bör starta om IIS hos mig? Hmm, det konstiga är ju att jag får samma grej när jag lägger upp siten på webhotellet.net

Medlem sedan juni 200032 967 inlägg
#10

När saker och ting inte funkar som det borde, då brukar jag klippa ut minsta möjliga och se när saker och ting pajar. Börja så här:

<form name="frm_nl" action="?mP=home&sP=sMail" method="post">
<input type="text" name="strMail" value="Din e-mailadress" class="txtNL">
<a href="#" onClick="document.frm_nl.submit(); return false;" class="grLink">Skicka »</a>
</form>

Kontrollera att du får med det du borde. Lägg sedan på javascript-kollen vid submit. Fungerar det fortfarande? Osv, osv.

Medlem sedan feb. 20034 441 inlägg
#11

@nders skrev:

När jag testar koden hos mig fungerar det...

Men allt funkar ju här med, bara det att inget sparas i db'n.

MickeA.com skrev:

Då kanske jag bör starta om IIS hos mig?

Hjälpte inte ett dugg, fortf. samma grej. Ahh, snart blir jag galen på det här.

Medlem sedan feb. 20034 441 inlägg
#12

@nders skrev:

Kontrollera att du får med det du borde. Lägg sedan på javascript-kollen vid submit. Fungerar det fortfarande? Osv, osv.

Men strMail och dess värde får jag med i javascriptet, kör jag en alert(); på strMail visas det värde jag matat in i fältet.
Om jag därimot kör en Response.Write(Request.Form("strMail")) så skrivs inget alls ut, det är alltså tomt.
Det är det som är det sjuka, i.o.m att värdet visas m.h.a javascript försvinner det strax därefter.

Medlem sedan juli 2003465 inlägg
#13

Testa Request("strMail") istället för Request.Form("strMail")
Jag kanske är ute och cycklar har inte kollat så noga på koden...

Medlem sedan feb. 20034 441 inlägg
#14

Jag ändrade 'action' i formuläret, från "default.asp?mP=home" till "?mP=home" och då började det plötsligt funka.

Hmm, undra om det här kan ha med en bugg i IE att göra, eller vad det nu kan vara, har aldrig ngnsin varit med om något liknande, huvudsaken är iaf. att det funkar nu.

Tack @nders för alla tips och idéer!

255 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)