PHP: aktuelle Session Variablen anzeigen

Um die Session Variablen der aktuellen Sitzung darzustellen, wird eine Schleife über das Array @_SESSION gefahren, mit allen Schlüsseln (Keys).
Im PHP-Programmcode sieht das dann so aus:

<?php
      echo '<table border=1>';
      echo '<tr><td><b>KEY</b></td><td><b>VALUE</b></td></tr>';
      foreach ($_SESSION as $key =>$value) 
      {
          echo '<tr><td>'.$key.'</td>';
          echo '<td>'.$value.'</td></tr>';
      }
      echo '</table>';
?>

Als Beispiel um eine Session zu starten und Variablen zu setzen, nehmen wir eine WordPress Installation (wäre sonst zu einfach 🙂 ). In der wp-config.php folgenden Block einfügen:

/**
* SESSION - Start Session if not started
*/
if (!session_id())
    session_start();
    $_SESSION['tonium_session_id'] = session_id();
 
    $ip = getenv('REMOTE_ADDR');
    $_SESSION['remote_ip'] = $ip;
 
    $host = gethostbyaddr($ip);
    $_SESSION['remote_host'] = $host;
 
    $_SESSION['f_count']++;
...

und so sieht es dann aus:

KEY VALUE
tonium_session_id 7t02coobg6khm97hriqi0c0817
remote_ip 91.19.110.190
remote_host p5B136EBG.dip0.t-ipconnect.de

Testdemo unter www.Tonium.de

Was ist eigentlich RSS?

Wofür steht RSS?

RSS ist eine Abkürzung und steht für „Rich Site Summary“ (Übersetzt in etwa: „Zusammenfassung einer informationsreichen Internetpräsenz“), nach vielen Weiterentwicklungen wurde hieraus „Really Simple Syndication“ (Übersetzt in etwa: „wirklich einfache Verteilung“).

Warum RSS?

RSS dient zur einfachen und strukturierten Veröffentlichung von Texten in einem einheitlichen Format (XML) ohne Formatierungen oder sonstigen Verschnörkelungen. Gerade bei großen Newsseiten/Blogs etc. war es schwierig schnell Informationen in Kurzform zu erhalten. Mit Einführung des RSS (Feeds) war es nun endlich möglich, alle Informationen schnell und strukturiert auszuliefern.

Hierzu benötigt wird allerdings ein sogenannter News Reader wie Tiny Tiny RSS oder FeedReader etc. benötigt. News Reader gibt es für jedes gängige Betriebssystem und Smartphone.

In so einem Newsreader ist es möglich mehrere (RSS) Feeds zu abonieren und nach eigenen vorlieben anzeigen zu lassen.

Einen kostenlosen Online-NewsReader kann ich euch anbieten: Click mich!

Events aus einer lokalen BEM Datenbank abfragen

Die Events des BMC Event Manager werden in einer properitären Datenbank gespeichert. Damit sind sie im Vergleich zu anderen Tools mit relationalen Datenbanken nicht mit SQL bzw. ODBC zugreifbar. Dies ist für weiterverarbeitende, herstellerfremde Applikationen (z.B. Ticket- und Alarmsysteme) und Reports notwendig, oder man nutzt die entsprechenden BMC Anwendungen.
Für herstellerfremde Tools und eigene Skripte ermöglicht BMC mit dem Befehl mquery das Abfragen von Events aus der BEM-Datenbank.

mquery

-q – quite, ohne Ausgabe des Banners
-n CellName – Name der BEM-Zelle die abgefragt werden soll
-f [BAROC, CSV] – Ausgabeformat: BAROC oder CSV Format
-a EventClass
-w “ Abfragebedingungen “

BAROC-Format ergibt eine mehrzeilige Ausgabe eines jeden Events

mquery -q -n CellName -f BAROC -a EventClass -w "slotkey_1: equals 'slotvalue' "

EVENTCLASS;
       slotkey_1 = slotvalue;
       slotkey_2 = slotvalue;
...
       slotkey_N = slotvalue;
END

 

CSV-Format ergibt eine einzeilige Ausgabe pro Event

mquery -q -n CellName -f CSV -a EventClass -w "slotkey_1: equals 'slotvalue' "

EVENTCLASS,slotvalue_integer,’slotvalue_string’,...,’last_slotvalue’

 

Diese mquery-Abfrage wurde direkt vom BEM-Server gestartet.
Wie sieht es jedoch auf einem anderen Server aus?
Von einem remote System sind ein paar Voraussetzungen zu schaffen, die in den Zugriff auf die BEM-Daten via mquery ermöglichen.

Windows 8.1: Tastaturkürzel

Da ein Administrator ja immer „faul“ ist, hier mal die wichtigsten Tastaturkürzel für Windows 8.1:

