Zum Inhalt springen

[Perl/CGI]Problem mit perl -w und CGI


Empfohlene Beiträge

Hallo,

ich bin gerade dabei zu versuchen mir ein kleines Mailscript zu schreiben, was mir Mails anzeigt. Nun habe ich zwei sehr merkwürdige Phänomene. Hier erstmal das Script:


#!/usr/bin/perl -w

use CGI::Carp qw(fatalsToBrowser);

use CGI qw(:standard);

use strict;


use vars qw($destination_mail $file $mail $path $q $source_mail $subject

			@filelist @maillist);


# Path to the maildirectory

$path = "/home/benutzer/Maildir/new";


# open directory and read filenames

opendir(DIR, $path);

while($file = readdir(DIR)) {

	next if($file eq '.' || $file eq '..');

	push(@filelist,$file);

}

closedir(DIR);


# open and save mailfiles in array

for (@filelist) {

	open MAIL, "<$path/$_"

		or die "Kann Mailfile $_ nicht öffnen: $!";

	while (<MAIL>) {

		$mail .= $_;

	}

	close MAIL;

	push(@maillist,$mail);

}


# HTML Output

print header;

      start_html('Mailtest');


if(@maillist) {

	for (@maillist) {

		($source_mail) = /From:\s(.*)/;

		($destination_mail) = /To:\s(.*)/;

		($subject) = /Subject:\s(.*)/;

	}

	print

		"<b>Von: </b>$source_mail<br>\n",

		"<b>An: </b>$destination_mail<br>\n",

		"<b>Betreff: </b>$subject<br>\n",

		"<br><br>\n";

} else {

	print "Keine neuen Mails vorhanden!<br>";

}


print end_html;

Nun das 1. komische Ding:

Wenn ich das Script so im Browser abrufe "funktioniert" es (also nicht korrekt aber das siehe 2. Problem). Wenn ich allerdings statt perl -w nur perl mache, dann bekomme ich im Browser nen Internal Error und auf der Konsole sagt er mir ..:Command not found. Ich habe solch ein Problem noch nie gehabt, zumal andere Scripte ganz normal nur mir #!/usr/bin/perl ja auch laufen. Hat jemand eine Idee woran das liegen kann?

Das 2. komische Ding:

Wenn ich die CGI Sachen wie header, start_html usw. aus dem Script entferne (weil mit ihnen ja immer: (offline mode: enter name=value pairs on standard input) auf der Konsole kommt) und auf der Konsole starte, dann funktioniert es einwandfrei. Es stehen also in Felder "Von.." usw. die richtigen Sachen und er hat damit die Mail auch eingelesen. Wenn ich es aber im Browser aufrufe geht er in den elsezweig und zeigt mir an "Keine neuen Mails vorhanden!", obwohl ja nachweislich welche da sind. Er dreht es irgendwie genau um. Woran kann das liegen?

Ich bin für jeglichen Tip dankbar (auch Anregungen, wie ich es einfacher oder besser programmieren kann nehme ich gern an!)!

mfg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das Problem mit dem perl und dem perl -w hat sich erledigt. Leider hat das FTP Programm scheinbar falsch übertragen und die ganzen DOS ^M an jede Zeile gehängt. Damit kam perl dann scheinbar nicht mehr klar.

Nun funktioniert es auch mit #!/usr/bin/perl. Das Problem mit den ansyncronen Ausgaben besteht aber weiterhin. :(

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...