Just nu i M3-nätverket
Gå till innehåll

Formulär


quickfyre

Rekommendera Poster

Hejsan!

 

En undran till dem som kan detta bättre än mig. Jag har helt kört fast här.

 

Jag har gjort en hemsida, samt gjort ett formulär på en av sidorna där, i vanliga fall för att få detta att fungera smärtfritt med koden nedanför:

 

<FORM NAME="frm" METHOD=POST ACTION="/cgi-bin/formmail.pl>

 

Men nu visar det sig att jag inte kan länka till perlscriptet (.pl) då det inte finns där på deras system.

 

Jag fick tips från webhotellet att jag skulle lösa det med "CDO och ASPEmail".

 

Hur löser jag detta, några tips/idéer utan att börja om från början med deras CDO eller ASP.

 

Allt jag vill är att få iväg informationen från textfälten i ett mail.

 

Mvh

Länk till kommentar
Dela på andra webbplatser

Det är relativt enkelt att skriva ihop ett skript (asp/vbscript) som kan ersätta formmail.pl

Vilka fält (vad har de för namn/id) är det i formuläret som du vill skicka?

 

 

 

Länk till kommentar
Dela på andra webbplatser

Där är väldigt många fält, ett av dem är följande:

 

<input type="text" name="Namn" id="Namn" class="input_text" tabindex="1" size="40">

 

 

Hjälper detta dig något eller behöver du mer information?

 

Mvh

Länk till kommentar
Dela på andra webbplatser

  • Vad skall "ärendet" vara? Får besökaren ange det själv?
  • Vem skall avsändaren vara? Anger besökaren sin e-postadress eller är det samma för alla?
  • Finns det några obligatoriska fält som måste fyllas i innan mailet skickas?

Länk till kommentar
Dela på andra webbplatser

Okej, jag bifogar hela koden.

 

Fälten är frivilliga i denna koden, allt som krävs är att Skicka-knappen mailar all eventuell information i eventuellt ifyllda textfält.

 

I vanliga fall funkar detta, men nu ska detta göras utan formmail.pl.

<FORM NAME="frm" METHOD=POST ACTION="../cgi-bin/formmail.pl">
<input type="hidden" name="recipient" value="min@epost.com">
Ditt namn:<br>
<input type="text" name="Namn" id="Namn" class="input_text" tabindex="1" size="40">
<p>
Din e-postadress:<br>
<input type="text" name="Epost" id="Epost" class="input_text" tabindex="2" size="40">
<p>
Ditt meddelande:<br>
<textarea name="Meddelande" id="Meddelande" rows="6" cols="45" class="input_text" tabindex="3"></textarea>
<p>

<input type=hidden name="redirect" value="../tack.html">
<input type=hidden name="email" value="min@epost.com">
<p>
<input type="submit" value="Skicka meddelande" tabindex="4" class="button" name="Verifiera" id="Verifiera">
</form> 

Länk till kommentar
Dela på andra webbplatser

Vilket webbhotell använder du?

(behöver veta vilka inställningar som skall göras för att skicka mha asp.)

 

Inga obligatoriska fält?

Skall det verkligen gå att skicka ett helt tomt mail, vad är syftet med det?

Länk till kommentar
Dela på andra webbplatser

Hemsidan kommer att ligga http://www.nyttodata.se.

 

Spärrar för fält var planen att bygga in senare när jag fått ordning på den grundläggande funktionen. Har en liten spärr-anordning, men bifogade inte den i koden, det är dock bara att man måste godkänna med en checkbox för att aktivera Skicka-knappen.

 

Mvh

Länk till kommentar
Dela på andra webbplatser

Ok, det säger dock inte mycket om de tekniska förutsättningarna.

 

Bifogar två filer (i en zip-fil) som du kan lägga upp på servern för att testa.

 

217639.zip

 

sendmail.asp är skriptet som tar emot formulärdatat och skickar mailet.

Du måste ange dina e-postserverinställningar (myMailServer, myUsername och myPassword) samt avsändar- och mottagaradress (strMailSender, strMailRecipient) för mailet.

 

mailform.asp är formulärsidan. Surfa till den och fyll i formuläret för att skicka mail.

 

Vi börjar med att se till att det fungerar så kan vi titta på ev. anpassningar samt hur du skall få in det i övriga webbplatsen sen.

