webForumDet fria alternativet

Problem

4 svar · 258 visningar · startad av Runken

RunkenMedlem sedan apr. 200336 inlägg
#1

Tjenare!

Vi håller på med en webbutik och stöter på problem mest hela tiden. Men vi tror inte det är kodproblem utan har något med databasen att göra. Tex, när man har lagt in data ifrån ett registreringsformulär med en SQL-sats och stänger ner webläsaren och kör samma igen för att lägga in ny data igen så fungerar det inte utan då måste man radera alla tempfiler som webläsaren skapat. Sen kan man lägga in en gång till osv. Varför?

Även på vår inloggningssida har vi problem. Vi har tänkt på följande sätt:
När användaren matat in sitt användarnamn och lösenord i formuläret så skickar vi detta till databasen för att jämföra om det finns någon träff eller ej. Finns det en träff så skickas värdet 1 tillbaka, om inte så skickas värdet 0 tillbaka. Detta för att vi sedan skall kunna kontrollera utgången av frågan i en if sats. Men det konstiga här är att om vi matar in samma värden i "Användarnamn och lösenord" så skickas det någon gång tillbaka värdet 1 och för det mesta värdet 0. Varför detta?

När vi ska lägga in data från registreringsfomuläret så har vi problem med det 2 sista attributet Lösenord. När man trycker på submit-knappen så kommer

Unknown column 'losen' in 'field list' upp men vi har kontrollerat databastabellen otaliga gånger och losen finns där och ligger rätt placerad. Vad kan detta bero på?

Kan det vara något fel med vår databas eller?

Skickar med koden så hade varit kanon om någon hade kunnat kolla igenom den. Så att vi försäkrar oss om att det inte har med koden att göra:

<%

Dim vcompany, vfnamn, venamn, vgata, vpnummer, vp_ort, vtfn, vmob, vtelefax, vepost, vcountry, vp_nr, vp_nr2, vanamn, vlosen, vlosen2

Set conn = createobject("ADODB.Connection")
conn.open = "DRIVER={MySQL ODBC 3.51 Driver};"_
& "SERVER=localhost;"_
& "DATABASE=CARO;"_
& "UID=root;PWD=; OPTION=16384;"

vcompany = Replace(Request.Form("Foretag"), "'", "''")
vfnamn = Replace(Request.Form("Fornamn"), "'", "''")
venamn = Replace(Request.Form("Efternamn"), "'", "''")
vgata = Replace(Request.Form("Postadress"), "'", "''")
vpnummer = Replace(Request.Form("Postnummer"), "'", "''")
vp_ort = Replace(Request.Form("Postort"), "'", "''")
vtfn = Replace(Request.Form("Tele"), "'", "''")
vmob = Replace(Request.Form("Mobil"), "'", "''")
vtelefax = Replace(Request.Form("Fax"), "'", "''")
vepost = Replace(Request.Form("E-mail"), "'", "''")
vcountry = Replace(Request.Form("Land"), "'", "''")
vp_nr = Replace(Request.Form("Persnummer1"), "'", "''")
vp_nr2 = Replace(Request.Form("Persnummer2"), "'", "''")
vanamn = Replace(Request.Form("Anvnamn"), "'", "''")
vlosen = Replace(Request.Form("Password1"), "'", "''")
'vlosen2 = Replace(Request.Form("Password2"), "'", "''")

If Len(request.form("Anvnamn")) < 1 OR Len(request.form("Fornamn")) < 1_
OR Len(request.form("Efternamn")) < 1 OR Len(request.form("Postadress")) < 1 OR Len(request.form("Postnummer")) < 1_
OR Len(request.form("Postort")) < 1 OR Len(request.form("Tele")) < 1 OR Len(request.form("E-mail")) < 1_
OR Len(request.form("Persnummer1")) < 1 OR Len(request.form("Persnummer2")) < 1 OR Len(request.form("Password1")) < 1_
OR Len(request.form("Password2")) < 1 then
tomma_falt = "true"
End if

if NOT isnumeric(request.form("Personnummer1")) OR NOT isnumeric(request.form("Personnummer2")) then
p_nr_fel = "true"
end if

if NOT isnumeric(request.form("Postnummer")) then
pnummer_fel = "true"
end if

If InStr(1,vepost,"@",vbTextCompare) = 0 OR InStr(1,vepost,".",vbTextcompare) = 0 Then
epost_fel = "true"
End If

If (request.form("Password1")) <> (request.form("Password2")) then
password_fel ="true"
end if

If p_nr_fel ="true" OR pnummer_fel = "true" OR epost_fel = "true" OR password_fel ="true" OR tomma_falt = "true" then
response.redirect "registrering.asp?status=false"

else

strSQL = "INSERT INTO customer (company, fnamn, enamn, gata, pnummer, p_ort, tfn, mob, telefax, epost, country, p_nr, p_nr2, anamn, losen, losenigen) VALUES ('" &vcompany& "','" &vfnamn& "','" &venamn& "','" &vgata& "','" &vpnummer& "','" &vp_ort& "','" &vtfn& "','" &vmob& "','" &vtelefax& "','" &vepost& "','" &vcountry& "','" &vp_nr& "','" &vp_nr2& "','" &vanamn& "','" &vlosen& "','" &vlosen2& "')"
conn.Execute(strSQL)
conn.Close
Set conn = Nothing
End if
%>

RunkenMedlem sedan apr. 200336 inlägg
#2

Kanske ska tillägga att vi använder IIS och MySQL-Front.

SebbeMedlem sedan jan. 20032 285 inlägg
#3

Du kanske kan lösa ditt första problem med att lägga till detta högst upp på sidan.

Response.Expires = 0
Response.AddHeader "Pragma", "No-Cache"
RunkenMedlem sedan apr. 200336 inlägg
#4

Tack för svaret!

Det verkade lösa delar av problemet. Vi har dock ett problem kvar. Får felmeddelande när vi kollar om uppgifterna i inloggnings-fält överensstämmer med databasen. När vi kör asp-koden. Första gången vi kör sidan fungerar det, men sen kommer detta upp:

Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[MySQL][ODBC 3.51 Driver][mysqld-4.0.12-nt]Unknown column 'losenord' in 'where clause'

Attributen i sql satsen är exakt lika som de i tabellen i databasen och det är bara "losenord" den klagar på.

Koden:

vanamn = Replace(Request.Form("Anvnamn_loggin"), "'", "''")
vlosen = Replace(Request.Form("Losenord"), "'", "''")

strSQL = "SELECT COUNT(*) FROM customer WHERE anamn = '" & vanamn & "' AND losenord = '" & vlosen & "'"
set objRS = Conn.Execute(strSQL)
intAntal = objRS(0)

SebbeMedlem sedan jan. 20032 285 inlägg
#5

Ja, det verkar ju onekeligen konstigt! :o
Jag har ingen aning om vad som kan vara fel om det inte är så att kolumnen inte finns, tyvärr.

132 ms totalt · 3 externa anrop · v20260731065814-full.beb2e261
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)