forum.coppermine-gallery.net

Support => Deutsch (German) => Language Specific Support => cpg1.5.x Deutsch (German) => Topic started by: cmfa on January 31, 2011, 09:18:32 pm

Title: Code für Abgabe von Kommentaren
Post by: cmfa on January 31, 2011, 09:18:32 pm
hi,

über die Suchfunktion bin ich auf einen interessanten Artikel (http://forum.coppermine-gallery.net/index.php/topic,64154.0.html) gestoßen :D, der für mich und meine Galerie (http://fotofreunde-rathenow.adtg.de/Teil5/index.php) genau zutrifft.  Was muss am Code geändert werden für den Einsatz in 1.5x und wo genau muss er hin, damit ich ihn verwenden kann? Aus dem Artikel geht es nicht wirklich hervor. In der upload.php hatte es so keine Auswirkung.

Code: [Select]
// Funktion zur Pruefung auf Spender-Usergruppe und Kommentarfaktor.
define('GROUP', 5, true);     // ID der Spendergruppe
define('COMMENTS', 3, true);  // Anzahl der Kommentare die pro Bild noetig sind
$user_id = USER_ID;
$table_u = "cpg14x_users";
$table_c = "cpg14x_comments";
$table_p = "cpg14x_pictures";
$column = "user_group_list";
$query = "SELECT {$column} FROM {$table_u} WHERE user_id = {$user_id}";
$result = cpg_db_query($query);
$result = mysql_fetch_array($result);
if ($result[0] != GROUP) {
   $query_c = "SELECT COUNT(*) FROM {$table_c} WHERE author_id = {$user_id}";
   $result_c = cpg_db_query($query_c);
   $result_c = mysql_fetch_array($result_c);
   $query_p = "SELECT COUNT(*) FROM {$table_p} WHERE owner_id = {$user_id}";
   $result_p = cpg_db_query($query_p);
   $result_p = mysql_fetch_array($result_p);
   $faktor = $result_c[0] / $result_p[0];
   $require_faktor = $result_p[0] * COMMENTS - $result_c[0];
     if ($faktor < COMMENTS) {
       cpg_die(ERROR, " Du hast $result_c[0] Kommentare geschrieben und $result_p[0] Bilder hochgeladen, das ist ein Kommentarfaktor von $faktor<br />Leider zu wenig um weitere Bilder hochzuladen. Du musst mindestens $require_faktor weitere(n) Kommentar(e) schreiben.<br />Alternativ gibt es eine Spendenmoeglichkeit fuer die Galerie.<br />Fuer einen Jahresbeitrag von 10 Euro, wirst Du von jeglichen Uploadbeschraenkungen befreit !", __FILE__, __LINE__);
}
}


VG

CMFA
Title: Re: Code für Abgabe von Kommentaren
Post by: Αndré on January 31, 2011, 09:41:44 pm
Der Code ist ehrlich gesagt unnötig aufgebläht und dadurch nur schwer nachvollziehbar. Beschreibe einfach genau was du vorhast. Also wieviele Kommentare pro Bild bzw. wieviele Bilder pro Kommentar. Soll das für alle Benutergruppen gelten oder nur für bestimmte? Wenn ja, welche? Und so weiter.

Das dein Code nicht funktioniert könnte vor allem an den hartkodierten Tabellennamen liegen, oder auch daran, dass es in cpg1.5x 2 verschiedene Uploadmethoden gibt und deshalb ggf. 2 mal Code angepasst werden muss.
Title: Re: Code für Abgabe von Kommentaren
Post by: cmfa on January 31, 2011, 09:51:06 pm
Hi,

gut Frage wie viele Kommentare man ansetzen möchte und wie viele Punkte man abziehen möchte.
Gehen wir mal pro Kommentar von 5 Punkten aus. Pro Upload von 3 Punkte aus. Spendengruppe benötige ich,vorerst nicht.
Damit wären wir eigentlich schon durch.

CMFA
Title: Re: Code für Abgabe von Kommentaren
Post by: Αndré on February 01, 2011, 11:29:49 am
Es wäre wirklich hilfreich wenn du mir etwas Arbeit abnehmen würdest, indem du zum einen meine Fragen komplett beantwortest und dann auch in einer Form, dass ich nicht erst alles nochmal durchlesen und auch die verlinkten Themen durchlesen muss.

Du möchtest also, dass deine Benutzer (alle? also auch der Admin? was ist mit Gästen?) pro Kommentar 5 Punkte auf ihr Konto gutgeschrieben bekommen und pro Upload 3 Punkte vom Konto abgezogen bekommen. Stimmt das so?
Title: Re: Code für Abgabe von Kommentaren
Post by: cmfa on February 01, 2011, 11:43:19 am
Hi,

sorry, wenn ich nicht richtig bzw vollständig geantwortet habe, das war nicht meine Absicht.
Es soll für alle registrierten User gelten.
Ideal wäre es, wenn man das über Boolean Felder in den Gruppen lösen könnte und dort die Punktzahl auch hinterlegen könnte. Gäste haben keine Uploadberechtigung. Bei der Punktzahl bin ich noch flexibel. Ja 6 Punkte pro Kommentar sind gut und 3 für einen Upload. Es ist Flash und HTML Upload erlaubt.

CMFA
Title: Re: Code für Abgabe von Kommentaren
Post by: Αndré on February 01, 2011, 12:00:36 pm
Es soll für alle registrierten User gelten.
Meinst du damit die Benutzergruppe "Registered" oder alle Benutzer, außer Gäste und den Administratoren? Je nachdem wieviele Gruppen du hast, kommt das auf dasselbe hinaus. Trotzdem ist eine präzise Antwort für die Erstellung des Codes erforderlich.


Ideal wäre es, wenn man das über Boolean Felder in den Gruppen lösen könnte und dort die Punktzahl auch hinterlegen könnte.
Ich weiß was du meinst, allerdings solltest du dir nochmal durchlesen, was man im Datentyp Boolean abspeichern kann ;) Auch hier gilt wieder: leg die Felder in deiner Datenbank an (z.B. mit phpMyAdmin) und sag mir, wie du das Feld genannt hast.


