Just nu i M3-nätverket
Jump to content

Error (fel i rad)


kjell3

Recommended Posts

Jag har skrivit den här frågan i ett annat forum men jag provar här också.

 

Jag har gjort en E-post katalog i Asp där jag gjort så att den som vill lägga in sin mail i katalogen skapar först sitt eget login och password för att dom senare ska kunna redigera sina uppgifter. Värderna sparas i en Access databas. Problemet är att jag ställt Login som unik (inga dubletter)i Access.

Om nu någon råkar skriva samma login så blir det ett felmeddelande: Fel i rad

Kan någon hjälpa mig med hur jag ska lösa det.

Jag har helt kört fast!

 

Det borde ju gå att den känner av om det ordet är upptaget innan den skapar ett nytt login. Och är det upptaget så skriver den helt enkelt att den fanns skriv in ett nytt, men som sagt jag har helt kört fast.

Skickar med koden:

 

<%

Set MinCon = Server.CreateObject("ADODB.Connection")

Set rs = Server.CreateObject("ADODB.Recordset")

strAccessDB = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../data/mail.mdb")

MinCon.Open strAccessDB

 

SQL = "SELECT * From maillista WHERE 1=2"

rs.Open SQL, MinCon, 1, 2

 

 

rs.AddNew

rs("Namn") = Request.Form("Namn")

rs("Password") = Request.Form("Password")

rs("Login") = Request.Form("Login")

rs("Epost") = Request.Form("Epost")

rs.Update

rs.Close

set rs =nothing

MinCon.Close

set MinCon = nothing

 

%>

Link to comment
Share on other sites

Benni Svensson

Först av allt, så måste jag varna för den typ av unikt värde som du har. Det är alltid bättre med ett id nr.

Om du nutrots allt skall behålla vad du ha, så är det ju till att hämta upp värdet ifrån databasen, och kolla om det finns ett likadant värde där.

Någonting sådant här:

 

SQL = "SELECT * From maillista WHERE 1=2"

rs.Open SQL, MinCon, 1, 2

 

 

do until rs.EOF

if rs("Login") = Request.Form("Login") Then

Response.Write "Du måste välja ett annat Login namn"

Else

 

rs.AddNew

rs("Namn") = Request.Form("Namn")

rs("Password") = Request.Form("Password")

rs("Login") = Request.Form("Login")

rs("Epost") = Request.Form("Epost")

rs.Update

End If

rs.MoveNext

Loop

 

rs.Close

set rs =nothing

MinCon.Close

set MinCon = nothing

*****************

Nu är detta helt torrkodat, men ungefär så där skulle jag göra.

Benni

 

 

 

Link to comment
Share on other sites

Tyvärr, jag provade ditt tips men icket. Först fick jag syntaxfel i include file="functions.inc, där stog det: Function FixaTecken(sfix)

och sedan ville han ha loop.

Jag får nog ge mig........

Link to comment
Share on other sites

Benni Svensson

Varför har du den filen där??

(det visar ju inte din kod).

Som jag skrev så är det torrkodat, så du får ju testa lite.

Om han ville ha en loop, så innebar det att jag la till loopen på fel ställe, ändra efter error.

Link to comment
Share on other sites

Jag tog bort include filen, då fick jag felet att den ville ha en loop, jag lade dit det och då gick han vidare och visade en helt blank sidan (samma sida), tyvärr är jag ny i det här så det är väl det som är problemet.

Link to comment
Share on other sites

Benni Svensson

Har du tittat efter om du har fått in någonting i databasen?

Har du det så är det ju lugnt.

Men som scriptet är utformat, så skulle du bara fått en felinikation om någonting blev fel, m a o det skall ju bli en blank sida, om du inte lägger till någon ting.

Du kan ju lägga till en Respons.Write "Dina uppgifter är nu inlagda" i raden under rs.update.

Ta sedan och läs lite böcker, kolla runt på lite olika siter om ASP och VBScript(även andra språk). Det är ända sättet. Att för varje detalj man får fel, går inte att fråga om.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...