Captcha Class.

Gestart doorErik46 reacties196 weergaven

47 berichten · pagina 3 van 4

Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Post je hele script eens (dus + aanroepen enzo)? emo
0
Erik

Lid · Topicstarter

Berichten
7.109
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
[COLOR= #0000BB]<?php[/COLOR]
[URL="http://www.php.net/require_once"]require_once[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"cls/captcha.cls.php"[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #FF8000]// De captcha aanmaken[/COLOR]
[COLOR= #0000BB]$cap[/COLOR] [COLOR= #007700]= new[/COLOR] captcha[COLOR= #007700]([/COLOR][COLOR= #0000BB]200[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]20[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #FF8000]// De code maken[/COLOR]
[COLOR= #0000BB]$cap[/COLOR][COLOR= #007700]->[/COLOR]code[COLOR= #007700]();[/COLOR]
[COLOR= #FF8000]// De lijnen tekenen[/COLOR]
[COLOR= #0000BB]$cap[/COLOR][COLOR= #007700]->[/COLOR]line[COLOR= #007700]();[/COLOR]
[COLOR= #FF8000]// De captcha weergeven[/COLOR]
[COLOR= #0000BB]$cap[/COLOR][COLOR= #007700]->[/COLOR]view[COLOR= #007700]();[/COLOR]
?>


[COLOR= #0000BB]<?php[/COLOR]
[COLOR= #FF8000]/*
 * @Author: Erik
 * @Version 1.0
 * @Copy 2009
 * @Package Captcha Class
*/[/COLOR]
[URL="http://www.php.net/class"]class[/URL] captcha
[COLOR= #007700]{[/COLOR]
    [COLOR= #FF8000]/*
     * @Var int
     * @Access public
    */[/COLOR]
    [URL="http://www.php.net/public"]public[/URL] [COLOR= #0000BB]$cap[/COLOR][COLOR= #007700];[/COLOR]
    [COLOR= #FF8000]/*
     * @Var int
     * @Access public
    */[/COLOR]
    [URL="http://www.php.net/public"]public[/URL] [COLOR= #0000BB]$code[/COLOR][COLOR= #007700];[/COLOR]
    [COLOR= #FF8000]// De constructor[/COLOR]
    [URL="http://www.php.net/public"]public[/URL] [COLOR= #007700]function[/COLOR] __construct[COLOR= #007700]()
    {[/COLOR]
        [COLOR= #FF8000]// De captcha maken[/COLOR]
        [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]cap [COLOR= #007700]=[/COLOR] imagecreate[COLOR= #007700]([/COLOR][COLOR= #0000BB]200[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]20[/COLOR][COLOR= #007700]);[/COLOR]
        [COLOR= #FF8000]// De achtergrond maken[/COLOR]
        [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]createbg[COLOR= #007700]();[/COLOR]
        [COLOR= #FF8000]// De code genereren[/COLOR]
        [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]code[COLOR= #007700]();
    }[/COLOR]
    [COLOR= #FF8000]// De achtergrond kleur functie[/COLOR]
    [URL="http://www.php.net/public"]public[/URL] [COLOR= #007700]function[/COLOR] createbg[COLOR= #007700]()
    {[/COLOR]
        [COLOR= #FF8000]// De achtergrond kleur maken[/COLOR]
        [COLOR= #0000BB]$bg[/COLOR] [COLOR= #007700]=[/COLOR] imagecolorallocate[COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]cap[COLOR= #007700],[/COLOR] [COLOR= #0000BB]255[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]255[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]255[/COLOR][COLOR= #007700]);
    }[/COLOR]
    [COLOR= #FF8000]// De code functie[/COLOR]
    [URL="http://www.php.net/public"]public[/URL] [COLOR= #007700]function[/COLOR] code[COLOR= #007700]()
    {[/COLOR]
        [COLOR= #FF8000]// De letters en cijfers in een variabel zetten[/COLOR]
        [COLOR= #0000BB]$chars[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array_merge"]array_merge[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/range"]range[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]a[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]z[/COLOR][COLOR= #007700]),[/COLOR] [URL="http://www.php.net/range"]range[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]A[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]Z[/COLOR][COLOR= #007700]),[/COLOR] [URL="http://www.php.net/range"]range[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]0[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]9[/COLOR][COLOR= #007700]));[/COLOR]
        [COLOR= #FF8000]// De letters en cijfers weergeven[/COLOR]
        [COLOR= #0000BB]$count[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/rand"]rand[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]4[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]8[/COLOR][COLOR= #007700]);[/COLOR]
        [COLOR= #0000BB]$ret[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000][/COLOR][COLOR= #007700];[/COLOR]
        [COLOR= #0000BB]$chars_count[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/count"]count[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$chars[/COLOR][COLOR= #007700]);[/COLOR]
        [URL="http://www.php.net/for"]for[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #0000BB]$i[/COLOR][COLOR= #007700]<[/COLOR][COLOR= #0000BB]$count[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #0000BB]$i[/COLOR][COLOR= #007700]++)
        {[/COLOR]
            [COLOR= #0000BB]$ret[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #0000BB]$chars[/COLOR][COLOR= #007700][[/COLOR][URL="http://www.php.net/rand"]rand[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$chars_count[/COLOR] [COLOR= #007700]-[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700])];
        }[/COLOR]
        [URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]$ret[/COLOR][COLOR= #007700];
    }[/COLOR] 
    [COLOR= #FF8000]// De lijnen functie[/COLOR]
    [URL="http://www.php.net/public"]public[/URL] [COLOR= #007700]function[/COLOR] line[COLOR= #007700]()
    {[/COLOR]
        [COLOR= #FF8000]// Een for[/COLOR]
        [URL="http://www.php.net/for"]for[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #0000BB]$i[/COLOR][COLOR= #007700]<[/COLOR][COLOR= #0000BB]10[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #0000BB]$i[/COLOR][COLOR= #007700]++)
        {[/COLOR]
            [COLOR= #FF8000]// X Start[/COLOR]
            [COLOR= #0000BB]$xs[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/rand"]rand[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]200[/COLOR][COLOR= #007700]);[/COLOR]
            [COLOR= #FF8000]// X Eind[/COLOR]
            [COLOR= #0000BB]$xe[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/rand"]rand[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]200[/COLOR][COLOR= #007700]);[/COLOR]
            [COLOR= #FF8000]// Y Start[/COLOR]
            [COLOR= #0000BB]$ys[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/rand"]rand[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]20[/COLOR][COLOR= #007700]);[/COLOR]
            [COLOR= #FF8000]// Y Eind[/COLOR]
            [COLOR= #0000BB]$ye[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/rand"]rand[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]20[/COLOR][COLOR= #007700]);[/COLOR]
            [COLOR= #FF8000]// De lijnen tekenen[/COLOR]
            imageline[COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]cap[COLOR= #007700],[/COLOR] [COLOR= #0000BB]$xs[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$ys[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$xe[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$ye[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]colorl[COLOR= #007700]());
        }
    }[/COLOR]
    [COLOR= #FF8000]// De lijn kleur[/COLOR]
    [URL="http://www.php.net/public"]public[/URL] [COLOR= #007700]function[/COLOR] colorl[COLOR= #007700]()
    {[/COLOR]
        [COLOR= #FF8000]// De lijn een kleur geven[/COLOR]
        [COLOR= #0000BB]$colorl[/COLOR] [COLOR= #007700]=[/COLOR] imagecolorallocate[COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]cap[COLOR= #007700],[/COLOR] [URL="http://www.php.net/rand"]rand[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]255[/COLOR][COLOR= #007700]),[/COLOR] [URL="http://www.php.net/rand"]rand[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]255[/COLOR][COLOR= #007700]),[/COLOR] [URL="http://www.php.net/rand"]rand[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]255[/COLOR][COLOR= #007700]));[/COLOR]
        [COLOR= #FF8000]// De kleur weergeven[/COLOR]
        [URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]$colorl[/COLOR][COLOR= #007700];
    }[/COLOR]
    [COLOR= #FF8000]// De tekst kleur[/COLOR]
    [URL="http://www.php.net/public"]public[/URL] [COLOR= #007700]function[/COLOR] colort[COLOR= #007700]()
    {[/COLOR]
        [COLOR= #FF8000]// De tekst een kleur geven[/COLOR]
        [COLOR= #0000BB]$colort[/COLOR] [COLOR= #007700]=[/COLOR] imagecolorallocate[COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]cap[COLOR= #007700],[/COLOR] [URL="http://www.php.net/rand"]rand[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]255[/COLOR][COLOR= #007700]),[/COLOR] [URL="http://www.php.net/rand"]rand[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]255[/COLOR][COLOR= #007700]),[/COLOR] [URL="http://www.php.net/rand"]rand[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]255[/COLOR][COLOR= #007700]));[/COLOR]
        [COLOR= #FF8000]// De kleur weergeven[/COLOR]
        [URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]$colort[/COLOR][COLOR= #007700];
    }[/COLOR]
    [COLOR= #FF8000]// De weergeef functie[/COLOR]
    [URL="http://www.php.net/public"]public[/URL] [COLOR= #007700]function[/COLOR] view[COLOR= #007700]()
    {[/COLOR]
        [COLOR= #FF8000]// De headers[/COLOR]
        [URL="http://www.php.net/header"]header[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]Content-Type: image/png[/COLOR][COLOR= #007700]);[/COLOR]
        [COLOR= #FF8000]// De tekst erop zetten[/COLOR]
        imagestring[COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]cap[COLOR= #007700],[/COLOR] [COLOR= #0000BB]3[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]60[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]75[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]code[COLOR= #007700](),[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]colort[COLOR= #007700]());[/COLOR]
        [COLOR= #FF8000]// De weergever[/COLOR]
        imagepng[COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]cap[COLOR= #007700]);
    }
}[/COLOR]
?>
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Je coordinaten kloppen niet; (60, 75) valt buiten je afbeelding.
0
Erik

Lid · Topicstarter

Berichten
7.109
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
@Lennard, hij werkt nu, alleen t word één kleur (de letters).
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Dat klopt, dan moet je code() één karakter terug laten geven en met imagestring() apart erop laten zetten met een aparte kleur.
0
Erik

Lid · Topicstarter

Berichten
7.109
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Huuuuuh. emo
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Lukt je wel. emo pompom
0
Erik

Lid · Topicstarter

Berichten
7.109
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Leg t is wat beter uit Lennard. emo
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Ik ga niet die hele code voor je maken, maar wil wel een opzetje maken. emo
[COLOR= #0000BB]<?php[/COLOR]
[URL="http://www.php.net/class"]class[/URL] captcha
[COLOR= #007700]{[/COLOR]
    
    [URL="http://www.php.net/public"]public[/URL] [COLOR= #0000BB]$cap[/COLOR][COLOR= #007700];[/COLOR]
    
    [URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] code[COLOR= #007700]()
    {[/COLOR]
        
        [COLOR= #0000BB]$range[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array_merge"]array_merge[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/range"]range[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]a[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]z[/COLOR][COLOR= #007700]),[/COLOR] [URL="http://www.php.net/range"]range[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]A[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]Z[/COLOR][COLOR= #007700]),[/COLOR] [URL="http://www.php.net/range"]range[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]9[/COLOR][COLOR= #007700]));[/COLOR]
        [URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]$range[/COLOR][COLOR= #007700][[/COLOR][URL="http://www.php.net/rand"]rand[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700],[/COLOR] [URL="http://www.php.net/count"]count[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$range[/COLOR][COLOR= #007700]) -[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700])];
        
    }[/COLOR]
    
    [URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] randomColor[COLOR= #007700]()
    {[/COLOR]
        
        [URL="http://www.php.net/return"]return[/URL] imagecolorallocate[COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]cap[COLOR= #007700],[/COLOR] [URL="http://www.php.net/rand"]rand[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]50[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]255[/COLOR][COLOR= #007700]),[/COLOR] [URL="http://www.php.net/rand"]rand[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]50[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]255[/COLOR][COLOR= #007700]),[/COLOR] [URL="http://www.php.net/rand"]rand[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]50[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]255[/COLOR][COLOR= #007700]));
        
    }[/COLOR]
    
    [URL="http://www.php.net/public"]public[/URL] [COLOR= #007700]function[/COLOR] view[COLOR= #007700]()
    {[/COLOR]
        
        [COLOR= #0000BB]$count[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/rand"]rand[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]4[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]8[/COLOR][COLOR= #007700]);[/COLOR]
        
        [URL="http://www.php.net/for"]for[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]<[/COLOR] [COLOR= #0000BB]$count[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #0000BB]$i[/COLOR][COLOR= #007700]++)
        {[/COLOR]
            
            imagestring[COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]cap[COLOR= #007700],[/COLOR] [COLOR= #0000BB]3[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]60[/COLOR] [COLOR= #007700]+[/COLOR] [COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]*[/COLOR] [COLOR= #0000BB]5[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]75[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]code[COLOR= #007700](),[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]randomColor[COLOR= #007700]());
            
        }
        
    }
    
}[/COLOR]


Aan jou de taak het in die class te bouwen. coool
0
Erik

Lid · Topicstarter

Berichten
7.109
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
En wat doet die for() in view()?
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Ervoor zorgen dat er 4 tot 8 karakters in je captcha komen.
0
Erik

Lid · Topicstarter

Berichten
7.109
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Is het voor bots moeilijk om die te ontcijferen?
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Mwah, de meeste spammers en bots houdt hij wel tegen; als blijkt dat er heel veel bot-aanmeldingen komen verander je je captcha iets en kan hij weer een tijdje mee.
0
Erik

Lid · Topicstarter

Berichten
7.109
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Afbeelding
Zo ziet er dat dan uit.
0
Berichten
1.160
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Umm niet te lezen op mijn beeldscherm is ook brighter dan normaal.
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren