Nummer 3 vom 12.Februar.2002
+++ Herzlich Willkommen zum dritten baseportal-Newsletter! +++
Seit dem letzten Newsletter ist einige Zeit vergangen und es hat sich eine
Menge getan, nicht nur bei baseportal (Weihnachten, ein neues Jahr, der Euro
;-) ). Vieles davon geschah unter der Oberfläche, was aber nicht minder
wichtig war, es ging nämlich um die Sicherheit der Daten.
Inhalt:
- Cookies
- Chatterbox + Chat
- Sicherheit: Schutz vor unberechtigtem Zugriff
- Sicherheit: beta abgeschaltet
- Sicherheit: Rechte für Seiten, Rechte für Andere bei Datenbanken
- Bibliothek
- Kaufversion: Bald...
- Kleinere Änderungen: Laufzeit bestimmen, HTML-Mails, Datenbank per URL
- Tips & Tricks: Rund um die Ausgabe
- Interessante Anwendungen: Shareware4U
- Im nächsten Newsletter...
Viel Spass beim Lesen!
+++ Cookies +++
"Cookies" sind Texte und Werte die Sie auf dem Rechner eines Besuchers
Ihrer Seiten hinterlassen können und beim nächsten Aufruf wieder abrufen
können. baseportal unterstützt nun bei den Mietangeboten das Senden und
Wiederauslesen von Cookies. Mehr darüber in der
"baseportal+Webspace"-Dokumentation:
http://baseportal/bpws_doku.html#a28
+++ Chatterbox + Chat +++
Zum kurzen Gedankenaustausch lädt die "Chatterbox" beim kostenlosen
baseportal.de ein. Schnell ist ein Text in das kleine Eingabefeld getippt,
der dann bei allen gerade angemeldeten baseportal-Nutzern erscheint. Für
längere Plaudereien kann man dann in den grossen Chat wechseln, der in einem
eigenen Fenster mit automatischem Refresh, Teilnehmerliste, Flüstern und
Ignorieren mehr Komfort bietet.
Nutzer der Mietangebote können sich auch einen eigenen Chat in ihre Seiten
einbauen. Der entsprechende Code und die Anleitung dazu stehen in der
Bibliothek.
+++ Sicherheit: Schutz vor unberechtigtem Zugriff +++
Durch einen kleinen, etwas vermessenen Satz im Forum ("Unsere Datenbanken
sind sicher..." ;-) ) fühlte sich Andreas Jurenda herausgefordert,
baseportal hinsichtlich dem Schutz der Daten vor unberechtigtem Zugriff
abzuklopfen. Er fand tatsächlich einige Sicherheitslücken, bei deren
Ausnutzung man geschützte Datenbanken lesen und sogar Daten ändern konnte.
Diese sind nun alle gestopft. Herzlichen Dank an dieser Stelle für sein
Engagement!
+++ Sicherheit: beta abgeschaltet +++
Da auch in der beta einige schwerwiegende Sicherheitslöcher vorhanden waren
und ein Schliessen eine langwierige und unnötige Arbeit gewesen wäre,
musste die beta abgeschaltet werden. Die von einigen genutzte Volltextsuche
ist für einige Zeit auch in der normalen, kostenlosen Version verfügbar -
allerdings nicht auf Dauer!
+++ Sicherheit: Rechte für Seiten, Rechte für Andere bei Datenbanken +++
Ebenso wie Datenbanken kann man jetzt auch Seiten Rechte geben. Man kann
sie prinzipiell zur Ausführung freigeben, anderen zu lesen geben (durch den
Aufruf: http://baseportal.de/cgi-bin/baseportal.pl?show=/name/dir/template),
sowie anderen die Einbindung in eigene Seiten erlauben. Da Seiten bisher
keine Rechte hatten sind die Rechte automatisch auf "Ausführen" gesetzt
(damit ist ein Aufruf über die URL möglich).
Da es immer wieder Verwirrung bei den Rechten für Datenbanken gab, wurden
diese erweitert: Nun können andere baseportal-Nutzer auf fremde Datenbanken
nur zugreifen, wenn dieses Recht in der Rechtevergabe explizit gesetzt wurde
+++ Bibliothek +++
Damit die Bibliothek einfacher zu finden ist, ist ihr Aufruf nicht mehr
unter der Verzeichnisverwaltung, sondern eine Ebene höher angesiedelt,
direkt bei der Verzeichnisansicht.
Ausserdem kann nun auf Seiten und Datenbanken der Bibliothek direkt per
"include" oder den Datenbank-Befehlen zugegriffen werden. Damit sind jetzt
auch "Module" möglich, die ein Anwender nicht erst in seinen Bereich
kopieren und anpassen muss - er kann sie einfach mit "include" in seine
Seiten einbauen und über Parameter steuern. Machbar sind damit auch
öffentliche Datenbanken, auf die jeder zugreifen kann ("Content-Sharing").
+++ Kaufversion +++
Die Kaufversion hat sich leider länger hingezogen als erwartet,
ursprünglich sollte diese Ende letzten Jahres fertig sein. Es wird aber
(hoffentlich) bald soweit sein! ;-)
Das ist dann übrigens der definitive Termin, wann auch bei den Nutzerseiten
Banner eingeführt werden!
+++ Kleinere Änderungen +++
- Laufzeit bestimmen
Durch den Befehl "runtime" (nur bei Mietangeboten) kann die bisherige
Laufzeit des Programms gemessen und somit auf schnelle und effiziente
Ausführung hin optimiert werden. Mehr darüber in der
"baseportal+Webspace"-Dokumentation:
http://baseportal/bpws_doku.html#a35
- HTML-Mails
Beim "mail"-Befehl (nur bei Mietangeboten) können jetzt beliebige sog.
"Header"-Angaben mitgeschickt werden. Damit sind z.B. EMails im HTML-Format
möglich. Bedenken sollten Sie dabei, dass HTML-Mails von vielen nicht gerne
empfangen werden. Mehr darüber in der "baseportal+Webspace"-Dokumentation:
http://baseportal/bpws_doku.html#a22
- Datenbank per URL
Perl-Befehle übernehmen nicht mehr automatisch die per URL übergebene
Datenbank. Diese Änderung war nötig, da dies bei einer etwas nachlässigen
Programmierung leicht das Auslesen aller Datenbanken eines Nutzers
ermöglichte, wenn er nur deren Pfad und Namen kannte. Ein...
<perl>
do_all;
</perl>
...spricht nun immer die Datenbank an, die den gleichen Namen wie die
aufgerufene Seite hat. Will man trotzdem Datenbanken frei per URL übergeben,
muss man dies extra angeben:
<perl>
do_all $_cgi{db};
</perl>
+++ Tips & Tricks: Rund um die Ausgabe +++
Um in baseportal innerhalb eines eigenen Programms (<perl>...</perl>) etwas
auszugeben, benötigen sie den Befehl "out":
$x=5;
out $x;
Dies gibt den Wert der Variablen "x" aus, also die Zahl 5. Um einen
beliebigen Text auszugeben müssen Sie diesen in Anführungsstrichen setzen:
out "Hallo, Welt!";
Sie können in diesem Fall auch einfache Anführungsstriche benutzen:
out 'Hallo, Welt!';
Die Ausgabe ist dieselbe: Hallo, Welt! Der Unterschied zwischen einfachen
und doppelten Anführungsstrichen ist, dass Variablen und andere besondere
Zeichenfolgen (wie z.B. das \n für den Zeilenumbruch) in doppelten
Anführungsstrichen durch den eigentlichen Wert ersetzt werden. In einfachen
Anführungsstrichen geschieht dies NICHT:
$x=5;
out 'x hat den Wert $x\n\nTest';
würde genau dies ausgeben:
x hat den Wert $x\n\nTest
während
$x=5;
out "x hat den Wert $x\n\nTest";
folgendes ausgibt:
x hat den Wert 5
Test
Probleme gibt es in beiden Fällen, wenn man die jeweiligen
Anführungsstriche selbst innerhalb des Textes schreiben will. Hierfür gibt
es jedoch eine Lösung: Sie müssen den Anführungsstrich, der ja sonst das
Ende des Textes markiert besonders kennzeichnen. Dies erfolgt mit dem
\-Zeichen, "Backslash" ("umgedrehter Schrägstrich") oder "Escape"-Zeichen
(da Sie damit vor der eigentlichen Bedeutung "flüchten") genannt:
out 'Er sagte: "Jetzt schlägt\'s 13 !"';
oder mit doppelten Anführungszeichen:
out "Er sagte:\"Jetzt schlägt's 13 !\"";
Ebenso können Sie innerhalb der doppelten Anführungszeichen die
Variablenersetznug verhindern:
out "Wert von \$x: $x";
Benötigt man viele Zeilen Ausgabe hintereinander so ist es uneffizient,
dafür viele "out"-Befehle zu verwenden:
out "Zeile1....";
out "Zeile2....";
out "Zeile3...."; ...
Viel besser ist folgende Schreibweise:
out <<EOF;
Zeile1...
Zeile2...
Zeile3...
...
EOF
Anführungsstriche müssen darin nicht "escaped" werden; Variablen werden
aber ersetzt. Will man keine Variablenersetzung, so muss man das EOF mit
einfachen Anführungsstrichen umschliessen (out <<'EOF'; ... EOF), was man
aber selten braucht.
Oft hat man innerhalb langer Textausgaben einzelne Texte die von einer
Bedingung abhängen. Es ist dann sehr unschön, das EOF jedesmal zu
unterbrechen. Besser ist es, eine Variable mit den nötigen Texten je nach
Bedingung zu belegen und diese dann an der Ausgabestelle einzubinden:
my $mehrzahl=""; $mehrzahl="en" if $anzahl!=1;
out <<EOF;
...
Es sind $anzahl Person$mehrzahl anwesend.
...
EOF
Ein oft nützlicher Trick ist es auch, Ausgaben nicht sofort zu machen,
sondern erst in einer Variablen zu sammeln:
get "Datum>jetzt-14", "konten";
while(get_next)
{
$out.="Eingang am $Datum: $Betrag<br>";
$Summe+=$Betrag;
}
out "<b>Summe: $Summe</b><p>$out";
Hier wird die eigentliche Ausgabe erst in der Variablen $out gesammelt und
erst später nach der Summe ausgegeben.
Dies funktioniert übrigens auch, wenn man dabei für längere Texte ein
<<EOF; ... EOF verwendet:
$out.= <<EOF;
...
EOF
Fügt der Variablen "out" den gesamten Text zwischen den beiden "EOF"s
hinzu.
+++ Interessante Anwendungen: Shareware4U +++
Shareware4U ist ein Software-Archiv mit über 3.500 Programmen jeglicher
Art. Dabei werden alle Programme mit baseportal verwaltet, d.h. die Autoren
haben online Zugriff auf Ihre Programme; Neueinträge und Updates sind sofort
sichtbar. Alle Seiten werden von baseportal generiert und alle Funktionen
von Shareware4U sind mit baseportal realisiert: Programmverwaltung,
Autorenverwaltung, Programmbewertung, Kommentare, Gästebuch, News,
Newsletter mit Anti-SPAM-Schutz, Update-Infos mit Anti-SPAM-Schutz,
Umfragen, Statistik + Online-Counter etc.
Die Programme sind nach Kategorien geordnet, wobei jedes Programm mehreren
Kategorien zugeordnet werden kann. Zu jedem Programm gibt es eine
Detail-Seite mit ausführlichen Infos und für jeden Autor gibt es eine
Autoren-Seite, auf der alle Programme dieses Autors aufgeführt werden. Neben
den Standardmöglichkeiten eines Software-Archivs wie Volltextsuche,
Top-Download-Liste, Bewertung und Top-Bewertung-liste kann man auf allen
Ausgabeseiten die Auswahl auf eine Programmart (z.B. "Freeware")
einschränken und sich zu jedem einzelnen Programm bei einem speziellen
Newsletter registrieren. Sobald zu diesem Programm ein Update eingetragen
wird, wird man automatisch per Email darüber informiert.
Da zu jedem Programm ziemlich viele Informationen hinterlegt werden können,
werden die Daten nicht in einer Tabelle, sondern in mehreren Tabellen mit
einer 1:1-Beziehung gespeichert. Alle Informationen werden nur auf der
Detail-Seite benötigt, in allen anderen Abfragen nur bestimmte Infos, die
dann in gesonderten Tabellen liegen. Dadurch werden keine unnötigen Infos
geholt und die Abfragen sind deutlich schneller.
Für die Administration gibt es ein eigenes passwortgeschütztes Template,
über das alle notwendigen Aktionen (z.B. Newsletter verschicken etc.)
durchgeführt werden können. Theoretisch muss dadurch nicht mehr auf das
baseportal-Standard-Interface zurückgegriffen werden.
Autor: Olaf Mertgen - Aufruf: http://www.shareware4u.de
--
Wenn Sie auch eine interessante Anwendung mit baseportal geschrieben
haben und hier veröffentlicht sehen wollen, dann schreiben Sie einfach eine
EMail an info@baseportal.de mit einem kurzen Text über Ihre Anwendung und
natürlich der URL.
+++ Im nächsten Newsletter... +++
Im nächsten Newsletter berichten wir dann ganz sicher über die Möglichkeit
baseportal als Lizenz zu kaufen... ;-)
Bis dahin, wie immer: Viel Spass und Erfolg mit baseportal !!
|