mail adressen automatisch zuordnen in perl

C

ccc

Routinier
hallo

folgendes problem:
habe ein HTML form mit PULL-DOWN-MENU, wo verschiedene Filialen
aufgelistet sind, ungefähr in dem stil:

Code:
<HTML>
<HEAD>
<TITLE>FORM</TITLE>
</HEAD>
<BODY>
<FORM action="/cgi-bin/send.pl" method="post">
<SELECT NAME="select" SIZE=1>
<OPTION>
<OPTION>SYDNEY
<OPTION>TORONTO
...........................
</SELECT>
             <input type="Submit" value="send">
</BODY>
</HTML>

dazu soll ein perl script folgen, der die mail adresse der ausgewälter Fililale
im browser anzeigt.
natürlich jede filiale hat eine andere e-mail adresse.
perl script, der die Filiale anzeigt, stelle mir ungefähr so vor:
Code:
#!/usr/bin/perl

use CGI;
use strict;

my $q = new CGI;

my %FORM = map { $_ => $q->param($_) } $q->param;

print $q->header('text/html'),
      $q->start_html,
      $FORM{select},
      $q->end_html;
aber, wie bekomme ich jetzt nur die mail adresse der ausgewähler Filiale
angezeigt ?
 
Zuletzt bearbeitet:
Hi,
solltest Du nicht zuerst ein Array benutzen in dem die Filialen mit den zugehörigen
Mailadressen initialisiert sind?
Dann Array einlesen und wenn der select angezeigt werden soll eben nicht die key's
sonder die values anzeigen lassen.

MfG
sowatt
 
danke sowatt

aber kannst du bitte ein beispiel mit ein paar zeilen code posten ?

gruss
ccc
 
Einfach ein assoziatives array auch hash genannt benutzen, wäre mein vorschlag, ich denke mal das sowatt das meinte.
Code:
$mail_address = (
                                  'SYDNEY => 'sydney@bla.com',
                                  'TORONTO' => 'toronto@bla.com',);
Damit hast du ganz einfach die möglichkeit die values, also die email adressen assoziativ abzufragen über:
Code:
$mail_address{$FORM{'select'}};

ciao Exi
 
Hi,
ja genau so habe ich das gemeint.

Und richtig: Hash heisst das Teil!

Solltest Du da was nicht hinbekommen dann kriegen wir da bestimmt was gebaut.

MfG
sowatt
 
habe da etwas probiert, funktioniert aber nicht:
Code:
#!/usr/bin/perl -w

use CGI;
use strict;

my $q = new CGI;

my %FORM = map { $_ => $q->param($_) } $q->param;

my $mail_address{$FORM{'select'}};

my %mail_address = (
                                  'SYDNEY => 'sydney@bla.com',
                                  'TORONTO' => 'toronto@bla.com');

print $q->header('text/html'),
      $q->start_html,
      $FORM{$mail_address},
      $q->end_html;
 
Zuletzt bearbeitet:
Hi,
was bekommst Du denn in der Ausgabe zu sehen? Fehlermeldungen?
Du hast doch in der Variablen '$mail_address' zuerst den Wert aus dem Formular
dann willst Du derselben Skalaren Variable einen Hash zuweisen, das geht nicht.
Die Hashvar heisst '%mail_address' das Prozentzeichen ist für den Hash gedacht.

Nimm doch nochmal die Pragmas 'use warnings;' und 'use diagnostics;' hinzu, da erhältst
Du dann schon einige interessante Fehlerbeschreibungen.

Ich nutze Perl (bisher) nicht für Websachen aber ich mach mich mal dran und schau das
ich Dir mal den Code hier Posten kann. Wird aber erst heute Nachmittag was werden.

MfG
sowatt
 
Hi,
so sollte das jetzt funzen(bei mir jedenfall gehts).
Dein Formular:

Code:
<html>
<head>
<title>TEST-FORM</title>
</head>
<body>
<form action="../cgi-bin/perl.pl" method="POST">
<select name="stadt" SIZE=1>
<option>NEW YORK</option>
<option>SYDNEY</option>
<option>TORONTO</option>
</select>
             <input type="submit" value="Abschiggen">
</form>
</body>
</html>

Dein Perlscript :

Code:
#!/usr/bin/perl
use warnings;
use strict;

use CGI ('param');
use CGI::Carp ('fatalsToBrowser');

my %mailadress =  ("NEW YORK" => 'ny@bla.com',
			"SYDNEY" => 'sy@foo.net',
			"TORONTO" => 'tor@foobar.org' );

my $city = param('stadt');


print "Content-Type: text/html\n\n";
#Gesuchte Mailadresse ausgeben...
print <<"EOF";
<h3>Die gesuchte Emailadresse lautet : </h3>
<p>$mailadress{"$city"}</p>
EOF
#Das muss hier stehen bleiben, sonst Fehlermeldung!

MfG
sowatt
 
Jopp, so muss es passen, CCC hatte auch das hash falsch herum benutzt! :)

ciao Exi

Ps: Sorry das ich mich nun erst wieder einklinke aber ich war auf reisen! :)
 

Ähnliche Themen

CentOS 5.8 –SQL Abfrage– HTML wird generiert und daraus müssen mehrere Mails versendet werden

ca. 1200 PDF-Dateien auslesen und bestimmte Daten in eine CSV-Datei speichern

dovecot und postfix Konfiguration Problem

NagiosGrapher 1.7.1 funktioniert nicht

Hilfe mit CGI

Zurück
Oben