Update: htpasswd-Generator nutzt jetzt SHA1

Heute ist mir aufgefallen, dass der htpasswd-Generator einen Bug hatte. Das habe ich gleich mal behoben. Außerdem habe ich auf SHA1 als Hash-Algorithmus umgestellt.

Den Code für den htpasswd-Generator kann man hier sehen. Es wird natürlich nichts geloggt, weder Usernamen noch Passwörter. weiterlesen

Javascript: Einfache AJAX-Demo

Das ist eine einfache AJAX Demonstration. In das untenstehende Suchfeld können Eingaben gemacht werden. Von einem eigens dafür geschriebenen PHP-Skript wird dann das übergebene POST-Array zurückgegeben und vom Request-Skript in den Ergebnis-Div geschrieben.

Geben Sie einfach etwas in das Eingabefeld ein und im Ergebnis-Div erscheint die Rückmeldung.

Ergebnis:

Code zum Beispiel

Der Quellcode zum Beispiel sieht recht komplex aus, ist aber relativ einfach verständlich. Im HTML gibt es ein Input-Feld welches mittels des Attributs onkeyup=“searchFor(this.value)“ einen Eventhandler zugewiesen bekommt. Die Javascript-Funktion sieht folgendermaßen aus.

function searchFor(suchbegriff){ var xmlHttp = null; // unser Request-Objekt // Mozilla, Opera, Safari sowie Internet Explorer 7 if (typeof XMLHttpRequest != 'undefined') { xmlHttp = new XMLHttpRequest(); } if (!xmlHttp) { // Internet Explorer 6 und älter try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { xmlHttp = null; } } } // Wurde das Objekt korrekt erzeugt? if (xmlHttp) { // Woher wollen wir Daten haben? var url = "http://api.misterunknown.de/selfhtml/ajaxdemo.php"; // Wir wollen auch Parameter übergeben var params = "suchbegriff="+suchbegriff; // Wir senden die Daten mittels eines POST-Requests xmlHttp.open("POST", url, true); // Headerinformationen für den POST Request xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xmlHttp.setRequestHeader("Content-length", params.length); xmlHttp.setRequestHeader("Connection", "close"); // Was soll passieren, wenn wir die Daten haben? Natürlich wollen wir sie ausgeben xmlHttp.onreadystatechange = function () { // prüfen, ob das Ergebnis korrekt geliefert wurde if (xmlHttp.readyState == 4) { // Zurückgeliefertes Ergebnis wird in den DIV "ergebnis" geschrieben document.getElementById("ergebnis").innerHTML = xmlHttp.responseText; } }; // und weg damit 😉 xmlHttp.send(params); } } weiterlesen

WebProxy Skript: CGIProxy

cgiproxyIch hatte mal einen Artikel geschrieben, in dem ich das Glype Proxy Script vorgestellt habe. Dieses Skript ist an sich eine gute Sache. Leider wird es, wenn man hinter einer halbwegs intelligenten Firewall sitzt, die Proxys versucht zu blocken, erkannt. Ich hatte das Skript für die Berufsschule installiert, aber leider hatte ich es nicht unter einer Subdomain laufen, sondern in einem Unterordner. Das hat der Schul-Proxy erkannt und die Domain gesperrt. Damit hatte ich weder Zugriff auf einen Proxy noch Zugriff auf meine Webseite. Unangenehm. weiterlesen