WN

WN (https://www.wn.se/forum/index.php)
-   Klientsidans teknologier, design och grafik (https://www.wn.se/forum/forumdisplay.php?f=12)
-   -   Problem med formulär (https://www.wn.se/forum/showthread.php?t=34521)

VideoBengt 2009-01-17 12:57

Håller på med en föreningssida där jag bl.a. skall kunna göra medlemsansökan via ett formulär.

Har skapat ett formulär som börjar så här:
<form method=post action="mailto:[email protected]?subject=Medlem sansökan till föreningen" enctype="text/plain" name="emailform" onSubmit="return checkFields()">

efter alla formulärfält kommer

<pre><input type=submit value="Skicka ansökan!"></pre>

När jag provar i IE7 så skickas mitt formulär efter att jag kvitterat i två rutor.
När jag provar i FF3 så öppnas ett e-postfönster, alla info finns där och jag får trycka på skicka.
När jag provar i Opera 9 så öppnas ett e-postfönster med adress och ämnesrad ifyllt, i övrigt tomt.
Detta sista händer även med IE (troligen6) har jag fått veta.
Har inte kunat kolla med fler webläsare

Vad är fel?

Finns det någon bättre lösning för att skapa ett formulär för, som i det här fallet, göra en medlemsansökan på hemsidan?

gsoc 2009-01-17 15:47

Använd php och mail() ?

Bara bökigt med sidor som använder mailto:

kw_wasabi 2009-01-17 16:59

Det är bäst att undvika mailto: som gsoc skriver. Genom att använda ett PHP- eller ASP mailscript så kan du låta besökarna skicka mail via din server för utgående e-post (SMTP-server).

Använder du mailto: så krävs det att besökarna har angett ett mailprogram (t.ex Outlook) som standard i sin webbläsare. Samt har ett e-postkonto och serverinställningar registrerade i programmet. De besökare som använder Hotmail och Gmail etc har sällan konfiguerat sin Outlook.

Anledningen till att det funkar för dig i IE7 är kanske att du just har angett ett standardmailprogram i den webbläsaren.

VideoBengt 2009-01-17 20:12

Skall snarast skrota mailto-varianten!

Tips på lämpligt script mottages tacksamt.
Det finns ju "hur mycket som helst" när man söker på Google.

Hemsidan bor på one.com så jag kan använda ASP - PHP5 - MySQL för detta.

allstars 2009-01-17 20:37

kolla hos one.com om de har exempelfunktionalitet

VideoBengt 2009-01-17 20:49

Där finns ngt som heter: "FormMail.pl"

Förmodar att det använder det webhotellets SMTP-server, hittar inget mailto i scriptet?

I så fall testar jag att bygga vidare på det.

kw_wasabi 2009-01-17 21:02

Här är ett ASP-script jag tycker funkar bra. Det kräver inte speciellt mycket ASP-kunskaper, det är mest bara att fylla i rätt uppgifter för mailserver etc. Själva formuläret kan behöva snyggas till lite.


formular.asp
Kod:

<form method="post" action="skicka.asp"> 
<table border="0" align="center" id="text">
<tr>
 <td colspan="2"><font size="2" face="Verdana"><b><font size="1"></font></b></font></td>
</tr>
<%
IF Len(Session("kontakta_mig")) <> 0 then
If Len(Session("falt")) <> 0 then
        uppg = Split(Session("falt"),"$|$")
        mess = uppg(0)
        namn = uppg(2)
        epost = uppg(1)
        hemsida = uppg(3)
        Session("falt") = ""
End If
felet = Session("kontakta_mig")
Session("kontakta_mig") = ""
End If
IF len(felet) <> 0 then
%>
<tr>
 <td colspan="2">
        <%
Response.Write "<i><font face='verdana' size='1'>" & felet & "</font></i>"
%>
 </td>
</tr>
<%
END IF%>
<tr>
 <td colspan="2">Meddelande:<font color="#FF0000">*</font></td>
</tr>
<tr>
 <td colspan="2"><textarea name="meddelande" rows="8" cols="58" style="font-family: verdana; background: #C8C8C8; font-size: 10px; border: #000000 1px solid"><%=mess%></textarea></td>
</tr>
<tr>
 <td>Ditt namn: <font color="#FF0000">*</font></td>
 <td><input type="text" size="35" name="namn" value="<%=namn%>" style="font-family: verdana; background: #C8C8C8; font-size: 10px; border: #000000 1px solid"></td>
</tr>
<tr>
 <td>E-Mail: <font color="#FF0000">*</font></td>
 <td><input type="text" size="35" name="epost" value="<%=epost%>" style="font-family: verdana; background: #C8C8C8; font-size: 10px; border: #000000 1px solid"></td>
</tr>
<tr>
 <td>Hemsida: </td>
 <td><input type="text" size="35" name="hemsida" value="<%=hemsida%>" style="font-family: verdana; background: #C8C8C8; font-size: 10px; border: #000000 1px solid"></td>
</tr>
<tr>
 <td>Spamskydd: <font color="#FF0000">*</font></td>
 <td><input type="checkbox" value="haha" name="skydd" style="height: 10px; width: 10px;"> <font size="1" face="Verdana">(kryssa i rutan)</font></td>
</tr>
<tr>
 <td></td>
 <td> <input type="submit" name="submit" value="Skicka" style="font-family: verdana; font-size: 10px; border: #000000 1px solid">
 </td>
</tr>
</table>
</form>

skicka.asp
Kod:

<%
' På denna sida finns koden som gör att dina besökares meddelanden skickas till din e-post adress.
' Det är därför viktigt att du anger korrekta uppgifter nedan.

Dim formularsida, mottagare_namn, mottagare_epost, rubrik, mailserver
formularsida = "formular.asp" ' Ändra här om du bytt namn på sidan med formuläret
mottagare_namn = "Webmaster" ' Här anger du namnet på den mailen skall skickas till
mottagare_epost = "[email protected]" ' Här anger du till vilken mailadress allt skall skickas
rubrik = "Mail från hemsidan" ' Ändra här om du vill ha annan rubrik på alla mail som skickas
mailserver = "smtp.xxxxxxxxx.xxxxx ' VIKTIGT! Ändra denna till din e-post adress SMTP server!
'(SMTP-server = Server för utgående mail)

'=================================================================================================
'OBSERVERA!
'Här nedan finns kod som gör att meddelandet skickas och skall fungera helt felfritt, det brukar
'vara fel på mailservern, eller e-post adressen som orsakar fel. Så PILLA INTE i nedanstående kod
'om du inte har goda kunskaper om ASP och vet vad du gör!
'=================================================================================================


'Här hämtas informationen och läggs i variabler.
Dim Meddelande, epost, namn, hemsida, innehall, sida
Meddelande = Request.Form("meddelande")
epost = Request.Form("epost")
namn = Request.Form("namn")
hemsida = Request.Form("hemsida")
skydd = Request.Form("skydd")
innehall = meddelande & "$|$" & epost & "$|$" & namn & "$|$" & hemsida
sida = formularsida


'Här kontrolleras fälten så att alla obligatoriska fält är ifyllda
IF Not Len(Meddelande) <> 0 then
        session("falt") = innehall
        Session("kontakta_mig") = "Du glömde att skriva in ett meddelande"
        Response.Redirect sida
ELSEIF Not Len(namn) <> 0 then
        session("falt") = innehall
        Session("kontakta_mig") = "Du glömde att fylla i ditt namn"
        Response.Redirect sida
ELSEIF Not Len(epost) <> 0 then
        session("falt") = innehall
        Session("kontakta_mig") = "Du glömde att fylla i din e-post adress"
        Response.Redirect sida
ELSEIF Not Len(skydd) <> 0 then
        session("falt") = innehall
        Session("kontakta_mig") = "Du glömde att fylla i spamskyddet"
        Response.Redirect sida
END IF


'Här kontrolleras spamskyddet
IF Instr(skydd,"haha") Then
        ' inget
ELSE
        session("falt") = innehall
        Session("kontakta_mig") = "Du har inte skrivit rätt i spamskyddsfältet"
        Response.Redirect sida
END IF


'Här kontrolleras e-post adressen
IF Instr(epost,"@") Then
        ' inget
ELSE
        session("falt") = innehall
        Session("kontakta_mig") = "Du har angett en felaktig e-post adress"
        Response.Redirect sida
END IF
IF Instr(epost,".") Then
        ' inget
ELSE
        session("falt") = innehall
        Session("kontakta_mig") = "Du har angett en felaktig e-post adress"
        Response.Redirect sida
END IF

' Här ändras hemsideadressen så att den alltid inleds med http://
IF Len(hemsida) <> 0 Then
        IF Left(hemsida,7) = "http://" Then
 webb = Lcase(hemsida)
        ELSE
 webb = "http://" & Lcase(hemsida)
        END IF
END IF

'=================================================================================================
' Här börjar själva jmailandet. Ändra inte nedanstående kod, om du inte har goda kunskaper om ASP
' JMAIL-komponentens funktioner. Det är väldigt ovanligt att fel uppstår i nedanstående kod. Om
' Fel uppstår på raden precis nedanför denna kommentar så brukar det bero på att servern INTE HAR
' STÖD FÖR JMAIL.
'=================================================================================================

Set mailare = Server.CreateObject("JMail.Message")
        mailare.AddRecipient ""&mottagare_epost&"", ""&mottagare_namn&""
        mailare.From = ""&epost&""
        mailare.FromName = ""&namn&""
        mailare.Subject = ""&rubrik&""
        mailare.AppendHTML "<font face='verdana' size='1'>" & Replace(Server.HTMLEncode(Meddelande),vbCrlf,"<br>") &_
        "<br><br><br>------------------------------------------<br><b>Skickades:</b> " & Now & "<br><b>Namn: </b> "&_
        namn & "<br><b>E-mail: </b> " & epost & "<br>"
        If Len(hemsida) <> 0 then
 mailare.AppendHTML "<b>Hemsida: </b><a href=" & webb & ">" & webb & "</a><br>"
        End If
        mailare.AppendHTML "------------------------------------------<br></font>"
        mailare.Send(""&mailserver&"")
        mailare.Close
Set mailare = nothing

Session("kontakta_mig") = "Meddelandet är nu skickat!"
Response.Redirect sida
%>


VideoBengt 2009-01-17 21:19

Tack så mycket!

Skall testa detta.

kw_wasabi 2009-01-17 22:19

Gör det! Om du stöter på problem så är det bara att fråga här i tråden.

VideoBengt 2009-01-17 23:36

Jag får det inte att fungera. Svaret är enkelt: One.com har inte stöd för JMAIL.
Fick förslaget att använda CDONTS.

Ingen aning vad det är men det får kollas imorgon.


Alla tider är GMT +2. Klockan är nu 04:32.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson