Elikkäs tälläinen pulma olisi. Miten saan toimimaan tietojen tallennuksen serverille allaolevalla koodinpätkällä? Lähetyksen saan pelaamaan normaalisti mut herjaa että tapahtui virhe tallennuksessa... Apua kaivataan :)
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!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" />
<title>Palautelomake - esimerkki</title>
</head>
<body>
<%
If (Request.ServerVariables("REQUEST_METHOD")<> "POST") Then
' GET pyyntö, sijoita lomake tänne
%>
<form id="form1" name="form1" method="post" action="demo.asp">
<p><label for="textfield">Nimi</label>
<input name="l_nimi" type="text" id="l_nimi" size="50" maxlength="255" />
</p>
<p>
<label for="label">Sähköposti</label>
<input name="l_email" type="text" id="label" size="50" maxlength="255" />
</p>
<p>
<label for="textarea">Viesti</label>
<textarea name="l_viesti" cols="50" rows="10" id="l_viesti"></textarea>
</p>
<p>Halulan, että minuun otetaan yhteyttä: </p>
<p>
<input name="l_yhteys" type="radio" value="email" id="radiobutton" />
<label for="radiobutton">Sähköpostitse </label>
<input name="l_yhteys" type="radio" value="muu" id="radio" />
<label for="radio">Muuten (miten, erittele viestissä)</label>
</p>
<p>
<input type="submit" name="Submit" value="Lähetä" />
</p>
</form>
<%
Else
' POST pyyntö, sijoita lomakkeen käsittely tänne
' alustetaan / luodaan tarvittavat muuttujat
Dim strNimi, strEmail, strViesti, strYhteystapa
' ja sijoitetaan arvot
strNimi = Request.Form("l_nimi")
strEmail = Request.Form("l_email")
strViesti = Request.Form("l_viesti")
strYhteystapa = Request.Form("l_yhteys")
If strEmail = "" Then
Response.Write "<p>Virhe. Sähköpostiosoite on pakollinen tieto. Ole hyvä ja palaa " & _
"edelliselle sivulle painamalla selaimesi Back-painiketta.</p>"
Else
If strNimi = "" Then
strNimi = "n/a"
End If
If strViesti = "" Then
strViesti = "n/a"
End If
If strYhteystapa = "" Then
strYhteystapa = "n/a"
End If
' lähettäminen eteenpäin CDONTS-komponentin avulla
On Error Resume Next
Set Mailer = Server.CreateObject("CDONTS.NewMail")
If err <> 0 Then
' Response.Write("ERROR " & err.number & " - " & err.description)
End If
Mailer.From = strEmail
Mailer.Subject = "Palaute"
Mailer.To = "matti.mainio@jossain.com"
Mailer.Body = strViesti &vbcrlf & "Yhteydenottotapa: " &strYhteystapa
Mailer.Send
set Mailer = nothing
' SQL-kysely
strSQL = "INSERT INTO viestit (lahettaja, maili, viesti, yhteystapa, aika) "
strSQL = strSQL & " VALUES "
strSQL = strSQL & "('" &strNimi & "',"
strSQL = strSQL & "'" & strEMail & "',"
strSQL = strSQL & "'" & strViesti & "',"
strSQL = strSQL & "'" & strYhteystapa & "',"
strSQL = strSQL & "'" &now() & "')"
' ohita mahdolliset virheet tietokantayhteydessä/kyselyssä
On Error Resume Next
Public strSource, oConn
Set oConn = Server.CreateObject("ADODB.connection")
strSource = "Provider=SQLOLEDB; Data Source=palvelin; Initial Catalog=tietokanta; User ID=kayttaja; Password=salasana"
oConn.open strSource
'suorita kysely
oConn.Execute strSQL,recaffected
' käsittele virheet
If err<>0 then
Response.Write("<p>Virhe viestin tallentamisessa.</p>")
'Response.Write("<p>" & err.number & " - " & err.description & "</p>")
Else
Response.Write("<p>Viestin tallennus onnistui</p>")
End If
oConn.close
End If
End If
%>
</body>
</html>Mitä virhettä(err.description) herjaa?
Veikkaan että en ole osannut täyttää oikeen tietoja tuohon mihin tulee tunnukset yms.. Miten siis täytän sen oikeaoppisesti?
Veikkaamalla harvemmin voittaa mutta poista nyt ainakin välilyönnit tuosta strSource -stringistä
Tuolta lisätietoja : http://www.connectionstrings.com/?carrier=sqlserver
Aihe on jo aika vanha, joten et voi enää vastata siihen.