Petite question de php

Fermé
dominozaza - 16 mars 2009 à 02:43
 dominizaza - 16 mars 2009 à 22:39
Bonjour a tous,
je fais une page php de contact
et a la fin j'ai intégré un antispam par questions d'après un tuto

mais petite erreur de ma part . . . lorsque je "post", que la réponse a la question antispam soit bonne ou pas la fonction post est validé et donc mon scripte de contact s'exécute . . . si vous voulez bien m'aider :)

voici le code :

<?php
require(dirname(__FILE__).DIRECTORY_SEPARATOR.'captcha.php');

if(isset($_POST['captchaResult']))
{
	if(checkCaptcha('captchaResult', isset($_POST['caseInsensitive'])))
		$result = '<div class="result true">Le mail a bien était envoyé.</div><br />';
			else
				$result = '<div class="result false">Mauvaise r&eacute;ponse...</div><br />';
}
else $result = '';

$captcha = getCaptcha();

echo '<?xml version="1.0" encoding="ISO-8859-1"?>'."\n"; 
?>
<?php
mysql_connect("....");
mysql_select_db("....");
//-----------------------------------------------------
// V\Ufffffffffication 1 : est-ce qu'on veut poster ?
//-----------------------------------------------------
if (isset($_POST['titre']) AND isset($_POST['contenu']))
{
    $titre = addslashes($_POST['titre']);
    $contenu = addslashes($_POST['contenu']);
    // On v\Ufffffffffie si c'est une modification de contact ou pas
    if ($_POST['id_news'] == 0)
    {
        // Ce n'est pas une modification, on cr\Uffffffffune nouvelle entr\Uffffffffdans la table
        mysql_query("INSERT INTO contact VALUES('', '" . $titre . "', '" . $contenu . "', '" . time() . "')");
    }
    else
    {
        // On prot\Uffffffff la variable "id_contact" pour \Uffffffffter une faille SQL
        $_POST['id_contact'] = addslashes($_POST['id_news']);
        // C'est une modification, on met juste \Uffffffffour le titre et le contenu
        mysql_query("UPDATE contact SET titre='" . $titre . "', contenu='" . $contenu . "' WHERE id='" . $_POST['id_contact'] . "'");
    }
}
 
//--------------------------------------------------------
// V\Ufffffffffication 2 : est-ce qu'on veut supprimer contact ?
//--------------------------------------------------------
if (isset($_GET['supprimer_contact'])) // Si on demande de supprimer contact
{
    // Alors on supprime le contact correspondante
    // On prot\Uffffffff la variable "id_contact" pour \Uffffffffter une faille SQL
    $_GET['supprimer_news'] = addslashes($_GET['supprimer_news']);
    mysql_query('DELETE FROM news WHERE id=\'' . $_GET['supprimer_news'] . '\'');
}
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC');
while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les contact
if (isset($_GET['modifier_contact'])) // Si on demande de modifier un contact
{
    // On prot\Uffffffff la variable "modifier_contact" pour \Uffffffffter une faille SQL
    $_GET['modifier_news'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_contact']));
    // On r\Uffffffffp\Uffffffff les infos du contact correspondant
    $retour = mysql_query('SELECT * FROM contact WHERE id=\'' . $_GET['modifier_contact'] . '\'');
    $donnees = mysql_fetch_array($retour);
    
    // On place le titre et le contenu dans des variables simples
    $titre = stripslashes($donnees['titre']);
    $contenu = stripslashes($donnees['contenu']);
    $id_news = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification
}
else // C'est qu'on r\Uffffffffge une nouvelle news
{
    // Les variables $titre et $contenu sont vides, puisque c'est un nouveaux contact
    $titre = '';
    $contenu = '';
    $id_news = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
}
    ?>

<br />

<?php echo $result; ?>

<form action="index.php3?page=19" method="post">
<table>
<tr>
<td>
<p> Pseudo, mail :
<br />
<input type="text" size="40" name="titre" value="<?php echo $titre; ?>" /> 	 &nbsp; 	 &nbsp; 	 &nbsp; 	 &nbsp;
</p>
<br />
<br />
<label for="captchaResult"><?php echo $captcha; ?> : </label>
<br />
<input type="text" name="captchaResult" size="40" /> 	 &nbsp; 	 &nbsp; 	 &nbsp; 	 &nbsp;
</td>
<td>
<br />
<br />
<br />
<br />
<p>Contenu :
<br />
<textarea name="contenu" cols="50" rows="10">
<?php echo $contenu; ?>
</textarea>
<input type="hidden" name="id_mp" value="<?php echo $id_mp; ?>" />
 </p>
 </td>
 </tr>
 </table>
<br />
<br />
<br />
<br />

<input type="submit" value="Envoyer" />

</form>
</form>
<br />


si vous pouvez m'aider, 1000 merci !

bonne soirée a tous .
A voir également:

3 réponses

flytsetse Messages postés 21 Date d'inscription mercredi 19 mars 2008 Statut Membre Dernière intervention 16 mars 2009 1
16 mars 2009 à 04:16
Je te conseil fortement d'aller voir ici : https://codes-sources.commentcamarche.net/

regarde le code du PHP pour le floutage et l'anti-spam, ancienne version remise à jour.
Tu es codeur je pense donc un ti bonheur pour toi tu n'as plus qu'à intégré ce que tu veux dans ta page ( N'oublie pas le fichier .ttf qui va avec ^^ et de le mettre dans le dossier lors de l'Upload sur le server ^^)
0
merci mais je ne veux pas utiliser de visuel mais des questions généré aléatoirement ( car les visuel c'est pas génial . . . )
donc pour tout ça c'est bon, c'est juste après j'ai fais une erreur et je ne sais pas comment la corriger
au moment de la validation le message est envoyé, que la réponse soit bonne ou pas (mais le script fonctionne je l'ai simplement mal intégré )

merci tout de même.
0
up plz :s
0