Foros del Web » Programando para Internet » PHP »

duda de header("Location:pag.php"); (PARA CLUSTER) o quien sepa

Estas en el tema de duda de header("Location:pag.php"); (PARA CLUSTER) o quien sepa en el foro de PHP en Foros del Web. Tengo un problema de 2 redireccionamientos estoy haciendo autentificacion de usuarios al momento de que el usuario exista lo mando a la pagina de bienvenida ...
  #1 (permalink)  
Antiguo 01/04/2004, 09:55
Avatar de The_omars  
Fecha de Ingreso: marzo-2004
Mensajes: 271
Antigüedad: 20 años
Puntos: 0
duda de header("Location:pag.php"); (PARA CLUSTER) o quien sepa

Tengo un problema de 2 redireccionamientos

estoy haciendo autentificacion de usuarios al momento de que el usuario exista lo mando a la pagina de bienvenida y cuando no lo mando a una pagina de error el problema es que uso 2 headers y
cuando es correcto el login no me respeta la condicion y siempre me manda a la pagina de error por que sera?????

Código PHP:
<?php 
session_start
();

echo 
$_session['user']= $_POST['user'];
echo
"<br>";
echo 
$_session['pass']=$_POST['pass'];
echo
"<br>";
echo 
$_session['confirm']=$_POST['confirm'];
echo
"<br>";
echo 
$_session['director']=$_POST['director'];

include(
'conexion.php');

$cons="select id_usuario,nombre_usuario,password,perfil from usuario";
$res=mysql_query($cons,$conex) or die ("Nel se pudo realizar la consulta");

echo 
"<table align=center>";
echo
"<th>";
echo
"<form action='' method='POST'>";

    while (
$row=mysql_fetch_row($res)){
                    
if (
$_session['user']==$row[1] and $_session['pass']==$row[2] and $_session['confirm']==$row[2] and $_session['director']==$row[3] ){
                                                                
header("Location:asdfsdf.php"); 
}else{
header("Location:acceso_error_director.php");//cuando le quito este header funciona bien

}

}

echo
"</select>";

echo
"<br>";

mysql_free_result($res);
mysql_close($conex);
?>
  #2 (permalink)  
Antiguo 01/04/2004, 10:04
Avatar de The_omars  
Fecha de Ingreso: marzo-2004
Mensajes: 271
Antigüedad: 20 años
Puntos: 0
YA LO RESOLVI

YA ESTA RESUELTO AMIGOS¡¡¡


while ($row=mysql_fetch_row($res)){

if ($_session['user']==$row[1] and $_session['pass']==$row[2] and $_session['confirm']==$row[2] and $_session['director']==$row[3] ){

header("Location:asdfsdf.php");
break;
}else{
header("Location:acceso_error_director.php");

}

}


era ponerle un break ,,

adios y gracias hay le dejo el codigo por si les sirve o les pasa esto
  #3 (permalink)  
Antiguo 01/04/2004, 10:05
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 4 meses
Puntos: 11
no sé para que haces un echo al asignar, basta con que asignes a $_session[] su correspondiente $_post[].
La consulta sql puedes hacerla de manera que filtre de inmediato el usuario es decir devuelva 1 registro o ninguno si es que el usuario existe o no, para eso usa la clausula where de select, asi no tendras que recorrer toda la tabla de usuario para ver si esta éste o no.
__________________
Dedicado a proyectos web, actualmente desarrollando un sistema de diseño de flyers online muy fácil de usar.
  #4 (permalink)  
Antiguo 01/04/2004, 10:06
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

La palabra secreta es exit:
Código PHP:
header("....");
exit; 
Con esto haces que se finalice el script, y no siga ejecutanto el bucle.

De todas formas, tu scrip solo funciona cuando el primer registro de la consulta es correcto. Si no lo es, siempre ejecuta el else.

Incluso otra incongruencia de tu script es que para que generas HTML si la unica forma de que se vea es que en la tabla no haya ningun registro.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 01/04/2004, 10:16
Avatar de The_omars  
Fecha de Ingreso: marzo-2004
Mensajes: 271
Antigüedad: 20 años
Puntos: 0
De acuerdo GRACiaS

GRacias Josemi por tus REcomendaciones la pondre en marcha y tambien a claudiovega por sus aportaciones
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 20:36.