Foros del Web » Programando para Internet » PHP »

Problemas con headers()

Estas en el tema de Problemas con headers() en el foro de PHP en Foros del Web. Hola, tengo el siguiente codigo: Código PHP: <?php ob_start (); /// REVISA SI ESTA REGISTRADO EL USUARIO, SI NO LO ESTA LO MANDA A LA PAGINA DE LOGIN if ( isset(  $y  ) && (  $y  !=  ''  ) ) {     $x  =  '0'  ;      } if ( !isset( $_SESSION [ ...
  #1 (permalink)  
Antiguo 01/07/2005, 11:09
 
Fecha de Ingreso: abril-2005
Ubicación: 34°35'49.20"S | 58°24'06.
Mensajes: 158
Antigüedad: 19 años, 7 meses
Puntos: 3
Problemas con headers()

Hola, tengo el siguiente codigo:

Código PHP:
<?php
ob_start
();
/// REVISA SI ESTA REGISTRADO EL USUARIO, SI NO LO ESTA LO MANDA A LA PAGINA DE LOGIN
if ( isset( $y ) && ( $y != '' ) ) {    $x '0' ;      }
if ( !isset(
$_SESSION['super_id'])) {
        
header("Location:superadmin.php"); 
        exit();
        }
?>
Sin embargo, da el siguiente error:

