Foros del Web » Programando para Internet » PHP »

claves aleatorias con createimage

Estas en el tema de claves aleatorias con createimage en el foro de PHP en Foros del Web. Buenas a todos, que tal,,,, tengo una duda... he creado un sistema de numeros y letras aleatorio por medio de una imagen con el comando ...
  #1 (permalink)  
Antiguo 17/02/2004, 11:32
Avatar de RUX
RUX
 
Fecha de Ingreso: enero-2004
Ubicación: Las Palmas de Gran Canari
Mensajes: 566
Antigüedad: 13 años, 10 meses
Puntos: 0
claves aleatorias con createimage

Buenas a todos, que tal,,,, tengo una duda... he creado un sistema de numeros y letras aleatorio por medio de una imagen con el comando imagecreate para un formulario de registro de usuarios en mi web de manera que de esta forma impida registros automáticos por bots, etc... bueno en fin muchas webs lo tienen, pero no entiendo bien el sistema,, pq al intentar comparar el resultado del numero y letras generado aleatoriamente con el que escribió el usuario nunca es igual porque el usuario al pulsar en el boton REGISTRARSE vuelve a generarse otro numero y letra aleatorio con lo cual ya no coinciden y lo he intentado de mil formas pero no me cuadra, alguien podria pasarme alguna URL, SCRIPTS, etc.. que haga esto que yo digo o intentar guiarme??? POR FAVOR LLEVO 1 semana con esto y no avanzo.
  #2 (permalink)  
Antiguo 17/02/2004, 11:36
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
umm... a ver.... deberias pegar algo de code para que veamos que es lo que estas haciendo....

... por otra parte... ese problema se puede solucionar si metes en una session el valor del pass... asi luego comparas ese valor con el que introduce el user,.,,

... por otra parte... el problema es mas bien de structuracion del script pero si no pones el code.... ;)

un saludo.
__________________
3w.valenciadjs.com
3w.laislatv.com
  #3 (permalink)  
Antiguo 17/02/2004, 13:00
Avatar de RUX
RUX
 
Fecha de Ingreso: enero-2004
Ubicación: Las Palmas de Gran Canari
Mensajes: 566
Antigüedad: 13 años, 10 meses
Puntos: 0
espero ke se entienda

hola y gracias por contestar,, estoy un poco verde en php y necesitaba ayuda creo que ya casi lo tengo solucionado pero tengo una duda.... si yo hago esto:

---prueba.php

<?php

// esto va dentro de un codigo de formulario donde el usuario escribe la imagen que se imprime en pantalla.
echo "<img src=img.php>";

?>

// me imprimirá la imagen que genero en el siguiente script

---img.php

<?php
// Función genera contraseñas de 6 carácteres

function FUNC_passGeneraAuto($longCodeLetras){

for ($iSuma=1; $iSuma<=$longCodeLetras; $iSuma++) {

$letraCode = chr(rand(97,122));
$generaCodeLetras .= strtoupper($letraCode);

$numCode = rand(0,9);
$generaCodeNum .= $numCode;

}

$montaCode = $generaCodeLetras.$generaCodeNum;
$valorGeneraImg = $montaCode;

return $montaCode;
}

function imagen_aleatoria(){
Header("Content-type: image/png");
$im= imagecreate(56,15);
$t1= FUNC_passGeneraAuto(3);
$t3="______";
$fondo=imagecolorallocate ($im, 33, 33, 33);
$negro=imagecolorallocate ($im, 255, 255, 255);
$rojo=imagecolorallocate ($im, 255, 0, 0);
imagestring ($im, 150, 1, 0, $t1, $negro);
imagestring ($im, 150, 1, 0, $t3, $rojo);
Imagepng($im);
imagedestroy($im);
}
imagen_aleatoria();
?>

todo esto funciona, pero a la hora de comprobar si los datos son identicos, el texto de la imagen con el texto del usuario;
¿Como puedo transportar la variable $t1 de "img.php" (q se supone ke contiene el password generado) a script "prueba.php" q está en ejecución para posteriormente hacer un "if" comparativo, verificando si lo ke escribió el usuario corresponde con la imagen?

