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 [2] 3   Go Down

Author Topic: Code für Abgabe von Kommentaren  (Read 17502 times)

0 Members and 1 Guest are viewing this topic.

cmfa

  • Contributor
  • Coppermine frequent poster
  • ***
  • Offline Offline
  • Posts: 226
Re: Code für Abgabe von Kommentaren
« Reply #20 on: February 01, 2011, 07:45:50 pm »

Hi,

bitte. Im Anhang
Logged

Αndré

  • Administrator
  • Coppermine addict
  • ****
  • Country: de
  • Offline Offline
  • Gender: Male
  • Posts: 15764
Re: Code für Abgabe von Kommentaren
« Reply #21 on: February 01, 2011, 09:18:15 pm »

Entfern die letzte Leerzeile (ganz am Ende, unter dem '?>'). Ich habe es nicht getestet, damit sollte es dann aber gehen.
Logged

cmfa

  • Contributor
  • Coppermine frequent poster
  • ***
  • Offline Offline
  • Posts: 226
Re: Code für Abgabe von Kommentaren
« Reply #22 on: February 01, 2011, 10:00:39 pm »

och menno, :o

nun krieg ich es gerade nicht auf die Reihe. Jetzt habe ich schon 12 Testkommentare gemacht aber Bilder darf ich nicht mehr hochladen.
Das was ich getan hab ist den Browser zu schliessen. 
Was nun??
Anbei ein Auszug aus dem SQL Server.


VG
Logged

Αndré

  • Administrator
  • Coppermine addict
  • ****
  • Country: de
  • Offline Offline
  • Gender: Male
  • Posts: 15764
Re: Code für Abgabe von Kommentaren
« Reply #23 on: February 02, 2011, 09:11:06 am »

Keine Ahnung was du mir mit dem angehängten Screenshot sagen willst. Wenn du keine Dateien mehr hochladen kannst, hast du bereits mehr als doppelt so viele Dateien hochgeladen wie Kommentare geschrieben.

Ersetz
Code: [Select]
if (USER_ID && !GALLERY_ADMIN_MODE) {
    $uploads = mysql_result(cpg_db_query("SELECT COUNT(*) FROM {$CONFIG['TABLE_PICTURES']} WHERE owner_id = ".USER_ID), 0);
    $comments = mysql_result(cpg_db_query("SELECT COUNT(*) FROM {$CONFIG['TABLE_COMMENTS']} WHERE author_id = ".USER_ID), 0);
    if ($comments/$uploads < 2) {
        cpg_die(ERROR, "Du hast zu wenig Kommentare um weitere Dateien hochzuladen", __FILE__, __LINE__);
    }
}
durch
Code: [Select]
if (USER_ID && !GALLERY_ADMIN_MODE) {
    $uploads = mysql_result(cpg_db_query("SELECT COUNT(*) FROM {$CONFIG['TABLE_PICTURES']} WHERE owner_id = ".USER_ID), 0);
    $comments = mysql_result(cpg_db_query("SELECT COUNT(*) FROM {$CONFIG['TABLE_COMMENTS']} WHERE author_id = ".USER_ID), 0);
    if ($comments/$uploads < 2) {
        cpg_die(ERROR, "Du hast zu wenig Kommentare um weitere Dateien hochzuladen.<br />Kommentare: $comments<br />Dateien: $uploads", __FILE__, __LINE__);
    }
}

Dann siehst du gleich die Anzahl der Kommentare und Dateien.
Logged

cmfa

  • Contributor
  • Coppermine frequent poster
  • ***
  • Offline Offline
  • Posts: 226
Re: Code für Abgabe von Kommentaren
« Reply #24 on: February 02, 2011, 09:28:49 am »

Moin moin,

danke für deine Geduld...
Anbei die aktuelle Meldung, ich versteh es nicht mehr...

VG
Logged

Αndré

  • Administrator
  • Coppermine addict
  • ****
  • Country: de
  • Offline Offline
  • Gender: Male
  • Posts: 15764
Re: Code für Abgabe von Kommentaren
« Reply #25 on: February 02, 2011, 09:57:07 am »

Ersetze
Code: [Select]
if (USER_ID && !GALLERY_ADMIN_MODE) {
    $uploads = mysql_result(cpg_db_query("SELECT COUNT(*) FROM {$CONFIG['TABLE_PICTURES']} WHERE owner_id = ".USER_ID), 0);
    $comments = mysql_result(cpg_db_query("SELECT COUNT(*) FROM {$CONFIG['TABLE_COMMENTS']} WHERE author_id = ".USER_ID), 0);
    if ($comments/$uploads < 2) {
        cpg_die(ERROR, "Du hast zu wenig Kommentare um weitere Dateien hochzuladen.<br />Kommentare: $comments<br />Dateien: $uploads", __FILE__, __LINE__);
    }
}
durch
Code: [Select]
if (USER_ID && !GALLERY_ADMIN_MODE) {
    $uploads = mysql_result(cpg_db_query("SELECT COUNT(*) FROM {$CONFIG['TABLE_PICTURES']} WHERE owner_id = ".USER_ID), 0);
    $comments = mysql_result(cpg_db_query("SELECT COUNT(*) FROM {$CONFIG['TABLE_COMMENTS']} WHERE author_id = ".USER_ID), 0);
    if ($comments > 0 && $uploads/$comments > 2) {
        cpg_die(ERROR, "Du hast zu wenig Kommentare um weitere Dateien hochzuladen.<br />Kommentare: $comments<br />Dateien: $uploads", __FILE__, __LINE__);
    }
}
Logged

cmfa

  • Contributor
  • Coppermine frequent poster
  • ***
  • Offline Offline
  • Posts: 226
Re: Code für Abgabe von Kommentaren
« Reply #26 on: February 02, 2011, 12:41:29 pm »

hi,

mh jetzt gibt es keine Beschränkung mehr. es können beliebig viele Bilder hoch geladen werden

VG
Logged

Αndré

  • Administrator
  • Coppermine addict
  • ****
  • Country: de
  • Offline Offline
  • Gender: Male
  • Posts: 15764
Re: Code für Abgabe von Kommentaren
« Reply #27 on: February 02, 2011, 01:38:46 pm »

Manchmal ist es von Vorteil seinen Code auch zu testen ;)

Der hier sollte nun wie gewünscht funktionieren:
Code: [Select]
if (USER_ID && !GALLERY_ADMIN_MODE) {
    $uploads = mysql_result(cpg_db_query("SELECT COUNT(*) FROM {$CONFIG['TABLE_PICTURES']} WHERE owner_id = ".USER_ID), 0);
    $comments = mysql_result(cpg_db_query("SELECT COUNT(*) FROM {$CONFIG['TABLE_COMMENTS']} WHERE author_id = ".USER_ID), 0);
    if ($comments == 0 || $uploads/$comments >= 2) {
        cpg_die(ERROR, "Du hast zu wenig Kommentare um weitere Dateien hochzuladen.<br />Kommentare: $comments<br />Dateien: $uploads", __FILE__, __LINE__);
    }
}


Dabei ist nach wie vor folgendes zu beachten:
Zusätzlich sollte man dann auch noch vor dem einfügen in die Datenbank überprüfen, ob noch genügend "Punkte" vorhanden sind (db_input.php). Ansonsten könnte ein Besucher mehrere Upload-Formulare öffnen und somit deine Grenze umgehen.

Ich weiß nicht ob das in deinem Fall benötigt wird oder nicht. Jetzt ist es z.B. so, dass jemand mit 2 Kommentaren und bereits 3 hochgeladenen Dateien das Uploadformular öffnen kann. Eigentlich könnte er jetzt nur noch 1 Datei hochladen. Öffnet er aber das Formular mehrmals oder benutzt den Flashuploader, kann er so viele Dateien hochladen wie er möchte.
Logged

cmfa

  • Contributor
  • Coppermine frequent poster
  • ***
  • Offline Offline
  • Posts: 226
