IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

cherche a intégrer un captcha!


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 3
    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 : 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
    <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
    	}
    }
    ?>

  2. #2
    Membre Expert Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Par défaut
    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.

  3. #3
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par DonQuiche Voir le message
    infâme, même pour du php


    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

  4. #4
    Membre émérite Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    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 : 717
    Par défaut
    Salut

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

    Bon courage.

  5. #5
    Membre averti
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Mars 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 41
    Par défaut
    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.

Discussions similaires

  1. cherche a intégrer un bout de rss de "DTC"
    Par IcedLime dans le forum Langage
    Réponses: 1
    Dernier message: 20/07/2012, 15h26
  2. Comment intégrer un captcha à mon formulaire
    Par tatutatu2009 dans le forum Langage
    Réponses: 5
    Dernier message: 15/04/2011, 09h06
  3. [Glassfish V3 Prelude]cherche à intégrer des éléments dans la console
    Par peuplier dans le forum Glassfish et Payara
    Réponses: 2
    Dernier message: 14/04/2009, 13h36
  4. Captcha sans image. Comment l'intégrer en php?
    Par Davidoux94 dans le forum Langage
    Réponses: 1
    Dernier message: 06/05/2008, 09h49
  5. Réponses: 2
    Dernier message: 22/01/2006, 16h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo