Ver Mensaje Individual
  #3 (permalink)  
Antiguo 23/01/2004, 07:21
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
EL problema que tienes es de estructura de tu script ...

Al usar header() o setcookie() .. NO puedes enviar nada de HTML por encima de esas funciones. Se entiende como "html" no sólo al HTML .. sino a un simple espacio antes de tu primer <? ..o un salto de línea ..

En tu script tienes dos "condicones" que las gestionas con tu IF() ...

Si pasa una cosa .. redireccionas (con header()) o creas una cookie (con setcookie()) .. pero si pasa otra .. muestras un mensaje al navegador:

echo "Es la primera ves que me visitas <BR>";
echo "$fecha_visual";

No sé si conoces como funciona PHP .. pero funciona así (màs o menos):

PHP se ejecuta en el servidor .. bajo tu lógica y estructuras de control "compone" el HTML/salida al cliente (navegador) que uses .. Por ende .. cuando uno programa en PHP no puede programar como si programase en "HTML" con "incrustraciones" de PHP por médio ...

Lo que me refiero es a que pienses en que MOMENTO te hace falta ese HTML de <html><head> .. etc que comopone la página que ves en el navegador con el PHP que requiera y los respectivos tag de cieere HTML como el </body></html> ..

Bien, ese "momento" es en el que haces esos echo .. por eso mismo, ahí sólo necesitas ese HTML que tienes (según la lógica de proceso de tu script) por encima de las llamadas a header() o a setcookie().

Solución:

Código PHP:
} else {

// Aquí va tu HTML de <html><head> .. etc... <body>
echo "Es la primera ves que me visitas <BR>";
echo 
"$fecha_visual";
// y aquí el cierre del HTML... </body></html>


La idea como ves es "componer" tu página HTML cuando realmente se tenga que usar .. En los procesos "PHP" como el de acceso a tu Base de datos y demás NUNCA (por lo menos en ese punto y en tu caso particular) se muestra nada al navegador .. Es más .. o crea un cookie o no .. y luego se redirecciona .. lo cual al usar header() le dices al navegador que "cambie" la página que está biendo el cliente pero no le envias nada de HTML/javascript para hacer eso sino directamente sobre cabeceras HTTP.

(espero que todo este "rollo" te sirva como cultura general .. si tienes dudas sobre "teoría" preguntalas).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.