Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: R41N-W4R3 en 19 Diciembre 2007, 19:00 pm



Título: problemas con location en login contra LDAP PHP
Publicado por: R41N-W4R3 en 19 Diciembre 2007, 19:00 pm


   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.


   
Código:
$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...


Título: Re: problemas con location en login contra LDAP PHP
Publicado por: alone-in-the-chat en 19 Diciembre 2007, 22:32 pm
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



Título: Re: problemas con location en login contra LDAP PHP
Publicado por: WHK en 20 Diciembre 2007, 03:23 am
Citar
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<>""){
    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.


Título: Re: problemas con location en login contra LDAP PHP
Publicado por: R41N-W4R3 en 20 Diciembre 2007, 12:33 pm

  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.

Código:
<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


Título: Re: problemas con location en login contra LDAP PHP
Publicado por: alone-in-the-chat en 20 Diciembre 2007, 16:09 pm
Debes leer los mensajes de arriba desde el momento que envias algo al explorador (en este caso toda esta parte )

Código
  1. <style type="text/css">
  2. <!--
  3. body {
  4. background-color: #E1E0C8;
  5. }
  6. .style1 {font-family: "Berlin Sans FB"}
  7. color: #0000CC;
  8. font-weight: bold;
  9. -->
  10. </style><img src="../IMAGENES/CABECERA.jpg" width="555" height="197" align="top" />
  11. <br><br><br><br>
  12.  


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



Título: Re: problemas con location en login contra LDAP PHP
Publicado por: R41N-W4R3 en 20 Diciembre 2007, 17:36 pm

  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 :(


Título: Re: problemas con location en login contra LDAP PHP
Publicado por: alone-in-the-chat en 20 Diciembre 2007, 18:00 pm
Código
  1. <?php
  2. include ("util.php");
  3. include ("ldap.php");
  4. $dominio="@midominio.local";
  5. $user=addslashes__recursive($_POST["us"]).$dominio;
  6. $pasw=addslashes__recursive($_POST["pas"]);
  7. $MensajeSup=LoginLDAP($user,$pasw);
  8. if ($MensajeSup=="Acceso Permitido")
  9. {
  10. header ("Location: http://www.google.es");
  11. }else{
  12. header ("Location: http://www.hotmail.com");
  13. }
  14. ?>
  15.  

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

Saludos


Título: Re: problemas con location en login contra LDAP PHP
Publicado por: R41N-W4R3 en 20 Diciembre 2007, 18:46 pm


  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:

 
Código:
<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


Título: Re: problemas con location en login contra LDAP PHP
Publicado por: alone-in-the-chat en 20 Diciembre 2007, 19:28 pm
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



Título: Re: problemas con location en login contra LDAP PHP
Publicado por: WHK en 20 Diciembre 2007, 19:52 pm
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">';


Título: Re: problemas con location en login contra LDAP PHP
Publicado por: alone-in-the-chat en 20 Diciembre 2007, 20:02 pm
Pues a mi me parece que esos dos include de la parte de arriba son clases o funciones que esta definiendo para ser usados

 ;D

Aunque si mejor evitemonos lios y redirecciona con html o javascript
total no necesitaras que sea indexado

Saludos


Título: Re: problemas con location en login contra LDAP PHP
Publicado por: R41N-W4R3 en 21 Diciembre 2007, 09:42 am


  Muchas gracias a los dos por vuestra ayuda  :)  ...... he aprendido muho sobre esto




   pd: Usuarios como vosotros hacen grande este foro