Deutschland United States United Kingdom
ContentLion - Open Source CMS

Captcha-Plugin

Captcha-Plugin

Hier ist noch das bereits angekündigte Captcha-Plugin. ;)
(Dieses Plugin zählt zu den Voraussetzungen beim Register-Plugin!)

Dieses Plugin ist eine Art Captcha-Manager, denn es verwaltet Captcha-Module.
Ein Captcha-Modul ist standartmäßig mit dabei, weitere können durch andere Plugins hinzugefügt werden. ;)

Um ein Captcha-Bild zu generieren, muss man die folgende URL aufrufen:
http://<Deine Domain>/system/plugins/captcha/captcha.php

HTML-Code:

PHP-Quelltext

1
<img src="http://<Deine Domain>/system/plugins/captcha/captcha.php" />


Download:
http://contentlion.pf-control.de/downloads/captcha.zip

Hier noch der Link zu meiner Seite inklusive LiveDemo (Screenshot unten):
http://contentlion.pf-control.de/plugins/plugin-captcha.html

Hups! ;(
Seit kurzem kommt auf meiner Seite ein Fehler:

Quellcode

1
Warning: file_exists(): File name is longer than the maximum allowed path length on this platform (4096): /var/customers/webs/kingdom/contentlion//system/skins/default/templates/


Quellcode

1
/var/customers/webs/kingdom/contentlion/system/classes/template.php on line 114 Call Stack: 0.0003 678744 1. {main}() /var/customers/webs/kingdom/contentlion/index.php:0 0.0076 1955352 2. SkinController::displayCurrent() /var/customers/webs/kingdom/contentlion/index.php:27 0.0293 1980376 3. include('/var/customers/webs/kingdom/contentlion/system/skins/default/index.php') /var/customers/webs/kingdom/contentlion/system/classes/skincontroller.php:141 0.0358 2289464 4. sys::includeContent() /var/customers/webs/kingdom/contentlion/system/skins/default/index.php:37 0.0358 2289464 5. Page->getContent() /var/customers/webs/kingdom/contentlion/system/classes/sys.php:4 0.0362 2308872 6. WYSIWYG->display() /var/customers/webs/kingdom/contentlion/system/classes/page.php:112 0.0368 2474776 7. Template->load() /var/customers/webs/kingdom/contentlion/system/classes/wysiwyg.php:14 0.0368 2474776 8. Template->getTemplatePath() /var/customers/webs/kingdom/contentlion/system/classes/template.php:52 0.0368 2484936 9. file_exists() /var/customers/webs/kingdom/contentlion/system/classes/template.php:114 Warning: file_exists(): File name is longer than the maximum allowed path length on this platform (4096): /var/customers/webs/kingdom/contentlion//system/templates/


Aber ich weiß nicht wieso!... :/ ?(
Jemand ne Idee?

Du prüfst ja ob die Datei exestiert. Der Name der Datei ist aber zulange (=< 4096).

Ich prüfe das nicht, wenn dann CL. :D
Aber er hat doch gar nicht 4096 Zeichen?!? ?(

Passt zwar net hier rein, aber:
Mir ist aufgefallen, dass in der Plugin-Galerie der Skin-Wizard fehlt. ^^

Repro ist angelegt.

Schau doch mal in /var/customers/webs/kingdom/contentlion/system/classes/template.php:56 was er da für nen File checken möchte ;-)

Das ist die Load-Methode:

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
    public function load($template){
      $path $this->getTemplatePath($template);
      if(file_exists($path)){
        $template $this->read_file($path);
      }
      elseif(file_exists($this->template_path."/".$template)){
        $template $this->read_file($this->template_path."/".$template);
      }
      $template $this->initialize_loops($template);
      $this->template $template;
    }


Aber wieso der Dateiname plötzlich zu lang sein soll, weiß ich nicht... :S

gibt doch mal $this->template_path."/".$template aus XD

Wie kommt eig. das doppelte "//" zustande? ^^

Quellcode

1
Warning: file_exists(): File name is longer than the maximum allowed path length on this platform (4096): /var/customers/webs/kingdom/contentlion//system/skins/myworld/templates/

gibt doch mal $this->template_path."/".$template aus XD

Dann kommt z.B. das raus:

PHP-Quelltext

1
getContent() /var/customers/webs/kingdom/contentlion/system/classes/sys.php:4 0.0077 1958440 6. WYSIWYG->display() /var/customers/webs/kingdom/contentlion/system/classes/page.php:112 0.0083 2125344 7. Template->load() /var/customers/webs/kingdom/contentlion/system/classes/wysiwyg.php:14 0.0086 2135344 8. file_exists() /var/customers/webs/kingdom/contentlion/system/classes/template.php:56 Template-Datei: /


Template-Datei: /
Aber wie kann da "/" stehen?
Dann müsste $template_path ja leer sein. ^^

Und was bedeutet das? Bzw. wie kann ichs beheben? ^^
(Was es bedeutet, weiß ich ja eig.^^)

Quellcode

1
Warning: file_exists(): open_basedir restriction in effect. File(/) is not within the allowed path(s): (/var/customers/webs/kingdom/contentlion/:/tmp/:/var/customers/tmp/kingdom/::/usr/share/php/:/usr/share/php5/:/usr/share/php/PEAR/) in /var/customers/webs/kingdom/contentlion/system/classes/template.php on line 56 Call Stack: 0.0003 678712 1. {main}() /var/customers/webs/kingdom/contentlion/index.php:0 0.0071 1917664 2. SkinController::displayCurrent() /var/customers/webs/kingdom/contentlion/index.php:27 0.0080 1935064 3. include('/var/customers/webs/kingdom/contentlion/system/skins/myworld/index.php') /var/customers/webs/kingdom/contentlion/system/classes/skincontroller.php:141 0.0091 1937680 4. sys::includeContent() /var/customers/webs/kingdom/contentlion/system/skins/myworld/index.php:36 0.0091 1937680 5. Page->getContent() /var/customers/webs/kingdom/contentlion/system/classes/sys.php:4 0.0095 1957048 6. WYSIWYG->display() /var/customers/webs/kingdom/contentlion/system/classes/page.php:112 0.0099 2123064 7. Template->load() /var/customers/webs/kingdom/contentlion/system/classes/wysiwyg.php:14 0.0100 2123472 8. file_exists() /var/customers/webs/kingdom/contentlion/system/classes/template.php:56 

Ich versteh gar nicht, wieso auf der Seite überhaupt ne Template-Datei geladen wird. ^^
Übrigens funktionieren alle anderen Seiten völlig. :D

Hä? ?(
Habe folgende Zeilen gelöscht (WYSIWYG-Editor) und es funktioniert wieder?!? ?(

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<tr style="text-align: left;">
<td>
<p><span style="font-size: large; color: #800000;"><em><strong>Captcha</strong></em></span></p>
<p>&nbsp;</p>
<p>Der Captcha-Manager erlaubt esCaptcha-Module zu verwalten und auszuw&auml;hlen.</p>
<p>Ein Captcha-Modul ist standartm&auml;&szlig;ig mit dabeiweitere k&ouml;nnen durch Plugins</p>
<p>hinzugef&uuml;gt werden.</p>
</td>
<td style="text-align: center;"><strong><span style="color: #008000;">1.0.0</span></strong></td>
<td>
<p><span style="font-size: medium;"><strong><a href="plugins/plugin-captcha.html">Download / <br /></a></strong></span></p>
<span style="font-size: medium;"><strong> </strong></span>
<p><span style="font-size: medium;"><strong><a href="plugins/plugin-captcha.html">Zur Plugin-Seite</a></strong></span></p>
</td>
</tr>

Ok, ich glaube, ich weiß, woran es liegt. ;(
Und der Fehler ist ein sehr großes Programmier-Bug in ContentLion... ;(
Wenn die Seite zu viele Zeichen enthält (über 4096 oder so), dann kommt der Fehler.
Habe das Ganze jetzt mal ausprobiert und der Fehler kam, als ich noch nen paar Zeilen (sinnlose Zeichen m.H. Copy & Paste) hinzugefügt habe... ;(

Gibt es in ContentLion eine Zeile, die besagt, dass nur 4096 Zeichen aus einer Datei ausgelesen werden sollen?
Obwohl... Das Ganze wird ja aus der Datenbank gelesen... :S

Du kannst mal versuchen das content-Feld der Pages-Tabelle auf LONGTEXT zu ändern.

Habs gemacht, aber daran liegts nicht. ;(
Beim "Seite bearbeiten" ist übrigens alles korrekt da... :huh:

hast du eigentlich "gibt doch mal $this->template_path."/".$template aus XD" schon beantwortet?

Ja, die Variablen waren leer. ^^

Aber ich habe, glaube ich, die Ursache(n) gefunden.
Apache hat einen Bug bei meiner Versionsnummer. Bei einer bestimmten Länge einer Variable kommt es zum Steak-Overflow (Stack-Überlauf).
(bei preg_match)
Genauere Infos siehe hier: https://bugs.php.net/bug.php?id=47811

Dann gibt es noch eine 2. Ursache. Der Speicher, den die Methode ob_start() verwenden kann, ist, anscheinend begrenzt. Und dieser wird vermutlich überzogen.

Ähnliche Themen