PHP Blogger

Startseite Schreib mir ne Mail! RSS Abo Webnews

Archiv für Oktober 2007

Die Mailq neu anschubsen

Aus der Reihe “Mailserver-Quick-Hacks”: Wie schmeisst man eine Mailq manuell wieder an? Oder mit gutem Deutsch formuliert: Die mailq manuell anstossen…

postsuper -r ALL

Wer der mailq bei einer bestimmten Mail Beine machen möchte, kann statt ALL auch die Mail-ID verwenden. Einen Moment warten - und los gehts!


phpMyAdmin Bugfixrelease 2.11.2

Die Jungs sind echt aktiv. Am Samstag wurde mal wieder ein Bugfixrelease veröffentlich. Es dient nur zu Fehlerbehebung, mehr Informationen findet Ihr im phpMyAdmin Changelog.

Im Downloadcenter findet man wie immer verschiedene Pakete, mehrsprachig oder englisch. Das Update ist nicht zwingend erforderlich, da keine Sicherheitslöcher gefixt wurde.

Zur Applikation: phpMyAdmin ist die favorisierte Lösung für das managen von MySQL Servern über eine Weboberfläche. Das Projekt wurde 1997 initiiert und in über 50 Sprachen übersetzt, zudem basiert es auf der GPL und ist daher quelltextoffen.


Abstraktes HTML mit HAML

Haml LogoNein. Es ist kein Hase, es ist ein Haml. Gerade über dieses erstaunliche Projekt gestolpert, muss ich es auch gleich mal bloggen. Was ist Haml? Und was macht es?

Haml ist eine Abstraktions-Auszeichnungssprache für Webfrontends, original entworfen für Ruby. Es erinnert mich an einen Mix aus CSS, Yaml und TextilePHP… Mit anderen Worten: Man beschreibt anhand strukturierter Ausdrücke den Aufbau einer HTML-Datei:

%h2 Überschrift
  %ul
    %li Eintrag 1
    %li Eintrag 2

wird zu:

<h2>Überschrift</h2>
<ul>
  <li>Eintrag 1</li>
  <li>Eintrag 2</li>
</ul>

Im Haml-Labor kann man ein bisschen mit der Syntax rumspielen. Aber Haml kann noch ein bisschen mehr. Auch logische Verzweigungen und Schleifen sind möglich.

Den kompletten Artikel lesen »


Über die große Kunst des Kommentierens

Es ist wahrscheinlich der tausendste Artikel eines Programmierer Blogs übers Kommentieren. Nicht wird so oft angeprangert und trotzdem scheint es nicht besser zu werden. Jetzt kippe ich mein Fett auch noch ins Feuer und hoffe das Beste ;)

Was sollte man beim Kommentieren unbedingt beachten? Wann ist ein Kommentar gut, wann verbesserungswürdig und wann überflüssig?

  1. In den Kopfbereich jeder Datei gehört ein Kommentar, damit man weiß, was der Zweck dieser Datei ist.
  2. Vor jede Klassendefinition sollte man einen Kommentar anbringen, der den Zweck der Klasse beschreibt. Wenn eine Datei eine einzige Klassendefinition beinhaltet, kann man Punkt 1 vergessen :)
  3. Das gleiche gilt für Funktionen. Kurz den Zweck der Funktion beschreiben, dann die Parameter und eventuell mögliche Werte listen.
  4. Dito für Membervariablen.
  5. Inline-Kommentare (direkt im Funktionscode) sollten nicht erklären, was passiert, sondern warum. Wenn man beschreiben muss, was man gerade macht, ist der Code selbst nicht aussagekräftig.
  6. Inline-Kommentare sollten auf der Höhe des Codes stehen. Wenn es eine super kurze Codezeile ist, dann gerne auch danach.
  7. Kommentare müssen immer im sichtbaren Bereich des Editors bleiben, damit man sie beim durchscrollen nicht übersieht.
  8. Bei mehrzeiligen Kommentaren darauf achten, dass jede neue Kommentarzeile auf der gleichen Höhe beginnt.
  9. Entweder für die Kommentare ein definiertes Format im Sinne von JavaDoc bzw. phpDocumentor verwenden oder einen eigenen Guide entwickeln, der lückenlos dokumentiert ist.
  10. In den Kommentaren im Kopfbereich weitgreifende Änderungen im Sinne eines Changelogs festhalten. Hierzu Datum, Änderung und Name des Autors nennen. Unwichtige Änderungen gehören hier nicht rein, die müssen in einem externen Trackingsystem notiert werden.
  11. Wenn Änderungen im Quellcode stattfinden - auf jeden Fall überprüfen, ob die Kommentare noch passen. Besonders gerne werden dann die Kommentare im Kopfbereich vergessen!

