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. salut jeffrey si tu na pas trouves le programme du mat de passe contacter moi sur ma boite
    faycal.trans@yahoo.fr
    0
    1. 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
    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. 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