Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/08/2008, 14:01
magTpeak
 
Fecha de Ingreso: septiembre-2007
Mensajes: 189
Antigüedad: 16 años, 7 meses
Puntos: 1
Real Capcha - El blindaje perfecto contra los bots

Acabo de desarollar un script PHP que es muy fuerte contra los bots ;D
Consiste en lo siguiente:
Tienes que decir cual es la accion que hace la persona de la imagen. Cada imagen tiene en la base de datos una definicion determinada de la accion. Aqui un ejemplo:

Aqui el codigo: xD
SQL:
Código:
--
-- Estructura de tabla para la tabla `capcha`
--

CREATE TABLE IF NOT EXISTS `capcha` (
  `id` int(11) NOT NULL auto_increment,
  `answer` varchar(250) NOT NULL,
  `img` varchar(250) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

--
-- Volcar la base de datos para la tabla `capcha`
--

INSERT INTO `capcha` (`id`, `answer`, `img`) VALUES
(1, 'Eating', '7.jpg'),
(2, 'Playing fotball', '8.jpg'),
(3, 'Talking on the phone', '11.jpg');
capcha.php
Código PHP:
<?
session_start
();
include(
"capcha_mysql.php");

$query mysql_query("SELECT * FROM capcha ORDER BY rand() LIMIT 5");
$sql mysql_fetch_array($query);
$_SESSION['answer'] = $sql['answer'];

header("Content-type: image/jpeg");
$im = @imagecreatefromjpeg("http://www.forosdelweb.com/images/$sql[img]");
imagejpeg($im);
imagedestroy($im);
?>
form.php
Código PHP:
<?
include("capcha_mysql.php");
$query mysql_query("SELECT * FROM capcha ORDER BY rand() LIMIT 5");

$an = array();
$rand rand(15);
$na $rand;
$n 0;
session_start();
$an[$rand] = $_SESSION['answer'];

while(
$i=mysql_fetch_array($query)) {
$n $n 1;
if(
$n != "$na" && $i[answer] != "".$_SESSION['answer']."") {
$an[$n] = $i[answer];
}
}
?>
<img src="capcha.php" style="border: 3px solid #666699"><p>
<font size="6" color="#666699">Que acción realizan las personas de la imagen??</font></p>
<form method="POST" action="">
<?
for($i=1;$i<=5;$i++) {
if (
$an[$i] != NULL) {
echo 
"<p>$an[$i] <input type=\"radio\" value=\"$an[$i]\" name=\"answer\"></p>";
}
}
?>

<p><input type="submit" value="Enviar"></p>
</form>
capcha_mysql.php
Código PHP:
<?
$host 
'localhost';
$user 'root';
$pass 'password';
$db 'capcha';
$connect = @mysql_connect($host$user$pass) or die ('Real-Capcha cant make the connection whit mysql.');
mysql_select_db($db$connect) or die ('DB dont exist');
?>
Lo dejo como codigo libre, podeis hacer mejoras si quereis! :)

PARA LOS DE SOLOTRADES.COM :
QUE SOY YO JODER!

Última edición por magTpeak; 18/08/2008 a las 06:34