PHP 5.4 ist schon bei RC7, steht also sozusagen vor der Türe und schafft es wohl auch in das nächste Debian stable alias Wheezy. Wie auch schon bei 5.2->5.3 kommen einige nette und über Jahre in den PHP-RFC diskutierten… read more
SysCP bzw. dessen Nachfolger Froxlor kümmert sich hier auf diesem Server um das Erstellen diverser Konfigurationsdateien sowie um die Verwaltung der virtuellen User für E-Mail- und FTP-Zugänge.
Schon vor einiger Zeit habe… read more
Der 19. Januar 2038 3:14:07 Uhr ist ein besonderer Zeitpunkt. Dann sind nämlich genau 2147483647 Sekunden seit dem 1. Januar 1970 vergangen. PHPs date()-Funktion arbeitet genau auf dieser Grundlage - auch bekannt als der… read more
Hin und wieder führt man PHP-Skripte direkt auf der Kommandozeile (CLI) aus. Das hat den Vorteil, dass man nicht den Umweg über den Webserver gehen muss, wenn man ihn garnicht braucht. Außerdem lässt sich das Skript leicht… read more
Path traversal bzw. directory traversal ist eine Methode, um aus vorgesehenen Verzeichnissen auszubrechen. In Bezug auf PHP findet diese Sicherheitslücke Anwendung, da Dateien oftmals anhand des Querystrings eingebunden… read more
Ein Primary-Key identifiziert eindeutig ein Tupel (Zeile/Reihe/Row) in einer relationalen Datenbank. Im trivialen Fall ist das eine Integer-Spalte mit auto_increment - wenn wir von MySQL reden, wie so oft hier. Eine fortlaufende… read more
CSS-Sprites sind eine elegante Möglichkeit um GET-Requests zu minimieren und daruch den Seitenaufbau zu beschleunigen. Dabei werden viele kleine Symbole in einer großen Grafik zusammengefasst und via CSS immer nur der passende… read more
Die bereits erwähnte Methode über Content-Length funktioniert zwar etwas hakelig, ist aber in Webspace-Umgebungen oft die einzige Methode ein PHP-Skript im Hintergrund auszuführen.
Eine andere Methode (neben dem Cronjob)… read more
Wie wir alle wissen, werden Variablen in JavaScript nicht mit einem vorangestellten Dollarzeichen kenntlich gemacht. Insofern ist das Dollarzeichen für Javascript einfach nur das 36. Zeichen der ASCII-Tabelle. Und zudem ein… read more
Ist eine Webseite per https-Protokoll SSL-verschlüsselt aufrufbar, so müssen alle externen Objekte auf dieser Webseite ebenfalls über HTTPS geladen werden. Ist das nicht der Fall, gibt es im Internet-Explorer eine hässliche… read more
Hash-Bangs in URLs sind stark in Mode gekommen. Facebook, Twitter, DeviantART und viele weitere ganz oder teilweise auf Javascript/Ajax basierende Seiten benutzen es.
Alles was nach einer Raute in der URL kommt, ist der… read more
Die Versandkosten im Warenkorb anzuzeigen ist ein toller Service. So sieht man direkt im Warenkorb den exakten Gesamtbetrag und die Gäste müssen sich nicht extra registrieren um die richtigen Versandkosten angezeigt zu… read more
Wenn gleichzeitig mit einem Seitenaufruf eine rechen- oder zeitintensive Aufgabe ausgeführt werden soll, hat das den Nachteil, dass der Benutzer im Browser so lange einen Ladebalken sieht, bis die gesamte Rechenoperation… read more
Übrigens: Ein MySQL BIGINT ist 8 Byte lang. Unsigned lassen sich also Ganzzahlen von 0 bis 18446744073709551615 speichern. Eine MySQL-BIGINT-Spalte mit auto_increment läuft bei 1000 Inserts pro Sekunde erst nach über 500… read more
Wer eigene (v)Server betreibt kann Domains unabhängig vom Provider direkt bei einem Domainrobot registrieren. Das hat zum einen den Vorteil, dass man Handles (Kontaktdaten) und IP-Adressen selbstständig verwalten kann, zum… read more
Development oder Production - das ist hier die Frage. Bei der Webseiten-Entwicklung bietet es sich selbst bei kleinsten Projekten an, zunächst in einer lokalen Entwicklungsumgebung die Anwendung zu testen. Ist der Test erfolgreich… read more
Selbst bei kleineren Webprojekten hat man oft mehrere CSS-Dateien. Zumindest das CSS-Reset ist bei mir, zwecks Wiederverwendbarkeit, immer in einer separaten Datei. Eine weitere Unterteilung in typo.css, lists.css usw. macht… read more
Verwendet man in einem MySQL-Query die Option SQL_CALC_FOUND_ROWS im Zusammenspiel mit LIMIT, berechnet MySQL die Gesamtzahl der Datensätze unabhängig vom verwendeten Limit.
Beispiel: Will man Daten seitenweise darstellen… read more
Es könnte alles so einfach sein. Runde Ecken sind mit der CSS3-Eigenschaft "border-radius" leicht zu realisieren. Das funktioniert in allen modernen Browsers (Opera, Firefox, Chrome und Safari). Nicht aber im Internet-Explorer.
Um… read more
Die GROUP_CONCAT-Funktion von MySQL ist eine tolle Erweiterung zu GROUP BY. Insbesondere wenn man es mit one-to-many oder many-to-many Beziehungen zu tun hat. GROUP_CONCAT() ist seit der Version 4.1 Bestandteil von MySQL.
Beispiel:… read more
PDO ist eine PHP-Erweiterung, die einen konsistenten Zugriff auf Datenbanken ermöglicht. Seit PHP 5.1.0 ist PDO fester Bestandteil von PHP - also eine native (in C geschriebene) PHP-Extension. Dennoch lässt sich PDO mit PHP… read more
Folgendes Szenario: Ein Debian Lenny Server und zwei Router mit je einer Internetverbindung befinden sich im selben (lokalen) Netzwerk. Wir wollen beide Router (sprich Internetverbindungen) für verschiedene Anwendungen nutzen.
192.168.123.0… read more
Für inkrementelle Backups unter Debian Lenny kommt man an rdiff-backup wohl nicht vorbei. Es erstellt Rückwärts-Inkremente -- der aktuelle (neuste) Backup-Stand liegt also jederzeit als einfache Datei vor. Vorherige Backup-Stände… read more
Mit nur einem Zeichen lassen sich CSS-Eigenschaften gezielt für den Internet Explorer 6 und 7 schreiben:
So sieht das dann aus. Doch sind solche Anpassungen für bestimmte Browser in sparaten CSS-Dateien und per Conditional-Comment… read more
PHP ist schwach typisiert. Und das ist im Prinzip auch gut so! Dennoch passieren dadurch teilweise wirklich sonderbare Dinge:
Das ist einfach: Strings unterschiedlicher Länge können niemals gleich sein.
Aber:"2e3"… read more
AWStats analysiert Logfiles und erstellt nette Statistiken. So auch hier für diesen Blog. Um die schier unfassbare Menge an Visits auch nur im Ansatz zu begreifen, rödelt also jede Nacht AWStats durch die Apache-Logfiles.… read more
Domains gibt es überall. Meist direkt vom Server-Anbieter. Diese sind aber oft teurer als nötig und zudem ziemlich unflexibel zu verwalten. Wenn man mit dem Server zu einem anderen Anbieter umzieht, muss man alle Domains… read more
Mit Sieve können Serverseitig Filterregeln für E-Mails angelegt werden. So lassen sich z.B. Spam-eMails automatisch in einen SPAM-Ordner verschieben oder automatisch löschen.
Um eine Sieve-Regel zu erstellen, braucht man… read more
glTail ist eine in Ruby geschriebene OpenGL-Anwendung zur Visualisierung von Logfiles in Echtzeit. So sieht das aus:
Nett! Das funktioniert praktisch mit jeder Logdatei (Webserver, Mailserver usw.) dank SSH auch auf entfernten… read more