Captcha script

Door - Raoul -, 17 jaar geleden, 8.940x bekeken

Dit is een captchascript die samenwerkt met GD libary.
-- SORRY, ben heel druk bezig en ik heb nu geen tijd om het script aan te passen --

-- Voorbeeld even niet beschikbaar --

Gesponsorde koppelingen

PHP script bestanden

  1. captcha.php
  2. captchaControleren.php
  3. captchaImage.php

 

Er zijn 13 reacties op 'Captcha script'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Pim -
Pim -
17 jaar geleden
 
0 +1 -0 -1
Waarom maar tot 5000?
En verder is het niet zo'n heel goede.
- Raoul -
- Raoul -
17 jaar geleden
 
0 +1 -0 -1
Zodat hij 4 tekens toont..? Natuurlijk kan je hem ook groter maken
- Mark -
- Mark -
17 jaar geleden
 
0 +1 -0 -1
Dus 5001 tot 9999 bestaat niet uit 4 cijfers? Er is inderdaad nog wel wat ruimte voor verbetering.
- Raoul -
- Raoul -
17 jaar geleden
 
0 +1 -0 -1
Goed ik pas het eve aan ;)
Kunnen jullie ook zeggen wat je graag verbeterd wilt hebben???
- Mark -
- Mark -
17 jaar geleden
 
0 +1 -0 -1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php

$captcha
= $_POST['captcha'];
$sessionCaptcha = $_SESSION['code'];

?>


Dat is niet nodig, Gewoon de originele variabelen gebruiken.

Controleren of er een request is wordt gedaan met.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$_SERVER
['REQUEST_METHOD'] == 'POST'
?>


Iets meer inspringen is mooier al kan dat persoonlijk zijn.

Er zijn nog een aantal dingen maar ik moet eerst even wat anders afmaken voor het donker wordt buiten. Ik post de rest straks wel.
- Raoul -
- Raoul -
17 jaar geleden
 
0 +1 -0 -1
Goed, ik verbeter al enkele dingen.
- Mark -
- Mark -
17 jaar geleden
 
0 +1 -0 -1
Ik heb hem nog niet eens op werking getest maar je captcha zal nooit doen waarvoor hij bedoeld is, Botjes zullen er niet echt moeite mee hebben want de captcha staat in je bron code. Gebruik niet $_GET bij het aanroepen van de captcha afbeending maar de $_SESSION

1. Gebruik geen die() voor fout afhandeling, Er hoeft niemand dood als er iets fout is gegaan.

2. Zoals ik al eerder zei, $_SERVER['REQUEST_METHOD'] == 'POST' gebruiken voor het controleren of een formulier is verzonden.

3. Onderstaande kun je net zogoed samenvoegen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
// hier genereren we de captcha code

$captcha = rand(1000,5000);

// en we stellen een session in met de gerenegeerde captcha code

$_SESSION['code'] = $captcha;


4. Meer inspringen is geen luxe.

5. Betere fout afhandeling, Ik zou de controle of de ingevoerde captcha geldig is zowieso in een functie zetten.

6. Dat je naar een 2de pagina gaat voor de controlle is niet echt mooi maar dat kan persoons gebonden zijn.

7. Waarom heb je een leeg stuk
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php ?>
staan op het einde van captcha.php?

8. Geen tabellen voor de opmaak van een formulier.

Je zou ook wat meer uitleg mogen geven over de werking en dan met name over het gebruik van session_start(); want daar gaan heel veel beginnende mensen zeer waarschijnlijk de fout mee in als ze het in gebruik willen nemen.

Over het gedeelte dat de afbeelding genereerd kan ik niet veel zeggen. Daar ben ik niet echt in thuis.


17 jaar geleden
 
0 +1 -0 -1
Bots zijn slim genoeg om te zien dat ze dat zie die get parameter moeten invullen in dat input boxje.
Ik heb je laatst helemaal uitgelegd waarom je niet die moet gebruiken, en nu doe je het wel....
Forms hoor je niet te stylen in tabellen.
- Mark -
- Mark -
17 jaar geleden
 
0 +1 -0 -1
Een paar kleine stukjes code, De captcha_check() functie gaat er wel van uit dat zowel het formulier veld als de captcha sessie captcha heet. Dit kun je natuurlijk altijd aanpassen. De rest mag je er zelf bij verzinnen. Hou er wel rekening mee dat dit eigenlijk niet het probleem moet vormen, Je captcha moet sterk zijn en ik gok dat je afbeelding gemakkelijk te kraken is.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php

    /*---- INFO! ---->
    
        Functie voor het controleren of de ingevoerde captcha correct is.
                
    */

    
        function captcha_check(){
            
            return ($_POST['captcha'] == $_SESSION['captcha']) ? true : false ;
        }

        
?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php

    /*---- INFO! ---->
    
        Stukje voorbeeld code voor het gebruik van de captcha_check() functie.
                
    */

    #| Set ' $resultaat ' variabele voor het opslaan van het resultaat.

    
        $resultaat = '';
        

    #| Controleren of het formulier is verzonden.
    
        if($_SERVER['REQUEST_METHOD'] == 'POST'){

        /*---- INFO: Ja het formulier is verzonden. ----*/

        #| Controleren of de ingevoerde captcha correct is ingevoerd.

        
            if(captcha_check()){
            
            /*---- INFO: Hoera! De ingevoerde captcha is correct. ----*/

                $resultaat = 'Hoera! De ingevoerde captcha is correct.';
                
            }

            else{

            /*---- INFO: Helaas! De ingevoerde captcha is incorrect. ----*/
                        
                $resultaat = 'Helaas! De ingevoerde captcha is incorrect.';
                
            }
        }


?>
- Raoul -
- Raoul -
17 jaar geleden
 
0 +1 -0 -1
@Karl: De gebruiker moet de form maar zelf stylen. Ik kan moeilijk bepalen hoe hij wil dat het eruit ziet? Ik haal morgen ook de die(); s eruit.

@Mark: waarom zou de afbeelding makkelijk te kraken zijn?

Ik heb ook enkele dingen aangepast.


17 jaar geleden
 
0 +1 -0 -1
Is inderdaad erg simpel. Zie bijvoorbeeld dit.
- Raoul -
- Raoul -
17 jaar geleden
 
0 +1 -0 -1
Script is aangepast.
De ?captcha parameter is er ook uit gehaald uit de URL van de captchafoto.
De die(); s zijn ook weg.

Nog enkele verbeteringen?
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
- Mark -
- Mark -
17 jaar geleden
 
0 +1 -0 -1
Test je code eens, Het werkt niet eens wat je hebt veranderd. Je hebt het commentaar in mijn stukjes veranderd maar niet daadwerkelijk gelezen wat er stond. Het waren voorbeeld stukjes die je moest aanpassen maar je hebt het er gewoon in geknald.

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. captcha.php
  2. captchaControleren.php
  3. captchaImage.php

Labels

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.