$passmaman = "Valérie"
$passmaman2 = "valérie"
$passmaman3 = "valerie"
$passmaman4 = "Valerie"
$passpapa = "Arnaud"
$passpapa2 = "arnaud"
$passpapa3 = "Arno"
$passpapa4 = "arno"
$input = InputBox("détecteur de précense", "Entrez votre nom :")
If (($input <> $passmaman) And ($input <> $passmaman2) And ($input <> $passmaman3) And ($input <> $passmaman4)) Then
MsgBox(0,"détecteur de précense", "vous n'êtes pas enregistré!")
Exit
Else
MsgBox(0,"détecteur de présence", "bienvenue Valérie!")
Exit
EndIf
If (($input <> $passpapa) And ($input <> $passpapa2) And ($input <> $passpapa3) And ($input <> $passpapa4)) Then
MsgBox(0, "détecteur de précense", "vous n'êtes pas enregistré!")
Exit
Else
MsgBox(0, "détecteur de précense", "bienvenue Arnaud!")
Exit
EndIf
le but de ce code est : je rentre le nom de la personne et le script me dit "bienvenue Valérie " ou "bienvenue arnaud" si le nom est bon et "vous n'êtes pas enregistré" si il est faut.
mais le probleme est que : avec "bienvenue valérie " sa marche trés bien mais avec l'autre sa me donne toujours "vous n'êtes pas enregistré" et je ne comprend pas pourquoi. merci de me dire mon erreur
If ($input = $passmaman) or ($input = $passmaman2) or ($input = $passmaman3) or ($input = $passmaman4) Then
MsgBox(0,"détecteur de présence", "bienvenue Valérie!")
Exit
Else
If ($input = $passpapa) or ($input = $passpapa2) or ($input = $passpapa3) or ($input = $passpapa4) Then
MsgBox(0, "détecteur de présence", "bienvenue Arnaud!")
Exit
Else
MsgBox(0, "détecteur de présence", "vous n'êtes pas enregistré!")
Exit
EndIf
EndIf
MsgBox(0, "Détecteur de présence", "bienvenue " & _login()) ; zou, on concatenne l'appel a la fonction de login dans la fenetre d'accueil
; ici la suite du programme apres login
Func _login()
local $i,$j
Dim $Pass[2][2] = [["Valérie", "valerie"],["Arnaud", "arno"]] ; un tableau ou le premier nom de chaque colonne est la 'bonne' orthographe du nom
For $essai = 1 To 3
$input = InputBox("Essai N° " & $essai, "Détecteur de présence" & @CRLF & "Entrez votre nom :")
For $i = 0 To UBound($Pass, 1)-1
For $j = 0 To UBound($Pass, 2)-1
If StringUpper($Pass[$i][$j]) = StringUpper($input) Then Return $Pass[$i][0]
Next
Next
Next
MsgBox(0, "Détecteur de présence", "3 echecs consécutifs,"&@crlf&"vous n'êtes pas enregistré!")
Exit
EndFunc
$input = InputBox("détecteur de précense", "Entrez votre nom :")
If Not userexist($input) Then
MsgBox(16,"Non Authentifé","Vous n'êtes pas reconnu")
Else
MsgBox(0,"Bienvenu","Bonjour "&StringUpper($input))
EndIf
Func userexist($user)
Local $candiat[2]=["val(e|é)rie","arn(o|aud)"]
Local $ind
For $ind=0 To UBound($candiat)-1
If StringRegExp($user,"\A(?i)"&$candiat[$ind]&"\Z")<>0 Then Return 1
Next
Return 0
EndFunc
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
$nam=InputBox("détecteur de présence","Entrez votre nom :")
If StringInStr("valérievaleriearnaudarno",$nam) Then
MsgBox(0, "détecteur de présence", "bienvenue " & $nam)
Else
MsgBox(0,"détecteur de présence", "vous n'êtes pas enregistré!")
EndIf
Overflow, ton script est tres compact... peut etre trop. Tu as saccrifié l'efficacité a la compacité.
Si en mot de passe je tappe juste une lettre, au hasard, le 'e' , bin ca marche. Donc a mon avis, tu vas etre recalé...
@spikousss, c'est sur le premier message qu'il faut mettre le R
zeshrek a écrit :Overflow, ton script est tres compact... peut etre trop. Tu as saccrifié l'efficacité a la compacité.
Si en mot de passe je tappe juste une lettre, au hasard, le 'e' , bin ca marche. Donc a mon avis, tu vas etre recalé...
et d ailleurs cette erreur est presente sur tout les script utilisant "StringInStr" ^^
Global $apass[4] = ["valérie", "valerie", "arnaud", "arno"], $Title = "détecteur de présence"
TestPass(InputBox($Title, "Entrez votre nom :"))
MsgBox(0, $Title, "La suite du code")
Func TestPass($strInput)
For $i = 1 To UBound($apass) - 1
If $strInput = $apass[$i] Then
MsgBox(0, $Title, "bienvenue " & $apass[$i] & "!")
Return
EndIf
Next
MsgBox(0, $Title, "vous n'êtes pas enregistré!")
Exit
EndFunc ;==>TestPass