Jag undrar om det går att ändra lite i koden för webshoppen så att man inte skickar beställningen till en epost addres utan lagrar den i en vanlig fil på datorn där hemsidan finns.
Att spara beställningarna i en komma-separerad fil på servern (antar jag?) är inga problem, det handlar endast om att koda rätt.
Men, varför vill du göra det, du har ju en databas?
I vilket fall, kod:
folder="../tavlingsfiler"
a=request.form("a")
b=request.form("b")
Set FSO = CreateObject("Scripting.FileSystemObject")
'folderna skapas om den inte finns
'för att slippa städa i foldern raderas den varje gång
FSO.CreateTextFile(Server.MapPath(folder) & "\filnamn.csv")--
Set ts = FSO.OpenTextFile(Server.MapPath(folder) & "\filnamn.csv",2)
'skriv till fil
ts.WriteLine (a & "," & b)
Här bryr jag mig inte om ifall det finns en temp-tabell, cookie eller annat att lagra inköpen i, då får du givetvis anpassa till det.
Vill du inte lagra det på servern utan på klientens dator (där ÄR ju faktiskt den aktuella sidan lagrad när du tittar på den) får du titta på cookie, eller någon form av filskapning som man kan spara ned?
Det där är inte någonting som jag skulle rekommendera ens om jag blev pistolhotad. Att separera ordrarna från resterande delen av systemet (databasen) på det sättet kan bara skapa en sak; problem.
Se till att ordrarna hamnar i databasen istället, då kan du hantera dem smidigare, dra ut statistik och göra JOINs mot andra tabeller med mera, med mera.
Dessutom; det är bättre ifall du lägger upp den koden (och enbart den) som är relevant för att lösa ditt problem, inte en hel zipfil med en applikation i. Se till att få ut lite relevant kod ur den där filen, annars åker tråden raka vägen till Idéella jobb & tjänster. ;)
Ok, men låt oss säga nu då att jag vill spara den i databasen, hur gör jag?? Alltså inget mail tjafs som det är nu. Är inte elite på att koda. Tack för tipsen föresten!
Ok, men låt oss säga nu då att jag vill spara den i databasen, hur gör jag?? Alltså inget mail tjafs som det är nu. Är inte elite på att koda. Tack för tipsen föresten!
<%
inklmoms = "0"
' 0 för Nej och 1 för Ja. Vill du ha inkl. moms priser?
frakt = "0"
' Ange hur mycket frakt som skall läggas på
eposten = "namn@dinserver.com"
' Ange adressen dit beställningarna ska skickas
mailserver = "mail.dinserver.com"
' Ange din SMTP-mailserver
mapp = "filer"
' Ange mappen som produktbilder skall sparas i
admin_anvnamn = "admin"
' Välj användarnamn till admin.asp
admin_losenord = "admin"
' Välj lösenord till admin.asp
%>
Detta är den delen där man fyller i sina uppgifter för när man ska skicka beställningen:
<!--
---------------------------------------------------------------------------
WEBSHOP v.1 [url]www.JoakimWeb.se[/url]
Denna applikation är skriven av Joakim på JoakimWeb.se. Du får använda
applikationen fritt, under förutsättning att denna copyrighttext förblir
intakt. Du får fritt modifiera/komplettera skriptet. Du får inte lägga ut
en modifierad version av detta skript på ett sätt som gör att andra kan
ladda ner det. Om inte dessa kvar uppfylles så har du ingen rätt att
använda skriptet.
--------------------------------------------------------------------------
-->
<!--#include file="installningar.asp"-->
<%
Response.Buffer = true
namn = Request.Form("namn")
adress = Request.Form("adress")
postnr1 = Request.Form("postnr1")
postnr2 = Request.Form("postnr2")
padress = Request.Form("postadress")
tfn1 = Request.Form("tfn1")
tfn2 = Request.Form("tfn2")
epost = Request.Form("epost")
ovrigt = Request.Form("ovrigt")
info = Array(namn,adress,postnr1,postnr2,padress,tfn1,tfn2,epost,ovrigt)
info2 = ""
For i = 0 to 8
info2 = info2 & info(i)
IF Not i = 8 then
info2 = info2 & "|"
END IF
Next
For i = 0 to 7
IF NOT len(info(i)) <> 0 then
Session("webshopfel") = "Du glömde att fylla i något fält"
session("falt") = info2
Response.Redirect Request.ServerVariables("HTTP_REFERER")
END IF
Next
IF len(info(2)) > 5 then
Session("webshopfel") = "Felaktigt postnummer"
Session("falt") = info2
Response.Redirect Request.ServerVariables("HTTP_REFERER")
END IF
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("webshop.mdb")
Session.Lcid = 1053
varde = Request.Cookies(""& Session.SessionID &"")
hamta = Split(varde,"&")
ReDim MyArray(4,Ubound(hamta))
for x = 0 to ubound(hamta)
hamta2 = Split(hamta(x),"=")
IF Len(hamta2(0)) > 0 AND len(hamta2(1)) > 0 then
SQL = "SELECT * FROM produkter WHERE id =" & int(hamta2(0))
Set RecSet = Connect.Execute(SQL)
MyArray(0,x) = hamta2(0)
MyArray(1,x) = hamta2(1)
MyArray(2,x) = RecSet("artnr")
MyArray(3,x) = RecSet("namn")
MyArray(4,x) = RecSet("pris")
RecSet.Close
Set RecSet = nothing
END IF
next
Set jmail = Server.CreateObject("JMail.Message")
jmail.AddRecipient ""& eposten &"", ""& eposten &""
jmail.From = "" & info(7) & ""
jmail.Subject = "Beställning"
jmail.appendHTML "<font face=verdana size=1>"
For i = 0 To Ubound(myArray,2)
IF Len(MyArray(0,i)) > 0 then
jmail.appendHTML "<b>Art.nr: </b>" & MyArray(2,i) & "<br>"
jmail.AppendHTML "<b>Produkt: </b>" & MyArray(3,i) & "<br>"
jmail.AppendHTML "<b>Antal: </b>" & MyArray(1,i) & "<br>"
jmail.AppendHTML "-------------------------------------------<br>"
IF i = Ubound(myArray,2) then
jmail.AppendHTML " <br>"
END IF
END IF
Next
jmail.appendHTML "<b>Namn: </b>" & info(0) & "<br>"
jmail.appendHTML "<b>Adress: </b>" & info(1) & "<br>"
jmail.appendHTML "<b>Postnr: </b>" & info(2) & info(3) & "<br>"
jmail.appendHTML "<b>Postadress: </b>" & info(4) & "<br>"
jmail.appendHTML "<b>Telefonnummer: </b>" & info(5) & "-" & info(6) & "<br>"
jmail.appendHTML "<b>E-post: </b>" & info(7) & "<br>"
jmail.appendHTML "<b>Övrigt: </b>" & info(8) & "<br>"
jmail.appendHTML "<b>Skickat: </b>" & Now() & "<br>"
jmail.appendHTML "</font>"
jmail.Send(mailserver)
For Each nyckel in Request.Cookies(Session.SessionID)
Response.Cookies(Session.SessionID)(nyckel) = ""
Next
sida = Request.ServerVariables("HTTP_REFERER") & "&skickad=ja"
Response.Redirect sida
%>
I vilket fall som helst, vad som skall göras är att koden som skickar mailet skall bytas ut mot kod som kopplar upp sig mot databasen och lagrar det som skulle skickats i mailet.
I koden du skickat in ovan så finns t.ex. en loop som går igenom produkterna och lägger in dem i texten som skall mailas. Där skall db-anropen ligga så att produkterna går in i databasen istället.
Jo, jag har ju tyvärr inte tid att sitta och skriva ihop det åt dig, men jag kan ge lite tips på tillvägagångsättet.
Skapa en tabell i databasen som heter 'Order'. Ge den kolumnerna OrderId (primärnyckel), UserId, Levererad (ja/nej) och Datum.
Skapa en tabell till (OrderRow) som innehåller kolumnerna OrderId (refererar till Order), ArtikelNr och Pris.
Bygg om sidan som idag skickar mail till en sida som istället lägger in den datan på en ny rad i tabellen Order, samt att de artiklar det handlar om hamnar i OrderRow.
Bygg en sida som visar ordrar under administrationen (om det finns någon sådan), i en vanlig lista.
Det hela är ganska enkelt, och det är dessutom ett bra sätt att lära sig.
Jag är tveksam till ifall någon har ork eller tid att skriva allt det där åt dig om du inte ens har lite kod som du skrivit själv först.
Det är ju det som är själva grejen med att kodning, att veta hur koden ska se ut. Om du inte vet det så måste du antingen lära dig det eller låta någon annan sköta kodandet.
Det finns i vilket fall som helst exempel på databaskopplingar i ASP i flera av de senaste trådarna här på webforum.
Så det finns ingen som är snäll nog att hjälpa mig med detta mer än att bara skälla på mig att jag måste lära mig koda själv. Jag är inte så intresserad av att lära mig den biten, jag tycker jag kan allt som behöver att kunnas i mitt fall.