Foros del Web » Programando para Internet » PHP »

Descarga de archivos con contraseña

Estas en el tema de Descarga de archivos con contraseña en el foro de PHP en Foros del Web. Hola a todos, Mi duda es la siguiente: Necesito implmementar una página que contenga una serie de enlaces a sendos archivos, de forma que al ...
  #1 (permalink)  
Antiguo 23/04/2003, 08:40
 
Fecha de Ingreso: noviembre-2002
Mensajes: 19
Antigüedad: 21 años, 5 meses
Puntos: 0
Descarga de archivos con contraseña

Hola a todos,

Mi duda es la siguiente:

Necesito implmementar una página que contenga una serie de enlaces a sendos archivos, de forma que al hacer click en cada uno de ellos el usuario deba introducir una clave (distinta para cada enlace) para podes descargarse el archivo en cuestión.

¿Cómo se puede hacer con PHP? (soy algo novato en esto).

no tengo acceso a base de datos ni nada parecido, así que ¿podría tener las contraseñas almacenadas en un archivo txt, de forma que se pudiesen actualizr fácilmente?.

De antemano gracias por vuestra ayuda.

Un saludo.
  #2 (permalink)  
Antiguo 23/04/2003, 09:20
Avatar de camargo  
Fecha de Ingreso: abril-2002
Ubicación: Kerétaro, Méjiko
Mensajes: 1.045
Antigüedad: 22 años
Puntos: 2
puedes hacer un if con o sin arrays,, ej::
tener en un archivo de texto (.txt) la lista de contraseñas,, ej:

Cita:
contraseña1
contraseña2
contraseña3
entonces en dichas descargas, incluir un if ::

Código PHP:
<?
$ficherolibro 
file("contrasenas.txt");
$largo sizeof($ficherolibro);
$largo $largo 1;

for(
$i=$largo $i>-$i--) {

$libro explode("|"$ficherolibro[$i]);

if(
$pass=="libro[0]"){ //notese q he puesto libro[0] porque se.. 
// tratara de la 1er contraseña (contraseña1)

// aki puedes poner un redirect al file

?>
<SCRIPT LANGUAGE="javascript"> 
location.href = "file.zip"; 
</SCRIPT> 
<?
}
} else {
echo 
"No tienes acceso al file, necesitas la contraseña...";
}
?>



facil, no?,, si necesitas ayuda puedo explicarte paso a paso como funciona
__________________
http://www.chorcha.com

Última edición por camargo; 23/04/2003 a las 10:15
  #3 (permalink)  
Antiguo 23/04/2003, 10:01
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Si usas un .txt, debes ponerlo fuera de los directorios accesibles a traves de internet y si es posible, encriptar las claves. Imaginate que seguro seria tu script si la gente podria ver las claves haciendo www.dominio.com/contrasenas.txt .

Y tampoco deberias hacer una redireccion con javascript. Seria mejor hacerla con PHP y el header("location"), o mejor aun, que el script que valida el usuario y clave descarge el fichero, poniendo las correspondientes cabeceras de content-type y content-disposition.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #4 (permalink)  
Antiguo 23/04/2003, 10:07
Avatar de sdf23  
Fecha de Ingreso: diciembre-2002
Mensajes: 297
Antigüedad: 21 años, 4 meses
Puntos: 0
oye sml25 este post ya lo pusiste en varios foros
__________________

la vida es bella cuando no es culera
  #5 (permalink)  
Antiguo 25/04/2003, 08:55
 
Fecha de Ingreso: noviembre-2002
Mensajes: 19
Antigüedad: 21 años, 5 meses
Puntos: 0
Gracias a todos.

sdf23: puse este post ten varios foros porque no sabía exactamente con qué tenía que hacerlo.

camargo: probaré a enredar con el código que me pones y si no me va te pregunto.

josemi: gracias también a tí,.
  #6 (permalink)  
Antiguo 31/08/2003, 17:42
 
Fecha de Ingreso: agosto-2003
Mensajes: 2
Antigüedad: 20 años, 7 meses
Puntos: 0
Cita:
Mensaje Original por josemi
Hola,

Si usas un .txt, debes ponerlo fuera de los directorios accesibles a traves de internet y si es posible, encriptar las claves. Imaginate que seguro seria tu script si la gente podria ver las claves haciendo www.dominio.com/contrasenas.txt .

Y tampoco deberias hacer una redireccion con javascript. Seria mejor hacerla con PHP y el header("location"), o mejor aun, que el script que valida el usuario y clave descarge el fichero, poniendo las correspondientes cabeceras de content-type y content-disposition.

Saludos.
1.- Como hago la redireccion con header("location")?

2.- Como hacer que el usuario que valida el password descargue el fichero?

(Soy bastante torpe y nuevo, disculpas).

Gracias ;)
  #7 (permalink)  
Antiguo 31/08/2003, 18:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Sería más rápido que veas algún script de descargas ya hecho .. Para que tomes nota de la forma de trabajar con las cabeceras HTTP que has de usar (las que más o menos te han mencionado).

Ejemplos tienes en:
http://www.hotscripts.com/PHP/Script...ems/index.html

El tema se trata de validar a tu usuario (como sea: contrastando tus datos en una BD .. en un archivo de texto plano .. variables simples .. ) y de que "si es correcto el par: usaurio/password" que envie las cabeceras HTTP que necesitas para que le indiquen al navegador que lo que se va a enviar es para que lo descargue (idenpendiente de su formato .txt o lo que sea).

(si mal no recuerdo .. en las FAQ's de este foro también tienes un ejemplo de descargas vía PHP para que le añadas tu rutina de validación del usuario ... )

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 02/09/2003, 14:30
Avatar de camargo  
Fecha de Ingreso: abril-2002
Ubicación: Kerétaro, Méjiko
Mensajes: 1.045
Antigüedad: 22 años
Puntos: 2
ahora, kien revive a los muertos??
xD
__________________
http://www.chorcha.com
  #9 (permalink)  
Antiguo 02/09/2003, 18:13
Axo
 
Fecha de Ingreso: abril-2003
Ubicación: Virtual
Mensajes: 953
Antigüedad: 21 años
Puntos: 7
Para mi en un TXT es una cosa insegura... si el acceso tp es que sea muy importante bueno pero si quires tener mas seguridad yo no emplearia ese sitema...
  #10 (permalink)  
Antiguo 03/09/2003, 06:23
Usuario baneado!
 
Fecha de Ingreso: diciembre-2002
Ubicación: En mi chozita
Mensajes: 142
Antigüedad: 21 años, 4 meses
Puntos: 0
Con 4 files, ojala te puedan ser utiles.

Hola, me parecio muy util tu solicitud.

Como carezco de un script que hago lo que dices, hice uno muy elemental por que carezco de los conocimientos de los foristas de FDW.

Lo realice con 4 archivos php y para descaragar 4 archivos, logicamente puedes agregar los achivos que necesites.

Uno de los archivos es CONFIGURACION.PHP debes saber en que consiste!.

Bueno, aqui estan los 4 sciptsitos. (Lo bueno es que son MUY corticos).

Código PHP:
INDEX.PHP:
<?php
echo "<FORM ACTION=\"contra2.php\" METHOD=POST>
<TABLE><TR>
<TD COLSPAN=2 ALIGN=CENTER>Seleccione el archi que quiere descargar</TD></TR><TR>
<TD><input type=radio VALUE=\"f1\" NAME=archi></TD><TD>F1</TD></TR><TR>
<TD><input type=radio VALUE=\"f2\" NAME=archi></TD><TD>F2</TD></TR><TR>
<TD><input type=radio VALUE=\"f3\" NAME=archi></TD><TD>F3</TD></TR><TR>
<TD><input type=radio VALUE=\"f4\" NAME=archi></TD><TD>F4</TD></TR><TR>
<TD COLSPAN=2><INPUT TYPE=SUBMIT VALUE=YA!></TD></FORM></TR></TABLE><BR><BR>$archi"
;
?>

CONTRA2.PHP: (El + largo de to2)
<FORM ACTION=contra3.php METHOD=POST><TABLE><TR>
<?php

include ("configuracion.php");

   switch(
$archi) {
      case 
"f1":   // Bloque 1
$campodecontra "cocoA"$file $file1;
         break;
      case 
"f2":   // Bloque 2
$campodecontra "cocoB"$file $file2;
         break;
      case 
"f3":   // Bloque 2
$campodecontra "cocoC"$file $file3;
         break;
      case 
"f4":   // Bloque 2
$campodecontra "cocoD"$file $file4;
         break;

$campodecontra $coco5;
   }

echo 
"<TD>Introduce la contraseña para descargar <FONT COLOR=RED>$file</FONT></TD><TD><INPUT TYPE=TEXT NAME=\"$campodecontra\"></TD></TR>";
?>
</TABLE><INPUT TYPE=SUBMIT VALUE="Continuar"></FORM>

CONTRA3.PHP:
<?php

include ("configuracion.php");
if (
$cocoA == $coco1) {$pasar1 $file1;} else {$pasar1 "";}
if (
$cocoB == $coco2) {$pasar2 $file2;} else {$pasar2 "";}
if (
$cocoC == $coco3) {$pasar3 $file3;} else {$pasar3 "";}
if (
$cocoD == $coco4) {$pasar4 $file4;} else {$pasar4 "";}
$resultado "$pasar1$pasar2$pasar3$pasar4$pasar5";
$link   "<A HREF=\"$url$resultado\">Gracias por validar tu descaraga!</A>";
echo 
$link;
?>

CONFIGURACION.PHP:
<?php

$url 
"http://www.direccion.com/directorio/";        // Camino o pat al file para descargar

// Archivos a decargar:
$file1 "a11.zip";
$file2 "b22.zip";
$file3 "c33.zip";
$file4 "d44.zip";

// Contraseñas:
$coco1 "primerodeto2"// Contraseña para file 1
$coco2 "segunazo"// Contraseña para file 2
$coco3 "eltri"// Contraseña para file 3
$coco4 "finalmente"// Contraseña para file 4

?>
Dime como te va, pues me gustaria saber si te fueron utiles.
De todas for+, Camrgo y los otros duros de por aqui te lo perfeccionan; pues no tengo idea de como ocultar las URL a la vista del visitante de los files.zip

** aprovecho que meti mis narices por aqui para pedirle ayuda a CAMARGO y/o JOSEMI **
con una cosa que no se como hacer.

Última edición por RAZACALA; 03/09/2003 a las 08:04
  #11 (permalink)  
Antiguo 03/09/2003, 06:26
Usuario baneado!
 
Fecha de Ingreso: diciembre-2002
Ubicación: En mi chozita
Mensajes: 142
Antigüedad: 21 años, 4 meses
Puntos: 0
Pregunta Hola!... Que pena.


Última edición por RAZACALA; 03/09/2003 a las 06:29
  #12 (permalink)  
Antiguo 03/09/2003, 13:51
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 21 años
Puntos: 1
Para descargar un archivo sin que haya una url que lleve a el y que este archivo este situado en la zona privada del servidor
este codigo es util,
Código PHP:
$filename "path completo al archivo/archivo.lo que sea";

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 

header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Type: application/x-zip-compressed"); 


header("Content-Disposition: attachment; filename=".basename($filename).";");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($filename));
readfile("$filename"); 
espero que os sirva
  #13 (permalink)  
Antiguo 06/01/2008, 10:19
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Re: Descarga de archivos con contraseña

De este script hace ya algun tiempo pero bueno...
Decir que no funciona. Que parece ser que la parte

Código PHP:
CONTRA3.PHP: 
<?php 

include ("configuracion.php"); 
if (
$cocoA == $coco1) {$pasar1 $file1;} else {$pasar1 "";} 
if (
$cocoB == $coco2) {$pasar2 $file2;} else {$pasar2 "";} 
if (
$cocoC == $coco3) {$pasar3 $file3;} else {$pasar3 "";} 
if (
$cocoD == $coco4) {$pasar4 $file4;} else {$pasar4 "";} 
$resultado "$pasar1$pasar2$pasar3$pasar4$pasar5"
$link   "<A HREF=\"$url$resultado\">Gracias por validar tu descaraga!</A>"
echo 
$link
?>
Esta mal, ya que al introducir la contraseña y todo, pues anda bien, pero a la hora de mostrarte el link para descargar el archivo, aparece (www.tuweb.com/nombrecarpeta) y ya esta. Osea no sale en enlace del archivo que te quieres decargar, lo cual impide descargarlo.

Saludos,
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 11:08.