Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/05/2011, 06h31   #1
Invité de passage
 
Homme
Inscription : mai 2011
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : mai 2011
Messages : 3
Points : 0
Points : 0
Par défaut cherche a intégrer un captcha!

Bonjour a vous,
voici mon tit souci, je suis l'admin d'un site de rencontre http://www.ata-rencontre.com et je n'arrete pas de me faire spammer de message de personne d'afrique et d'autre aussi mais qui passe par des serveur proxy si cela s'appelle bien comme cela.
Donc j'ai trois solutions en tete:
1) mettre un captcha mais comment l'intégrer dans ma page, que cela vérifie le captcha puis si il est correcte envoi par la suite le message.

2) ou sinon mettre un captcha avec le tit code qui va bien pour envoyer son message, mais je ne n'arrive pas du tout l'intégrer car je ne connais pas la manipe "if" "else" .

3) ou sinon que les personnes ne puisse pas envoyer deux fois le meme messages de suite mais voyant tous les jours comment il fonctionne je suis pas sur que ca les calme.

Si vous avez une idée avec (.htacess) ou autres cela serais très gentil de votre de m'aider!
Je vous remercie par avance!

Cordialement

PS:
voici ma page php ou je voudrais inclure un captcha:

Code :
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
<body oncontextmenu="return false;">
<?php
echo '<p style="font-size:18px;font-weight:bold;text-align:center;">'.GEN_188.'</p>';
$interlocuteur = $metier->getTable(T_INSCRIPTION,"id",$_GET['id']);
$pseudo_id = $interlocuteur->id;
$pseudo = $interlocuteur->pseudo;
$naissance = $interlocuteur->naissance;
$comp1 = $metier->getTable(T_COMPL_INFO_PROFIL1,"identifiant",$interlocuteur->id);
$miniature = afficherMiniatureSelonGenre($interlocuteur->id,$interlocuteur->pseudo,$interlocuteur->type_membre);
$pays = $metier->getChamps("pays",T_PAYS,"id",$interlocuteur->domiciliation);
$ville = $interlocuteur->ville;
$etat = $metier->getChamps("identifiant",T_ONLINE,"pseudo",$interlocuteur->pseudo);
if($etat){
	$ic_etat = '<p class="etat"><img src="'.HTTP_IMAGE.'online.gif" alt="'.ATTRIBUT.'"/></p>';
}
else{
	$ic_etat = '<p class="etat"><img src="'.HTTP_IMAGE.'offline.gif" alt="'.ATTRIBUT.'"/></p>';
}
$n = explode("-",$naissance);
 
if($_POST['do'] == "1"){
	if(!empty($_POST['requiredObj']) AND !empty($_POST['requiredDesc'])){
		if(empty($_GET['id'])){
			//destinataire inconnu
			$id_destinataire = $metier->getChamps("id",T_INSCRIPTION,"pseudo",minuscule($_POST['requiredPs']));
			if($_POST['requiredPs'] == ""){
				redirection(0,$_SERVER['HTTP_REFERER']);
			}
			elseif($id_destinataire == ""){
				msg(GEN_191);
				redirection(0,$_SERVER['HTTP_REFERER']);
			}
			else{
				$bannir = $metier->executerSQL("SELECT `id` FROM `".T_BANNIR."` WHERE `id_pseudo`='".$id_destinataire."' AND `id_pseudo_blacklister`='".$_SESSION['id_client']."'","r_o");
				if($bannir->id){
					//membre banni.... formulaire désactivé
					msg(GEN_192);
					redirection(2,$_SERVER['HTTP_REFERER']);
				}
				else{
					$metier->executerSQL("INSERT INTO `".T_MESSAGERIE."`(`id_exp`,`id_dest`,`date_creation`,`objet`,`commentaire`,`lu`,`genre`) " .
						"VALUES('".$_SESSION['id_client']."','".$id_destinataire."','".date("Y-m-d H:i:s",time())."','".ucfirst(minuscule($_POST['requiredObj']))."','".textareaFormater(controleMessage($_POST['requiredDesc']))."','non','texte')","");
					//---------------- ENVOYER UN MAIL DE NOTIFICATION -----------
					$on = $metier->getChamps("pseudo",T_ONLINE,"identifiant",$id_destinataire);
					if(empty($on)){
						$m1 = $metier->getTable(T_INSCRIPTION,"id",$id_destinataire);
						envoyerUnMail($m1->email,GEN_193,sprintf(GEN_194,$m1->pseudo,$_SESSION['pseudo_client'],convertirDate(date("Y-m-d H:i:s",time()),"oui"),$_SESSION['pseudo_client'],$_SESSION['id_client']),MAIL_CORRESPONDANCE,MAIL_CORRESPONDANCE);
					}
					//------------------------------------------------------------
					msg(GEN_190);
					redirection(1,HTTP_INTERFACE.F_MESSAGERIE);
				}
			}
		}
		else{
			//destinataire connu
			$metier->executerSQL("INSERT INTO `".T_MESSAGERIE."`(`id_exp`,`id_dest`,`date_creation`,`objet`,`commentaire`,`lu`,`genre`) " .
						"VALUES('".$_SESSION['id_client']."','".minuscule($_GET['id'])."','".date("Y-m-d H:i:s",time())."','".ucfirst(minuscule($_POST['requiredObj']))."','".textareaFormater(controleMessage($_POST['requiredDesc']))."','non','texte')","");
			//---------------- ENVOYER UN MAIL DE NOTIFICATION -----------
			if(empty($etat)){
				envoyerUnMail($interlocuteur->email,GEN_193,sprintf(GEN_194,$interlocuteur->pseudo,$_SESSION['pseudo_client'],convertirDate(date("Y-m-d H:i:s",time()),"oui"),$_SESSION['pseudo_client'],$_SESSION['id_client']),MAIL_CORRESPONDANCE,MAIL_CORRESPONDANCE);
			}
			//------------------------------------------------------------
			msg(GEN_190);
			redirection(1,HTTP_INTERFACE.F_MESSAGERIE);
		}
	}
	else{
		redirection(0,$_SERVER['HTTP_REFERER']);
	}
}
else{
	if($_GET['id']){
		//========== DESTINATAIRE EST CONNU ==========
		$bannir = $metier->executerSQL("SELECT `id` FROM `".T_BANNIR."` WHERE `id_pseudo`='".minuscule($_GET['id'])."' AND `id_pseudo_blacklister`='".$_SESSION['id_client']."'","r_o");
		if($bannir->id){
			//membre banni.... formulaire désactivé
			msg(GEN_192);
			redirection(2,$_SERVER['HTTP_REFERER']);
		}
		else{
			?>
			<form action="<?php echo HTTP_INTERFACE.F_MESSAGERIE;?>?a=2&s=e&id=<?php echo $_GET['id']; ?>" method="post" onSubmit="return checkrequired(this)" name="formulaire">
				<table id="lireMessage">
					<tr>
						<td class="mini"><a href="http://www.ata-rencontre.com/profil-<?php echo $_GET['id']; ?>.php"><?php echo $miniature; ?></td>
						<td class="info">
							<p class="pseudo"><?php echo $pseudo; ?></p>
							<p class="age"><strong><?php echo date("Y")-$n[2].'</strong> '.GEN_129;?></p>
							<p class="pays"><?php echo GEN_92;?> <strong><?php echo $pays;?></strong></p>
							<p class="ville"><?php echo GEN_94;?> <strong><?php echo $ville;?></strong></p>
							<p class="statut"> <?php echo GEN_108; ?> <strong><?php echo ($comp1->statut)?$metier->getChamps("element",T_STATUT,"id",$comp1->statut):'nc';?></strong></p>
							<p class="statut"> <?php echo GEN_110; ?> <strong><?php echo ($comp1->profession)?$comp1->profession:'nc';?></strong></p>
						</td>
						<td><?php echo $ic_etat; ?>
						<a href="http://www.ata-rencontre.com/profil-<?php echo $_GET['id']; ?>.php"><img src="http://www.ata-rencontre.com/images/loupe.png" alt="Voir son profil" title="Voir son profil" /></a></td>
 
 
					</tr>
					<tr>
						<td colspan="3"><?php echo GEN_186; ?> <input type="text" name="requiredObj" size="70" onPaste="this.value = '';return false;" onpaste='return false;'/> <a href="http://www.ata-rencontre.com/FAQ" target="_blank"><b><FONT COLOR="#990000">(Aide)</font></b></a></td>
					</tr>
					<tr>
						<td colspan="3"><?php echo GEN_187; ?> <font color="#FF0000"><br /> <b>-Le spam est interdit!<br />-Merci de rester polis et courtois!<br />-Pour votre sécurité, ne communiquez pas votre adresse mail à un/une inconnu(e)!</b></font><br /><textarea name="requiredDesc" id="message" onKeyUp="pasteControl();" onBlur="pasteControl();" rows="10" cols="86" ></textarea></td>
 
					</tr>
					<tr>
						<td colspan="3" style="text-align:center;">
						    <input class="cfrm" name="email" type="text" value=""/>
							<input type="hidden" name="do" value="1"/>
							<input type="image" src="<?php echo HTTP_IMAGE.BT_ENVOYER; ?>"/>
							<font face="Arial" color="#000000"><marquee  behavior=scroll direction="left" bgcolor="#FFFFFF" border="0" width="400" height="23"><b><h2>RAPPEL: Vous disposez d'un tchat webcam avec mode audio "disponible sur votre tableau de bord"</marquee></h2></b></font>
						</td>
					</tr>
</table>
 
 
			</form>
			<?php
		}
	}
	else{
		//========== DESTINATAIRE INCONNU ==========
		?>
		<form action="<?php echo HTTP_INTERFACE.F_MESSAGERIE;?>?a=2&s=e" method="post" onSubmit="return checkrequired(this)" name="formulaire">
			<table id="lireMessage">
				<tr>
					<td style="padding-top:7px;"><?php echo GEN_189; ?> <input type="text" name="requiredPs" size="20"/></td>
				</tr>
				<tr>
					<td style="padding-top:7px;"><?php echo GEN_186; ?> <input type="text" name="requiredObj" size="70" style="margin-left:4px;"/></td>
				</tr>
				<tr>
					<td style="padding-top:7px;"><?php echo GEN_187; ?><br /><textarea name="requiredDesc" rows="10" cols="86"></textarea></td>
				</tr>
				<tr>
					<td style="text-align:center;padding-top:7px;">
						<input type="hidden" name="do" value="1"/>
						<input type="image" src="<?php echo HTTP_IMAGE.BT_ENVOYER; ?>"/>
					</td>
				</tr>
			</table>
		</form>
		<?php
	}
}
?>
atarencontre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2011, 07h58   #2
Expert Confirmé
 
