Foros del Web » Programando para Internet » PHP »

Warning: Cannot modify header information en sistema de usuarios

Estas en el tema de Warning: Cannot modify header information en sistema de usuarios en el foro de PHP en Foros del Web. Saludos, tengo un sistema de usuarios que estoy desarrollando y cuando le ingreso el usuario y contraseña me da los siguientes errores Warning: mysql_fetch_array(): supplied ...
  #1 (permalink)  
Antiguo 19/03/2009, 08:53
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 17 años, 3 meses
Puntos: 28
Warning: Cannot modify header information en sistema de usuarios

Saludos, tengo un sistema de usuarios que estoy desarrollando y cuando le ingreso el usuario y contraseña me da los siguientes errores

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/bodakare/public_html/prueba/includes/login.php on line 24

Warning: Cannot modify header information - headers already sent by (output started at /home/bodakare/public_html/conect.php:19) in /home/bodakare/public_html/prueba/includes/login.php on line 39

aqui les dejo mis codigos
Login.php
Código PHP:
<?php
session_start
();
include 
"../../conect.php";
$usuario strtolower ($_REQUEST["usuario"]);
$pass strtolower ($_REQUEST["pass"]);
//echo $email."....".$clave;
/*        
        $sql="select * from usuario"; //LOGIN DE USUARIOS
        $sql_exec = mysql_query($sql);
        //$rec = mysql_fetch_array($sql_exec);
        while($rec = mysql_fetch_array($sql_exec)){
        echo $rec['email']."---".$rec['clave']."<br>";
        }
*/


    
if(empty($usuario) or empty($pass)){
    
//error tipo: 1 campos vacios.
    
header("Location: login.php");
    }else{

        
$sql="select * from clientes where usuario='".$usuario."' and pass='".$pass."' "//LOGIN DE USUARIOS
        
$sql_exec mysql_query($sql);
        
$rec mysql_fetch_array($sql_exec);
        
//echo mysql_num_rows($sql_exec);
        //echo mysql_error();
                
if ($rec['usuario'] == $usuario  and $rec['pass'] == $pass  ){
                

                                    
$_SESSION['id']=$rec["id"];//ID DEL USUARIO
                                    
$_SESSION['nombre']=$rec["nombre"];//nombre del usuario
                                    
$_SESSION['usuario']=$rec["usuario"];//email
                                    
$_SESSION['id_tipo_usuario']=$rec["id_tipo_usuario"];//ID DEL USUARIO
 
                                    
header("Location: ../index.php");
                }else{ 
                
$msj="Error";
                
//error tipo: 2 usuarios no esta registrado en la base de datos    
                
header("Location: login.php");
                }
    }    
    
?>
connect.php
Código PHP:
<?php

$host
="localhost";

$QQ="******";//user

$p="******";//password

$db=mysql_connect($host,$QQ,$p)

or die (
"No pude conectarme a la base de datos");

mysql_select_db("******")

or die (
"No puedo acceder a la base de datos del sistema");

?>
alguien podria ayudarme????
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #2 (permalink)  
Antiguo 19/03/2009, 09:02
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 16 años, 3 meses
Puntos: 139
Respuesta: Warning: Cannot modify header information en sistema de usuarios

Esta modificando el header
cuando ya escribiste

lo puede resolver

ob_start(); antes del session_start();


y al final del codigo ob_flush();



Mira estos cambios.

if(empty($usuario) or empty($pass)){
//error tipo: 1 campos vacios.
include("login.php");
exit();
}

$sql="select * from clientes where usuario='".$usuario."' and pass='".$pass."' "; //LOGIN DE USUARIOS
$sql_exec = mysql_query($sql);
$rec = mysql_fetch_array($sql_exec);
//echo mysql_num_rows($sql_exec);
//echo mysql_error();



$_SESSION['id']=$rec["id"];//ID DEL USUARIO
$_SESSION['nombre']=$rec["nombre"];//nombre del usuario
$_SESSION['usuario']=$rec["usuario"];//email
$_SESSION['id_tipo_usuario']=$rec["id_tipo_usuario"];//ID DEL USUARIO

header("Location: ../index.php");



?>

Si ya comprobaste que los campos usuario / pass no estan vacios y realmente existen en la base de datos
ya no tienes que evaluar los datos devuelto por la base de datos , con los instroducido con por el usuario.
se supone que son iguales.

Última edición por gjx2; 19/03/2009 a las 09:09
  #3 (permalink)  
Antiguo 19/03/2009, 09:06
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Warning: Cannot modify header information en sistema de usuarios

verifica tu consulta ponla directamente en la consolo de mysql por q por eso te marca el error
  #4 (permalink)  
Antiguo 19/03/2009, 09:14
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 16 años, 3 meses
Puntos: 139
Respuesta: Warning: Cannot modify header information en sistema de usuarios

