Page 1 sur 1

Envoyer un mail aux sites refusés sur categorizator

Posté : lundi, 02 mars 2009, 13:23
par jeanmi
Bonjour,

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>
:sm31:

Re: Envoyé un mail aux sites refusés sur categorizator

Posté : samedi, 07 mars 2009, 03:07
par Keroin
Bonjour et bienvenue jeanmi :-D
Ce que tu veux faire nécessite de développer une nouvelle fonction complète sur ton categorizator et ça risque de vraiment pas être évident si tu n'y connait rien en php...
J'ai cherché mais pas trouvé de script facile à intégrer dans catégorizator pour envoyer des mails aux sites refusés.
Categorizator ne disposant plus d'aucun suivi au niveau technique, j'aurais tendance à te conseiller de migrer vers un script plus "actuel" d'annuaire et surtout qui dispose d'un suivi technique comme Arfooo par exemple (la migration n'est pas très compliquée à mettre en oeuvre)... la fonction que tu recherches est disponible sous Arfooo (ainsi que de nombreuses autres...) ;)

Re: Envoyé un mail aux sites refusés sur categorizator

Posté : mercredi, 18 mars 2009, 07:39
par darakk
Et bien mon chere jeanmi, je vois que tu as posté un peu partout!

Comme je te l'ai dit sur un autre forum, j'ai reussi à faire ce que tu veux sur mon categorizator, avec en plus l'ajout d'un champ lien de retour dans le formulaire de soumission, et la verification automatique de la presence de ce lien de retour...

Je pense aussi qu'a ton niveau, il vaut mieux que tu te penche vers arfoO , c'est tout fait, amelioré... donc plus simple pour toi ;)

aller je te file mon bout de code ici pour l'envoie de mail aux sites refusé:

j'avais un bug avec la variable de l'email_master, du coup je l'ai declaré manuellement. il faut donc mettre ton adresse mail dans cette variable :

Code : Tout sélectionner

$emailm = "ton_mail_ici";
la modif complete:

Code : Tout sélectionner

		for ($i=0;$i<$nb_site2del;$i++)
		{
				if($func_mail)
				//si on sait envoyer des mails
				{ 
                    $sqlc = "SELECT * FROM $T_sites_in_wait WHERE url = '$url_site2del[$i]' AND id_cat = '$id_cat_site2del[$i]' ";
					$resc = send_sql($sqlc,"envoi mail");
					$resultatd = mysql_fetch_array($resc,MYSQL_ASSOC);
					$emailm = "ton_mail_ici";
					//preparation du message
					$message = "Votre site $url_site2del[$i] vient d'être refusé de l'annuaire \n";
					$message .= "Resoumettez votre site après avoir fait un lien vers notre annuaire\n";
					//envoi du mail
					send_mail($resultatd['email_proprio'],"Votre site est refusé",htmlspecialchars($message),$emailm);
					echo "envoie de mail: <br />";
                                                                                echo $resultatd['email_proprio'];
                                                                                echo "<br />;
				} //fin if func_mail
			$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)
Voici un lien vers mon annuaire modifié: http://www.angeliquefeerie.fr/annuaire/
Je tiens à preciser que je suis aussi debutant...
Si tu ne reussi pas à le faire tourner, envoi moi par MP ton msn ;)

Edit: si j'ai le temps, je créerais un script complet de mise à jour...

Re: Envoyé un mail aux sites refusés sur categorizator

Posté : mercredi, 18 mars 2009, 22:59
par Keroin
Merci beaucoup et bienvenue darakk :-D
si j'ai le temps, je créerais un script complet de mise à jour...
Ce serait très sympa ça et je pourrais l'ajouter aux tutos ;-)

@ jeanmi : fais le savoir si tout fonctionne comme tu le souhaites car ça peut servir à d'autres ;)

Re: Envoyé un mail aux sites refusés sur categorizator

Posté : vendredi, 20 mars 2009, 17:47
par jeanmi
Bonjour,
J'ai essayé le bout de code , mais je n'ai pas du bien le placer, ça ne marche pas (parse error).
Mon fichier modifié:

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++)
          {
                if($func_mail)
                //si on sait envoyer des mails
                {
                        $sqlc = "SELECT * FROM $T_sites_in_wait WHERE url = '$url_site2del[$i]' AND id_cat = '$id_cat_site2del[$i]'";
                   $resc = send_sql($sqlc,"envoi mail");
                   $resultatd = mysql_fetch_array($resc,MYSQL_ASSOC);
                   $emailm = "info@annuaire-esoterique.net";
                   //preparation du message
                   $message = "Votre site $url_site2del[$i] vient d'Ítre refusÈ de l'annuaire \n";
                   $message .= "Resoumettez votre site aprËs avoir fait un lien vers notre annuaire\n";
                   //envoi du mail
                   send_mail($resultatd['email_proprio'],"Votre site est refusÈ",htmlspecialchars($message),$emailm);
                   echo "envoie de mail: <br />";
                   echo $resultatd['email_proprio'];
                   echo "<br/>;
                                                                                    
                } //fin if func_mail
             $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)
	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>
Le message d'erreur:Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in /home/annuaire-esoterique/public_html/admin/validate_site.php on line 134

Quelqu'un une idée??

Re: Envoyé un mail aux sites refusés sur categorizator

Posté : vendredi, 20 mars 2009, 17:55
par Keroin
Ce message d'erreur signifie qu'il manque un , ou un ; dans une fonction ou que ce dernier n'est pas interprété correctement...
J'ai regardé vite fait le code et il manque " à la ligne 131 ce qui semble faire bugger le ; de la ligne 134 (cf message d'erreur)
Essaye en remplaçant ça

Code : Tout sélectionner

        echo "envoie de mail: <br />";
                       echo $resultatd['email_proprio'];
                       echo "<br/>;
par ça

Code : Tout sélectionner

        echo "envoie de mail: <br />";
                       echo $resultatd['email_proprio'];
                       echo "<br/>";
voir si c'est mieux ;)

Re: Envoyé un mail aux sites refusés sur categorizator

Posté : samedi, 21 mars 2009, 01:48
par darakk
ligne 131 j'ai oublié un " ..... echo "<br/>; c'est pas bon, mais plutot echo "<br/>";

En méme temps, tu te dis debutant, mais la, ne pas comprendre le message d'erreur (c'est quand méme l'une des 1er erreurs que tout debutant fait :siffle: ), et tu n'as pas chercher sur le net ce qu'il voulait dire ce message... c'est plus etre debutant la...

Re: Envoyé un mail aux sites refusés sur categorizator

Posté : samedi, 21 mars 2009, 14:33
par jeanmi
Bonjour,

Ok c'est super ça marche, je ferais des essais plus poussé plus tard .
Pour Darakk, quand je dit que je suis débutant, ça veut vraiment dire débutant de débutant, en gros, j'y connais rien.J'avais bien cherché un ; manquant mais je n'avais pas pensé à chercher un ".