Windows-Taste –> Wechselt zwischen Startbildschirm und der letzten App
Windows-Taste + C –> Öffnet die Charm-Leiste, diese wird an der rechten Seite des Desktops eingeblendet. Gleichzeitig wird Uhrzeit und Datum angezeigt.
Windows-Taste + D –> Wechselt zum Desktop
Windows-Taste + E –> Startet den Windows-Explorer
Windows-Taste + F –> Öffnet das Suchfenster für Dateien
Windows-Taste + H –> Öffnet das Teilen-Menü in der Charm-Leiste, beispielsweise um einen Screenshot des Desktops per Mail zu versenden.
Windows-Taste + I –> Öffnet das Einstellungsmenü in der Charm-Leiste, inklusive Systemsteuerung.
Windows-Taste + K –> Öffnet das Geräte-Menü in der Charm-Leiste.
Windows-Taste + L –> Sperrt das System
Windows-Taste + Q –> Öffnet das Suchmenü (Überall)
Windows-Taste + P –> Öffnet die Optionen für einen zweiten Bildschirm
Windows-Taste + R –> Öffnet den Ausführen-Dialog.
Windows-Taste + U –> Öffnet das Center für die erleichterte Bedienung (Bildschirmlupe, Bildschirmtastatur, hoher Kontrast etc.)
Windows-Taste + X –> Öffnet eine Art kleines Startmenü, aus dem man unter anderem zum Geräte-Manager gelangt oder das System herunter fahren kann.
Windows-Taste + Enter –> Startet die Sprachausgabe
Windows + Pause –> Wechselt in die Systemsteuerung /System.
Windows + Pfeil nach unten –> Minimiert das Fenster / Minimiert die laufende Kachel-App
Windows + Pfeil nach links –> App / Fenster läuft auf der linken Bildschirmhälfte
Windows + Pfeil nach oben –> Fenster oder App maximieren
Windows + Plus –> Bildschirmlupe (wird mit Windows + ESC beendet)

Wer noch die alten Tastaturkürzel nachschlagen möchte, kann dies hier tun: Click mich!

Kostenloser Webfilter: K9 Web Protection

Das offene Internet ist eine Gefahrenquelle hoch drei: nicht nur böse Inhalte sind hier zu finden, sondern auch diverse Schadsoftware (Viren, Trojaner, etc).

Auf der Suche nach einem geeigneten Webfilter (speziell für Kinder) bin ich auf den „K9 Web Protection“ Filter von Blue Coat gestoßen. Die verwendeten Filterlisten sind auch in den großen Business Produkten von Bluecoat zu finden, was einen erheblichen Vorteil bietet.

Die Liste ist in verschiedene Kategorien unterteilt und man kann diese (neben eigenen Filtern) direkt benutzen bzw. sperren.

Folgende Funktionalitäten werden mitgebracht:

  • Filter mit ~70 Kategorien
  • Safe Search für fast jede Suchmaschine
  • Zeitzugangsbeschränkungen
  • eigene Listen/Filter
  • Einbruchsschutz (für Kinder die dies gern umgehen möchten!)
  • Reports
  • Echtzeitfilter für neue „böse Sites“
  • Verfügbar für Windows und Mac

Sollte doch mal eine Site falsch einsortiert worden sein, kann dies einer erneuten Überprüfung unterzogen werden (Click mich!).

Bisher habe ich mit dem Tool sehr gute Erfahrungen (auch bei den Kindern) gemacht!

Hier gehts zum Download und weiteren Informationen: Click mich!

Blue Coat: Website ist in der falschen WebPulse Kategorie eingetragen

Der Hersteller Blue Coat liefert bei seinen Produkten auch direkt eine sehr gute Filterliste (für Proxy etc) für alle möglichen Arten von Websites mit. Hierdurch ist es möglich, bestimmte Kategorien im Netz direkt auszusperren, ohne viel Aufwand betreiben zu müssen.

Allerdings kann es trotzdem vorkommen, das versehentlich oder aus historischen Gründen eine Website falsch Kategorisiert wurde.

Hierzu stellt Blue Coat eine Website zur Verfügung, wo man die Site/Domain nochmals prüfen lassen kann. Die Bearbeitung erfolgt innerhalb von 24h.

Hier gehts zum „WebPulse Antrag zur Überprüfung einer Website„: Click mich!

Unix: Suchen von Text/Strings in Dateien unterschiedlicher Verzeichnisse

Zur Suche von Textteilen/Strings in bestimmten Dateien, die in verschiedenen Verzeichnissen liegen, kann folgendes Kommando verwendet werden:

 

find . -name *.txt -exec grep Bauteil {} \; -print