Avatar de DonQuiche
 
Inscription : septembre 2010
Messages : 1 345
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 345
Points : 2 500
Points : 2 500
Bonjour.

A moins que tes attaquants ne soient tous derrière le même proxy dont tu connaîtrais la plage d'adresse utilisées, pas d'autres choix que le captcha effectivement.

Comment faire ? Ben... La première recherche google pour "captcha php" m'a donné un joli tutoriel pour toi. Bon évidemment je ne garantis en rien leur système de captcha, c'est de la recherche google.

Bref. Tout ça pour dire que c'est un peu plus compliqué qu'une réponse en trois lignes, qu'on ne va pas se manger le code php (infâme, même pour du php, et pas indenté) que tu nous as donné et te livrer une réponse toute prête. D'autant plus que tu postes dans la section dotnet plutôt que dans la section php.
DonQuiche est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 12/05/2011, 08h41   #3
Expert Confirmé Sénior
 
Homme François
Chef de projet NTIC
Inscription : janvier 2007
Messages : 5 352
Détails du profil
Informations personnelles :
Nom : Homme François
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Chef de projet NTIC

Informations forums :
Inscription : janvier 2007
Messages : 5 352
Points : 9 745
Points : 9 745
Citation:
Envoyé par DonQuiche Voir le message
infâme, même pour du php


Citation:
D'autant plus que tu postes dans la section dotnet plutôt que dans la section php.
Je me disais aussi que ça avait une drole de tête....

C'est donc ça le php ....

Que c'est laid
__________________

Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


Une réponse vous a aidé ? utiliser le bouton

"L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel
Bluedeep est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 12/05/2011, 10h33   #4
Membre Expert
 
Avatar de bizet
 
Homme
Ingénieur développement logiciels
Inscription : juin 2005
Messages : 683
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2005
Messages : 683
Points : 1 232
Points : 1 232
Salut

je te conseille de regarder recaptcha il est très simple d'installation et de configuration.

Bon courage.
bizet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2011, 17h29   #5
Futur Membre du Club
 
Homme
Responsable de projet fonctionnel
Inscription : mars 2006
Messages : 41
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Responsable de projet fonctionnel
Secteur : Distribution

Informations forums :
Inscription : mars 2006
Messages : 41
Points : 15
Points : 15
un captcha n'est pas très dur à programmer... il te faut :
- une liste d'image représentant des symboles. Ces images n'auront pas comme nom de fichiers le nom du caractère qu'elles contiennent...
- un tableau dans ton code php qui fait la correspondance entre le symbole affiché et le nom de l'image

Puis tu codes en php pour générer une chaîne de caractères parmi les caractères dont tu disposes dans ta banque d'images. Et tu affiches les images correspondantes. Tu conserves la chaîne générer en SESSION pour la vérification.
Dave Lopeur est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h27.


 
 
 
 
Partenaires

Hébergement Web