webForumDet fria alternativet

Hjälp med webshop!

ASP

14 svar · 566 visningar · startad av Brazzan

Medlem sedan apr. 200367 inlägg
Frågan#1

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.

Som det är nu så går det inte, någon som kan?

Jag skickar med den som zippfil

Medlem sedan apr. 20031 660 inlägg
#2

HEJ!

(Svar utan att kolla i bifogad fil.)

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?

Medlem sedan feb. 200112 078 inlägg
#3

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. ;)

MVH
OveRRidE
moderator, webForum

Medlem sedan apr. 200367 inlägg
#4

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!

Medlem sedan feb. 200112 078 inlägg
#5

Brazzan skrev:

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!

Har du någon kod att visa, då?

Medlem sedan apr. 200367 inlägg
#6

Detta är själva inställnings sidan:

<%
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 "&nbsp;<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
%>

RED. Lade till [kod]-taggar. //OveRRidE

Medlem sedan feb. 200112 078 inlägg
#7

Har du försökt själv först? Har du skapat en ordertabell i databasen? Har du funderat på hur ordrarna skall presenteras i gränssnittet?

Medlem sedan apr. 200367 inlägg
#8

Jag har försökt själv, kan inte! Hur ordrarna ska presenteras i gränssnittet, ja de behöver bara vara uppradade av något slag

Medlem sedan apr. 2004778 inlägg
#9

Om du inte kan koda så finns det ju ett problem.

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.

Medlem sedan feb. 200112 078 inlägg
#10

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.

  1. Skapa en tabell i databasen som heter 'Order'. Ge den kolumnerna OrderId (primärnyckel), UserId, Levererad (ja/nej) och Datum.
  2. Skapa en tabell till (OrderRow) som innehåller kolumnerna OrderId (refererar till Order), ArtikelNr och Pris.
  3. 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.
  4. 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.

Medlem sedan apr. 200367 inlägg
#11

så mycket förstår jag också, jag kan koda lite men är ingen hejjare på det. Det jag inte kan är hur själva koden ska se ut!

Medlem sedan apr. 2004778 inlägg
#12
Det jag inte kan är hur själva koden ska se ut!

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.

Medlem sedan apr. 200367 inlägg
#13

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.

Medlem sedan feb. 200112 078 inlägg
#14

Nej, det är ingen som skäller på dig. :)

Det är bara lite svårt att motivera någon att skriva halva din applikation, om du inte försökt själv först.

Medlem sedan apr. 200367 inlägg
#15

Ingen som kan göra den lilla biten där man skriver direkt till en databas istället för att skicka mail. Hade varit MKT snällt!

293 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
155 ms — hämta tråd, inlägg och bilagor (db)
132 ms — ändringar (db)