Besoin d'aide en CLIPPER

Bjour a tous,

J'ai des problemes en CLIPPER

Je dois créer un prog de gestion de mot de passe pour entrer dans un programme!!!

COMMENT PUIS JE FAIRE???

AIDEZ MOI SVP C'EST TRES IMPORTANTS POUR MON ANNEE SCOLAIRE merci d'avance a tous

4 réponses

  1. Bonjour,

    Essaye un peu ça (en changeant les caractères)

    * MotPasse.PRG - Mot de passe.
    * ----------------------------
    *
    * Ceci est le programme dans lequel je dois rentrer avec un mot de passe.
    *
    @ 10,10 SAY "Entrez votre mot de passe : " && Pour indiquer où mettre l'affichage de la fonction MOT.
    *
    MotOk="dupont" && Bon mot de passe qui peut venir d'un fichier.
    *
    IF Mot(MotOk) && Si le bon retour.
    @ 20,10 SAY "Le mot de passe est correct, bienvenue."
    ELSE
    @ 20,10 SAY "Mot de passe incorrect ! Accès refusé"
    WAIT "Appuyez sur une touche pour quitter"
    RETURN
    ENDIF
    *
    WAIT "Appuyez sur une touche pour continuer ce programme"
    *
    * Programme à exécuter.
    *
    RETURN && Ou QUIT.
    *
    * --------------------------------------------------------------
    *
    FUNC MOT(Mot)
    *
    * MOT = Chaîne de caractère du mot à saisir.
    *
    LOCAL E:=SAVESCREEN(0,0,MAXROW(),MAXCOL()), ; && Sauvegarde écran.
    R:= .F. , ; && Retour mot incorrect
    V:="" , ; && Chaîne qui se construit avec les frappes clavier.
    C:=0 && Valeur du caratère frappé au clavier.
    *
    CLEA TYPE && Vide de buffer du clavier pour éviter erreurs.
    *
    DO WHIL C<>13 && Sortie sur <RETURN>.
    C=INKEY()
    IF (C>47 .AND. C<91) .OR. (C>96 .AND. C<123) && Liste des caractères acceptés.
    V=V+CHR(C) && La chaîne se construit.
    @ ROW(), COL() SAY "X"
    C=0
    ENDI
    ENDD
    IF V==Mot && Si c'est le bon mot.
    R=.T. && C'est vrai.
    ENDIF
    RETURN R

    Bon développement
    0
    1. Bernard Mouille,

      Toujours en Congé ou tu m'as oublié?

      LoL

      J'ai vraiment besoin de tes lanternes

      JEFFREY T
      0
    2. @JEFFREY TBonjour Jeffrey,

      Non, je ne t'ai pas oublié mais j'ai beaucoup de travail en ce moment.

      Regarde un peu, j'ai fais quelques modifications à ton programme, mais je n'ai pas le temps d'approfondir :

      http://bernard.mouille.free.fr/jeffrey/mpassw.txt

      Comme je te l'ai dit l'autre jour, regarde bien tes boucles pour sortir "EXIT" ou revenir en haut de la boucle "LOOP".

      Bon développement

      Bernard
      0
  2. Bernard,

    J'aurais besoin d'un coup de main ; STP c'est toujours AUSSI IMPORTANT!!!!!!

    use pass
    index on pass to ind_pass

    set wrap on

    set color to ("w/b","w/r")

    set message to 24 center

    public fin
    test=0

    v_nom=space(15)
    v_statut=space(10)
    v_pass=space(10)
    v_id=0
    v_rep=space(1)

    PUBLIC options[2]
    options[1]="OUI"
    options[2]="NON"

    PUBLIC statut[3]
    statut[1]="ADMINISTRATEUR"
    statut[2]=" EMPLOYE "
    statut[3]=" CHEF "

    PUBLIC super[5]
    super[1]="Ajout"
    super[2]="Pack"
    super[3]="Recall "
    super[4]="Modifier "
    super[5]="Supprimer "

    test=0

    DO WHILE .T.

    go top
    blanc()
    locate for (id=1)

    if (id <> 1)
    clear
    alert("Il n'y as pas d'ADMINISTRATEUR")
    droit={.T.,.F.,.F.}
    resu=achoice(9,15,9,27,statut,droit)

    @07,5 say "Nom : " get v_nom
    @09,5 say "Statut : "
    @11,5 say "Pass : " get v_pass
    @13,5 say "Sur : " get v_rep PICTURE "Y"
    resu1=1
    read

    if v_rep = "Y"
    append blank
    replace nom with v_nom
    replace stat with statut[resu]
    replace pass with v_pass
    replace id with resu
    alert("Fiche cr‚e")
    fin=.F.

    else

    alert("Fiche non sauv‚e")
    blanc()
    fin=.F.
    end if
    else
    end if

    blanc()
    clear
    @1,5 say "**********************************"
    @2,5 say "** GESTION DE MOT DE PASSE **"
    @3,5 say "**********************************"

    @5,5 say "Nom : " get v_nom PICTURE "@A"
    @7,5 say "Pass : " get v_pass PICTURE "@A"
    read

    seek(v_nom)
    if found()
    if v_pass = pass
    if id=1
    clear
    menu to test
    test=1
    fin=.F.
    else
    clear
    menu to test
    test=2
    fin=.F.
    blanc()
    end if
    else
    clear
    alert("Mot de passe incorrect")
    fin=.F.
    blanc()
    end if
    else
    alert(v_nom+", n'existe pas dans notre base")
    fin=.F.
    blanc()
    end if

    do while .T.

    DO CASE
    Case test = 1
    ecran()
    menu to principal

    DO CASE

    case principal = 1

    droit={.T.,.T.,.T.,.T.}
    resu=achoice(2,3,10,15,super,droit)
    fin=.T.

    do while fin

    if resu = 1
    ecran()
    blanc()
    droit={.T.,.T.,.T.}
    resu1=achoice(9,18,9,30,statut,droit)

    @07,5 say "Nom : " get v_nom
    @09,5 say "Statut : "
    @11,5 say "Pass : " get v_pass
    @13,5 say "Sur : " get v_rep PICTURE "Y"
    read

    if v_rep = "Y"
    append blank
    replace nom with v_nom
    replace stat with statut[resu1]
    replace pass with v_pass
    replace id with resu1
    alert("Fiche cr‚e")
    fin=.F.

    else

    alert("Fiche non sauv‚e")
    blanc()
    fin=.F.
    end if

    elseif resu=2
    ecran()
    pack
    alert("Fiche supprim‚es d‚finitivement!")
    fin = .F.

    elseif resu=3
    ecran()
    recall
    alert("Fiche restaur‚es")
    fin = .F.

    elseif resu=4
    fin=.T.
    do while fin
    ecran()
    blanc()
    @07,5 say "Nom : " get v_nom
    read

    seek (v_nom)

    if found()
    @07,5 say "Nom : " get v_nom
    @09,5 say "Statut : " get stat
    @11,5 say "Pass : " get v_pass
    @13,5 say "Delete? : " get v_rep PICTURE "Y"
    read

    if v_rep="Y"
    replace nom with v_nom
    replace stat with statut[resu1]
    replace pass with v_pass
    replace id with resu1
    ecran()
    alert("Fiche modifi‚e")
    fin=.F.
    else
    ecran()
    alert("Fiche non modifi‚e")
    fin=.F.
    end if
    fin=.F.

    else
    alert(v_nom+", n'existe pas dans notre base")
    ecran()
    fin=.F.
    end if

    end do

    else
    fin=.T.
    do while fin
    ecran()
    blanc()
    @07,5 say "Nom : " get v_nom
    read

    seek (v_nom)

    if found()
    @07,5 say "Nom : " get nom
    @09,5 say "Statut : " get stat
    @11,5 say "Pass : " get pass
    @13,5 say "Delete? : " get v_rep PICTURE "Y"
    read

    if v_rep="Y"
    ecran()
    delete
    alert("Fiche en suppression")
    else
    alert("Fiche non supprim‚e")
    end if
    fin=.F.

    else
    alert(v_nom+", n'existe pas dans notre base")
    ecran()
    fin=.F.
    end if

    end if
    end do
    end do

    case principal = 2

    ecran()
    blanc()
    seek (v_nom)

    if found()
    @07,5 say "Nom : " get nom
    @09,5 say "Statut : " get stat
    @11,5 say "Pass : " get v_pass
    @13,5 say "Delete? : " get v_rep PICTURE "Y"
    read

    if v_rep="Y"
    ecran()
    replace nom with v_nom
    replace stat with statut[resu1]
    replace pass with v_pass
    replace id with resu1
    alert("Votre fiche est modifi‚e")
    else
    alert("Votre fiche n'a pas ‚t‚ supprim‚e")
    end if
    fin=.F.

    else
    alert(v_nom+", n'existe pas dans notre base")
    ecran()
    fin=.F.
    end if

    case principal = 3
    go top
    acColonnes={"nom","stat","pass","id"}
    dbedit(2,1,24,79,acColonnes)

    case principal = 4
    RETURN

    END CASE

    case test=2
    wait

    END CASE

    enddo
    ENDDO

    **************************************************************
    function ecran()
    clear
    @1,02 prompt "SUPER UTILISATEUR"
    @1,23 prompt "CHEF/EMPLOYE"
    @1,45 prompt "LISTE UTILISATEURS"
    @1,65 prompt "RETOUR AU DOS"
    return

    function blanc()
    v_nom=space(15)
    v_statut=space(10)
    v_pass=space(10)
    v_id=0
    v_rep=space(1)
    return
    0
    1. Bonjour Jeffrey,

      Je n'ai pas trop le temps en ce moment, mais essaye de modifier :

      INDE ON NOM TO (ton index) tu as mis pass
      SET INDE TO (ton index)
      to première boucle .T. ne sort pas, essaye de mettre
      DO WHILE fin

      Je regarde après mes vacances

      Bonnes fêtes

      BM
      0
    2. Quelqu'un d'autre que Bernard peut m'aider???????????

      PLEASE???
      0
    3. @JEFFREY Tsalut jeffrey je vois que le programme de bernard sur le mot e passe est tre tre tre tre tre tre compliquer si tu na pas trouve de reponse contacter moi sur ma boite
      faycal.trans@yahoo.fr
      0
    4. pour votre mot passe apres compile il a donner les erreurs suivante
      problemme de declaration
      1 vous avez declarer v_id=0
      2 dans locate for (id=1)
      il de declaration de id

      solution soit que vous declare id=0
      est vous laisser lacte for (id=1)

      ou vous laisser v_id=0
      et vous changer locate for (v_id=1)

      s il s agit d un autre problemme contacter moi sur ma boite
      faycal.trans@yahoo.fr
      0
  3. utilise cette fonction pour verivier l'exactitude d'un mot de pass
    Function PWORD(mp)
    local ret_val:=.T.
    tone(500,1)
    setcursor(1)
    Set Color To 15/1, 0/7
    dispbox(12,19,14,55,1)

    For j:= 1 To 3

    @ 13, 20 Say "ENTREZ LE MOT DE PASSE : "
    b:= ""

    @ 13,45 Say " "
    @ 13,45 Say ""
    For i:= 45 To 52
    a:= 0
    a:= InKey(0)
    If (a == 13)
    Exit
    EndIf
    b:= b + Chr(a)

    @ 13, i Say "."
    sound(350,1)
    Next
    if ( ret_val := (upper(alltrim(b)) == upper(alltrim(mp))) )
    b:= "1"
    Exit
    j:= 4
    EndIf
    sound(350,1)
    InKey(0.1)
    sound(300,1)
    Next

    If (b != "1")
    Set Color To 7/0
    quit

    Else
    sound(300,1)
    Return ret_val
    Endif

    (lib funkcy et ct3 )
    0
    1. tu demand a l'utilisateur de selectionNer ou de saisir son "USER"
      c'est a toi de voir et apres tu vas lire le "USER" dans un fichier et recuperer le mot de pass de preference crypter avec les fonctions CRYPT ET DECRYPT dans une variable et pword(variable)
      l'utilisateur va saisir le mot de pass s'il est autentifier alors il accede sinon il refait ça 3 fois et apres il quite le programme

      bon courage!
      0
    2. @rezak la lumiereBouh c'est pour dans 1semaine et j'arrive a rien!!!!!!!

      Qui a FAIT CE LANGAGE DE PROGRAMMATION DE MERDE!!!!!!

      Bouhhhhhhhhhhhh chui découragé! En Plus de 2sem j'ai pas avancé pcq ca va pas!

      Qu'est ce qu'il ne va pas dans mon prog ci dessus et comment pourrai je l'ameliorer!???

      Je m'en refère à vous!

      MErci D'AvAnCe

      JEFFREY T
      0
    3. Salut Rezak , je recherche des lib pour clipper 5 , je suis un programmeur autodicdacte , je te remerci de ta reponce ...
      0
  4. salut jeffrey si tu na pas trouves le programme du mat de passe contacter moi sur ma boite
    faycal.trans@yahoo.fr
    0