Mailinglisten-Archive |
nachdem ich die aktienkurse + sms-gateway hatte gabe ich perl den vorzug.
Datenerfassung über php/mysql mit ein simples formular.
mit einen cron starte ich dann nachvolgendes perl-script
#!/usr/bin/perl -w
#####################################################
# Copyright (c) 2000 die vision digital
# Christian Haase chris_(at)_haase.net
# letzte aenderung 21.10.2000
#####################################################
use DBI;
use LWP::UserAgent;
use Net::FTP;
use Net::SMTP;
my $date = get_date();
my $hats_geklappt = &hole_ftp(); ## hole mir die datei(in der der
schlusskurs steht) von ftp.irgend.de
sub hole_ftp {
my $ftp_host = "www.irgend.de";
my $userid = "user";
my $passwd = "passwd";
my $dir = "/users/home/irgend/kurse/snap/";
$ftp = Net::FTP->new($ftp_host) or die "Cannot connect to $ftp_host";
$ftp->login($userid, $passwd) or die "Cannot login";
$ftp->cwd($dir) or die "Cannot chddir to $dir";
$ftp->get("irgend.snap") or die "Cannot get irgend.snap";
$ftp->quit;
}
print "content-type: text/html\n\n";
my $url = "http://ip-adress/cgi-bin/websms/websms; # sms gateway der post
verlangt
my $ua = LWP::UserAgent->new();
my $reg = new HTTP::Request 'POST' , $url;
$reg->content_type('application/x-www-form-urlencoded');
my $database = "SMS";
my $user = "user";
my $password = "passwd";
############################################################################
####################
my $hostname = "192.168.222.98"; ## haup-server www.irgendwas.de anwendung
ist aktiv!!!!!!!!!
######################## debug datenbank
#######################################################
#my $hostname = "192.168.222.88"; ## webtest bentutze ich zum testen der
anwendung
######################## debug datenbank
#######################################################
my $datei = "irgend.snap";
my _(at)_row;
my $sth;
my $schlusskurs;
my $db;
## connect zur datenbank
$db = DBI->connect("DBI:mysql:$database:$hostname", $user, $password) or die
"Verbindung: $DBI::errstr";
## erster schritt, datei oeffen und kurs rausholen :-)))
$schlusskurs = &hole_schlusskurs();
if($schlusskurs){
## zweite schritt, wenn ich schlusskurz haben sollte, was ich annehmen
schreibe ich ihn in die DB
&schreibe_schlusskurs($schlusskurs);
} else {
print "ERROR: Kein <b>Schlusskurs</b> :-((((((((((((<br>";
exit();
}
$db = DBI->connect("DBI:mysql:$database:$hostname", $user, $password) or die
"Verbindung: $DBI::errstr";
$sth = $db->prepare("SELECT * FROM SMS") or die "Select: ", $sth->errstr;
$sth->execute or die "Ausfuerung: ", $sth->errstr;
while (_(at)_row = $sth->fetchrow_array()) {
if($row[5] eq "Ja"){
push(_(at)_zusamen, $row[3]); # mobilvorwahl speichern index 0
push(_(at)_zusamen, $row[4]); # mobil speichern index 1
push(_(at)_zusamen, $row[7]); # Nachname speichern index 2
push(_(at)_zusamen, $row[8]); # Schlusskurs speichern index 3
push(_(at)_zusamen, $row[9]); # Nachricht speichern index 4
&schicke_sms(\_(at)_zusamen); # funktion zum weiterverarbeiten mails-schicken
usw.
}
undef(_(at)_zusamen);
if($row[2] eq "Ja"){
push(_(at)_mail, $row[1]); # email speichern index 0
#push(_(at)_mail, $row[4]); # mobil speichern index 1
push(_(at)_mail, $row[6]); # vorname speichern index 2
push(_(at)_mail, $row[7]); # Nachname speichern index 3
push(_(at)_mail, $row[8]); # Schlusskurs speichern index 4
#push(_(at)_mail, $row[9]); # Nachricht speichern index 5
&schicke_mail(\_(at)_mail); # funktion zum weiterverarbeiten mails-schicken
usw.
}
undef(_(at)_mail);
}
$db->disconnect;
## und programm ende
sub schicke_sms {
my ($ref_zusamen) = _(at)__;
$reg->content("NOOUT=NO&FROM=706587&AUTH=irgend-Kurs&PRE=${$ref_zusamen}[0]&
TO=${$ref_zusamen}[1]&SMS=Info+an+${$ref_zusamen}[2]+${$ref_zusamen}[4]+Schl
usskurs+KCP+$date+${$ref_zusamen}[3]+Euro");
my $res = $ua->request($reg);
print $res->as_string;
}
sub hole_schlusskurs {
open(DATEI, "< $datei") or die "Kann $datei nicht oeffen: $!\n";
_(at)_datei = <DATEI>;
close(DATEI);
foreach $sting (_(at)_datei){
if($sting =~ /^TRDPRC_1=([0-9]*.[0-9]*)/){
return $1;
exit();
}
}
}
sub schreibe_schlusskurs {
my $schlusskurs = $_[0];
$sth = $db->prepare("SELECT SMSID FROM SMS") or die "Select: ",
$sth->errstr;
$sth->execute or die "Ausfuerung: ", $sth->errstr;
while (_(at)_row = $sth->fetchrow_array())
if($row[0]){
push(_(at)_IDS, $row[0]); # SMSID speichern
}
}
foreach $zahl (_(at)_IDS){
$sth = $db->prepare("UPDATE SMS SET Schlusskurs = $schlusskurs WHERE SMSID =
$zahl") or die "SQL: ", $sth->errstr;
$sth->execute or die "Ausfuerung: ", $sth->errstr;
}
}
sub schicke_mail {
my ($ref_mail) = _(at)__;
my $mailhost = 'mail.irgend.de';
my $absender = 'info_(at)_irgend.de';
my $nachricht = 'test';
my $subjekt = 'Schlusskurs ..............';
my $empfaenger = "${$ref_mail}[0]";
#print $empfaenger;
$smtp = Net::SMTP->new($mailhost, Timeout => 30, Debug => 1);
$smtp->mail($absender);
#$smtp->recipient(${$ref_mail}[0]);
$smtp->to($empfaenger);
$smtp->data();
$smtp->datasend("Subject: ".$subjekt."\n");
$smtp->datasend("From: ".$absender."\n");
$smtp->datasend("\n");
$smtp->datasend("Info an " .${$ref_mail}[2]. " von irgend\n");
$smtp->datasend("\n");
$smtp->datasend("Schlusskurs irgend: ".$date. " " .${$ref_mail}[3]. "
Euro\n");
$smtp->datasend("\n");
$smtp->datasend("\n");
$smtp->datasend("Wir wünschen Ihnen einen schönen Abend.\n");
$smtp->datasend("\n");
$smtp->datasend("\n");
$smtp->datasend("Ihre irgendAG\n");
$smtp->dataend;
$smtp->quit;
return 1;
}
sub get_date
{
my _(at)_days = ('Sonntag','Montag','Dienstag','Mittwoch',
'Donnerstag','Freitag','Samstag');
my _(at)_months = ('Januar','Februar','Maerz','April','Mai','Juni','Juli',
'August','September','Oktober','November','Dezember');
my ($sec,$min,$hour,$mday,$mon,$year,$wday) =
(localtime(time))[0,1,2,3,4,5,6];
$year += 1900;
$date = "$days[$wday], $mday. $months[$mon] $year";
}
ciao
christian
php::bar PHP Wiki - Listenarchive