6 Punkte pro Kommentar sind gut und 3 für einen Upload.
Das wären dann also +2 Punkte pro Kommentar und -1 Punkt pro Upload 8)
Title: Re: Code für Abgabe von Kommentaren
Post by: cmfa on February 01, 2011, 12:27:22 pm
Hi,

alle Benutzer. Die Benutzer befinden sich bei mir in Gruppe "Registered" bist auf zwei Admins.
Bei Boolean war ich der bisher der Meinung "Yes" und "No" zu haben.
Yes für Funktion aktiv und no für nicht aktiv. Welche Datentyp sollen die Felder haben, ist die Tabelle egal?
Wir könnten Tabelle Comments nutzen mit Comment_point (DECIMAL), Upload_piont(DECIMAL) und Function_Point(Boolean) nennen.
Mh, das letzte seh ich so  8) +6 Punkte -3Punkte, das Punktesystem ist doch sicher später noch änderbar?
 
CMFA
Title: Re: Code für Abgabe von Kommentaren
Post by: Αndré on February 01, 2011, 12:39:33 pm
Wie ich bereits in dem anderen Thema geschrieben habe ist es vollkommen überflüssig die Punkte irgendwo zu speichern. Es reicht vollkommen aus in Echtzeit zu überprüfen, wieviele Dateien und Kommentare es von einem bestimmten Nutzer gibt und dann zu entscheiden ob er noch Dateien hochladen darf oder nicht.

Die Benutzer befinden sich bei mir in Gruppe "Registered" bist auf zwei Admins.
Wozu dann
Ideal wäre es, wenn man das über Boolean Felder in den Gruppen lösen könnte und dort die Punktzahl auch hinterlegen könnte.
? Ist doch sinnlos den Wert in der Datenbank zu speicher, wenn sich der Mod eh nur auf eine Gruppe auswirkt.


Mh, das letzte seh ich so  8) +6 Punkte -3Punkte, das Punktesystem ist doch sicher später noch änderbar?
Ja und nein. Wie oben beschrieben wird es keine Punkte in dem Sinne geben, sondern es gibt nur das Verhältnis von Kommentaren zu Dateien. Ob nun 6:3, 2:1 oder 1000:500 - es kommt am Ende immer auf dasselbe raus.
Title: Re: Code für Abgabe von Kommentaren
Post by: cmfa on February 01, 2011, 12:50:28 pm
Hi,

das mit den Gruppen kann ich ab ändern, gut machen wir drei Gruppen daraus.
Wozu der Aufwand? Es soll etwas erzieherisch wirken, wenn man sich am "Clubleben" beteiligt kann man auch was erwarten.
Ok wenn es keine Punkte gibt.
Das Verhältnis ja dann klar.


VG

