Update: Google jsmin.php und magic_quotes_runtime

»  Erstellt in Nützliches,Sonstiges by Holger Woltersdorf, Dienstag, 29. Januar 2008

Ich musste heute feststellen, dass der im vorherigen Beitrag beschriebene Workaround nur die halbe Wahrheit ist. Dies hat zwei Gründe:

  1. Es ist nicht die magic_quotes_runtime Option allein, die den Input manipluliert.
  2. Die oben beschriebene Ableitung funktioniert nicht, da der Kontext des Objekts beim statischen Zugriff auf die minify()-Methode noch immer den Original-Konstruktor verwendet.

Wie man im PHP-Manual nachlesen kann, ergibt sich eine neue Situation für den Input, wenn neben magic_quotes_runtime auch die Option magic_quotes_sybase aktiviert ist. Dann werden die Quotations nicht durch Backslashes escaped sondern in weitere Single-Quotes eingebettet. D.h. es passiert folgendes:

$input = "Hier steht ein 'Text' und so";

Daraus wird dann bei nur magic_quotes_runtime aktiviert:

$input = "Hier steht ein \'Text\' und so";

und bei aktivierten magic_quotes_runtime und magic_quotes_sybase:

$input = "Hier steht ein ''Text'' und so";
(jeweils 2 Single-Quotations vor und nach dem Wort "Text")

Somit bringt die Lösung mit der Verwendung von stripcslashes() relativ wenig. Mit zwei weiteren Zeilen Code allerdings kann man auch dieses Problem lösen. Hier nun auch gleich die korrekte Ableitung der JSMin-Klasse:

<?
/**
 * Klasse, die von JSMin erbt
 */
class JSMinimizer extends JSMin
{
    /**
     * Überladener Konstruktor
     *
     * @param string $input Input (JavaScript-Code)
     */
    public function __construct( $input )
    {
        if ( get_magic_quotes_runtime() && ini_get( 'magic_quotes_sybase' ) )
            $input = str_replace( "''", "'", $input );
        elseif ( get_magic_quotes_runtime() )
            $input = stripcslashes( $input );

        parent::__construct( $input );
    }

    /**
     * Komprimiert JavaScript-Code
     *
     * @param string $input Input (JavaScript-Code)
     * @return string Komprimierter Output
     */
    public static function minify( $input )
    {
        $jsmin = new JSMinimizer( $input );
        return $jsmin->min();
    }
}
?>

Hier noch der Link zur entsprechenden Info auf php.net
http://de.php.net/manual/de/ref.info.php#ini.magic-quotes-runtime


Google jsmin.php und magic_quotes_runtime

»  Erstellt in Nützliches,Sonstiges by Holger Woltersdorf, Samstag, 26. Januar 2008

JavaScript CompressionWer die PHP-Klasse vom Google-Projekt JSMin, einer PHP-Portierung des von Douglas Crockford entwickelten JavaScript-Minimizers, benutzt, wurde veilleicht schon einmal mit der folgenden Fehlermeldung konfrontiert:

Uncaught Exception: Unterminated string literal. [0]
jsmin.php on line 94

Diese Fehlermeldung ist zurückzuführen auf die Überprüfung von Unix-Linefeeds (ord($str) == 10) im übergebenen JavaScript-Code. Diese wiederum werden verursacht durch zwei aufeinander folgende einfache Anführungszeichen. Nun sollte man sich die Frage stellen, woher kommen diese Anführungszeichen in einer JavaScript-Datei, die sonst wunderbar funktioniert? Das Problem ist die PHP-Einstellung “magic_quotes_runtime”. Ist diese eingeschaltet, so werden einige Passagen im JavaScript durch PHP automatisch quotiert.

Nun gibt es drei Möglichkeiten diesem Problem mit einer Lösung beizukommen:

  1. Einfach die Einstellung “magic_quotes_runtime” generell abschalten
    (in der php.ini oder per .htaccess im DOCUMENT_ROOT).
  2. Die Einstellung per .htaccess nur in dem Order, in dem die jsmin.php liegt abschalten.
    (php_value magic_quotes_runtime 0)
  3. Den Konstruktor der Klasse überschreiben, um einen Kompatibilitätsmodus zu erhalten, der es erlaubt die JSMin-Klasse zu verwenden, egal ob magic_quotes_runtime eingeschaltet ist, oder nicht. Wie man das macht, wird nachfolgend erklärt:

Überschreiben des Konstruktors von JSMin

<?
/**
 * Klasse, die von JSMin erbt
 */
class JSMinimizer extends JSMin
{
    /**
     * Überladener Konstruktor
     *
     * @param string $input Input (JavaScript-Code)
     */
    public function __construct( $input )
    {
        if ( get_magic_quotes_runtime() )
            $input = stripcslashes( $input );

        parent::__construct( $input );
    }
}
?>

Es empfiehlt sich an dieser Stelle eine neue Klasse anzulegen, die von der JSMin-Klasse erbt, da man sonst diesen Workaround in jeder neuen Version von JSMin wieder eintragen müsste. Wobei zu hoffen ist, dass die Entwickler von JSMin (PHP) den Workaround mit in die nächste Version ihrer Klasse aufnehmen. Informiert sind sie jedenfalls.

Weitere Verweise zu JSMin:


Neue Domain – Meine Domain

»  Erstellt in Sonstiges,Statements by Holger Woltersdorf, Freitag, 17. November 2006

Nach nunmehr 8 Jahren, die ich im Internet aktiv bin, kam mir die glorreiche Idee meinen Namen als Domain zu buchen. Dies habe ich heute getan und ab sofort erreicht man meine Bewerbungsseite über die URL http://www.holgerschoettle.de, sowie diesen meinen Blog über die Subdomain http://blog.holgerschoettle.de.

Es gibt zwei, wenn nicht sogar noch mehr, gute Gründe für die Personalisierung meiner Präsenz im Internet.

  1. Es gibt mittlerweile eine ganze Reihe an Web-Projekten, die meiner Feder entstammen oder an denen ich mitgewirkt habe, sodass dort auch im Impressum (aus rechtlichen Gründen) mein Name auftaucht. Da ich diese Entwicklung weiter forcieren möchte, sollte es in Sachen Auffindbarkeit einen erheblichen Plus-Punkt bringen seinen Namen als Domain zu registrieren.
  2. Auch ich werde nicht verschont, von der täglichen Spam-Flut, die über die E-Mailserver dieser Welt hinein bricht. So kann ich zumindest sicher gehen, dass ich auch in Spam-Mails mit meinem korrekten Namen angesprochen werde, auch wenn sie dann rigoros im Papierkorb landen. Dies ist quasi ein Ausruf an alle Vollzeit-Spammer: Ihr könnt mir so viele Mails schicken, wie ihr wollt, meine Nerven kriegt ihr nicht!

Neues Gewand für SchoettleUmzuege.de

»  Erstellt in Sonstiges,Status-Meldungen by Holger Woltersdorf, Samstag, 28. Oktober 2006

In den letzten Tagen habe ich die Internetseite vom Umzugsunternehmen meines Vaters rundum erneuert und auf einen anderen Server umgezogen. Als segnifikanteste Neuerungen sind festzuhalten:

  • Umstellung auf ein neues XHTML-Framework in PHP (keine Frames mehr!)
  • Optimierungen für Suchmaschinen
  • Integration von Ajax für folgende Bereiche:
    • Kontaktformular
    • Empfehlungs-Formular
    • Online-Umzug-Funktion
  • Design überarbeitet
  • Einbindung von Google-Adsense und Layer-Ads
  • Reparatur und Erweiterung der Online-Umzug Funktion
    • Besucher können jetzt eine Kopie Ihrer Anfrage erhalten
    • weniger Code mehr Ajax
  • Überarbeitung der Inhalte

Nach allen Änderungen habe ich die Seite dann aus Kompatibilitätsgründen auf meinen DomainFactory-Server umgezogen und bei Strato, wo die Domain registriert ist, eine Weiterleitung eingerichtet.

Schöttle-Umzüge
Inh. Peter Schöttle
http://www.schoettleumzuege.de
Umzüge und Transporte in ganz Europa. Schnell! Sicher! Preiswert!


Neues Layout für Datenschleuder.eu

»  Erstellt in Sonstiges by Holger Woltersdorf, Freitag, 8. September 2006

Seit heute erscheint der kostenlose Up- und Downloadservice von datenschleuder.eu in neuem Gewand. Die Überarbeitung war dringend nötig, da das bisherige Design nur auf die Schnelle erstellt und eingebunden wurde. Das jetzige soll den Besucher mehr ansprechen und verspricht einen größeren Widererkennungswert. Wie auch das vorherige Layout, stammt auch dieses wieder aus meiner Feder und wurde nur leichten Anpassungen des befreundeten Eigentümers unterzogen.

Screenshot - datenschleuder.eu

Im übrigen wurde die Datenschleuder auch vor einiger Zeit im Katalog von kostenlos.de aufgenommen. Am kommenden Wochenende werde ich einige Bewertungen des Services in einschlägige Bewertungs-Plattformen schreiben, um das Projekt noch ein wenig zu pushen.

Projekt: datenschleuder.eu
Url zu Seite: http://www.datenschleuder.eu
Eigentümer: Markus Foitzik


Loco sucht einen neuen Basser

»  Erstellt in Sonstiges by Holger Woltersdorf, Donnerstag, 7. September 2006

Der Bassist von LOCO, Julius, aus Potsdam hat sich entschieden die Band zu verlassen, da das dunkle Business aber weitergehen muss, ist LOCO nun auf der Suche nach einem würdigen Nachfolger. Daher die Bitte an jeden Bassisten, der folgenden Kriterien erfüllt:

[..] “wichtig für uns wäre, dass er nicht erst gestern zum ersten mal so ein instrument in der hand gehalten hat, unbedingt einen 5-saitigen bass (a-stimmung) spielt und sich mit uns/ unserer musik identifizieren kann” [..]

soll sich bei den Jungs für ein Vorspielen melden. Hier die Kontaktdaten:

LOCO GbR
c/o Ivo Werner
PF 12633 Potsdam

http://www.loco-metal.com
info@loco-metal.com

Jungs, ich hoffe es geht dann bald weiter, ohne eure Musik bin ich nur ein halber Clown…


 
RSS-Feed - Alle Beiträge RSS-Feed - Kommentare

September 2010
M D M D F S S
« Okt    
 12345
6789101112
13141516171819
20212223242526
27282930