Re: Code für Abgabe von Kommentaren
« Reply #28 on: February 02, 2011, 01:50:16 pm »

Hi,

danke,  :)
ja der Flashuploader wird nur verwendet. Hier sollte der "Schutz" auch reifen, wenn möglich.
Bestätigen kann ich das ich mit dem Flashuploader mehrere Dateien hochladen kann.
Die Prüfung der "Punkte" benötige ich zu zeit nicht. Wie aufwendig wäre die Prüfung?

VG
Logged

Αndré

  • Administrator
  • Coppermine addict
  • ****
  • Country: de
  • Offline Offline
  • Gender: Male
  • Posts: 15764
Re: Code für Abgabe von Kommentaren
« Reply #29 on: February 02, 2011, 01:58:29 pm »

Ich glaube wir reden schonwieder völlig aneinander vorbei.

1.) Bestätige mir, dass der Code wie gewünscht funktioniert, nachdem du Dateien hochgeladen hast und das Uploadformular erneut öffnen möchtest.
2.) Die Abfrage greift bei jedem Aufruf der Datei upload.php. D.h. es wirkt sich sowohl auf den Flashuploader als auch auf das normale Formular aus. Jedoch nur beim Laden des Formulars und nicht direkt beim Hochladen der Dateien.
3.) Ich werde mich bei Gelegenheit mal ransetzen und den Schutz so einbauen, dass er direkt beim Hochladen der Dateien überprüft ob das Datei-Kommentar-Verhältnis stimmt.
4.) Ich verstehe nicht, was du mir damit sagen willst:
Die Prüfung der "Punkte" benötige ich zu zeit nicht. Wie aufwendig wäre die Prüfung?
Ersetze "Punkte" durch "Datei-Kommentar-Verhältnis" und dann sprechen wir wahrscheinlich über 3.)
« Last Edit: February 02, 2011, 02:05:30 pm by Αndré »
Logged

cmfa

  • Contributor
  • Coppermine frequent poster
  • ***
  • Offline Offline
  • Posts: 226
Re: Code für Abgabe von Kommentaren
« Reply #30 on: February 02, 2011, 02:09:54 pm »

Hi,

nein wir reden nicht aneinander vorbei.
1. Code funktioniert nach erfolgter Prüfung nicht richtig. Mit dem Flashuploader kann ich soviel Bilder hochladen wie ich möchte, hattest du ja geschrieben. Ein Blockrierung kommt nicht mehr.
2. Das hatte ich schon so verstanden
3. danke dafür
4. hier hast du selber die Frage aufgeworfen und ich habe in meiner Antwort die Frage mit aufgegriffen.
Zusätzlich sollte man dann auch noch vor dem einfügen in die Datenbank überprüfen, ob noch genügend "Punkte" vorhanden sind (db_input.php). Ansonsten könnte ein Besucher mehrere Upload-Formulare öffnen und somit deine Grenze umgehen.

VG
Logged

Αndré

  • Administrator
  • Coppermine addict
  • ****
  • Country: de
  • Offline Offline
  • Gender: Male
  • Posts: 15764
Re: Code für Abgabe von Kommentaren
« Reply #31 on: February 02, 2011, 02:25:19 pm »

2. Das hatte ich schon so verstanden
Scheinbar nicht, siehe
1. Code funktioniert nach erfolgter Prüfung nicht richtig. Mit dem Flashuploader kann ich soviel Bilder hochladen wie ich möchte, hattest du ja geschrieben. Ein Blockrierung kommt nicht mehr.

Die Sperre greift momentan nur beim laden der Datei upload.php. Ist diese Seite einmal geladen, kannst du mit dem Flash-Uploader so viele Dateien hochladen wie du willst. Deswegen auch 3.)


