problemas con location en login contra LDAP PHP

Iniciado por R41N-W4R3, 19 Diciembre 2007, 19:00 PM

0 Miembros y 1 Visitante están viendo este tema.

R41N-W4R3



   Hola a tod@s.....  espero alguien pueda ayudarme pq es bien extraño esto que me pasa.

   Situacion: Estoy programando el acceso a una pagina que contendrá documentos separados en carpetas. Dependiendo del  grupo en el que el usuario se encuentre en el directorio activo, el directorio al que accedera sera uno u otro. Separando en principio dos grandes grupos, direccion y contabilidad.

   Mi problema es que trato de cargar con la funcion location una pagina u otra dependiendo del tipo de acceso. Ya he chequeado que la funcion que me comprueba el correcto login LDAP y tambien se que funciona bien la funcion que ve la pertenencia a un grupo determinado. pero no consigo que el location me envie donde necesito, ya que no hace nada.


   
$dominio="@midominio.local";
$user=addslashes__recursive($_POST["us"]).$dominio;
$pasw=addslashes__recursive($_POST["pas"]);
$MensajeSup=LoginLDAP($user,$pasw);
$direc=PerteneceA();

if ($direc=="" && $MensajeSup=="Acceso Permitido"){

echo "<h2><a href='http://192.168.9.117/index.php'>Volvel a la pagina de     Inicio</a><h2>";
echo"Usted pertenece al dominio, pero NO tiene permiso para el acceso a Intranet";
exit;
}

if ($MensajeSup=="Acceso Permitido" && $direc<>""){
[b] header ("Location: http://192.168.9.117/acceso.php");[/b]
exit;
}


Bueno a ver si alguien puede ayudarme.  Gracias de antemano

pd:He puesto solo el trozo de codigo mas relevante, como pueden ver no he incluido si el usuario se equivoca con las credenciales de inicio de sesion,etc...

alone-in-the-chat

Usualmente deja de funcionar el envio de header cuando ya se ah enviado otra cabecera al navegador  , osea que lo mas probable es que por alli se este enviando una cadena , texto , espacio en blanco , etc

Si envias algo al browser antes de lanzar el header este no funcionara


Saludos

Because maybe
You're gonna be the one that saves me
And after all
You're my wonderwall
d[n_n]b

WHK

Citarif ($direc=="" && $MensajeSup=="Acceso Permitido"){

   echo "<h2><a href='http://192.168.9.117/index.php'>Volvel a la pagina de     Inicio</a><h2>";
   echo"Usted pertenece al dominio, pero NO tiene permiso para el acceso a Intranet";
   exit;
   }

if ($MensajeSup=="Acceso Permitido" && $direc<>""){
    header ("Location: http://192.168.9.117/acceso.php");
    exit;
}

Lo que decían, estas enviando una cabecera atrasada, el header ya fue enviado asi que no puedes enviarlo dos veces, tienes que ponerlo de los primeros o te dará error, antepone un @ de todas formas para evitar mostrar errores, de todas formas no sacas nada con imprimir echo porque con header harás que se redireccione automáticamente sin que el usuario alcanze a ver algo.

R41N-W4R3

#3

  Ya he reducido el código al minimo y sigue sin funcionar... voy a poner aqui el archivo completo paa ver si alguno me puede ayudar.


<style type="text/css">
<!--
body {
background-color: #E1E0C8;
}
.style1 {font-family: "Berlin Sans FB"}
color: #0000CC;
font-weight: bold;
-->
</style><img src="../IMAGENES/CABECERA.jpg" width="555" height="197" align="top" />
<br><br><br><br>

<?php

include ("util.php");
include (
"ldap.php");

$dominio="@midominio.local";
$user=addslashes__recursive($_POST["us"]).$dominio;
$pasw=addslashes__recursive($_POST["pas"]);
$MensajeSup=LoginLDAP($user,$pasw);

 if (
$MensajeSup=="Acceso Permitido"){
header ("Location: http://www.google.es");
}else 
header ("Location: http://www.hotmail.com");

?>




