10 berichten aan het bekijken - 1 tot 10 (van in totaal 10)
  • Q:
    Bijdrager
    dfI*)#[email protected](*_)$U#JHEN#[email protected]$(#@Halert(‘hi’);

    GD Graphics Library [Activatie code]

    Hey,

    Ik ben bezig met een gastenboekje voor een website en omdat op die website eerst nog wel is veel spam kwam wil ik er een kleine activatie code in maken. Ik weet hoe ik een afbeelding maak, deze code heb ik trouwens ergens weggeript alleen weet ik niet meer waar.
    [code:1:9a771ba330]<?php
    session_start();
    header("Content-type: image/jpeg");
    $img = @imagecreate(100,20);
    $bg = imagecolorallocate($img, 255, 255, 255);
    $txt = imagecolorallocate($img, 0, 0, 0);
    $seed = time();
    $seed = srand($seed);
    $rand = md5(rand());
    $seed2 = date("zs");
    $seed2 = srand($seed2);
    $start = rand(0,22);
    $code = substr($rand,$start,8);
    $_SESSION[’code’] = $code;
    imagestring($img, 10, 5, 2, $_SESSION[’code’], $txt);
    $angle_choice = date("sz");
    $angle_choice = srand($angle_choice);
    $angle_choice = rand(1,2);
    $angle_choice = ($angle_choice == 1)?"angle_neg" : "angle_pos";
    $angle_neg = rand(-7,-2);
    $angle_pos = rand(7,2);
    $rotate = imagerotate($img,$$angle_choice,$bg);
    imagejpeg($rotate);
    imagedestroy($rotate);
    imagedestroy($img);
    ?>[/code:1:9a771ba330]
    Hoe kan ik dit nou vergelijken met een ingevuld veld bij het gastenboek iets als dit… :
    [code:1:9a771ba330]<input type="text" name="activatie" value="<?php $checkimage ?>"
    <img src="checkimage.php" />[/code:1:9a771ba330]

    alleen hoe kan ik de random cijfers uit de afbeelding als variabel krijgen op de website? :? Zodat ik ze kan vergelijken met de ingevoerde gegevens en de gegevens op de afbeelding? Misschien simpel maar ik weet het niet :innocent:

    Bijdrager
    hansenonline

    als je de tekst apart laat genereren en daarna de functie van het plaatje en hierin $tekst gebruiken heb je het plaatje met de tekst, daarna lees je de invoer in een string die $invoer heet bijv. waarna je de conditie stelt if $tekst == $invoer ga verder met je site else ga terug naar het plaatje om nieuwe tekst in te voeren.
    ik ben geen kei in php, maar door het gewoon uit te schrijven weet j wat er moet gebeuren en kan je dit in een boek of via het internet wel oplossen.

    succes.

    Bijdrager
    computer space

    $code bevat de combinatie die omgezet wordt naar een afbeelding, dus je moet het invoerveld vergelijken met deze variabele. Als dat hetzelfde is mag de gebruiker verder gaan.

    Bijdrager
    dfI*)#[email protected](*_)$U#JHEN#[email protected]$(#@Halert(‘hi’);

    @Martini,

    Dat weet ik als ik gewoon echo $code; krijg ik niks te zien. Als ik session_register(“code”); doe en laat de sessie uitlezen krijg ik ook niks te zien. Wel de afbeelding maar niet gewoon tekst.

    Bijdrager
    computer space

    Dat ding is md5 gecodeerd. Probeer eens [code:1:353c9fa159]if ($code==md5($input)) then[/code:1:353c9fa159]

    Bijdrager
    dfI*)#[email protected](*_)$U#JHEN#[email protected]$(#@Halert(‘hi’);

    ja ok, maar volgens mij wordt hij voordat hij $code wordt, is hij al gecodeerd. maar ik probeer het is.

    //edit: nee werkt niet, even voor de duidelijkheid.

    Ik heb dus een bestandje waar die GD instaat genaamd imagecheck.php
    en een pagina waar het moet gechecked worden gastenboek.php

    Als ik nu gewoon dit doe[code:1:df5b7edbf1]echo $code;[/code:1:df5b7edbf1] krijg ik niks te zien. Dus $code bestaat niet,
    de md5 wordt ook niet helemaal gebruikt hij pakt nu 8 getallen / letters ergens in het midden.
    Of heeft iemand wel een iets andere die wel makkelijk werkt?

    Bijdrager
    computer space

    vervang dit:
    [code:1:d10a37fb92]$seed = time();
    $seed = srand($seed);
    $rand = md5(rand());
    $seed2 = date("zs");
    $seed2 = srand($seed2);
    $start = rand(0,22);
    $code = substr($rand,$start,8); [/code:1:d10a37fb92]
    door dit:
    [code:1:d10a37fb92]$seed = time();
    $seed = srand($seed);
    $rand = "29837n5c8qbqxnp98z3ufa8ehxfn89ye8c9523mx7ynrg7hmpz894yn5ca2m3x8p98uw4npt8cnzso7etnxc7a4ymtc89panw89xn89pawy";
    $start = rand(0,99);
    $code = substr($rand,$start,8);[/code:1:d10a37fb92]
    Een bot kan je code toch niet uitlezen, dus dat md5 is niet speciaal nodig. Ik heb gewoon een string met 108 tekens gemaakt waaruit ie een willekeurig stuk pakt.

    Bijdrager
    dfI*)#[email protected](*_)$U#JHEN#[email protected]$(#@Halert(‘hi’);

    toch kan ik $code niet opvragen, ik denk omdat mijn ‘image’ pagina niet doorzocht wordt op 1 of andere manier…

    :?

    Bijdrager
    computer space

    Volgens mij moet je wat variabelen global configureren. Je zit toch met meerdere php bestanden te werken. Moet er data van bestand 1 naar bestand 2?

    global $code;

    Bijdrager
    dfI*)#[email protected](*_)$U#JHEN#[email protected]$(#@Halert(‘hi’);

    nog niet… ik kan hem ook niet includen want dan denkt gastenboek.php dat het een afbeelding moet zijn.

10 berichten aan het bekijken - 1 tot 10 (van in totaal 10)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.