Thread OptIn Funktion für einen Newsletter: Strings finden und vergleichen (7 answers)
Opened by cbxk1xg at 2003-10-31 14:07

cbxk1xg
 2003-10-31 14:07
#8627 #8627
User since
2003-10-20
496 Artikel
BenutzerIn
[default_avatar]
Hallo Leute!

Das ist mein erstes Posting im neuen Board und ich hoffe das wenigstens ein paar aus der alten Perl.DE community mit umgezogen sind.

Zu Sache: Ich möchte mein antikes Newsletterscript mit einem OptIn per E-Mail ausstatten. Dafür generiere ich eine Zufallszahl und schreibe diese mit der E-Mailadresse in eine temporäre Datei. - So weit so gut.

Die URL in der E-mail ruft dann das Script auf und übergibt die E-Mailadresse und die Zufallszahl. Diese beiden Werte sollen dann mit denen in der temp. Datei verglichen werden. Und genau da hakt es. Ich bekomme immer nur die Werte aus der letzten Zeile. Jedenfalls hat der String $LISTOptMail immer den Wert post@xyz.de.

Die temporäre Datei hat das folgende Format:
Code: (dl )
1
2
[EMAIL=email@domain.de]email@domain.de[/EMAIL]|123456789
[EMAIL=post@xyz.de]post@xyz.de[/EMAIL]|987654321


Hier die Sub mit dem Filehandle und der Vergleichsfunktion
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
sub CheckTempDB
{
# Templist öffnen und einlesen
open (templist, "<$templist") or &error("Unable to open the templist file for reading");
if ($flock eq "y")
{flock templist, 2;}
@templist=<templist>;
close(templist);

# Templist sortieren und auf Strings rausfiltern
foreach $templist(@templist)
{
($LISTOptMail, $LISTOptID) = split (/\|/, $templist);{
$LISTOptID =~ s/\n//g; #Entfehrnt den verwi... Zeilenumbruch!
if (($LISTOptMail eq $LINKOptMail) && ($LISTOptID eq $LINKOptID)) {$OptIDStatus = "ok";}
else {$OptIDStatus = 'error';}
}
}
}

View full thread OptIn Funktion für einen Newsletter: Strings finden und vergleichen