webForumDet fria alternativet

Lista alla användare

ASP

12 svar · 323 visningar · startad av Renault

Medlem sedan nov. 2001101 inlägg
Frågan#1

Sedan jag loggat in och sedan vill titta på användare så listas bara mitt användarnamn och användare som har högre idnummer!

Scriptet ser ut så här:

<% Visa = "SELECT * FROM users" %>

\<table border="0" cellpadding="0" cellspacing="0"\>

\<tr\>
\<td width="200"\>\<font size="2" face="verdana, arial"\>\<b\>Användare\</b\>\</font\>\</td\>
\<td width="200"\>\<font size="2" face="verdana, arial"\>\<b\>Lösenord\</b\>\</font\>\</td\>
\</tr\>

<% Do While Not RecSet.EOF %>

\<tr\>
\<td\>\<font size="2" face="verdana, arial"\>\<% =RecSet("Username") %\>\</font\>\</td\>
\<td\>\<font size="2" face="verdana, arial"\>\<% =RecSet("Password") %\>\</font\>\</td\>
\</tr\>

<% RecSet.MoveNext
Loop %>

<% RecSet.Close %>

Finns lösning som listar alla användare?

Medlem sedan juni 200032 967 inlägg
#2

Det är inget fel på koden. Det enda jag kan tänka mig är att det endast finns användare med högre ID-nummer än du...

Medlem sedan mars 2002777 inlägg
#3

Det enda felet jag hittar är att du aldrig gör en execute på din sql-fråga. Men eftersom du får ut resultat har du säkert bara glömt det i inlägget.

Medlem sedan juni 200032 967 inlägg
#4

:o

Att jag missade det också. Bit mig! Stånga mig! Gör något!

Tur att någon har ögonen med sig i alla fall... ;)

Ditt recordset innehåller alltså något annat. Vad har du fyllt det med tidigare? Ingen inloggningshistoria à la IDG hoppas jag?

Mvh,

Medlem sedan nov. 2001101 inlägg
#5

Loggar jag in med idnummer 1 kommer alla med, annars inte!
Det gick just upp ett ljus för mig. Ska kolla en sak - återkommer!

Förresten, ska inte "inloggningshistoria à la IDG" vara att rekommendera? För mig har det funkat bra, tills nu!

Medlem sedan juni 200032 967 inlägg
#6

Inloggningshistoria à la IDG är absolut inte att rekommendera.

* Användare A kan logga in med vilket lösenord som helst som finns i användartabellen.
* Hela tabellen loopas igenom för att hitta matchande fält, istället för att göra jämförelsen i SQL-frågan.
* IDGs inloggningsscript är kladdigt och onödigt mycket kod. Det räcker med 5 rader för att göra ett script som är åtminstone två miljoner gånger bättre och säkrare än IDGs.

Du kan ju roa dig lite med att söka på idg här i ASP-forumet om du vill... ;)

Mvh,

Medlem sedan jan. 20011 213 inlägg
#7

Hmm, intressant, hur ser IDG's kod ut jamnfort med den sakrare som du snackar om @nders?

Vill bara kolla sa att jag inte maste gora om hela mitt egan loginscript... ;)

Exemple nagon?

Medlem sedan juni 200032 967 inlägg
Medlem sedan jan. 20011 213 inlägg
#9

Ja, det ser jag ju att den inte ar sa stabil...

WHERE UserName = '" & Request.Form("Username") & "' AND Password = '" & Request.Form("Password") & "'"

Kan ju vara bra att ha med ;)

Dumma IDG, tur att man inte har lart sig genom de iaf :e

Medlem sedan juni 200032 967 inlägg
#10

En sak:

Man ska inte glömma bort att escape:a apostrofer från användarnamns- och lösenordsfälten. Båda ur säkerhetsaspekt och för att tillåta det tecknet i användarnamn och lösenord. :-)

Mvh,

Medlem sedan nov. 2001101 inlägg
#11

-> @nders

Man ska inte glömma bort att escape:a apostrofer från användarnamns- och lösenordsfälten. Båda ur säkerhetsaspekt och för att tillåta det tecknet i användarnamn och lösenord. :-)

Hur löser jag detta?

Medlem sedan juni 200032 967 inlägg
#12
strUserName = Replace(Request.Form("UserName"), "'", "''")

använd alltid escape:ade strängar i dina SQL-frågor.

Mvh,

Medlem sedan nov. 2001101 inlägg
#13

Tackar för lektionen

267 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)