Länk till kommentar
Dela på andra webbplatser

Hejsan och tack för dem bifogade filerna, jag har hittills bara gått igenom dem, och det ser bra ut.

 

Dock har jag noterat att jag kan inte använda mitt gamla formulär om jag ska använda denna koden, mitt formulär jag gjort består av kanske 30 textfält, checkboxar och massa mer, skriva om det för att använda en annan kodform blir ju till att göra en helt ny hemsida, bara för ett formulär.

 

Men som sagt, det du givit mig verkar vara den enda lösning jag känner till. Jag ska utvärdera den ordentligt snart.

 

Jag skriver här snart igen, och du ska ha ett stort tack på förhand för att du hjälper mig!

 

Mvh

Länk till kommentar
Dela på andra webbplatser

Dock har jag noterat att jag kan inte använda mitt gamla formulär om jag ska använda denna koden, mitt formulär jag gjort består av kanske 30 textfält, checkboxar och massa mer, skriva om det för att använda en annan kodform blir ju till att göra en helt ny hemsida, bara för ett formulär.

Nejdå, inte alls.

Du kan ju styra om formulärets action till sendmail.asp sen får vi anpassa sendmail.asp lite för att det skall bli riktigt bra.

Länk till kommentar
Dela på andra webbplatser

Jag har idag skrivit om formuläret med din hjälp. Allt fungerar som det ska, du ska ha ett stort tack - hade nog inte fixat det utan din hjälp.

 

Tack än en gång.

 

Mvh Hans

Länk till kommentar
Dela på andra webbplatser

  • 3 months later...

Jag kapar denna tråden lite om det är ok.

 

Jag gjorde om det scriptet du gjorde för att få en password recovery.

Men jag får det inet att fungera. Detta är min kod:

 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!-- #include file="connection.asp" -->
<%
'----------------------| INSTÄLLNINGAR |-----------------------------
'Fran formularet
strUserMail = Request.Form("rMail")
strRequestIP = request.serverVariables("REMOTE_ADDR")

' Anpassa dessa att motsvara din mailleverantör
myMailServer = "mailout1.surf-town.net"
myUsername = ""
myPassword = ""
intServerPort = 25

' Namn på filen med forstasidan
strStartPage = "default.asp"

' Namn på filen med valideringen
strValidPage = "validate_password.asp"

' Standardavsändare av mailet
strMailSender = "NoReply <NoReply>"

' Standardärende för mailets
strMailSubject = "Skapa Nytt Lösenord"

' E-Postadress till mottagaren av formuläret
strMailRecipient = strUserMail

' Obligatoriska formulärfält (namnen avgränsas med kommatecken)
'strRequiredFields = "Name,Message"

'--------------------------------------------------------------------

IF Request("action") <> "doRecover" THEN
' BESÖKAREN KOM EJ FRÅN FORMULÄRET PÅ RÄTT SÄTT
' Skickar tillbaks till formulärsidan
strGoToPage = strStartPage&"?sendmail=failed"
ELSE    
   strDate = now()
   strValidCode = XXXXX

   strSQL = "SELECT 1 FROM users WHERE pMail = '"& strUserMail &"'"
set rs = connect.execute(strSQL)

   IF NOT rs.eof THEN
       strUserAlias = rs("pAlias")
       strUserID = rs("pID")
   ELSE
       strGoToPage = strFormPage&"?Mail=NoUser"
   END IF

   strSQL = "SELECT 1 FROM recover_password WHERE pUID = '"& strUserID &"'"
