akan: PHP-Counter als png-Datei und mysqli-Befehlen statt mysql

Beitrag lesen

einen Counter als PNG-Datei eingebunden. In dieser Datei befindet sich ein PHP-Script

Über den Befehl in der .htaccess

AddType application/x-httpd-php .png

wird die PNG-Datei als PHP ausgeführt. Das funktioniert jetzt immer noch einwandfrei.

Das funktioniert vielleicht, ist aber nicht sonderlich schlau, weil du damit alle Dateien vom Typ PNG an PHP übergibst. Du verbrätst unnötig Rechenleistung auf dem Server, weil PHP jedes Bild durchsucht, Du verbrätst Bandbreite netzwerkseitig, weil Du verhinderst, dass Server und Browser nur noch dann sämtliche Bilddaten austauschen, wenn sich die Bilddateien geändert haben, und zu allem Überfluss dürftest du auch noch sämtliche PNG-Bilder als text/html ausliefern, weil das der Standardtyp ist, den PHP an den Browser meldet.

Und das alles für eine Maßnahme rein kosmetischer Natur. Wenn's unbedingt sein muss, lege deine Zuweisung in einen <files>- oder <location>-Block (und verwende bitte SetHandler, siehe unten).

Wenn ich aber die mysql-Anweisungen durch mysqli ersetze, erscheint beim Aufruf der PNG-Datei (zumindest im Testmodus ohne header- und image-Befehle) die Fehlermeldung:

Fatal error: Call to undefined function: mysqli_connect()...

Wird die png-Datei mit den neuen mysqli-Befehlen aber in .php umgenannt und aufgerufen, klappt es dagegen einwandfrei.

Auf der Website läuft PHP 5.5.

Sicher? Ersetze deinen Zählonkel mal durch <?php phpinfo(); ?> und vergleiche die Ausgabe der .png-URL mit jener der .php-URL.

Üblicherweise wird PHP nicht mit AddType eingebunden, sondern mit SetHandler (siehe PHP-Installationsanleitung, dort Punkt 15). Eventuell bindest du mit der AddType-Zeile eine ältere PHP-Version ein. Es gibt Server, die sowohl PHP 4 als auch PHP 5 unterstützen.