/ 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
Quote i en SQL sætning
Fra : David Trasbo


Dato : 13-05-05 12:41

Hej NG.

Her er jeg igen med mit message system. Jeg er i øjeblikket i
gang med at tilrettelægge slette funktionen. Jeg spørger nu:
Hvordan quoter jeg der hvor alle dataerne kommer ud. Altså det
man kalder at uskskrive lykkerne via Response.Write. Jeg skal
nemlig lave et link til delete.asp som sletter beskederne.
Hvordan gør jeg det?

--
David Trasbo.
Vær en god Usenet bruger. Læs <http://usenet.dk/netikette>.

--
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

 
 
David Trasbo (14-05-2005)
Kommentar
Fra : David Trasbo


Dato : 14-05-05 09:49

> Hvordan gør jeg det?

Fandt selv ud af det. Brugte "%> <a href="...">Slet</a><%" osv.
Men hvad betyder følgende fejl:

Der er en syntaksfejl, fordi der mangler en operator. i
forespørgselsudtrykket "Id =".

Jeg bruger følgende:

strSQL = "Delete from tblMessages where Id = "'&_
Request.Querystring("id") &"' AND where Til = "' &_
Request.Querystring("name") &"' "
Conn.Execute(strSQL)

Der må være en fejl i det, men jeg kan ikke finde den. (Måske
fordi jeg er ny i ASP...)

--
David Trasbo.
Vær en god Usenet bruger. Læs <http://usenet.dk/netikette>.



--
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 (14-05-2005)
Kommentar
Fra : Tomasz Otap


Dato : 14-05-05 10:06

David Trasbo wrote:
> strSQL = "Delete from tblMessages where Id = "'&_
> Request.Querystring("id") &"' AND where Til = "' &_
> Request.Querystring("name") &"' "

Du har en "where" for meget i din SQL-sætning. Man skal kun skrive WHERE
en gang inden alle betingelserne:

strSQL = "Delete from tblMessages where Id = "'&_
Request.Querystring("id") &"' AND Til = "' &_
Request.Querystring("name") &"' "

Igen; husk at escape dine request.querystring variabler inden du bruger
dem i dine SQL-forespørgsler, ellers efterlader du din system pivåben
til hacks og injections. Prøv at læse den glimrende forklaring her:

http://www.4guysfromrolla.com/webtech/061902-1.shtml

t

David Trasbo (14-05-2005)
Kommentar
Fra : David Trasbo


Dato : 14-05-05 10:52

> Du har en "where" for meget i din SQL-sætning. Man skal kun skrive WHERE
> en gang inden alle betingelserne:

Tak, men det giver samme resultat.


> Igen; husk at escape dine request.querystring variabler inden du bruger
> dem i dine SQL-forespørgsler, ellers efterlader du din system pivåben
> til hacks og injections. Prøv at læse den glimrende forklaring her:

Bare rolig. Jeg har sikret mit system mod hacking.

--
David Trasbo.
Vær en god Usenet bruger. Læs <http://usenet.dk/netikette>.

--
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 (14-05-2005)
Kommentar
Fra : Tomasz Otap


Dato : 14-05-05 11:08

David Trasbo wrote:
>>Du har en "where" for meget i din SQL-sætning. Man skal kun skrive WHERE
>>en gang inden alle betingelserne:
>
> Tak, men det giver samme resultat.

Nåh ja, du har også byttet om på anførelsestegn i din sætning,
umiddelbart efter "Id = " og "Til =".

strSQL = "Delete from tblMessages where Id = '" &_
Request.Querystring("id") & "' AND Til = '" &_
Request.Querystring("name") & "' "

Husk at skrive ud din sql-sætning på skærmen inden den udføres. Du
finder dine fejl meget hurtigere på den måde.

> Bare rolig. Jeg har sikret mit system mod hacking.

Fair nok. Lige i denne delete-sætning kræver det jo ikke mere end et par
ekstra ord i webadressen til at slette din database.

t

David Trasbo (14-05-2005)
Kommentar
Fra : David Trasbo


Dato : 14-05-05 13:59

> > Bare rolig. Jeg har sikret mit system mod hacking.
>
> Fair nok. Lige i denne delete-sætning kræver det jo ikke mere end et par
> ekstra ord i webadressen til at slette din database.

Nu skal jeg forklare hvordan:

Når man logger sig ind bliver der gemt en cookie på brugerens harddisk. Når man
så er inde i sin profil og beskeder osv. tjekker den om det der er gemt i
cookieen svarer til det der står i adresselinjen. Og man kan selvfølgelig ikke
se siderne uden at være logget ind. Og hvis man sletter sit navn i
adresselinjen får man også fejl. Mit system kan i ikke hackes.

Tak for dine svar.

--
David Trasbo.
Vær en god Usenet bruger. Læs <http://usenet.dk/netikette>.


--
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 (14-05-2005)
Kommentar
Fra : Tomasz Otap


Dato : 14-05-05 14:08

David Trasbo wrote:
> Når man logger sig ind bliver der gemt en cookie på brugerens harddisk. Når man
> så er inde i sin profil og beskeder osv. tjekker den om det der er gemt i
> cookieen svarer til det der står i adresselinjen. Og man kan selvfølgelig ikke
> se siderne uden at være logget ind. Og hvis man sletter sit navn i
> adresselinjen får man også fejl. Mit system kan i ikke hackes.

God idé. Men hvad, hvis jeg forsøger at oprette en bruger med navnet
O'Toole? Således at webadressen kalder f.eks.
"bruger.asp?id=292&name=O'Toole"?

Så kommer der en databasefejl... da der lige pludseligt dukker en
anførselstegn op midt i SQL-sætningen.

Og i forlængelse... hvad hvis jeg forsøger at oprette en bruger med navn
O'DROP TABLE tblMessages ...? :)

t

David Trasbo (14-05-2005)
Kommentar
Fra : David Trasbo


Dato : 14-05-05 14:11

Nu får jeg følgende fejl:

Datatyperne stemmer ikke overens i kriterieudtrykket.

Hvad betyder det?

--
David Trasbo.
Vær en god Usenet bruger. Læs <http://usenet.dk/netikette>.

--
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 (14-05-2005)
Kommentar
Fra : Tomasz Otap


Dato : 14-05-05 15:04

David Trasbo wrote:
> Nu får jeg følgende fejl:
>
> Datatyperne stemmer ikke overens i kriterieudtrykket.

Sandsynligvis, at du i din SQL forsøger at gemme en string i et felt,
der kun kan acceptere numeriske værdier, såsom int. Uden at kende dit
tabelstruktur kan jeg forestille mig at det er dit Id, der skal angives
som tal - dvs uden enkelte anførselstegn omkring:

.... Id = " &_
Request.Querystring("id") & " and ...

Har du egentlig forsøgt at google dine fejlbeskeder? Det er en ret
hurtig og frugtbar måde at løse den slags småproblemer på:

http://www.google.com/search?q=datatyper+stemmer+ikke+overens+i+kriterieudtrykket

t

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste