bonjour tous,
j'avais été bien aidé pour le début de mon script, je reviens pour la fin.
je récupère une liste de liens dans une base mysql, je teste leur existence et je mets les faux dans un tableau par site (1 site peut avoir plusieurs liens).
ensuite j'envoie un mail à chaque site avec la liste de SES liens faux.
mon problème : ça liste TOUS les liens de TOUS les sites à chaque fois.
merci du coup de main
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 # prendre tous les liens $query = "SELECT * FROM liens"; $sth = $dbh->prepare($query); $sth->execute; # enregistrer les url fausses my %site_list = {}; while ($data = $sth->fetchrow_hashref()) { $nb_liens++; # test url $etat = &check_url($data->{'url'}); if ($etat eq "ok"){ $nb_ok++; } else { my %h = {}; #on index chaque url par nom $h->{$data->{'lien_nom'}} = $data->{'url'}; #on index par site $site_list->{$data->{'site_id'}} = $h; $nb_bad_liens++; } } my $list_l; for my $id (keys %{$site_list}) { # infos site $query = "SELECT site_nom FROM sites WHERE site_id = '$id' LIMIT 1"; $sth = $dbh->prepare($query); $sth->execute; $data_site = $sth->fetchrow_hashref(); $site_nom = $data_site->{'site_nom'}; # infos webmestre $query = "SELECT * FROM webmestres WHERE site_id = '$id' LIMIT 1"; $sth = $dbh->prepare($query); $sth->execute; $data_wbm = $sth->fetchrow_hashref(); $wbm_nom = $data_wbm->{'wbm_nom'}; $wbm_prenom = $data_wbm->{'wbm_prenom'}; $wbm_email = $data_wbm->{'wbm_email'}; # liste des liens $list_l = ''; for my $name (keys %{$site_list->{$id}}){ $list_l .= "'$name' - " . $site_list->{$id}->{$name} . "\n"; } # envoyer l'email $msg= <<_EOM_; Bonjour $wbm_prenom $wbm_nom, Vous êtes webmestre du site "$site_nom" inscrit sur l'annuaire. Un ou plusieurs liens enregistrés dans l'annuaire pour votre site semblent inaccessibles : $list_l ####### etc... (et envoi)
Partager