Ver Mensaje Individual
  #5 (permalink)  
Antiguo 15/04/2004, 14:27
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Creo y apuesto por el que los errores se deben de comprender y ver posibles soluciones:

Cita:
Warning: Cannot modify header information - headers already sent by (output started at /home/webcindario/noeliafanclub/dar_alta_vip.php:46) in /home/webcindario/noeliafanclub/dar_alta_vip.php on line 89
Ese error te está diciendo que en dar_alta_vip linea 46 tienes algo de HTML que has enviado al navegador . .Cuando se usa la función header() no se puede enviar nada al navegador antes de dicha función pues esa funcion mánda "comandos" HTTP al navegador para realizar acciones como la de tu caso "redireccionar" a otro sitio.

Cunao se habla de que no puede existir nada de salida al navegador se refiere a nada de HTML.. ni un simple espacio .. ni un salto de línea .. ni un echo "algo" .. nada.

Recuerda que PHP ejecuta priméro el código PHP y lo que resulte lo mandas al navegador .. así que estructuras tipo (como creo que tienes):

Código PHP:
<html>
<head>
</head>
<body>
<?
if (nose){
    
header ("location: talstio.tal");
} else {
    echo 
"bla bla";
}
?>
</body>
</html>
Así no tiene sentido el código si piensas como trabaja PHP .. para el momento (condición) que se ha de lanzar esa cabecera HTTP de redirección el HTML que hay por encima de el NO importa para PHP ni para el navegador pues .. antes de que se pueda ejecutar dicho HTML en el navegador se le envian las cabeceras que viajen por header() ..

En tu caso . la condición es:
1) o redireccionas
2) o muestras un mensaje ahí mismo .. es decir una página HTML completa con sus tags de apertura y cierre del código HTML

entonces quedaría así:

Código PHP:
<?
if (nose){
    
header ("location: talstio.tal");
} else {
?>
<html>
<head>
</head>
<body>
<?    echo "bla bla"?>
</body>
</html>
<?
}
?>
La propuesta de Reynier con esas funciones PHP de control del buffer de salida .. para este caso sólo son un "parche" (por lo menos lo veo yo así). Te solventan el problema a costa de un consumo extra de recursos del servidor cuando este problema se resuelve diseñando la estructura de tu código conforme trabaja un lenguaje del lado del servidor y más concretamente PHP.

De todas formas .. su uso sería:
Código PHP:
<?
//se inicia la captura de buffer de salida de PHP
ob_start()
?>


tu codigo HTML PHP o lo que gustes con tu header() done lo tengas ...


<?
// y se termina de capturar el buffer y se libera al cliente . .para este punto ya se ha relizado la redireccion y es lo que queda en última instancia en el buffer.
ob_end_flush();
?>
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.