Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 13. Juli 2015 10:47

faglork
CMS/ms-Profi
Ort: Fränkische Schweiz
Registriert: 15. Dezember 2010
Beiträge: 1.151
Webseite

Plugin gr_image : erkennt bereits generierte images nicht

Moinsen!

Ich nutze das Plugin qr_image v. 1.4 von Goran Illic. Funzt prima, aaaaber:
Es sollte *eigentlich* überprüfen, ob das image schon generiert wurde. Das tut es leider nicht, bzw, das funktioniert nicht. Die Folge: tausende von Dateien im qr-Verzeichnis :-((


Kann das jemand bestätigen oder ist das nur bei mir so?

Da der Besitzer der Server ist, kann man das auch nicht einfach per FTP löschen ... wenn man im Filemanager tausende Dateien löschen will, gibts ne leere Seite - das Löschen hat zwar funktioniert, aber die Fehlfunktion ist natürlich beunruhigend ...

Servus,
Alex

Beitrag geändert von faglork (13. Juli 2015 11:41)

Offline

#2 13. Juli 2015 12:10

faglork
CMS/ms-Profi
Ort: Fränkische Schweiz
Registriert: 15. Dezember 2010
Beiträge: 1.151
Webseite

Re: Plugin gr_image : erkennt bereits generierte images nicht

Der Aufruf sieht so aus:

[== smarty ==]
{tbtools::selfUrl(qr)}
<div id="qrcode">{qr_image url=$qr path='qr' width='120' height='120' alt='' title='' data_uri='1'}</div>

... das Problem schein hier zu liegen:

[== php ==]
 $image_path_qr = $gCms -> config['image_uploads_path'] . '/' . $path . '/';
    $image_filename_qr = md5(serialize($params)) . '.png';

    if(!file_exists($image_path_qr . $image_filename_qr) || $image_filename_qr == md5(serialize($params))) {
      ...
      (dann wird ein image gespeichert)

Wenn ich mir die erzeugten Dateien ansehe, dann wird da JEDESMAL ein anderer Dateiname erzeugt?
Die $params sind aber bis auf die URL ja immer diesselben, also sollte das auf die Anzahl der Seiten begrenzt sein.
md5 erzeugt AFAIK immer denselben Hash, oder nicht?

Was läuft denn da schief?

IMO wird

$image_filename_qr == md5(serialize($params))

niemals TRUE weil es vorher auf

$image_filename_qr = md5(serialize($params)) . '.png';

gesetzt wird ...

--> damit bleibt als Bedingung

!file_exists($image_path_qr . $image_filename_qr)

und das ist aber

$image_filename_qr = md5(serialize($params)) . '.png';

also bleibt

als Problem, bzw. md5 oder serialize.

WTF??

Ich versteh es nicht. Oder ich seh den Wald vor lauter Bäumen nicht.

Servus,
Alex

Beitrag geändert von faglork (13. Juli 2015 12:32)

Offline

#3 13. Juli 2015 13:17

Klenkes
Server-Pate
Ort: 89428 Syrgenstein
Registriert: 17. Dezember 2010
Beiträge: 1.391

Re: Plugin gr_image : erkennt bereits generierte images nicht

Seltsam.
Hilft dir nicht weiter, doch ich kann nur so viel sagen, als dass ich das Plugin auch in der Version 1.4 einsetze, und es dort funktioniert:

{qr_image url=$cgsimple->self_url() width='180' height='180'}

Noch eine alte Installation mit CGSimpleSmarty und Ausgabe des IMG Tags in einem Modal.
Siehe hier: http://bit.ly/1RtL0Yg

Es muss an etwas Anderem liegen.

Offline

#4 13. Juli 2015 16:07

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.137

Re: Plugin gr_image : erkennt bereits generierte images nicht

Lass Dir die Parameter im Plugin doch mal ausgeben.
Ebenso den Pfad zum Bild und den Rückgabewert von serialize und md5.
Also vor die if-Bedingung:

exit(
    print_r($params, true) .  "<br/>\n" . 
    serialize($params) . "<br/>\n" . 
    md5(serialize($params)) . "<br/>\n" . 
    $image_path_qr . $image_filename_qr
);

usw.
Also alle potentiellen Störfaktoren mal durchgehen.
Und dann vergleiche mal bei jedem Aufruf.

Im Prinzip hast Du den Code schon richtig verstanden.
Ich sehe da auch keinen Fehler.
Bis auf dieses:

$image_filename_qr == md5(serialize($params))

Das ergibt für mich an dieser Stelle auch keinen Sinn.

PS: Schau noch mal nach, ob Du auf dem Server wirklich die Version 1.4 hast.
Ein sich ständig änderner Dateiname spricht eigentlich für eine ältere Version.

Offline

#5 15. Juli 2015 23:28

cyberman
Moderator
Ort: Dohna / Sachsen
Registriert: 13. September 2010
Beiträge: 6.878
Webseite

Re: Plugin gr_image : erkennt bereits generierte images nicht

faglork schrieb:

... das Problem schein hier zu liegen:

[== php ==]
 $image_path_qr = $gCms -> config['image_uploads_path'] . '/' . $path . '/';

Dürfte wohl eher nicht die Lösung sein, aber dies sollte korrekter Weise so aussehen

[== php ==]
 $image_path_qr = cmsms()->GetConfig['image_uploads_path'] . '/' . $path . '/';

1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMS/ms
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi

Offline

#6 15. Juli 2015 12:48

faglork
CMS/ms-Profi
Ort: Fränkische Schweiz
Registriert: 15. Dezember 2010
Beiträge: 1.151
Webseite

Re: Plugin gr_image : erkennt bereits generierte images nicht

Ich glaub ich habs fast ...

Zu Einen: Es sind die News und ein Kalender. Die müssen ausgeschlossen werden, weil da sich die URLs ändern.

Dennoch. Es sind max. so 500 Termine und so 200 News. Das ist kein Grund für 5000 images ...

Kmmm ... Könnte es sein das der TOP-Link am Ende der Seite da jeweils ein neues image kreiert?
Muss ich mal testen.

Servus,
Alex

Offline