Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

Perl: automatisch herinneringen versturen

Anoniem
Annie
1 antwoord
  • Ik heb in een Perl-script, index.cgi, de volgende code staan:

    [code:1:d42375c66f]require "herinneringen.pl";[/code:1:d42375c66f]

    Er wordt dus verwezen naar dit script:

    [code:1:d42375c66f]#!/usr/bin/perl

    $mysql_database = "sitedb";
    $mysql_server = "localhost";
    $mysql_username = "maartenk";
    $mysql_password = "topsecret";

    use DBD::mysql;

    $verwerken = "ja";

    my $dbh = DBI->connect("DBI:mysql:$mysql_database:$mysql_server",$mysql_username,$mysql_password)
    or die "Unable to connect to MySQL database: $dbh->errstr
    ";
    my $sth = $dbh->prepare("SELECT email, hoofdgroep, aanmelddatum FROM site_abonnementen");
    $sth->execute or die "Unable to execute query: $dbh->errstr
    ";
    my @row;
    while(@row = $sth->fetchrow_array) {

    $email = "$row[0]";
    $hoofdgroep = "$row[1]";
    $moment = "$row[2]";

    if($hoofdgroep eq "0") {
    $verwerken = "nee";
    }

    if($verwerken eq "ja") {

    my $dbh = DBI->connect("DBI:mysql:$mysql_database:$mysql_server",$mysql_username,$mysql_password)
    or die "Unable to connect to MySQL database: $dbh->errstr
    ";
    my $sth = $dbh->prepare("SELECT verzonden FROM site_herinneringen WHERE email = '$email'");
    $sth->execute or die "Unable to execute query: $dbh->errstr
    ";
    my @row;
    while(@row = $sth->fetchrow_array) {

    $aid = "$row[0]";

    }
    $sth->finish;
    $dbh->disconnect;

    if($aid eq "") {

    my $dbh = DBI->connect("DBI:mysql:$mysql_database:$mysql_server",$mysql_username,$mysql_password)
    or die "Unable to connect to MySQL database: $dbh->errstr
    ";
    my $sth = $dbh->prepare("INSERT INTO site_herinneringen VALUES('','$email','','NO')");
    $sth->execute or die "Unable to execute query: $dbh->errstr
    ";
    $sth->finish;
    $dbh->disconnect;
    }

    }
    }
    $sth->finish;
    $dbh->disconnect;

    1;[/code:1:d42375c66f]

    Het is de bedoeling dat met dit script Perl bij ieder bezoek aan mijn site automatisch kijkt welke mensen hun abonnement op onze nieuwsbrief nog niet hebben bevestigd. Deze mensen krijgen dan, met een ander script, een mailtje toegestuurd met het verzoek om hun aanmelding alsnog te bevestigen.

    Helaas werkt het script niet, maar ik heb het vanuit SSH met Perl zelf getest en ik kreeg geen foutmelding. Op een of andere manier worden er geen gegevens in de MySQL-tabel 'site_herinneringen' geschreven.

    Wat kan er mis zijn? Ziet iemand dat zo? Laat het ff weten als je meer info nodig hebt.





Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.