Foros del Web » Programando para Internet » PHP »

problema con header

Estas en el tema de problema con header en el foro de PHP en Foros del Web. En primer lugar un saludo a todos y en segundo lugar les pido una ayuda con los headers. tengo un script de validacion de código ...
  #1 (permalink)  
Antiguo 30/10/2007, 15:09
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
problema con header

En primer lugar un saludo a todos y en segundo lugar les pido una ayuda con los headers. tengo un script de validacion de código para registrarse, pero tengo un error con el header y me sale este error(horror):

Warning: Cannot modify header information - headers already sent by (output started at /home/aa000070/public_html/includes/verificacion.php:7) in /home/aa000070/public_html/includes/verificacion.php on line 27

bueno el código completo es:

<form action="verificacion.php" method="post">
<p align="center">
Ingrese su clave de verificación<br />
<input type="text" name="clave" /><br />
<input type="submit" name="validar" value="Validar" /></p>
</form>
<?php
@$clave=$_POST['clave'];
if(isset($clave))
{
if($clave!=="")
{
include('../claves/conexion.php');
$conn=Conectarse();
$sql=("select * from temporal where clave like '$clave'");
$consulta=mysql_query($sql,$conn);
if($row=mysql_fetch_array($consulta))
{
session_start();
$_SESSION['bandera'] = $row[2];
$_SESSION['clave'] = $row[0];
$_SESSION['id_alu']=$row[1];
$bandera=$_SESSION['bandera'];
$clave=$_SESSION['clave'];
if($bandera==1)
{
header("Location:../registro.php?clave=".$clave);
exit;
}
else
{
echo '<p class="titulos">Su clave ya fue utilizado</p>';
}
mysql_free_result($consulta);
mysql_close($conn);
}
else
{
echo '<p class="titulos">No existe clave</p>';
}
}
else
{
echo '<p class="titulos">No puede quedar en blanco</p>';
}
}
else
{
echo '<p class="titulos">Ingrese Su clave</p>';
}
?>


la version de php es 5.2.3 y de apache 1.3.x del servidor donde alojo la web
espero su ayuda .
gracias

Última edición por argy; 30/10/2007 a las 15:31
  #2 (permalink)  
Antiguo 30/10/2007, 15:28
Avatar de acastillog70  
Fecha de Ingreso: septiembre-2003
Ubicación: México, D.F.
Mensajes: 181
Antigüedad: 20 años, 7 meses
Puntos: 1
Re: problema con header

Al utilizar la función HEADER() debes de tener en cuanta que no se puede ejecutar si ya se ha enviado un encabezado HTTP para la página. PHP envía un encabezado HTTP automáticamente en cuanto se devuelve algo al navegador, Por lo tanto, si hay una instrucción echo o incluso algún espacio en blanco antes de la etiqueta PHP de apertura, se enviarán los encabezados y PHP devuelve el mensaje de advertencia al intentar llamar el Header ().

Por lo que tendrás que reorganizar tu programa o en su defecto puedes utilizar la función include, me funciono mejor que el header.
Saludos y espero te sirva de algo mi observación
__________________
Nacemos para morir. De lo demas, no te preocupes, ocupate.
  #3 (permalink)  
Antiguo 30/10/2007, 15:50
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
Re: problema con header

muchas gracias por su respuesta.

como ve el código no tiene espacios en blanco,tampoco etiqueta echo o print antes del header, bueno sobre el include de que me habla lo pongo en lugar del header?.
otra pregunta más no tendría que ver nada la versión de apache? porque en otros servidores gratuitos que los he alojado normal funciona el código.
  #4 (permalink)  
Antiguo 30/10/2007, 15:55
Avatar de acastillog70  
Fecha de Ingreso: septiembre-2003
Ubicación: México, D.F.
Mensajes: 181
Antigüedad: 20 años, 7 meses
Puntos: 1
Re: problema con header

yo utilice mejor el include en vez del header porque asi como tu me dio muchos problemas el ponerlo, y la verdad no se si tenga que ver la version del apache, pero yo uso la version 2.0.59, porque no lo actualizas?
saludos
__________________
Nacemos para morir. De lo demas, no te preocupes, ocupate.
  #5 (permalink)  
Antiguo 30/10/2007, 21:10
 
Fecha de Ingreso: agosto-2005
Ubicación: Argentina, Capital Federal
Mensajes: 435
Antigüedad: 18 años, 8 meses
Puntos: 2
Re: problema con header

Debes tener en cuenta que ninguna salida debe ser enviada al navegador antes de llamadas a funciones de redirección o seteo de cookies. En tu 1º línea

Código PHP:
<form action="verificacion.php" method="post"
ya estas enviando cabeceras al navegador. Debes estructurar tu código de manera que header sea llamada sin haber enviado nada antes o sino acudir al uso de funciones de control de salida en PHP; por ejemplo:

Código PHP:
<?php
// Esto se coloca al comienzo de tu archivo
ob_start();
?>
Esta última alternativa personalmente NO la recomendaría ya que lo considero "emparchar el problema".

En cuanto a los servidores gratuitos es muy posible que la configuración de PHP que disponian escondían los errores NOTICE y por ello no los veías.

Saludos.
__________________
R4DS en español | R4DS en inglés
  #6 (permalink)  
Antiguo 31/10/2007, 14:47
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
Re: problema con header

Bueno gracias por sus respuestas y lo reestructuraré para no enviar nada al navegador antes que el header.

gracias
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 01:27.