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