Convert all characters to ' * ' where password is displayed...

D

David

Hi,

I have a field from my recordset called RS("Password").
If I wish to display each character as an asterix '*' how do I go
about it.
I've seen the replace function, but cannot work out how to do it for
how ever many characters there are in the record ?


Appreciate your help



David.
 
A

Alex Goodey

For i to Len(RS("Password"))
strPass = strPass & "*"
Next

then use strPass iin your display
 
D

David Gordon

Thanks,

I had just started to think about using For I = , but could not think
about the strPass = strPass & "*"


Nice one....Thanks
 
E

Evertjan.

Alex Goodey wrote on 02 feb 2004 in
microsoft.public.inetserver.asp.general:
For i to Len(RS("Password"))
strPass = strPass & "*"
Next

strPass = String(Len(RS("Password")),"*")
 
R

Ray at

strPass = String(Len(strPass), "*")

What is the reason you (OP) want to do this though? Why not just use a
length of *'s that isn't specific to the length of the user's password, if
you aren't going to display it? And you're aware of <input type=password>,
right?

Ray at work
 
R

Ray at

Peter Foti said:
Ray, I hope you're joking about <input type=password>. That is, I hope you
don't mean something like this:

<%
Response.Write "<input type=""password"" value=""" & RS("Password") & """>"
%>

As I'm sure you know, viewing the source of the document would reveal the
actual value of the password.


Yes, I know, but I still had to ask if the OP is aware of the password
input.

Ray at work
 
R

Ray at

Yes, exactly! Unfortunately, the OP has disappeared and we'll probably
never know...
 
J

Jeff Cochran

Well, perhaps for resetting a password (that is, admin never actually sees
the value currently stored, but can reset the password for an end user that
has forgotten it).

Even then, the display doesn't need to show a password or asterisks or
anything. An input to enter the new password and a change password
button is plenty. Of course that input would be Type = Password...
:)

Jeff
 
A

Aaron Bertrand [MVP]

Ah, true I suppose. I guess it depends on the context of who the user is
and what they're doing. For example, if this is an admin system listing all
of the users, then it shouldn't be putting the real password value in. But
if this is an individual user, then I suppose the main risk is that the page
could be stored in cache somewhere.

Presumably, the reason for displaying (that there is) a password at all, yet
not showing it, is so that it can be changed.

Unless there is a change to be made, I don't see any reason to display a
password form field at all. IMHO.

Rather than show ****** I think it would be more effective to only show the
password box when the user or admin requests to change it. *THAT* change
should use input type=password.

Even if the user is logged in, it's always a little extra precaution to
require that they enter their old password once (to confirm that someone
didn't happen upon someone else's workstation).
 
D

David Gordon

Alex,

This works well, but now I have the following problem.
I have the following code, but all the passwords listed as '*', are
displaying the same number of characters even though they should display
different numbers of characters..

My code....

_____________________________________________
else

For i = 1 to Len(RS("Password"))
strPass = strPass & "*"
Next

response.write blah blah blah....

do until RS.EOF

response.write "<tr><td>" & RS("UserID") & "</TD><TD>" & strPass &
"</TD><TD>" & RS("Email") & "</td></tr>"

RS.movenext

loop

_________________________________________


If I take the For loop out of the Do loop then it lists the passwords as
the first one only...I understand this. If it is left in the do loop, it
just adds the characters on for each user, so, it displays longer &
longer passwords...

I want it to display the number of characters in each users password as
follows:

User 1, password: ****
User 2, password: ********
User 3, password: ******

not...where all passwords shown are for user1

User 1, password: ****
User 2, password: ****
User 3, password: ****

or, where it just appends on to the end each loop

User 1, password: ****
User 2, password: ********
User 3, password: ************

What is the solution.....thanks.

David
 
B

Bob Barrows

David said:
Alex,

This works well, but now I have the following problem.
I have the following code, but all the passwords listed as '*', are
displaying the same number of characters even though they should
display different numbers of characters..

My code....

_____________________________________________
else

For i = 1 to Len(RS("Password"))
strPass = strPass & "*"
Next

response.write blah blah blah....

do until RS.EOF

response.write "<tr><td>" & RS("UserID") & "</TD><TD>" & strPass &
"</TD><TD>" & RS("Email") & "</td></tr>"

RS.movenext

loop

_________________________________________


If I take the For loop out of the Do loop then it lists the passwords
as the first one only...I understand this. If it is left in the do
loop, it just adds the characters on for each user, so, it displays
longer & longer passwords...

I want it to display the number of characters in each users password
as follows:

User 1, password: ****
User 2, password: ********
User 3, password: ******

not...where all passwords shown are for user1

User 1, password: ****
User 2, password: ****
User 3, password: ****

or, where it just appends on to the end each loop

User 1, password: ****
User 2, password: ********
User 3, password: ************

What is the solution.....thanks.
Set the value of strPass IN the loop, not outside it. strPass's value never
changes in your code ...

Bob Barrows
 
A

Alex Goodey

as some of the others pointed out, you can use this.

String(Len(RS("Password")),"*")

so you get this

response.write "<tr><td>" & RS("UserID") & "</TD><TD>" &
String(Len(RS("Password")),"*") &
"</TD><TD>" & RS("Email") & "</td></tr>"

if you still want to use the other way the FOR loop must be inside the Do
Until loop.
 
C

Chris Barber

Reset strPass to be vbNullString or "" at the start of each loop:

'Loop through the records.
Do Until RS.EOF

'No need to reset the password starts value if we are doing assignment only.
'Determine the correct length and fill with stars.
strPass = String(Len(RS.Fields("Password").Value), "*")

'Write the string to the browser
Response.Write "<tr><td>" & RS.Fields("UserID").Value & "</TD><TD>" &
strPass &
"</TD><TD>" & RS.Fields("Email").Value & "</td></tr>"

RS.MoveNext

Loop

NB: You should also be storing the password 'encrypted' in the DB - depends
on how paranoid you are!

Chris.

Alex,

This works well, but now I have the following problem.
I have the following code, but all the passwords listed as '*', are
displaying the same number of characters even though they should display
different numbers of characters..

My code....

_____________________________________________
else

For i = 1 to Len(RS("Password"))
strPass = strPass & "*"
Next

response.write blah blah blah....

do until RS.EOF

response.write "<tr><td>" & RS("UserID") & "</TD><TD>" & strPass &
"</TD><TD>" & RS("Email") & "</td></tr>"

RS.movenext

loop

_________________________________________


If I take the For loop out of the Do loop then it lists the passwords as
the first one only...I understand this. If it is left in the do loop, it
just adds the characters on for each user, so, it displays longer &
longer passwords...

I want it to display the number of characters in each users password as
follows:

User 1, password: ****
User 2, password: ********
User 3, password: ******

not...where all passwords shown are for user1

User 1, password: ****
User 2, password: ****
User 3, password: ****

or, where it just appends on to the end each loop

User 1, password: ****
User 2, password: ********
User 3, password: ************

What is the solution.....thanks.

David
 
A

Alex Goodey

sorry missed the last bit of your post, if you use the original way, just
clear strPass before the for loop

strPass = ""
For i = 1 to Len(RS("Password"))
strPass = strPass & "*"
Next
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top