8791 sujets

Développement web côté serveur, CMS

Bonjour à tous !
J'ai un problème avec mon livre d'or. Avant tout fonctionnait bien, mais j'ai ajouté un Captcha (puisque des robots me laissaient des milliers de messages :s) et depuis, les nouveaux messages ne s'affichent pas. Je pense que le problème se situe au niveau de l'enregistrement des messages puisqu'ils n'apparaissent pas dans ma base de donnée mysql.. Voilà mes fichiers livre_or.php et verify.php (qui est chargé après livre_or).
Si je n'ai pas été assez clair dans mes explications, dites le moi.
Merci d'avance pour votre aide !

livre_or.php :
<?php

require "config.php";
$sql = mysql_connect(DB_SERVER,DB_LOGIN,DB_PASS);
if (!$sql) {die('Ne peut se connecter : ' . mysql_error());}

$db_selected = mysql_select_db(DB_NAME, $sql);
if (!$db_selected) {die ('Ne peut utiliser DB_NAME : ' . mysql_error());}

mysql_query('SET NAMES '.DB_ENC);
$jour = time();

//TRAITEMENT DONNEES
if(!empty($_POST)){
	extract($_POST);
	
	$pseudo = mysql_real_escape_string(htmlentities($pseudo));
    $email = mysql_real_escape_string(htmlentities($email));
	$jour = mysql_real_escape_string(htmlentities($jour));
	$message = mysql_real_escape_string(htmlentities($message));
	$message = nl2br($message);
	mysql_query("INSERT INTO objetsde_table (pseudo,email,jour,message) VALUES ('$pseudo','$email','$jour','$message')");
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>xxx</title>
	   <meta name="author" content="xxx" />
	   <meta http-equiv="pragma" content="no-cache" />
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	   <link rel="icon" type="image/jpg" href="images/favicon.jpg" />
		<!--[if IE]><link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /><![endif]-->
	   <link rel="stylesheet" media="screen" type="text/css" title="contact" href="livre_or.css" />
   </head>
   
   <body>
    <div id="en_tete"></div>
 
       <div id="menu"></div>
	   
	   <div id="corps">
			<div class="formulaire">
			<h2>Livre d'or</h2>
			<h4>Bienvenue dans le livre d'or de ce site. <br /> N'oubliez pas de déposer votre message !</h4>
<?php
// AFFICHAGE MESSAGES

require "config.php";
$link= "SELECT * FROM objetsde_table ORDER BY id DESC";
$req= mysql_query($link);
	while($data= mysql_fetch_array($req)) 
{
echo '<p><strong>~ '.stripslashes(html_entity_decode($data['pseudo'])).' ~</strong> le ';
echo '<em>'.$jour = date('d.m.y').' :</em><br /></p>';
echo '<p style="color: red;">' .stripslashes(html_entity_decode(nl2br($data['message']))).'<hr /></p>';
}
mysql_close();
?>
				<form name="livre_or" method="post" action="verify.php" onsubmit="return (valider() && VerifForm(this))">
				<fieldset>
				<legend>Ecrire un message</legend>
				<label for="pseudo">Nom</label> : <input type="text" name="pseudo" id="pseudo" size="30"/><br /><br />
				<label for="email">E-mail <em>(non visible)</em></label> : <input type="text" name="email" id="email" size="35"/><br /><br />
				<label for="message">Message</label> : <br /><textarea name="message" id="message" rows="7" cols="55"></textarea><br />	
		 <br /><center>
<?php
require_once('recaptchalib.php');
$publickey = "6Le07NASAAAAAGgjqiBX-KZOwdXMxZJMso0L07C7";
echo recaptcha_get_html($publickey);
?></center>
				</fieldset>
				<h5><input type="submit" value="Envoyer" /><input type="reset" value="Effacer"/></h5>
				</form>
			</div>
	   </div>
	   
	   <div id="pied_de_page"></div>
<script type="text/javascript">
//<![CDATA[

function valider()
	{
  if ((document.livre_or.pseudo.value != "") && (document.livre_or.email.value != "") && (document.livre_or.message.value != ""))
		{
		return true;
		}
	else 
		{
		alert('Tous les champs doivent être indiqués.');
		return false;
		}	
	}

function VerifForm(contact)
	{
	email = document.livre_or.email.value;
	var place = email.indexOf("@",1);
	var point = email.indexOf(".",place+1);
	if ((place > -1)&&(email.length >2)&&(point > 1))
		{
		formulaire.submit();
		return true;
		}
	else
		{
		alert('Adresse e-mail non valide.');
		return false;
		}
	}

//]]>
</script>
   </body>
</html>


verify.php : Smiley eek
<?php
  require_once('recaptchalib.php');
  $privatekey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
  $resp = recaptcha_check_answer ($privatekey,
                                $_SERVER["REMOTE_ADDR"],
                                $_POST["recaptcha_challenge_field"],
                                $_POST["recaptcha_response_field"]);

  if (!$resp->is_valid) {
    // What happens when the CAPTCHA was entered incorrectly
    die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." .
         "(reCAPTCHA said: " . $resp->error . ")");
  } else {
    // Your code here to handle a successful verification
  }
  ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>xxx</title>
	   <meta name="author" content="xxx" />
	   <meta http-equiv="pragma" content="no-cache" />
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	   <link rel="icon" type="image/jpg" href="images/favicon.jpg" />
		<!--[if IE]><link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /><![endif]-->
	   <link rel="stylesheet" media="screen" type="text/css" title="contact" href="verify.css" />
   </head>
   <body>
    <div id="corps">
			<div class="texte">
           <h2>Votre message a bien été enregistré</h2>
           <p>Merci de suivre le lien suivant afin de retourner à la page d'accueil : <br />
		   <a href="index.html">Page d'accueil</a></p>
			</div>
	   </div>
   </body>
</html>
Smiley murf
Salut


Je n'ai pas la réponse à ta question car ton code est trop long pour que je plonge dedans.

Mais je te conseille de faire des var_dump pour tester tes variable, je parle en l'occurence :

- de tes $_POST (pour voir si elle sont bien remplis)
- de ta requête (pour voir qu'est ce que tu envois à ta BDD)

synthaxe exemple :


if(!empty($_POST)){
	extract($_POST);



var_dump($_POST);


et dis moi quel sont les résultats.
Merci beaucoup pour ton attention et ta compréhension !
Je sais malheureusement que mon code est trop long Smiley decu ...

Alors euh.. je ne sais pas si c'est ce à quoi tu t'attendais mais j'ai :
"Parse error: syntax error, unexpected $end in /home/objetsde/public_html/livre_or.php on line 152"

Ligne 152 = dernière ligne du script :
</html>
Smiley confus
Manque une accolade ou y'en a une en trop quelque part.

Et pour ton problème du début c'est simplement que tu fais l'insertion des données sur la mauvaise page. Normal que ça sauve rien en base...
Modifié par jb_gfx (29 Jun 2012 - 18:25)
Ah oui, en effet, il en manquait une dans la syntaxe de JuseN.
Maintenant, ça m'affiche : array(0) { }

@jb_gfx : Merci bcp pour ton aide mais pourrais-tu être plus explicite ? ^^' Smiley confus
Est-ce le traitement ou l'affichage des messages qui est sur la mauvaise page ? Que dois-je faire pour y remédier ?
Modifié par End-y (29 Jun 2012 - 22:16)