rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Recherche script PHP anti-spam ou Captcha

stefart, le mardi 15 avril 2008 à 16:02:23
Bonjour,

Je suis a la recherche script PHP anti-spam ou Captcha simple d'utilisation mais bien sur efficace
Ca fonction serait de supprimer le spam sur le formulaire d'inscription et de contact a un de mes site en php

Après recherche sur le forum il y en a beaucoup de différents et comme je ne suis pas un pro en php je souhaite pas me prendre la tête a ajouter un script qui serait trop complexe ou inefficace.

alors merci de vos suggestion
--
Configuration: Windows XP
Firefox 2.0.0.13
Répondre à stefart  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
web_traveller, le mardi 15 avril 2008 à 20:16:53
Salut Stefart,

C'est tout expliqué ici :
http://www.6ma.fr/tuto/image+securite+pour+formulaires+php-3­57

Je ne sais pas quel est ton niveau en PHP mais j'espère que ca pourra t'aider.

Bonne chance !
Répondre à web_traveller

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
stefart, le mercredi 16 avril 2008 à 12:43:43
merci beaucoup de ta source web_traveller
mais mon problème est que j'ai deja sur mon site et surtout sur ma page un session_start(); en debut de page alors si j'utilise le variable de session du captcha
ca m'empêche donc de me loger sur si non ça détruit la première ou interdit l'accès a la page !

ou alors c'est moi qui intègre mal le code dans la page ?! :(

voila deja le code session_start() que j'utilise sur ma page :

<?php
session_start();
//session inscription au site -----------------------
if ($HTTP_POST_VARS['inscription']=="ok")
{
	//sélection de la base de données
	mysql_select_db($database_cnx_pa, $cnx_pa);
	//vérification si le mail existe déjà dans la base
	$FORMemail=trim($FORMemail); //supprime les espaces éventuels
	$query_rsClient = "SELECT email FROM clients WHERE email = '$FORMemail' ";
	$rsClient = mysql_query($query_rsClient , $cnx_pa) or die(mysql_error());
	$totalRows_rsClient = mysql_num_rows($rsClient);
	//echo '$totalRows_rsClient='.$totalRows_rsClient;
	if ($totalRows_rsClient==0)
		{
			//enregistrement dans la base du nouveau compte client
			$insertSQL = "INSERT INTO clients (nom, email, pass) VALUES ('$nom', '$FORMemail', '$FORMpass')";
			$Result1 = mysql_query($insertSQL , $cnx_pa) or die(mysql_error()); 
			$clientID=mysql_insert_id();//récupère l'identifiant client attibué 
			//mémorisation des paramètres dans la session
			$statut="client";
			session_register("clientID");
			session_register("statut");
			header("Location:menu.php");
		}//fin du if ($totalRows_rsClient==0)
	else
		{
		$erreur_mail=1;
		}
}//fin du if ($HTTP_POST_VARS['inscription']=="ok") -------------------
?>

et l'action de mon form est la suivante :
form action="<?php echo $editFormAction; ?>" method="post" name="form" id="form"  onSubmit="return testform(this.nom,this.FORMemail,this.FORMpass)">


y'a une solution simple pour contourné le problème ? ou pas

j'imagine que 2 variable de session sur la même page c'est chaud a non ??!!

Déjà pour le formulaire de contact ça marche bien alors merci un bon point de resolu.

Mais si tu a des idées pour mon probleme de session je prend merci
--
Répondre à stefart

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
web_traveller, le jeudi 24 avril 2008 à 12:17:11
Salut Stefart,

Tu peux tout a fait ouvrir une session au point d'entrée de ton utilisateur. Ensuite, sur le formulaire avec la captcha, tu ne mets PAS session_start(); car la session est déjà ouverte, mais par contre tu utilises les variables de cette même session dont tu as besoin pour le formulaire captcha, par exemple $_SESSION['code']=$code;

Une session est unique pour chaque utilisateur de ton site, et donc comme tu dis en effet, on ne démarre pas plusieurs sessions par page. Par contre la session se transmet de page en page ce qui est l'avantage.

Regarde sur cette page si tu veux plus d'explications sur les sessions :
http://www.programmationworld.com/...

J'espère que ça va marcher pour toi !

Web Traveller
Répondre à web_traveller

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
stefart, le mardi 29 avril 2008 à 14:40:48
salut web_traveller

merci pour tes lumières mais j'y arrive ça marche pas !!

voici mon code source :


<?php

