Ersteinmal Danke für die ausfürhliche Antwort. Ich versuche jetzt noch einmal genau zu beschreiben was passiert.
Der User hat Eingabefelder (html-Datei mit <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> und als Latin1 im Texteditor gespeichert.) Durch Klick auf Specichern passiert folgendes:
1. Es wird die folgende Funktion aufgerufen:
var saveDB_ajax_anfrage = null;
function writeDB() {
//var dbName = prompt("Unter welchem Namen soll die Datenbank gespeichert werden?");
var dbName = "test";
if (dbName) {
saveDB_ajax_anfrage = null;
saveDB_ajax_anfrage = erzeugeDB_Anfrage();
var url = "./php/writedb.php?";
var data2send = "filename="+dbName;
data2send += "&data="+escape(changeDataForExport());
if (saveDB_ajax_anfrage!=null) {
saveDB_ajax_anfrage.open("POST", url, true);
saveDB_ajax_anfrage.onreadystatechange = zeigeBestaetigung_save_writeDB;
saveDB_ajax_anfrage.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
saveDB_ajax_anfrage.send(data2send);
} else {
alert("Es konnte keine Verbindung zum Server aufgebaut werden.");
}
}
}
2. In der ersten Funktion steht die Zeile data2send += "&data="+escape(changeDataForExport());
3. In der Zeile changeDataForExport() wird u.a. versucht die Umlaute zu erzeugen und anderen Daten in der mir gewünschten Art und Weise zusammenzustellen.
4. Das Ganze wird an folgende php-Datei geschickt:
function write_curData($filename,$data) {
$today = date("Ymd_His");
$filename = $filename.$today;
}
$dirName = "savedDBs";
$file = "../".$dirName."/".$filename.".txt";
if (!$handle = fopen($file, "w")) {
echo "Kann die Datei $file nicht öffnen";
exit;
}
if (!fwrite($handle, $data)) {
echo "Kann in die Datei $file nicht schreiben";
exit;
}
fclose($handle);
echo ("Erfolgreich geschrieben.");
}
write_curData($_POST['filename'],$_POST['data']);
5. Wenn der User die erzeugte Datei nun wieder laden will, kommt der Aufruf in dieser js-Datei an:
var readDB_ajax_anfrage = null;
function readDB(filename) {
readDB_ajax_anfrage = null;
readDB_ajax_anfrage = erzeugeDB_Anfrage();
var url = "./php/readdb.php?";
var data2send = "filename="+filename;
if (readDB_ajax_anfrage!=null) {
readDB_ajax_anfrage.open("POST", url, true);
readDB_ajax_anfrage.onreadystatechange = zeigeBestaetigung_readDB;
readDB_ajax_anfrage.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
readDB_ajax_anfrage.send(data2send);
} else {
alert("Es konnte keine Verbindung zum Server aufgebaut werden.");
}
}
function zeigeBestaetigung_readDB(){
if (readDB_ajax_anfrage.readyState == 4) {
if (readDB_ajax_anfrage.status == 200) {
var antwort = readDB_ajax_anfrage.responseText;
var xmlAntwort = readDB_ajax_anfrage.responseXML;
var splittedAntwort = antwort.split("\n");
} else {
var antwort = readDB_ajax_anfrage.responseText;
alert("Fehler! Anfragestatus ist " + readDB_ajax_anfrage.status);
}
}
}
6. Die Datei readdb.php macht folgendes:
<?php
error_reporting(E_ALL);
//print_r ($_POST);
function read_DBdata($filename) {
$resStr = "";
$lines = file ($filename);
foreach ($lines as $line_num => $line) {
if ($line!="") {
$resStr .= $line;
}
}
echo $resStr;
}
read_DBdata($_POST['filename']);
?>
7. Die empfangen Daten werden dann wieder dargestellt.
Hilft der ganze Code noch beim Helfen?