CMFA


Title: Re: Code für Abgabe von Kommentaren
Post by: Αndré on February 01, 2011, 01:24:41 pm
Ich weiß ehrlich gesagt nicht, was du mir mit deinem letzten Beitrag sagen willst. Gerade noch waren deine Benutzer alle in einer Gruppe. Jetzt plötzlich willst du drei Gruppen daraus machen? Ich meine, mir ist das im Endeffekt egal wie du deine Galerie strukturierst. Ich möchte nur irgendwann mal eine klare Antwort, was du überhaupt willst. Bei jeder nachfrage nach Details kommen von dir neue Anforderungen/Ideen. Bedenke bitte, dass ich das hier freiwillig und ohne Bezahlung mache. Irgendwann vergeht mir die Lust, wenn du nicht auf den Punkt kommst.
Title: Re: Code für Abgabe von Kommentaren
Post by: cmfa on February 01, 2011, 01:38:38 pm
Hi,

ja ich weiß das du es freiwillig machst. :)
Dann legen wir uns fest. Für alle Benutzer in einer Gruppe.
Sonst habe ich alle Fragen beantwortet?

Die anderen Ideen die mir gerade noch gekommen sind zu einem späteren Zeitpunkt im neuen Thread
Vg

CMFA
Title: Re: Code für Abgabe von Kommentaren
Post by: Αndré on February 01, 2011, 02:03:45 pm
Für alle Benutzer in einer Gruppe.
Hä ???
Title: Re: Code für Abgabe von Kommentaren
Post by: cmfa on February 01, 2011, 02:06:36 pm
Hi,


alle Benutzer. Die Benutzer befinden sich bei mir in Gruppe "Registered" bist auf zwei Admins.

Title: Re: Code für Abgabe von Kommentaren
Post by: Αndré on February 01, 2011, 02:09:34 pm
Das wären dann
alle Benutzer, außer Gäste und den Administratoren
richtig?
Title: Re: Code für Abgabe von Kommentaren
Post by: cmfa on February 01, 2011, 02:32:40 pm
Hi,

ja  :o
Title: Re: Code für Abgabe von Kommentaren
Post by: Αndré on February 01, 2011, 02:59:14 pm
Dann wäre hier meine Lösung. Sie unterscheidet sich nicht wirklich von dem, was ich in dem anderen Thema vorgeschlagen hatte.

Öffne upload.php, finde
Code: [Select]
if (!USER_CAN_UPLOAD_PICTURES && !USER_CAN_CREATE_ALBUMS) {
    cpg_die(ERROR, $lang_errors['perm_denied'], __FILE__, __LINE__);
}
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/$uploads < 2) {
        cpg_die(ERROR, "Du hast zu wenig Kommentare um weitere Dateien hochzuladen", __FILE__, __LINE__);
    }
}

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.
Title: Re: Code für Abgabe von Kommentaren
Post by: cmfa on February 01, 2011, 06:05:23 pm
Hi,

danke es funktioniert erstmal so weit. Jedoch bekomme ich auf dem Testsystem in folgender Konstellation die angehängte Fehlermeldung, die über den gesamten Bildschirm geht.
User hat 2 Kommentare gemacht und will mittels Flash 3 Bilder hochladen. Das die Fehlermeldung kommt ist ja klar aber, aber sie sagt irgend etwas anders aus.(Kein hinweis auf die kommentarfunktion) Kann man das abstellen bzw. so ändern das die Fehlermeldung verständlich ist?

CMFA
Title: Re: Code für Abgabe von Kommentaren
Post by: Αndré on February 01, 2011, 06:47:29 pm
Das liegt mit Sicherheit nicht an dieser Änderung. Lade die originale upload.php-Datei hoch und schau ob der Fehler dann auch auftritt.
Title: Re: Code für Abgabe von Kommentaren
Post by: cmfa on February 01, 2011, 07:26:35 pm
hi,

Datei neu geladen und Fehlermeldung ist weg.
Leider kommt die Meldung wenn der neue Code drin ist.

VG
Title: Re: Code für Abgabe von Kommentaren
Post by: Αndré on February 01, 2011, 07:37:46 pm
Hänge bitte deine upload.php-Datei mit den Änderungen an deine nächste Antwort an.
Title: Re: Code für Abgabe von Kommentaren
Post by: cmfa on February 01, 2011, 07:45:50 pm
Hi,

