• Viernes 3 de Mayo de 2024, 12:06

Autor Tema:  Ayuda: Tengo Un Error Utilizando Setcookie.  (Leído 1206 veces)

FAO

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Ayuda: Tengo Un Error Utilizando Setcookie.
« en: Sábado 6 de Agosto de 2005, 18:17 »
0
Hola  :hola: , estoy haciendo una pagina con la cual quiero iniciar sesión  y utilizando un cookie me da este error: Warning: Cannot add header information - headers already sent by (output started at c:\ ............) in c:\..........)

Alguien puede ayudarme, desde ya Gracias...!!! :rolleyes:


// este es el codigo php en la cual uso el SETCOOKIE
<?php

   $mensaje = "<br><b><font color='#E60000' face='Arial, Helvetica, sans-serif' size='3'>No puede iniciar sesión, verifique su usuario o contraseña</font></b></font><BR>";
    //$x_meta = "<meta http-equiv='Refresh' content='3'; URL='index.php'>";

    if (isset($usuario , $pass))
    {
        require('configuracion.php');
        $result= mysql_query("select usu_alias, usu_clave, usu_nivel from usuario where usu_alias ='".$usuario."';", $con);

        if ($result)
        {
            $col = mysql_fetch_array($result);
            if (mysql_num_rows($result) > 0)
            {
               extract($col);
               if ($usu_clave == $pass)
               {
                   $mensaje = "<br><b><font color='#6666CC' face='Arial, Helvetica, sans-serif' size='2'>Ha iniciado seción exitósamente..!!</font></b></font><BR>";
                    setcookie('sesion', $usu_alias);
                    if ($usu_nivel=='0')
                       $x_meta = "<meta http-equiv='Refresh' content='20; URL=index_usu_2.php'>";
                    else
                       $x_meta = "<meta http-equiv='Refresh' content='20; URL=index_usu_2.php'>";
               }
          }
        }
     }
   include('encabezado.html');
    echo"<br>";
    include('mensaje.html');
    echo"<br>";
    include('pie.html');
?>

ibito

  • Miembro HIPER activo
  • ****
  • Mensajes: 549
  • Nacionalidad: mx
  • Se mas de C++ que lo que se de ese CSS
    • Ver Perfil
    • http://www.ibquezada.com
Re: Ayuda: Tengo Un Error Utilizando Setcookie.
« Respuesta #1 en: Sábado 6 de Agosto de 2005, 18:47 »
0
creo que los setcookie como los session_start deben ponerse en la primera linea, no debe haber nada antes, algo asi:

Código: Text
  1.  
  2. &#60;?php
  3.    session_start();
  4. //demas codigo
  5.  
  6.  

Espero te sirva de algo...
______________________________________
www.hazjuegos.com Una comunidad dedicada al desarrollo de videojuegos.

gnfrs

  • Miembro MUY activo
  • ***
  • Mensajes: 195
    • Ver Perfil
    • http://www.laguns.com.ar/
Re: Ayuda: Tengo Un Error Utilizando Setcookie.
« Respuesta #2 en: Lunes 8 de Agosto de 2005, 03:46 »
0
No, las cookies deben ser enviadas al cliente antes que cualquier otra cosa, es decir, un echo "algo" no debe preceder a setcookie().... pero establecer el valor de una variable como $alfa = 10; no genera inconvenientes.

EJ:

sarasa(); // si esta función no existe y se produce un warning se envía el reporte al explorador y ya no se pueden enviar cookies...
setcookie... // falla


Con las sesiones es exáctamente lo mismo, salvo que estén desabilitadas las cookies, en ese caso el id de sesión es propagado por GET no por cookies y puede ponerse en cualquier parte del script, pero ojo con esto !!!

Saludos.
Gabriel S. Luraschi

·· Videos de Guns and Roses LAGUNS - Banda tributo a Guns N' Roses ··

.

Altareum

  • Miembro MUY activo
  • ***
  • Mensajes: 327
    • Ver Perfil
    • http://www.avian.com.ar
Re: Ayuda: Tengo Un Error Utilizando Setcookie.
« Respuesta #3 en: Martes 9 de Agosto de 2005, 16:29 »
0
En realidad el tema es que (sin complicarla mucho) antes que nada, el servidor envía al navegador las cookies y los datos del header de la página, esto lo hace incluso si la página no contiene código.
Un archivo que totalmente vacío, incluso envía headers (o cabeceras), eso lo hace automáticamente para que el navegador identifique lo que se le envía (por eso a veces los txt se ven directamente en el navegador y a veces abre el cartel para descargarlo).

Por ende un archivo como este:
Código: Text
  1.  
  2. &#60;br&#62;
  3. &#60;?php
  4. header('Location: ....');
  5. ?&#62;
  6.  
  7.  

Generará un error ya que al tener un <br> el servidor interpreta que comenzó el archivo y envía los headers equivalentes a un archivo html, y por ende no puede volver a enviarlas.
De esta misma forma un archivo que contenga aunque sea un salto de línea antes que se envíen los headers ( o cookies, es lo mismo ya que se envían juntos ), generará este error.
Si el código php genera un mensaje de error antes de que se envíen las cookies, pues generará los headers correspondientes invalidando así el envío de cookies..


Espero que se haya entendido....  &lt;_&lt;  porque no estoy seguro....  :D

Altareum.
El postre!, el postre!, el postre!, el postre!, el postre!, el postre!.....
 | Klinka | Kiree | Avian |