Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
blog:captcha_amb_cobol [2020/11/20 00:47] – [CAPTCHA amb COBOL] falkenblog:captcha_amb_cobol [2020/11/20 11:37] (current) falken
Line 40: Line 40:
 En la WORKING-STORAGE SECTION afegirem les variables que utilitzem per al Captcha: En la WORKING-STORAGE SECTION afegirem les variables que utilitzem per al Captcha:
  
- 
-       77  CAPTCHA-Y        PIC 9(2) VALUE 1. 
        77  captchafilename  PIC X(25) VALUE SPACES.        77  captchafilename  PIC X(25) VALUE SPACES.
        01  BANNERCMD        PIC x(22) value "/usr/bin/figlet-figlet".        01  BANNERCMD        PIC x(22) value "/usr/bin/figlet-figlet".
Line 53: Line 51:
            ACCEPT random-number FROM ENVIRONMENT "RANDOM2".            ACCEPT random-number FROM ENVIRONMENT "RANDOM2".
  
-Aquesta sentència pren un nombre al·leatori de la variable d'entorn (de la shell Unix) $RANDOM2.+☝ Aquesta sentència pren un nombre al·leatori de la variable d'entorn (de la shell Unix) $RANDOM2.
  
            IF random-number = SPACE OR random-number = LOW-VALUE THEN            IF random-number = SPACE OR random-number = LOW-VALUE THEN
Line 61: Line 59:
            END-IF            END-IF
  
-Aquest bloc controla que s'hagi rebut un nombre des de la variable d'entorn $RANDOM2.+☝ Aquest bloc controla que s'hagi rebut un nombre des de la variable d'entorn $RANDOM2.
  
  
Line 67: Line 65:
             FUNCTION CONCATENATE(BANNERCMD " " random-number " > /tmp/.rnd-" random-number)             FUNCTION CONCATENATE(BANNERCMD " " random-number " > /tmp/.rnd-" random-number)
            END-CALL.            END-CALL.
 +  
            MOVE FUNCTION CONCATENATE("/tmp/.rnd-" random-number) TO captchafilename            MOVE FUNCTION CONCATENATE("/tmp/.rnd-" random-number) TO captchafilename
 +  
            OPEN INPUT captchafile            OPEN INPUT captchafile
            READ captchafile            READ captchafile
Line 90: Line 88:
            ACCEPT CAPTCHA AT 2026 WITH TIMEOUT AFTER 20 ON EXCEPTION STOP RUN.            ACCEPT CAPTCHA AT 2026 WITH TIMEOUT AFTER 20 ON EXCEPTION STOP RUN.
  
-Aquí demanem a l'usuari que escrigui el nombre que apareix al Captcha i ho desem dins la variable CAPTCHA.+☝ Aquí demanem a l'usuari que escrigui el nombre que apareix al Captcha i ho desem dins la variable CAPTCHA.
  
            IF CAPTCHA IS NOT EQUAL TO random-number THEN            IF CAPTCHA IS NOT EQUAL TO random-number THEN
Line 101: Line 99:
            END-IF.            END-IF.
  
-I en el bloc de dalt controlem si l'usuari ha entrat correctament el codi o no. Segons el resultat, el programa agafa un camí (continuar l'execució) o l'altre (STOP RUN).+☝ I en el bloc de dalt controlem si l'usuari ha entrat correctament el codi o no. Segons el resultat, el programa agafa un camí (continuar l'execució) o l'altre (STOP RUN).
  
 Aquest procediment és molt millorable. Per exemple, hauriem de poder realitzar programàticament, en Cobol, el següent: Aquest procediment és molt millorable. Per exemple, hauriem de poder realitzar programàticament, en Cobol, el següent: