perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 30
Click for quality!




11.02.2012 / 18:22

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragHTML Perl - oder Weiterleitung
Seitenanfang
Hi,

hab jetzt ziemlichen jeden Beitrag hier im Forum studiert zwecks html in perl einbinden, oder umgekehrt ... bzw eine Weiterleitung per Perl zu realisieren...

Und zwar folgender Code:


#!c:/perl/bin/Perl.exe
##
## printenv -- demo CGI program which just prints its environment
##
print "Content-type: text/plain; charset=iso-8859-1\n\n";

$buffer = $ENV{'QUERY_STRING'};
@nvpairs = split(/&/,$buffer);
foreach $pair (@nvpairs)

{
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$FORM{$name} = $value;
$value =~ tr/"/ /;
}

print '<a href="http://129.247.173.64">zurück</a>';

`ktest.bat \"$value\"`;

Ich habe eine Textbox auf der index.html die ihren content über action - get an das Perl-Script message.pl sendet.... die verarbeitung seht ihr ja.
So das Script funktioniert wunderbar, jedoch hinterlässt er eine leere weiße Seite, die relativ unschön aussieht ^^. Und daher suche ich eine möglichkeit, eine Weiterleitung zu realisieren, bzw evtl einen Button einzufügen. Jedoch alle meine Versuche endeten damit, dass das Script alle Versuche nur als Bildschirmtext ausgegeben hat ... bzw mit ERROR beendet.

Ich hoffe mir kann hierbei jemand helfen ... wäre echt nett!!!

Riesigen Dank im Voraus ...

Gruß
Benni

Datum: 22.11.2005-16:28

Beitragre: HTML Perl - oder Weiterleitung
Seitenanfang
Hi,
hmmm, also immer, wenn jemand "zu Fuss" CGI zu programmieren versucht, sehe ich Gurus, die ihm sagen: Nimm CGI. Nun bin ich kein Guru, kann mich dem aber nur anschliessen.

Nicht nur bekommst Du so viel leichter Zugriff auf den (bereits dekodierten) Formularinhalt, sondern es gibt auch Funktionen, um Header usw. schön auszugeben und Du sparst Die hässliche prints mit vielen Tags.

"man CGI" wird sicherlich sehr erhellend sein, da gibt's auch Beispiele.

Zum Posten in Foren kann es hilfreich sein, beide Zustände (Formular and Verarbeitung) in ein pl/cgi zu packen, dann kann man es per copy&paste selbst ausprobieren. So müsste ich mir jetzt Deine index.html selbst zusammenbauen, um das Problem zu finden.

Welcher ERROR taucht auf? Hast Du Zugriff auf das Apache Errorlog? Da steht nämlich die Perl Fehlermeldung dann drin. Das wird sicher weiterhelfen. Aber wie gesagt - ich würde das mit CGI neu implementieren - ist wirklich nicht schwer und bringt echt was.

Was soll

`ktest.bat \"$value\"`;
bewirken?

Gruss,
svenXY

Datum: 22.11.2005-16:52

Beitragre: HTML Perl - oder Weiterleitung
Seitenanfang

<HTML>
<HEAD>Send message to a DN group</HEAD>
<BODY>

<FORM method="GET" action="http://129.247.173.54/printenv.pl">

<TEXTAREA name="msg" rows="5" cols="60">
Coffe and Tea are ready</TEXTAREA>

<INPUT type="submit" value="Send">
</FORM>
</BODY>
</HTML>

Dies ist meine Index ... ich versuche jediglich den Inhalt des Formularfeldes auszulesen, ihn dem Perl-Script zu übergeben, diesen bearbeiten und der Batchdatei übergeben, die dann Active Directory Commands ausliest und von dort den Inhalt des Formularfeldes als Message an die AD-User schickt... sozusagen nen Messenger :D

Datum: 22.11.2005-17:16

Beitragre: HTML Perl - oder Weiterleitung
Seitenanfang
so in etwa würde es aber auch gehen (vor allem mit einem korrekten Header und ich musste das cgi ausfürbar machen.:

#!/usr/bin/perl -w
##
## printenv -- demo CGI program which just prints its environment
##

print "Content-type: text/html\n\n";

my %FORM;
my $buffer = $ENV{'QUERY_STRING'};

my @nvpairs = split(/&/,$buffer);
foreach my $pair (@nvpairs){
my ($name, $value) = split(/=/, $pair);
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ tr/+/ /;
$value =~ tr/"/ /;
$FORM{$name} = $value;
}

print '<body>';
print "whole QUERY STRING: $buffer<br><br>\n";

foreach my $key (%FORM) {
print "$key: $FORM{$key}<br>\n";
}
print '<a href="http://129.247.173.64">zurueck</a>';
print '</body>';

Datum: 22.11.2005-17:19

Beitragre: HTML Perl - oder Weiterleitung
Seitenanfang
Ahh ... jetzt weiss ich an was es lag ...

da ich oben beim content-type plain stehn hat, hat es nicht funktioniert ... klingt auch irgendwie logisch ... html reingeschrieben und alles funktioniert wunderbar ...

Danke für die super Hilfe ...

Gruß
Benni

Datum: 22.11.2005-17:35

Beitragre: HTML Perl - oder Weiterleitung
Seitenanfang
Hi,
gut, dass es jetzt geht!

Nur noch kurz was zu Sicherheit:
Du machst Folgendes:

`ktest.bat \"$value\"`;

Wenn nun jemand in das Formularfeld z.B.
text\"; deltree c:\\\"
einträgt, dann steht da:
`ktest.bat \"text\"; deltree c:\\\"\"`;

und damit wird bei Dir c:\ gelöscht (ich weiss, deltree gibt es nicht mehr, aber Du kannst Dir sicher vorstellen, was man damit alles so machen kann...

Du solltest also zumindest Deinen Feldinhalt vorher "säubern", damit man keine Befehle einschleusen kann.

Gruss,
svenXY

Datum: 23.11.2005-08:55

-






-
-