Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/05/2010, 05:18
Avatar de dengaku
dengaku
 
Fecha de Ingreso: enero-2010
Mensajes: 69
Antigüedad: 14 años, 10 meses
Puntos: 1
iniciar una descarga php

Bueno, os comento, es una utilidad web para que usuarios registrados puedan subir archivos y mantenerlos activos (sus archivos subidos), pues bien, en un lugar de la web, peuden ahcer click, y pueden poner en un formulario una dir de correo electronico, al que puedan enviar un correo, dentro de este viene una url, una vez hacen click en esta se les abre una pagina de descarga donde un nuevo formulario aparecerá y les pedirá la contraseña (cada archivo tiene contraseña para poder ser descargado) hecho esto comenzará la descarga, el problema lo tengo ahí, ela rchivo se llama download.php, los archivos pueden estar activos o inactivos (cuando el usuario sube algo pone el tiempo ke estará activo el numero de descargas maximas y la contraseña, una vez se abre download.php, si el archivo esta activo (es decir si no a alcanzado el numero maximod e descargas) se ve el formulario con el campo pass si la mete correctamente ke comience la descarga. Bien, el problema es ke no hay ni descarga ni nada, me tira este mensaje:

Código:
select * from archivos where alias=32d58df24eProblemas en el select:Unknown column '32d58df24e' in 'where clause'

el archivo completo es este:

Código PHP:
<?php 
    $alias
=$_REQUEST['file'];    
        include(
"libreria.php");
        
$conexion=conecta();    
        
$sqw="select * from archivos where alias=$alias";
        print 
$sqw;
        
$registw=mysql_query($sqw,$conexion) or
          die(
"Problemas en el select:".mysql_error());
        
$regw=mysql_fetch_array($registw);
        
mysql_close($conexion);
        
$stadow=$regw['estado'];
        
$max $regw['max_descargas'];
        
$num $regw['num_descargas'];
        
$clave_val $regw['pass'];

?><html>
<head>
<title>Descarga de archivos
</title>
<?php
if ($stadow==-1){

?>

<script type="text/javascript">
function enviar_formulario(form_name){ 
document.getElementById(form_name).submit();

</script>
<?php
if (isset($_POST['accion']) && $_POST['accion'] == 'descargar') {
    
$errores false;
    
$pass $_REQUEST['pass'];
    
    if (
$pass != $clave_val) {
        
$error[1]='    La clave no es correcta';
        
$errores=true;}
}

if (isset(
$_POST['accion']) && $_POST['accion'] == 'descargar' and $errores==false){

    if (!isset(
$_GET['file']) || empty($_GET['file'])) {
        exit();
    }
    
$root "files/";
    
$file basename($_GET['file']);
    
$path $root.$file;
    
$type '';
     
    if (
is_file($path)) {
        
$size filesize($path);
        if (
function_exists('mime_content_type')) {
            
$type mime_content_type($path);
        } else if (
function_exists('finfo_file')) {
            
$info finfo_open(FILEINFO_MIME);
            
$type finfo_file($info$path);
            
finfo_close($info); 
        }
        if (
$type == '') {
            
$type "application/force-download";
        }
        
// Set Headers
        
header("Content-Type: $type");
        
header("Content-Disposition: attachment; filename=$file");
        
header("Content-Transfer-Encoding: binary");
        
header("Content-Length: " $size);
        
// Download File
        
readfile($path);
    } else {
        die(
"File not exist !!");
    }
    
    
$conexion=conecta();
    if (
$num == $max){
            
$sq2="update archivos set estado = 0  where alias = '$alias'";
        
//print $sq2;
        
$registros2=mysql_query($sq2,$conexion) or
        die(
"Problemas en el update".mysql_error());
    }
    
$sq2="update archivos set num_descargas = num_descargas + 1  where alias = '$alias'";
    
//print $sq2;
    
$registros2=mysql_query($sq2,$conexion) or
    die(
"Problemas en el update".mysql_error());
    
mysql_close($conexion);

else {
?>
</head>
<body bgcolor="#0033FF">
<?php
        $conexion
=conecta();
        
$sql="select * from archivos where alias=$alias";
        
$registros=mysql_query($sql,$conexion) or
          die(
"Problemas en el select:".mysql_error());
        
mysql_close($conexion);


           print 
"<table border='2' cellspacing='0' class='table'>";
           print 
"<tr><td class='td2'>Contraseña</td></tr>";

        while (
$reg1=mysql_fetch_array($registros))
        {    
              print 
'<form action="admindescarga.php" method="post" name='.$reg1['cod_archivo'].'>';
            
            print 
'<input size=5 type="hidden" name="cod" value="'.$reg1['cod_archivo'].'">';
            print 
'<input type="hidden" name="accion" value="descargar"/>';
            
            print 
'<td  class=td1><input size=5 type="text" name="pass" value="">';
        print (
"<font color=red>$error[1]</font><BR>");"</td>";
            
            print 
"<td><a href=javascript:enviar_formulario(".$reg1['alias'].")>Enviar formulario</a></td>";
            
            print 
"</form>";
        } 
    }
}
else  {
    print 
"El archivo está inactivo";
}

?>
</body>
</html>
La parte ke hay justo antes del update es lo que descarga el archivo desde

if (isset($_POST['accion']) && $_POST['accion'] == 'descargar' and $errores==false){

hasta

die("File not exist !!");
}