<?php
ob_start();
session_start();
include ("../../conect.php");
$usuario = strtolower ($_POST[["usuario"]);
$pass = strtolower ($_POST["pass"]);


//echo $email."....".$clave;
/*
$sql="select * from usuario"; //LOGIN DE USUARIOS
$sql_exec = mysql_query($sql);
//$rec = mysql_fetch_array($sql_exec);
while($rec = mysql_fetch_array($sql_exec)){
echo $rec['email']."---".$rec['clave']."<br>";
}
*/



if( empty($usuario) or empty($pass) ){
//error tipo: 1 campos vacios.
$msg="Error";
include("login.php");
exit();
}

$sql ="select * from clientes where usuario='".$usuario."' and pass='".$pass."' "; //LOGIN DE USUARIOS
$sql_exec = mysql_query($sql);


if(mysql_num_rows($sql_exec)){

$rec = mysql_fetch_array($sql_exec);


$_SESSION['id']=$rec["id"];//ID DEL USUARIO
$_SESSION['nombre']=$rec["nombre"];//nombre del usuario
$_SESSION['usuario']=$rec["usuario"];//email
$_SESSION['id_tipo_usuario']=$rec["id_tipo_usuario"];//ID DEL USUARIO

header("Location: ../index.php");
}else{

include("login.php");

}


ob_flush();
?>
  #5 (permalink)  
Antiguo 19/03/2009, 09:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Warning: Cannot modify header information en sistema de usuarios

Exactamente tu problema esta en el query, prueba usar:
Código php:
Ver original
  1. $sql_exec = mysql_query($sql) or die( "Error in $sql: " . mysql_error() );

Saludos.
  #6 (permalink)  
Antiguo 19/03/2009, 09:22
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Warning: Cannot modify header information en sistema de usuarios

gator eres una especie de una luz en el camino jaja saludos!!
  #7 (permalink)  
Antiguo 19/03/2009, 09:32
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 16 años, 3 meses
Puntos: 139
Respuesta: Warning: Cannot modify header information en sistema de usuarios

Hooooooo :-o y que tenia mi query ?
$sql ="select * from clientes where usuario='$usuario' and pass='$pass' ";
$sql_exec = mysql_query($sql);


Injusticia.
  #8 (permalink)  
Antiguo 19/03/2009, 09:47
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 17 años, 3 meses
Puntos: 28
Respuesta: Warning: Cannot modify header information en sistema de usuarios

a ver muchachos... hice lo q me dijo gator...
y me sale esto

Warning: Cannot modify header information - headers already sent by (output started at /home/bodakare/public_html/conect.php:19) in /home/bodakare/public_html/prueba/includes/login.php on line 35

la linea 35 es
Código PHP:
header("Location: ../index.php"); 
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #9 (permalink)  
Antiguo 19/03/2009, 09:49
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 16 años, 3 meses
Puntos: 139
Respuesta: Warning: Cannot modify header information en sistema de usuarios

Ok T4ke0ver

Te comente anteriormente el por que de esto
Y te comente

que para evitar esto

al principio del codigo hiciera esto

ob_start();

y al final

ob_flush();

No puedes sobre escribir el header
  #10 (permalink)  
Antiguo 19/03/2009, 09:51
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 17 años, 3 meses
Puntos: 28
Respuesta: Warning: Cannot modify header information en sistema de usuarios

gjx2 jejeje tu consulta me funciono xD gracias a todos
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #11 (permalink)  
Antiguo 19/03/2009, 09:52
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Warning: Cannot modify header information en sistema de usuarios

http://www.forosdelweb.com/f18/warni...tarted-175704/



http://www.xinterface.net/2008/01/07...ready-sent-by/



encontre eso perdona q no explike es q sigo en la ofis y me cachan escribiendo jaja saludines!!
  #12 (permalink)  
Antiguo 19/03/2009, 09:59
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 17 años, 3 meses
Puntos: 28
Respuesta: Warning: Cannot modify header information en sistema de usuarios

aaaaaaaaaaaah... ahora cuando cierro session me da este error

Warning: Cannot modify header information - headers already sent by (output started at /home/bodakare/public_html/prueba/conect.php:19) in /home/bodakare/public_html/prueba/log_out_x2.php on line 3

Warning: Cannot modify header information - headers already sent by (output started at /home/bodakare/public_html/prueba/conect.php:19) in /home/bodakare/public_html/prueba/log_out_x2.php on line 4

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/bodakare/public_html/prueba/conect.php:19) in /home/bodakare/public_html/prueba/log_out_x2.php on line 5

Warning: Cannot modify header information - headers already sent by (output started at /home/bodakare/public_html/prueba/conect.php:19) in /home/bodakare/public_html/prueba/log_out_x2.php on line 8

y mi codigo d salida

Código PHP:
<?php  require_once('conect.php'); ?>
<?php
setcookie
("email"""time() - 3600); 
setcookie("clave"""time() - 3600); 
session_start(); 
$_SESSION = array();
session_destroy(); 
header('Location:login.php'); 
?>
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #13 (permalink)  
Antiguo 19/03/2009, 10:14
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Warning: Cannot modify header information en sistema de usuarios

Revisa que tienes en la linea 19 de conect.php: (output started at /home/bodakare/public_html/prueba/conect.php:19)

Saludos.
  #14 (permalink)  
Antiguo 19/03/2009, 10:22
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 17 años, 3 meses
Puntos: 28
mmmmmm nada... llega hasta la 17 :S

peeeeeeeeeeeerfecto ya funciona... era un espacio en blanco :)

gracias :D
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...

Última edición por GatorV; 19/03/2009 a las 11:17
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 21:50.