Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- HOST:ACONECTARSE.COM
- CONFIGURATION host.configuration
- <?
- /****************************************************************
- Nombre : hosting.conf
- Tarea : Definicion de las constantes utilizadas en el sistema
- de hosting gratuito.
- Las definiciones son vбlidas para todos aquellos
- scripts que formen parte del servicio de hosting
- gratuito que estйn implementados en PHP.
- Archivos con la documentacion del sistema:
- - docs/LEAME.txt
- - docs/Documentacion - Hosting Gratuito.pdf
- Version: 0.4
- Pefijos definidos:
- APP --> nombre de un archivo/programa.
- CONF --> Valor de configuraciуn de alguna caracterнstica.
- PATH --> Ruta de acceso archivos/programas.
- TEXT -->
- WEB --> URL's para enlaces dentro de la web.
- ****************************************************************/
- /*** NOMBRE DE LAS APLICACIONES ***/
- // Biblioteca con las funciones de manejo de LDAP.
- define('APP_LIB_LDAP','conn_ldap.php');
- // Biblioteca con las funciones de soporte para el sistema.
- define('APP_LIB_SUPPORT_FUNCTIONS','newfunc.php');
- // Programa que se encarga de enviar el mail con los datos del alta del usuario.
- define('APP_MAIL_ALTA','mandamail_alta.pl');
- // Programa que se encarga de enviar el mail cuando el user modifica su password.
- define('APP_MAIL_PASS','mandamail_password.pl');
- // Programa que se encarga de crear la pбgina temporal por defecto del usuario habilitado.
- define('APP_DEFAULT_USER_FILES','crea_index.pl');
- /*** RUTAS DE ACCESO A ACHIVOS/PROGRAMAS ***/
- // Ruta de acceso al directorio donde se almacenan los usuarios de HOSTING.
- define('PATH_HOSTING','/arr01/Hosting/');
- // Ruta de acceso al directorio donde se almacena los scripts que manejan el HOSTING.
- define('PATH_HOSTING_HOME', PATH_HOSTING . 'w/w/w/www.aconectarse.com/html/hosting/');
- // Ruta de acceso al directorio de la documentacion
- define('PATH_DOCS_HOME', PATH_HOSTING_HOME . 'docs/');
- // Ruta de acceso al directorio de las utilidades de apoyo del sistema. Ej: mandamail_alta.pl, etc.
- define('PATH_UTILS_HOME', PATH_HOSTING_HOME . 'utils/');
- // Ruta de acceso al archivo de log.
- define('PATH_LOGFILE', '/var/log/qmail/aconectarse.com/hosting.log');
- /*** CONFIGURACION ***/
- // Espacio para el usuario . EN [MBytes]
- define('CONF_USER_QUOTA','10');
- // Cantidad de caracteres que se utilizan para generar la password aleatoria.
- define('CONF_NEW_PASS','5');
- // Usuario utilizado para ejecutar los scripts y/o comandos.
- define('CONF_EXEC_USER','hosting');
- // Password del usuario.
- define('CONF_EXEC_PASS','hosting');
- // IP del server donde se ejecutan los scripts.
- define('CONF_EXEC_IP_ADDR','192.168.220.160');
- // Casilla de mail del soporte del servicio.
- define('CONF_SUPPORT_MAIL','soporte@aconectarse.com');
- // IP's publicas que se aceptan para que el usuario se conecte por FTP.
- // El caracter | (pipe) sirve de separador, para tener mбs de una.
- define('CONF_PUBLICAS','200.69.153.0/255.255.255.0|200.69.154.0/255.255.255.0|200.69.155.0/255.255.255.0|200.80.208.0/255.255.255.0|200.80.209.0/255.255.255.0|200.80.252.0/255.255.255.0|200.80.253.0/255.255.255.0|200.80.254.0/255.255.255.0');
- // IP Publica del webserver.
- define('CONF_WEBSERVER','200.69.128.99');
- // Nombre del stylesheet.
- define('CONF_STYLE','styles_ac.css');
- // Cantidad de DIAS que se permite que un usario este sin responder el mail.
- define('CONF_TOLERANCIA','15');
- /*** LINK's URL ***/
- // URL Absoluta del sitio.
- define('WEB_HOME_DIR','http://www.aconectarse.com/');
- // define('WEB_HOME_DIR','http://nuevo.aconectarse.com/');
- // URL de la pagina de abajo.
- define('WEB_BOTTOM_FRAME','http://www.aconectarse.com/');
- // URL con los datos de los numeros de telefonos.
- define('WEB_CONNECT','http://www.aconectarse.com/html/ciudades.shtml');
- // URL de Mi cuenta
- define('WEB_ACCOUNT','http://www.aconectarse.com/html/micuenta.php');
- /*** TEXT (mensajes, tнtulos, etc) ***/
- // Nombre del Sitio.
- define('TEXT_COMPANY','Aconectarse.com');
- // Nombre del Servicio.
- define('TEXT_SERVICE','Tu Sitio Web');
- // Delimitador.
- define('TEXT_DELIMETER','::');
- ?>
- #######################################################################################
- <?
- /****************************************************************
- Nombre : pass_mod.php
- Tarea : Se encarga de modificar la contraseсa del usuario.
- Tiene 2 modos de ejecucion:
- (1) Cuando el ususario se olvido su contraseсa y
- no puede entrar al sitio.
- En ese caso se le genera una nueva (random) y
- se le manda esa contraeсa a su casilla de mail.
- (2) Cuando quiera modificarla. Esto es estando dentro
- del sistemas, elige en el menu y debe ingresar su
- contraseсa vieja y la nueva.
- Recibe :
- Archivos con la documentacion del sistema:
- - docs/LEAME.txt
- - docs/Documentacion - Hosting Gratuito.pdf
- ****************************************************************/
- // Nombre del archivo/script.
- define('FILE_NAME','pass_mod.php');
- // Archivo con las constantes utilizadas.
- include("hosting.conf");
- /*** CUERPO PRINCIPAL ***/
- switch($tipo){
- case "random":
- $estado_user = check_uid($dominio);
- switch($estado_user) {
- case 0: /*** USER OK. ***/
- /*** Genero la contraseсa nueva ***/
- $new_pass = Random_Password(CONF_NEW_PASS);
- /*** Modifico la Contraseсa ***/
- $estado_modif = modificar_password_rand($dominio,$new_pass,&$error);
- switch($estado_modif) {
- case 0: /*** CAMBIO DE PASS OK. ***/
- /*** Me traigo algunos atributos del usuario para mandarle el mail. ***/
- obtener_campos($dominio,&$nombre,&$email);
- /*** Controlo que el nombre no tenga espacios. ***/
- $nombre_correcto=check_name($nombre);
- system("perl " . PATH_UTILS_HOME . APP_MAIL_PASS . " $email $nombre_correcto $new_pass");
- $msj="Hemos enviado un mail a: " .$email ." con tu nueva contraseсa. | Te Esperamos!!";
- /*** Inicio una sesiуn para pasarle a show_page info del usuario. ***/
- session_start();
- if(!session_is_registered('mensaje'))
- {
- session_register("mensaje");
- $mensaje = $msj;
- session_register("nombre_user");
- $nombre_user = $nombre;
- }
- // Se modificу la contraseсa correctamente. Muestro la info de que todo salio OK!
- header("Location: show_page?page=pass&tipo=rand_ok");
- break;
- case 1: /*** NO SE PUDO MODIFICAR LA CONTRASEСA. ***/
- /*** Inicio una sesiуn para pasarle a show_page info del error. ***/
- session_start();
- /*** Ahora mensaje tiene el error devuelto por modificar_passaword_rand() ***/
- $mensaje=$error;
- if(!session_is_registered('mensaje'))
- {
- session_register("mensaje");
- }
- // NO se pudo modificar la contraseсa. Muestro la info del error.
- header("Location: show_page?page=pass&tipo=rand_fail");
- break;
- case 2: /*** FATAL ***/
- echo "Error FATAL!";
- break;
- } // FIN DEL switch($estado_modif)
- break;
- case 1: /*** NO EXISTE ESE DOMINIO. ***/
- $mensaje="El Dominio es inexistente. Por Favor, intente de nuevo";
- /*** Inicio una sesiуn para pasarle a show_page info del error. ***/
- session_start();
- /*** Ahora mensaje tiene el error devuelto por modificar_passaword_rand() ***/
- if(!session_is_registered('mensaje'))
- {
- session_register("mensaje");
- }
- // NO se pudo modificar la contraseсa. Muestro la info del error.
- header("Location: show_page?page=pass&tipo=rand_fail");
- break;
- case 2: /*** FATAL ***/
- echo "Error Fatal.";
- break;
- } // FIN DEL switch($estado_user)
- break;
- case "user" :
- session_start();
- if (!session_is_registered("uid")){
- echo "Permiso denegado (Su sessión no esta registrada)";
- exit();
- } else {
- include "header.inc";
- /*** SE PASA EL LA VAR ERROR PARA LLENARLA ***/
- mostrar_header($uid,$Nombre);
- modificar_password($uid,$old,$new,$conf,&$error);
- /*** SE VERIFICA QUE ESTE TODO BIEN ***/
- if($error != "OK")
- {
- /*** SE MUESTRAN LOS CAMPOS Y SE INDICA EL ERROR ***/
- //show_form_modif_pass($uid,$error,$old,$new,$conf);
- echo "ERROR AL MODIFICAR LA CONTRASEСA!! " . $error;
- exit();
- }
- else /*** SE MODIFICO MAGNIFICAMENTE ***/
- {
- echo "<BR><BR><BR><font color=white><center><B>Contraseña modificada con exito !</B></FONT></center>";
- exit();
- }
- }
- }
- /*** FIN DEL CUERPO PRINCIPAL ***/
- /*** DEFINICION DE FUNCIONES ***/
- /****************************************/
- /* REALIZA LA MODIFICACION DEL PASSWORD */
- /****************************************/
- function modificar_password($uid,$old,$new,$conf,$error)
- {
- if($new != $conf)
- {
- $error="<center><h6>La contraseña nueva no corresponde con su confirmación</h6></center>";
- return;
- }
- include(PATH_UTILS_HOME . APP_LIB_SUPPORT_FUNCTIONS);
- include(PATH_UTILS_HOME . APP_LIB_LDAP);
- $conn = connect_ldap_write();
- /*** Error al conectarse a LDAP. (escritura) ***/
- if ( $conn == -1 )
- {
- $mensaje = "Imposible conectarse a nuestros servidores de datos. | Intente más tarde. | Muchas Gracias.";
- if(!session_is_registered('mensaje'))
- {
- session_register("mensaje");
- }
- // Hubo algъn problema con el ldap. Llamo a show_page, para
- // que informe al user.
- header("Location: show_page.php?page=ldap&tipo=connect_err");
- }
- $r = bind_ldap($conn);
- /*** Error al bindearse a LDAP. ***/
- if ( $conn == -1 )
- {
- ldap_close($conn);
- $mensaje = "Imposible establecer contacto con nuestros servidores de datos. | Intente más tarde. | Muchas Gracias.";
- if(!session_is_registered('mensaje'))
- {
- session_register("mensaje");
- }
- // Hubo algъn problema con el ldap. Llamo a show_page, para
- // que informe al user.
- header("Location: show_page.php?page=ldap&tipo=bind_err");
- }
- $letra=obtengo_letra($uid);
- $busca="ou=".$letra.",ou=ftp,dc=techtel,dc=com";
- $sr=ldap_search($conn,$busca,"uid=".$uid."");
- if (ldap_count_entries($conn,$sr) == 0)
- {
- $error="<center><h5>Ese usuario no existe ... por favor verifique sus datos y contбctese con el soporte...</h5></center>";
- ldap_close($conn);
- return;
- }
- $info=ldap_get_entries($conn, $sr);
- $passwenc="{SHA}".base64_encode(mHash(MHASH_SHA1, $old));
- if($info[0]["userpassword"][0] == $passwenc)
- {
- $passwenc="{SHA}".base64_encode(mHash(MHASH_SHA1, $new));
- $entry[userPassword]=$passwenc;
- $dn=$info[0]["dn"];
- $r=ldap_mod_replace($conn,$dn,$entry);
- if($r == TRUE)
- {
- $error="OK";
- ldap_close($conn);
- return;
- }
- else
- {
- $error="Ha habido un error ... no se pudo modificar el password ... intente más tarde.";
- ldap_close($conn);
- return;
- }
- }
- else
- {
- $error="El password actual es incorrecto.";
- ldap_close($conn);
- return;
- }
- ldap_close($conn);
- }
- /****************************************************************
- Funciуn : get_uid
- Tarea : Busca el uid del usuario, a partir de su e-mail.
- Por razones de escala se busca en todas las ramas
- de LDAP por separado. Esto hace al algoritmo un poco
- mбs complejo, pero permite que la cantidad de
- usuarios crezca sin afectar a la performance.
- Recibe : email = dir de mail con la que se registrу.
- error = carga la descripciуn del error encontrado.
- Retorna : 0 = OK
- 1 = Error en algun campo. La descripciуn del error
- va en $mensaje.
- ****************************************************************/
- function get_uid($email,$error)
- {
- //$ramas="a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","09","otros";
- /* Cantidad de veces que se encuentra la casilla de mail ($mail) regisrada como usuario de hosting gratuito. */
- $ocurrencias=0;
- $conn = connect_ldap();
- $r = bind_ldap($conn);
- $dn="ou=ftp,dc=techtel,dc=com";
- $filtro="(&(mail=" . $email .") (businessCategory=hostingfree))";
- $sr=ldap_search($conn,$dn,$filtro);
- for($i=0; $i < $ramas["count"]; $i++)
- {
- $dn="ou=ftp,dc=techtel,dc=com";
- $sr=ldap_search($conn,$dn,$filtro);
- /*** Obtengo la cantidad de entradas para la rama. ***/
- $entradas=ldap_count_entries($conn,$sr);
- switch($entradas) {
- case 0: /***
- Si no encuentra nada, no problem es solo una rama, pero hay que
- contemplarla para que no caiga en el default.
- ***/
- break;
- case 1:
- $info=ldap_get_entries($conn, $sr);
- $ocurrencias++;
- break;
- default: /***
- Todos los demбs casos. Significa que en una misma rama encontrу
- mбs de una vez el mismo mail registrado.
- ***/
- $info=ldap_get_entries($conn, $sr);
- $ocurrencias = $ocurrencias + $entradas;
- break;
- }
- }
- switch($ocurrencias) {
- case 0:
- /*** No se encontrу el mail. ***/
- $error="La casilla de e-mail que ha especificado no existe ... por favor verifíquela.";
- break;
- case 1:
- /*** Perfecto. Una sola ocurrencia. ***/
- break;
- default: /*** Hay que hacerle seleccionar una cuenta? ***/
- break;
- }
- }
- /*** A PARTIR DE ACA PASSWORD RANDOM ***/
- /****************************************************************
- Funciуn : check_uid
- Tarea : Busca el uid del usuario.
- Recibe : dominio = dominio del user que quiere modificar su
- contraseсa.
- Retorna : 0 = OK
- 1 = No existe el dominio.
- 2 = Error inesperado. Encontrу en la misma rama de
- LDAP 2 o mбs uid iguales.
- ****************************************************************/
- function check_uid($dominio)
- {
- include(PATH_UTILS_HOME . APP_LIB_SUPPORT_FUNCTIONS);
- include(PATH_UTILS_HOME . APP_LIB_LDAP);
- $conn = connect_ldap_read();
- /*** Error al conectarse a LDAP. (solo lectura) ***/
- if ( $conn == -1 )
- {
- $mensaje = "Imposible conectarse a nuestros servidores de datos. | Intente más tarde. | Muchas Gracias.";
- if(!session_is_registered('mensaje'))
- {
- session_register("mensaje");
- }
- // Hubo algъn problema con el ldap. Llamo a show_page, para
- // que informe al user.
- header("Location: show_page.php?page=ldap&tipo=connect_err");
- }
- $r = bind_ldap($conn);
- /*** Error al bindearse a LDAP. ***/
- if ( $conn == -1 )
- {
- ldap_close($conn);
- $mensaje = "Imposible establecer contacto con nuestros servidores de datos. | Intente más tarde. | Muchas Gracias.";
- if(!session_is_registered('mensaje'))
- {
- session_register("mensaje");
- }
- // Hubo algъn problema con el ldap. Llamo a show_page, para
- // que informe al user.
- header("Location: show_page.php?page=ldap&tipo=bind_err");
- }
- $letra=obtengo_letra($dominio);
- $dn="ou=".$letra.",ou=ftp,dc=techtel,dc=com";
- $filtro="uid=".$dominio;
- $sr=ldap_search($conn,$dn,$filtro);
- $entradas=ldap_count_entries($conn,$sr);
- switch($entradas) {
- case 0: /*** No encuentra nada. ***/
- return 1;
- break;
- case 1: /*** Existe! ***/
- return 0;
- break;
- default: /*** Encontrу mбs de una entrada, muy loco, pero hay que tenerlo en cuenta. ***/
- return 2;
- break;
- }
- }
- /****************************************************************
- Funciуn : obtener_campos
- Tarea : Busca en el LDAP los campos requeridos.
- Recibe : nombre = nombre del usuario.
- email = direccion de correo electrуnico.
- Retorna : 0 = OK
- 1 = No existe el dominio.
- 2 = Error inesperado. Encontrу en la misma rama de
- LDAP 2 o mбs uid iguales.
- ****************************************************************/
- function obtener_campos($dominio,$nombre,$email)
- {
- /*** Intento conectarme a LDAP ***/
- $conn = connect_ldap_read();
- /*** Error al conectarse a LDAP. (solo lectura) ***/
- if ( $conn == -1 )
- {
- $mensaje = "Imposible conectarse a nuestros servidores de datos. | Intente más tarde. | Muchas Gracias.";
- if(!session_is_registered('mensaje'))
- {
- session_register("mensaje");
- }
- // Hubo algъn problema con el ldap. Llamo a show_page, para
- // que informe al user.
- header("Location: show_page.php?page=ldap&tipo=connect_err");
- }
- $r = bind_ldap($conn);
- /*** Error al bindearse a LDAP. ***/
- if ( $conn == -1 )
- {
- ldap_close($conn);
- $mensaje = "Imposible establecer contacto con nuestros servidores de datos. | Intente más tarde. | Muchas Gracias.";
- if(!session_is_registered('mensaje'))
- {
- session_register("mensaje");
- }
- // Hubo algъn problema con el ldap. Llamo a show_page, para
- // que informe al user.
- header("Location: show_page.php?page=ldap&tipo=bind_err");
- }
- $letra=obtengo_letra($dominio);
- $dn="ou=".$letra.",ou=ftp,dc=techtel,dc=com";
- $filtro="uid=".$dominio;
- $sr=ldap_search($conn,$dn,$filtro);
- $entradas=ldap_count_entries($conn,$sr);
- switch($entradas) {
- case 0: /*** No encuentra nada. ***/
- return 1;
- break;
- case 1: /*** Existe! ***/
- $info = ldap_get_entries($conn, $sr);
- $nombre = utf8_decode(info[0]["cn"][0]);
- $email = $info[0]["mail"][0];
- return 0;
- break;
- default: /*** Encontrу mбs de una entrada, muy loco, pero hay que tenerlo en cuenta. ***/
- return 2;
- break;
- }
- }
- /****************************************************************
- Funciуn : Random_Password
- Tarea : Genera una contraseсa de manera aleatoria.
- Recibe : largo = cantidad de caracteres para la contraseсa.
- Retorna : pass = Password Aleatoria.
- ****************************************************************/
- function Random_Password($largo) {
- /*** Valor semilla ***/
- srand(date("s"));
- /*** Los caracterecteres que se usarбn para la contraseсa ***/
- $posibles = "abcdefghijklmnopqrstuvwxyz0123456789";
- /*** Me aseguro que estй vacнa. ***/
- $pass = "";
- while( (strlen($pass)) < $largo )
- {
- /*** Obtengo un caracter al azar de $posibles ***/
- $pass .= substr($posibles,(rand()%(strlen($posibles))),1);
- }
- return($pass);
- }
- /****************************************************************
- Funciуn : modificar_password_rand
- Tarea : Cambia en la cuenta del usuario en LDAP su contraseсa.
- Recibe : uid = cantidad de caracteres para la contraseсa.
- pass = Contraseсa nueva.
- Retorna : 0 = OK
- 1 = Error al intentar modificar la contraseсa.
- 2 = Error inesperado.
- ****************************************************************/
- function modificar_password_rand($uid,$passwd,$error)
- {
- /*** Intento conectarme a LDAP ***/
- $conn = connect_ldap_write();
- /*** Error al conectarse a LDAP. (escritura) ***/
- if ( $conn == -1 )
- {
- $mensaje = "Imposible conectarse a nuestros servidores de datos. | Intente más tarde. | Muchas Gracias.";
- if(!session_is_registered('mensaje'))
- {
- session_register("mensaje");
- }
- // Hubo algъn problema con el ldap. Llamo a show_page, para
- // que informe al user.
- header("Location: show_page.php?page=ldap&tipo=connect_err");
- }
- $r = bind_ldap($conn);
- /*** Error al bindearse a LDAP. ***/
- if ( $conn == -1 )
- {
- ldap_close($conn);
- $mensaje = "Imposible establecer contacto con nuestros servidores de datos. | Intente más tarde. | Muchas Gracias.";
- if(!session_is_registered('mensaje'))
- {
- session_register("mensaje");
- }
- // Hubo algъn problema con el ldap. Llamo a show_page, para
- // que informe al user.
- header("Location: show_page.php?page=ldap&tipo=bind_err");
- }
- $letra = obtengo_letra($uid);
- $busca= "ou=" . $letra . ",ou=ftp,dc=techtel,dc=com";
- $sr=ldap_search($conn,$busca,"uid=".$uid."");
- if ( ldap_count_entries($conn,$sr) == 0 )
- {
- $error="El usuario ingresado es inexsitente. Verifique sus datos e intente nuevamente.";
- ldap_close($conn);
- return 1;
- }
- $info = ldap_get_entries($conn, $sr);
- // Me aseguro que estй limpia.
- $passwenc ="";
- $passwenc = "{SHA}".base64_encode(mHash(MHASH_SHA1,$passwd));
- $entry[userPassword]=$passwenc;
- $dn=$info[0]["dn"];
- $r = ldap_mod_replace($conn,$dn,$entry);
- if($r == TRUE)
- {
- $error="";
- ldap_close($conn);
- return 0;
- }
- else
- {
- $error="Ha habido un error y no se pudo modificar su contraseña. Por favor, intente nuevamente.";
- ldap_close($conn);
- return 1;
- }
- ldap_close($conn);
- return 2;
- }
- /****************************************************************
- Funciуn : check_name
- Tarea : Controla el nombre del usuario. En el caso que tenga
- un espacio lo escapa ( \ ).
- Recibe : nombre
- Retorna : nombre
- ****************************************************************/
- function check_name ($nombre)
- {
- $separado=explode(" ",$nombre);
- $cant=count($separado);
- /*** Me aseguro que estй vacнa. ***/
- $new_nombre = "";
- if ( $cant == 1 )// No hay ningъn espacio.
- {
- $new_nombre=$a[0];
- }
- else
- {
- // Hay espacios. Recorro el array concatenando las partes
- // con un \ en el medio.
- for ( $i=0; $i < $cant ; $i++)
- {
- $new_nombre = $new_nombre . $separado[$i];
- $new_nombre = $new_nombre . "\ ";
- }
- // Hardcoding para sacar el \ del final.
- $len = strlen($new_nombre);
- $new_nombre = substr($new_nombre,0,($len - 2));
- }
- return $new_nombre;
- }
- ?>
- <?
- /****************************************************************
- Nombre : login.php
- Tarea : Valida el ingreso del usuario al sistema de
- configuracion de su sitio web.
- Primero efectua la conprobaciуn de que se estй
- conectando por los DialUP de Aconectarse.com
- Archivos con la documentacion del sistema:
- - docs/LEAME.txt
- - docs/Documentacion - Hosting Gratuito.pdf
- Version: 0.4
- ****************************************************************/
- // Nombre del archivo/script.
- define('FILE_NAME','login.php');
- include("hosting.conf");
- include(PATH_UTILS_HOME . APP_LIB_SUPPORT_FUNCTIONS);
- session_start();
- if(!session_is_registered('uid_hosting')){
- echo "Permiso denegado (Su sesión no está registrada).";
- exit();
- }
- if ( verifica_ip($REMOTE_ADDR) ){
- // El usuario se esta intentando loguear con una IP que no es de Aconectarse.com
- header("Location: show_page?page=login&tipo=error_dialup");
- }
- else{
- /*** Se pasa la variable error por referencia para cargarle los msg de error dentro de la funciуn ***/
- $uid=$uid_hosting;
- $password=$password_hosting;
- $ret_val = verifica_user($uid,$password,&$error,&$Nombre);
- switch($ret_val){
- case "OK" :
- $data="";
- $data = FILE_NAME . " " . $uid . " " . $REMOTE_ADDR . " " . "LOGIN OK \n";
- log_write($data);
- // Crea la nueva sesion y va directo al menu.
- //session_start();
- if (!session_is_registered('uid')){
- session_register("uid");
- session_register("Nombre");
- }
- header("Location: menu.php");
- break;
- case "PASSERROR":
- $data="";
- $data = FILE_NAME . " " . $uid . " " . $REMOTE_ADDR . " " . "PASSWORD ERROR \n";
- log_write($data);
- // Crea la sesion y vuleve a mostrar el form, con el error encontrado.
- session_start();
- if (!session_is_registered('uid')){
- session_register("uid");
- session_register("error");
- }
- header("Location: show_page.php?page=login&tipo=error_pass");
- break;
- case "NOTINIT" :
- $data="";
- $data = FILE_NAME . " " . $uid . " " . $REMOTE_ADDR . " " . "LOGIN FAIL. NO MAIL REPLY. \n";
- log_write($data);
- session_start();
- if (!session_is_registered('error')){
- session_register("error");
- }
- header("Location: show_page.php?page=login&tipo=error_incompleta");
- break;
- case "NOTEXISTS":
- $data="";
- $data = FILE_NAME . " " . $uid . " " . $REMOTE_ADDR . " " . "LOGIN FAIL. USER INEXISTENTE. \n";
- log_write($data);
- session_start();
- if (!session_is_registered('error')){
- session_register("error");
- }
- header("Location: show_page.php?page=login&tipo=error_incompleta");
- break;
- }
- exit;
- }
- /****************************************************************
- Funciуn : verifica_user
- Tarea : Controla si el usuario estб habilitado para ingresar.
- Recibe : uid
- password
- error
- Nombre
- Retorna : 0 = OK
- 1 = Error en algun campo. La descripciуn del error
- va en $mensaje.
- ****************************************************************/
- function verifica_user($uid,$password,$error,$Nombre)
- {
- /**** UTILIZA LAS FUNCIONES DE LDAP ***/
- include(PATH_UTILS_HOME . APP_LIB_LDAP);
- $conn =connect_ldap_simon();
- /*** Error al conectarse a LDAP. (solo lectura) ***/
- if ( $conn == -1 ){
- $mensaje = "Imposible conectarse a nuestros servidores de datos. | Intente más tarde. | Muchas Gracias.";
- session_start();
- if(!session_is_registered('mensaje')){
- session_register("mensaje");
- }
- // Hubo algъn problema con el ldap. Llamo a show_page, para
- // que informe al user.
- header("Location: show_page.php?page=ldap&tipo=connect_err");
- }
- $r = bind_ldap_simon($conn);
- /*** Error al bindearse a LDAP. ***/
- if ( $conn == -1 ){
- ldap_close($conn);
- $mensaje = "Imposible establecer contacto con nuestros servidores de datos. | Intente más tarde. | Muchas Gracias.";
- session_start();
- if(!session_is_registered('mensaje')){
- session_register("mensaje");
- }
- // Hubo algъn problema con el ldap. Llamo a show_page, para
- // que informe al user.
- header("Location: show_page.php?page=ldap&tipo=bind_err");
- }
- $letra = obtengo_letra($uid);
- /*** Lo busco en la rama FTP de SIMON ***/
- $busca = "ou=" . $letra . ",db=Usuarios,dc=techtel,dc=com";
- $sr = ldap_search($conn,$busca,"uid=".$uid."");
- $entradas = ldap_count_entries($conn,$sr);
- if ($entradas == 0){
- $error="Hay un error en sus datos ... por favor verifíquelos... | Recuerde que debe ingresar como nombre de usuario el dominio completo: EJ: tuya.tupp.com.ar";
- ldap_close($conn);
- return "NOTEXISTS";
- }
- /*** Se encripta el password ****/
- $passwordenc="{SHA}".base64_encode(mHash(MHASH_SHA1, $password));
- //$passwordenc=$password;
- $info=ldap_get_entries($conn,$sr);
- /*** Se fija si el usuario pertenece al hosting free ***/
- if ($entradas != 0 && $info[0]["businesscategory"][0] != "hostingfree"){
- $error="Hay un error en sus datos ... por favor verifíquelos... | Recuerde que debe ingresar como nombre de usuario el dominio completo: EJ: tuya.tupp.com.ar";
- ldap_close($conn);
- return "NOTEXISTS";
- }
- if($info[0]["uid"][0] == $uid && $info[0]["userpassword"][0] == $passwordenc && $info[0]["ftpstatus"][0] == "enabled"){
- $Nombre = utf8_decode($info[0]["cn"][0]);
- ldap_close($conn);
- return "OK";
- } /* Si algo anduvo mal se fija que fue */
- else if($info[0]["userpassword"][0] != $passwordenc){
- $error="Su contraseña es incorrecta... intente nuevamente.";
- ldap_close($conn);
- return "PASSERROR";
- }
- else if($info[0]["ftpstatus"][0] == "disabled"){
- $Nombre = utf8_decode($info[0]["cn"][0]);
- $error = $Nombre . ", todavía no has respondido el e-mail que te hemos enviado a: " . $info[0]["mail"][0] . " | Tenés que hacerlo para habilitar tu cuenta correctmente. | Muchas Gracias.";
- ldap_close($conn);
- return "NOTINIT";
- }
- ldap_close($conn);
- }
- ?>
Add Comment
Please, Sign In to add comment