Den kompletten Artikel lesen »


Bloggen für nur für Blogger?

Diese Woche habe ich in irgendeinem Blog gelesen, das man eigentlich nur für Blogger bloggt. Leider hab ich keine Ahnung mehr, wers geschrieben hat, also gibts keinen Backlink - vielleicht weiß es ja einer meiner Leser?

Ja, es geht darum das die größte Zielgruppe der Blogger die Blogger sind. Der Rest trudelt über Suchmaschinen ein, liest einen Beitrag und verschwindet wieder. In der Regel läuft es so: Man schreibt einen Beitrag, hat viele Ideen, schreibt den nächsten - irgendwann ist man an dem Punkt angekommen wos langweilig wird. Dann stellt man sich die Frage: Und was blogge ich heute?

Dann werden die Blogkommentare immer kürzer. Oder man schreibt nur noch via-Beiträge. Selbstgenerierter Inhalt ist bei Blogs wirklich selten. Irgendwann entscheidet man sich, dass bloggen sein zu lassen, oder nur noch stichwortartig sein langweiliges Leben zu bloggen (Moderne Blogger nennen das twittern)…

Das machen leider auch große Blogs - Der Schockwellenreiter z.B. ist für mich der König der Old-School-Twitterer (Wobei es hier schon fast an Kunst grenzt). Die Mehrzahl bloggt lieber 20x am Tag einen Satz, als 1 mal am Tag einen vernünftigen Artikel.

Fantastisch! Ich wollte schon immer mal wissen, wenn jemand grad auf dem Klo sitzt, eine riesen Wurst produziert und abgewogen hat. Es ist für alle Welt auch super wichtig, das man erfährt, wenn ein Mr X die Mrs Y trifft, die er schon lang nicht mehr gesehen hat. Naja, Tagebuch zum mitlesen halt.

Den kompletten Artikel lesen »


Sicherheitsrelease für phpMyAdmin 2.11.1.2

Mal wieder ein Sicherheitsrelease für phpMyAdmin. Im beliebten Datenbankmanager wurde wieder eine XSS Schwachstelle gefixt. Es betraf die Datei server_status.php die über von PHP bereitgestellte Variablen in $_SERVER (PHP_SELF, PATH_INFO und REQUEST_URI) angegriffen werden konnten.

Mehr Infos hier: http://www.phpmyadmin.net/home_page/security.php?issue=PMASA-2007-6

Ein Update für ältere Versionen ist empfohlen.


Eure Meinung: Sichtbarkeit von Variablen

So, nachdem ich einige Wochen unterwegs war, Timi mit dem Blog alleine gelassen habe und mal eine Runde Abstand vom programmieren hatte, komme ich zurück, aktualisiere meine PHP Installation auf die neueste Version, starte mein Projekt und: BUMM, nichts geht mehr. Meine Sessions scheinen Variablen zu verlieren, Objekte sind nicht mehr komplett, bzw. leer. Was ist da los? Habe ich mein Projekt mit einem Riesenbug stehen lassen und bin in Urlaub gefahren?

Also gut, Suche beginnt.

Session scheint ok zu sein. Nur die Objekte sind irgendwie verstümmelt. Aber der Reihe nach. Ich programmiere seit einer Weile in PHP5 und versuche auch eine sinnvolle Klassenstruktur zu wahren. Jedenfalls habe ich sowas wie die Mutter aller Objekte, von denen sich sämtliche Klassen ableiten. In diesem Objekt habe ich eine Funktion __sleep, was eine Magic Function ist, die beim schreiben in die Session von PHP aufgerufen wird, um im Objekt aufzuräumen und meine CFG Referenz, in der unter anderem DB Connection etc. liegt nicht zu serialisieren.

