Schrift
[thread]12233[/thread]

Variable über Web steuern (Seite 2)

Leser: 2


<< |< 1 2 >| >> 20 Einträge, 2 Seiten
MarioH
 2008-07-30 16:26
#112899 #112899
User since
2008-07-24
11 Artikel
BenutzerIn
[default_avatar]
Muss mich leider mangels Perl-Kenntnisse weiter herantesten. Sicherlich lernt man aus Fehlen;aber ein kleines Erfolgserlebnis wäre nicht schlecht ;-)

aktueller Code
Code: (dl )
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
#!/usr/bin/perl 
use strict;
use warnings;
use CGI qw/:standard/;

# Neues CGI-Objekt, mit dem du Parameter auslesen kanns, HTTP-Header und HTML
# ausgeben kannst
my $query = CGI->new();

# Header ausgeben
print $query->header();

my $variable_value = $query->param('variable');

# ACHTUNG: Nachdem du den Wert der Variable in ein Shell-Skript weitergibst,
# solltest du unbedingt prüfen, dass da kein Mist drinsteht. Da ich nicht weiss,
# welche Werte denn in dieser Variablen stehen dürfen, kann ich dir dafür keinen
# Check vorgeben!!!

open my $pipe, '|-', '/etc/test.sh' or die $!;
{
local $SIG{PIPE} = 'IGNORE';
print $pipe "$variable_value" or die $!;
}
close $pipe or die $?;


Fehler bei Ausführung:
Code: (dl )
Use of uninitialized value in string at mario.cgi line 23.


Von einem funktionierenden Beispiel aus würde ich sicherlich die genannten Quellen und Tipps zum Test verarbeiten können.

Danke

Mario
renee
 2008-07-30 16:28
#112900 #112900
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Hast Du denn einen Wert für den Parameter "variable" angegeben?

Wenn Du das in der Konsole aufrufst mit perl skript.pl variable=wert und im Browser
Code: (dl )
http://domain.example/cgi-bin/skript.pl?variable=wert
.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
MarioH
 2008-07-30 16:38
#112901 #112901
User since
2008-07-24
11 Artikel
BenutzerIn
[default_avatar]
Doppeleingabe
renee
 2008-07-30 16:48
#112902 #112902
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Lies Dir mal diesen Wiki:Artikel durch. Da wird auf mehrere mögliche Ursachen für den Fehler hingewiesen.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
MarioH
 2008-07-30 17:12
#112903 #112903
User since
2008-07-24
11 Artikel
BenutzerIn
[default_avatar]
FORTSCHRITT!!!

Nach Änderung des Aufrufes des Programmes mit sudu funktioniert es per Browser. Jetzt suche ich nur noch eine Möglichkeit, diesen Wert (oder Möglichst mehrere) per Formular zu erfassen und dann zu übergeben.

Für Beispielcode und einen Link (ich suche aktuell auch im Wiki!) bin ich wieder sehr dankbar!

Mario
renee
 2008-07-30 17:25
#112904 #112904
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
MarioH
 2008-07-30 16:46
#112905 #112905
User since
2008-07-24
11 Artikel
BenutzerIn
[default_avatar]
Die lokale Verarbeitung mit

Code: (dl )
perl mario.cgi variable=zzz


funktioniert. Es entsteht die Textdatei zzz.


Im Browser bring die URL

Code: (dl )
http://ip.ip.ip.ip/cgi-bin/mario.cgi?variable=zzz


den Fehler:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<h1>Serverfehler!</h1>
<p>




Die Anfrage kann nicht beantwortet werden, da im Server
ein interner Fehler aufgetreten ist.

</p>
<p>


Fehlermeldung:
<br />Premature end of script headers: mario.cgi



</p>


Muss die Variable später immer per URL übergeben werden? Ich dachte ursprünglich an ein Textfeld. Ziel ist ja noch immer die Eingabe von Daten in einem Formular, welches dann die Variablen für ein bach-Script liefert. Sollte ich dies nicht so deutlich beschrieben haben, bitte ich um Entschuldigung!

Danke!

Mario
nepos
 2008-07-30 18:18
#112907 #112907
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Also, bisschen was musst du schon selber machen!
MarioH
 2008-07-31 00:06
#112927 #112927
User since
2008-07-24
11 Artikel
BenutzerIn
[default_avatar]
@nepos

Da hast Du natuerlich recht. In der Zwischenzeit habe ich mich auch weiter bemüht.

@all

Ich habe jetzt die Übergabe mit einem Formular und Get erfolgreich einrichten können. Mein Vorhaben funktioniert also testweise mit einer Variablen sehr gut. Leider ist jetzt die letzte Hürde, dass ich das Perl-Script auf mehrere Variablen erweitern muss.

Ich möchte also mehrere Abfragen der Bash-Datei, die am Anfang abgefragt werden, bedienen.

ala

vorher lokales Bash-Script:
Code: (dl )
1
2
3
4
...
read variable1
touch ${variable1}
...


jetzt soll aber lokal folgendes Bash-Script angesprochen werden
Code: (dl )
1
2
3
4
5
6
7
8
...
read variable1
read variable2
read variable3
touch ${variable1}
touch ${variable2}
touch ${variable3}
...


Ich habe schon etwas experimentiert und geschaut, aber noch keinen Anhaltspunkt für das Abarbeiten dieser Variablen. Über das Formular übergebe ich erfolgreich die URL

Code: (dl )
http://...test.pl?variable1=eins.txt&variable2=zwei.txt&variable3=drei.txt


Ich möchte also das funktionierende Script um die 2 weiteren Variablen erweitern

das Script für eine Variable
Code: (dl )
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
#!/usr/bin/perl 
use strict;
use warnings;
use CGI qw/:standard/;

# Neues CGI-Objekt, mit dem du Parameter auslesen kanns, HTTP-Header und HTML
# ausgeben kannst
my $query = CGI->new();

# Header ausgeben
print $query->header();

my $variable_value = $query->param('variable');

# ACHTUNG: Nachdem du den Wert der Variable in ein Shell-Skript weitergibst,
# solltest du unbedingt prüfen, dass da kein Mist drinsteht. Da ich nicht weiss,
# welche Werte denn in dieser Variablen stehen dürfen, kann ich dir dafür keinen
# Check vorgeben!!!

open my $pipe, '|-', 'sudo /etc/test.sh' or die $!;
{
    local $SIG{PIPE} = 'IGNORE';
    print $pipe $variable_value or die $!;
}
close $pipe or die $?;


Vielen Dank für helfende Infos!

Mario
MarioH
 2008-07-31 13:29
#112931 #112931
User since
2008-07-24
11 Artikel
BenutzerIn
[default_avatar]
PROBLEM GELÖST - BEITRAG IST ABGESCHLOSSEN

mit dem erzwungenen Zeilenumbruch \n nach der ersten Variablen springt er nun nur zweiten variablen und arbeitet das Bash-Skript weiter ab.

Vielen Dank für die (gerade anfangs) hilfreichen Worte!

Mario
<< |< 1 2 >| >> 20 Einträge, 2 Seiten



View all threads created 2008-07-24 00:27.