se entiende no? jeje, me hago un lio, sorry.
Gracias de antemano
  #4 (permalink)  
Antiguo 17/02/2004, 13:30
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 14 años, 1 mes
Puntos: 45
Si no quieres que se muestre en la url (por problema de registro automatico y esas cosas), lo que yo haria es abrir un popup al hacer submit. La pagina principal cambia, recibiendo el form en otra pagina, y cuando la ultima haya cargado, coger la variable desde el popup, y cerrarlo (todo con javascript). Aunque nose, igual hay una manera menos chapucera de hacerlo, meterlo en un hidden o algo asi.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #5 (permalink)  
Antiguo 17/02/2004, 14:24
Avatar de RUX
RUX
 
Fecha de Ingreso: enero-2004
Ubicación: Las Palmas de Gran Canari
Mensajes: 566
Antigüedad: 13 años, 10 meses
Puntos: 0
Gracias por tu respuesta pero eso no me vale, lo necesito en php, el javascript no creo ke sea muy fiable para lo ke yo pretendo hacer.
__________________
Rux.es - Sitio Personal | IslaRock.com - Todo Rock
  #6 (permalink)  
Antiguo 17/02/2004, 14:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
¿Como puedo transportar la variable $t1 de "img.php" (q se supone ke contiene el password generado) a script "prueba.php" q está en ejecución para posteriormente hacer un "if" comparativo, verificando si lo ke escribió el usuario corresponde con la imagen?
Por sesiones ..

en tu img.php creas la variable de sesión "password" con ese valor de tu variable $t1 .. redireccionas a tu prueba.php sea por un simple link.. redireccionamiento automático vía header("location: ...") o como gustes. En tu prueba.php lees la variable de sesión creada.

Ejemplos de uso de sesiones tienes en las FAQ's de este foro (de las primeras).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 17/02/2004, 18:59
Avatar de RUX
RUX
 
Fecha de Ingreso: enero-2004
Ubicación: Las Palmas de Gran Canari
Mensajes: 566
Antigüedad: 13 años, 10 meses
Puntos: 0
No me funciona me dice:

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\appserv\www\islarock\includes\top.php:17) in c:\appserv\www\islarock\registro\add_user.php on line 16

:(
__________________
Rux.es - Sitio Personal | IslaRock.com - Todo Rock
  #8 (permalink)  
Antiguo 17/02/2004, 19:47
 
Fecha de Ingreso: diciembre-2003
Ubicación: Córdoba, Argentina
Mensajes: 249
Antigüedad: 14 años
Puntos: 0
Ese error te da cuando tienes HTML antes de las sesiones, lo mismo te ocurre con las cookies.

Si es un formulario, porque no lo mandas como un campo hidden?

Un saludo!
__________________
Crónicas de un Programador es un sitio que registra lo que ocurre cada día en la vida de un desarrollador. Aquí, intentaremos contar nuestras experiencias diarias, errores, aciertos y técnicas, que pueden llegar a serles de utilidad.
  #9 (permalink)  
Antiguo 18/02/2004, 03:31
Avatar de RUX
RUX
 
Fecha de Ingreso: enero-2004
Ubicación: Las Palmas de Gran Canari
Mensajes: 566
Antigüedad: 13 años, 10 meses
Puntos: 0
y si estoy usando una web en modulos ??? como puedo solventar el problema??? tendria ke poner session_start() en el index??? o como es??. Gracias
__________________
Rux.es - Sitio Personal | IslaRock.com - Todo Rock
  #10 (permalink)  
Antiguo 18/02/2004, 06:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues si .. en tu index.php y sobre todo piensa que si tu "web" es "modular" .. el código resultante es el que tu index en tu caso compone de llamar a otros "modulos" (bajo tu include() . y similares) .. así que el session_Start() debería estar al principio de tu script index.php (antes de cualquier HTML que pueda existir.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 05:03.