zu 4.) Das Zitat ist fast ein Jahr alt. Das Wort "Punkte" steht nicht ohne Grund in Anführungszeichen. Nämlich weil es in der Praxis keine Punke gibt sondern immer das Verhältnis von Kommentaren und Dateien berechnet wird. Ich wollte dir lediglich mitteilen, was ich hier schon an mehreren Stellen versucht habe:
Öffnet er aber das Formular mehrmals oder benutzt den Flashuploader, kann er so viele Dateien hochladen wie er möchte.
Die Prüfung der "Punkte" ist also in Wahrheit die Prüfung des Verhältnisses von Kommentaren und Dateien. Ich bin mir daher nicht sicher was du mir hiermit sagen wolltest:
Die Prüfung der "Punkte" benötige ich zu zeit nicht. Wie aufwendig wäre die Prüfung?


Meiner Meinung nach ist nur noch bei 3.) Handlungsbedarf. D.h. die Überprüfung während des Hochladens und nicht nur während des Aufrufen des Formulars. Sind wir uns da einig?
Logged

cmfa

  • Contributor
  • Coppermine frequent poster
  • ***
  • Offline Offline
  • Posts: 226
Re: Code für Abgabe von Kommentaren
« Reply #32 on: February 02, 2011, 02:37:38 pm »

ja völlig,

VG
Logged

Αndré

  • Administrator
  • Coppermine addict
  • ****
  • Country: de
  • Offline Offline
  • Gender: Male
  • Posts: 15764
Re: Code für Abgabe von Kommentaren
« Reply #33 on: February 04, 2011, 11:29:47 am »

