[Resuelto:] Limitar la subida de fotos por grupo o por usuario [Resuelto:] Limitar la subida de fotos por grupo o por usuario
 

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Main Menu

[Resuelto:] Limitar la subida de fotos por grupo o por usuario

Started by rbarcelo, April 23, 2009, 02:22:25 AM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

rbarcelo

Hola, gracias anticipadamente por la ayuda.
Tengo la siguiente necesidad. Preciso limitar la subida de fotos por parte de los usuarios a 300k por dia o a una foto por dia por usuario. En las opciones de configuración existe la posibilidad de limitar el tamaño de cada upload a 300k y en la configuracion de los grupos de usuarios conseguí hacer que cada usuario de un grupo determinado tenga una cuota x de espacio disponible. Pero en nigun lugar encontre como configurar un limite diario.

Leí una respuesta en el foro, en frances, que decia que limitar el upload por día, era imposible, pero mi frances es terrible.

Entre los plugins no encontré ninguno especificamente para esta finalidad. Se les ocurre alguna forma de conseguir crear este límite por ejemplo de una foto por día por usuario o 300k por día por usuario?

Gracias, Ramiro.



Fabricio Ferrero

Quote from: rbarcelo on April 23, 2009, 02:22:25 AM
Leí una respuesta en el foro, en frances, que decia que limitar el upload por día, era imposible, pero mi frances es terrible.
Nada es imposible ;)

Abrí el archivo upload.php con un editor de texto, Notepad ++ es el que uso yo. (¡No Dreamweaver por favor!)
En la parte de arriba agrega:

$query = cpg_db_query("SELECT * FROM {$CONFIG['TABLE_PICTURES']} WHERE owner_id = '$user_id' AND ctime > NOW() - (24*60*60)");
if ((mysql_num_rows($query) >= 1) {
cpg_die(INFORMATION, "Debes esperar al menos 24 horas antes de volver a subir una foto.");
}


Luego, modificá el texto a lo que desees que diga, yo coloqué eso (Debes esperar.....) y es sólo un ejemplo.
Por último, guarda el archivo y subilo al servidor.

Read Docs and Search the Forum before posting. - Soporte en español
--*--
Fabricio Ferrero's Website

Catching up! :)

rbarcelo

Muchas Gracias Fabricio!!
Ahora voy a hacer lo que me recomendas y despues te cuento.

No habia leido que sos de San Juan, excelentes vinos por allí.

Abrazos, Ramiro

rbarcelo

Hola Fabricio,
coloque el código en la primera línea despues de "<?php" cuando llamo la página para subir una foto me aparece el siguiente error:

Parse error: syntax error, unexpected '{' in /home/digisub/public_html/fotos/upload.php on line 3

Ya coloque el codigo en otras partes de la página y nada.

Yo estoy utilzando Coppermine 1.4.21 y el servidor tiene php5 y mysql

Desde ya muchas gracias.

Fabricio Ferrero

Podrías colocar un link a la galería para mirar el código? Gracias..


P.D: Si, de San Juan, de la tierra de los buenos Vinos! :D Se ve que conoces Argentina!
Read Docs and Search the Forum before posting. - Soporte en español
--*--
Fabricio Ferrero's Website

Catching up! :)

rbarcelo

Soy argentino, pero vivo en Brasil ya hace 7 años. Una deuda que tengo es conocer San Juan, Salta, etc.
Estoy tratando de hacer un sitio de fotografia submarina que aqui en Brasil es bastante común. La web donde eta la galeria es http://www.digisub.com.br/fotos/
Estoy cargando el archivo upload.php donde agregué e código en el foro.
muchas gracias.
Ramiro.



rbarcelo

Estimado Fabricio,
consulte al usuario "foulu" del foro de soporte, le mostre el codigo que me sugeriste y el me envio la siguiente modificación que esta funcionando bien. La agregué en la linea 37 del archivo upload.php antes del comentario: // Check to see if user can upload pictures. Quit with an error if he cannot.
La galería instalada es la version 1.4.21 y la url es http://www.digisub.com.br/fotos

$expiry = time() - 24*60*60;
$result = cpg_db_query("SELECT * FROM {$CONFIG['TABLE_PICTURES']} WHERE owner_id = '$user_id' AND ctime > {$expiry}");
if (mysql_num_rows($result) >= 1) {
    cpg_die(INFORMATION, "Debes esperar al menos 24 horas antes de volver a subir una foto.", __FILE__, __LINE__);
}


La única duda que tengo es si este script no permite que subas hasta pasadas 24 horas o si puedes subir un archivo despues de las 12 de la noche. Mi intención inicial era bloquear la subida de fotos a una por dia o sea que despues de las 12 de la noche el usuario pueda subir otra si quiere. Se entende?

Gracias nuevamente.
Ramiro.

Fabricio Ferrero

Muchas gracias por volver y compartir la solución.

El código que has introducido contiene esta variable:
$expiry = time() - 24*60*60;La cual dice que si no han pasado 86400 segundos, no te permita subir nuevamente una imagen. Es decir, no tiene en cuenta la hora del día.

Saludos,
Read Docs and Search the Forum before posting. - Soporte en español
--*--
Fabricio Ferrero's Website

Catching up! :)