session_start();
//session inscription au site -----------------------
if ($HTTP_POST_VARS['inscription']=="ok")
{
	//sélection de la base de données
	mysql_select_db($database_cnx_pa, $cnx_pa);
	//vérification si le mail existe déjà dans la base
	$FORMemail=trim($FORMemail); //supprime les espaces éventuels
	$query_rsClient = "SELECT email FROM clients WHERE email = '$FORMemail' ";
	$rsClient = mysql_query($query_rsClient , $cnx_pa) or die(mysql_error());
	$totalRows_rsClient = mysql_num_rows($rsClient);
	//echo '$totalRows_rsClient='.$totalRows_rsClient;
	if ($totalRows_rsClient==0)
		{
			//enregistrement dans la base du nouveau compte client
			$insertSQL = "INSERT INTO clients (nom, email, pass) VALUES ('$nom', '$FORMemail', '$FORMpass')";
			$Result1 = mysql_query($insertSQL , $cnx_pa) or die(mysql_error()); 
			$clientID=mysql_insert_id();//récupère l'identifiant client attibué 
			//mémorisation des paramètres dans la session
			$statut="client";
			session_register("clientID");
			session_register("statut");
			header("Location:menu.php");
		}//fin du if ($totalRows_rsClient==0)
	else
		{
		$erreur_mail=1;
		}
}//fin du if ($HTTP_POST_VARS['inscription']=="ok") -------------------
?>




<form action="<?php echo $editFormAction; ?>" method="post" name="form" id="form"  onSubmit="MM_validateForm('nom','','R','FORMemail','','R','verif','','R','FORMpass','','R');return document.MM_returnValue">
                      <table width="400" border="0" align="center" cellpadding="0" cellspacing="3">
                        <tr>
                          <td width="126"><div align="right"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Nom</font></div></td>
                          <td colspan="2"><input name="nom" type="text" id="nom" size="30">
                            **</td>
                        </tr>
                        <tr>
                          <td><div align="right"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">E-Mail</font></div></td>
                          <td colspan="2"><input name="FORMemail" type="text" id="FORMemail" size="30">
                          **</td>
                        </tr>
                        <tr>
                          <td><div align="right">Mot de passe</div></td>
                          <td colspan="2"><input name="FORMpass" type="password" id="FORMpass" size="10" maxlength="10"> 
                            10car
                            maxi**</td>
                        </tr>
                        <tr>
                          <td colspan="3" align="center">Recopiez le code de v&eacute;rification suivant :</td>
                        </tr>
                        <tr>
                          <td>&nbsp;</td>
                          <td width="96"><img src="imagesecu.php" alt="image de protection" /></td>
                          <td width="166"><input type="text" name="verif" size="10" maxlength="6" /></td>
                        </tr>
                        <tr>
                          <td colspan="3" align="center">
                            <input type="checkbox" name="accord" id="accord" value="OUI"><a href="mentions_legales.php]">
                          Accord les Conditions G&eacute;n&eacute;rales</a></td>
                        </tr>
                        <tr>
                          <td colspan="3"><div align="center"><font color="#FF0000">** Attention tous les champs sont obligatoires</font></div></td>
                        </tr>
                        <tr>
                          <td><input name="inscription" type="hidden" id="inscription" value="ok"></td>
                          <td colspan="2"><input type="submit" name="Submit" value="Envoyer"></td>
                        </tr>
                      </table>
					  
                    </form>

<?php
// On initialise la session Anti-spam

/* on vérifie que la code est toujours mémorisé en session et qu'il fait 6 caractères */
if(!isset($_SESSION['code']) || strlen($_SESSION['code']) != 6) die("Erreur !");

// on vérifie que la code entré est valide
if($_SESSION['code'] != $_POST['verif']) die("Erreur : le code de protection est invalide !");

/*
Ici on traite les données du formulaire, on envoie le mail par exemple pour un formulaire de contact
*/

// on détruit les variables de session, désormais inutiles
session_unset();
session_destroy();
?>

<input type="hidden" name="MM_insert" value="form1">


merci
--
Répondre à stefart

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
web_traveller, le mercredi 30 avril 2008 à 15:34:17
Salut Stefart !

Quel est le problème que tu rencontres exactement avec ton script ? Donne-moi des précisions autrement c'est difficile de t'aider.

Web Traveller
Répondre à web_traveller

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 stefart, le lundi 5 mai 2008 à 08:29:09
salut

mon problème est que je ne sais pas ou placer le script de Captcha dans la page pour que ça fonctionne !

Avant ! formulaire il m'indique uniquement erreur (normale j'imagine puis que le code n'a pas encore été saisi)
Apres ! avec ou sans le code l'enregistrement passe

Indication : mon formulaire d'inscription et mon script d'enregistrement est sur la même page d'où l'erreur !

merci de ton aide en tous cas
--
Répondre à stefart

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
bg62, le mercredi 30 avril 2008 à 16:53:17
un captcha tout simple et efficace :
<?php
class capcha{

	var $min;
	var $max;
	var $alphabet;
	var $word;
	var $num;
	var $numletter;

	function capcha(){
		$this->min = 4;
		$this->max = 6;
		$this->alphabet = 'abcdefghijklmnopqrstuvwxyz';
		$this->grain_de_sel = '6tIb90ZAS11';
		$this->word = $this->createWord();
		$this->num = $this->chooseNum();
		$this->numletter = $this->num2letter();
	}
	
	function q(){
		return 'Quelle est la '.$this->numletter.' lettre du mot '.$this->word.' ?';
	}

