Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/01/2011, 13h58   #1
Invité de passage
 
Inscription : mai 2005
Messages : 5
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 5
Points : 3
Points : 3
Par défaut écriture d'une chaîne de caractères dans un fichier

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 :


Code :
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>&nbsp;&nbsp;&nbsp;';
	}
 
}
$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>';
}
										}
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.

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
Dalto est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2011, 22h00   #2
Membre Expert
 
Avatar de nosferapti
 
Inscription : avril 2009
Messages : 1 157
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 1 157
Points : 1 129
Points : 1 129
est ce que $resultat_countsla contient bien ce qu'il faut ?
__________________
GNAP !
nosferapti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2011, 14h09   #3
Invité de passage
 
Inscription : mai 2005
Messages : 5
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 5
Points : 3
Points : 3
Bonjour,
Oui cette variable contient un chiffre positif supérieur à 0.
Il fait donc une boucle pendant X fois.

Cordialement,

Dalto.
Dalto est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2011, 18h06   #4
Membre confirmé
 
Avatar de sayari.dev
 
Homme Marouen Sayari
Développeur Web
Inscription : mai 2010
Messages : 142
Détails du profil
Informations personnelles :
Nom : Homme Marouen Sayari
Localisation : Algérie

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2010
Messages : 142
Points : 225
Points : 225
Bonjour,

Peux-tu nous montrer à quel niveau fais-tu ton exho $req_sla?
__________________
C'est en faisant n'importe quoi qu'on devient n'importe qui
sayari.dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2011, 11h12   #5
Invité de passage
 
Inscription : mai 2005
Messages : 5
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 5
Points : 3
Points : 3
Bonjour,

Alors là je suis un peu sur le cul
En fait, depuis plusieurs jours toutes les applis que je developpais pour l'intranet de ma societe ne marchaient plus.
Mon collègue vient de trouver le problème.

En fait, depuis qu'il a rajouter une class nommé GoogleWeather.class.php tous mes formulaires (donc mes POST) fonctionnaient très très mal.

Il vient de supprimer le code relative à cette class et tout refonctionne bien sur notre intranet.

Le problème est donc résolu juste en supprimant cette class.

Merci pour votre aide et pour votre temps passé sur mon problème.

Cordialement,

Dalto.
Dalto est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h51.


 
 
 
 
Partenaires

Hébergement Web