Bauteilliste:
ingesamt 25 Bauteile
./relativer_verzeichnispfad_1/datei_1.txt
hohe Bauteile, größer 2m kommen
kleine Bauteile werden getragen
Bauteillisten gibt es unter ...
./relativer_verzeichnispfad_2/datei_2.txt

 

Das Suchkommando find startet vom aktuellen Verzeichnis „.“ die Suche im aktuellen und in allen Unterverzeichnissen nach Dateien mit der Endung *.txt.
Die gefundenen Dateien werden mit dem nach -exec angegebenem grep Kommando nach dem String „Bauteil“ durchsucht und die gefundenen Zeilen mit -print ausgegeben.
Eine Besonderheit ist, das erst die gefundenen Zeilen und danach die den String enthaltene Datei angezeigt wird. Dabei steht der Dateiname mit dem relativen Pfad von der aktuellen Position im Dateisystem.

Eine Alternative zu dem -exec Schalter im find ist die Übergabe der Dateinamen an das Kommando xargs via Pipe:

find . -name *.txt | xargs grep Bauteil 

./relativer_verzeichnispfad_1/datei_1.txt:Bauteilliste:
./relativer_verzeichnispfad_1/datei_1.txt:ingesamt 25 Bauteile
./relativer_verzeichnispfad_2/datei_2.txt:hohe Bauteile, größer 2m kommen
./relativer_verzeichnispfad_2/datei_2.txt:kleine Bauteile werden getragen
./relativer_verzeichnispfad_2/datei_2.txt:Bauteillisten gibt es unter ...

 

Raspberry Pi – Bücher für den Start

Raspberry Pi für Einsteiger – der Mini-PC, der alles kann!

In diesem kleinen preiswerten Taschenbuch beschreiben Matt Richardson und Shawn Wallace, was man mit dem Kleinstcomputer Raspberry Pi alles anstellen kann.
Nach einem kurzen technischen Überblick der verbauten Hardware werden einige Grundlagen des Unix Betriebssystems vermittelt, bevor es an die Umsetzung möglicher Projekte mit Python, Scratch oder die Verbindung zu externen Geräten via GPIO geht.


Broschiert: 159 Seiten
Verlag: O’Reilly; Auflage: 1 (28. April 2013)
Sprache: Deutsch
ISBN-10: 3955611477
ISBN-13: 978-3955611477
Größe: 20,8cm x14,6cm x1,4cm
gibt es auch für den Kindle bei Amazon


TheMagPi.com
– Webseite mit monatlichem Journal rund um den Raspberry Pi
„We produce a magazine with the intent to help and offer advice to users of the Raspberry Pi. This started out as a simple idea on the well known forums, with a few of us getting together and deciding on a loose outline of what we wanted to achieve.“
Journale zum Download (PDF)

Perl – Programm soll nur einmal laufen (UNIX)

Manchmal muss man unbedingt sicherstellen, dass ein Programm nur einmal läuft.
Dazu guckt das Programm in die Prozessliste und stellt hoffentlich fest, das es selbst nur einmal läuft.
Grundlage ist das Kommando pgrep.

cmd> pgrep -f mein_script
2120
8094
8119

Es liefert die Prozess_ID’s – in diesem Beispiel läuft „mein_script“ drei mal.
Im Programm zählt man nur die Zeilen und bricht bei mehr als einer Zeile ab.

$i=0;
open(CMD,"pgrep -f mein_script | ") or die;
while ( $line=<CMD> )  {
  $i++;
};
close(CMD);
exit if ( $i > 1 );


Hier weichen wir auf das externe Systemkommando pgrep aus und leiten es über eine Pipe der Standardausgabe an unser Programm. Wer also nicht mit Perl arbeitet, kann gleiche Funktionalität auch mit der Shell oder allen anderen Programmiersprachen, die meist immer Zugriff auf externe Kommandos bieten, realisieren.

Raspberry Pi: Mit dem Root-User arbeiten

Als User pi setzt man die „administrativen“ Kommandos mit

sudo Kommando

ab. Das wird schnell lästig, wenn man mehrere Kommandos abgesetzt, die zur Systemverwaltung und Konfiguration benötigt werden. Der Befehl

sudo su

kann schnell helfen. Nun befindet man sich im Kontext des root-Users … und zwar ohne Eingabe eines Passwortes. Das ist ein „kleines“ Sicherheitsrisiko. Deshalb sollte man ein Passwort auch für den root-User vergeben (und nie vergessen!).

pi@raspbox /$ sudo su
root@ raspbox:/home/pi# passwd
Geben Sie ein neues UNIX-Passwort ein: 
Geben Sie das neue UNIX-Passwort erneut ein: 
passwd: Passwort erfolgreich geändert
root@raspbox:/home/pi# exit
pi@raspbox /$


<blau> hier arbeiten wir im Kontext des root-Users!