Hola
Cita:
Iniciado por dinamo 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