Foros del Web » Programando para Internet » PHP »

Autenticar usuario y direccionarlo a carpeta propia en hosting para descargar pdfs

Estas en el tema de Autenticar usuario y direccionarlo a carpeta propia en hosting para descargar pdfs en el foro de PHP en Foros del Web. Hola Buen dia. Necesito ayuda con una rutina o codigo en html, que haga que un usuario al introducir una clave lo dirija a su ...

  #1 (permalink)  
Antiguo 11/07/2011, 13:03
 
Fecha de Ingreso: julio-2011
Mensajes: 47
Antigüedad: 13 años, 4 meses
Puntos: 0
Autenticar usuario y direccionarlo a carpeta propia en hosting para descargar pdfs

Hola Buen dia. Necesito ayuda con una rutina o codigo en html, que haga que un usuario al introducir una clave lo dirija a su carpeta donde pueda ver un listado de archivos PDF que pueda escoger para descargar. Algo muy sencillo, si es posible sin SQL o cosas complicadas. Tengo un listado como de 20 usuarios (muy poquitos) y cada uno tiene su clave y debe ser dirijido a su carpeta (previamente cargada en el Hosting) y que no pueda entrar a otras. ¿se puede hacer en Html o a fuerza necesito alguna base de datos?

Gracias de antemano.
  #2 (permalink)  
Antiguo 11/07/2011, 13:18
Avatar de ZoroRoronoa  
Fecha de Ingreso: marzo-2011
Ubicación: California, USA
Mensajes: 824
Antigüedad: 13 años, 7 meses
Puntos: 116
Respuesta: Autenticar usuario y direccionarlo a carpeta propia en hosting para descar

ocupas la base de datos y PHP.

Con php programaras la carpeta con su ID de usuario y la redireccion a ella al momento del login.

Ademas al momento del login tambien ocupas PHP y BD para comparar la autentificacion del user.
Saludos.

p.d: Por lo que mencionas, si es posible sin SQL, creo que si es posible usando .txt, pero ocuparas PHP de cualquier forma :)
__________________
Programador jQuery & PHP
  #3 (permalink)  
Antiguo 11/07/2011, 22:06
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Autenticar usuario y direccionarlo a carpeta propia en hosting para descar

julg03:

Hay varias formas de hacer esto, el tema es que deberías completarlo con sesiones uó buscar la forma de que un usario una vez logueado no acceda a la carpeta de otro usuario.

yo una vez implementé esto, que requiere de php+Apache

tenes un directorio "proteger"
y dentro de el carpetas para
juan
pedro
manuel

En proteger pones este .htaccess
Código Apache:
Ver original
  1. Options -Indexes
  2. DirectoryIndex index.php
  3. AuthType Basic
  4. AuthName "Privado"
  5. AuthUserFile /servidor/claves.txt
  6. Require valid-user

y este index.php

Código PHP:
Ver original
  1. <?php
  2. header('location: ' . $_SERVER['PHP_AUTH_USER']);
  3. ?>

En cada carpeta de cada usuario (y en las subcarpetas de estos, si las hubiese, juan/pdf/ por ejemplo) pones un index.php como sigue

Código PHP:
Ver original
  1. <?php
  2. #### Buscamos la carpeta actual
  3. $carpeta = $_SERVER['REQUEST_URI'];
  4. $dir = explode("/", "$carpeta");
  5. $actual= end($dir);
  6. $actual = prev($dir);
  7.  
  8. #### Comparamos el nombre de la carpeta actual con el del usuario autorizado
  9. if ($_SERVER['PHP_AUTH_USER'] != $actual){
  10. #### Si no coinciden mostramos error y salimos
  11. echo "error - no autorizado";
  12. exit();
  13. }else{
  14. #### Mostramos contenido de la página
  15. echo "<hr>Carpeta privada de :" . $_SERVER['PHP_AUTH_USER'];
  16.  
  17. #### aca escribis lo que quieras para que sea visible por el usuario
  18.  
  19.  
  20. echo "<br>";
  21. }
  22. ?>

