Auslesen eines wertes
Sandra
- perl
0 Daniel Thoma
Hi
Könnt ihr mir helfen?
Ich habe eine Datei,in die von einem Anmelde Script Daten geschrieben werden.
In der Datei sieht das so aus:
$name:$pass
$vname:$nname:$pass1:$email:$temp
So und ich möchte,für ein Email Script die emailadresse aus der Datei auslesen.
Das soll so gehen:
An das Email Script wird $name und $pass geschickt,das Script such die Daten in der Daten und dann soll es die Adresse als empfänger auslesen.
Cu
Sandra
Hallo Sandra,
Eine möglichkeit, die Datei zu lesen und in eine Datenstruktur zu speichern:
my $data = {}; #Ein Hash für die Daten.
open(IN,"datei.dat") #Datei öffnen
while(<IN>) { #Datei zeilenweise lesen
chomp; #Zeilenumbruch am Zeilenende entfernen
my @zeile = split(':'); #Zeile zerlegen
$name = $zeile[0];
$data->{$name} = {PASS=>$zeile[1]}; #In Daten einen neuen Eintrag für $name anlegen und das Passwort darin speichern.
$_ = <IN>; #nächste Zeile lesen
chomp;
@zeile = split(':');
#Die Werte der 2. Zeile auch noch speichern.
$data->{$name}->{VNAME} = $zeile[0];
$data->{$name}->{NNAME} = $zeile[1];
$data->{$name}->{PASS1} = $zeile[2];
$data->{$name}->{EMAIL} = $zeile[3];
$data->{$name}->{TEMP} = $zeile[4];
}
close(IN); #Datei schließen
Jetzt hast Du eine Datenstruktur und kannst bequem auf alle Daten zugreifen.
Für die E-Mailaddresse also:
$data->{Fritz}->{EMAIL}
Viel Spaß bei verstehen ;-)
Grüße
Daniel
Hi
Leider muss ich sagen es geht nicht.
Auszug der ErrorLog:
syntax error at mail.pl line 13, near ") {"
syntax error at mail.pl line 27, near "}"
Execution of mail.pl aborted due to compilation errors.
Die 13 ist while(<IN>) { #Datei zeilenweise lesen und die 27 ist }.
Sorry habe vergessen zusagen das,dass Mail Script CGI ist.
Cu
Hallo Sandra,
in der open-Zeile fehlt ein ";".
open(IN,"datei.dat"); #Datei öffnen
Gruß
Eidgenosse
Hi
Danke geht (was so ein ; alles ausmacht).
Nur ein kleines prob:
in dem Mail Script steht in einer zeile:
$to = '@.'; #Geben sie hier die email adresse ein
so wie muss ich da $data->{Fritz}->{EMAIL} anpassen?
Das Script wird so aufgerufen:
mail.pl?name=Sandra&pass=ngji
jetzt muss in $to die email adreese von Sandra drin stehen.
Kann mir jemand ein Beispiel geben?
Cu
Hallo Sandra,
Dein Problem ist das einlesen der Parameter?
Dazu verwendest Du am besten CGI.pm.
Beschreibung in Selfhtml: http://selfhtml.teamone.de/cgiperl/module/cgi.htm
Moduldokumentation:http://www.perldoc.com/perl5.8.0/lib/CGI.html
Grüße
Daniel