A ver si alguno me indica que puede pasar. Si necesitais ver si el problema esta en las funciones que comprueban el acceso a traves de ldap indicadmelo...... ya estoy desesperado.......  he conseguido el login con LDAP y ver la pertenencia a grupo pero esto que es una tonteria no me funciona  :(   

Gracias por las respuestas

alone-in-the-chat

Debes leer los mensajes de arriba desde el momento que envias algo al explorador (en este caso toda esta parte )

Código (php) [Seleccionar]

<style type="text/css">
<!--
body {
background-color: #E1E0C8;
}
.style1 {font-family: "Berlin Sans FB"}
color: #0000CC;
font-weight: bold;
-->
</style><img src="../IMAGENES/CABECERA.jpg" width="555" height="197" align="top" />
<br><br><br><br>


ya no podra ejecutarse la sentencia header , te lanzara el error de cabecera ya enviada
primero haz toda tu validacion y despues recien manda al browser lo que desees
en este caso la parte de arriba (la cual veo totalmente innecesaria puesto que al final igual lo redireccionaras y el usuario no vera eso)


Saludos

Because maybe
You're gonna be the one that saves me
And after all
You're my wonderwall
d[n_n]b

R41N-W4R3

#5

  Voy a probarlo.... ciertamente no es necesario, lo que pasa es que en principio no pensaba hacer disquisicion entre grupos del ldap, solamente seria la validacion la que me mostrase los datos que necesito...........


   Gracias otra vez por tu ayuda y perdona mi ignorancia con la prog web.. pero no es un tema que domine demasiado.

EDIT:PERDONA Q SEA TAN PESADO PERO DESPUES DE QUITAR EL CODIGO QUE ME INDICAS SIGUE HACIENDO LO MISMO :(

alone-in-the-chat

Código (php-brief) [Seleccionar]

<?php
include (
"util.php");
include ("ldap.php");
$dominio="@midominio.local";
$user=addslashes__recursive($_POST["us"]).$dominio;
$pasw=addslashes__recursive($_POST["pas"]);
$MensajeSup=LoginLDAP($user,$pasw);
if ($MensajeSup=="Acceso Permitido")
{
header ("Location: http://www.google.es");
}else{
header ("Location: http://www.hotmail.com");
}
?>



Prueba asi tal y como esta , fijate que los includes que realizes no envian nada al browser

Saludos
Because maybe
You're gonna be the one that saves me
And after all
You're my wonderwall
d[n_n]b

R41N-W4R3



  He probado lo que me indicas, y sigue sin redireccionar....   pero a ver si puedes indicarme pq pasa esto:

    Una vez que le doy en el principal al boton de login, que me lleva al codigo que me has puesto antes, tal y como esta sin nada mas....  no deberia de aparecer el fondo gris de la pantalla, y aparece.....he analizado con httpanalizer, y el contenido de login.php (que  unicamente lleva el codigo que me pusiste antes) es el siguiente:

 
<style type="text/css">
<!--
body {
background-color: #E1E0C8;

}
.style1 {font-family: "Berlin Sans FB"}
color: #0000CC;
font-weight: bold;

-->
</style>



  Es como si la hoja de estilo se le estuviese aplicando, aunke no hay nada en el archivo que lo haga, pero es el mismo fondoque tiene la pagina de donde viene y es el mismo q esta tenia hasta q lo borré.........    voy a empezar todo desde el principio..... 

pd: Nuevamente te agradezco tu ayuda y sobretodo paciencia

alone-in-the-chat

Supongo que esos datos llegan de un formulario postea el codigo de ese formulario o pagina de formulario
Si es extraño que te jale el codigo del css si no lo estas llamando de ningun lado postea tu codigo completo (formulario incluido) para darle una chekada a fondo


Saludos

Because maybe
You're gonna be the one that saves me
And after all
You're my wonderwall
d[n_n]b

WHK

Es ovbio, estas haciendo un include antes de declarar el header y esos includes talves emitan ya sus propias cabeceras, no puedes declarar el header después de todo eso, intenta redireccionar con un echo '<META HTTP-EQUIV="refresh" content="0;URL=http://www.google.cl">';