Schrift
[thread]11611[/thread]

URL Weiterleitung bei Kontaktformular mit Perl (Seite 2)



<< |< 1 2 3 >| >> 22 Einträge, 3 Seiten
renee
 2008-04-09 16:53
#108153 #108153
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Jetzt noch das fehlende ' in der Zeile mit dem Redirect und dann müsste es passen. Ich habe hier aber keine Möglichkeit das zu testen.
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/
Eastwood
 2008-04-09 17:00
#108154 #108154
User since
2008-04-09
6 Artikel
BenutzerIn
[default_avatar]
Ich hab das Script jetzt mal hochgeladen und getestet: Folgender Fehler wurde dabei ausgegeben:

CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:

Global symbol "$frage" requires explicit package name at D:\VirtualServers\aluchrom\cgi\mail.pl line 9.
Global symbol "$frage" requires explicit package name at D:\VirtualServers\aluchrom\cgi\mail.pl line 13.
Global symbol "@frage" requires explicit package name at D:\VirtualServers\aluchrom\cgi\mail.pl line 15.
Global symbol "$frage" requires explicit package name at D:\VirtualServers\aluchrom\cgi\mail.pl line 15.
Global symbol "$i" requires explicit package name at D:\VirtualServers\aluchrom\cgi\mail.pl line 16.
Global symbol "@frage" requires explicit package name at D:\VirtualServers\aluchrom\cgi\mail.pl line 16.
Global symbol "@frage" requires explicit package name at D:\VirtualServers\aluchrom\cgi\mail.pl line 18.
Global symbol "$i" requires explicit package name at D:\VirtualServers\aluchrom\cgi\m


Was kann ich jetzt daraus entnehmen?
Linuxer
 2008-04-09 17:20
#108156 #108156
User since
2006-01-27
3891 Artikel
HausmeisterIn

user image
Wenn Du "use strict;" verwendest (und das sollte man), musst Du, bevor Du eine Variable benutzen kannst, diese mit "my" deklarieren.

Code (perl): (dl )
my $variable = 'initial';


perldoc strict
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
pq
 2008-04-09 17:21
#108157 #108157
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
Eastwood+2008-04-09 15:00:04--
Global symbol "$frage" requires explicit package name at D:\VirtualServers\aluchrom\cgi\mail.pl line 9.
...

renee hatte ja schon gesagt, dass es zu strict mehr infos unter
Wiki:Artikel
gibt.
du musst schon auch selbst ein bisschen lesen.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
#Kein Kommentar
 2008-04-09 17:21
#108158 #108158
User since
2007-06-09
575 Artikel
HausmeisterIn
[default_avatar]
das du dein script erst mal so ändern solltest:

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/usr/bin/perl

use strict;
use CGI;

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

my ($frage);
if ($ENV{'REQUEST_METHOD'} eq "GET"){
$frage=$ENV{'QUERY_STRING'};
}elsif ($ENV{'REQUEST_METHOD'} eq "POST"){
read (STDIN,$frage,$ENV{'CONTENT_LENGTH'});
}

my @frage = split /&/,$frage;
my %Frage;

foreach my $i(0..$#frage){
$frage[$i]=~s/\+/ /g;
my ($key,$value) = split /=/,$frage[$i],2;
$key=~s/%(..)/pack("c",hex($1))/ge;
$value=~s/%(..)/pack("c",hex($1))/ge;
$key=~s/\n/ /g;
$value=~s/\n/ /g;
$key=~s/\"/ /g;
$value=~s/\"/ /g;
$Frage{$key}=$value;
}


my ($sec,$min,$hour,$mday,$mon,$year,$wday,$ydat,$isdst)=gmtime();
my $jahr = $year + 1900;
my $monat = $mon+1;
my $tag = $mday;

# Definition der Maildatei
my $tempfile = 'd:\perl_temp\data\XXX.tmp';
print CGI::redirect('http://www.yahoo.de/');

# Oeffnen der Maildatei
open( OUT, ">$tempfile" );

