Archiv für Kategorie PHP

Nichtraucher mit jQuery

Nachdem ich seit inzwischen 3 Wochen dem Laster des Rauchens trotze und in meiner freien Zeit vor Praxisphase und Bachelorarbeit noch etwas sinnvolles machen wollte, habe ich mich etwas mit dem Javascript/AJAX Framework jQuery beschäftigt. Beides kombiniert, kommt bei mir eine kleine Nichtraucher”Uhr” raus:

Zur Zeit wird das Datum der letzten Zigarette (, durchschnittliches Gerauche und Preis einer Schachtel erfasst und daraus die Zeit als Nichtraucher und das dabei gesparte Geld errechnet.

In Zukunft wird die Toplist noch um das gesparte Geld erweitert, eine kleine API gebastelt die die “Uhr” ausgeben kann (ohne angemeldet zu sein) und bei ganz viel Laune wird noch das Standarddesign ersetzt.

Wer sich nicht registrieren will, kann sich mit test/test auch das innenleben mal amschauen.

Eine schöne Sache dieses jQuery :-)

1 Kommentar

Little School Helper – Zeugnis schreiben leicht gemacht

Sodale,

nach ca 1 Jahr Freizeitentwicklung, vielen Pausen, einem kompletten Neustart aufgrund fehlender Planung und der Weitsicht im Datenbankdesign, möchte ich nun den “Little School Helper” vorstellen.

Die Idee entstand durch meine Mutter: Zuzuschauen wie die heutigen Grundschullehrer Zeugnisse schreiben macht jeden Informatiker traurig. Das werden Wordtemplates auf USB Sticks ausgetauscht um sich im schlimmsten Fall gegenseitig das Geschriebene zu überschreiben oder im Klassensaal zu vergessen.

Es musste also ein System her was zentralisiert die Zeugnisse speichert und jedem, auch den gleichzeitigen Zugriff auf ein Zeugnis, von Zuhause aus ermöglicht. Da kam die Idee: ich will das Zeugnisschreiben für Grundschullehrer vereinfachen! Das Ziel war also gesteckt, nix großes, doch das Vorgenommene gut zu machen war der Anspruch an mich selbst.

Nach einer Version mit der Grundfunktionalität war ich dann 2 Tage bei einem guten Freund (Link) im Büro um das Design auch entsprechend ansprechend zu bauen. Unschönerweise muss ich mich da die Tage noch mit den ganzen CSS Hacks auseinandersetzen, da der IE zT einfach nicht im Kontext bleibt und ganz andere Parents / Childs anspricht als mein Freund der Firefox… steht also noch auf der TODO Liste.

Inzwischen wurde der Little School Helper einem kleineren Kreis an Lehrern und Direktoren vorgestellt und noch einige Wünsche / Änderungen realisiert und stelle Ihn nun hier vor um vieleicht noch mehr Feedback von Fachfremden, aber technisch versierterem Publikum zu bekommen.

Die Featureliste ist inzwischen auch um einiges angewachsen, über Statistiken, automatisierte Schuljahreswechsel, eine komplette Rechteverwaltung der Kollegen, bis hin zu PDF Generierung von echten Zeugnis Templates (bisher nur für RLP). Eine Doku ist noch nicht fertig, deshalb ists am einfachsten sich das ganze mal selber anzuschauen:

Eine Testversion gibts hier, mit Benutzername: admin und Passwort: test kann man sich anmelden und die komplette Funktionalität testen.

Übrigens: ich suche zur Zeit eine Grundschule die sich den Little School Helper mal genauer anschauen, und vieleicht sogar im produktiven Zeugnisschreiben benutzen/testen möchte. Wer also selbst als lehrendes Organ tätig ist oder jemanden kennt für den es von Interesse sein könnte: meldet euch bitte unter littleschoolhelper@drailing.net

Wie immer, über Feedback egal welcher Form freue ich mich sehr :-)

Grüße,
Christian

1 Kommentar

Umlautefix für das Adminpanel

So einfach kanns sein, wenn man weiß wies geht :-)

Um mit meinem Adminpanel auch Umlaute schreiben zu können muss nur eine kleine Zeile (in Zeile 307) eingefügt werden:

306 - $input = $input."?>";
307 - $input = utf8_encode($input);
308 - fwrite($datei, $input);

Den Downloadlink habe ich inzwischen auch im Ursprungspost ersetzt.

Keine Kommentare

Adminpanel für blueimp AjaxChat

Hiho,

auf blueimp.net gibts einen Open Source Ajax Chat der auf jedem Webserver mit php und MySql ganz einfach installiert werden kann. Das ist ne super Sache um sich schnell mit mehreren Menschen abzustimmen ohne ICQ Nummern oder Emailadressen austauschen zu müssen. Bei mir kommt er zB für ein Browserspiel zum Einsatz.

Leider ist die Verwaltung noch etwas unkonfortabel, alle Benutzer müssen über eine “users.php” Datei in ein Array eingepflegt werden. (je nach Konfiguration kann man sich auch ohne Passwort einloggen)

Dazu habe ich mir was kleines einfallen lassen um die Benutzer über eine Datenbanktabelle zu pflegen und ein kleines funktionales Adminpanel gebastelt :-)

Kurze Featureliste:
* Adminaccount:
– Benutzer anlegen (auch Moderator)
– Benutzer löschen
– Passwort für Benutzer zurücksetzen
* Useraccount
– eigenes Passwort ändern

Die Idee dahinter ist ganz simpel:
Wir legen alle Benutzer in einer Datenbank ab und schreiben die Datei (users.php), die Benutzer verwaltet bei Änderungen neu.

Um diese Administration zu ermöglichen brauchen wir Schreibrechte auf CHAT_ROOT/lib/data/users.php und müssen eine Benutzertabelle in der Datenbank anlegen:

Im INSERT Statement kann ein beliebiger Adminbenutzer angelegt werden, hier als Standard als Benutzername und Passwort “admin”.

CREATE TABLE `ajax_chat_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` text,
  `password` text,
  `role` text,
  PRIMARY KEY (`id`)
) 
 
INSERT INTO `ajax_chat_user` VALUES ('1', 'admin', 'admin', 'AJAX_CHAT_ADMIN');

In der Datei “admin.php” muss dann noch die entsprechende Datenbankverbindung an mehreren Stellen eingetragen werden.

$db = new mysqli( 'localhost', 'db-user-name', 'db-pw', 'db-name' );

Am einfachsten über suchen / ersetzen:
“db-user-name” -> eigener Datenbankbenutzer
“db-pw” -> zugehöriges Datenbankpasswort
“db-name” -> Datenbankname

Falls der Adminbenutzer einen anderen Namen als “admin” bekommen hat, müsst ihr in der Datei auch noch an 2 Stellen den entsprechend gewählten Namen eintragen (Zeile 289 und 325), einmal für das schreiben der users.php, und einmal um das evtl versehentliche Löschen zu verhindern.

Die admin.php dannach einfach ins Rootverzeichnis des Chats legen, und über www.url-to-chat.net/admin.php einloggen.

Bekannte Fehler:
- Beim Schreiben der Datei werden Umlaute nicht richtig dargestellt, daher können zur Zeit keine Benutzer/Passwörter mit Umlauten verwendet werden.

Kommentiert ist so gut wie nix, dafür sollte der Code recht sprechend und leicht zu verstehen sein.
Zum Download gehts hier: ajaxchat_adminpanel_fix

Über Feedback jeglicher Art würde ich mich natürlich freuen :-)

Grüße,
Christian

Nachtrag:
ACHTUNG!
Falls ihr die kleine Erweiterung benutzen wollt: Es wird die Datei in der die Benutzer zuvor verwaltet wurden gnadenlöse überschrieben!
Bedeutet: Wenn zuvor Benutzer in der Datei gepflegt wurden, sollte man sich ein Backup machen und diese dann über die Oberfläche in die Datenbank eintragen.

Keine Kommentare

PHP Schnipsel I

Guten Morgen,

da sich inzwischen auch EWA mit den etwas interessanteren Themen beschäftigt und sich im laufe der Zeit auch ausserhalb von EWA etwas nützliches angesammelt hat, hier ein paar kleine Codeschnipsel auf die ich immer wieder gerne zurückgreiffe:

Komplettes POST Array auslesen und ausgeben:

foreach($_POST as $key => $value)  { 
    print(htmlspecialchars("Name: [$key] Wert: [$value]")."<br>"); 
}

Komplettes POST Array unescapen:

if (get_magic_quotes_gpc()) {
    $_POST = array_map('stripslashes', $_POST);
}

Includes als Dateinamen managen:

if ($_GET && is_file("files/".$_GET["site"].".php"))
    include ("files/".$_GET["site"].".php");
else
    include ("welcome.php");

Letzte Besuche von Google Bot registrieren:

$host = gethostbyaddr($_SERVER['REMOTE_ADDR']);    
$domain = explode(".", $host);   
$domain_array = count($domain)-2;   
if ($domain["$domain_array"] == "googlebot"){  
    //information verwalten, insert oder ausgabe 
}

Und kennt evtl irgendjemand ein WordpressPlugin was es erlaubt den Code schön formatiert zu posten?
Für Tips bin ich sehr dankbar ;-)

Grüße,
Christian

2 Kommentare

EWA Tools (Entwicklung Webbasierter Anwendungen)

Guten Morgen!

Da EWA ja langsam mit der eigentlichen Entwicklung beginnt, dachte ich mir dass es vielleicht sinnvoll ist mal die gängigsten Tools zusammenzufassen:

- Aptana: Link
sehr komfortabler Editor auf Eclipsebasis

