Home

Benchmarks
Historie
Forum
Download
Helpware
Insider
Dokumentation
Kurs
Provider-Infos

Impressum



tdbengine news vom 10.5.2000

Diskussionsforum

Es gibt hier nun ein Diskussionsforum, selbstverständlich auf Basis der tdbengine. Um (Übertragungs-)Zeit zu sparen und Übersicht zu schaffen, haben wir eine Lösung mit zwei Frames erarbeitet. Im oberen Frame wird eine Liste der Beiträge angezeigt, wobei nur der ausgewählte Thread aufgeklappt ist. Bei Links innerhalb dieses Threads wird nur der untere Frame aktualisiert.

Selbstverständlich darf auch eine Volltextsuche nicht fehlen. Diejenigen Beitrage, in denen der Suchbegriff vorkommt, werden in der Trefferliste (duch ein grünes Brief-Symbol) markiert.

Von Till Schwalm wird in der nächsten Zeit auch noch ein ausgefuchstes FAQ-System hinzukommen. Wir freuen uns schon darauf.

Neue Version

Wir haben uns entschlossen, die Versionsnummerierung den Unix/Linux-Konventionen entsprechend durchzuführen, also "Hauptversion.Unterversion.Revision".

Damit sind wir nun bei 6.2.2 angelangt.

Es gibt wieder eine neue Funktion: Ramtext_Subst(ramtext,target,....), mit der die Funktion subst auf beliebige Ramtexte anwendbar ist.

Erweitert wurde die Funktion CopyFile, bei der nun auch Quelle und Ziel einen Ramtext festlegen können (bisher war nur für eine Richtung ein Ramtext erlaubt).

Wesentlich strenger wird ab sofort vom Compiler die Typüberwachung bei Variablen-Zuweisungen gehandhabt:


VARDEF x : REAL
...
x:='hallo'
führt nun zu einer Fehlermeldung "Illegaler Typ"

Auch die Funktion VAL wurde überarbeitet. Hier gibt es nun zwei Modi:

Im strengen Modus werden ausschließlich Zahlenkonstanten bearbeitet, alles andere führt zu einem Fehler "Illegale Zahlenkonstante". Dieser Modus ist in tdbengine voreingestellt.

Mit dem Punktbefehl .NV 0 kann der weiche Modus eingestellt werden, in dem VAL Ausdrücke wie bisher behandelt.
Beispiel:

.NV 1                   ( default )
VAL("123456789")        > kein Fehler
VAL("today")            > illegale Zahlenkonstante

.NV 0
VAL("123456789")        > kein Fehler
VAL("today")            > kein Fehler
Hintergrund ist folgender: Oftmals werden Browser-Informationen (über GetQueryString oder CGIGetParam) mittels VAL in einen numerischen Wert überführt. Das bedeutet eine extreme Sicherheitslücke!

Beispiel:

In einen CGI-Programm steht folgende Anweisung:

 ...
 x:=val(CGIGetParam("nummer"))
 ...
Ein (böser) Zeitgenosse schreibt nun in das entsprechende Formularfeld:

CgiExec('rm *')                                         bei Linux, bzw
CgiExec(getenv('windir')+'\system32\cmd.exe /c del *')  bei WinNT
Das ist gemein. Aus diesem Grund haben wir in unseren Programmen auch immer eine eigene Funktion geschrieben, die VAL erst dann aufruft, wenn sichergestellt ist, dass genau ein numerischer Wert vorliegt. Nachdem aber jede selbstgeschriebene Funktion immer langsamer ist als eine Standardfunktion, wurde VAL nun dahingehend erweitert.

Es gibt auch noch eine Reihe kleinerer Änderungen:

So wurde die Laufvariable bei der Funktion nloop von 16 auf 32 Bit erweitert, damit hier komplette Datenbestände bearbeitet werden können.

Bei der Linuxversion wurden die bisherigen Inkompatibilitäten beseitigt, so dass nun beide Versionen identische Ergebnisse liefern. Zudem wurde diese Version nochmals etwas optimiert.

Die Funktion SetIdent kann nun auch für Ramtexte verwendet werden.

Newsletter

Anmeldung zum Newsletter:
Name: 
Zusatz: 
EMail: