Potato_Tomato420 Posted January 27, 2021 Share Posted January 27, 2021 Hi all, I'm scripting a login system for my server. In the registration process a new player must enter a valid and working email. To ensure the player use his own email, the resource will send a mail with a "activation code". Once the player received the email, he will find a activation code to activate his account. So now i got the problem that the script keeps saying that the activation code is wrong. I don't know what i did wrong but i'm sure the code from the mail and the code i filled in are correct. I thing it's a little bug but i don't understand how i could possibly solve this Spoiler elseif (source == SendConCodeBtn) then if ((DGS:dgsGetText (emailBoxReg)) == (DGS:dgsGetText (emailConBoxReg))) then if not (DGS:dgsGetText (emailBoxReg) == "") then DGS:dgsSetEnabled (emailBoxReg, false) DGS:dgsSetEnabled (emailConBoxReg, false) DGS:dgsSetEnabled (SendConCodeBtn, false) DGS:dgsSetEnabled (emailCodeBoxReg, true) DGS:dgsSetEnabled (activateAccBtn, true) local sendto = DGS:dgsGetText (emailBoxReg) theCode = math.random (10000000, 99999999) setElementData (getLocalPlayer(), "player.code", theCode) triggerServerEvent ("sendEMail", resourceRoot, sendto, theCode) else errorWdn (14) end else errorWdn (13) end actCodeBoxState = true elseif (source == activateAccBtn) then theCode = getElementData (getLocalPlayer(), "player.code") inputCode = DGS:dgsGetText (emailCodeBoxReg) if theCode == inputCode then DGS:dgsSetVisible (registerWdn, false) outputDebugString ("code work (got code) " ..(curCode)) outputDebugString ("box " ..(inputCode)) else outputDebugString ("wrong code ".. (curCode)) outputDebugString ("box " ..(inputCode)) end Link to comment
Moderators IIYAMA Posted January 27, 2021 Moderators Share Posted January 27, 2021 3 minutes ago, Potato_Tomato420 said: I thing it's a little bug but i don't understand how i could possibly solve this It is a bit strange that serverside does not validate the code. This even makes it even possible for other players to modify your code, if those players can inject Lua. But about your problem, 1 of the 2 have to be incorrect: iprint("theCode=", theCode, "\ninputCode=",inputCode) Debug to figure out which one is broken. Link to comment
Potato_Tomato420 Posted January 27, 2021 Author Share Posted January 27, 2021 (edited) Do i need to check the activation code serverside? That seems like a bad idea to me. The debug does already shows both codes and seems to be ok.. but still Debug: Spoiler Edited January 27, 2021 by Potato_Tomato420 Link to comment
Moderators IIYAMA Posted January 27, 2021 Moderators Share Posted January 27, 2021 21 minutes ago, Potato_Tomato420 said: The debug does already shows both codes and seems to be ok.. but still Convert both codes to a string. Maybe one is a number and one is a string. if tostring(theCode) == tostring(inputCode) then end 22 minutes ago, Potato_Tomato420 said: Do i need to check the activation code serverside? That seems like a bad idea to me. That is what people normally do for security reasons. Do what you want. Link to comment
Potato_Tomato420 Posted January 27, 2021 Author Share Posted January 27, 2021 Thx, adding tostring seams to work. Still i don't get it why i need to add tostring to convert the numbers to a string. The debug was showing both codes and the seems to be ok but still that didn't work. But thx for the support! I almost got a headache because i could solve it xDD Link to comment
Moderators IIYAMA Posted January 27, 2021 Moderators Share Posted January 27, 2021 (edited) 1 hour ago, Potato_Tomato420 said: The debug was showing both codes and the seems to be ok but still that didn't work. That is the tricky part about strings and numbers, they are represents each other a lot, but at the core they are very different. The console will indeed not show any difference between strings and numbers, that is also because everything inside of the debug console is already converted to a string. All string indications " " - ' ' - [[ ]] are not included. To debug that correctly, you can use the type function. Edited January 27, 2021 by IIYAMA Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now