Problem mit script

shuub

Grünschnabel
Hi, ich bekomme bei folgendem Skript immer die Fehlermeldung "Internal Server Error... unable to complete your request..."
In der cgi_error.log steht:
"syntax error at /home/www/email.pl line 227, near "}"
syntax error at /home/www/email.pl line 272, near "}"
Execution of /home/www/email.pl aborted due to compilation errors."

Code:
sub check_required {

    local($require, @error);

    if ($Config{'subject'} =~ /(\n|\r)/m || $Config{'email'} =~ /(\n|\r)/m ||
        $Config{'nachname'} =~ /(\n|\r)/m || $Config{'recipient'} =~ /(\n|\r)/m)|| {
        &error('invalid_headers');
        }   # <--- line 227 #

    if (!$Config{'recipient'}) {
        if (!defined(%Form)) { &error('bad_referer') }
        else                 { &error('no_recipient') }
    }
    else {
        $valid_recipient = 0;
        foreach $send_to (split(/,/,$Config{'recipient'})) {
            foreach $recipient (@recipients) {
                if ($send_to =~ /$recipient$/i) {
                    push(@send_to,$send_to); last;
                }
            }
        }
        if ($#send_to < 0) { &error('no_recipient') }
        $Config{'recipient'} = join(',',@send_to);
     }

    foreach $require (@Required) {

        if ($require eq 'email' && !&check_email($Config{$require})) {
            push(@error,$require);
        }

        elsif (defined($Config{$require})) {
            if ($Config{$require} eq '') { push(@error,$require); }
        }

        elsif (!defined($Form{$require}) || $Form{$require} eq '') {
            push(@error,$require);
        }
    }

    if (@error) { &error('missing_fields', @error) }
}

Die 272 lass ich erstmal weg...
Versuchts bitte einfach zu erklären, kenn mich mit perl überhauptnicht aus :/
Danke & fG
shuub
 
wie sieht es denn mit anderen Progi-Sprachen aus?
Nimm mal zwei Zeilen vorher die beiden || hinten weg.
Die ODER Bedingung macht da keinen Sinn mehr. Es kommt gleich der Block {} mit der Anweisung.
 
Schau Dir mal die erste If-Abfrage an... na, fällt was auf Du schließt die If-Bedingung, machst dann aber noch ein ||
Code:
if ($Config{'subject'} =~ /(\n|\r)/m || $Config{'email'} =~ /(\n|\r)/m ||
        $Config{'nachname'} =~ /(\n|\r)/m || $Config{'recipient'} =~ /(\n|\r)/m)|| {
        &error('invalid_headers');
        }   # <--- line 227 #

müsste
Code:
if ($Config{'subject'} =~ /(\n|\r)/m || $Config{'email'} =~ /(\n|\r)/m ||
        $Config{'nachname'} =~ /(\n|\r)/m || $Config{'recipient'} =~ /(\n|\r)/m){
          &error('invalid_headers');
        }   # <--- line 227 #

heißen!
 
Zuletzt bearbeitet:
Hm, was genau das wäre, das "profy" schon geschrieben hat.
Code:
if ($Config{'subject'} =~ /(\n|\r)/m || $Config{'email'} =~ /(\n|\r)/m ||
        $Config{'nachname'} =~ /(\n|\r)/m || $Config{'recipient'} =~ /(\n|\r)/m) {
        &error('invalid_headers');
        }   # <--- line 227 #
^^ bringt den selben Fehler

ganz dumm bin ich ja nüsch :(
 
Ich kenn das Skript nun nicht komplett, aber ist es möglich, es in der Konsole aufzurufen?
Wenn ja, dann versuch mal den Perldebugger
Code:
perl -d
oder vorher
Code:
perl -c
um die Syntax des Skript es zu überprüfen.

Vielleicht hilf das zumiondest mit einer anderen oder genaueren Fehlermeldung weiter.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück