Comparer codes confidentiels

Eh oui encore moi,

Maintenant ma difficulté est de comparer le code du champ ([LesCodes_Interne]CodePerso_Conf) avec le code rentré à la demande.

$dem:=Demander(“Entrez votre code”)
Si (ok=1)
Au cas ou
: ($dem=[LesCodes_Interne]CodePerso_Conf) // | (Utilisateur courant=“Structure”)
Ajout_Gerant
: ($dem#"")
ALERTE(“Votre code est erroné”)
Bye
Sinon
BEEP
Fin de cas
Fin de si

Si vous avez la solution je suis preneur
Encore merci

Il manque un chercher dans ton code, je ne vois pas à quoi tu peux comparer la saisie sinon :
chercher([laTable];[laTable]leCode=$codeSaisi)

Et si tu veux distinguer majuscules minuscules il faut faire un comparaison de chaine "stricte"car le comparateur “=” ne différencie pas des masses (e=E=é=è) :
<code 4D>
au cas ou
:(longueur($codeSaisi)#longueur([laTable]leCode))
//c’est différent
:(Position($codeSaisi;[laTable]leCode;*)#1)
//c’est encore différent
Sinon
//c’est pareil
fin de cas
</code 4D>

ou utiliser une clé de hash pour tester les deux codes. Exemple

<code 4D>
$originalCC:=“chocolat951”
$originalCCmd5:=Generate digest($originalCC;MD5 digest)

$myCC:=Request(“Please enter your confidential code here :”;“chocolat951”)

$myCCmd5:=Generate digest($myCC;MD5 digest)

If ($originalCCmd5=$myCCmd5)
ALERT(“OK”)
Else
ALERT(“Not OK”)
end if
</code 4D>

Bonjour à tous, merci Arnaud , Maurice et les Autres
J’explique mon problème,
Dans un champ [MaTable]Code_confidentiel il y a un code à 12 chiffres et lettres qui change automatiquement toute les 72 heures. Un autre programme externe sur une autre ordi dans une autre ville permet de connaitre le code à chaque période de 72h.
Mon problème est de comparer le code tournant dans le champ [MaTable]Code_confidentiel avec le code fourni pour exécution de la méthode "Ajout_Gerant "
Avec plusieurs test sur les codes, ils sont identiques, mais le message d’erreur revient quand même.

$dem:=Demander(“Entrez votre code”)
Si (ok=1)
Au cas ou
: ($dem=[MaTable]Code_Confidentiel) // | (Utilisateur courant=“Structure”)
Ajout_Gerant
: ($dem#"")
ALERTE(“Votre code est erroné”)
Bye
Sinon
BEEP
Fin de cas
Fin de si

Dans quelle mesure récupérer le code contenu dans [MaTable]Code_Confidentiel pour l’inscrire ici "(exp)
:($dem=“1k2Z3#5dc2Fs”)

Ou faire autrement.
Merci de votre aide

est-ce que le champ [MaTable]Code_confidentiel est bien chargé ?

Je répète ce que j’ai dit plus haut et sur quoi Maurice a renchéri : où est la recherche de l’enregistrement avec lequel faire la comparaison ?
Et quel est ce message d’erreur ?

Le champ est bien chargé,
une recherche directe (CHERCHER(MaTable;MaTable]Code_Activation=$dem) est faite.

En test, j’ai mon champ " MaTable]Code_Activation " visible dans mon formulaire, je n’ai donc qu’a recopier le code inscrit pour remplir la demande, mais l’alerte (code erroné) est activé.

Je tiens à préciser que j’utilise très souvent ce bout de script "avec écrit en dur un $Dem=“nimportequoi” sans aucun problème mais jamais avec le contenu d’un champ

PS: je ne comprend pas l’anglais, si vous pouviez faire en Français ça m’aiderai beaucoup (" Generate digest " je ne sais pas )

De quel type est le champ “[MaTable]Code_Confidentiel” ?

Champ alpha ( il y a un mélange de Chiffre et lettres )
Generate digest c’est quoi comme commande en français ?

http://doc.4d.com/4Dv16R6/4D/16-R6/Generer-digest.301-3547511.fr.htmlGenerer digest>

Bonjour Arnaud
Tout fonctionne parfaitement, c’est génial
Merci à tous pour vos solutions
Au prochain sujet qui ne va pas tarder.

Juste une remarque (je ne sais pas en quelle version vous êtes): il y
a une note dans la doc qui peut être interessante à noter:

: Doc 4D v16R5

Note : Il est fortement déconseillé d’utiliser les algorithmes MD5 ou
SHA pour gérer les mots de passe ; si vous souhaitez vérifier des
mots de passe, nous recommandons l’utilisation des commandes
<http://doc.4d.com/4Dv16R6/4D/16-R6/Generer-hash-mot-de-passe.301-3547
15.fr.html>Generer hash mot de passe> et
<http://doc.4d.com/4Dv16R6/4D/16-R6/Verifier-hash-mot-de-passe.301-354
516.fr.html>Verifier hash mot de passe>.

Donc, quand vous passerez en v17, pensez à utiliser cette nouvelle commande plus sûr.

Bonjour Manuel,

Je viens de mettre en place ce que tu m’a envoyé, c’est plus que parfait

Merci