bitte. Im Anhang
Title: Re: Code für Abgabe von Kommentaren
Post by: Αndré 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.
Title: Re: Code für Abgabe von Kommentaren
Post by: cmfa 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
Title: Re: Code für Abgabe von Kommentaren
Post by: Αndré 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.
Title: Re: Code für Abgabe von Kommentaren
Post by: cmfa 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
Title: Re: Code für Abgabe von Kommentaren
Post by: Αndré 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__);
    }
}
Title: Re: Code für Abgabe von Kommentaren
Post by: cmfa 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
Title: Re: Code für Abgabe von Kommentaren
Post by: Αndré 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.
Title: Re: Code für Abgabe von Kommentaren
Post by: cmfa 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
Title: Re: Code für Abgabe von Kommentaren
Post by: Αndré 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.)
Title: Re: Code für Abgabe von Kommentaren
Post by: cmfa 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
Title: Re: Code für Abgabe von Kommentaren
Post by: Αndré 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?
Title: Re: Code für Abgabe von Kommentaren
Post by: cmfa on February 02, 2011, 02:37:38 pm
ja völlig,

VG
Title: Re: Code für Abgabe von Kommentaren
Post by: Αndré 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);
        }
    }
Title: Re: Code für Abgabe von Kommentaren
Post by: cmfa 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



Title: Re: Code für Abgabe von Kommentaren
Post by: Αndré 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.
Title: Re: Code für Abgabe von Kommentaren
Post by: cmfa 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
Title: Re: Code für Abgabe von Kommentaren
Post by: Αndré 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.
Title: Re: Code für Abgabe von Kommentaren
Post by: cmfa 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 (http://fotofreunde-rathenow.adtg.de/test/)

VG

CMFA
Title: Re: Code für Abgabe von Kommentaren
Post by: Αndré 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.
Title: Re: Code für Abgabe von Kommentaren
Post by: cmfa on February 07, 2011, 06:49:10 pm
hi,

Habe dir den Debugmodus ist aktiv.
Die Fehlermeldung ist die die ich schon eine ganze weile bekomme

CMFA
Title: Re: Code für Abgabe von Kommentaren
Post by: Αndré on February 07, 2011, 06:59:08 pm
Sorry. Füge den Code für die Datei include/picmgmt.inc.php zwei Zeilen tiefer ein, nach den globals.
Title: Re: Code für Abgabe von Kommentaren
Post by: cmfa on February 07, 2011, 07:02:49 pm
erledigt,

willst du schauen?

VG

CMFA
Title: Re: Code für Abgabe von Kommentaren
Post by: Αndré on February 07, 2011, 07:20:59 pm
Hochladen mit dem einfachen Uploader ging jetzt ohne Probleme. Für alles weitere bräuchte ich einen FTP-Zugang zu deiner Seite. Wenn du bereit bist mir diesen zu geben, schick ich dir meine E-Mail-Adresse per PN.
Title: Re: Code für Abgabe von Kommentaren
Post by: cmfa on February 07, 2011, 07:24:38 pm
ja klar wir wollen das Thema ja mal abschließen. Ich richte einen ein.
Mit dem Flash konnte ich, bei zwei Kommentaren wenigsten vier Bilder hochladen...
Title: Re: Code für Abgabe von Kommentaren
Post by: Αndré on February 08, 2011, 09:08:11 am
Ich habe in der Datei upload.php den vorhandenen Mod durch folgenden Code ersetzt:
Code: [Select]
if (USER_ID && !GALLERY_ADMIN_MODE && !$superCage->post->keyExists('process') && !$superCage->post->keyExists('plugin_process')) {
    $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__);
    }
}

Meiner Meinung nach funktioniert jetzt alles wie gewünscht.
Title: Re: Code für Abgabe von Kommentaren
Post by: cmfa on February 09, 2011, 04:34:52 pm
Hi,

sorry das ich erst jetzt dazu komme. Nach den ersten Test läuft es wie gewünscht. Werde es aber noch weiter testen

VG

CMFA
Title: Re: Code für Abgabe von Kommentaren
Post by: Αndré on February 09, 2011, 04:57:23 pm
Sag bitte nochmal bescheid, dann kann ich nochmal eine schöne Anleitung erstellen, damit interessierte Personen sich nicht das ganze Thema durchlesen müssen ;)
Title: Re: Code für Abgabe von Kommentaren
Post by: cmfa on February 17, 2011, 07:23:11 pm
hi,

ja es läuft wie gewünscht. Danke für deine Geduld. ;D


CMFA