Cita:
Warning: Cannot modify header information - headers already sent by (output started at /*/superadmin2.php:3) in /*/superadmin2.php on line 46
El script, no posee ningun espacio ni otro caracter antes del tag de apertura de php. Probe utilizando ob_start() / ob_end_flush() al principio y final, pero sigue dando el error.

Alguien tiene alguna idea?

Gracias

Diego
  #2 (permalink)  
Antiguo 01/07/2005, 11:15
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 20 años, 9 meses
Puntos: 0
ese php esta dentro de un codigo html???

po rque si es asi esta mal para hacer header solo debes poner php sin nada de html

saludos
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #3 (permalink)  
Antiguo 01/07/2005, 11:17
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 20 años, 9 meses
Puntos: 0
aprovechando el impulso del header se pueden hacer dos header juntos por ejemplo

header("location: index.php?accion=login&login=$userName&&password=$ password");
header("location: index.php?accion=bienvenida");

saludos
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #4 (permalink)  
Antiguo 01/07/2005, 11:27
 
Fecha de Ingreso: junio-2005
Ubicación: Cordoba
Mensajes: 41
Antigüedad: 19 años, 5 meses
Puntos: 0
pon en la primera linea
<?
ob_start();
...
....
y en la ultima linea del codigo
ob_end_start();
  #5 (permalink)  
Antiguo 01/07/2005, 11:27
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 20 años
Puntos: 34
En vez de usar header("Location:superadmin.php") si ya mandaste contenidos a los header, podes usar echo "<script>window.location = 'superadmin.php';</script>";.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #6 (permalink)  
Antiguo 01/07/2005, 11:27
 
Fecha de Ingreso: junio-2005
Ubicación: Cordoba
Mensajes: 41
Antigüedad: 19 años, 5 meses
Puntos: 0
perdon la ultima linea me he equivocado seria asi:
ob_end_flush();
  #7 (permalink)  
Antiguo 01/07/2005, 12:38
 
Fecha de Ingreso: abril-2005
Ubicación: 34°35'49.20"S | 58°24'06.
Mensajes: 158
Antigüedad: 19 años, 7 meses
Puntos: 3
maralbus:
Cita:
ese php esta dentro de un codigo html???
es un archivo.php
y lo unico que tiene es lo que mostre.

malom:
Cita:
pon en la primera linea
<?
ob_start();
...
....
y en la ultima linea del codigo
ob_end_start();
es lo que habia echo. (solo me faltaba transcribir el ob_end_flush)

---

Igualmente, no se que paso. Solo reinicie la maquina mientras encendia un cilindro pitatorio tabacal para calmar mis ancias orales. (que no se entienda mal) , y andubo.... los misterios cosmicos del universo

edit:

Gracias a todos los que respondieron. Siempre se aprende algo nuevo, aunque sea al reveer conceptos.
  #8 (permalink)  
Antiguo 01/07/2005, 12:49
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 21 años, 4 meses
Puntos: 0
Hola, creo que esto que indica maralbust:

header("location: index.php?accion=login&login=$userName&&password=$ password");

No es posible. A mi por lo menos no me permite poner variables dentro de la cadena como pueden ser $userName y $password. No me redirecciona a la página y ese es el problema que tengo.

Un saludo.
  #9 (permalink)  
Antiguo 01/07/2005, 15:48
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 20 años, 9 meses
Puntos: 0
la verdad no me referia eso, y si se puede hacer eso, ya esta echo y funciona a la perfeccion, lo que preguntaba es si se pueden poner dos header seguidos como en el ejemplo,

Código PHP:
header("location: index.php?accion=login&login=$userName&&password=$password"); 
y debajo

Código PHP:
header("location: index.php?accion=entrada"); 

saludos
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #10 (permalink)  
Antiguo 01/07/2005, 15:55
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 20 años
Puntos: 34
Error no te va a tirar, pero no te ejecutara ambas peticiones.

Sino intenta de crear uno.php, dos.php, y en dos haz un insert a una tabla, y en uno pon dos header location a dos.php, y veras que el insert es uno solo.


Que es lo que necesitas hacer?
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #11 (permalink)  
Antiguo 01/07/2005, 15:58
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
Cita:
Iniciado por maralbust
lo que preguntaba es si se pueden poner dos header seguidos como en el ejemplo
Un header te redierccionará... ¿cómo va a redireccionar dos veces? .

Respuesta: Puedes ponerlos en el código, puedes condicionarlos para que uno ú otro se ejecute pero no puedes hacer que 2 header() --Location-- se ejecuten "a la vez".

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #12 (permalink)  
Antiguo 01/07/2005, 17:37
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 20 años
Puntos: 34
Bueno, de hecho, cuando me lo pregunto, me agarro la duda (si, es de esas preguntas que nunca me había hecho:p), así que fui y me cree los dos files que puse como ejemplo, y no, pese a que estába casi seguro, el ejemplo me demostro que solo ejecuta un solo header (creo que el último es el que ejecuta, o era el primero??, me habia fijado eso también, pero no recuerdo...igual no hace la diferencia).
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #13 (permalink)  
Antiguo 01/07/2005, 19:27
Avatar de The_Dark_Roy  
Fecha de Ingreso: enero-2004
Mensajes: 218
Antigüedad: 20 años, 10 meses
Puntos: 0
Cita:
Iniciado por dominguez
Hola, creo que esto que indica maralbust:

header("location: index.php?accion=login&login=$userName&&password=$ password");

No es posible. A mi por lo menos no me permite poner variables dentro de la cadena como pueden ser $userName y $password. No me redirecciona a la página y ese es el problema que tengo.

Un saludo.
esto si se puede hacer:

Código PHP:
    header("Location: pagina.php?op=$op_env&mas_op=$mas_op_env"); 
pero ojo que el codigo anterior de dominguez tiene un error
__________________
ojala te hayas quitado la venda

http://www.surire.cl
http://www.uta.cl
  #14 (permalink)  
Antiguo 04/07/2005, 07:49
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 20 años, 9 meses
Puntos: 0
De acuerdo headers

siguiendo el tema,

lo que pasa es que con header redirecciono para el login, pero necesito que una vez logeado me muestre una pantalla que diga :

"ya te logeaste" (son ideas de mi jefe)

pero no se como hacerlo, ya que toda la pagian esta echa con los condenados headers (location)


saludos
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #15 (permalink)  
Antiguo 04/07/2005, 12:26
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
1) Puedes presentar un mensaje en la misma pantalla donde redireccionas que diga eso... no será una nueva ventana ¿quién querría una ventana para eso??. ¿cómo hacerlo?; sencillo... checas si te logueaste e imprimes el mensaje... incuso puedes verificar una variable enviada por URL (lo que ya se esta haciendo) para que te sea más simple entenderlo.

2) JavaScrit... ya sea que al momento de logearte presentes un mesaje y, pasado X tiempo te redireccione... es lo que hace este foro...

3) Siguiendo la misma filosofia de 1... checas si te logueaste y de ser así con JavaScript abres un pop-up donde presentarás el mensaje.... según entiendo lo que buscas... personalmente no me gusta la idea .

Busca sobre redireccionar en este foro y en el de JavaScript... seguro encontrarás el código necesario.

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 14:06.