Foros del Web » Programando para Internet » PHP »

Error al hacer setcookie de un login

Estas en el tema de Error al hacer setcookie de un login en el foro de PHP en Foros del Web. Hola amigos!!! Estoy haciendo un login y cuando el usuario pone admin como username y admin como password, me salta este error Cannot modify header ...
  #1 (permalink)  
Antiguo 27/01/2009, 10:35
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 1 mes
Puntos: 0
Error al hacer setcookie de un login

Hola amigos!!!

Estoy haciendo un login y cuando el usuario pone admin como username y admin como password, me salta este error

Cannot modify header information - headers already sent by (output started at

al hacer un

Código:
setcookie(_COOKIE_PREFIX.'_cook_auth');

Sabeis porque puede ser?


Os pongo el codigo de login.php
Código PHP:
<?php
session_start
();
require 
"auxfunc.php";
$destino=false;

//Comprobamos que el usuario haya escrito algo en el textbox de username, por lo que habrá clicado en el boton de submit y las variables $_POST valdrán algo
if ($_POST["usuario"]!=""){
    echo 
"<br>1";
    if ( (
strtolower($_POST["usuario"])=="admin") && (strtolower($_POST["contrasenya"])=="admin") ){
    echo 
"<br>2";
        
//marcamos login correcto
        
$_SESSION['auth']=_AUTHVALUE;
        
$_SESSION['usuario']=$_POST['usuario'];
        
// Activamos la cookie del usuario
        
if ($_POST["remindme"]=="remind"){
    echo 
"<br>3";
            
setcookie(_COOKIE_PREFIX.'_cook_auth'_AUTHVALUEtime() + (7*24*60*60));                   //  Duración de la cookie = 7 dias
            
setcookie(_COOKIE_PREFIX.'_cook_user'$_POST['usuario'], time() + (7*24*60*60));           //  Duración de la cookie = 7 dias
        
}
        else{
    echo 
"<br>3.3";
            
setcookie(_COOKIE_PREFIX.'_cook_auth');
            
setcookie(_COOKIE_PREFIX.'_cook_user');
        }
        
//enviamos a inicio
        
$destino=true;
        
//header("Location: index.php");
    
}
    else{
    echo 
"<br>4";
        
//desmarcamos login correcto
        
unset ($_SESSION['auth']);
        unset (
$_SESSION['usuario']);
        
session_destroy();
        
session_unset();
        
setcookie(_COOKIE_PREFIX.'_cook_auth');
        
setcookie(_COOKIE_PREFIX.'_cook_user');
        
$_SESSION['auth']="";
        
$contenido.='<p class="error">Usuario o contraseña incorrecta.</p>';
        
$destino=false;
    }
}
else{
    echo 
"<br>5";
    if (
$_GET['accion']=="logout"){
    echo 
"<br>6";
        
$contenido.='<p class="error">Se cerró la conexión satisfactoriamente.</p>';
        
//desmarcamos login correcto
        
unset ($_SESSION['auth']);
        unset (
$_SESSION['usuario']);
        
setcookie(_COOKIE_PREFIX.'_cook_auth');
        
setcookie(_COOKIE_PREFIX.'_cook_user');
        
session_destroy();
        
session_unset();
        
$_SESSION['auth']="";
        
$destino=false;
    }
    else{
        
//$contenido.='<p class="error">Validese como usuario y contraseña para poder acceder a la área privada.</p>';
    
}
    
//comprobamos si se mantiene login anterior
    
if ($_SESSION['auth']==_AUTHVALUE){
    echo 
"<br>7";
        
//si se mantiene enviamos a index
        
$destino=true;
        
//header("Location: index.php");
    
}
}


if (
$detino){
    
header("Location: index.php");
}
else{
    include 
"loginTemplate.html.php";
}
?>

el index.php contiene lo siguiente:
Código PHP:
<?php
session_start
();
require 
"auxfunc.php";

if (!
Comprobar_Login()){
    
header("Location: login.php");
}
else{
    
$bienvenida $comun_bienvenida1." <span>"
    
$nombre_usuario=$_SESSION["usuario"];
    
$bienvenida.=$nombre_usuario."</span>&nbsp;";
    
$logout='<a href="login.php?accion=logout"> [ SALIR ] </a>';

$contenido="Si lees esto es pq estas logueado.";
include 
"indexTemplate.html.php";
}
?>
Gracias por vuestra paciencia
  #2 (permalink)  
Antiguo 27/01/2009, 12:46
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Error al hacer setcookie de un login

No puedes imprimir ABSOLUTAMENTE nada antes de setear una COOKIE o enviar una cabecera al navegador.
  #3 (permalink)  
Antiguo 28/01/2009, 02:14
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Error al hacer setcookie de un login

entones como tendria que quedarme?


Gracias
  #4 (permalink)  
Antiguo 28/01/2009, 05:12
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Error al hacer setcookie de un login

Cita:
if ($_POST["usuario"]!=""){
echo "<br>1";
if ( (strtolower($_POST["usuario"])=="admin") && (strtolower($_POST["contrasenya"])=="admin") ){
echo "<br>2";
//marcamos login correcto
$_SESSION['auth']=_AUTHVALUE;
$_SESSION['usuario']=$_POST['usuario'];
// Activamos la cookie del usuario
if ($_POST["remindme"]=="remind"){
echo "<br>3";
setcookie(_COOKIE_PREFIX.'_cook_auth', _AUTHVALUE, time() + (7*24*60*60)); // Duración de la cookie = 7 dias
setcookie(_COOKIE_PREFIX.'_cook_user', $_POST['usuario'], time() + (7*24*60*60)); // Duración de la cookie = 7 dias
}
else{
Empiezas imprimiendo codigo de una vez.
Mejora el diseño de tu aplicacion.
  #5 (permalink)  
Antiguo 28/01/2009, 08:00
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Error al hacer setcookie de un login

Ya lo tengo todo solucionado, era pq tenia echos por todos los lados y me petaba.
Los he comentado todos y funciona perfecto


Hasta luego!!!!


Y merci!!!
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 02:34.