set rs = connect.execute(strSQL)

   IF NOT rs.EOF THEN
       connect.execute("DELETE FROM recover_password WHERE pUID = '"& strUserID &"'")    
   END IF

       connect.execute("INSERT INTO recover_password SET pUID = '"& strUserID &"', pValidCode = '"& strValidCode &"', pRequestIP = '"& strRequestIP &"', pDate = '"& strDate &"'")    


   Connect.Close
   Set Connect = Nothing



	' SKAPA MAILETS INNEHÅLL
	strMailBody = ""&_
		"Du har begärt att f&aoml; ett nytt lösenord!"&vbCrLf&_
		"=========================================="&vbCrLf&_
		"Klicka p&aoml; länken för att f&aoml; ett nytt lösenord."&vbCrLf&_
           "<a href='"&strValidPage&"?validate="&strValidCode&"'>"&strValidPage&"?validate="&strValidCode&"</a>"&vbCrLf&_
		"=========================================="&vbCrLf&_
           "Om du inte har begärt nytt lösenord, kan du strunta i detta mail."&vbCrLf&_
           "MVH"&vbCrLf

	'SKAPAR HTML-FORMATERAT INNEHÅLL
	strHTMLbody=Replace(strMailBody, vbCrLf, "<br>")
	strHTMLbody=Replace(strHTMLbody, " ", " ")   

	' SKAPAR MAILET MED INSTÄLLNINGAR OCH SKICKAR DET
	cdoAnonymous = 0
	cdoBasic = 1
	cdoNTLM = 2 
	cdoSendUsingPickup = 1
	cdoSendUsingPort = 2
	SET objMail = server.CreateObject("CDO.message")
	SET objConf = server.CreateObject("CDO.configuration")
	objMail.TextBody = strMailBody
	objMail.HTMLBody = strHTMLbody
	objMail.From = strMailSender
	objMail.Sender = strMailSender
	objMail.Subject = strMailSubject
	objMail.To = strMailRecipient
	objConf.Fields.item("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort
	objConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = myMailServer
	objConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = intServerPort
	objConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic		
	objMail.Configuration = objConf
	objMail.Configuration.fields.update
	On error resume next
	objMail.Send

	SET objMail=nothing
	SET objConf=nothing

	' LITEN FELHANTERING
	IF Err.Number <> 0 THEN
		strGoToPage = strStartPage&"?sendmail=failed&error=unknown"
	ELSE
		strGoToPage = strStartPage&"?sendmail=completed"
	END IF


END IF

' SKICKAR ANVÄNDAREN VIDARE
' beroende av vad som hänt ovan
Response.Redirect(strGoToPage)
%>

 

Jag får svaret: sendmail=failed&error=unknown som är : Err.Number <> 0

 

Vad gör jag för fel?

Länk till kommentar
Dela på andra webbplatser

Dieselmannen

Har du en e-postadress i "strMailSender"?

Du kan göra en ..

Response.write(Err.msg)
Response.end

 

För att se felmeddelandet

Länk till kommentar
Dela på andra webbplatser

Har inte testat men är nästan helt säker på att strMailSender måste innehålla en "giltig" e-postadress (dvs. epostadressen måste vara rätt formaterad men behöver inte gå till någon befintlig mottagare) typ noreply@noreply.net

 

 

 

Länk till kommentar
Dela på andra webbplatser

Stämmer bra... Den måste innehålla giltig epost-format.

 

dock fick jag aldrig response.write(err.msg) att fungera. Men det löste sig ju ändå.

 

Tack för hjälpen! :thumbsup:

Länk till kommentar
Dela på andra webbplatser

  • 2 veckor senare...

ÅÄÖ fungerar inte för mig.

 

Har även försökt att skriva ä osv för att få det att fungera, men icke.

 

Hur löser man detta?

Länk till kommentar
Dela på andra webbplatser

  • 1 year later...

Hej,

 

väldigt trevlig sida man hamnat på då man letar hjälp!

 

Denna tråden är ganska gammal men den innehåller den hjälp jag behöver iallafall :) .

 

Jag arbetar på Scania och behöver skapa ett beställningsformulär då dom har bytt till 2008 servrar nu och då stödjer den nya servern inte CFG skript som vi använder idag.

 

Funktionen jag behöver få och funka är att beställaren fyller i information på det han/hon vill beställa och sedan klickar på en "submit" knapp. Då ska det skickas ett mail till angiven e-post adress med all information som är ifylld.

 

Tidigare i denna tråd står det:

sendmail.asp är skriptet som tar emot formulärdatat och skickar mailet.

Du måste ange dina e-postserverinställningar (myMailServer, myUsername och myPassword) samt avsändar- och mottagaradress (strMailSender, strMailRecipient) för mailet.

 

mailform.asp är formulärsidan. Surfa till den och fyll i formuläret för att skicka mail.

 

 

Det står att jag ska ange mina e-postserverinställningar (myMailServer, myUsername och myPassword), vilka uppgifter är det? Måste jag fråga serveransvarig efter dessa uppgifter eller för att få detta att fungera?

 

