Code:
curl "http://localhost/visu-svn/plugins/rsslog/rsslog.php?c=test%20ueber%20curl1&t\[\]=tag5,tag6"
Code:
wget -O- "http://localhost/visu-svn/plugins/rsslog/rsslog.php?c=test%20ueber%20wget&t[]=tag6,tag7"
Micha
curl "http://localhost/visu-svn/plugins/rsslog/rsslog.php?c=test%20ueber%20curl1&t\[\]=tag5,tag6"
wget -O- "http://localhost/visu-svn/plugins/rsslog/rsslog.php?c=test%20ueber%20wget&t[]=tag6,tag7"
curl http://localhost/visu-svn/plugins/rsslog/rsslog.php?c=test%20ueber%20curl
http://localhost/visu-svn/plugins/rsslog/rsslog.php?c=test%20ueber%20browser&t[]=tag1,tag2,tag3
-bash: t[]: bad array subscript
2012-04-29 22:49:32.327,A_GroupValue_Write,1.1.12,1/4/10,01,1,DPT_Bool,1.002,0,low,5,T_DATA_XXX_REQ,0 2012-04-29 22:49:32.475,A_GroupValue_Write,1.1.12,1/4/10,01,1,DPT_Bool,1.002,0,low,4,T_DATA_XXX_REQ,0 2012-04-29 22:49:33.519,A_GroupValue_Write,1.1.12,1/4/10,00,0,DPT_Bool,1.002,0,low,5,T_DATA_XXX_REQ,0 2012-04-29 22:49:33.706,A_GroupValue_Write,1.1.12,1/4/10,00,0,DPT_Bool,1.002,0,low,4,T_DATA_XXX_REQ,0
### Plugin zum erstellen von RSS-logs
# Fuer Verwendung mit rsslog.php / CometVisu
# man koennte natuerlich ebenso das rsslog.php direkt mit LWP::Useragent oder
# wget aufrufen, hier soll aber auch die Verwendung von SQLite Datenbanken
# demonstriert werden.
# Wichtig:
# - benoetigt Paket libdbd-sqlite2-perl
# - weil in PHP nur sqlite2 verfuegbar
#
# v0.1
# 2012-01-08
###################
### DEFINITION ###
###################
$plugin_info{$plugname . '_cycle'} = 0; # Aufrufzyklus - never
my @actionGA;
# Datenpunkttypen MUESSEN in der globalen config angegeben sein!
# Logeintrag bei bestimmtem Wert
# push @actionGA, { Test => "Eintrag1 ohne Wert", content => 'Textinhalt1', tags => "tag1,tag3", trigger_ga => "2/1/2", value => 1 };
# Logeintrag beliebigem Wert: value weglassen
# %s wird mit sprintf durch den Wert ersetzt, anderes wie %.2f geht auch in content oder title!
# man printf ;)
push @actionGA, { Test => "Eintrag2 mit Wert unabhaengig vom Wert %.2f", content => 'Textinhalt %s', tags => "tag4", trigger_ga => "1/4/10"};
########################
### Ende DEFINITION ###
########################
use DBI;
my $logdb = '/etc/wiregate/rss/rsslog.db';
# check setup, rights, DB
if (! -d dirname($logdb)) {
mkdir(dirname($logdb),0777);
}
if (! -e $logdb) {
return "$logdb existiert nicht! Bitte mit rsslog.php anlegen"; # FIXME: create sqlite-db
}
if ($msg{'apci'} eq "A_GroupValue_Write") { # Telegramm eingetroffen
foreach my $element (@actionGA) {
if ($msg{'dst'} eq "$element->{trigger_ga}") {
if (defined $element->{value}) { # skip if value is defined and not what we like
next unless "$msg{'value'}" eq "$element->{value}"; }
my $dbargs = {AutoCommit => 0, PrintError => 1};
my $dbh = DBI->connect("dbi:SQLite2:dbname=$logdb", "", "", $dbargs);
$dbh->do('INSERT INTO Logs(content, title, tags, t) VALUES( ' .
" '" . sprintf($element->{content},$msg{'value'}) . "'," .
" '" . sprintf($element->{title},$msg{'value'}) . "'," .
" '" . $element->{tags} . "'," .
" datetime('now') );");
if ($dbh->err()) { return "DB-Fehler: $DBI::errstr\n"; }
$dbh->commit();
$dbh->disconnect();
return; # "V: " . $dbh->{sqlite_version};
}
}
} else { # zyklischer Aufruf/initialisierung
#subscribe GAs
foreach my $element (@actionGA) {
$plugin_subscribe{$element->{trigger_ga}}{$plugname} = 1;
}
}
return; # "Noop";
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.


Einen Kommentar schreiben: