Diese Aufgabe besteht darin, eine Client-Server-Anwendung zu entwickeln und zu testen, die Formular-Daten mit Hilfe von AJAX auf dem Sever im Server-Filesytem speichert, clientseitig und serverseitig JSON verwendet und die serverseitig gespeicherten Daten clientseitig präsentieren kann. Es ist AJAX zu verwenden.
Achtung! Die nachfolgende Beschreibungen sind weniger eine konkrete Aufgabenstellung, sondern lediglich Hinweise sein, die einen kreativen Freiraum für ein eigenes Projekt lassen.
Zahlreiche Hinweise zu AJAX und PHP finden sich im Netz, wie z.B. bei de.wikipedia PHP und AJAX
Eine einfache "AJAX-Engine vom Scratch" kann hilfreich sein. Hier ist ein Schelleinstieg zu AJAX from Scratch und hier ist ein PHP - Beispiel - Quelltext und hier ein Beispiel für das Laden einer XML-Seite mit AJAX. Allgemeines zu AJAX findet sich reichlich im Netz, z.B. AJAX (Asynchronous JavaScript and XML) verwendet ECMAScript und XMLHttpRequest (Level 2) - Zugriffe auf Server-XML-Objekte.
Die folgenden PHP Hinweise sind nicht getestet, können aber hilfreich sein, um in einer PHP-Seite serverseitig mit assoziative Array's und JSON zu arbeiten.
Wie kann ein assoziativer PHP-Array $arr angezeigt (debug) werden? Die Funktion debug_arr(&$arr, $titel='') kann hilfreich sein:
function debug_arr(&$arr, $titel='') { // zeigt $arr an echo '<pre>*** '.$titel.'<br />'; //auch print_r($arr); oder var_dump($arr); print str_replace(array("\n"," "),array("<br />"," "), var_export($arr,TRUE));reset($arr); echo "</pre>"; } $arr = array( // Test-Array 'maier' => 'Hans Meier | Griesweg 4 | 4711 Hintertüpfingen', 'weber' => 'Klaus Weber| Narzösse 1 | 12345 Schupfingen', 'kraus' => 'Karl Kraus | Tulpenweg 9 | 98765 Wohnland', 'mueller' => 'Egon Müller | Neuer Weg 11 | 4712 Unterbörteln' ); // Aufruf: debug_arr(&$arr,'Zeige Test-Array an');
Die folgenden PHP Hinweise sind nicht getestet, können aber hilfreich sein, um in einer PHP-Seite serverseitig das Filesystem zu verwenden. Es liege ein PHP $append_string vor, der am Ende der Datei mit dem Dateinamen $file_name gespeichert werden soll. $file_size soll auf $file_size_max = 99000; begrenzt werden. PHP-Code-Snippet:
$file_size = 0; $file_chmod = 0700; // bei .ht-Dateien if (file_exists($file_name)) { $file_size = @filesize($file_name); } if($file_size+strlen($append_string) > $file_size_max) { exit; } $append_string = $append_string . @file_get_contents ($file_name); if (@file_put_contents($file_name,$append_string,LOCK_EX) === false) {exit;} // alternative FILE_APPEND|LOCK_EX @chmod($file_name, $file_chmod);
Zahlreiche Hinweise zu JSON finden sich im Netz, wie z.B.
JavaScript-Object-Notation
bei de.wikipedia
json-de
bei Crockford
JSON
auf dieser Homepage bei Objekte-allgemein
JSON
auf dieser Homepage bei save-permanent
Wie wird bei PHP mit json_encode() und json_decode() umgegangen? Ungeprüfte Hinweise als PHP-Code-Snippet:
$my_php_arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5 ); $my_json_str = json_encode($my_php_arr); // $my_json_str entspricht etwa {"a":1,"b":2,"c":3,"d":4,"e":5} // speichere $my_json_str if (@file_put_contents($file_name,$my_json_str,LOCK_EX) === false) {exit;} // lade $my_json_str $my_json_str = @file_get_contents($file_name); // entspricht etwa // $my_json_str = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; $my_php_arr = json_decode($my_json_str, true); // macht $my_php_arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5 );
Das gesamte Projekt ist zu komplettieren, zu testen und zu dokumentieren. Zum Projekt gehören dann (min) eine .htm-Seite und eine .php-Seite und (min) eine serverseitige Datendatei.
Viel Freude bei der Ausarbeitung!
Letzter Abgabetermine Mo 12.00 Uhr