Väldigt tacksam för all hjälp jag kan få med detta då dom kommer att stänga ner den gamla servern om ett par månader och jag har en hel del hemsidor och formulär som jag måste få och funka innan dess.

 

Med vänliga hälsningar

 

Mattias

Länk till kommentar
Dela på andra webbplatser

ja, det måste du nog. Företagsservrar brukar vara rätt låsta, så minst smtp-adress (myMailServer) (alternativt IP-nummer) behöver du.

Länk till kommentar
Dela på andra webbplatser

  • 2 veckor senare...

Hej,

 

Tack för all hjälp med detta, nu fungerar scriptet nästan helt felfritt!

 

Det som jag hoppas att ni kan svara på härnäst gäller sorteringen i det mail jag får skickat till min E-post med ifylld information. Det verkar sortera fälten rätt slumpmässigt och jag vet inte hur jag ska få alla fält och komma i samma ordning som i formuläret.

 

Ex:

Beställning behörighet till MONA

==========================================

101:KOSTNADSSTÄLLEANSVARIG: 1

104:BESTÄLLARE: 1

107:BYGGNAD: 1

102:KOSTNADSSTÄLLE: 1

109:TELEFON: 1

103:ANSVARIG TELEFON: 1

108:NODNUMMER: 1

105:SSSID: 1

106:AVDELNING: 1

16:SAMMASOM: Ange SSSID här

==========================================

 

Som ni ser så har jag provat alla möjliga sätt för att få sorteringen och hamna rätt. Det går bra med nummer 1 till 9, men efter det (10,11,12 osv.) så blandas det hursom, och jag har inte den blekaste vad det är som påverkar detta?

 

Sen undrar jag om jag kan påverka det färdiga mailet så att det genereras som t.ex följande exempel oavsett om sorteringen fungerar eller inte:

 

 

 

Beställning behörighet till MONA

==========================================

Kostnadsställeansvarig

101:KOSTNADSSTÄLLEANSVARIG: 1

102:KOSTNADSSTÄLLE: 1

103:ANSVARIG TELEFON: 1

 

Användare

104:BESTÄLLARE: 1

105:SSSID: 1

106:AVDELNING: 1

107:BYGGNAD: 1

108:NODNUMMER: 1

109:TELEFON: 1

 

Samma som användare

16:SAMMASOM: Ange SSSID här

==========================================

 

Jag har sorterat texten manuellt!

Scriptet lägger ju som sagt in all information från de ifyllda fälten med ett kommando "strFormFields&_"

 

Kan man dela upp detta så att man kan lägga in information som i mitt exempel ovan? Dvs: härleda till några fält och sedan lägga in en egen text och sedan ta fler/resten av de ifyllda fälten.

 

Tacksam om jag kan få hjälp och lösa detta :thumbsup:

 

Annars kanske ni vet någon bra sida att ladda ner andra färdiga script oxå som jag kan använda mig av?

 

 

Tacksam för all hjälp jag kan få.

 

Med vänliga hälsningar

 

Mattias

 

Länk till kommentar
Dela på andra webbplatser

Ja, skriptet lägger ihop allt i den ordning som det råkar komma i (fråga mig inte hur det avgörs).

 

Om du vill så kan du ju bryta ut den delen ur loopen (FOR Each item IN Request.Form) och bygga upp mailet själv. Men då måste du hantera alla fält, och använda det namn som resp. fält har i formuläret.

 

Typ:

strMailBody = ""&_
  "ANGIVNA FÄLT"&vbCrLf&_
  "=========================================="&vbCrLf&_
  "KOSTNADSSTÄLLEANSVARIG: "&Request.Form("kostnstansv")&vbCrLf&_
  "KOSTNADSSTÄLLE: "&Request.Form("kostnst")&vbCrLf&_
' osv...
  "=========================================="&vbCrLf

 

 

Länk till kommentar
Dela på andra webbplatser

Oj snabba svar på denna sida, sånt gillar vi :thumbsup: .

 

Kanon det ska provas månad morgon så fort man kommer till kontoret!

 

Tackar för all hjälp, det uppskattas väldigt mycket!

 

 

Trevlig helg

 

 

Mvh

 

Mattias

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...