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 !!");
}