Programmieren lernen mit Eas — das Tutorial von Molaskes

Daten speichern und laden:02. Offline-XAMPP-BSB

Aus Sicherheitsgründen kann Browsercode nicht in deinem Dateisystem herumschreiben. Er kann aber einen Web-Server bitten, Daten für ihn auf den Server zu schreiben. So ein Webserver läuft normalerweise nicht auf einem normalen PC — außer eben ... Wenn du das Wissen und Geld dafür hast, rate ich dir, einen Offline-PC einzurichten, bei dem du sämtliche Internetfunktionalität deaktivierst, sobald du alle nötige Software, etwa Webbrowser und vor allem XAMPP, fertig installiert hast. XAMPP ist eine Plattform zum Entwickeln von Servercode für Internetanwendungen. Es simuliert einen Webserver auf deinem localhost und wird am sichersten auf einem Offline-PC betrieben. XAMPP steht für: X = Windows oder Linux (WAMPP/LAMPP) A = Apache Webserver M = MySQL oder MariaDB Datenbank-Server P = PHP Server-Programmiersprache P = Perl Server-Programmiersprache Es korrekt einzurichten kann eine Herausforderung sein, es lohnt sich aber. Nun kannst du endlich richtig Dateien‌ speichern und laden, sobald du ein entsprechendes BSB-Protokoll‌ implementiert hast. Etwa folgendes: 1. Der Eas-4B-Browsercode:
save'to -- (engl. "speichern unter")
  fn -- file name (engl. "Dateiname")
  d -- data (engl. "Daten")
 :
  send ("save" fn MAP:d)
  TO'SERVER:"BSB.php" send 1
/

delete'file -- (engl. "lösche Datei")
  fn -- file name
 :
  save'to:fn
/

load'from -- (engl. "laden von")
  fn -- file name
 :
  TO'SERVER:"BSB.php" ("load" fn) 1
/
! SERVER'REPLY
  r FROM'JSON:SERVER'REPLY
  ? r[0]="loaded" -- (engl. "geladen")
    fn r[1] -- file name 
    d FROM'MAP:r[2] -- data
    --+ geladene Daten verwenden
  /
/
Die Speichern-Anfrage wird als JSON‌ gesendet, das ist der letzte Parameter "1", die Daten aber werden geMAPet, denn MAP ist ein kompakteres Format. Der Server erwartet, dass Anfragen mit einem Kommando-Feld beginnen, etwa "save", dem in den meisten Fällen ein oder mehrere Nutzlast-Felder folgen. Für "save" sind das der Dateiname und die zu speichernden Daten. BSB ist asynchron, daher erfolt das Laden einer Datei in zwei Schritten: 1. Datei anfragen via load'from 2. Datei empfangen im !SERVER'REPLY Die Serverantworten verwenden dieselbe Struktur wie BSB-Anfragen: Kommando + Nutzlasten. 2. Der PHP-Servercode: (Speichere ihn als BSB.php.)
<?php
r(file_get_contents("php://input"));
function r($r){
  $r=json_decode($r);
  if(!$r)exit;
  switch("$r[0]-".(count($r)-1)){

    case"save-2":
      $f="savefiles/$r[1]";
      $p=dirname($f);
      if(!is_file($p))mkdir($p,0777,1);
      file_put_contents($f,$r[2]);
      break;

    case"load-1":
      $f="savefiles/$r[1]";
      $d=file_get_contents($f);
      if($d===false)$d="";
      $r=["loaded",$r[1],$d];
      echo json_encode($r);
      break;
  }
}
?>
‌ Dieser ganze PHP-Code könnte übrigens durch folgenden Eas-4S-Code ersetzt werden (Eas 4S ist noch in der Entwicklung):
!
  r FROM'BROWSER

  ? r[0];"-";r? = "save-2"
    SAVE:r[1] r[2]

  \ "load-1"
    SAY:("loaded" r[1] LOAD:r[1])

  /
/
Vorige Seite:
Browser-Cookies
Nächste Seite:
Protected-Server-BSB
D Du brauchst zwei Dinge
K Kontakt
Esc Suchen / Inhaltsverzeichnis
Tab