Rasmus Nielsen skrev:
> Jeg får ikke nogen fejlmeddelser, men der bliver overhovedet ikke
> skrevet til databasen. (jeg har prøvet at oprette nye, men også
> allerede eksisterende brugernavne, men der sker intet.)
a) Generelt ved problemer med databasekald: Skriv sql-sætningerne
ud. Hver gang. Hver eneste gang.
Se hvordan her: <
http://asp-faq.dk/article/?id=41>.
> SQL = "SELECT Username FROM Login Where Username = '" &
> Request.Form ("Username") & "'"
b) Tjek for reserverede ord. Jeg kan ikke se hvilken database du
benytter, men både login og username er potentielle reserverede
ord. Du kan evt. escape for en sikkerheds skyld: [Login] og
[Username]
c) Det er en god ide at validere formdata inden man sender det til
en database. Se hvordan det kan gøres her:
<
http://asp-faq.dk/article/?id=95>
> Set RS = Conn.Execute (SQL)
>
> If RS.EOF Or RS.BOF Then
Lav et response.write-tjek så du kan se hvor du havner i drilske
if-sætninger.
> SQL = "INSERT INTO Login(Username, Password, FirstName,
> LastName, Email) VALUES ( '" _
> + Request.Form ("Username") + "', '" _
> + Request.Form ("Password") + "', '" _
> + Request.Form ("FirstName") + "', '" _
> + Request.Form ("LastName") + "', '" _
> + Request.Form ("Email") + "' )"
Udskriv sql-variablen (se a), tjek for reserverede ord (se b) og
overvej at validere input (se c).
> Set RS = Conn.Execute (SQL)
Du tjekker ikke for fejl efter execute-linjen. Det ville jeg gøre
> If mode = 1 Then
> Response.Redirect ("login.asp?Error=Du+kan+nu+logge+på.")
> ElseIf mode = 2 Then
> Response.Redirect
> ("opret.asp?Error=Brugernavn+eksisterer+allerede.")
> Else
> mode = 0
> End If
Når du vil finde fejl, er det en god ide at fjerne redirects fra
siden - de kan skjule evt. fejl. Prøv også at udskrive mode - så
kan du se hvor du havnede i if-sætningerne.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på
http://usenet.dk/netikette/citatteknik.html