Foros del Web » Programando para Internet » PHP »

Código de seguridad visual

Estas en el tema de Código de seguridad visual en el foro de PHP en Foros del Web. Estoy tratando de crear un código de seguridad visual para solicitarlo a los usuarios a la hora de registrarse en mi sitio. Estuve buscando en ...
  #1 (permalink)  
Antiguo 31/10/2004, 16:17
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Código de seguridad visual

Estoy tratando de crear un código de seguridad visual para solicitarlo a los usuarios a la hora de registrarse en mi sitio. Estuve buscando en las FAQ's y encontre esto:
Código PHP:
# Fichero: passwd.php
<?php
 
function DoPassBuild($num,$may){
  if(empty(
$num)){$num=5;}
   
$voc = array ("a","e","i","o","u");
   
$con = array ("b","c","d","f","g","h","j","k","l","m","n","ñ","p","q","r","s","t","w","x","y","z");
   
$psw "";
   
$vc  mt_rand(0,1);
    for (
$n=0$n<$num$n++){
     if (
$vc==1){
      
$vc=0;
      
$psw .= $con[mt_rand(0,count($con)-1)];
     }
      
$psw .= $voc[mt_rand(0,count($voc)-1)];
      
$psw .= $con[mt_rand(0,count($con)-1)];
     }
   
$psw ereg_replace ("q","qu",$psw);
   
$psw ereg_replace ("quu","que",$psw);
   
$psw ereg_replace ("yi","ya",$psw);
   
$psw ereg_replace ("iy","ay",$psw);
   if(empty(
$may)){
    
$psw strtoupper($psw);
   }
    
$psw substr($psw,0,$num);
    
session_name('codePaswSession');
    
session_start();
    
session_cache_limiter('nocache,private');
    
ini_set("session.cache_limiter","6400");
    if(empty(
$_SESSION['psw'])){
     
$_SESSION['psw'] = $psw;
    }else{
     
$psw $_SESSION['psw'];
    }
    return 
$psw;
 }

 function 
DoPassShow($psw,$fontSize,$winSizeW,$winSizeH) {
  if(empty(
$psw)){$psw "ERROR PASSW";}
  if(empty(
$fontSize)){$fontSize=5;}
  if(empty(
$winSizeW)){$winSizeW=72;}
  if(empty(
$winSizeH)){$winSizeH=18;}
  
$width  ImageFontWidth($fontSize) * strlen($string);
  
$height ImageFontHeight($fontSize);
  
$img ImageCreate($winSizeW,$winSizeH);
  
$bgColor ImageColorAllocate($img,102,102,202);
  
$txColor ImageColorAllocate($img,220,220,220);
  
ImageFilledRectangle($img,0,0,$winSizeW,$winSizeH,  $bgColor);
  
ImageString($img,$fontSize,0,0,$psw,$txColor);
  
header("content-type: image/jpeg");
  
ImagePng($img);
  
Imagedestroy($img);
}
 
DoPassShow(DoPassBuild(8,1),5,72,18);
?>
según la FAQ la forma de uso sería esta:
Código HTML:
<img src='passwd.php'> 
pero a la hora de ver el resultado en la página me sale el tipico cuadrito con la cruz. Mis librerías GD están funcionando porque ya lo comprobé en el php.ini y con la función phpinfo(). Esto lo hice una vez con ayuda del Foro pero no encuentro ese POST por ningún lado. Me dan una mano ?
__________________
Ing. Reynier Pérez Mira
  #2 (permalink)  
Antiguo 31/10/2004, 16:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En general .. para detectar errores de ese estilo con imagenes y cabeceras HTTP en general .. debes ir deshabilitando (comentando) las líneas de tu código referente a header() .. y las de ImagePng($img);

También es bueno ejecutar tu script passwd.php por separado bajo una llamada directa por el URL: http://www.tal.tal/passwd.php si ahí obtienes tu X .. continua comentado los header() ..y la otra función. El objetivo es "ver" algún tipo de error, en función de ese error ya veremos que puedes hacer.

Un saludo,
  #3 (permalink)  
Antiguo 03/11/2004, 06:49
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Pos nada

Cluster:
A ver si me das una mano porque no me sale nada de lo que quiero. Alguna vez pregunte sobre esto en el Foro y lo logre hacer pero ahora no encuentro ni lo que hice ni el POST en el Foro.

Salu2
__________________
Ing. Reynier Pérez Mira
  #4 (permalink)  
Antiguo 03/11/2004, 09:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pero .. Reynier .. ya te comenté que probases algunas cosas. Esas cosas son la técnica básica para llegar a ver algún mensaje de error o fallo que evaluar.

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:20.