Aide sur image anti-spam...

Signaler
Messages postés
124
Date d'inscription
samedi 8 avril 2006
Statut
Membre
Dernière intervention
29 janvier 2009
-
Messages postés
124
Date d'inscription
samedi 8 avril 2006
Statut
Membre
Dernière intervention
29 janvier 2009
-
Bonjour. J'ai intégré sur une page l'image anti-spam du lien :
http://www.phpcs.com/codes/IMAGE-ANTI-SPAM_38969.aspx
Cependant, je rencontre un problème ne connaissant pas trop le PHP, le message ne part pas. Serait-il possible d'avoir une aide? Merci d'avance à tous.
Cordialement.
Ci-dessous les codes :

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Contact</title>

<form method=POST action=envoi.php >

Votre Nom:,
    ,
----
Votre Email:,
    ,
----
Sujet:,
    ,
----
Commentaires:

  <textarea COLS=50 ROWS=6 name=comments></textarea>

&nbsp;

&nbsp;

<?php
$variable = "code"; // on initialise la variable
session_start(); // Démarrage de la session OBLIGATOIRE
session_register("variable"); // On enregistre une variable appelée "variable" dans la session SANS LE $ DEVANT
?>

-
    

</form>

</head>

</html>
------------------------------------------
Formulaire d'envoi.

<?php

require_once "http://www.monsite.fr/contact.html";

// on récupère le code tapé par le visiteur (on le passe en majuscule)
$flood = isset( $_POST['flood'] ) ? strtoupper( $_POST['flood'] ) : '';

// on vérifie:
if( $flood != $_SESSION['aaaa'] )
{
echo "Bonne valeur : ";

$TO = "contact@monsite.fr";
$h  = "From: " . $email;// Adresse email de l'expéditeur
$message = "";
while (list($key, $val) = each($HTTP_POST_VARS)) {
  $message .= "$key : $val\n";
}
mail($TO, $subject, $message, $h);
Header("Location: http://www.monsite.fr/remerciement.html");

// ici tu traites les cas où le code est faux
} else {
echo "Mauvaise valeur : ";  
  
}

echo "variable code : " , "$code " ;
echo "variable aaaa  : " , $aaaa ;

?>

13 réponses

Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Salut!
Si ton champ est:
C'est bizarre de mettre: $flood = isset( $_POST['flood'] ) ? strtoupper( $_POST['flood'] ) : '';
>> $flood = isset( $_POST['code'] ) ? strtoupper( $_POST['code'] ) : '';

$variable = "code"; // on initialise la variable
session_register("variable"); // On enregistre une variable appelée "variable" dans la session SANS LE $ DEVANT
>> Inutile, utilisation inutile de " ", ...

// on vérifie:
if( $flood != $_SESSION['aaaa'] )
{
echo "Bonne valeur : ";
>> Contradictoire: si les deux sont différents: bonne valeur...

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
Quelque chose de plus rapide :
"// on récupère le code tapé par le visiteur (on le passe en majuscule)
$flood = isset( $_POST['flood'] ) ? strtoupper( $_POST['flood'] ) : '';


// on vérifie:
if( $flood != $_SESSION['aaaa'] )"

$flood = ( isset( $_POST['flood'] ) ) ? strtoupper( $_POST['code'] ) : NULL;

if ( isset($flood) && $flood === $_SESSION['aaaa'] ) {
// Suite
}


Autant utiliser NULL plutot que d'initialiser une variable de type STRING.
Car isset() est plus rapide que "===" dans certains cas ! Sachant qu'en plus, tu ne regarde pas le tableau $_SESSION[] pour peu qu'il ne soit pas gigantesque :S
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Salut!
FhX, petite question: alors pk utiliser isset dans ton test? Il sera tjs true, vu le : NULL, non?

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Messages postés
124
Date d'inscription
samedi 8 avril 2006
Statut
Membre
Dernière intervention
29 janvier 2009

Bonjour. Pour l'instant, j'ai mis ça et mon formulaire ne part pas!!

<?php
session_start();
require_once "
http://www.montesite.fr/contact.html
";



// on récupère le code tapé par le visiteur (on le passe en majuscule)
$flood = isset( $_POST['code'] ) ? strtoupper( $_POST['code'] ) : '';

// on vérifie si c'est différent
if( $flood != $_SESSION['aaaa'] )



{
echo "Mauvaise valeur : ";
}



else
{
// Traitement si le code est bon
echo "Bonne valeur : ";
$TO = "
[mailto:contact@monsite.fr
contact@monsite.fr
]
";
$h  = "From: " . $email;// Adresse email de l'expéditeur
$message = "";
while (list($key, $val) = each($HTTP_POST_VARS)) {
  $message .= "$key : $val\n";
}
mail($TO, $subject, $message, $h);
Header("Location:
http://www.monsite.fr/remerciement.html
");
}
?>
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
"FhX, petite question: alors pk utiliser isset dans ton test? Il sera tjs true, vu le : NULL, non?"

Bah nan, si $_POST['flood'] n'est pas encore initialisée :)

Si tu veux :
"$flood = ( isset( $_POST['flood'] ) ) ? strtoupper( $_POST['code'] ) : NULL;

if ( isset($flood) && $flood === $_SESSION['aaaa'] ) { "

est la même chose que :

if ( isset($_POST['flood'], $_POST['code']) && strtoupper( $_POST['code'] ) === $_SESSION['aaaa'] ) {
//
}

Voila voila :)
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Salut!
Dans la page de verif, après session_start(); qu'affiche ce code:
foreach( $_SESSION as $key => $value )
    echo $key , ': ' , $value ' .
';

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Messages postés
124
Date d'inscription
samedi 8 avril 2006
Statut
Membre
Dernière intervention
29 janvier 2009

Salut.
Ca affiche :
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' in /home/astrof/public_html/envoi.php on line 5
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
foreach( $_SESSION as $key => $value )
    echo $key , ': ' , $value , '
';

Mais tu aurais pu corriger ça toi même, ... ;)

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Messages postés
124
Date d'inscription
samedi 8 avril 2006
Statut
Membre
Dernière intervention
29 janvier 2009

Désolé, je ne suis que débutant.
Quand je vois dans l'image HH il met : 84
Quand je vois dans l'image 6H il met : HA
Quand je vois dans l'image CZ il met : HL
Quand je vois dans l'image RI il met : 1S
Quand je vois dans l'image 6R il met : PP
Quand je vois dans l'image 8URI il met : 8U
Quand je vois dans l'image YU il met : KH

Quand je clique sans remplir, le formulaire part.

As-tu une idée?
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Non...
C'est bizarre:
- c'est marche chez moi....
- tu utilises une redirection en header, qui ne devrait pas marcher vu que tu as un echo avant...

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Messages postés
124
Date d'inscription
samedi 8 avril 2006
Statut
Membre
Dernière intervention
29 janvier 2009

Je ne sais pas trop quoi te dire:


Comment faire?


Al.
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Je vais encore regarder et si je trouve qqch je te redis!

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Messages postés
124
Date d'inscription
samedi 8 avril 2006
Statut
Membre
Dernière intervention
29 janvier 2009

Ok.


Je suis hébergé chez Hosteur.com, hébergement payant et ils ont de nombreux clients, donc je pense que cela devrait fonctionner.


Al.