Öffne include/picmgmt.inc.php, finde
Code: [Select]
function add_picture($aid, $filepath, $filename, $position = 0, $title = '', $caption = '', $keywords = '', $user1 = '', $user2 = '', $user3 = '', $user4 = '', $category = 0, $raw_ip = '', $hdr_ip = '', $iwidth = 0, $iheight = 0)
{
und füge danach folgendes ein
Code: [Select]
    if (USER_ID && !GALLERY_ADMIN_MODE) {
        $uploads = mysql_result(cpg_db_query("SELECT COUNT(*) FROM {$CONFIG['TABLE_PICTURES']} WHERE owner_id = ".USER_ID), 0);
        $comments = mysql_result(cpg_db_query("SELECT COUNT(*) FROM {$CONFIG['TABLE_COMMENTS']} WHERE author_id = ".USER_ID), 0);
        if ($comments == 0 || $uploads/$comments >= 2) {
            return array('error' => "Du hast zu wenig Kommentare um weitere Dateien hochzuladen.\nKommentare: $comments\nDateien: $uploads", 'halt_upload' => 1);
        }
    }
Logged

cmfa

  • Contributor
  • Coppermine frequent poster
  • ***
  • Offline Offline
  • Posts: 226
Re: Code für Abgabe von Kommentaren
« Reply #34 on: February 04, 2011, 08:10:52 pm »

hi,

leider möchte es bei mir noch nicht so richtig funktionieren.
Code: [Select]
// Add a picture to an album
function add_picture($aid, $filepath, $filename, $position = 0, $title = '', $caption = '', $keywords = '', $user1 = '', $user2 = '', $user3 = '', $user4 = '', $category = 0, $raw_ip = '', $hdr_ip = '', $iwidth = 0, $iheight = 0)
{
if (USER_ID && !GALLERY_ADMIN_MODE) {
        $uploads = mysql_result(cpg_db_query("SELECT COUNT(*) FROM {$CONFIG['TABLE_PICTURES']} WHERE owner_id = ".USER_ID), 0);
        $comments = mysql_result(cpg_db_query("SELECT COUNT(*) FROM {$CONFIG['TABLE_COMMENTS']} WHERE author_id = ".USER_ID), 0);
        if ($comments == 0 || $uploads/$comments >= 2) {
            return array('error' => "Du hast zu wenig Kommentare um weitere Dateien hochzuladen.\nKommentare: $comments\nDateien: $uploads", 'halt_upload' => 1);
        }
    } 
In der uploade.php ist nichts mehr drin.
In dieser Form wie im Code zu sehen kommt die angehängte Fehlermeldung bei mir.
Mache ich noch was falsch?

CMFA



Logged

Αndré

  • Administrator
  • Coppermine addict
  • ****
  • Country: de
  • Offline Offline
  • Gender: Male
  • Posts: 15764
Re: Code für Abgabe von Kommentaren
« Reply #35 on: February 05, 2011, 10:35:25 am »

Das Spiel hatten wir doch schon:
Entfern die letzte Leerzeile (ganz am Ende, unter dem '?>')

Generell dürfen gar keine Leerzeilen vor
Code: [Select]
<?phpund nach
Code: [Select]
?>stehen.

Und wieso hast du den Code aus upload.php entfernt? Es ist doch sinnvoll deinen Benutzern auch schon vorher zu sagen, dass sie nichts mehr hochladen können anstatt sie erst versuchen zu lassen ob es noch funktioniert.
Logged

cmfa

  • Contributor
  • Coppermine frequent poster
  • ***
  • Offline Offline
  • Posts: 226
Re: Code für Abgabe von Kommentaren
« Reply #36 on: February 05, 2011, 03:58:21 pm »

Hi,

die Leerzeichen hatte ich schon im Vorfeld (nach deinem ersten Hinweis) entfernt. Die Fehlermeldung kommt auch wenn der Code in der Upload.php steht.
Es ist wieder eingetragen, es kommt kein Hinweis das nichts mehr hoch geladen werden darf. Nach dem hoch laden kommt dann immer noch die beschrieben Fehlermeldung.

CMFA
Logged

Αndré

  • Administrator
  • Coppermine addict
  • ****
  • Country: de
  • Offline Offline
  • Gender: Male
  • Posts: 15764
Re: Code für Abgabe von Kommentaren
« Reply #37 on: February 07, 2011, 11:58:53 am »

Die Ursache dieser Fehlermeldung ist in den meisten Fällen, wenn in irgendeiner involvierten Datei Leerzeichen bzw. Leerzeilen vor bzw. nach den PHP-Tags stehen.

Überprüfe bitte nochmal genau, ob du irgendwo Leerzeichen eingebaut hast. Du kannst auch nochmal die beiden Originaldateien hochladen und schauen ob der Fehler dann weg ist. Wenn das so ist, füge die Änderungen erneut ein und pass genau auf Leerzeichen auf. Wenn du keinen Fehler entdecken kannst, füge die beiden Dateien wieder als Zip-Datei an deine nächste Antwort an.
Logged

cmfa

  • Contributor
  • Coppermine frequent poster
  • ***
  • Offline Offline
  • Posts: 226
Re: Code für Abgabe von Kommentaren
« Reply #38 on: February 07, 2011, 04:39:04 pm »

hi,

gut im Anhng sind die beiden Dateien.
Leerzeichen habe ich nochmals entfernt, auch in Mir sind einige Dateien untergekommen, wo "?>" komplett fehlt. evtl. ist das ja Absicht.
Habe dir mal eine neue Datenbank aufgesetzt. Hier kannst schauen was ich zur zeit sehe.
Benutzer: Tester PW: test
In beiden Dateien ist der Code drin

VG

CMFA
Logged

Αndré

  • Administrator
  • Coppermine addict
  • ****
  • Country: de
  • Offline Offline
  • Gender: Male
  • Posts: 15764
Re: Code für Abgabe von Kommentaren
« Reply #39 on: February 07, 2011, 06:23:14 pm »

Ich habe mich gerade eingeloggt und upload.php aufgerufen:
Quote
Error
Du hast zu wenig Kommentare um weitere Dateien hochzuladen.
Kommentare: 0
Dateien: 0

Das war zu erwarten und arbeitet korrekt.


Wenn ich jetzt jedoch etwas hochladen möchte, erhalte ich eine Fehlermeldung beim Flash-Uploader und sogar eine Fehlermeldung bei dem einfachen Uploadformular. Leider ist der Debugmodus deaktiviert, weshalb ich den Fehler nicht weiter ergründen kann.


auch in Mir sind einige Dateien untergekommen, wo "?>" komplett fehlt.
Das ist erstmal egal.
Logged
Pages: 1 [2] 3   Go Up
 

Page created in 0.025 seconds with 20 queries.