Gå til innhold

Valideringskode i form


Anbefalte innlegg

Hei!

 

Driver en side der vi har et medlemsforum levert av en gratis tjeneste. Problemet er nå blitt at det er komme utrolig mye spam postet av roboter der. Derfor har jeg nå bygd et enkelt forum fra bunnen av i php. Men jeg ønsker en validerings sak som gjør at roboter ikke kan poste. Sånn som er på mange sider der du skriver inn noen tall og bokstaver fra et bilde. Hva er enkleste måten å lage dette på i php? Kanskje noen har noe ferdig de vil dele med meg?

Lenke til kommentar
Videoannonse
Annonse

Her er en kode jeg har brukt:

 

<?php
/* Lagre denne filen som f.eks. bilde.php, så bruker du <img src="bilde.php"> */
session_start();
$rand = rand(10000, 99999); //Her lages tallet

$_SESSION['imagevalue'] = md5($rand); /* Her blir tallet puttet inn i sesjonen med md5 kryptering. Får å skjekke det senere om det er rett:
if ($_SESSION['imagevalue'] === md5($_POST['feltet_ditt'])) { echo "korrekt" }
*/

$image = imagecreate(60, 30);
$bgColor = imagecolorallocate ($image, 255, 255, 255);
$textColor = imagecolorallocate ($image, 0, 0, 0);
imagestring ($image, 5, 5, 8, $rand, $textColor);
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header('Content-type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
?>

Lenke til kommentar

Du lager en fil som du kaller bilde.php ja, i formen skal du sette inn <img src="bilde.php"> og en input der de skal skrive det som står på bilde, så må du etterpå før du legger til innlegget sjekket om input er lik $_SESSION['imagevalue']

Lenke til kommentar
Du lager en fil som du kaller bilde.php ja, i formen skal du sette inn <img src="bilde.php"> og en input der de skal skrive det som står på bilde, så må du etterpå før du legger til innlegget sjekket om input er lik $_SESSION['imagevalue']

6450604[/snapback]

 

På den måten ja.. Må lage en if setning som sjekker $_SESSION['imagevalue'] da?

 

Edit: så ikke kommentaren før nå... Da setter jeg jo bare den inn i siden som skal motta formen.

 

Jeg får ikke til å få opp bildet, får bare rødt kryss. Når jeg prøver å åpne bilde.php i web leseren min får jeg meldingen:

 

Fatal error: Call to undefined function: imagecreate() in /usr/local/apache/htdocs/la7g/forum/validering/bilde.php on line 11

 

Må jeg ha noe tillegg?

Endret av TheBoz
Lenke til kommentar
du mangler vel http://no.php.net/gd

6450714[/snapback]

 

Sånn, da har jeg recompilert apache med php sånn at bildet fungerer. Men får ikke sjekkingen til å fungere. Setter inn følgende i php fila som mottar dataene fra skjemaet via post:

 

if ($_SESSION['imagevalue'] === md5($_POST['kode'])) {

echo "korrekt";

}

 

Men får det ikke til å fungere. Får ikke korrekt selv om jeg skriver riktig kode. Hva kan dette komme av? Må jeg ha med noe mer i den fila?

 

Er det forresten riktig at det skal være 3 =? Jeg har prøvd med 2 også men det gjorde ikke noe forskjell.

Lenke til kommentar

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...