Je voudrais envoyé un mail aux sites refusés sur mon annuaire catégorizator, en effet le script envoi un mail aux sites acceptés mais pas aux sites refusés, je voudrais leur faire un petit mail du genre: ".Resoumettez votre site après avoir fait un lien vers notre annuaire"
J'ai essayé en vain de tripatouiller le fichier validate_site.php , mais je n'ai que des messages d'erreurs, je suis vraiment débutant en PHP
Une piste ??
Le fichier validate.php:
Code : Tout sélectionner
<?php
//validation des sites en attentes
include("../data_bd_annuaire.php"); //variables de l'annuaire
include("../functions.php"); //fonctions de l'annuaire
include("secure.php"); //verification de la session + connexion a la BD
// si on a pas quitte dans secure.php, on peut continuer...
//creation de la requete pour aller chercher les infos admin
$sql_admin = "SELECT titre_site, email_master, url_rep, auto_validate, func_mail FROM $T_infos ";
//connexion a la BD
//on est deja connecte
//envoi de la requete
$res_admin = send_sql($sql_admin,"trouver les infos d'administration");
//pas de fin de connexion on en aura encore besoin plus tard
//traitement du resultat
$result_admin = mysql_fetch_array($res_admin,MYSQL_ASSOC);
$auto_validate = $result_admin["auto_validate"];
$func_mail = $result_admin["func_mail"];
$titre_site = $result_admin["titre_site"];
$email_master = $result_admin["email_master"];
$url_rep = trim( $result_admin["url_rep"], '/' );
$action = isset($_POST['action']) ? $_POST['action'] : '';
if ($action == "validate")
//validation des sites en attente
{
// recuperation des donnees
$site2validate = isset($_POST['site2validate']) ? $_POST['site2validate'] : array();
$id_cat_url2validate = isset($_POST['id_cat_url2validate']) ? $_POST['id_cat_url2validate'] : array();
$url2validate = isset($_POST['url2validate']) ? $_POST['url2validate'] : array();
foreach ($site2validate as $i => $c)
$site2validate[$i] = (int)$c;
foreach ($id_cat_url2validate as $i => $c)
$id_cat_url2validate[$i] = (int)$c;
if (!get_magic_quotes_gpc())
{
foreach ($url2validate as $i => $u)
$url2validate[$i] = addslashes($u);
}
?>
<b>RÈsultats de la validation des sites :</b>
<br /><br />
<?php
$nb_site2validate = count($site2validate);
$url_site2add = array();
$url_site2del = array();
for ($i=0;$i<$nb_site2validate;$i++)
{
//si on a coche la case, on retient l'url (et sa cat) a ajouter dans un tableau
if ($site2validate[$i] == 1)
{
$url_site2add[] = $url2validate[$i];
$id_cat_site2add[] = $id_cat_url2validate[$i];
}
elseif ($site2validate[$i] == -1)
{
$url_site2del[] = $url2validate[$i];
$id_cat_site2del[] = $id_cat_url2validate[$i];
}
}
$nb_site2add = count($url_site2add);
$nb_site2del = count($url_site2del);
if ($nb_site2add + $nb_site2del)
//si on a valide ou refuse au moins un site
{
for($i=0;$i<$nb_site2add;$i++)
{
//on est deja connecte
$sql = "SELECT * FROM $T_sites_in_wait WHERE url = '$url_site2add[$i]' AND id_cat = '$id_cat_site2add[$i]' ";
//recherche de l'enregistrement dans la table d'attente
$res = send_sql($sql,"sÈlectionner les sites a ajouter dans site_in_wait");
$resultat = mysql_fetch_array($res,MYSQL_ASSOC);
//comme les donnees ne proviennent pas des GPC, il faut obligatoirement ajouter les \
$resultat["titre"] = addslashes($resultat["titre"]);
$resultat["nom_proprio"] = addslashes($resultat["nom_proprio"]);
$resultat["description"] = addslashes($resultat["description"]);
if (mysql_num_rows($res))//si on a un resultat
{
//on ajoute le site dans la table des sites
$sql = "INSERT INTO $T_sites (id_cat,titre,description,url,url_image,nom_proprio,email_proprio,date_validation) VALUES ('$resultat[id_cat]','$resultat[titre]','$resultat[description]','$resultat[url]','$resultat[url_image]','$resultat[nom_proprio]','$resultat[email_proprio]',CURRENT_DATE) ";
$ins = send_sql($sql,"insÈrer le site dans la table des sites de l'annuaire");
//on le supprime dans les tables en attente
$sql = "DELETE FROM $T_sites_in_wait WHERE url = '$url_site2add[$i]' AND id_cat = '$id_cat_site2add[$i]'";
$del = send_sql($sql,"supprimer le site $url_site2add dans la table des sites en attente");
echo "Le site \"".htmlspecialchars($url_site2add[$i])."\" vient d'Ítre ajoutÈe dans votre annuaire\n<br />\n";
if($func_mail)
//si on sait envoyer des mails
{
//envoi d'un mail au webmaster du site ajoute
$sqlc = "SELECT cat_name FROM $T_categories WHERE id = '$resultat[id_cat]' ";
$resc = send_sql($sqlc,"sÈlectionner le nom de la catÈgorie du site");
$resultatc = mysql_fetch_array($resc,MYSQL_ASSOC);
//preparation du message
$message = "Votre site $url_site2add[$i] vient d'Ítre acceptÈ et donc ajoutÈ dans l'annuaire de $titre_site\n\n";
$message .= "Vous pouvez venir le voir dans notre annuaire ‡ l'adresse suivante : $url_rep/".id_to_url($resultat['id_cat'],$resultatc['cat_name'],'1')."\n";
//envoi du mail
send_mail($resultat["email_proprio"],"Votre site est acceptÈ",htmlspecialchars($message),$email_master);
} //fin if func_mail
}
else //pas de resultat trouve
{ echo "Erreur lors de la sÈlection, impossible de retrouver le site ‡ insÈrer dans la table des sites en attente !\n<br />\n"; }
} //fin for
//suppression des sites a refuser
echo "<br /><br />\n";
for ($i=0;$i<$nb_site2del;$i++)
{
$sql = "DELETE FROM $T_sites_in_wait WHERE url = '$url_site2del[$i]' AND id_cat = '$id_cat_site2del[$i]' ";
$del = send_sql($sql,"supprimer le site $url_site2del dans la table des sites en attentes (admin)");
echo "Le site \"".htmlspecialchars($url_site2del[$i])."\" a ÈtÈ refusÈ !\n<br />\n";
}
}//fin du if (nb_site2add + nb_site2del)
//envoi d'un mail au site refusé, ajout jeanmi
{
//envoi d'un mail au webmaster du site refusé
$sqlc = "SELECT cat_name FROM $T_categories WHERE id = '$resultat[id_cat]' ";
$resc = send_sql($sqlc,"sÈlectionner le nom de la catÈgorie du site");
$resultatc = mysql_fetch_array($resc,MYSQL_ASSOC);
//preparation du message
$message = "Votre site $url_site2add[$i] vient d'Ítre refusÈ dans l'annuaire de $titre_site\n\n";
$message .= "Vous auriez mis notre logo ‡ l'adresse suivante \n";
//envoi du mail
send_mail($resultat["email_proprio"],"Votre site est refusÈ",htmlspecialchars($message),$email_master);
} //fin if func_mail
}
else
//aucun site selectionne
{ echo "Aucun site ‡ valider/supprimer !"; }
//fin de la connexion
mysql_close($lk);
?>
<br /><br />
<a href="<?php echo addsess2url("admin.php",$session_id); ?>">Retour ‡ l'administration de l'annuaire</a>
<?php
exit;
} //fin du if action==validate
if ($action == "revalidate")
//revalidation des sites mis en attente suite a une verification
{
// recuperation des donnees
$site2revalidate = isset($_POST['site2revalidate']) ? $_POST['site2revalidate'] : array();
$url2revalidate = isset($_POST['url2revalidate']) ? $_POST['url2revalidate'] : array();
foreach ($site2revalidate as $i => $s)
$site2revalidate[$i] = (int)$s;
if(!get_magic_quotes_gpc())
{
foreach ($url2revalidate as $i => $u)
$url2revalidate[$i] = addslashes($u);
}
?>
<b>RÈsultats de la revalidation des sites :</b>
<br /><br />
<?php
$nb_site2revalidate = count($site2revalidate);
$url_site2react = array();
$url_site2del = array();
for ($i=0;$i<$nb_site2revalidate;$i++)
{
//si on a coche la case, on retient l'url (et sa cat) a ajouter dans un tableau
if ($site2revalidate[$i] == 1)
{ $url_site2react[] = $url2revalidate[$i]; }
elseif ($site2revalidate[$i] == -1)
{ $url_site2del[] = $url2revalidate[$i]; }
}
$nb_site2react = count($url_site2react);
$nb_site2del = count($url_site2del);
if ($nb_site2react + $nb_site2del)
//si on a valide ou refuse au moins un site
{
for($i=0;$i<$nb_site2react;$i++)
{
//creation de la requete
$upd = "UPDATE $T_sites SET activation = 1 WHERE url = '$url_site2react[$i]' ";
//on est deja connecte
$res = send_sql($upd,"rÈactiver le site");
echo "Le site $url_site2react[$i] vient d'Ítre rÈactiver\n<br />\n";
} //fin for
//suppression des sites a refuser
echo "<br /><br />\n";
for ($i=0;$i<$nb_site2del;$i++)
{
//creation de la requete
$sql = "DELETE FROM $T_sites WHERE url = '$url_site2del[$i]' ";
$del = send_sql($sql,"supprimer le site $url_site2del dans la table des sites en attentes (admin)");
echo "Le site $url_site2del[$i] vient d'Ítre supprimÈ !\n<br />\n";
}
}//fin du if (nb_site2react + nb_site2del)
else
//aucun site selectionne
{ echo "Aucun site ‡ revalider/supprimer !"; }
//fin de la connexion
mysql_close($lk);
?>
<br /><br />
<a href="<?php echo addsess2url("admin.php",$session_id); ?>">Retour ‡ l'administration de l'annuaire</a>
<?php
exit;
} //fin du if action==revalidate
?>
<html>
<head>
<title>Validation des sites en attente dans l'annuaire</title>
</head>
<body style="background-color:#FFFFCC;">
<a href="<?php echo addsess2url("admin.php",$session_id); ?>">Retour ‡ l'accueil de l'administration</a>
<br />
<h2 style="text-align:center">Validation des sites en attente</h2>
<br /><br />
<?php
// On vÈrifie s'il n'y pas des sites mis en attente pour les annuaires en auto_validate
$sql_verif_auto = "SELECT DISTINCT s.titre, s.url, s.url_image, s.id, c.id AS id_cat, c.cat_name FROM $T_sites s, $T_categories c WHERE s.id_cat = c.id AND (s.activation = 2 OR s.activation = 0) ORDER BY titre ASC";
$res_verfi_auto = send_sql($sql_verif_auto,"trouver les sites mis en attente suite ‡ une vÈrification");
if (!$auto_validate || mysql_num_rows($res_verfi_auto)) //si il faut bien valider les sites ou qu'il y a des sites mis en attente
{
//formulaire destine a l'administrateur avec lequel il pourra valider des sites
//affichage de tous les sites de la table site_en_attente
//creation des requetes
$sql1 = "SELECT s.*, c.cat_name FROM $T_sites_in_wait s, $T_categories c WHERE s.id_cat = c.id ORDER BY date_soumission ASC";
$sql2 = "SELECT DISTINCT s.titre, s.url, s.url_image, s.id, c.id AS id_cat, c.cat_name FROM $T_sites s, $T_categories c WHERE s.id_cat = c.id AND (s.activation = 2 OR s.activation = 0) ORDER BY titre ASC";
//connexion a la BD
//on est deja connecte
//envoi des requetes
$res1 = send_sql($sql1,"trouver les sites en attente de validation");
$res2 = send_sql($sql2,"trouver les sites mis en attente suite ‡ une vÈrification");
//fin de la connexion
mysql_close($lk);
?>
Vous pouvez visiter les sites en cliquant sur le titre.
<br />
Vous pouvez Ègalement modifier les infos d'un site en attente avant de le valider dans votre annuaire !
<?php
if (mysql_num_rows($res1))
//si on a trouve au moins un site en attente
{
?>
<br />
<center>
<form action="<?php echo addsess2url("validate_site.php",$session_id); ?>" method="post">
<input type="hidden" name="action" value="validate">
<table border="1" bordercolor="#000000" cellspacing="0" cellpadding="4">
<tr>
<td align="center" width=450><strong>Site soumis par les visiteurs</strong></td>
<td align="center"><strong>Date de soumission</strong></td>
<td align="center"><strong>Valider</strong></td>
<td align="center"><strong>Refuser</strong></td>
<td align="center"><strong>Attendre</strong></td>
</tr>
<?php
$i=0;
while ($a_site = mysql_fetch_array($res1,MYSQL_ASSOC))
{
?>
<tr>
<td align="left" width=450>
<a href="<?php echo $a_site["url"]; ?>" target="_blank" value=1><?php echo htmlspecialchars($a_site["titre"]); ?></a> :
[<a href="<?php echo addsess2url("modify_site.php?action=show_site_in_wait_prop&id_cat=$a_site[id_cat]&url=$a_site[url]",$session_id); ?>">Modifier</a>]
<br />
ProposÈ dans <a href="<?php echo addsess2url("admin_annuaire.php?cat_id=$a_site[id_cat]",$session_id); ?>"><?php echo htmlspecialchars($a_site["cat_name"]); ?></a>
<br />
<?php echo htmlspecialchars($a_site["description"]); ?><br />
<?php
if ( $a_site["url_image"] )
echo "<br /><a href=\"$a_site[url]\" target=\"_blank\"><img src=\"$a_site[url_image]\" width=\"120\" height=\"90\" border=\"0\"></a>";
else
echo "<br /><a href=\"$a_site[url]\" target=\"_blank\"><img src=\"../img/image_sites.gif\" width=\"120\" height=\"90\" border=\"0\"></a>";
?>
</td>
<td align="center">
<?php echo $a_site["date_soumission"]; ?>
</td>
<td align="center">
<input type="hidden" name="url2validate[<?php echo $i; ?>]" value="<?php echo $a_site["url"]; ?>" />
<input type="hidden" name="id_cat_url2validate[<?php echo $i; ?>]" value="<?php echo $a_site["id_cat"]; ?>" />
<input type="radio" name="site2validate[<?php echo $i; ?>]" value="1" />
<br />
</td>
<td align="center">
<input type="radio" name="site2validate[<?php echo $i; ?>]" value="-1" />
<br />
</td>
<td align="center">
<input type="radio" name="site2validate[<?php echo $i; ?>]" value="0" checked />
<br />
</td>
</tr>
<?php
$i++;
}
?>
</table>
<br /><br />
<center><input type="submit" value="Valider les sites sÈlectionnÈes" onClick="this.value='Validation en cours...';" /></center>
</form>
</center>
<br /><br />
<hr>
<?php
}
if (mysql_num_rows($res2))
//si on a trouve au moins un site mis en attente
{
?>
<br /><br />
<center>
<form action="<?php echo addsess2url("validate_site.php",$session_id); ?>" method="post">
<input type="hidden" name="action" value="revalidate" />
<table border=1 bordercolor="#000000" cellspacing="0" cellpadding="4">
<tr>
<td align="center" width="450"><strong>Site mis en attente suite ‡ une vÈrification</strong></td>
<td align="center"><strong>RÈactiver</strong></td>
<td align="center"><strong>Supprimer</strong></td>
<td align="center"><strong>Attendre</strong></td>
</tr>
<?php
$i=0;
while ($a_site = mysql_fetch_array($res2,MYSQL_ASSOC))
{
?>
<tr>
<td>
<a href="<?php echo $a_site["url"]; ?>" target="_blank"><?php echo htmlspecialchars($a_site["titre"]); ?></a> :
[<a href="<?php echo addsess2url("modify_site.php?action=show_dead_site_prop&id_site2modify=$a_site[id]",$session_id); ?>">Modifier</a>]
<br />
PrÈsent dans <a href="<?php echo addsess2url("admin_annuaire.php?id_cat=$a_site[id_cat]",$session_id); ?>"><?php echo htmlspecialchars($a_site["cat_name"]); ?></a>
<br />
<a href="<?php echo $a_site["url"]; ?>" target="_blank"><?php echo $a_site["url"]; ?></a><br />
<?
if ( $a_site["url_image"] )
echo "<br /><a href=\"$a_site[url]\" target=\"_blank\"><img src=\"$a_site[url_image]\" width=\"120\" height=\"90\" border=\"0\"></a>";
else
echo "<br /><a href=\"$a_site[url]\" target=\"_blank\"><img src=\"../img/image_sites.gif\" width=\"120\" height=\"90\" border=\"0\"></a>";
?>
</td>
<td align="center">
<input type="hidden" name="url2revalidate[<?php echo $i; ?>]" value="<?php echo $a_site["url"]; ?>" />
<input type="radio" name="site2revalidate[<?php echo $i; ?>]" value="1" />
<br />
</td>
<td align="center">
<input type="radio" name="site2revalidate[<?php echo $i; ?>]" value="-1" />
<br />
</td>
<td align="center">
<input type="radio" name="site2revalidate[<?php echo $i; ?>]" value="0" checked />
<br />
</td>
</tr>
<?php
$i++;
}
?>
</table>
<br /><br />
<center><input type="submit" value="Valider les sites sÈlectionnÈes" onClick="this.value='Validation en cours...';" /></center>
</form>
</center>
<br /><br /><br />
<?php
}
if(!mysql_num_rows($res1) && !mysql_num_rows($res2))
{
?>
<br /><br />
<strong>
Aucun site en attente de validation
</strong>
<br /><br />
<?php
}
} //fin du if (!auto_validate)
else //auto_validate = 1 ==> ajout automatique
{
?>
Il n'y a aucun site ‡ valider vu que vous avez parametrÈ l'annuaire pour que les sites soient automatiquement acceptÈs !
<br />
Si vous voulez de nouveau avoir le contrÙle sur la validation des sites, il faut aller <a href="<?php echo addsess2url("param_annuaire.php",$session_id); ?>">modifier les paramËtres</a> de votre annuaire...
<?php
}
include('footer_admin.php');
?>
</body>
</html>