Ver Mensaje Individual
  #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, 5 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