PascalCmoa
Messages postés239Date d'inscriptionmercredi 19 février 2003StatutMembreDernière intervention17 janvier 2013
-
5 févr. 2008 à 17:39
danielos77
Messages postés108Date d'inscriptionsamedi 18 février 2006StatutMembreDernière intervention16 janvier 2024
-
12 oct. 2008 à 19:34
Bonjour à tous.
J'ai un bug persistant dans l'un de mes scripts.
Avant toutes choses, j'ai controlé et fait controlé mon code.
Le système est quand je soumet un formulaire rempli vers une page de validation, cette page scan les données transmises, vérifie la presence de 2 champs dans des tables, fait les différentes insertions quand les deux champs ne sont pas trouvé et envoi un email pour avertir que tout est bon.
Ce process fonctionne parfaitement sous FireFox, par contre sous IE (browser utilisé par la pluspart des gens non onformaticien) le système bug. Soit il me fait deux insertions (pas bon) soit il fait une insertion, envoi le mail mais me dit que l'un des deux champs existait déjà (la c po vrai j'avais vérifier avant).
Je n'arrive plus a comprendre. Pour que le process fonctionne parfaitement, après chaque action j'ai des header(" location:..."); exit;
cs_morpheus57
Messages postés121Date d'inscriptionvendredi 31 mars 2006StatutMembreDernière intervention30 décembre 2010 5 févr. 2008 à 18:08
Bonjour,
Arrives-tu à reproduire systématiquement le problème sous IE... Je dis ça car j'avais eu le même genre de problème quand des utilisateurs double-cliquaient sur un boutton ajouter...
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 5 févr. 2008 à 19:25
Hello,
de tte manière, le problème ne vient ni de php ni de mysql. Il vient forcément d'un code javascript, voire de html mais à priori, plus côté javascript.
Fais voir ton code d'insertion.
PascalCmoa
Messages postés239Date d'inscriptionmercredi 19 février 2003StatutMembreDernière intervention17 janvier 20135 6 févr. 2008 à 14:20
L'erreur arrive de façon aléatoire. Aujourd'hui tout marche correctement (je viens de retesté), mais demain je ne sais pas.
J'ai testé mon code pour voir sa robustesse, no problémo
J'ai soumis mon code à un collegue développeur senior en php, il n'a rien trouvé de suspects dans les scripts.
A fore de chercher, j'ai trouvé beaucoup de post sur ce genre de problème.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 6 févr. 2008 à 19:20
Je maintiens quand même que c'est un problème côté client, et surtout, qu'on ne pourra pas t'aider sans ton code. Il y a beaucoup de développeurs seniors ici aussi, un gars peu louper un truc...plusieurs gars, ça permet de râtisser plus large. A mon taf, on est plusieurs développeurs seniors (ou juniors d'ailleurs) : ça n'empêche pas que quand l'un de nous a un problème et qu'il ne le voit pas, il montre son code aux autres. Et on trouve toujours, du coup.
Vous n’avez pas trouvé la réponse que vous recherchez ?
danielos77
Messages postés108Date d'inscriptionsamedi 18 février 2006StatutMembreDernière intervention16 janvier 2024 12 oct. 2008 à 19:34
Bonjour,
J'ai également un pb de double insertion sur ma table que cela soit
avec IE ou avce Mozilla. Si quelqu'un peut me dire d'où cela peut
venir
Voici le code sur la page.
<?
$i=0;
// ouverture du fichier en mode lecture (r = ready)
$fichier=fopen("nom_fichier.csv","r");
// lecture ligne par ligne tant qu'on ne rencontre pas le code: fin de fichier(feof)
while(!feof($fichier))
{
//
l'instruction explode() sépare la ligne en autant de valeurs que de
point-virgules rencontrés
//
fgets() prend les valeurs dans le fichier et lit 4096 caractères par
ligne
//
$tableau[] est une variable tableau ou array qui va recevoir ce qui est
lu dans le fichier
$tableau[$i]=explode(";",fgets($fichier,4096));
$i++;
}
$nblignes=$i;
//ouverture de la Base de données ; à adapter
$bdd = mysql_connect('sql.free.fr','user','mdp');
mysql_select_db('base',$bdd);
// les valeurs lues dans le fichier sont insérées dans la BDD ligne par ligne
// on va "boucler"(for = tant que ...) autant de fois que de lignes trouvées dans le fichier
// pour chaque ligne, on stocke le contenu de chaque champs dans les variables $V
// il est en effet impossible de lire une variable tableau[ligne][colonne] à l'intérieur d'une instruction
// mysql_query
for ($i=0;$i<$nblignes-1;$i++) / le -1
c'est parce que j'avais une ligne vide systématiquement ajoutée
maintenant c'est bon
{
$v1=$tableau[$i][0];
$v2=$tableau[$i][1];
$v3=$tableau[$i][2];
$v4=$tableau[$i][3];
$v5=$tableau[$i][4];
$v6=$tableau[$i][5];
$v7=$tableau[$i][6];
$v8=$tableau[$i][7];
$v9=$tableau[$i][8];
$v10=$tableau[$i][9];
$v11=$tableau[$i][10];
$v12=$tableau[$i][11];
$v13=$tableau[$i][12];
mysql_query("INSERT INTO nom_table VALUES ('$v1', '$v2',
'$v3','$v4', '$v5', '$v6','$v7', '$v8', '$v9','$v10', '$v11', '$v12',
'$v13')") or die ("Le transfert ne s'est pas déroulé correctement");