Bonjour,

Avant tout je ne connais pas la version du php utilisé dans le script de mon annuaire.

En effet, sur mon site internet j'ai inséré le script d'annuaire de catégorizator qui n'est plus mis à jour.

Je suis débutante en php et ne parviens pas à insérer l'anti-spam "champ caché" que j'ai trouvé ici :
http://neosting.net/aide-tutoriel/un...-artifice.html.

Dans mon annuaire j'ai une page "submit_site.php de 328 lignes et de nombreux codes. Voici comment j'ai "inséré" le script :

Dans mon formulaire html le champ "pays" (ligne 34) est mon champ caché :

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
<form action="submit_site.php" method="post" name="form2submit">
		<input type="hidden" name="action" value="submit">
		<?php
		if (empty($id_cat))
		{
			//connexion a la BD
			$lk = connection_BD();
			//affichage de la liste des categories
			echo "<center>".show_list_cats("id_cat","",true)."</center>";
		}
		else
		{
			?>
			<input type="hidden" name="id_cat" value="<?php echo $id_cat; ?>">
			Catégorie : <?php echo htmlspecialchars($cat_name); ?>
			<?php
		} //fin du else
		//fin de la connexion
		mysql_close($lk);
		?>
		<br><br>
		Votre nom :
		<input type="text" name="nom_proprio" maxlength=50 size=30 class="field_data_add_site_annuaire">
		<br>
		Votre adresse email : 
		<input type="text" name="email_proprio" maxlength=75 size=40  class="field_data_add_site_annuaire">
		<br>
		Titre du site : 
		<input type="text" name="titre" maxlength=50 size=30 class="field_data_add_site_annuaire">
		<br>
		Url du site : 
		<input type="url" name="url" maxlength=150 size=50 value="http://" class="field_data_add_site_annuaire">
                <br> 
		<input type="text" name="pays" maxlength=50 size=30 class="couleur_pays">
		<br><br>
		Description du site :
		<br>
		<textarea name="description" cols=50 rows=5 class="descr_add_site_annuaire"></textarea>
		<br><br>
		<?php
		if ($use_newsletter && $func_mail_ok) //il faut pouvoir recevoir un mail via la fonction mail()
		{
			?>
			Voulez-vous recevoir notre Newsletter ?
			<input type="checkbox" name="add2newsletter" value=1>
			<br><br><br>
			<?php
		} //fin du if
		?>
		<center>
		<input type="submit" value="Soumettre le site" onClick="return check_id_cat()" class="submit_form_add_site_annuaire">
		</center>
		</form>