- XAMPP: Link
eine Distribution aus Apache Webserver, PHP und MySQL – sehr einfach zu installieren und super praktisch zum lokalen Entwickeln.

Firefox Plugins:

– Firebug: Link
einfach DAS Werkzeug ohne das wohl kein Webentwickler mehr leben möchte. Ermöglicht das genaue Analysieren und Debuggen von HTML, CSS und Javascript.

- IE Tab: Link
erlaubt das Darstellen der Seite in der Internet Explorer Engine in einem eigenen Firefox Tab.

- HTML Validator: Link
prüft jede Webseite auf Standardkonformität und zeigt dabei Warnings und Fehler an.

- Dust-Me Selectors: Link
scannt das CSS (auf Wunsch automatisch) und erstellt eine Liste mit genutzen und ungenutzen CSS Klassen

Internet Explorer:

IE Developer Toolbar: Link
ähnlich wie Firebug für Internet Explorer, leider bei weitem nicht so komfortabel.

Und zum Schluss noch ein Link zum “Werkzeugkoffer für Webentwickler” – eine sehr umfangreiche und gut sortierte Linksammlung in der man immer mal wieder was nützliches neues finden kann.
(gefunden bei Webthreads )

Ich glaube für den Moment habe ich nix vergessen, vielleicht hilfts ja dem ein oder anderen etwas weiter ;-)

Grüße,
Christian

2 Kommentare

Wikiling

Ahoi!

heute habe ich die Ehre das erste, mit einem Komilitone zusammen (Oli – “ich bin der Kuschel-Obi-Van-Auto”) selbstentwickelten und mehr oder weniger einsatzbereitem (mini)Wiki System zu präsentieren: Wikiling!

Wikiling wurdekomplett in PHP / Javascript geschrieben und baut auf einer MySQL Datenbank auf.
Dabei hat man alles was man braucht um kleinere Projekte zu starten, allgemeinen Brainstorm niederzuschreiben oder einfach nur eine schlanke Lösung um sonstigen Nonsense ins Netz zu prügeln.

Die Benutzerverwaltung besteht aus normalen Gästen und Admins. Die Einschränkung für Gäste besteht lediglich darin, dass keine Themen gelöscht werden können und von Admins nicht freigegebene Themen nicht editiert werden können.
Um sich als Admin zu registrieren wird in die “neue Kategorie” ein Codewort eingegeben. Im Falle von meiner öffentlichen Version einfach “admin”.

Sobald alle Bugs ausgemerzt wurden, wirds den Quellcode auch zum Download und persönlichem Gebrauch geben.

Die erste Version für alle zugänglich gibts hier (is das Logo nicht toll!?):

logopng

Über Rückmeldungen über Bugs oder wünschenswerte weitere Funktionen würden wir uns sehr freuen!

Grüße,
Christian

3 Kommentare

IIS: PHP Installations-Tips auf einem Win2k3 Server

So,

da ich beim Einrichten des Servers mit allen Services doch einige Probleme hatte, fasse ich einfach mal alle Stolpersteine die ich mit PHP hatte zusammen, vieleicht hilft es ja noch dem ein oder anderen ;-)

1. Benutzt den Installer!

-> http://www.php.net/downloads.php#v5

auch wenn ich bei der Fehlersuche immer nur lesen musste “der Installer hat nix drauf”, habe ich doch die besten Erfahrungen damit gemacht. Es entfallen die grundlegenden Anpassungen in der php.ini und die Umgebungsvariabeln werden automatisch und richtig gesetzt. Allerdings soll diese Empfehlung nur für Windows Server beherzigt werden.

2. Nicht vergessen die php5isapi.dll einzubinden!

in meinen ganzen Versuchen wurde vom Installer die Webdiensterweiterung für PHP nicht eingetragen. Dazu einfach eine neue Webdiensterweiterung anlegen und den Pfad zur php5isapi.dll angeben.

3. index.php (oder andere Einstiegsseite) definieren!

im IIS sind die Default Dokumente zum Webseiteneinstieg nur für html und asp definiert. Dazu in den Eigenschaften/Dokumente die entsprechende Startseite eintragen.

4. “… kein gültiger Win32 Dienst”

dieser Fehler tritt (wenn überhaupt) beim aufruf der Seite im Browser auf. Hier wird die php5isapi.dll nicht als gültger Dienst erkannt und muss erst noch zugelassen werden. Folgende Zeile hilft, einfach im cmd ausführen:

cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1

Während meinen Versuchen PHP zu installieren hat sich immer mal wieder der DefaultAppPool heruntergefahren oder aufgehangen. Also immer mal wieder zwischendurch ein Blick in die Anwendungspools werfen ob da noch alles am laufen ist. Ein Indikator für einen heruntergefahrenen DefaultAppPool kann eine Meldung im Browser sein: “Service not avalible”.

Das war dann wohl das Wichtigste ;-)

grüße,

Christian

Keine Kommentare