Advanced search  

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]

Pages: [1]   Go Down

Author Topic: Tagesupload Beschränkung  (Read 5100 times)

0 Members and 1 Guest are viewing this topic.

IrrerIvan

  • Coppermine frequent poster
  • ***
  • Offline Offline
  • Posts: 182
Tagesupload Beschränkung
« on: June 16, 2007, 08:19:44 am »

Hallo,
folgende Frage, ich würde gerene den Useren eine Limit für den Upload zuweisen.
Also jeder User " ausser Admins" kann nur max. 5 Fotos pro Tag hochladen, und das ganze halt solange bis sein
Speicherplatz der als Gruppen Quota festgelegt ist verbraucht ist.

Ich habe dazu auch die Posts von Stramm gelesen und versucht den HAck den er angegeben hat umzusetzen nur kommt da keinerlei veränderung dabei rum.
Auch nach dem Einbau des HAck kann jeder nicht Admin mehr als ein Bild  hochladen " 1 Foto war die Vorgabe in dem Hack"

auch die Unix-Timestamp erweiterung brachte kein resultat, es wäre nett um eine hilfreiche Antwort.

Folgende Modifikaton habe ich ausprobiert;

Quote
   // Test if disk quota exceeded
    if (!GALLERY_ADMIN_MODE) {
        $result = cpg_db_query("SELECT pid FROM {$CONFIG['TABLE_PICTURES']} WHERE owner_name = '" . (USER_NAME) . "'");
        $record = mysql_fetch_array($result);
        $total_space_used = count($record);
        mysql_free_result($result);

        if ($total_space_used > 1 ) {

Gruß
« Last Edit: June 30, 2007, 08:45:17 pm by Stramm »
Logged

IrrerIvan

  • Coppermine frequent poster
  • ***
  • Offline Offline
  • Posts: 182
Re: Tagesupload Beschränkung
« Reply #1 on: June 16, 2007, 02:29:33 pm »

PS .
ich verwende jetzt diesen code jetzt
Quote
    // Test if disk quota exceeded
    if (!GALLERY_ADMIN_MODE) {
        $result = cpg_db_query("SELECT pid FROM {$CONFIG['TABLE_PICTURES']} WHERE owner_id = " . USER_ID . " AND ctime > UNIX_TIMESTAMP() - 86400");
        $record = mysql_fetch_array($result);
        $total_space_used = count($record);
        mysql_free_result($result);

        if ($total_space_used > 5 ) {
            @unlink($image);
            if (is_image($image)) {
                @unlink($normal);
                @unlink($thumb);
            }
            $msg = strtr($lang_errors['quota_exceeded'], array('[quota]' => ($USER_DATA['group_quota']),
                '[space]' => ($total_space_used >> 10)));
            cpg_die(ERROR, $msg, __FILE__, __LINE__);
        }
    }
Mit dem Wert 1 funzt es einwandfrei jedoch möchte ich geren das die User max. 5 Bilder pro Tag uploaden können und das klappt nicht denn
wenn ich den Wert von 1 auf 5 ändere können die hochladen bis der Speicherplatz quota erschöpft ist.

Wo mache ich einen Denkfehler.

Bitte um Hilfe
Logged

IrrerIvan

  • Coppermine frequent poster
  • ***
  • Offline Offline
  • Posts: 182
Re: Tagesupload Beschränkung
« Reply #2 on: June 18, 2007, 09:52:21 pm »

hat kener einen Hinweis für mich??
Logged

IrrerIvan

  • Coppermine frequent poster
  • ***
  • Offline Offline
  • Posts: 182
Re: Tagesupload Beschränkung
« Reply #3 on: June 22, 2007, 07:31:57 am »

Tja wäre wenigstens Nett wenn Ihr mir irgendwas sagen würdet auch wenn es nur
ist das Ihr derzeit keine Zeit habt, aber garkeine Antwort.

Gruß
Logged

Stramm

  • Dev Team member
  • Coppermine addict
  • ****
  • Country: 00
  • Offline Offline
  • Gender: Male
  • Posts: 6006
    • Bettis Wollwelt
Re: Tagesupload Beschränkung
« Reply #4 on: June 24, 2007, 01:22:53 am »

ha, Zeit ist immer knapp... aber ich kann Dir mal meine 'auf den ersten Blick' Meinung sagen...

statt
Code: [Select]
AND ctime > UNIX_TIMESTAMP() - 86400mal
Code: [Select]
AND ctime > UNIX_TIMESTAMP(ctime) > NOW()-86400
Ob das nun richtig ist??? Keine Ahnung. Ich benutze die obigen MySQL Funktionen nicht besonders oft. Dein Ansatz scheint aber nicht das gewünschte Ergebnis zu produzieren. Dann wäre es doch das einfachste, auf leicht Überprüfbares auszuweichen, z.B. der PHP time() Funktion
Code: [Select]
AND ctime > ".time() - 86400."oder so ähnlich

IrrerIvan

  • Coppermine frequent poster
  • ***
  • Offline Offline
  • Posts: 182
Re: Tagesupload Beschränkung
« Reply #5 on: June 24, 2007, 10:25:06 pm »

Hi Stramm,
also dertimestamp funzt was nicht funktioniert ist,
das ich die max. Uploadzahl der täglichen Fotos von 1 auf 5 erhöhen kann.

Solange
Quote
if ($total_space_used > 1 ) {
eingetragen ist funzt alles prima jedoch wenn ich das auf
Quote
if ($total_space_used > 5 ) {
verändere dann funzt die Beschränkung nicht mehr und die User können auch mehr als 5 fotos pro Tag uploaden.

Gruß
Logged

Stramm

  • Dev Team member
  • Coppermine addict
  • ****
  • Country: 00
  • Offline Offline
  • Gender: Male
  • Posts: 6006
    • Bettis Wollwelt
Re: Tagesupload Beschränkung
« Reply #6 on: June 25, 2007, 07:30:47 am »

Lass Dir mal $total_space_used anzeigen und dann weisst Du, ob Dein Query funktioniert

Scheinbar geht's ja gerade eben nicht

IrrerIvan

  • Coppermine frequent poster
  • ***
  • Offline Offline
  • Posts: 182
Re: Tagesupload Beschränkung
« Reply #7 on: June 25, 2007, 01:34:36 pm »

okay also wenn ich
Quote
$total_space_used
versuche anzeigen zu lassen dann kommt nichts, was aber nicht bedeuten muss
das was falsch läuft.
evtl. habe ich nur die Abfrage falsch gestartet, ich habe das mit $display...
getan.
Sollte die
Quote
$total_space_used
nicht funzen, was wäre dann der Ansatz
um auf das gewünschte Ergebniss zu kommen?.
Logged

Stramm

  • Dev Team member
  • Coppermine addict
  • ****
  • Country: 00
  • Offline Offline
  • Gender: Male
  • Posts: 6006
    • Bettis Wollwelt
Re: Tagesupload Beschränkung
« Reply #8 on: June 29, 2007, 03:57:13 pm »

Versteh ich nicht! Was hast Du mit '$display' gemacht, woher kommt denn das jetzt auf einmal.

Wenn Dein Query nicht die richtigen Daten in die var $total_space_used packt, dann änderst Du das Query. Das wäre ein vernünftiger Ansatz, wie schon oben geschrieben.

Zum Verständnis nochmals... Dein Query durchsucht die Datenbank. Du holst Einträge raus, die dem Kriterium entsprechen user=x, Zeit/ Datum= letzte 24h
Nun zählst Du die gefundenen Einträge und speicherst diese Zahl in $total_space_used
Wenn user x heute schon 6 Bilder hochgeladen hat und
Code: [Select]
if ($total_space_used > 5 ) {keinen Trigger auslöst, dann ist nichts mit $total_space_used falsch (so., da steht nur die Anzahl Ergebniszeilen Deiner Abfrage), sondern Dein Query hat irgendwas schräges abgefragt, aber nicht, was Du eigentlich willst.

IrrerIvan

  • Coppermine frequent poster
  • ***
  • Offline Offline
  • Posts: 182
Re: Tagesupload Beschränkung
« Reply #9 on: June 29, 2007, 09:34:31 pm »

ah okay
was dann logisch erscheint weil
ja dein Orginal Hardlimit funzt.

Nur dann verstehe ich nicht ganz wenn ich deinen Abfrage zu Grunde lege und dem ganzen nur eine Time Variante hinzufüge
dann sollte das doch eigentlich klappen.
Tut es nur leider nicht, denn wenn ich deinen Code im Orginal belasse wird nach 1 Upload gesagt Limit ereicht
wenn ich dann die Time variante hinzufüge und das Limit trozdem auf 1 stehen lasse dann funzt das auch. Was heisst jeder User könnt innerhalb von 24 Std. nur ein Foto hochladen und dann erst wiedr in 24 Std. das nächste.

So wenn ich nun das Limit von 1 auf 5 verändere ansonsten nichts an dem Code ändere dann funt das nicht mehr und die User können solange Bilder hochladen bis der vorgegebene Speicherplatz " Gruppen Quota" erreicht ist.

Und genau das ist es was mich so stuzig macht.

Gruß
Logged

Stramm

  • Dev Team member
  • Coppermine addict
  • ****
  • Country: 00
  • Offline Offline
  • Gender: Male
  • Posts: 6006
    • Bettis Wollwelt
Re: Tagesupload Beschränkung
« Reply #10 on: June 30, 2007, 09:23:01 am »

Funktioniert denn Deine Time Abfrage?? Wie oben schon mal geschrieben, kommt mir Deine Syntax falsch vor. Deswegen solltest Du das Ergebnis des Queries anzeigen lassen. Ohne es zu überprüfen sind alle veränderungen am nachfolgenden Code sinnlos. Trotzdem gehst Du immer davon aus, dass Dein Query ein Ergebnis liefert, das Deinen Vorstellungen entspricht. Tut es aber nicht (jetzt drehen wir uns wieder im Kreis), da ja der Restcode nicht so klappt wie Du das meinst. Den Rest basierst Du aber auf ein Ergebnis, welches Du nicht kennst und nicht überprüft hast.

Mehr kann ich da echt nicht sagen. Du musst Deine Queries testen und nicht darauf vertrauen, dass sie schon das richtige Ergebnis liefern werden.

Hast Du meine Vorschläge von oben versucht und die Ergebnisse verglichen?

Stramm

  • Dev Team member
  • Coppermine addict
  • ****
  • Country: 00
  • Offline Offline
  • Gender: Male
  • Posts: 6006
    • Bettis Wollwelt
Re: Tagesupload Beschränkung
« Reply #11 on: June 30, 2007, 12:47:32 pm »

um Dich nicht weiter zu verwirren... hier mein Ansatz

In picmgmnt.inc.php ersetze man
Code: [Select]
        $result = cpg_db_query("SELECT sum(total_filesize) FROM {$CONFIG['TABLE_PICTURES']}, {$CONFIG['TABLE_ALBUMS']} WHERE  {$CONFIG['TABLE_PICTURES']}.aid = {$CONFIG['TABLE_ALBUMS']}.aid AND category = '" . (FIRST_USER_CAT + USER_ID) . "'");
        $record = mysql_fetch_array($result);
        $total_space_used = $record[0];
        mysql_free_result($result);

        if ((($total_space_used + $total_filesize)>>10) > $USER_DATA['group_quota'] ) {
durch
Code: [Select]
$temp_time = time() - 86400;
        $result = cpg_db_query("SELECT COUNT(*) FROM {$CONFIG['TABLE_PICTURES']} WHERE owner_id = " . USER_ID . " AND ctime >= {$temp_time}");
        $record = mysql_fetch_row($result);
        $uploaded_last24h = $record[0];
        mysql_free_result($result);

        if ( $uploaded_last24h >= $USER_DATA['group_quota'] ) {


im group control panel kann man ab fortan nicht mehr kb einstellen sondern Stück (Beschriftung ist nicht geändert). Gibt man 0 ein, erfolgt keine Beschränkung. Limitiert man nun z.B. die Quota be der Group 'Registered' auf 5 'KB', dann kann ein Angehöriger der Registered Group innerhalb eines 24 Stunden Zeitraumes nur 5 Bildchen hochladen. Fehlermeldungen wären noch anzupassen (limit exceeded etc.)

Evtl. ändert man den 24h Zeitraum auf Tage, sprich am 1.7.2007 kann der user 5 Bilder hochladen, am 2.7 auch. Ganz egal, ob er am 1.7 um 5min vor 12 und am 2.7. um 5min nach 12 hochlädt.

So, dann mal viel Spaß.

IrrerIvan

  • Coppermine frequent poster
  • ***
  • Offline Offline
  • Posts: 182
Re: Tagesupload Beschränkung
« Reply #12 on: June 30, 2007, 05:08:56 pm »

vielen Danke das war es
Logged
Pages: [1]   Go Up
 

Page created in 0.024 seconds with 19 queries.