Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/12/2007, 18:00
Avatar de mapper
mapper
 
Fecha de Ingreso: enero-2003
Ubicación: Argentina
Mensajes: 321
Antigüedad: 22 años, 2 meses
Puntos: 1
Que opinan? Imagen anti-bot

Alguien encuentra alguna falla en este código?
Es un anti-bot para formularios.
Código PHP:
<?php 
session_start
(); 
Header("Content-type: image/png"); 
$leter[]="A";
$leter[]="B";
$leter[]="C";
$leter[]="D";
$leter[]="E";
$leter[]="F";
$leter[]="G";
$leter[]="H";
$leter[]="J";
$leter[]="K";
$leter[]="L";
$leter[]="M";
$leter[]="N";
$leter[]="P";
$leter[]="Q";
$leter[]="R";
$leter[]="S";
$leter[]="T";
$leter[]="U";
$leter[]="V";
$leter[]="W";
$leter[]="X";
$leter[]="Y";
$leter[]="Z";


$xleter=rand(0,23);
$numlet=rand(0,1);
if(
$numlet){
$t1=$leter[$xleter];
}else{
$t1=rand(2,9);
}


$xleter=rand(0,23);
$numlet=rand(0,1);
if(
$numlet){
$t2=$leter[$xleter];
}else{
$t2=rand(2,9);
}


$xleter=rand(0,23);
$numlet=rand(0,1);
if(
$numlet){
$t3=$leter[$xleter];
}else{
$t3=rand(2,9);
}


$xleter=rand(0,23);
$numlet=rand(0,1);
if(
$numlet){
$t4=$leter[$xleter];
}else{
$t4=rand(2,9);
}

if(empty(
$HTTP_SESSION_VARS['text'])){

$text=$t1."---".$t2."---".$t3."---".$t4;
$HTTP_SESSION_VARS[text]=$text;
}else{
/////////


$nueva=explode("---",$HTTP_SESSION_VARS[text]);
$t1=$nueva[0];
$t2=$nueva[1];
$t3=$nueva[2];
$t4=$nueva[3];
}
/////////
$image ImageCreate(15060);
$x=1;
$stw=1;
$sth=1;
$red ImageColorAllocate($image2550,0); 
$r=rand(1,6);

do{
if(
$r==1){$bluealp imagecolorallocatealpha $image$x,20 6050 );};
if(
$r==2){$bluealp imagecolorallocatealpha $image20$x6050 );};
if(
$r==3){$bluealp imagecolorallocatealpha $image2060$x50 );};
if(
$r==4){$bluealp imagecolorallocatealpha $image$x$x$x50 );};
if(
$r==5){$bluealp imagecolorallocatealpha $image$x60$x50 );};
if(
$r==6){$bluealp imagecolorallocatealpha $image20$x$x50 );};

imageellipse $image7530$stw$sth$bluealp);
$x++;
$stw++;
$sth++;
$x++;
$stw++;
$sth++;
$x++;
$stw++;
$sth++;

}while(
$stw<=200);
$bluealp imagecolorallocatealpha $image000);
ImageRectangle($image0014959$bluealp);
ImageRectangle($image1114858$bluealp);
ImageRectangle($image2214757$bluealp);
$bluealp imagecolorallocatealpha $image000);

$pos=rand(0,1);
$ang=rand(0,20);
if(
$pos){
$angle=0+$ang;
}else{
$angle=0-$ang;
}
imagettftext($image34$angle1046$bluealp"gilr.ttf"$t1);
$pos=rand(0,1);
$ang=rand(0,20);
if(
$pos){
$angle=0+$ang;
}else{
$angle=0-$ang;
}
imagettftext($image34$angle4546$bluealp"gilr.ttf"$t2);
$pos=rand(0,1);
$ang=rand(0,20);
if(
$pos){
$angle=0+$ang;
}else{
$angle=0-$ang;
}
imagettftext($image34$angle8046$bluealp"gilr.ttf"$t3);
$pos=rand(0,1);
$ang=rand(0,20);
if(
$pos){
$angle=0+$ang;
}else{
$angle=0-$ang;
}
imagettftext($image34$angle11546$bluealp"gilr.ttf"$t4);

ImagePng($image);  
ImageDestory($image);  
?>
Funciona: http://bayresart.com/imgs/ivf.php [SOLUCIONADO]

Para verlo en funcionamiento.

Antes del formulario.
Código PHP:
 $text $HTTP_SESSION_VARS[text];
  
$nueva explode("---"$text);
  
$varis .= $nueva[0];
  
$varis .= $nueva[1];
  
$varis .= $nueva[2];
  
$varis .= $nueva[3];
  
//ereg_replace();
  
  
$varis=strtolower($varis);
  
$imgs=strtolower($imgs);
  if (
$imgs == $varis)
  {
    
$HTTP_SESSION_VARS[humano] = "HUMANO";
  } 
Ahora hay que ver si es humano enviar y sino mensaje de error.
Desde ya gracias por revisar.
__________________
-- May The Force Be With You --

Última edición por mapper; 20/12/2007 a las 19:18 Razón: Faltaba una tipografia