Foros del Web » Programando para Internet » PHP »

Tengo problemas la funcion header()

Estas en el tema de Tengo problemas la funcion header() en el foro de PHP en Foros del Web. N ose porque me sale error: q no entiendo pero se que tiene q ver con la funcion heaber () pq cuando la quito ya ...
  #1 (permalink)  
Antiguo 04/04/2006, 16:55
 
Fecha de Ingreso: abril-2006
Mensajes: 5
Antigüedad: 18 años, 1 mes
Puntos: 0
Sonrisa Tengo problemas la funcion header()

N ose porque me sale error: q no entiendo pero se
que tiene q ver con la funcion heaber() pq cuando la quito
ya no sale error
<?php
include("../conexion.html");

$link=Conectarse();


$nombre=$_POST['nombre'];
$pais=$_POST['pais'];
$email=$_POST['email'];
$uss=$_POST['uss'];
$pass=$_POST['pass'];


$query="insert into usuario (nombre,pais,mail,uss,pass)
values('$nombre','$pais','$email','$uss','$pass')" ;
mysql_query($query,$link);
header ("location:".$_SERVER['HTTP_REFERER']);

?>


Gracias
  #2 (permalink)  
Antiguo 04/04/2006, 17:06
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
deberías especificar mejor, pero en principio revisá estas cosas:

1.- NO se debe enviar nada al navegador antes de header(), es decir, nada de echo(), print() ni similares. También asegurate de que "<?php" sea LO PRIMERO que haya en el archivo (nada de líneas vacías ni espacios).

2.- Asegurate también de que está definida la variable HTTP_REFERER, que no siempre está ni es obligatoria.

3.- Y por último asegurate de que el contenido de header cumple la normativa http, en principio y solo por tirar sugerencias te diría que lo hicieras de la forma:
Código PHP:
header("Location: ".$_SERVER['HTTP_REFERER']); 
(con un espacio después de ":" y con L mayúscula, aunque creo que esto último no es relevante.)


Saludos.
  #3 (permalink)  
Antiguo 04/04/2006, 17:20
 
Fecha de Ingreso: febrero-2003
Ubicación: Santiago
Mensajes: 220
Antigüedad: 21 años, 2 meses
Puntos: 4
include("../conexion.html");

ese archgivo tiene texto html, header no puede llevar texto antes de lanzarse, eso resumendo a alvlin ;) saludos.
__________________
Roberto Osses Elgueta
Senior Web Developer
  #4 (permalink)  
Antiguo 05/04/2006, 07:47
 
Fecha de Ingreso: abril-2006
Mensajes: 5
Antigüedad: 18 años, 1 mes
Puntos: 0
Gracias por la respuesta,
pero me sigue saliendo este error
ya le cambie de conexion.html, a conexion.php
y el formato del header esta correcto:


Warning: Cannot modify header information - headers already sent by (output started at /home/fourierc/public_html/usuario/query_insertar_subtema.php:6) in /home/fourierc/public_html/usuario/query_insertar_subtema.php on line 48

Gracias
  #5 (permalink)  
Antiguo 05/04/2006, 08:07
Avatar de JorgitoAlfajor  
Fecha de Ingreso: enero-2006
Mensajes: 152
Antigüedad: 18 años, 4 meses
Puntos: 1
Cita:
Iniciado por calamaro13
ya le cambie de conexion.html, a conexion.php
La extensión del archivo incluido no es el problema, el problema es si dentro de ese archivo tenes alguna salida de html. Verifica que en conexion.php no tengas ninguna linea en blanco delante de <? y que tampoco tengas ningún echo ni nada que de salida HTML. Lo mismo si tenes algun "include" o "require" en conexion.php.
Saludos.
__________________
¿Se me entiende la letra?
  #6 (permalink)  
Antiguo 05/04/2006, 08:21
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 7 meses
Puntos: 2
Hola!
Yo también tengo un problema similar...
Tengo esta página php que lo que se supone que haga es validar un usuario para ingresar a un sector restringido.

Código PHP:
<?php require_once('../Connections/suiza_sinheaders.php'); ?>
<? 
// Defino las variables enviadas por POST
$VarUser=$HTTP_POST_VARS['StrUser'];
$VarPass=$HTTP_POST_VARS['StrPass'];

//conecto con la base de datos 
$conn mysql_connect($hostname_suiza,$username_suiza,$password_suiza); 
//selecciono la BBDD 
mysql_select_db($database_suiza,$conn) or trigger_error(mysql_error(),E_USER_ERROR);

//Sentencia SQL para buscar un usuario con esos datos 
$ssql "SELECT nomusr, passusr FROM ccsausr WHERE nomusr='$VarUser' and passusr='$VarPass'"
//Ejecuto la sentencia 
$rs mysql_query($ssql,$conn); 
if (
mysql_num_rows($rs)!=0){ 
    
//usuario y contraseña válidos si hay datos en el recordset
    //defino una sesion y guardo datos 
    
session_start(); 
    
$_SESSION['logueado'] = $row['nomusr'];
    
$ubicacion="index.php";
    
header("Location: $ubicacion"); 
    exit;
    
}else { 
    
//si no existe le mando otra vez a la portada 
    
$ubicacion="login.php?StrError=Si";
    
header("Location: $ubicacion"); 

mysql_free_result($rs); 
mysql_close($conn);
Verifiqué que no envíe nada al explorador antes de redireccionar y además que la tabla exista en la bdd y que los nombres de campo correspondan...
En otros sectores de este sitio se trabaja lo mas bien con la base de datos mencionada, pero no comprendo del todo por qué me sale este error:

Cita:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/www.suiza.org.ar/public_html/administracion/proclog.php on line 15

Warning: Cannot modify header information - headers already sent by (output started at /home/www.suiza.org.ar/public_html/administracion/proclog.php:15) in /home/www.suiza.org.ar/public_html/administracion/proclog.php on line 27

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /home/www.suiza.org.ar/public_html/administracion/proclog.php on line 29
Les agradezco de antemano por la atención... espero que alguien me pueda dar una mano porque estoy trabajando sobre el desarrollo de una persona que no está mas en la empresa, y yo programo ASP, a PHP lo toco muy de oído.
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #7 (permalink)  
Antiguo 05/04/2006, 08:56
Avatar de JorgitoAlfajor  
Fecha de Ingreso: enero-2006
Mensajes: 152
Antigüedad: 18 años, 4 meses
Puntos: 1
verinchi:
Creo que deberias iniciar un nuevo tema para no confundir los dos problemas. En principio creo que el error del header te lo da porque el aviso del error en la función mysql_num_rows() da saldida a HTML (de echo, la estas viendo en tu pantalla). Asi que creo que el error se debe a algún problema con tu consulta o conexion con la base de datos. Si inicias un tema nuevo vemos si te podemos ayudar.
Saludos.
__________________
¿Se me entiende la letra?
  #8 (permalink)  
Antiguo 05/04/2006, 09:22
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 7 meses
Puntos: 2
Ok, ahora abro un nuevo tema.
No quise molestar con un thread redundante, y como me pareció que el tema era muy parecido lo puse acá. Mil disculpas y gracias por la ayuda
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #9 (permalink)  
Antiguo 10/04/2008, 04:13
 
Fecha de Ingreso: abril-2008
Mensajes: 7
Antigüedad: 16 años
Puntos: 0
Re: Tengo problemas la funcion header()

Buenas, creo que tengo el mismo problema, estoy utilizando este script:

<?
if (!$HTTP_POST_VARS){
?>
<form action="envia_form_php.php" method=post>
Email: <input type=text name=email size=16>
<input name="submit" type=submit value="Enviar">
<br>
</form>
<?
}else{
//Estoy recibiendo el formulario, compongo el cuerpo
$cuerpo = "Formulario enviado\n";
$cuerpo .= "Email: " . $HTTP_POST_VARS["email"] . "\n";
//mando el correo...
mail("[email protected]","Formulario recibido",$cuerpo);
header:("location: ../subs_conf.php);
}
?>

La questión es, quiero que una vez rellenado y enviado el formulario me envie a otra pagina del mismo sitio, tengo entendido que esto se hace con la funcion "header" pero me da el error: Warning: Cannot modify header information - headers already sent by....

Muchas gracias
  #10 (permalink)  
Antiguo 10/04/2008, 07:05
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 7 meses
Puntos: 2
Re: Tengo problemas la funcion header()

Hola Venderman.
No soy muy buena en php, pero a primera vista te estarían faltando unas comillas de cierre en la línea header:("location: ../subs_conf.php); que debería quedarte header:("location: ../subs_conf.php"); pero ese no debe ser el problema después de todo.
El error ese da cuando escribís algo en pantalla antes de la redirección, cualquier cosa que sea. Puede que tengas algún salto de línea antes del <?php en algún include, o que dentro de la misma página tengas alguna salida htm anterior.
Yo lo que haría, es colocar el código que procesa el formulario en otra página en lugar de hacer un condicional, y probar si funciona la redirección.
Si la página que intentas mostrar es la clásica de "gracias por comunicarte con..." te conviene en lugar de redireccionar, procesarla ahí y que luego de enviado, si está todo ok, muestre el contenido htm que querés mostrar.
Espero haber sido clara
Suerte!
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #11 (permalink)  
Antiguo 10/04/2008, 08:45
isra00
Invitado
 
Mensajes: n/a
Puntos:
Re: Tengo problemas la funcion header()

El problema está en que las cabeceras se envían antes que el contenido. Es decir, no podéis enviar una cabecera si antes habéis hecho un include a un archivo con contenido o un echo, print, etc.

Es un error de comprensión. En una transacción HTTP, primero se envían las cabeceras y después el contenido. En un script PHP, en cuanto se envía contenido (por echo o cualquier otra función) entonces se ha cerrado el envío de cabeceras y sólo se puede enviar contenido.

Además, para qué quieres cargar una cabecera si vas a redirigir a otra página?
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 16:12.