AJAX, JSON, Server-Speicherung Self-made-Projekt

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:

Hinweise: AJAX clientseitig Basis-Wissen

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 .

Hinweise: JSON clientseitig, JSON serverseitig Warum?

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

Hinweise: PHP und Files Basis-Wissen

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 />","&nbsp;"),
                          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);
Dokumentieren

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