Foros del Web » Programando para Internet » PHP »

Problemas con el header , ob_flush() y ob_start(); en mi inicio de session

Estas en el tema de Problemas con el header , ob_flush() y ob_start(); en mi inicio de session en el foro de PHP en Foros del Web. Hola a todos tengo una consulta que hacerles. tengo este codigo para ingresar a mi web site, acabo de probarlo y todo funciona bien pero ...
  #1 (permalink)  
Antiguo 22/02/2006, 09:22
Avatar de helthon  
Fecha de Ingreso: junio-2005
Ubicación: Lima
Mensajes: 549
Antigüedad: 18 años, 10 meses
Puntos: 7
Problemas con el header , ob_flush() y ob_start(); en mi inicio de session

Hola a todos tengo una consulta que hacerles.
tengo este codigo para ingresar a mi web site, acabo de probarlo y todo funciona bien pero cuando le puse los header , ob_flush() y ob_start(); vino mi problema.

Que me devuelve a mi pagian principal de donde debo de ingresar mi usuario y password y no se porque

Aqui les dejo el codigo y haber si me dicen cual es la solucion thank..

Código PHP:
<?
ob_start
();

include_once(
'conectar.php') ;

$user htmlspecialchars($_POST["txtusuario"]); 
$clave htmlspecialchars($_POST["txtclave"]); 
$clavemd5($clave);

if(!
$user OR !$clave)

// si en caso no ingresan nada 
//echo 'Error';
header('location: loggin.php');
}else{ 
     
  
$sql="SELECT * FROM administrador WHERE usuario ='$user' AND clave='$clave'"
  
$datos mysql_query($sql); 
     
$rs=mysql_fetch_array($datos); 
     if (!
mysql_num_rows($datos))
     { 
         
//echo 'El nombre de usuario ingresado o la clave son incorrectas';
         
header('location: error.php');
         
    }else{ 
    
    
//echo 'registro exitoso';
    
    
session_start();
    
$_SESSION["idadmin"]=$rs["idadmin"];
    
header('location: index.php');
    
    } 
}
ob_flush();
?>
__________________
HELTHON FUENTES
FLORERIA FLORES PERU Floresperu.com.pe
Garantizamos que cada entrega de flores será de la más alta calidad y frescura
  #2 (permalink)  
Antiguo 22/02/2006, 09:35
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Por qué usas las funciones de control del buffer de PHP (ob_start() y demás) .. Algún fin concreto?

No deberías usarlas (por lo menos para lo que estás haciendo y lo que se vé de tu código ... no se vé en su contexto si lo llamas en otro script .. o con "HTML" por médio).

Te recomiendo algunas cosas:

1) Usa un exit() despues de cada header() de tipo "location" .. El objetivo de uno de esos redireccionamientos es el de "terminar" la ejecución de tu script en ese punto (pese que tu "flujo" del código con tus condicionales) podría llevar el flujo del código al final del script como corresponda, la función header() envia cabecearas HTTP al cliente .. pero estas no se entregan hasta que el script PHP termina su ejecución (pasando por todo el código PHP posterior o según lógica) o se fuerza la entrega del buffer de salida (con las funciones ob_flush())

2) .. aunque no tenga que ver .. No uses "OR" usa || y tampoco hagas if ($variable) si lo que realmente quiere ver que tenga o no valor (distinto de NULL o 0 o cadena vacia) usa:

empty($variable)

Un saludo,
  #3 (permalink)  
Antiguo 22/02/2006, 10:26
Avatar de helthon  
Fecha de Ingreso: junio-2005
Ubicación: Lima
Mensajes: 549
Antigüedad: 18 años, 10 meses
Puntos: 7
Gracias Cluster
uan duda es exit(); ó exit;
__________________
HELTHON FUENTES
FLORERIA FLORES PERU Floresperu.com.pe
Garantizamos que cada entrega de flores será de la más alta calidad y frescura
  #4 (permalink)  
Antiguo 22/02/2006, 10:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por helthon
Gracias Cluster
uan duda es exit(); ó exit;
Si no vas a usar mensaje de salida puedes usar exit; .. si quieres usar mensaje de salida puedes usar exit("el mensaje") .. Equivale a la función die()

Un saludo,
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 12:09.