Bonjour à toute la communauté,
Alors, j’ai un problème qui apparait sous IE mais pas sous FF, vous me direz classique tout le monde le sait. Mais c’est assez surprenant et j’avoue ne pas bien comprendre pourquoi, d’où ce sujet.
J’ai un premier fichier creation_article.php (formulaire de saisi) et un second creation.php (insert des données dans ma base Mysql).
fichier creation_article.php :
<fieldset><legend>Fiche article</legend>
<div><form method=post action="creation.php">
<table border="0" cellspacing="0">
<?php
$cadre1= "couleur1";
$cadre2= "couleur2";
echo ' <tr class='.$cadre1.'><td class="border_svpho_saisi">Code article</td><td class="border_svpho_saisi"> '.$list["A1ART"].'</td></tr>
<tr class='.$cadre2.'><td class="border_svpho_saisi">Fournisseur</td><td class="border_svpho_saisi"> '.$list["A1FRS"].'</td></tr>
<tr class='.$cadre1.'><td class="border_svpho_saisi">Grp/Fam</td><td class="border_svpho_saisi"> '.$list["A1FAM"].'</td></tr>
<tr class='.$cadre2.'><td class="border_svpho_saisi">Libelle</td><td class="border_svpho_saisi"> '.$list["A1LIB"].'</td></tr>
<tr><td>Responsable</td>
<td><select name="rep">
echo '</select>
</td>
</tr>
<tr><td><label for="charte">Charte</label></td><td><input type=text id="charte" name=charte maxlength="60" size="60"></td></tr>
<tr><td><label for="pack">Packaging</label></td><td><input type=text id="pack" name=pack maxlength="60" size="60"></td></tr>
<tr><td><label for="des">Designation MEP (max 60 caractères)</label></td><td><input type=text id="des" name=design maxlength="60" size="60"></td></tr>
<tr><td><label for="sel1">Dead Line</label></td><td><input type=text id="sel1" name=deadli><img src="../images/calendrier.png" onclick="return showCalendar(\'sel1\', \'%d/%m/%Y\', \'24\', true);" title="Calendrier"/><img src="../images/reset.png" onclick="effacerDateAll()" title="Effacer date" /></td></tr>
<tr><td colspan=2><input type=submit value="Enregistrer" onClick="return verifCreaArticle()"><input type=reset value="Effacer"><input type=button value="Fermer" onClick="self.close()"></td></tr>
<input type=hidden name="art" value="'.$list["A1ART"].'">
<input type=hidden name="gfa" value="'.$list["A1FAM"].'">
<input type=hidden name="lib" value="'.$list["A1LIB"].'">
<input type="hidden" name="fourn" value="'.$list["A1FRS"].'">
';
?>
</table>
</form></div>
</fieldset>
Fichier creation.php
if (isset($_POST["art"]) && $_POST["art"] != "")$art = trim(htmlspecialchars(addslashes($_POST["art"]))); else $art = '';
if (isset($_POST["rep"]) && $_POST["rep"] != "") $rep = trim(htmlspecialchars(addslashes($_POST["rep"]))); else $rep = '';
if (isset($_POST["charte"]) && $_POST["charte"] != "") $charte = trim(htmlspecialchars(addslashes($_POST["charte"]))); else $charte = '';
if (isset($_POST["pack"]) && $_POST["pack"] != "") $pack = trim(htmlspecialchars(addslashes($_POST["pack"]))); else $pack = '';
if (isset($_POST["design"]) && $_POST["design"] != "") $design = trim(htmlspecialchars(addslashes($_POST["design"]))); else $design = '';
if (isset($_POST["deadli"]) && $_POST["deadli"] != "") $deadli = trim(htmlspecialchars(addslashes($_POST["deadli"]))); else $deadli = '01/01/2009';
if (isset($_POST["gfa"]) && $_POST["gfa"] != "") $gfa = trim(htmlspecialchars(addslashes($_POST["gfa"]))); else $gfa = '';
if (isset($_POST["lib"]) && $_POST["lib"] != "") $lib = trim(htmlspecialchars(addslashes($_POST["lib"]))); else $lib = '';
$fourn = $_POST["fourn"]; //else $frs = ''; force la variable post dans la variables fourn sans aucun test d'existence.
$file_mysql = "../connexion/connexion_mysql.inc.php";
if (file_exists($file_mysql)) include($file_mysql);
require "../fonctions/fonction.php";
$sql_rech = "SELECT ART_ID FROM svpho_art WHERE ART_ID = '".$art."'";
$rep_sql_rech = mysql_db_query($db, $sql_rech) or die ("La requête n'est pas valide : ".$sql_creation.". L22<br>");
if (mysql_num_rows($rep_sql_rech) == 0)
{
//insertion dans la table de suivi photos article.
$sql_creation = "INSERT INTO `svpho_art` (ART_ID, ART_FRS, ART_GFA, ART_LIB, ART_REP, ART_CHT, ART_DES, ART_PCK, ART_ETA, ART_DLI, ART_IMP, ART_IPP, ART_IZT, ART_IAS, ART_TOT) VALUES ('".$art."', '".$fourn."', '".$gfa."', '".$lib."', '".$rep."', '".$charte."', '".$design."', '".$pack."', '00','".date_mydb($deadli)."', '', '', '', '', '')"; //echo $sql_creation; exit;
$rep_sql_creation = mysql_db_query($db, $sql_creation) or die ("La requête n'est pas valide : ".$sql_creation.". L27<br>");
echo '<script>window.opener.location.reload(true);
self.close();</script>';
}
else echo "l'article <font color=red>".$art."</font> existe déjà dans la base de données. <input type=button value=\"Fermer\" onClick=\"self.close()\" name=\"button\">";
Certaines lignes ont été enlevées, mais elles n’étaient pas utiles à la compréhension du problèmes.
Le problème est que sous FF j’ai ma variable fourn : <input type=“hidden” name=“fourn” value="’.$list[“A1FRS”].’"> qui passe bien et est bien reçue dans le fichier creation.php, mais sous IE la variable n’existe pas et donc n’est pas définie.
Résultat j’ai ma requête qui passe bien sous FF mais pas sous IE car le champ qui recoit la variable fourn est un “int” non initialiser et donc le script s’arrête.
Même fichiers, même environnement, même base et 2 résultats différents.
affichage requête sous FF :
INSERT INTO svpho_art
(ART_ID, ART_FRS, ART_GFA, ART_LIB, ART_REP, ART_CHT, ART_DES, ART_PCK, ART_ETA, ART_DLI, ART_IMP, ART_IPP, ART_IZT, ART_IAS, ART_TOT) VALUES (‘104328203’, ‘104’, ‘BAT’, ‘VERRE A EAU X3’, ‘2’, ‘’, ‘’, ‘’, ‘00’,‘2009-01-01’, ‘’, ‘’, ‘’, ‘’, ‘’)
affichage requête sous IE :
Notice: Undefined index: fourn in C:\Program Files\EasyPHP 3.0\www\jja_dev\suivi_photos\creation.php on line 15
INSERT INTO svpho_art
(ART_ID, ART_FRS, ART_GFA, ART_LIB, ART_REP, ART_CHT, ART_DES, ART_PCK, ART_ETA, ART_DLI, ART_IMP, ART_IPP, ART_IZT, ART_IAS, ART_TOT) VALUES (‘104328203’, ‘’, ‘BAT’, ‘VERRE A EAU X3’, ‘2’, ‘’, ‘’, ‘’, ‘00’,‘2009-01-01’, ‘’, ‘’, ‘’, ‘’, ‘’)
Quelqu’un sait pourquoi ça fait ça?
Cordialment cycyand1.