Gå til innhold

Få php til å lage bilder.


Anbefalte innlegg

Skrevet

Hei!

Jeg lurer på hvordan det er mulig å få php til å lage bilder?

Når jeg sier bilder tenker jeg på sånn security code greie, sånn som det er ved innloggingen i phpnuke.

Videoannonse
Annonse
Skrevet

er ikke helt sikker på vha du mener med securitygreie, men hvis det er er sånn ordsak(ja det er litt vanskelig å definere) som finnes på mange registrerings sider for mail og annet så ikke programmer kan registrere seg der automatisk:

 

en måte er da:

 


<?php

header ("Content-type: image/png");

$test = crypt(rand());



$im = @ImageCreate (100, 20)

    or die ("Something went wrong in the making of the image");

$background_color = ImageColorAllocate ($im, 255, 255, 255);

$text_color = ImageColorAllocate ($im, rand(0, 255), rand(0, 255), rand(0, 255));

ImageString ($im, 3, 4, 4, $test, $text_color);

ImagePNG ($im);

?>

 

nå lager denne riktignok ikke ord som gir noen særlig mening, hvis du vil ha det må :

$text = crypt(rand());

byttes ut med et array med mulige ord som du forhåndsvelger.

Skrevet

Hvordan er det jeg kan lage det slik att det kun er bokstaver (a-z) og tall som kommer opp, og att man må skrive inn de bokstavene og tallene for å komme videre?

Skrevet

husker ikke helt i farten, men lurer på om det blir noe sånt:


<?php

header ("Content-type: image/png");

$test = rand();



$im = @ImageCreate (100, 20)

    or die ("Something went wrong in the making of the image");

$background_color = ImageColorAllocate ($im, 255, 255, 255);

$text_color = ImageColorAllocate ($im, rand(0, 255), rand(0, 255), rand(0, 255));

ImageString ($im, 3, 4, 4, $test, $text_color);

ImagePNG ($im);

?> 

har bare fjernet crypt.

Skrevet

Nå kom det bare opp tall.

Men hvordan kan jeg gjøre det sånn at man må skrive inn det som står på bildet i en textbox og klikke på en button får å komme videre?

Skrevet

tror det blir litt feil sånn for da kommer vel egentlig bare tall, hvis du vil ha tall og bokstaver kan du feks bruke:

 


<?php

function randStr( $length ) {

 if( $length > 36 ) {

    return "ERROR";

 }else{

    $str = md5(mktime());

    $cutoff = 31 - $length;

    $start = rand(0, $cutoff);

    return substr($str, $start, $length);

 }

}



header ("Content-type: image/png");

$test = randStr("10");



$im = @ImageCreate (100, 20)

    or die ("Something went wrong in the making of the image");

$background_color = ImageColorAllocate ($im, 255, 255, 255);

$text_color = ImageColorAllocate ($im, 0, 0, 0);

ImageString ($im, 3, 4, 4, $test, $text_color);

ImagePNG ($im);

?>



Skrevet

Det funka bra.

Men hvordan i huleste kan jeg lage det sånn at man må skrive inn det som står der for å komme videre???

Skrevet

Om detta skal funke må jo php vite verdien av strengen i bildet. Derfor må du finne en lur måte å gjøre den tilgjengelig på, en enkel og usikker måte er jo å sende variablen med som en hidden post variabel.

Grunnen til at det mange steder er sånne bilder, er for å validere om det faktisk er ett menneske som registrerer seg og ikke ett script. Men ett script kan lett finne den skjulte post variablen, derfor er det ikke sikkert.

Du kunne jo lage det slik at hver gang sida blei lastet satte du teksten i bildet inn i en database og når brukern klikka på submit, blei teksten brukern tasta inn sjekka opp mot databasen. Mye rart en kunne finni på da...

Skrevet

hmm...

 

Hva med å styre passordet på tid? Ved å endre verifiseringsordet etter et tidsskjema, "vet" skriptet hvilket passord som skal returneres uavhengig av tilbakemelding fra klient.

Skrevet
hmm...

 

Hva med å styre passordet på tid? Ved å endre verifiseringsordet etter et tidsskjema, "vet" skriptet hvilket passord som skal returneres uavhengig av tilbakemelding fra klient.

Tviler på at det er så sikkert...

Skrevet

det jeg egentlig tenkte på med de scriptene jeg skrev over her var at når rand.php kjøres så skriver den variabelen rett inn i script.php fila. Tror dette skal være ganske sikkert.

 

Edit: men jeg får det riktignok ikke til å fungere.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...