Archive for the ‘ Code ’ Category

Gerade hatte ich folgendes MySQL-Problem:

Ich wollte eine MySQL-Abfrage nach zwei Spalten gleichzeitig sortieren. Im konkreten Fall nach Datum und dann nach Anfangsbuchstaben des Titels. Es sollen also die aktuellsten Beiträge zuerst angezeigt werden, aber sobald zwei oder mehr Beiträge das gleiche Datum haben, sollen die Beiträge alphabetisch geordnet werden.

Mit folgendem MySQL Befehl kein Problem:

$sql = “SELECT * FROM `tabelle` ORDER BY `datum` DESC, `titel` ASC“;

Den entsprechenden Teil habe ich Fett markiert.

Wieder mal ein Codeschnippsel aus der Kategorie „Einfach wenn man es kennt“.

Für Webmaster und Betreiber von Foren ist es schon lange ein Dorn im Auge: Forenspam. Neben dem typischen Kommentarspam in Weblogs eine weitere nervige Angelegenheit.

Um den Spammern ein wenig Sand ins Getriebe zu streuen, habe ich mich heute entschlossen in meinem Modellbau Forum bei ausgehenden Links die NoFollow-Keule zu schwingen. Dort treiben sich immer ganz findige möchtegern Modellbauer rum, die denken sie können das Forum für Ihren Werbemüll missbrauchen. Tpischerweise schreiben diese Mitglieder nur einen einzigen Beitrag, haben keine Ahnung von Modellbau und/oder verlinken auf einen Modellbau-Shop oder eine sonstige Seite ohne Nutzen.

Das NoFollow dürfte den normalen Modellbauer, der sich im Forum herumtreibt, wenig stören. Vielleicht hält es aber den einen oder anderen Spammer ab, der auf einen schnellen Link aus ist. Die Hoffung stirbt zuletzt.

Um das NoFollow in alle externen Links des Modellbau Forums reinzubasteln, war ich eigentlich auf der Suche nach einem PlugIn für das Burning Board von Woltlab (WBB). Habe aber leider nichts gefunden.

Also musste ich selbst nach einer einfachen Lösung suchen und habe diese gefunden.

Man muss einfach die php-Klasse erweitern, die für den URL-BB-Code verantwortlich ist:

URLBBCode.class.php

. Diese findet sich im Ordner:

\wcf\lib\data\message\bbcode

In der PHP-Datei zu der Zeile mit folgendem Inhalt navigieren (bei mir Zeile 48):

return ‘<a href=”‘.$url.’”‘.($external ? ‘ rel=” class=”externalURL”‘ : ”).’>’.$content.’</a>’;

und dann das rel=”nofollow” hinzufügen:

return ‘<a href=”‘.$url.’”‘.($external ? ‘ rel=”nofollow” class=”externalURL”‘ : ”).’>’.$content.’</a>’;

Speichern und wieder hochladen. Fertig.

Sollte die Klasse in einem Update aktualisiert werden, muss man diese Schritte wahrscheinlich wieder durchführen.

Und wie immer der Hinweis: Wer vor der Änderung keine Sicherheitskopie anfertigt, ist selbst schuld, wenn es schief geht.

Weil ich gerade per eMail gefragt wurde, wie man Variablen aus einem Formular in PHP nutzen kann, hier ein kleiner Beitrag dazu.

Generell muss das Formular so aufgebaut sein, dass es die eingegebenen Fomulardaten an ein PHP-Skript übergibt. Dort werden stehen diese dann als Array zur Verfügung.

Das ganze sieht dann ungefähr so aus:

<form action=”php-datei.php” method=”get”></form>

mit GET oder als POST-Formular:

<form action=”php-Datei.php” method=”post”></form>

In der Ziel-PHP-Datei “php-datei-php” kann man dann auf mit folgenden Variablen auf die Inhalte des Fomulars zugreifen:

  • $_GET["Variablenname"] – Gibt die Variablen zurück, die per GET übergeben wurden.
  • $_POST["Variablenname"] – Gibt die Variablen zurück, die per POST übergeben wurden.
  • $_REQUEST["Variablenname"] – Gibt die Variablen zurück, die per GET und POST übergeben wurden.
  • print_r($_GET); oder print_r($_POST); – geben den kompletten Array mit allen Formularen aus.

Der Variablenname muss natürlich dem Elementnamen, des Formulars entsprechen.

Für die meisten Webmaster ist das natürlich nichts neues, aber vielleicht verhilft es ein paar anderen zu einem Einstieg in PHP. Wenn ich mich nämlich recht entsinne, war das, vor langer Zeit, ebenfalls mein Einstieg in PHP. Damals wollte ich ein kleines Kontaktformular programmieren, welches die Formularfelder: eMail, Betreff und Text an meine eMailadresse schickt.

Wie der Titel schon sagt hier ein kleiner Code-Schnipsel für eine Weiterleitung alle Anfragen von http://domain.tld nach http://www.domain.tld mit der .htaccess:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]

Diesen Code-Schnipsel verwende ich auf allen meinen Webprojekten, deshalb ist er auch dynamisch aufgebaut, es ist also kein Domainname fest eingebaut. Vielleicht hilft es dem einen oder anderen weiter unnötigen Duplicate Content auf den eigenen Seiten zu vermeiden.

Crontab einrichten

September 18, 2008 | No Comments | Code, Webmaster

Alle, die sich wie ich, als absoluten Linux-Noob bezeichnen und trotzdem einen Cronjob mittels crontab einrichten wollen, soll dieser Beitrag helfen.

Auf den meisten Linux-Servern werden Cronjobs mit Hilfe des crontab Befehls eingerichtet. Dazu sollte man sich mit einem hinreichend berechtigten User auf dem Linux-System anmelden. Um einen Überblick über die aktuell eingerichteten Cronjobs zu bekommen, einfach crontab -l eintippen und die aktuelle crontab Liste wird angezeigt.

  • crontab -l (zeigt die aktuellen cronjobs an)
  • crontab -e (bearbeitet die crontab Liste)
  • crontab -r (enfernt die crontab Liste)

Einzelne Crons werden nach folgendem Schema aufgebaut:
Minute Stunde Tag Monat Wochentag User Befehl

Hier einige Beispiele:

# Inhalt im Verzeichnis /logs jede Minute löschen
* * * * * root rm -r /logs/*

# Jeden Tag um 12 Uhr mail_poll ausführen
0 12 * * * root /usr/local/bin/mail_poll

Eigentlich relativ einfach, wie so immer mit Linux.