Foros del Web » Programando para Internet » PHP »

restringir bajado de archivos

Estas en el tema de restringir bajado de archivos en el foro de PHP en Foros del Web. hola amigos otra ves les pido una mano les cuento resulta que quiero q los usuarios descarguen un archivo pero antes quiero q se llenen ...
  #1 (permalink)  
Antiguo 13/02/2007, 14:52
 
Fecha de Ingreso: noviembre-2006
Mensajes: 83
Antigüedad: 17 años, 5 meses
Puntos: 0
restringir bajado de archivos

hola amigos otra ves les pido una mano

les cuento resulta que quiero q los usuarios descarguen un archivo pero antes quiero q se llenen un form no se si me explico bien seria algo asi


usuario----->llena form------>permite descarga de archivo

pero el mayor problema es q no quiero q se copie la url directa de descarga


gracias
  #2 (permalink)  
Antiguo 13/02/2007, 20:30
hen
 
Fecha de Ingreso: diciembre-2003
Ubicación: Buenos Aires
Mensajes: 63
Antigüedad: 20 años, 4 meses
Puntos: 1
Re: restringir bajado de archivos

Hola

Cita:
Iniciado por dinamo Ver Mensaje
usuario----->llena form------>permite descarga de archivo
Yo creo q en el paso "permite descarga de archivo", deberias implementar un control, este control podria usar, valores de sesion, o base de datos por ejemplo.
Ambas cosas son muy faciles;

archivo: control_form.php
Código PHP:
// creo una variable q servira para el control de los datos del POST
$error ''

// recibimos los valores del form por POST

// si existen datos por POST, continuamos
if ((is_array($_POST)) && (sizeof($_POST) > 0)) {

    foreach (
$_POST as $indice => $valor) {
        
        
// aca hago una limpieza de variables
        // para evitar posibles molestias
        
$val trim($valor);
        
$val addslashes($val);
        
$var_post[$indice] = $val;
        
    }
    
    
// hago una comprobacion de valores validos
    // suponiendo q dentro del form estas pidiendo datos
    // como nombre y edad entre otros, Yo lo haria asi
    
if (empty($var_post['nombre'])) $error .= 'Debe completar el campo Nombre correctamente<br>';
    if ((empty(
$var_post['edad'])) || (!is_numeric($var_post['edad']))) $error .= 'Debe completar el campo Edad correctamente <br>';
    
// ... (continuo evaluando los valores)
    
}
else {
    
$error .= 'Debe completar los datos del formulario <br>';
}

// verifico si hay errores
if (strlen($error) == 0) {
    
    
// continuo ya q no hay errores
    
session_start();
    
$_SESSION['datos']['control'] = 1;
    
// redirecciono a la pagina de descarga
    
header("location: descarga.php");
}
else {
    
// el usuario no hizo las cosas bien
    
die($error);

archivo: descarga.php
Código PHP:
session_start();
if ((isset(
$_SESSION['datos'])) && ($_SESSION['datos']['control'] == 1)) {
    
    
// el usuario cumplio con lo requerido
    // ... (aca pongo el codigo para q desargue el archivo)
}
else {
    
    
// el usuario no cumplio con los requisitos
    // ... (aca puedo hacer un die(); con algun mensaje 
    // o redireccionar al usuario con un header("location: form.htm"); 
    // )

Bueno esta es la forma de hacerlo con sesiones. Podes hacerla mas rigurosa, por ejemplo, hacer q la sesion expire en cierta cantidad de tiempo, pero eso no lo manejo muy bien, igual podes consultar siempre el manual de PHP

- http://www.php.net/manual/es/ref.session.php

Y para hacer el control por base de datos, seria mas o menos igual de facil.
Aca te dejo un enlace para q leas acerca del uso de sesiones y su aplicacion:

- http://www.desarrolloweb.com/articulos/1007.php

espero q te sirva, exitos.

Chao
__________________
.:hEN
DevHen
EXITOS
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 08:34.