Besoin d'aide en CLIPPER

JEFFREY T -  
 faycal -
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. Bernard.Mouille
     
    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. JEFFREY T Messages postés 1 Statut Membre
       
      Bernard Mouille,

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

      LoL

      J'ai vraiment besoin de tes lanternes


      JEFFREY T
      0
      1. Bernard.Mouille > JEFFREY T Messages postés 1 Statut Membre
         
        Bonjour 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. JEFFREY T
     
    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. Bernard.Mouille
       
      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. JEFFREY T
       
      Quelqu'un d'autre que Bernard peut m'aider???????????

      PLEASE???
      0
      1. faycal > JEFFREY T
         
        salut 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
    3. faycal
       
      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. rezak la lumiere
     
    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. rezak la lumiere
       
      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
      1. JEFFREY T > rezak la lumiere
         
        Bouh 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
    2. babords Messages postés 2 Statut Membre
       
      Salut Rezak , je recherche des lib pour clipper 5 , je suis un programmeur autodicdacte , je te remerci de ta reponce ...
      0
  4. faycal
     
    salut jeffrey si tu na pas trouves le programme du mat de passe contacter moi sur ma boite
    faycal.trans@yahoo.fr
    0