Die kleinste Blog Software der Welt

Veröffentlicht am 11. Februar 2010 um 22:49 von Fabian Martin Permalink

Der PHP Gangsta veranstaltet zur Zeit eine Aktion, in der er die kleinste Blog Software der Welt sucht. Da das natürlich ein Ansporn ist, habe ich mich mal daran gemacht und meine eigenen Versionen geschrieben.

Alle Versionen gehen davon aus, das die Datei ‘f’ existiert, ansonsten bekommt man eine Warnung. Das Passwort wird in allen Versionen per GET übermittelt.

Per POST ohne Fehler (error_reporting=E_ALL), 171 Byte

<?extract($_REQUEST);$c='<p>';$n='><input name';if(@$p==@a){echo"<form method=post$n=t$n=z$n type=submit>";if(@$t)fwrite(@fopen(f,a),$c.$t.$c.$z.$c.@date(c));}include(f);

Per POST, Notices sind in der php.ini deaktiviert, 166 Byte

<?extract($_REQUEST);$c='<p>';$n='><input name';if($p==a){echo"<form method=post$n=t$n=z$n type=submit>";if($t)fwrite(fopen(f,a),$c.$t.$c.$z.$c.date(c));}include(f);

Per GET ohne Fehler (error_reporting=E_ALL), 167 Byte

<?extract($_GET);$c='<p>';$n='><input name';if(@$p==@a){echo"<form$n=t$n=z$n=p value=a$n type=submit>";if(@$t)fwrite(@fopen(f,a),$c.$t.$c.$z.$c.@date(c));}include(f);

Per GET, Notices sind in der php.ini deaktiviert, 162 Byte

<?extract($_GET);$c='<p>';$n='><input name';if($p==a){echo"<form$n=t$n=z$n=p value=a$n type=submit>";if($t)fwrite(fopen(f,a),$c.$t.$c.$z.$c.date(c));}include(f);

Per GET, Notices sind in der php.ini deaktiviert, register_globals=on, 147 Byte

<?$c='<p>';$n='><input name';if($p==a){echo"<form$n=t$n=z$n=p value=a$n type=submit>";if($t)fwrite(fopen(f,a),$c.$t.$c.$z.$c.date(c));}include(f);

Meine kleinste Version ist aktuell 162 Byte (mit register_globals, 147 Byte). Mal sehen ob ich die Entwürfe in den nächsten Tagen noch etwas kleiner bekomme.

Getestet wurde mit einem Zend Server unter Windows 7. Als Browser dienten Firefox 3.5 und Google Chrome 4.

PHP: Getter und Setter mit PDT generieren

Veröffentlicht am 5. Februar 2010 um 12:40 von Fabian Martin Permalink

Eine Möglichkeit, automatisch Getter und Setter mit PDT zu generieren, habe ich noch nicht gefunden. Mit dem unten genannten Code, könnt Ihr das Erstellen von Gettern und Settern mit PDT aber beschleunigen.

Erstellt hierzu ein neues Code Template (Window -> Preferences -> PHP -> Editor -> Templates) und gebt ihm den Namen ‘get’. In das Feld Pattern, fügt ihr den unten gezeigten Code ein.

Um nun Getter und Setter zu generieren, müsst ihr nur noch ‘get’ in euren Editor tippen und die Tastenkombination STRG+Leertaste drücken. Der Code sollte erscheinen und der Cursor in der ersten Variable blinken. Mit Tab könnt ihr zwischen den Werten springen.

/**
* Legt ${field} fest
*
* @param ${type} ${dollar}${field}
* @return void
*/
public function set${funcName}(${dollar}${field})
{
	${dollar}this->${field} = ${dollar}${field};
}

/**
* Gibt ${field} zurück
*
* @return ${type}
*/
public function get${funcName}()
{
	return ${dollar}this->${field};
}

Das ganze geht natürlich auch mit statischen Werten:

/**
* Legt ${field} fest
*
* @param ${type} ${dollar}${field}
* @return void
*/
public static function set${funcName}(${dollar}${field})
{
	self::${dollar}${field} = ${dollar}${field};
}

/**
* Gibt ${field} zurück
*
* @return ${type}
*/
public static function get${funcName}()
{
	return self::${dollar}${field};
}

PHP: Smarty + Eclipse PDT

Veröffentlicht am 29. Januar 2010 um 22:40 von Fabian Martin Permalink

Für alle die Eclipse PDT nutzen, und den Smarty Support bis dato schmerzlich vermisst haben, gibt es eine gute Nachricht. Unter http://code.google.com/p/smartypdt/ ist eine neue Version von SmartyPDT erschienen, welches nun auch mit aktuellen PDT und Eclipse Versionen kompatibel ist.

Die Installation ist spielend einfach:

  • Ladet euch das ZIP Archiv herunter
  • Öffnet Eclipse und wechselt in das Menu Help -> Install New Software
  • Geht auf Add… und gebt in das obere Feld SmartyPDT ein
  • Im gleichen Fenster betätigt Ihr den Archive… Button und wählt die heruntergeladene ZIP Datei aus

  • Bestätigt das ganze mit OK
  • Im unteren Fenster sollte das Smarty Feature erscheinen, wird es bei euch nicht angezeigt, entfernt den Haken bei Group items by category
  • Wählt jetzt das Feature aus und bestätigt es mit Next, der Rest läuft nun wie eine ganz normale Installation ab.

jQuery: Prüfen ob ein Objekt versteckt ist

Veröffentlicht am 27. Januar 2010 um 00:23 von Fabian Martin Permalink
if($("#myDivID").is(":hidden"))
{
    // Element ist versteckt
}

ASP.NET: Mails über SMTP mit SMTP Auth versenden

Veröffentlicht am 26. Januar 2010 um 08:28 von Fabian Martin Permalink

Mit dem folgenden Code Schnipsel lassen sich E-Mails über einen SMTP Server versenden, der eine Anmeldung mittels SMTP Auth erwartet.

MailMessage Message = new MailMessage();

// Benutzername u. Passwort
NetworkCredential UserNamePass = new NetworkCredential("username@example.org", "password");

// SMTP Client erstellen
SmtpClient Client = new SmtpClient()
{
	DeliveryMethod = SmtpDeliveryMethod.Network,
	Host = "mail.example.org",
	UseDefaultCredentials = false,
	Credentials = UserNamePass
};

// Mail versenden
Client.Send(Message);

Das MailMessage Objekt muss natürlich noch mit den wichtigsten Daten (Empfänger, Betreff, Nachricht etc.) gefüllt werden.