Sólo te resta generar el archivo conteniendo la combinación usuario/clave (es el archivo claves.txt que figura en .htaccess)
Podés hacerlo con cualquier script online (aca hay una, http://www.engr.sjsu.edu/daluu/scripts/htpasswd.php ) o, si tenes Apache en tu Pc en la carpeta bin existe un generador llamado htpasswd.exe

Estoy pidiendo a algun moderador que mueva el post a php, me parece mas apropiado
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #4 (permalink)  
Antiguo 12/07/2011, 12:57
 
Fecha de Ingreso: julio-2011
Mensajes: 47
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Autenticar usuario y direccionarlo a carpeta propia en hosting para descar

Muchisimas gracias por su amabilidad en responder y desgastarlos con algo que para ustedes estoy seguro debe ser sencillo. Pero para un novato como su servidor, es un poco complicado. Ya estoy leyendo y aprendiendo, para dar menos molestias, pero estas dudas salen en el camino del saber. Gracias por mover el tema, ofrezco disculpas por poner el tema aqui. Con sus consejos ya me dieron luz y por ahi me seguire. Hare las practicas necesarias y les mantendre informados de como me va. Mil gracias de nuevo.
  #5 (permalink)  
Antiguo 12/07/2011, 13:07
 
Fecha de Ingreso: julio-2011
Mensajes: 47
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Autenticar usuario y direccionarlo a carpeta propia en hosting para descar

Mil disculpas. Olvide mencionar. No tengo Apache. Estoy trabajando con DreamWeaver 8 (me gusto por su facilidad de uso).En cuanto a los accesos de los usuarios, no creo necesario un nivel de seguridad tan alto, porque solo necesitan entrar a su carpeta, la cual tendra ya archivos PDF listos para descargar (algo como ftp o similar a un servidor de descargas de archivos, de cierto fabricante de programas de INventarios y Contabilidad). Nada complicado. Por eso decia que para alguien con experiencia como ustedes, es algo sencillo. Ya tengo la pagina, estructura, etc..Pero no lograba darme la idea de como hacer que se logearan con su clave y redirigirlos a su carpeta. Repito que los mantendre informados. Gracias de nuevo.
  #6 (permalink)  
Antiguo 12/07/2011, 15:33
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Autenticar usuario y direccionarlo a carpeta propia en hosting para descar

julg03:

A decir verdad, DreamWeaver y Apache no son incompatibles, el primero es un software de desarrollo, el segundo un servidor Web. Y pueden complementarse eficazmente uno con el otro. Si está pensando incursionar de manera acitva en la creación de páginas, la instalación de un paquete como xampp (Apache+php+MySql) no está de más y te va abrir nuevas posibilidades.

http://www.apachefriends.org/es/xampp.html

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #7 (permalink)  
Antiguo 13/07/2011, 12:59
 
Fecha de Ingreso: julio-2011
Mensajes: 47
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Autenticar usuario y direccionarlo a carpeta propia en hosting para descar

Hola emprear, mil gracias por el consejo. Lo implementare a la brevedad.Estoy experimentando con un codigo en PHP donde pongo todos los usuarios con su cuenta (que sera su pass). Voy a usar Sentencias If a ver como me va. Los mantende informados. Mil gracias otra vez.
  #8 (permalink)  
Antiguo 13/07/2011, 13:52
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 7 meses
Puntos: 406
Respuesta: Autenticar usuario y direccionarlo a carpeta propia en hosting para descar

Creo que hay un error de concepto, el hecho de que tal vez no utilices Apache (u otro servidor Web) en tu entorno de desarrollo (tu PC) no quiere decir que en el hosting donde vas a colocar tu página no lo tenga, todo lo contrario, es imprescindible que el hosting tenga un servidor Web, no necesariamente Apache, pero es el mas comun
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #9 (permalink)  
Antiguo 13/07/2011, 17:28
 
Fecha de Ingreso: julio-2011
Mensajes: 47
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Autenticar usuario y direccionarlo a carpeta propia en hosting para descar

Hola Nemutagk y a todos los que han sido tan amables en contestar.
Creo que esto ya se fue mas alla de lo que debia y seguro es por mi culpa al no explicarme bien. Pido disculpas de antemano. En realidad ya hice pruebas, lei codigos de muestra, ya lei el manual PHP y sigo en las mismas o peor. Ya me duele la cabeza porque no encuentro la forma. O soy muy bruto o no sirvo para esto...jejeje...tratare de explicarme:
Un usuario con CUENTA(que usaré como password) quiere descargar un reporte en PDF. Esos archivos PDF los subo a su propia carpeta mediante FileZilla en el Hosting o sitio de la empresa.Dicha carpeta contendra reportes hsitoricos todos en PDF a la cual se le iran agregando mas con el tiempo mediante filezilla.Cada usuario tiene su propia cuenta asi como su propia carpeta y no puede ver ni accesar mas que a la propia. Yo pensaba en un codigo tipo..
EL USUARIO TECLEA SU CUENTA-PASSWORD (digitos).
SI LA CUENTA ES 1001...por ejemplo
DIRIGIRLO A CARPETA 1001.
LE PRESENTO LISTADO DE LOS ARCHIVOS PDF EN FORMA DE LISTA Y TIPO FTP SENCILLO Y LISTO PARA DESCARGAR.
SI NO
TERMINA EL CICLO...algo asi. Y así con todos los usuarios. Pensaba en algo simple sin bases de datos porque solo es un listado de 100 usuarios, que probablemente vayan disminuyendo.

Agradezco de antemano la ayuda, la paciencia y sobre todo sus respuestas.
  #10 (permalink)  
Antiguo 13/07/2011, 17:36
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 7 meses
Puntos: 406
Respuesta: Autenticar usuario y direccionarlo a carpeta propia en hosting para descar

Bueno, 100 usuarios tampoco son pocos que digamos, pero puedes crear algo sencillo...
Creas un archivo que se llame por ejemplo usuarios.php
Código PHP:
Ver original
  1. <?php
  2. $users = array(
  3.      'user'=>'password',
  4.      'miguel'=>'1234',
  5.      'pepe'=>'5678'
  6.      //etc etc etc
  7. );

Crea un archivo autenticar.php (aquí es suponiendo que ya tienes el formulario de login con un campo user, y un campo para el password
Código PHP:
Ver original
  1. if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  2.      $user = $_POST['user'];
  3.      $pass = $_POST['password'];
  4.  
  5.      if ($pass == $users[$user]) {
  6.           $path = 'url/al/path/'.$user;
  7.           header('location: '.$path);
  8.           exit();
  9.      }else {
  10.           echo 'Usuario o contraseña erronea';
  11.      }
  12. }

Nota: con esto SOLO vas a crear una protección falsa, que quiere decir, que cualquier persona que obtenga la URL completa del archivo a descargar podrá hacerlo, incluso, podrá acceder a la carpeta que el quiera conociendo solamente el usuario
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #11 (permalink)  
Antiguo 13/07/2011, 19:13
 
Fecha de Ingreso: julio-2011
Mensajes: 47
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Autenticar usuario y direccionarlo a carpeta propia en hosting para descar

Hola nemutagk.
Mil Gracias por responder tan pronto. Tienes razon en cuanto al nivel de seguridad. Pero te aseguro que no es necesario un nivel tan alto por ahora, ya que son claves unicas y no hay acceso a los servidores y ciertos programas, etc.. Sin embargo sigo estudiando para más adelante hacerlo por sesiones y con una BDD y de una forma más profesional.Esto que me has dado lo usare si no te molesta y te avisare del resultado que estoy seguro sera de mucha ayuda.

Mil gracias de nuevo.
  #12 (permalink)  
Antiguo 13/07/2011, 21:01
 
Fecha de Ingreso: julio-2011
Mensajes: 47
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Autenticar usuario y direccionarlo a carpeta propia en hosting para descar

Hola. Sip...otra vez yo dando molestias.
Primero quiero aclarar que sigo todos los consejos porque creo que es una forma buena de aprender. Tambien sigo agradeciendo su paciencia y su atencion al contestar.
Fijense que implemenet un codigo que hice (obviamente con ayuda de todos ustedes en especial de nemutagK...pero solo he conseguido que se muestre el formulario y al escribir la CUENTA..(1001 por ejemplo)...me retorna la misma pagina con el mensaje de que la cuenta no existe. Los archivos PHP los pruebo en el hosting y se ejecutan sin nigun problema. Puse la ruta : http://mirrors.ibiblio.org/pub/mirrors/rsync/, porque asi es como quisiera mostrar los archivos a descargar...(solo que algo menos explicativo.."reporte15.pdf"...por decir algo.)..y como etapa de prueba.
Seguramente estoy haciendo algo mal, por eso acudo al foro para pedir su consejo y correcciones si son tan amables.
Mil gracias de antemano.
pd.:ya me duele la cabeza...
  #13 (permalink)  
Antiguo 13/07/2011, 21:04
 
Fecha de Ingreso: julio-2011
Mensajes: 47
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Autenticar usuario y direccionarlo a carpeta propia en hosting para descar

perdon se me olvido pegar el codigo...son dos archivos..uno...aqui estan:
autenticar.php
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
//$user = $_POST['user'];
$pass = $_POST['password'];

if ($pass == $pass[$pass]) {
$path = 'http://mirrors.ibiblio.org/pub/mirrors/rsync/'.$pass;
header('location: '.$path);
exit();
}else {
echo 'La cuenta no existe. Por favor comuniquese a nuestras oficinas';
}
}
?>

<form id="myform" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" onSubmit="return valida()">
<fieldset><legend>Ingrese su Cuenta y haga Click en el Botón "ACEPTAR"</legend>
<label for="password">Cuenta:</label>
<input type="text" id="password" name="password" maxlength="6" />
<input type="submit" name="submit" value="ACEPTAR" />
</fieldset>
</form>
-----------------------------------
usuarios.php
<?php
$users = array(
'user'=>'password',
'cuenta001'=>'1001',
'cuenta002'=>'1006'
//etc etc etc
);
  #14 (permalink)  
Antiguo 13/07/2011, 21:16
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 7 meses
Puntos: 406
Respuesta: Autenticar usuario y direccionarlo a carpeta propia en hosting para descar

Viendo con mas detenimiento, obviamente no te va a funcionar, porque no estas indicando ningún usuario, solo la contraseña

Ahora, en el código if ($pass == $pass[$pass]) { o.O no tengo idea que intentas hacer....

Por cierto, tambien veo que no has incluido el archivo usuarios.php ¬¬ require('usuarios.php');
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)

Última edición por Nemutagk; 13/07/2011 a las 21:22
  #15 (permalink)  
Antiguo 13/07/2011, 22:16
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Autenticar usuario y direccionarlo a carpeta propia en hosting para descar

julg03:
Pensé que era algo sencillo, según dijiste

Fijate esto

http://foros.emprear.com/usuarios/
Hay un zip con el código y detalles


Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #16 (permalink)  
Antiguo 14/07/2011, 18:34
 
Fecha de Ingreso: julio-2011
Mensajes: 47
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Autenticar usuario y direccionarlo a carpeta propia en hosting para descar

Hola Buen dia a todos.
Mil gracias por responder tan rapido.
Estimado nemutagk: sorry.comente la linea de usuarios para hacer pruebas y asi la deje por error. Mas "horror" en la linea que mencionas --if --- error de dedos...deberia de ir $user...te pido mil disculpas y clemencia para un novato.

Estimado Emprear: Gracias por tu aporte. Lo implementare de inmediato. Disculpame el haber dicho que era algo sencillo. Asi lo imagine. Ahora veo que no. Seguire con sus consejos. Los mantendre informados.

Mil gracias de nuevo.
  #17 (permalink)  
Antiguo 15/07/2011, 10:08
 
Fecha de Ingreso: julio-2011
Mensajes: 47
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Autenticar usuario y direccionarlo a carpeta propia en hosting para descar

Hola emprear buen dia.
Antes que nada, mil gracias por tu valiosa aportacion ya que me ayudo muchisimo y me abrio nuevas posibilidades y me enseño mucho. Te comunico que hice las pruebas y tu codigo funciono perfecto. Sin embargo creo necesario hacer algunas aclaraciones:
- aunque el hosting si funciona con APACHE yo no lo uso,porque como dije antes, empiezo en esto del PHP.
- Lo de el generador de claves no lo crei necesario. Hice unas adaptaciones pero no supe como adaptarlo. Ademas de que repito que no creo que sea muy necesario, ya que las claves son asignadas de antemano..(lo muestro mas adelante).
- Tampoco requiero de un "nombre de usuario", porque lo que quiero es que al dar click a un enlace que tengo, se abra la pag. PHP donde tengo el codigo que les permita poner CUENTA Y de ahi mandarlos a su propia carpeta..(algo como el link que pusiste en tu respuesta anterior).
Tarte de hacer un codigo que aqui dejo, para solcitar otra vez su valiosa colaboracion...mil gracias de nuevo.
codigo:
<?php

//-- INICIA Porcion de codigo a ejecutar cuando el usuario presiona el boton ACEPTAR

if(isset($_POST['submit']))
{
//Aqui trato de declarar que lo que se ponga en el campo, se use como clave y redirecciono a carpeta
$_POST['fld_nombre'];

//Trato de dirigir a la carpeta del usuario y desplegarle listado de archivos PDF listos para descargar
if $_POST['fld_nombre'] = '1001';
header("Location: http://www.mihosting.com.mx/usuarios/1001");
else
echo "su cuenta no existe";
//header("Location: $url");
if $_POST['fld_nombre'] = '1006';
header("Location: http://www.mihosting.com.mx/usuarios/1006");
if $_POST['fld_nombre'] = '1606';
header("Location: http://www.mihosting.com.mx/usuarios/1606");
//etc. etc.

}

//-- FIN Porcion de codigo a ejecutar cuando el usuario presiona el boton ACEPTAR

?>
<html>
<head>
<title>AccesoRepEventos</title>
</head>
<body>

<!-- INICIA Formulario (REQUERIDO) -->
<!-- id => El identificador unico que tendra en el contexto DOM/HTML-->
<!-- action => La pagina que va a procesar la peticion, en este caso, le indique que fuera este mismo script ($_SERVER['PHP_SELF'], aunque bien puede ser otro -->
<!-- method => El metodo para procesar las variables del formulario, POST significa que no se mostraran en la url resultante (mayor seguridad) -->
<!-- onsubmit => (OPCIONAL) Copie una Accion que se procesara cuando se envie la peticion en el formulario, en lenguaje javascript, debera regresar "true" para procesar, o bien "false" para cancelar -->
<!-- revisar funcion valida() que se encuentra mas abajo de este archivo para mas detalles (linea 47)-->
<form id="myform" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" onSubmit="return valida()">
<fieldset><legend>Ingrese su CUENTA y haga Click en el Botón "ACEPTAR"</legend>
<label for="fld_nombre">Nombre:</label>
<input type="text" id="fld_nombre" name="fld_nombre" maxlength="25" />
<input type="submit" name="submit" value="ACEPTAR" />
</fieldset>
</form>
<!-- FIN Formulario (REQUERIDO) -->

<p>Si no recuerda su CUENTA, por favor comun&iacute;quese al 9320999.</p>
<p><a href="index.html">Inicio</a> <a href="formularioPHP_contacto/forma.php">Contacto</a> <a href="index_micuenta.html">Mi Cuenta</a> </p>
<!-- INICIA Funcion de javascript para validar que no se envie la peticion con el campo en blanco (REQUERIDO) -->
<script type="text/javascript">
//-- Funcion para validar que el campo usuario NO este vacio
function valida() {
var myform = document.getElementById("myform");
var ok = (myform.fld_nombre.value!="");
if(!ok) alert('Debe ingresar un nombre de usuario');
return ok;
}
</script>
<!-- FIN Funcion de javascript para validar que no se envie la peticion con el campo en blanco (REQUERIDO) -->

</body>
</html>
  #18 (permalink)  
Antiguo 15/07/2011, 10:26
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Autenticar usuario y direccionarlo a carpeta propia en hosting para descar

julg03:

Creo que primero deberías definir bien tus objetivos, esto que haces de seguridad no tiene nada. Si tu lista de usuarios no es tan extensa, directamente ofreceles un link a su carpeta. y si queres pone una clave de acceso general al sitio.

En cuanto al generador de claves
Cita:
Ademas de que repito que no creo que sea muy necesario, ya que las claves son asignadas de antemano
Justamente, creas las claves con los valores que ya decidiste de antemano para cada usuario

__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #19 (permalink)  
Antiguo 16/07/2011, 08:42
 
Fecha de Ingreso: julio-2011
Mensajes: 47
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Autenticar usuario y direccionarlo a carpeta propia en hosting para descar

Hola emprear buen dia.
Gracias por responder y por tu paciencia.Tienes total razon en lo que comentas. De hecho, el objetivo principal es direccionar a cada usuario a su propia carpeta en cuano teclee su cuenta (cuenta 1001 -- dirjirlo a la carpeta 1001)..y ahi mostrarle archivos PDF a descargar.

Seguire intentando y haciendo pruebas. Si tienes algun consejo no me iria mal.

Mil gracias. de nuevo.
  #20 (permalink)  
Antiguo 16/07/2011, 09:30
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 7 meses
Puntos: 406
Respuesta: Autenticar usuario y direccionarlo a carpeta propia en hosting para descar

Si es lo que intentas hacer el código que te di funciona con una pequeña modificación

Formulario:
Código HTML:
Ver original
  1. <form action="miphp.php" method="post" >
  2. <input type="text" name="user" id="user" />
  3. <input ype="submit" value="Buscar" />
  4. </form>

miphp.php
Código PHP:
Ver original
  1. <?php
  2.  
  3. $users = array(
  4.      'usuario1'=>'carpeta1',
  5.      'usuario2'=>'carpeta2'
  6. );
  7.  
  8. $user = $_POST['user'];
  9. $path = $users[$user];
  10. $urlPath = 'url/a/las/carpetas/'.$path;
  11.  
  12. if (!empty($user)) {
  13.     header('location: '.$path);
  14.     exit();
  15. }else {
  16.     echo 'No existe dicho usuario';
  17. }

Oh si el nombre del usuario es el nombre de la carpeta puede ser así
Código PHP:
Ver original
  1. $user = $_POST['user'];
  2. $path = 'url/a/las/carpetas/'.$user;
  3.  
  4. if (file_exists($path)) {
  5.      header('location: '.$path);
  6.     exit();
  7. }else {
  8.     echo 'No existe dicho usuario/carpeta';
  9. }
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #21 (permalink)  
Antiguo 16/07/2011, 09:44
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Autenticar usuario y direccionarlo a carpeta propia en hosting para descar

julg03:

Si es asi, lo de @Nemutagk podría funcionar, pero yo le haría una modificación, no basaría mi condición en

if (!empty($user))

una carpeta inexistente para el valor ingresado te provocaria un error 404.

yo utilizaría is_dir() para verificar que la carpeta existe y hacer la redirección
http://www.php.net/manual/es/function.is-dir.php

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #22 (permalink)  
Antiguo 16/07/2011, 09:59
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 7 meses
Puntos: 406
Respuesta: Autenticar usuario y direccionarlo a carpeta propia en hosting para descar

@emprear así es, por eso después modifique el código y agregue la comprobación de que si existe o no dicha carpeta
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #23 (permalink)  
Antiguo 16/07/2011, 12:33
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Autenticar usuario y direccionarlo a carpeta propia en hosting para descar

ok, disculpa, se ve que modificaste mientras estaba posteando,

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #24 (permalink)  
Antiguo 16/07/2011, 21:32
 
Fecha de Ingreso: julio-2011
Mensajes: 47
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Autenticar usuario y direccionarlo a carpeta propia en hosting para descar

Hola buenas noches:
Como dice Miguel Rios en una cancion..:"Sabado en la noche"...y aqui sigo. Muchas gracias a los dos por responder y tenerme esa paciencia. Lo que menos quiero provocar es una discusion o malos entendidos. Por favor, su sapiencia me ha ayudado mucho en este caso. Ya sea para guiarme o para estudiar y hacerme leer. Mil gracias a los dos. Yo pensaba que era tan, pero tan sencillo mi caso, que jamas nadie se tomaria el tiempo para responder. Por favor, no me hagan sentir mal por recibir tan valiosa ayuda. Seguire los dos consejos de inmediato y les mantendre informados...creo que es lo menos que puedo hacer a manera de agradecimiento.

Mil gracias NemutagK y Emprear...MIL GRACIAS.
  #25 (permalink)  
Antiguo 18/07/2011, 13:13
 
Fecha de Ingreso: julio-2011
Mensajes: 47
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Autenticar usuario y direccionarlo a carpeta propia en hosting para descar

Hola Buen dia..si..otra vez yo...dando molestias.
He seguido las indicaciones que tan amablemente me han dado.Tambien ya lei en el sitio PHP.NET como funcionan is_dir(), header (location:), etc..Y sigo dandome de topes en la pared. Use los archivos de Nemutagk (formulario.html y miphp.php...gracias). Le hice las modificaciones y seguramente se me esta pasando algo, porque al darle el numero de cuenta (1001..por ejemplo o cualquier otro)...siempre me dice que no existe la carpeta/usuario...o sea me manda el mensaje del "else". La estructura de carpetas la tengo de la siguiente manera:
http://www.servidordecuentas.com/reporeventos/1001/aqui estan todos sus archivos PDF.
http://www.servidordecuentas.com/reporeventos/1006/idem.
http://www.servidordecuentas.com/reporeventos/1606/lo mismo.
y asi con cada cuenta...(son 100).

Ya puse algunos archivos pdf de muestra para que no estuvieran vacios. Ya probe "manualmente" el llegar hasta los archivos pdf y no hay ninguna restriccion de acceso. Pero sigo sin poder hacer que al poner la CUENTA en "formulario.html", se rediriija a su carpeta. Aqui dejo los codigos que estoy usando...cualquier consejo lo agradecere enormemente....otra vez.

archivo: formulario.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>nemutagk</title>
</head>

<form action="miphp2.php" method="post" >
<input type="text" name="user" id="user" />
<input type="submit" value="Buscar" />
</form>

<body>
</body>
</html>

archivo: miphp2.php
<?php

$user = $_POST["user"];
$path = "http://www.servidordecuentas.com/repeventos/".$user;

if (file_exists($path)) {
header("location: ".$path);
exit();
}else {
echo 'No existe dicho usuario/carpeta';
}

?>
saludos...
  #26 (permalink)  
Antiguo 18/07/2011, 14:17
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Autenticar usuario y direccionarlo a carpeta propia en hosting para descar

http://foros.emprear.com/reg/
está el zip con código
ingreso.html la demo
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #27 (permalink)  
Antiguo 18/07/2011, 15:22
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 7 meses
Puntos: 406
Respuesta: Autenticar usuario y direccionarlo a carpeta propia en hosting para descar

tu error es muy sencillo, no debes poner el dominio, porque si no, file_exists no funciona, únicamente verifica archivos/carpetas DENTRO del mismo servidor, ahora, me ah entrado la duda si todo esta en un mismo servidor, ya que no encuentro otra razón como para indicar un dominio, esto me hace pensar que el código PHP se esta ejecutando en el dominio1.com (es ejemplo) y los pdf estan en dominio2.com

Ahora, si todo esta en el mismo dominio y bajo el mismo servidor solo cambia...
Código PHP:
Ver original
  1. <?php
  2.  
  3. $user = $_POST["user"];
  4. $path = "repeventos/".$user; //tomando en cuenta que miphp2.php esta en raíz
  5.  
  6. if (file_exists($path)) {
  7. header("location: ".$path);
  8. exit();
  9. }else {
  10. echo 'No existe dicho usuario/carpeta';
  11. }

Ahora, si esta en un servidor externo es diferente, se me ocurre algo así
Código PHP:
Ver original
  1. <?php
  2. $user = $_POST["user"];
  3. $path = "http://www.servidordecuentas.com/repeventos/".$user;
  4.  
  5. if (@file_get_contents($path)) { //Aquí lee la nota final
  6.      header('location:'.$path);
  7.      exit();
  8. }else {
  9.      echo 'No existe dicha carpeta en servidor externo';
  10. }

Nota final: Notaras que antes del file_get_contents hay un @, bueno, la razón de esto es que si la carpeta no existe devolverá un error 404, PERO file_get_contents mostrará un e_warning ya que el offset será 0, y el @ evitará que se imprima el error en la página, como no eh encontrado otra forma de que no muestre el error es la razón de incluir el @, PERO, esto esta terminante mente desaconsejado en otros entornos, lo mejor es resolver los errores/warnings que muestre el servidor, por profesionalismo, y para evitar que los logs de error aumente cada vez que alguien visite dicho archivo, aunque ahorita que lo pienso, posiblemente con un try catch podría capturar el warning
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #28 (permalink)  
Antiguo 19/07/2011, 11:50
 
Fecha de Ingreso: julio-2011
Mensajes: 47
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Autenticar usuario y direccionarlo a carpeta propia en hosting para descar

Hola..Buen dia Emprear y NemutagK...me siento como si estuviera haciendo mis practicas profesionales...y ustedes fueran mis Cinodales....jejeje...Una vez mas....MIL GRACIAS A LOS DOS POR SU PACIENCIA Y BONDAD Y SU TIEMPO....que ha de ser muy frustrante con un pseudo alumno como su servilleta..Como siempre, implementare sus consejos a la brevedad y les mantendre informado...Mil Gracias de Nuevo.

Amabilisimo Emprear: GUAAUUUU...eso es exactamente lo que quiero hacer....por lo menos si he sabido explicarme...¿¿¿ya es algo nooo???....no soy tan estupido...jejejeje...lo voy a decargar si no te molesta y lo usare de herramienta de estudio...Gracias.

Amabilisimo Nemutagk: Para alguien de tu sapiencia el mis herrores estoy seguro son muy sencillos, pero creeme que para mi...uuffff....jejeje. No sabia lo del Dominio. Pense que debia poner la ruta completa. COn respecto a tu duda, todo esta en un mismo servidor. De hecho es el unico, y lo tengo dividido por unidades de red, grupos de trabajo etc..Es decir esta bien distribuido creo yo. Las aplicaciones o programas que usamos, siempres son enfocadas para algo especifico y tratando de que el usuario intervenga lo menos posible en el manejo de archivos. Asi que creo que tu primer codigo es el viable....digo yo. Con respecto a tu explicacion posterior (Nota Final)...hermano me hablas en chino...jejeje...todavia no llego a esos niveles de tecnicimos, pero sigo estudiando..Gracias tambien a ti.

Los mantendre informoados...Saludos.
  #29 (permalink)  
Antiguo 20/07/2011, 11:15
 
Fecha de Ingreso: julio-2011
Mensajes: 47
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Autenticar usuario y direccionarlo a carpeta propia en hosting para descar

Hola Buen Dia....si otra vez yo..the fool on the hill...(como dijera Paul McCartney)....
Algo estoy haciendo mal. Eso es seguro. O de plano ya me pase de bruto...les cuento:
Probe las sugerencias y Demo (NemutagK y Emprear)..y sigo con el mensaje de "no existe dicho usuario/carpeta...o...no existe directorio....es decir me ejecuta el "else" en todos los casos....Estoy seguro que los codigos funcionan bien y creo que mi error esta en la ubicacion, pero.....ya cambie la ubciacion de las carpetas..probe manualmente...modificque la estructura de los directorios...use las dos opciones de Nemutagk...puse los archivos en Raiz, en subcarpeta, en donde estan todos los archivos de la pagina...y nada..lo mismo...ya me pase leyendo en php.net las instrucciones is_dir(), open_dir()...ya probe de forma manual y si entro al "repeventos" y al "1001" y tambien abro el index.php que tengo y me muestra los archivos pdf sin problema... y no encuentro mi falla...ya no se donde más buscar...me tome unas horas para distraerme...volvi al ataque a dejar todo como al principio...y nada...

Se que es mucha molestia hacerle caso a alguien como yo, pero alguna sugerencia por piedad...dejo datos para revision:

CODIGOS QUE ESTOY USANDO:(ORIGINAL DE EMPREAR)
FORMULARIO "INGRESO.HTML"
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>ingreso usuarios</title>
</head>
<body>
<p>
Nombre de usuario para la demo 1001
</p>
<form action="verificar.php" method="post" >
<p>
<input type="text" name="user" id="user" />
<input type="submit" value="ingresar" />
</p>
</form>
</body>
</html>

VERIFICAR.PHP
?php

$user = $_POST["user"];
$user = trim($user);
$path = "./repeventos/".$user;

if(isset($user)&&($user != "")){
if (file_exists($path)) {
header("location: ". $path);
exit();
}else {
echo 'No existe dicho usuario/carpeta';
}
}else{
echo "Debe ingresar el nombre de usuario";
}

?>

LA ESTRUCTURA...
http://www.dominiocuentas/repeventos/1001
http://www.dominiocuentas/repeventos/1002...etc.

Archivos en http://www.dominiocuentas/repeventos
verificar.php
ingreso.php

Archivos en .../1001, 1002,etc.
index.php
..y los pdf

Help¡¡¡ I need somebody...

Gracias de antemano
  #30 (permalink)  
Antiguo 20/07/2011, 11:30
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Autenticar usuario y direccionarlo a carpeta propia en hosting para descar

julg03:

Fijate donde estas poniendo el ingreso.html y el verificar.php que en mi ejemplo estan por fuera de la carpeta repeventos

/ -- > raiz
/reg --> aqui las scripts
/reg/repeventos -->debe existir
/reg/repeventos/1001
/reg/repeventos/1002
y asi para cada usuario

si cambias la estructura tenes que modificar $path = "./repeventos/".$user;


Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: hosting, html, pdfs, propia, usuarios, carpetas
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:57.