Foros del Web » Programando para Internet » PHP »

Header: Content-type ? no me imprime nada!

Estas en el tema de Header: Content-type ? no me imprime nada! en el foro de PHP en Foros del Web. Amigos: me hice un generador de captchas mirando (lease copiando) un poco por alli y funciona bien PERO luego de generar la imagen...... no me ...
  #1 (permalink)  
Antiguo 25/01/2008, 08:11
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Header: Content-type ? no me imprime nada!

Amigos: me hice un generador de captchas mirando (lease copiando) un poco por alli y funciona bien PERO luego de generar la imagen...... no me imprime mas con ECHO!!!

Código PHP:
<?php
Function pass_gen($len=8){
$string '';
    
$ok false;    
    
$chars 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    for (
$i 0$i $len$i++){
       
$pos rand(0strlen($chars)-1);
       
$string .= $chars{$pos};
     }
return (
$string);     
}

Function 
captcha(){
header("Content-type: image/png");
$im = @imagecreate(10050)  or die("Cannot Initialize new GD image stream");

$clave pass_gen();

imagecolorallocate($im000);
$text_color imagecolorallocate($im2331491);
imagestring($im51515,  $clave$text_color);
imagepng($im);
imagedestroy($im);

return (
$clave);
}

$c =  captcha();
header("Content-type: text/html;");
echo 
$c;
echo 
'No imprime nadaaa!!!!';
?>
Necesito volver al "modo texto" pero no entiendo como!

Otra costia: como se supone que grabo esa imagen.... ? (si quisiera salvarla en disco)
__________________
Salu2!
  #2 (permalink)  
Antiguo 25/01/2008, 08:31
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Re: Header: Content-type ? no me imprime nada!

No se olviden de mi problemita
__________________
Salu2!
  #3 (permalink)  
Antiguo 25/01/2008, 08:43
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Header: Content-type ? no me imprime nada!

Vamos, o indicas que es una imagen, o indicas que es contenido HTML, pero no ambos!

Si quieres guardarla en la PC en vez de mostrarla, entonces visita el manual para la función imagepng(). Al igual que imagegif() e imagejpeg(), puede aceptar un segundo parámetro. en el que le indicas que deseas guardarla y no mostrarla. En este segundo parámetro debes especificar el nombre (y la ruta) de la nueva imagen que se va a guardar. Es ese caso, ya no es necesario que envies cabeceras al navegador indicándole que es una imagen lo que envías. Tendrías que hacerlo así:

Código PHP:
<?php 
Function pass_gen($len=8){ 
$string ''
    
$ok false;     
    
$chars 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
    for (
$i 0$i $len$i++){ 
       
$pos rand(0strlen($chars)-1); 
       
$string .= $chars{$pos}; 
     } 
return (
$string);      

 
Function 
captcha(){ 
# header("Content-type: image/png"); //Esto ya no
$im = @imagecreate(10050)  or die("Cannot Initialize new GD image stream"); 
 
$clave pass_gen(); 
 
imagecolorallocate($im000); 
$text_color imagecolorallocate($im2331491); 
imagestring($im51515,  $clave$text_color); 
 
$nombre_de_la_imagen "$clave.png";
 
imagepng($im,$nombre_de_la_imagen); 
imagedestroy($im); 
 
return (
$clave); 

 
$c =  captcha(); 
# header("Content-type: text/html;"); //No es necesario tampoco
echo $c
echo 
'No imprime nadaaa!!!!'
?>
Un saludo,
  #4 (permalink)  
Antiguo 25/01/2008, 09:14
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
De acuerdo Re: Header: Content-type ? no me imprime nada!

okram: como siempre........ excelente!!!! tenes que escribir un libro de PHP.... yo lo compraría (aunque aceptaria una copia gratis tb)

Código PHP:
<?php
Function pass_gen($len=8){
$string '';
    
$ok false;    
    
$chars 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    for (
$i 0$i $len$i++){
       
$pos rand(0strlen($chars)-1);
       
$string .= $chars{$pos};
     }
return (
$string);     
}

Function 
captcha($imagen_file){
//header("Content-type: image/png");
//$imagen_file = "captcha.png";
$im = @imagecreate(10050)  or die("Cannot Initialize new GD image stream");

$clave pass_gen();

imagecolorallocate($im000);
$text_color imagecolorallocate($im2331491);
imagestring($im51515,  $clave$text_color);
imagepng($im,$imagen_file);
imagedestroy($im);

return (
$clave);
}


$c =  captcha("captcha.png");
echo 
$c.'<p/>';
echo 
'<img src="captcha.png"/>';


?>
__________________
Salu2!
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:59.