/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
skrive til en database
Fra : thagemann89


Dato : 21-07-05 17:06

Ok, forstår virkelig ikke hvorfor det ikke virker... har
sammenlignet med alle mine andre scripts som skriver til en
database og det hele virker rigtigt...

Fejlen er den at siden simpelthen bare ikke bliver vist - Der er
problemer med den side, du prøver at åbne, og den kan ikke vises.


Kode:
Dim user
user = Request.form("user")

StrSQL = "insert into administration
   ( user, password, level ) values
   ('" & user & "', '" & Request.Form("password") & "', '" &
Request.Form("level") & "')"

Conn.Execute(StrSQL)

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Tomasz Otap (21-07-2005)
Kommentar
Fra : Tomasz Otap


Dato : 21-07-05 17:15

thagemann89 proclaimed as follows:
> Ok, forstår virkelig ikke hvorfor det ikke virker... har
> sammenlignet med alle mine andre scripts som skriver til en
> database og det hele virker rigtigt...
>
> Fejlen er den at siden simpelthen bare ikke bliver vist - Der er
> problemer med den side, du prøver at åbne, og den kan ikke vises.

Det lyder som om du bruger Internet Explorer med såkaldte "brugervenlige
fejl" slået til. Du kan slå dem fra under Internetindstillinger ->
Avanceret -> Vis meddelse om uskadelige HTTP fejl (eller noget i den dur).


> StrSQL = "insert into administration
>    ( user, password, level ) values
>    ('" & user & "', '" & Request.Form("password") & "', '" &
> Request.Form("level") & "')"

Hvis din kode er præcis, som du angiver her (med linieskift og tabs), så
er det dine linieskift, der er problemet. I ASP (VBscript) angiver
linieskift slut på en kode-sætning. Derfor vil din StrSQL slutte (på den
forkerte måde, der giver fejl) umiddelbart efter "administration".

Du kan fortsætte sætningen på næste linie ved at bruge _ sidst i linien,
f.eks.:

StrSQL = "insert into administration " & _
    " ( user, password, level ) values " & _
    " ('" & user & "', '" & Request.Form("password") & "', '" & _
    Request.Form("level") & "')"

t

--
Aequitas sequitur funera

thagemann89 (21-07-2005)
Kommentar
Fra : thagemann89


Dato : 21-07-05 18:53

> Det lyder som om du bruger Internet Explorer med såkaldte "brugervenlige
> fejl" slået til. Du kan slå dem fra under Internetindstillinger ->
> Avanceret -> Vis meddelse om uskadelige HTTP fejl (eller noget i den dur).

Det fik jeg så gjort, koden lyder:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO
statement.

/asp/tilfoejbruger.asp, line 11


> Hvis din kode er præcis, som du angiver her (med linieskift og tabs), så
> er det dine linieskift, der er problemet.

Har bare kørt det ud i en linie nu...

Kode:
Dim user
dim kode
user = Request.form("user")
kode = Request.Form("password")

StrSQL = "INSERT INTO [administration] ( user, [password], level ) values
('" & user & "', '" & kode & "', '" & Request.Form("level") & "')"

Conn.Execute(StrSQL)


linie 11: Conn.Execute(StrSQL)

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

JonZ (21-07-2005)
Kommentar
Fra : JonZ


Dato : 21-07-05 18:03

thagemann89 wrote in dk.edb.internet.webdesign.serverside.asp:
> Ok, forstår virkelig ikke hvorfor det ikke virker... har
> sammenlignet med alle mine andre scripts som skriver til en
> database og det hele virker rigtigt...
>
> Fejlen er den at siden simpelthen bare ikke bliver vist - Der er
> problemer med den side, du prøver at åbne, og den kan ikke vises.
>
>
> Kode:
> Dim user
> user = Request.form("user")
>
> StrSQL = "insert into administration
>    ( user, password, level ) values
>    ('" & user & "', '" & Request.Form("password") & "', '" &
> Request.Form("level") & "')"
>
> Conn.Execute(StrSQL)
Det er godt nok ikke et svar på dit spørgsmål, men hvis det er din
kode, og du bruger den på flere sider, har du et problem med
slq-injektion. Du bør kører data fra form felter igennem en replace
kommando før du gemmer dem i din database.
f.eks. sådan her:

pass = replace(request.form("password"), "'", "''")
level = replace(request.form("level"), "'", "''")

StrSQL = "insert into administration _
( user, password, level ) values_
('" & user & "', '" & pass & "', '" & level & "')"

Hilsen JonZ


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (21-07-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 21-07-05 19:10

thagemann89 skrev:

> Fejlen er den at siden simpelthen bare ikke bliver vist - Der er
> problemer med den side, du prøver at åbne, og den kan ikke vises.

Som Thomasz også har skrevet er det formentlig bare IE's særegne
måde at skjule fejlmeddelelser på.

Se evt. artiklen her: <http://asp-faq.dk/article/?id=45>

> StrSQL = "insert into administration
> ( user, password, level ) values

User og password er potentielt reserverede ord (du har ikke skrevet
noget om hvilken database du anvender, men gætter på Access).
Generelt bør man undgå at bruge reserverede ord i sine databaser,
men man kan også sikre sig ved (i Access og MSSQL) at skrive [user]
og [password] i stedet for user og password.

> ('" & user & "', '" & Request.Form("password") & "', '" &
> Request.Form("level") & "')"

Det har også været nævnt tidligere i tråden, men alligevel - tænk
over faren ved sql-injection.
Se artiklen her for en forklaring:
   <http://asp-faq.dk/article/?id=95>


Hvis sql-sætningen fortsat volder problemer, så sørg for at
udskrive den efter at den er opbygget (som beskrevet her:
<http://asp-faq.dk/article/?id=41>)
--
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

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste