1 2
#!/usr/bin/perl -w system('/shares/www/cgi-bin/rolladen_conf.pl', 'raum=egwc');
1 2
#!/usr/bin/perl -w system('/shares/www/cgi-bin/rolladen_conf.pl', 'raum=egwc');
1 2 3 4
use CGI; my $query = new CGI; $param = $query->param('raum'); system('/shares/www/cgi-bin/rolladen_conf.pl', "raum=$param");
1 2 3 4 5 6 7 8 9 10
use CGI; my $query = new CGI; $param = $query->param('raum'); if ($param =~ /^[A-Za-z]+$/) { my $retcode = system('/shares/www/cgi-bin/rolladen_conf.pl', "raum=$param"); die "system failed: $?" if $retcode != 0; } else { print "Rollladen ok" }
http://www.deine-domain.tld/cgi-bin/rolladen_conf.pl?raum=egwc
Guest werhat der account unter dem der webserver läuft das recht auf die serielle schnittstelle zuzugreifen? das ist normalerweise nicht der fall
weiterhin schreibe ein keines script das nichts weiter macht als die übergeben parameter in ein eine datei zu schreiben. setze das dann anstatt des richtigen scipts in system ein und schaue ob die parameter überhaupt übergeben werden.
1 2 3 4 5 6 7 8 9 10 11 12
my $scriptname = $query->url(-relative => 1); my $raum = $query->param('raum'); ### Parameter: # befehl_senden.pl?daten=XYZ;script=rolladen_conf.pl+raum=egwc print $query->start_form; print $query->input('daten'); print $query->submit; print $query->hidden('script', $scriptname); print $query->hidden('raum', $raum ); print $query->end_form;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/usr/bin/perl -w
use strict;
use CGI;
use Device::SerialPort;
use LWP::Simple;
my $query = new CGI;
my $port = new Device::SerialPort("/dev/ttyUSB0");
$port->baudrate(9600);
$port->parity("none");
$port->databits(8);
$port->stopbits(1);
$port->handshake("xoff");
$port->write_settings;
$port->stty_echo("off");
$port->lookclear;
$port->purge_rx;
$port->write($query->param('befehl'));
$port->write(";");
sleep(1);
my $script = "http://Benutzername:Kennwort\@192.168.0.2/cgi-bin/".$query->param('script');
getprint($script);
Guest OliverBitt tu mir einen Gefallen, nenne nicht hier alle, die geholfen und sinnvolles gepostet haben, Kinder.Kinders, Kinders....
Ich will mich jetzt auf keinen Fall beschweren.
(...)
p.s. Bitte nicht böse sein, wenn ich etwas hart geantwortet habe!
2014-08-28T13:56:51 clmsDen einschränkenden letzten Halbsatz ziehe ich hiermit zurück.Ich bekomme immer eine Krise, wenn ich Perl-Skripte sehe, die andere Perl-Skripte per system starten, obwohl das hier u.U. tatsächlich die passende Lösung ist.
1
2
3
4
5
use LWP::Simple;
my $query = new CGI;
my $script = "http://Benutzername:Kennwort\@192.168.0.2/cgi-bin/".$query->param('script');
getprint($script);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use Device::SerialPort;
my $query = new CGI;
my $port = new Device::SerialPort("/dev/ttyUSB0");
$port->baudrate(9600);
$port->parity("none");
$port->databits(8);
$port->stopbits(1);
$port->handshake("xoff");
$port->write_settings;
$port->stty_echo("off");
$port->lookclear;
$port->purge_rx;
$port->write($query->param('befehl'));
$port->write(";");
my $port = new Device::SerialPort("/dev/ttyUSB0");
my $port = Device::SerialPort->new("/dev/ttyUSB0");
User <=> Webinterface(CGI) | hardware.pl