Hallo gary!
Habe ich gemacht. Das Ergebnis ist das hier:
5.008005
Hm, ist zwar nicht die aktuellste Version, aber immerhin eine 5.8.x.
Den "alten" FormMailer habe ich auf dein Anraten hin mit einer Lupe untersucht. Auch das Ergebnis hier:
Keine einzige "use"-Anweisung gefunden. Ebenfals keine einzige "die"- Anweisung.
Das wundert mich. Als wir vor ziemlich langer Zeit Deine Probleme mit dem FormMailer besprachen, hattest Du erwähnt, zwar eine ältere Version zu haben, soweit ich das verstanden habe, war das aber nicht mehr die Originalversion von Matt Wright - denn die ist eine wahre Spamschleuder.
Irgendwelche Leuten hatten Matts Skript überarbeitet und auf Source Forge zum Download angeboten. Davon habe ich die Version 2.9 vom 23.07.2002, die ich aber selbst überarbeitet habe und noch sicherer gemacht. Wie dem auch sei, so sieht der Beginn dieser Version aus:
#!/usr/bin/perl -wT
#
# $Id: FormMail.pl,v 2.9 2002/07/23 20:38:34 nickjc Exp $
#
use strict;
use POSIX qw(locale_h strftime);
use Text::Wrap; # Er for wrapping :)
use Socket; # for the inet_aton()
use CGI qw(:standard);
use vars qw(
$DEBUGGING $emulate_matts_code $secure
$allow_empty_ref $max_recipients $mailprog @referers
@allow_mail_to @recipients %recipient_alias
@valid_ENV $date_fmt $style $send_confirmation_mail
$confirmation_text $locale $charset $no_content @config_include
$wrap_text $wrap_style
);
Sowieso möchte ich keine Module verwenden. Wer weiss schon, was da genau drinne ist ;-)
Quatsch (C by Struppi). Module, die bei der Standardinstallation von Perl dabei sind, sind ohnehin gefahrlos zu verwenden. Und Module, die auf den CPAN-Seiten angeboten werden, würden sofort wieder 'rausfliegen, wenn sie fehlerhaft wären. Da passt die Perl-Community schon auf.
Mein "Perl" kennt kein "use"- wirklich nicht.
Quatsch.
Schreib nicht "Quatsch",
Doch, ich schreibe hier auch »Quatsch«. Denn ich kann mir nicht vorstellen, dass ein Webhoster Perl anbietet, ohne ein einziges Modul installiert zu haben. Außerdem sind »strict« oder »warnings« sogenannte Pragmata, und gehören auf jeden Fall zu einer Perl 5.8.x-Installation dazu.
Was ich mir evtl. vorstellen könnte, wäre dass die Module vielleicht anderswo installiert sind, als Perl sie erwartet. Da musst Du Deinen Provider fragen, was ich langsam sowieso machen würde. Einfach berichten, dass use-Anweisungen in Deinen Skripten zum Abbruch führen und fragen, wo und welche Module installiert sind.
Auch das mit dem Pfad ist so.
Das ist auch (halb) Quatsch. Du sollst interne Pfade auch intern angeben, und zwar den kompletten Serverpfad bis zum Document Root.
Lass Dir in einem Beispielskript:
$ENV{'DOCUMENT_ROOT'}
ausgeben.
Dieser wird lauten so etwas wie:
/kunden/bla/foo/homepages/username/htdocs
Dann musst Du in open Deine Dateien, die nicht direkt im cgi-bin sind, so angeben:
$myfile = /kunden/bla/foo/homepages/username/htdocs/gary/sein/geheimer/ordner/datei.txt;
Weiter im Skript:
open FILEHANDLE, "<$myfile" or die $^E; # oder $!
read (FH), $Layout1, $Thema, $Layout2, $Bild, $Layout3
So ähnlich geht das im Basic, wär toll, wenn das auch in Perl funktioniert.
Stichwort: http://de.selfhtml.org/perl/funktionen/zeichenketten.htm#split@title=split()
Viele Grüße aus Frankfurt/Main,
Patrick
![](http://www.atomic-eggs.com/fuernA.jpg)
_ - jenseits vom delirium - _
[link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
Nichts ist unmöglich? Doch!
Heute schon gegökt?