	function createWord(){

		$len = rand($this->min,$this->max);
		for($i=0;$i<$len;$i++){
			$word[$i] = $this->alphabet[rand(0,strlen($this->alphabet)-1)];
		}
		return implode('',$word);
	}

	function chooseNum(){
		return rand(1,strlen($this->word));
	}

	function num2letter(){
		if($this->num == strlen($this->word)){
			return 'dernière';
		}
		$array = array('1' => 'première','2' => 'deuxième','3' => 'troisième','4' => 'quatrième','5' => 'cinquième','6' => 'sizième','7' => 'septième','8' => 'huitième','9' => 'neuvième','10' => 'dixième');
		if(isset($array[$this->num])){
			return $array[$this->num];
		}else{
			return $this->num.'.ème';
		}	
	}

	function r(){
		return md5($this->grain_de_sel.$this->word[$this->num-1]);
	}
}
?>

@+
b g
le 'www' est fait aussi pour communiquer, partager et échanger, non ?
Répondre à bg62
Anti spam gratuit (Résolu)Bonjour a tous, je recherche un logiciel anti spam gratuit et qui tient la route. merci d'avance. www.commentcamarche.net/forum/affich-5811456-anti-spam-gratuit
Anti spam, Captcha (Résolu)Bonjour, Madame, Mensieurs, j'utilise php4 ,et j'ai besoin un anti-spam pour ma page d'inscription, j'ai trouvé plein d'exemplaire qui sont faites pour php5, le php4 n'a pas la classe imagecreate() Quelqu'un peut me... www.commentcamarche.net/forum/affich-4744674-anti-spam-captcha
[Free] Activer le filtre anti-spamC'est une fonction peu connue, mais Free propose un anti-spam gratuitement. Il est relativement efficace. Il suffit de l'activer sur votre boite mails. Les mails identifiés comme spam n'arriveront même pas jusque dans votre boite email (ce qui évite... www.commentcamarche.net/faq/sujet-4557-free-activer-le-filtre-anti-spam
Connexion à une base Oracle en php1. Périmètre Cet article est un exemple de connexion à une base Oracle par le biais d'un script php. Cet article ne traite pas la configuration de votre serveur Oracle, et de votre client Oracle. Nous partons du principe que vous pouvez accéder à... www.commentcamarche.net/faq/sujet-123-connexion-a-une-base-oracle-en-php
Quel est le meilleur anti spam gratuit (Résolu)Bonjour, Je voudrais savoir quel est le meilleur anti spam gratuit en français pour Outlook Express 6 ? Je ne souhaite pas changer de logiciel de messagerie mais simplement ne plus recevoir les dizaines de courriers indésirables quaotidiens. Merci de... www.commentcamarche.net/forum/affich-920088-quel-est-le-meilleur-anti-spam-gratuit
Anti-spam gratuit (Résolu)Bonjour à tous! Qui pourrait m'indiquer un anti spam gratuit! et est-ce que ça existe seulement ?Merci à tous et à chacun Isabela www.commentcamarche.net/forum/affich-1663338-anti-spam-gratuit
Anti spam Orange (Résolu)Bonjour, Je reçois chaque jour des dizaines de spams en anglais ! Est ce quelqu'un a souscrit l'anti spam de chez Orange à 1,50 euros.mois et qu'en pensez vous ? Merci. www.commentcamarche.net/forum/affich-2849703-anti-spam-orange
Télécharger SPAMfighterSpamFighter est un Filtre Anti Spam gratuit pour Outlook et Outlook Express éliminant automatiquement les messages indésirables (spam). SPAMfighter se base sur ses 3.113.185 utilisateurs dans 215 pays pour repérer les spams. Lorsque plusieurs... www.commentcamarche.net/telecharger/telecharger-34055116-spamfighter
Télécharger SpamBayesSpamBayes est un filtre anti-spam, initialement basé sur le travail de Paul Graham, c'est-à-dire un algorithme permettant de dissocier les mails indésirables des bons selon la fréquence de certains mots, après une période d'apprentissage. SpamBayes... www.commentcamarche.net/telecharger/telecharger-34055016-spambayes
PHP - Les variables d'environnement Les variables d'environnement sont, comme leur nom l'indique, des données stockées dans des variables permettant au programme d'avoir des informations sur son environnement. L'environnement, dans le cas du script PHP est : Le serveur Le client Ces... www.commentcamarche.net/php/phpenv.php3
PHP - Implantation du code Un script PHP est un simple fichier texte contenant des instructions écrites à l'aide de caractères ASCII 7 bits (des caractères non accentués) incluses dans un code HTML à l'aide de balises spéciales et stocké sur le serveur. Ce fichier doit avoir... www.commentcamarche.net/php/phpimplant.php3
PHP - Les fichiers Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier est repérée par une variable, indiquant... www.commentcamarche.net/php/phpfich.php3
Toutes les réponses pour « Recherche script PHP anti spam ou Captcha »