Foros del Web » Programando para Internet » PHP »

Problema con header("Location:.......

Estas en el tema de Problema con header("Location:....... en el foro de PHP en Foros del Web. Hola he creado el fichero "conexionInc.php" de la siguiente forma: Cita: <? function Conectarse() { $host = "localhost"; $userBD = "root"; $passBD = "s0075"; $database ...
  #1 (permalink)  
Antiguo 16/11/2009, 18:45
 
Fecha de Ingreso: octubre-2008
Mensajes: 87
Antigüedad: 15 años, 6 meses
Puntos: 0
Problema con header("Location:.......

Hola he creado el fichero "conexionInc.php" de la siguiente forma:

Cita:
<?
function Conectarse()
{
$host = "localhost";
$userBD = "root";
$passBD = "s0075";
$database = "quimed";


$connection = mysql_connect ($host,$userBD,$passBD)
or die ("No se puede conectar al Servidor de BD");

if (!$connection) {
exit;}

$result = mysql_select_db($database,$connection)
or die ("No se puede conectar a la base de datos especificada");

if (!$result){
mysql_free_result($result);
mysql_close($connection);
exit;
}

return $connection;
}
?>
Y tengo la siguiente pág PHP:

Cita:
<?
include('conexionInc.php'); --> EL FICHERO ANTERIOR

$sql = "SELECT * FROM $table_name
WHERE login = \"$login\" AND password =\"$password\" ;";

$connection = Conectarse();
$result = mysql_query($sql,$connection)
or die ("No se puede ejecutar el query");
$num = mysql_numrows($result);

if ($num == 1) {
header("Location:P_inicio.php?nom=".$login);---> NO EJECUTA ESTO

} else {
header("Location:Intranet.php?msj=No es correcto el Usuario y/o Contraseña");-->NO PUEDE EJECUTAR ESTO TAMPOCO

}

?>
Si lo ejecuto dice:
Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\doctorado\conexion.inc.php:27) in C:\AppServ\www\doctorado\Intranet_ok.php on line 27

Antes ejecutaba el mismo código sólo que no separaba las variables y programación q ahora he agrupado en la funcion Conectar(). Me da error al ejecutar todos los "header("Location:......"

Alguna idea de q está pasando??
Gracias¡¡
  #2 (permalink)  
Antiguo 16/11/2009, 18:47
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Problema con header("Location:.......

Pon un exit(); siempre despues de cada header() para que deje de ejecutar codigo, asi no envia nada al cliente y se evita ese error de "headers ya enviados...."
  #3 (permalink)  
Antiguo 16/11/2009, 18:50
 
Fecha de Ingreso: octubre-2008
Mensajes: 87
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Problema con header("Location:.......

...continua dando el mismo error.
Ha comenzado a salir al separar la programacion de la conexión en ConesionInc.php

gracias de todas formas por la yuda
  #4 (permalink)  
Antiguo 16/11/2009, 18:58
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Problema con header("Location:.......

Entonces asegurate que ConesionInc.php no tenga absolutamente NADA antes del primer <?php

ni siquiera un espacio, ni salto de linea.... ya me diras
  #5 (permalink)  
Antiguo 16/11/2009, 19:17
 
Fecha de Ingreso: octubre-2008
Mensajes: 87
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Problema con header("Location:.......

No tiene ná de ná
  #6 (permalink)  
Antiguo 16/11/2009, 19:24
 
Fecha de Ingreso: octubre-2008
Mensajes: 87
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Problema con header("Location:.......

el código completo de la pág PHP es:

Código PHP:
<?
header
('Content-Type: text/html; charset=UTF-8');
include(
'conexionInc.php'); 

$login $_POST["LoginUser"];
$password $_POST["LoginPass"];
$table_name "usuarios";

if ((
$login == "") || ($password == "")) {
   
    
header("Location:Intranet.php?msj=No ha introducido el Nombre de Usuario y/o Contraseña");
    exit;


$sql "SELECT * FROM $table_name
    WHERE login = \"$login\" AND password =\"$password\" ;"


$connection Conectarse();


$result mysql_query($sql,$connection
            or die (
"No se puede ejecutar el query"); 
    
$num mysql_numrows($result); 
    
if (
$num == 1) { 
     
header("Location:P_inicio.php?nom=".$login);
     exit;
    
} else { 
        
header("Location:Intranet.php?msj=No es correcto el Usuario y/o Contraseña");
        exit;
     } 


?>
De esta forma me sale el error q ya he dicho.

Si cambio ahora las 2 primeras lineas (primero el include y luego el header) me salen 2 errores del mismo tipo. Vamos de mal en peor.
  #7 (permalink)  
Antiguo 16/11/2009, 19:50
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Problema con header("Location:.......

Esto quitalo:

header('Content-Type: text/html; charset=UTF-8');
  #8 (permalink)  
Antiguo 16/11/2009, 20:04
 
Fecha de Ingreso: octubre-2008
Mensajes: 87
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Problema con header("Location:.......

Ya he probado y no es eso. Finalmente el problema era un espacio en blanco detrás de el ÚLTIMO ?> de conexionInc.php.

Gracias por la ayuda¡¡¡
  #9 (permalink)  
Antiguo 23/11/2009, 12:28
Avatar de ColdFusion  
Fecha de Ingreso: octubre-2008
Ubicación: Tocoa, Colon Honduras C.A.
Mensajes: 419
Antigüedad: 15 años, 6 meses
Puntos: 9
Respuesta: Problema con header("Location:.......

Ami no me funciona y eso que ya leii todo lo que pusieron aqui miren lo:

Código PHP:
<?
if($Submit){
$agregado == FALSE;
if(
$name == "")
{
$error_message "Porfavor ingresa tu nombre";
}else
if(
$email == "")
{
$error_message "Porfavor ingresa tu Email";
}else
if(
$message == "")
{
$error_message "Porfavor escribe tu mensaje";
}else
// check to see if verificaton code was correct
if(md5($verif_box).'a4xn' == $_COOKIE['savasguestbook']){
$message str_replace("<""&lt;"$message);
$message str_replace(">""&gt;"$message);
mysql_query ("INSERT INTO entries (name, email, message , date, approved) VALUES ('$name', '$email', '$message', '$date', 'Yes')");
$agregado TRUE;
$error_message "$name your entry was submitted succesfully but it will appear on the website after admin moderation.";

}
else
{
$error_message "Porfavor ingresa el codigo de verificacion correcto";
}
}
?>
<table class="entry"><tr><td class="info"><h2>Agregar Mensaje</h2></td></tr><tr><td><? echo $error_message?>
<form action="" method="post" />
<table align="center">
<tr><td>Nombre:</td><td><input type="text" name="name" value="<? echo $name?>" /></td></tr>
<tr><td>Email:</td><td><input type="text" name="email" value="<? echo $email?>" /></td></tr>
<tr><td>Mensaje:</td><td><textarea name="message" rows="5" cols="55"><? echo $message?></textarea></td></tr>
<tr>
<td>Verificacion:</td>
<td><input type="hidden" name="verificationnr" value="<? echo '' $verificationnr '';?>" /><img src="verificationimage.php?<?php echo rand(10000,99999);?>" alt="verification image, type it in the box" width="60" height="24" align="left" />  <input type="text" id="verif_box" name="verifbox" maxlength="5" size="5" /></td></tr>
<tr><td style="border: none;"></td><td style="border: none;"><input type="submit" name="Submit" /></td></tr></table>
</td></tr></table>
</div>
<div id="sidebar">
<h2>Navegacion</h2>
<ul>
<li><a href="index.php" title="Home">Lista de Mensajes</a></li>
<li><a href="agregar.php">Agregar Mensaje</a></li>
</ul>
<h2>Otros enlaces</h2>
<ul>
<li><a href="../index.php">Inicio</a></li>
<li><a href="../noticias/">Noticias</a></li>
<li><a href="../comentarios/">Comentarios</a></li>
<li><a href="../galeria.php">Galeria</a></li>
<li><a href="../descargas.php">Descargas</a></li>
</ul>
<br />
<br />

</div>
</div>
<? 
include('../inc/pie.php'); 
if (
$agregado == TRUE) {
header("Location:index.php"); 
exit(); 
 }
?>
La var $agregado es para ver si ya se envio y luego redireccionar al index, pero no funciona
  #10 (permalink)  
Antiguo 23/11/2009, 12:33
 
Fecha de Ingreso: septiembre-2009
Mensajes: 81
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: Problema con header("Location:.......

la funcion header solo se puede llamar si el php no a enviado absolutamente nada antes al browser, en tu caso envias un monton de codigo html al browser antes de hacer el header, por lo tanto "llegas tarde" xDD
por otro lado arriva del todo cuando haces:
$agregado == FALSE;
eso k es? xDD si kieres darle valor false a la variable te sobra un =
  #11 (permalink)  
Antiguo 23/11/2009, 12:35
Avatar de ColdFusion  
Fecha de Ingreso: octubre-2008
Ubicación: Tocoa, Colon Honduras C.A.
Mensajes: 419
Antigüedad: 15 años, 6 meses
Puntos: 9
Respuesta: Problema con header("Location:.......

Ninguna manera para resolver mi inquietud, algun consejo o algo
  #12 (permalink)  
Antiguo 23/11/2009, 12:45
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema con header("Location:.......

ColdFusion, leiste bien lo que te dijo catalon?

Tienes mucho codigo HTML antes de enviar el header.

NO puedes enviar contenido al navegador si quieres hacer una redireccion con header('Location...')... ni un espacio, ni un salto de linea. Si lo que quieres es enviar un mensaje y, a la vez, hacer una redireccion, entonces hazlo por medio de html, usando la etiqueta META REFRESH
__________________
- León, Guanajuato
- GV-Foto
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:05.