public function __sleep()
{
  $vars = array_keys(get_object_vars($this));
  $cfg = array_search('cfg', $vars);
  unset($vars[$cfg]);
  return $vars;
}

Nach einigen Tests fand ich dann, dass die Funktion get_object_vars nicht mehr wie vorher alle Variablen des Objektes liefert, sondern nur noch alles was public deklariert ist. Dies wird aber nicht weiter erwähnt im Changelog, genauso wenig in der Doku auf der Funktionsseite. Jedenfalls ist mein Verständnis von Objekten dahingehend, dass ich als ein Kindobjekt diese __sleep Funktion aufrufe, dass ich gefälligst alle Variablen bekommen soll, die dieses Objekt hat und nicht nur die, die vom Scope des Parent, also meiner abstrakten Klasse sichtbaren, bekomme.

Jedenfalls habe ich schön in der Bug Datenbank recherchiert, bevor ich diesen Code verschickt habe.

Nun meine Frage: Was ist für euch das erwartete Verhalten von dem verlinkten Code? Habe ich das falsch verstanden und werde jetzt brav meine ganzen Variablen alle nur als protected deklarieren, damit ich eine generelle __sleep Funktion haben kann, bzw. per Reflection meine gesetzen Klassenvariablen bekommen kann?


Die ältesten Browser der Welt

Via Zustandsforschung. Frei nach dem Motto “Neuer heisst nicht immer besser” schwelgt die Zustandsforschung in alten Heimatgefühlen. Software, die früher noch Kuschelfaktor hatte und heute nur noch ein schwacher Abklatsch ist.

Erinnert sich noch jemand an ein werbefreies ICQ? Den aller aller aller aller ersten Internet Explorer? AOL ohne flippige Icons und nervige Animationen? Die schlanke Musicmatch Jukebox? Den Oldstyle Winamp? *hach* Was waren das noch für Zeiten…

Also ab zu http://old-versions.net/ und http://oldversion.com/ - da kommt richtig Retrofeeling auf. Nur wie die Zustandsforschung treffend anmerkte: Man läd sich auch schnell die altbekannten Sicherheitslücken runter. *zwinker* Aber einen Blick ist es alle mal wert.


phpMyAdmin: Sicherheits Update 2.11.1.2

Und wieder mal ein Sicherheitsupdate für phpMyAdmin. Auf der einen Seite beruhigend, das etwas passiert - auf der anderen Seite kommt man mit dem updaten nicht mehr hinterher ;) Auch diesmal gings um XSS Angriffe in Verbindung mit von PHP generierten Variablen:

http://domain/phpMyAdmin/server_status.php/”><script>alert(’xss’)</script>

Fantastisch, oder? Böse Welt.


Automatisierte SEO Optimierungstipps

Via Markus. Wer seine Website mal SEO technisch überprüfen lassen möchte, ist sicherlich mit dem Website Grader gut beraten. Das Tool analysiert verschiedene Onsite-Faktoren wie Keywords, Description, Heading-Tags und Link-Titles genauso wie Offsite-Faktoren (Pagerank, Alexarank, Technoratilinks, Fremdlinks usw.).

Daraus wird ein Score gebaut der hilft, die Seite einzuschätzen. Zusätzlich werden an der einen oder anderen Stelle, wo es etwas zu bemängeln gibt, Tipps und Tricks für die Verbesserung angezeigt.

Aufpassen sollte man aber trotzdem, der Google-Pagerank ist von Land zu Land unterschiedlich. Sucht man den PHP Blogger mit dem Suchbegriff “PHP Blog” auf der deutschen Googleseite, erscheint er auf der 1. Seite - im amerikanischen Google taucht der PHP Blogger auf den ersten 100 Seiten nicht auf ;) Zusätzlich kommen noch andere Faktoren dazwischen, die eine zuverlässige Bewertung verhindern.

Alles in Allem jedoch ein nützliches Tool, durch das man einen prima Eindruck von der Qualität seiner Seite bekommt. Wer seinen Wordpress Blog SEO technisch etwas tunen möchte, ist mit dem Plugin wpSeo von Sergej gut beraten.


Ältere Artikel »