Alpha Software Mobile Development Tools:   Alpha Anywhere    |   Alpha TransForm subscribe to our YouTube Channel  Follow Us on LinkedIn  Follow Us on Twitter  Follow Us on Facebook

Announcement

Collapse

The Alpha Software Forum Participation Guidelines

The Alpha Software Forum is a free forum created for Alpha Software Developer Community to ask for help, exchange ideas, and share solutions. Alpha Software strives to create an environment where all members of the community can feel safe to participate. In order to ensure the Alpha Software Forum is a place where all feel welcome, forum participants are expected to behave as follows:
  • Be professional in your conduct
  • Be kind to others
  • Be constructive when giving feedback
  • Be open to new ideas and suggestions
  • Stay on topic


Be sure all comments and threads you post are respectful. Posts that contain any of the following content will be considered a violation of your agreement as a member of the Alpha Software Forum Community and will be moderated:
  • Spam.
  • Vulgar language.
  • Quotes from private conversations without permission, including pricing and other sales related discussions.
  • Personal attacks, insults, or subtle put-downs.
  • Harassment, bullying, threatening, mocking, shaming, or deriding anyone.
  • Sexist, racist, homophobic, transphobic, ableist, or otherwise discriminatory jokes and language.
  • Sexually explicit or violent material, links, or language.
  • Pirated, hacked, or copyright-infringing material.
  • Encouraging of others to engage in the above behaviors.


If a thread or post is found to contain any of the content outlined above, a moderator may choose to take one of the following actions:
  • Remove the Post or Thread - the content is removed from the forum.
  • Place the User in Moderation - all posts and new threads must be approved by a moderator before they are posted.
  • Temporarily Ban the User - user is banned from forum for a period of time.
  • Permanently Ban the User - user is permanently banned from the forum.


Moderators may also rename posts and threads if they are too generic or do not property reflect the content.

Moderators may move threads if they have been posted in the incorrect forum.

Threads/Posts questioning specific moderator decisions or actions (such as "why was a user banned?") are not allowed and will be removed.

The owners of Alpha Software Corporation (Forum Owner) reserve the right to remove, edit, move, or close any thread for any reason; or ban any forum member without notice, reason, or explanation.

Community members are encouraged to click the "Report Post" icon in the lower left of a given post if they feel the post is in violation of the rules. This will alert the Moderators to take a look.

Alpha Software Corporation may amend the guidelines from time to time and may also vary the procedures it sets out where appropriate in a particular case. Your agreement to comply with the guidelines will be deemed agreement to any changes to it.



Bonus TIPS for Successful Posting

Try a Search First
It is highly recommended that a Search be done on your topic before posting, as many questions have been answered in prior posts. As with any search engine, the shorter the search term, the more "hits" will be returned, but the more specific the search term is, the greater the relevance of those "hits". Searching for "table" might well return every message on the board while "tablesum" would greatly restrict the number of messages returned.

When you do post
First, make sure you are posting your question in the correct forum. For example, if you post an issue regarding Desktop applications on the Mobile & Browser Applications board , not only will your question not be seen by the appropriate audience, it may also be removed or relocated.

The more detail you provide about your problem or question, the more likely someone is to understand your request and be able to help. A sample database with a minimum of records (and its support files, zipped together) will make it much easier to diagnose issues with your application. Screen shots of error messages are especially helpful.

When explaining how to reproduce your problem, please be as detailed as possible. Describe every step, click-by-click and keypress-by-keypress. Otherwise when others try to duplicate your problem, they may do something slightly different and end up with different results.

A note about attachments
You may only attach one file to each message. Attachment file size is limited to 2MB. If you need to include several files, you may do so by zipping them into a single archive.

If you forgot to attach your files to your post, please do NOT create a new thread. Instead, reply to your original message and attach the file there.

When attaching screen shots, it is best to attach an image file (.BMP, .JPG, .GIF, .PNG, etc.) or a zip file of several images, as opposed to a Word document containing the screen shots. Because Word documents are prone to viruses, many message board users will not open your Word file, therefore limiting their ability to help you.

Similarly, if you are uploading a zipped archive, you should simply create a .ZIP file and not a self-extracting .EXE as many users will not run your EXE file.
See more
See less

automate password reset

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    automate password reset

    Hello everyone. I have a simple login using an email address for the user and the password is then encrypted using md5(). I would like to create a form allowing the user to change their password OR click on a 'forgot my password' link that would then reset the password and email it to the user recommending that they change it to something they will remember.

    This is similar to what happens here in the forum if we were to forget our password. It is reset for us to a random password that is then emailed to us telling us to log in and change it right away.

    Before I start playing with xbasic and the various random functions, I wanted to see if anybody has already automated a process like this using xbasic (not web components) before I re-invent the wheel.

    Thanks.
    Cheryl
    #1 Designs By Pagecrazy
    http://pagecrazy.com/

    #2
    Re: automate password reset

    Here is the aftervalidate code from my lostpassword component. Just prior to this code, you would get the person to provide their username and then do a lookup to the username table, getting their email address on file. Of course if the username is not found, you fire an error saying not found.

    The code creates a new password such as ABC344RF, but you can play with that. It also posts the password to the table, but that is not required since it used the MD5() to authenticate.

    Code:
    IF (email_address = "") THEN
    	currentform.has_error = .t.
    	currentform.error_message = "Your Customer ID was found."
    ELSE
    	session.email_pass_sent = email_address
    	randnum = ceiling(rand() * 200)
    	newpass = upper(rand_string(3) + randnum + rand_string(2))
    	hashnewpass = md5(newpass)
    	
    	a_tbl = table.open("<ADB_Path>\customers")
    	query.order = "recno()"
    	query.filter = "username="+quote(username)
    	query.options = ""
    	a_tbl.query_create()
    	update.fields = 2
    	update.field1 = "password_hash"
    	update.field2 = "password"
    	update.expr1 = s_quote(hashnewpass)
    	update.expr2 = s_quote(newpass)
    	a_tbl.update()
    	dim e_subject as c
    	dim e_body as c
    	dim e_bcc as c
    	
    	e_bcc 		= ""
    	e_subject 	= "Message from XYZ"
    	e_body		= "We received a request to reset your online password. If you did not make this request, please contact..." + crlf(2) + "New password: " + newpass"
    	email_send(email_address,e_subject,e_body,"","",e_bcc,.F.,"","",alltrim(email_profile))
    END IF
    
    currentform.redirectTarget = "password_sent.a5w"
    
    END IF
    Steve Wood
    See my profile on IADN

    Comment


      #3
      Re: automate password reset

      You are the best Steve. That looks simple enough and exactly what I need to start with. I will be working on this in the upcoming week, you just saved me a lot of time, thanks a ton :)
      Cheryl
      #1 Designs By Pagecrazy
      http://pagecrazy.com/

      Comment


        #4
        Re: automate password reset

        Hi Steve,

        So much for getting back to this in a week. I am just now working on the login for my client's was and I have a couple questions for you ... if you don't mind further explaining some things to me :)

        Here is the aftervalidate code
        I am not using any web components .... Where/how to I use the aftervalidate event?

        email_send(email_address,e_subject,e_body,"","",e_bcc,.F.,"","",alltrim(email_profile))
        Is email_profile the name of your alpha client profile name?

        I had my client setup an email account that I can use for this purpose. I thought I would create an email profile in the alpha email client using this account info that he created for me. If I name the profile 'pwd', would alltrim(email_profile) become alltrim(pwd) .... or is email_profile something you declare elsewhere in code?

        Also, I added you to my skype, hoping you will accept me :)

        Thanks in advance
        Cheryl
        #1 Designs By Pagecrazy
        http://pagecrazy.com/

        Comment


          #5
          Re: automate password reset

          You can run the same code on a A5W page. I just happen to use it in a dialog event. The only values in the code I provided that are not defined in the code are email_address and email_profile. The former was obtained by looking up the UserName they provided and grabbig the email address on file, if any. Email_profile is the email profile set up in Alpha. I have several, so have to set this for the send function. Somewhere else it assignes my desired profile to email_profile. If you are using the default profile, you can just omit this parameter completely.
          Steve Wood
          See my profile on IADN

          Comment


            #6
            Re: automate password reset

            Thanks Steve. Am I correct that I would use the following to assign my desired profile?

            EMAIL_SET_ACTIVE( Profile_Name as C )

            Also, on another issue, I have not yet done my due diligence in searching ....

            I am using code for my login that I created over 3 years ago .... has something changed with using include files? I have the following:

            Code:
            <%A5 
            a5w_include("incl\addnewuser.a5w")     
            %>
            Unfortunately, the actual code is showing on the page? The help files still show a5w_include as valid. The page that has the include in it is 'register.a5w' which is in my webroot. I have a directory 'incl' in the webroot which is where my addnewuser.a5w file resides.

            Any ideas why my code shows instead of the file itself being included?

            Actually, as I look at my page in the browser further .... all of my
            Code:
            <%A5
            shows the actual code, not just the includes. I also have the following:

            Code:
            <%A5 if eval_valid("record_added") then
                ? "Your new image " + record_added + " was added.<br><br>"
            end if %>
            Which is showing the code exact as above instead of running the code. What am I doing wrong? It has been a while, but if memory serves me correctly .... do I need to start my page with something prior to my html/body tags so that it knows it is an a5w page and processes the commands properly?
            Cheryl
            #1 Designs By Pagecrazy
            http://pagecrazy.com/

            Comment


              #7
              Re: automate password reset

              Ignore my question on the include files and other a5 code not being run. I did NOT have the web app server started :(

              Other questions still apply :)

              Thanks
              Cheryl
              #1 Designs By Pagecrazy
              http://pagecrazy.com/

              Comment

              Working...
              X