Foros del Web » Programando para Internet » PHP »

Promema con la funcion header("")

Estas en el tema de Promema con la funcion header("") en el foro de PHP en Foros del Web. Saludos foristas ... Veran estoy haciendo un script que me verifique el loggin y el password lo invoco obviamente desde un formulario... ---query_loggin.php--- <? echo ...
  #1 (permalink)  
Antiguo 04/02/2005, 09:38
Avatar de juanpablomagno  
Fecha de Ingreso: enero-2004
Mensajes: 35
Antigüedad: 13 años, 10 meses
Puntos: 0
Promema con la funcion header("")

Saludos foristas ...
Veran estoy haciendo un script que me verifique el loggin y el password lo invoco obviamente desde un formulario...


---query_loggin.php---
<?
echo "Verficando...";
include("conexion.php");
$loggin=$_GET['loggin']; //datos del formulario
$pass=$_GET['pass']; //datos del formulario
$sql="select * from usuario where loggin='$loggin' and pass='$pass'";
$rs=mysql_db_query("documentos",$sql);
if($rs)
header("../frame.php"); //ingreso a la pagina
else
header("../index.php?msg=Ingrese%20nuevamente%20su%20loggin%2 0y%20password"); //retorna al formulario
?>

El problema no esta en la query (eso creo) sino mas bien en el mensaje que aparece al ejecutar este script...

Verficando...
Warning: Cannot add header information - headers already sent by (output started at c:\apache\htdocs\documentos\lib\query_loggin.php:2 ) in c:\apache\htdocs\documentos\lib\query_loggin.php on line 9

Creo que tiene q ver con la funcion header....

Les agradeceria si me pueden ayudar con este problemilla.
  #2 (permalink)  
Antiguo 04/02/2005, 09:49
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 15 años, 3 meses
Puntos: 8
No puedes realizar cualquier acción que "imprima" algo en el explorador antes de enviar en header(). En tu caso haces el echo "verificando...".
Tendrias esta opciones, eliminas esa linea del echo...... O en ves de usar header() para redireccionar usas javascript.
Código PHP:
echo '
<script languaje="javascript">
location = "../frame.php";
</script>'

o algo asi.

Saludos
  #3 (permalink)  
Antiguo 04/02/2005, 09:52
Avatar de H0m3r0J4y  
Fecha de Ingreso: abril-2002
Mensajes: 123
Antigüedad: 15 años, 7 meses
Puntos: 0
Tu error es que en la linea 2 de tu script estas imprimiendo esto => echo "Verficando...";

La funcion Header lo que hace es enviar informacion atraves de las cabeceras de los archivos, y si tu imprimes algo antes de invocarla estas dando por terminado las cabeceras para pasar al contenido. Se entiende?

En resumen, para que te ande solo debes quitar la linea que dice => echo "Verficando...";

Salutes!

PD: por seguridad te convendria usar POST como method del formulario y no GET
  #4 (permalink)  
Antiguo 04/02/2005, 10:56
Avatar de juanpablomagno  
Fecha de Ingreso: enero-2004
Mensajes: 35
Antigüedad: 13 años, 10 meses
Puntos: 0
De acuerdo Gracias por su ayuda

Saludos nuevamente foristas...
Gracias por sus respuestas tan acertadas y sobretodo rapidas... 10 min... .... gracias a fran86 y a H0m3r0J4y ... sin embargo una de sus respuestas me abrio otra duda.... que quieren decir con "PD: por seguridad te convendria usar POST como method del formulario y no GET" ...
La curiosidad es una de mis virtudes...
  #5 (permalink)  
Antiguo 04/02/2005, 11:17
Avatar de H0m3r0J4y  
Fecha de Ingreso: abril-2002
Mensajes: 123
Antigüedad: 15 años, 7 meses
Puntos: 0
Los formularios tienen dos metodos para el envio de informacion
POST = las variables viajan en las cabeceras del archivo
GET = las variables son pasadas atraves de la cola de la direccion

El segundo metodo es poco seguro para mandar un password, ya que queda en el historial de los exploradores.

Salutes!
  #6 (permalink)  
Antiguo 04/02/2005, 11:17
 
Fecha de Ingreso: julio-2003
Ubicación: Parana, ER
Mensajes: 72
Antigüedad: 14 años, 4 meses
Puntos: 0
Lo primero que se me viene a la mente, es que si pasas el password del usuario por GET, se lo estas haciendo publico!
query_loggin.php?loggin=jaimito&pass=123456 ....digamos que no representa mucha "seguridad"

Saludos.
__________________
Victor Bracco
Programador PHP
Proyectos Freelance
  #7 (permalink)  
Antiguo 07/02/2005, 16:27
Avatar de S-Virus  
Fecha de Ingreso: enero-2004
Mensajes: 112
Antigüedad: 13 años, 11 meses
Puntos: 0
editar el archivo .ini

Bueno, el problema ese creo que se soluciona editanto el archivo .ini que hay en c:\apache\php. En ese archivo tienes que buscar la línea que pone output_Buffering = off y ponerla a on.
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 23:04.