ERM Designer für den Browser

Wer Entity-Relationship-Modelle bzw. die entsprechenden Diagramme (ERD) erstellen möchte, der kann hierfür Software wie die freie MySQLWorkbench nutzen. Für das plattformübergreifende Erzeugen solcher Diagramme kann man allerdings auch die freie Webapplikation wwwsqldesigner nutzen.

Der ERD-Designer in Aktion

Der ERD-Designer in Aktion

Auf der Webseite des Autors gibt es eine Demo zum Ausprobieren. Die in PHP und Javascript geschriebene Software steht dabei unter einer BSD-Lizenz und ist somit freie Software. Bei der Installation muss das entsprechende Archiv nur auf dem Webserver entpackt werden und kann sofort genutzt werden. Nur wer die Möglichkeiten der serverseitigen Speicherung nutzen möchte, muss einige Parameter konfigurieren.

PHP und date.timezone

Wenn man auf seinem Server in den zu PHP gehörenden Logdateien die Meldung:

PHP message: PHP Warning:  date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone.

findet, sollte man die Variable „date.timezone“ in der „php.ini“ konfigurieren. Für Deutschland würde die Einstellung dabei wie folgt aussehen:

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Europe/Berlin

Nachdem der PHP-Service neugestartet wurde, gehören diese Warnungen der Vergangenheit an.

PHP JSON unter Ubuntu 13.10

Seit der neuen Ubuntu-Version Saucy Salamander (13.10) befindet sich die JSON Unterstützung für PHP nicht mehr im Standard-PHP-Paket. Aus diesem Grunde muss das ganze mittels:

apt-get install php5-json

nachinstalliert werden. Nach einem Neustart des PHP-Service (in diesem Fall der FastCGI Variante):

service php-fpm restart

kann die PHP JSON Unterstützung unter Ubuntu 13.10 genutzt werden.

Mail aus einer Software heraus versenden

Manchmal möchte aus einer Desktopanwendung heraus eine Mail verschicken. Das ist insofern problematisch, da man die Zugangsdaten für einen Mailaccount nicht in einer Anwendung hinterlegen sollte. Aus Webanwendungen heraus ist das Senden von Mails dagegen eine einfache Sache. Also was liegt näher als diesen Vorteil für das Senden von Mails aus Desktopanwendungen heraus zu nutzen.

<?php
    $reciever=$_POST["reciever"];
    $allowedRecieverDomain="example.org";
    $subject=$_POST["subject"];
    $text=$_POST["message"];

    //Sender
    $senderName="Mailer";
    $sender="";

    //Additional challenge
    $challenge="abc123";
    if($challenge!=$_POST["challenge"]) return;

    //Check reciever
    $atCount=substr_count($reciever, "@");
    if($atCount>1) return;

    if(!(strpos($reciever, "@" . $allowedRecieverDomain)===FALSE))
    {
        mail($reciever, $subject . " - (" . date("d.m.y - H:m:s") . ")", $text, "From: $senderName <$sender>");
    }
?>

Ein kleines PHP Skript mit dem Namen „mailer.php“ sorgt dafür das die Mail bzw. der Text der Mail in Empfang genommen wird. Anschließend wird nachgeschaut ob die Mail an einen validen Sender adressiert ist. In diesem Beispiel werden nur Mails an @example.org weitergeleitet. Schließlich möchte man keine Spamschleuder betreiben. Nun müssen die Parameter in der Anwendung noch per POST-Request übergeben werden. Unter C# könnte das ganze so aussehen:

System.Net.ServicePointManager.Expect100Continue=false;

string url="http://example.org/mailer.php";

using(var wb=new WebClient())
{
    var data=new NameValueCollection();
    data["sendername"]="Mailer";
    data["sender"]="";
    data["reciever"]="";
    data["subject"]="Mail from Application";
    data["message"]="Message";

    var response=wb.UploadValues(url, "POST", data);
}

Der Quellcode ist dabei auf GitHub zu finden und steht unter der AGPL.

Mails per SMTP unter WordPress versenden

Unter Umständen kann es vorkommen, das man sein WordPress auf einem Server betreibt, welcher keine PHP „mail()“ Funktion unterstützt. In diesem Fall sollten die Mails per SMTP versendet werden. Möglich wird dies mit dem Plugin „Easy WP SMTP„. Damit werden die Mails nicht mehr über die PHP-Funktion, sondern über einen SMTP Account versendet.

Die Einstellungen des Plugins Easy WP SMTP

Die Einstellungen des Plugins Easy WP SMTP

Bei der Konfiguration des Plugins werden SSL und TLS unterstützt, so das hier die Zugangsdaten nicht im Klartext durch das Netz gesendet werden.