Requête UPDATE problématique sur le serveur distant
Posté : 15 nov. 2006, 17:27
Salut à tous!
Toujours dans mon questionnaire, j'ai un souci concernant l'enregistrement des champs sur la base de données.
Dès que l'adresse électronique est correctement saisie, une requête insérant ladite adresse se produit. Jusqu'ici, tout va bien.
En revanche, dès que l'on coche non à la question 1 (ou oui et que tous les champs des questions restantes sont dûment renseignés), une requête UPDATE se produit, qui permet d'enregistrer le reste là où le champ contenant l'adresse électronique contient celle précédemment enregistrée. En local, tout va bien, les enregistrements sont effectués; mais, sur le serveur distant, la requête est vouée à l'échec.
Voici le code:
Toujours dans mon questionnaire, j'ai un souci concernant l'enregistrement des champs sur la base de données.
Dès que l'adresse électronique est correctement saisie, une requête insérant ladite adresse se produit. Jusqu'ici, tout va bien.
En revanche, dès que l'on coche non à la question 1 (ou oui et que tous les champs des questions restantes sont dûment renseignés), une requête UPDATE se produit, qui permet d'enregistrer le reste là où le champ contenant l'adresse électronique contient celle précédemment enregistrée. En local, tout va bien, les enregistrements sont effectués; mais, sur le serveur distant, la requête est vouée à l'échec.
Voici le code:
<?php
session_start();
include ("mysql.php");
// Récupération des données des formulaires
// Les variables correspondant aux champs "courriel" et "question*", que je ne vous présente plus
if (isset($courriel) && !empty($courriel)) $_SESSION['courriel']=$courriel;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Enquête vente privée - Questionnaire en ligne</title>
<link href="styles.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h1>Questionnaire</h1>
<?php
if (!isset($question1) || empty($question1)){
// Affichage du premier formulaire
if (!isset($courriel) || empty($courriel)){
?>
<!-- Formulaire courriel -->
<?php
}
else{
$requete_courriel_insertion="INSERT INTO questionnaire (email) VALUES ('".mysql_real_escape_string($courriel)."')";
mysql_query($requete_courriel_insertion);
if (mysql_insert_id()==0){
?>
<p>Un problème est survenu. Veuillez réessayer plus tard.</p>
<?php
}
else{
?>
<!-- Question 1 -->
<?php
}
}
}
else{
$session=$_SESSION['courriel'];
if ($question1==1){
$requete_reponses_insertion="UPDATE questionnaire SET question1='".intval($question1)."' WHERE email='".mysql_real_escape_string($session)."'";
mysql_query($requete_reponses_insertion);
if (mysql_affected_rows()==0){
?>
<p>La saisie a échoué. Veuillez réessayer plus tard.</p>
<?php
}
else{
?>
<p>Merci pour votre réponse, etc.</p>
<?php
}
}
else{
// Affichage du dernier formulaire (questions 2 à 4)
if (!isset($question2) || empty($question2)
|| !isset($question3a) || empty($question3a)
|| !isset($question3b) || empty($question3b)
|| !isset($question3c) || empty($question3c)
|| !isset($question4) || empty($question4)
|| ($question4==3 && (!isset($question4a) || empty($question4a)))){
?>
<!-- Questions 2 à 4 -->
<?php
}
else{
if (isset($question5a) && !empty($question5a)
&& isset($question5b) && !empty($question5b)
&& isset($question5c) && !empty($question5c)
&& isset($question6) && !empty($question6)
&& isset($question7a) && !empty($question7a)
&& isset($question7b) && !empty($question7b)
&& isset($question8) && !empty($question8)
&& (($question6==2 && isset($question6a) && !empty($question6a) && $question6a!=0)
xor ($question6!=2 && (!isset($question6a) || empty($question6a) || $question6a==0)))
&& (($question8==2 && isset($question8a) && !empty($question8a))
xor ($question8!=2 && (!isset($question8a) || empty($question8a))))){
$requete_reponses_insertion="UPDATE questionnaire SET question1='".intval($question1)."', question2='".intval($question2)."',
question3a='".intval($question3a)."', question3b='".intval($question3b)."', question3c='".intval($question3c)."',
question4='".intval($question4)."', question4a='".mysql_real_escape_string(decodage_html($question4a))."',
question5a='".intval($question5a)."', question5b='".intval($question5b)."', question5c='".intval($question5c)."',
question6='".intval($question6)."', question6a='".intval(decodage_html($question6a))."',
question7a='".intval($question7a)."', question7b='".intval($question7b)."',
question8='".intval($question8)."', question8a='".mysql_real_escape_string(decodage_html($question8a))."'
WHERE email='".mysql_real_escape_string($session)."'";
mysql_query($requete_reponses_insertion);
if (mysql_affected_rows()==0){
?>
<p>La saisie a échoué. Veuillez réessayer plus tard.</p>
<?php
}
else{
?>
<p>Merci d'avoir pris le temps de répondre à notre enquête, etc.</p>
<?php
}
}
// Affichage du dernier formulaire (questions 5 à 8 )
else{
?>
<!-- Questions 5 à 8 -->
<?php
}
}
}
}
?>
</body>
</html>
Il me semble cerner le problème du côté des requêtes UPDATE, mais j'ignore si la variable $_SESSION['courriel'] est en cause.