plgii Posted April 12, 2006 Posted April 12, 2006 I found the following script posted, but it errors out with If Not $INISECTION[0][0]>=1 Then Return 0 If Not $INISECTION^Error Error: Subscript used with non-Array variable can anyone post a fix to this? This is a great script and work well for me. Thanks here is the script: #include <guiconstants.au3> VERIFYUSER() Func VERIFYUSER() Local $FILEPATHTOINI = @DesktopDir & 'Data\pass.INI'; CHANGE THIS TO THE PATH OF YOUR INI $VERIFYGUI = GUICreate('Username - Password Validation', 210, 145) GUICtrlCreateLabel('USERNAME', 10, 10) $USERNAME = GUICtrlCreateInput('', 10, 30, 190, 20) GUICtrlCreateLabel('PASSWORD', 10, 60) $PASSWORD = GUICtrlCreateInput('', 10, 80, 190, 20, $ES_PASSWORD) $SUBMIT = GUICtrlCreateButton('SUBMIT', 75, 110, 50, 30) GUISetState() While 1 $MSG = GUIGetMsg() Select Case $MSG = $GUI_EVENT_CLOSE Exit Case $MSG = $SUBMIT $READUSERNAME = GUICtrlRead($USERNAME) $READPASSWORD = GUICtrlRead($PASSWORD) If $READUSERNAME <> '' And $READPASSWORD <> '' Then $CHECKUP = CHECKUSERNAMEPASSWORD($READUSERNAME, $READPASSWORD, $FILEPATHTOINI) If $CHECKUP == 0 Then If MsgBox(68, 'INFO:', 'WE DO NOT SEEM TO HAVE YOUR USERNAME AND PASSWORD ON FILE?' _ & @CR & 'WOULD YOU LIKE TO USE THIS INFO YOU HAVE PROVIDED TO CREATE ONE?') == 6 Then CREATEUSERNAMEPASSWORD($READUSERNAME, $READPASSWORD, $FILEPATHTOINI) EndIf ElseIf $CHECKUP == 1 Then MsgBox(64, 'SUCCESS', 'YOU HAVE BEEN LOGGED IN') ExitLoop EndIf Else MsgBox(64, 'ERROR', 'YOU DID NOT FILL IN EITHER THE USERNAME OR PASSWORD.') EndIf EndSelect WEnd GUIDelete($VERIFYGUI) EndFunc Func CHECKUSERNAMEPASSWORD($v_USERNAME, $v_PASSWORD, $h_FILEPATH) Local $INISECTION = IniReadSection($h_FILEPATH, 'UsernamePassword') Local $FOUND = 0 If Not $INISECTION[0][0] >= 1 Then Return 0 For $iINIREAD = 1 To $INISECTION[0][0] If StringInStr($INISECTION[$iINIREAD][0], $v_USERNAME) And StringInStr($INISECTION[$iINIREAD][1], $v_PASSWORD) Then $FOUND = 1 ExitLoop EndIf Next If $FOUND = 1 Then Return 1 EndFunc Func CREATEUSERNAMEPASSWORD($v_USERNAME, $v_PASSWORD, $h_FILEPATH) IniWrite($h_FILEPATH, 'UsernamePassword', $v_USERNAME, $v_PASSWORD) EndFunc
Developers Jos Posted April 12, 2006 Developers Posted April 12, 2006 It means the IniReadSection() command failed so test on te next line for @error.... SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past.
Moderators big_daddy Posted April 12, 2006 Moderators Posted April 12, 2006 It sounds like you don't have the ini file created yet.
plgii Posted April 12, 2006 Author Posted April 12, 2006 It sounds like you don't have the ini file created yet.I do have it created in folder called Data on my desktop, and this is where the script is also but not sure I am entering it correctly in the @DesktopDir
PsaltyDS Posted April 12, 2006 Posted April 12, 2006 (edited) I do have it created in folder called Data on my desktop, and this is where the script is also but not sure I am entering it correctly in the @DesktopDir Add this to the top of your function: Func VERIFYUSER() Local $FILEPATHTOINI = @DesktopDir & 'Data\pass.INI'; CHANGE THIS TO THE PATH OF YOUR INI If Not FileExist($FILEPATHTOINI) Then MsgBox(16, "Error", "File not found: " & $FILEPATHTOINI) Return 0 ; (I'm assuming 0=fail for this function) EndIf . . . EndFunc If it fails there it will tell you where it was looking. Edited April 12, 2006 by PsaltyDS Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law
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