Diese Aufgabe besteht darin, eine Client-Server-Anwendung zu entwickeln und zu testen,
die Formular- und andere Daten mit Hilfe von AJAX auf dem Sever überträgt und im Server-Filesytem speichert,
clientseitig und serverseitig JSON verwendet
und die serverseitig gespeicherten Daten clientseitig präsentieren kann.
Es ist AJAX zu verwenden.
Die folgenden grundlegenden Prinzipien soll dieses Projekt beinhalten:
Zahlreiche Hinweise zu AJAX finden sich im Netz, wie z.B. de.wikipedia AJAX (Asynchronous JavaScript and XML) und von w3.org XMLHttpRequest (Level 2) - Zugriffe auf Server-XML-Objekte.
Eine "self-made-AJAX-Engine vom Scratch" kann moderne Bezüge aufgreifen, eifach und durchaus nützlich sein. Hier ist ein informativer Schelleinstieg zu AJAX from Scratch und load_xml_page_mit_ajax .
Es wird clientseitig AJAX und JSON und serverseitig JSON und PHP verwendet.
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 );
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);
Das gesamte Projekt ist zu komplettieren, zu testen und zu dokumentieren. Zum Projekt gehören dann (mindestens) eine .htm-Seite und eine .php-Seite und (mindestens) eine serverseitige Datendatei.
Viel Freude bei der Ausarbeitung!
Letzter Abgabetermine So 12.00 Uhr