preload
Aug 05

Ein Datum kann, abhängig von der Maske, in der es angegeben werden muss, richtig sein, also bspw. 11.11.1998 oder 2004-04-05. Ein korrekt formatiertes Datum muss aber nicht zwangsweise auch existieren, wie bspw. 2009-02-31, also der 31. Februar 2009. Hierfür kann die PHP-Funktion checkdate($iMonth, $iDay, $iYear) verwendet werden, die ein gregorianisches Datum auf Gültigkeit prüft. Bevor die Funktion aufgerufen werden kann, muss die Datums-Zeichenkette in ihre einzelnen Teile zerlegt werden, also bspw. wie folgt:

<?php
  $iYear = intval(...);
  $iMonth = intval(...);
  $iDay = intval(...);
?>

Nun lässt sich mit checkdate einfach prüfen, ob das Datum wirklich gültig ist:

<?php
  $bDateIsValid = checkdate($iMonth, $iDay, $iYear);
?>

Zu beachten ist, dass checkdate laut Definition Integerwerte erwartet.

Jul 08

Häufig werden für Buttons, die einen Hintergrund haben (also ein Bild) und sich beim MouseOver ändern sollen, img-Tags verwendet. Um Beim Klick eine Aktion auszuführen wird das onclick-Ereignis ergänzt. Der Text des Buttons steht dabei in den Bildern. Doch das geht auch anders…

Weiterlesen

Jul 07

Ein Link, bei dem im onclick-Event ein Javascript-Aufruf erfolgt, soll beim Klick üblicherweise keine andere Seite aufgerufen werden. Das sieht bspw. wie folgt aus:

<a href="javascript:void(0);" onclick="alert('Hallo');">Hallo</a>

Damit der IE6 nicht einfach die aktuelle Seite nochmals aufruft, was in vielen Browsern das Standardvorgehen bei leerem href-Attribut ist (href=""), muss im onclick-Attribut false zurückgegeben werden. Die Version, die in allen Browsern funktioniert, lautet also:

<a href="javascript:void(0);" onclick="alert('Hallo');return false;">Hallo</a>

Die schönste Möglichkeit ist es, die Anweisung in das href-Attribut zu stecken und auf das onclick-Event zu verzichten. Der Trick liegt darin, trotzdem immer void(0); am Ende des Aufrufs anzufügen, also bspw. wie folgt:

<a href="javascript:alert('Hallo');void(0);">Hallo</a>

Jul 06

Der direkte Zugriff auf document.getElementById("elementID").value funktioniert in älteren Versionen des Internet Explorers nicht. Doch das ist keineswegs der einzige Fallstrick. In einem Fall half nichts - der IE wollte und wollte nicht auf das value-Attribut zugreifen - weder direkt noch über die Kombination von options- und selectedIndex-Attribut. Die Lösung - wie so oft - ist genauso simpel wie unschön, jedoch keineswegs naheliegend:

Ist im head-Teil des HTML-Dokumentes - unabhängig vom Dokument-Typ - ein Meta-Tag für das Land definiert, also bspw. <meta name="country" content="DE" />, so funktioniert im IE der Zugriff auf das value-Attribut von select-Elementen schlicht nicht mehr. Nach dem Weglassen dieses Meta-Tags funktioniert wieder alles bestens und zwar auf beide Arten:

var obj = document.getElementById("elementID");
var val = obj.value;

und

var obj = document.getElementById("elementID");
var val = obj.options[obj.selectedIndex].value

Jun 19

Die neue Web2Print-Lösung der UST GmbH wurde bei der WALTER Medien GmbH installiert. Mit diesem System, das für den Enduser ohne PlugIns wie Flash, etc. auskommt, können Werbedrucke auf Kalendern online gestaltet werden. Dazu stehen im Hintergrund vielfältige Vorlagen zur Verfügung, die dann individuell gefüllt werden. Die Anzeige des Ergebnisses wird durch Ajax-Requests aktualisiert, wobei die Umwandlung auf dem Server durch die PDFLib erfolgt und somit schon in der Voransicht immer eine 100%-ig korrekte Darstellung zum Druckergebniss verfügbar ist. Nach dem Absenden der Bestellung wandert das Druck-PDF direkt in den Workflow der Druckerei.

Das System ist unter kalender.walter.de zu finden.

Mai 27

Gerade wenn eine Website neu ins Netz kommt, taucht immer wieder die Frage “Auf welcher Position steht meine Seite bei Google gerade?” auf. Solange sie unter den begehrten ersten zehn Plätzen zu finden ist, ist das natürlich kein Hexenwerk, aber bei nicht so guten Ergebnissen wird die händische Ermittlung schon aufwändiger. Aber das kann schließlich genauso gut ein kleines PHP-Skript übernehmen. Dazu dient die kleine Klasse, die in diesem Skript zu finden ist.

Mai 22

Grid-Design

Design   von Thomas Sommerfeld Kommentieren »

Im Printbereich wird schon seit langer Zeit ein Rasterlayout verwendet, Zeitungen haben eine klare Unterteilung in Spalten und horizontale Blöcke. Im Webbereich wird zunehmend auch ein solches Basislayout eingesetzt. Die “normale” Unterteilung in Kopfbereich, 1 - 3 Spalten im Mittelteil und einen Fußbereich ist ja schon absoluter Standard. Immer mehr werden in diesen Bereichen auch noch einzelne Blöcke platziert, was dann eben zu einem Grid-Layout führt.

Weiterlesen

Mai 18

Wir alle freuen uns ja regelmäßig an den liebgewonnenen Eigenheiten der verschiedenen Browser. Damit die Auftraggeber mal sehen, wofür die viele Zeit immer wieder benötigt wird, gibt diese Grafik einen schönen Überblick. Vielen Dank an Alan Foreman für diese klare Auszeichnung.

Time breakdown of modern web design

Mai 13

Mailadresse prüfen

Mail   von Thomas Sommerfeld Kommentieren »

Ein typisches Problem bei eMail-Adressen ist die zuverlässige Validierung. Mit Hilfe der CheckMail-Klasse wird einem dies weitestgehend abgenommen. Es erfolgt eine dreistufige Prüfung: Zuerst wird die Adresse anhand eines regulären Ausdrucks auf Gültigkeit geprüft, dann läßt sich ein Array mit zulässigen Empfänger-Hosts definieren und zuletzt erfolgt noch eine Anfrage an den zuständigen Mailhost. Damit läßt sich schon ein Großteil der fehlerhaften Mailadressen eliminieren bzw. bei der Eingabe schon zurückweisen. Die Klasse ist zu finden unter http://www.phpclasses.org/browse/package/1519.html

Mai 12

Nachdem wir viele unseren Seiten mit PHP aufbereiten und auch einzelne Anwendungen damit realisiert haben, möchten wir an dieser Stelle immer wieder mal neue Erkenntnisse dazu online stellen.

Über Kommentare und konstruktive Kritik freuen wir uns immer.