Bonjour,
Depuis plusieurs jours je travaille sur un bout de code php qui ne me posait aucun problème sur un serveur Web Linux (intranet). Mais depuis la migration vers un autre serveur Web, mon code ne fonctionne plus.
le pire c'est que c'est totalement incompréhensible !
Voici exactement mon problème :
Dans un page, j'ai un switch avec plusieurs cases.
1er case :
J'ai un formulaire avec des checkbox (nombre de checkbox aléatoire, selon le résultat d'une requête. Elles se nomment toutes sla_X (ou X est un nombre incrémenté))
Donc dans ce case, je check ce que j'ai besoin et je poste mon formulaire.
2ième case :
Voici le code php :
Ce code permet donc selon le nombre de checkbox cochées dans le 1er case de concaténer les $_POST dans une variable et d’écrire le contenu de cette variable dans un fichier texte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 $req_sla=""; $req_sla="AND ("; $i=1; $j=1; for ($i=1; $i<=$resultat_countsla['nb_sla']; $i++) { $sla_val = "sla_" . $i ; if (isset($_POST[$sla_val])) { if ($j==1) { $req_sla = $req_sla . 'STService ="' . $_POST[$sla_val] .'" '; $j++; } else { $req_sla = $req_sla . ' OR STService ="' . $_POST[$sla_val] .'" '; } echo '<font color="#f68e14"><b>"' . $_POST[$sla_val] . '"</b></font> '; } } $req_sla = $req_sla . ")"; $filename="applications/geolocalisation/pages/maintenance_infos.txt"; // CREATION DU FICHIER TEXTE AVEC LA REQUETE ADEQUATE $fp = fopen($filename,"w+"); // ouverture du fichier en écriture if (file_exists($filename)) { fputs($fp, $req_sla); fclose($fp); } else { echo '<b>Le fichier n\'existe pas !</b>'; } }
Le problème est le suivant :
Si je fais un echo de $req_sla juste avant de faire mon fputs, elle contient exactement ce qu'elle devrait contenir mais quand le fputs est réalisé voici ce qui est écrit dans le fichier :
AND ()
Autrement dit, il fait $req_sla="AND ("; et $req_sla = $req_sla . ")"; mais pas tout le code entre.
La chose la plus bizarre, c'est que la variable $req_sla est correcte en echo mais pas dans le fputs.
Chose encore plus étonnante : Si j’écris en "dur" dans mon fputs le chaîne de caractère que $req_sla semble contenir, le fichier texte est bien remplie comme il faut.
Autrement dit, si je fais un echo de $req_sla tout est ok, si met cette variable dans le fputs, une seule partie du contenu de cette variable est écrit. Et pour finir si j'écris en dur dans ma commande fputs le contenu de $req_sla, il écrit bien dans le fichier.
Quelqu'un aurait une idée ?
Par avance merci.
Cordialement,
Dalto
Partager