print OUT "From: info\@XXX.de\n";
print OUT "To: info\@XXX.de\n";
print OUT "Subject: .:Anfrage via Kontaktformular:.\n\n";
print OUT "Heute ist der $tag.$monat.$jahr .\n\n";
print OUT "Folgende Daten wurden angegeben.\n";
print OUT "Firma:$Frage{Firma}\n";
print OUT "Name: $Frage{Name}\n";
print OUT "Telnr: $Frage{Tel}\n";
print OUT "Betreff:$Frage{Betreff}\n";
print OUT "Mitteilung:$Frage{Mitteilung}\n";
close (OUT);

# Maildatei $tempfile ins Verzeichnis pickup kopieren
# Sie wird von dort automatisch als Mail versendet.
my $maildat='copy d:\perl_temp\data\XXX.tmp c:\inetpub\mailroot\pickup\XXX.tmp';
`$maildat`;

# Maildatei im Verzeichnis d:\perl_temp\data anschliessend loeschen:
unlink $tempfile;


und diesen artikel wirklich lesen solltest:

use strict
Gerade weil wir alle in einem Boot sitzen, sollten wir froh sein, dass nicht alle auf unserer Seite sind
pq
 2008-04-09 17:22
#108159 #108159
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
Linuxer+2008-04-09 15:20:06--
Wenn Du "use strict;" verwendest (und das sollte man), musst Du, bevor Du eine Variable benutzen kannst, diese mit "my" deklarieren.

Code (perl): (dl )
my $variable = 'initial';


perldoc strict

renee hatte den link zu unserer wiki-seite zu strict schon gepostet.
imho wird viel zu wenig das wiki genutzt.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
pq
 2008-04-09 17:23
#108160 #108160
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
achja, wozu links zu artikeln posten, wenn doch immer jemand daherkommt und ein
fertiges skript postet...
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
#Kein Kommentar
 2008-04-09 17:26
#108161 #108161
User since
2007-06-09
575 Artikel
HausmeisterIn
[default_avatar]
hatte eben meinen guten tag... :)
nein, aber ich meine, wenn es wirklich sein erstes script war, das er noch nicht mal selbst geschrieben hatte (derjenige, der es geschrieben hat, sollte sich wirklich schämen!), dann konnte er wahrscheinlich nicht viel mit dem strict-artikel anfangen und hätte noch ewig hier weitergefragt.
Gerade weil wir alle in einem Boot sitzen, sollten wir froh sein, dass nicht alle auf unserer Seite sind
renee
 2008-04-09 17:28
#108162 #108162
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
#Kein Kommentar+2008-04-09 15:21:43--
das du dein script erst mal so ändern solltest:

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
26
27
28
29
30
#!/usr/bin/perl

use strict;
use CGI;

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

my ($frage);
if ($ENV{'REQUEST_METHOD'} eq "GET"){
$frage=$ENV{'QUERY_STRING'};
}elsif ($ENV{'REQUEST_METHOD'} eq "POST"){
read (STDIN,$frage,$ENV{'CONTENT_LENGTH'});
}

my @frage = split /&/,$frage;
my %Frage;

foreach my $i(0..$#frage){
$frage[$i]=~s/\+/ /g;
my ($key,$value) = split /=/,$frage[$i],2;
$key=~s/%(..)/pack("c",hex($1))/ge;
$value=~s/%(..)/pack("c",hex($1))/ge;
$key=~s/\n/ /g;
$value=~s/\n/ /g;
$key=~s/\"/ /g;
$value=~s/\"/ /g;
$Frage{$key}=$value;
}

[...]


Warum selbst den Content-type ausgeben, wenn sowieso schon CGI geladen wird? Einfach print CGI::header();

Warum das Parsen selbst machen? Einfach my %Frage = CGI::Vars();
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/
renee
 2008-04-09 17:29
#108163 #108163
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
pq+2008-04-09 15:22:29--
imho wird viel zu wenig das wiki genutzt.


++
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/
<< |< 1 2 3 >| >> 22 Einträge, 3 Seiten



View all threads created 2008-04-09 15:21.