phpbar.de logo

Mailinglisten-Archive

[php] Aktienkurse / Rechte ...

[php] Aktienkurse / Rechte ...

Christian Haase php_(at)_phpcenter.de
Sat, 7 Apr 2001 12:27:20 +0200


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