Archiv

Artikel Tagged ‘unvollständige’

SuHosin – beschränkt Zahl der zu bestellenden Bilder

26. April 2012 Kommentare ausgeschaltet

Suhosin – beschränkt Zahl der zu bestellenden Bilder

Suhosin Website: hier

Mit dem Update auf bytepix Version 2.9.4 stellen die Suhosin Beschränkungen kein Problem mehr dar.

PHP ist wohl die am weitesten verbreitet Script Sprache auf Web-Servern. Aus diesem Grund ist sie auch die am meisten von Hackern attackierte Sprache im Internet. Immer mehr Provider versuchen sich deshalb, besser gegen Hacker-Angriffe zu schützen, indem sie ihre PHP-Installationen „härten“. Zum Beispiel mit dem sogenannten „suhosin-Patch“.
Leider hat dies aber Auswirkungen auf PHP Programme wie bytepix, bei deren Entstehung nicht an solche „Einschränkungen“ gedacht werden konnte.
Suhosin begrenzt unter anderem die Zahl der Datensätze, die bei einem Button-Klick an den Server übertragen werden können. Wenn Sie sich nun den Warenkorb von bytepix oder eine Seite mit vielen Thumbnails vorstellen, dann gibt es dort viele Felder, die Ihre Eingaben entgegennehmen können. Da gibt es z.B. die Checkboxen, um ein Bild auszuwählen, oder mehrere Klapplisten, um die Formate für die Abzüge auszuwählen.
Bestellt ein Kunde nur wenige Bilder in einem Vorgang, so stellt eine Begrenzung der Zahl der Datensätze in der Regel kein Problem dar. Erst bei vielen Bildern in einer einzigen Bestellung kann zu Problemen führen, wenn die Maximalzahl der Datensätze überschritten wird.
Als Gegenmaßnahme können Sie diese Grenzwerte erhöhen oder suhosin für bytepix ganz abschalten. Dies erfordert jedoch Eingriffe in Ihr System, die bytepix selbst nicht vornehmen kann.
Sie haben folgende Möglichkeiten:

Erstellen Sie eine „.htaccess“ Datei

Über die .htaccess-Datei lassen sich viele Einstellungen Ihres Web-Servers verändern oder ergänzen. Leider ist dies nicht immer der Fall, denn Ihr Provider muss dies explizit zulassen, aber ein Versuch lohnt sich. Es geht darum mit einem Text-Editor, eine .htaccess-Datei zu erstellen und auf den Server ins Verzeichnis „bytepix“ zu kopieren.
Mit Text-Editor meinen wir ein Programm, das „reine“ Text-Dateien erzeugen kann. Mit MS-Word geht das leider nicht, denn dieses Programm speichert immer zusätzliche Formatierungsinformationen mit in seine Dateien.
Text-Editoren für Windows: Notepad, Editpad, Jedit u.v.a.m.
Text-Editoren für MacOS: TextWrangler, BBEdit, Jedit u.v.a.m.
FTP-Programme für beide Betriebssysteme: FileZilla
Wenn Sie später eine .htaccess-Datei erzeugt haben, müssen Sie diese mit einem FTP-Programm wie FileZilla auf Ihren Server ins Verzeichnis „bytepix“ kopieren. In FileZilla geben Sie Ihre FTP-Zugangsdaten ein, ganz genauso wie im Programm „mitt“ im ersten Dialog. Also FTP-Server-Adresse, Benutzername (FTP-Login) und Passwort.
Bereiten Sie sich vor, die Datei .htaccess sofort wieder von Ihrem Server zu löschen (ebenfalls mit FileZilla), wenn etwas nicht funktioniert. Leider können Server auch so konfiguriert sein, dass sie bei Anwesenheit einer .htaccess-Datei ihren Dienst verweigern.
Im Text-Editor erstellen Sie eine .htaccess-Datei mit einem der folgenden Inhalte. (Achten Sie auf den Punkt am Anfang des Dateinamens der .htaccess-Datei)

Um suhosin für bytepix komplett auszuschalten, geben sie folgenden Code ein:

php_flag suhosin.simulation On

Dieser Ausdruck enthält genau zwei Leerzeichen. Suhosin wird dabei in den Simulationsmodus versetzt und zwar nur für den Ordner bytepix und alle darunter liegenden Ordner.
Oder Sie können die Maximalzahlen heraufsetzen, z.B. auf 1000 (für ca. 100 Bilder im Warenkorb):

php_flag suhosin.post.max_vars 1000
php_flag suhosin.request.max_vars 1000

In diesem Fall werden also zwei Zeilen in die Datei eingetragen.

Sollte dieser Weg nicht beschritten werden können, weil die .htaccess-Datei auf Ihrem Server nicht zulässig ist, dann kann man evtl. eine Datei namens php.ini anlegen oder eine vorhandene ergänzen. Details müssten Sie bitte mit Ihrem Provider klären.
Die Einträge der php.ini Datei wären dann

suhosin.simulation = On

oder

suhosin.post.max_vars = 1000
suhosin.request.max_vars = 1000

Ggf. übernimmt auch Ihr Provider diese Aufgabe für Sie.