Pour ce qui est de l'analyse du formulaire en php(ligne 9) j'ai fait ceci :

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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
<?php $action = isset($_POST['action']) ? $_POST['action'] : '';
if ($action == "submit")
{
	// recuperation des donnees
	$nom_proprio = isset($_POST['nom_proprio']) ? $_POST['nom_proprio'] : '';
	$email_proprio = isset($_POST['email_proprio']) ? $_POST['email_proprio'] : '';
	$titre = isset($_POST['titre']) ? $_POST['titre'] : '';
	$url = isset($_POST['url']) ? $_POST['url'] : '';
	if(isset($_POST["pays"]) && $_POST["pays"] == '')
	{
	//ok
	}
	$description = isset($_POST['description']) ? $_POST['description'] : '';
	$add2newsletter = isset($_POST['add2newsletter']) ? (int)$_POST['add2newsletter'] : 0;
	//verification de tous les champs (on ne quitte pas sechement l'execution en cas d'erreur...)
	est_vide($nom_proprio,"Vous n'avez pas rempli votre nom !",true);
	email_valide($email_proprio,true);
	est_vide($titre,"Vous n'avez pas rempli le titre du site !",true);
	url_valide($url,true);
	est_vide($description,"Vous n'avez pas rempli la description du site !",true);
	est_trop_long($description,255,"Votre description",true);
 
	//connexion a la BD (va etre utile pour verifier la presence de l'url et avant ca aller chercher les infos de l'admin)
	//on est deja connecte
	//creation de la requete d'administration
	$sql_admin = "SELECT max_presence, auto_validate, email_master, titre_site, url_rep FROM $T_infos ";
	//envoi de la requete
	$res_admin = send_sql($sql_admin,"trouver les infos pour l'ajout du site");
 
	$result_admin = mysql_fetch_array($res_admin);
	$auto_validate = $result_admin["auto_validate"];
	$email_master = $result_admin["email_master"];
	$titre_site = $result_admin["titre_site"];
	$url_rep = $result_admin["url_rep"];
	$max_presence = $result_admin["max_presence"];
 
	//on cherche si l'url n'est pas deja presente dans les tables (la fonction exit si probleme)
	if (cherche_presence_url($url,$id_cat,$max_presence))
	{
		?>
		<br><br>
		<a href="index.php">Retour à l'annuaire</a>
		<?php
		include("after.php");
		exit;
	}
 
	if (!get_magic_quotes_gpc())
	//on rajoute des slash pour les magic_quote en OFF
	{
		$nom_proprio = addslashes($nom_proprio);
		$titre = addslashes($titre);
		$description = addslashes($description);
	}
	//on enleve les caracteres speciaux et les balises html
	$nom_proprio = $nom_proprio;
	$titre = $titre;
	$description = $description;
 
	//si tous les champs sont biens remplis
	//on peut ajouter le site dans la table des sites en attente de validation
 
	//creation des requetes
	if ($auto_validate)
	//directement accepte et donc dans la table des sites
	{ $sql = "INSERT INTO $T_sites (id_cat,titre,description,url,nom_proprio,email_proprio,date_validation) VALUES ('$id_cat','$titre','$description','$url','$nom_proprio','$email_proprio',CURRENT_DATE) "; }
	else //dans la table des sites en attente
	{ $sql = "INSERT INTO $T_sites_in_wait (id_cat,titre,description,url,nom_proprio,email_proprio,date_soumission) VALUES ('$id_cat','$titre','$description','$url','$nom_proprio','$email_proprio',CURRENT_DATE) "; }
	$sql_cat_name = "SELECT cat_name FROM $T_categories WHERE id = '$id_cat' ";
	//envoi des requetes
	$ins = send_sql($sql,"soumettre un site !");
	$res_cat_name = send_sql($sql_cat_name,"trouver le nom de la catégorie");
	//fin de la connexion
	mysql_close($lk);
 
	$resultat_cat_name = mysql_fetch_array($res_cat_name,MYSQL_ASSOC);
 
	//message de confirmation au visiteur et au webmaster
	?>
	<br><br><br>
	<span class="confirm_add_site_annuaire">
	<?php
	if($func_mail_ok)
	//si on sait envoyer des mails
	{
		//creation des messages
		if ($auto_validate)
		{
			$message_vis = "Le site $url que vous venez de proposer a été ajouté dans l'annuaire de $titre_site.\n\n";
			$message_master = "Le site $titre vient d'être proposé et ajouté dans votre annuaire dans la catégorie $resultat_cat_name[cat_name].\n";
			$message_master .= "Vous pouvez le voir en visitant la catégorie à cette adresse :\n";
			$message_master .= "$url_rep/index.php?cat_id=$id_cat\n\n";
		}
		else //l'administrateur doit valider le site 
		{
			$nom_categorie = $resultat_cat_name["cat_name"];
			//creation message
			$message_vis = "Vous venez de proposer le site : $url dans l'annuaire de $titre_site.\n\n";
			$message_vis .= "Une fois que le webmaster aura visité votre site, vous recevrez un email si votre site est accepté.\n";
			$message_master = "Le site : $url vient d'être proposé dans l'annuaire dans la catégorie $nom_categorie."; 
		}
		//envoi du message au visiteur
		send_mail($email_proprio,"Proposition de site dans l'annuaire de $titre_site",htmlspecialchars($message_vis),$email_master);
		//envoi du message eu webmaster pour le prevenir de la proposition/ajout de site
		send_mail($email_master,"Nouveau site proposé dans l'annuaire",htmlspecialchars($message_master),$email_master);
 
		if ($auto_validate)
		{
			?>
			Le site qui vient d'être proposé a été automatiquement accepté et donc ajouté dans la catégorie souhaitée
			<br><br>
			<?php
		}
		else //le site a ete mis en attente
		{
			?>
			Le site <?php echo htmlspecialchars($url); ?> vient d'être proposé dans l'annuaire de <?php echo htmlspecialchars($titre_site); ?>.
			<br><br>
			Vous recevrez un mail si après visite de votre site le webmaster accepte de l'ajouter dans l'annuaire!
			<?php
		}
		//message au webmaster si le visiteur s'est inscrit a la Newsletter
		if ($add2newsletter != 0)
			send_mail($email_master,"Inscription à la Newsletter","$email_proprio souhaite recevoir la Newsletter",$email_master);		
	}
	else //on ne sait pas envoyer de mail
	{
		if ($auto_validate)
		{
			?>
			Le site qui vient d'être proposé a été automatiquement accepté et donc ajouté dans la catégorie souhaitée !
			<?php
		}
		else //le site doit etre valide par le webmaster
		{
			?>
			Le webmaster va visiter votre site et décidera de l'ajouter ou non...
			<br><br>
			Revenez voir dans 3 ou 4 jours pour voir si votre site a été accepté !
			<?php
		}
	}
	?>
	</span>
	<br><br>
	<a href="index.php">Retour à l'annuaire</a>
	<?php
}
Dans mon fichier CSS j'ai bien mis :

Code css : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
.couleur_pays{
	display: none; 
}

Mais cela ne fonctionne pas.

Pouvez-vous m'aider car depuis un mois les spam ont trouvé mon formulaire "sympa" bien que les site soient vérifiés avant validation.

Je vous remercie par avance.

Verso49