Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
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 30/01/2011, 22h08   #1
Invité de passage
 
Inscription : janvier 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 5
Points : 1
Points : 1
Par défaut Problème PHP : Nommer un fichier avec variable de session

Bonjour à vous,
Je serai reconnaissant à la personne qui pourra m'aider à résoudre ce problème.
je vous donne une idée sur mon soucis, je souhaite nommer des fichiers excel que je crée à travers une variable de session déclarée auparavant qui vient d'un formulaire.
La variable de session est dèja déclarée précedement dans le script :
$_SESSION['raisonsociale']=$_POST['raisonsociale'];

je vous donne le bout de code qui correspond à ça :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
if(isset($_POST['submit2'])){
 
   $xls=".xls";
   $nomfichierexcel2='partenaires/contacts_' . $_SESSION['raisonsociale'] . $xls . '';
$fp = fopen("$nomfichierexcel2",'w+'); 
file_put_contents("$nomfichierexcel2","contenu du fichier",FILE_APPEND | LOCK_EX);
 
   $z2 = new PHPZip();
   $files[]=$nomfichierexcel2;
   $z2 -> Zip($files, 'partenaires/' . $_SESSION['raisonsociale'] . '.zip');
 
   @unlink("$nomfichierexcel2");
}
Le problème c'est que, quand je consulte les fichiers créés sur serveur, j'ai un blanc à la place de la variable de session.

Merci beaucoup pour l'aide que vous pouvez m'apporter.
hardose est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2011, 22h26   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Est-ce que tu as bien un session_start() sur ce fichier ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2011, 22h32   #3
Invité de passage
 
Inscription : janvier 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 5
Points : 1
Points : 1
Merci pour l'interêt que tu portes à mon problème

pour session_start; oui bien évidement je l'ai mis avant tout code html ou php, j'ai commencé mon script avec.
hardose est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2011, 22h59   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Controle ce que contient ta variable $_SESSION et si ton session_id() est bien le même sur les deux pages.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2011, 23h12   #5
Invité de passage
 
Inscription : janvier 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 5
Points : 1
Points : 1
En fait le traitement se réalise sur la même page, la page ne change pas, j'ai plusieurs formulaires dans des onglets differents.
je me sert de la variable saisie dans le premier formulaire, pour pouvoir enregistrer les autres formulaires dans des fichier qui seront mis dans le même fichier zip que le premier.
donc je pense pas que ça vienne de la session_id().
je pense que le problème vient du fait que j'utilise une variable de session dans la nom du fichier, ça ressemble un peu au cas d'utiliser une variable de type $_POST['X']; ou $_SESSION['X'] à l'interieur d'une requete sql !!
mais là j'ignore vraiment comment pouvoir faire face à cela
hardose est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2011, 23h20   #6
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Ca ne sert a rien de supposer, il suffit de le vérifier comme je te l'ai indiqué.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2011, 23h50   #7
Invité de passage
 
Inscription : janvier 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 5
Points : 1
Points : 1
je viens de faire un echo session_id(); lors du submit du form1 et celui du form 2 qui se trouvent dans la même page dans deux onglets differents, et comme je disais tout à l'heure ça renvoit exactement le même id de session !!
je vais perdre la tête avec tout ça !

une information de plus là, les formulaires se trouvent sur la même page mais dans des onglets differents, et je me sert d'une valeur du premier formulaire pour nommer des fichiers et les mettre dans le même fichier zip que celui du premier formulaire.

j'ai testé avec la valeur du champ de text advancia
ça a donné à la validation du premier formulaire : array(1) { ["raisonsociale"]=> string(8) "advancia" }

mais quand j'ai validé le deuxième formulaire ça a donné : array(1) { ["raisonsociale"]=> NULL }

là y a un soucis !!

OUUfff problème résoluuu partiellement

la solution était de mettre la variable de session à l'interieur du submit du premier formulaire.
maintenant il me reste un seul soucis, c'est qu'au lieu que les fichiers des formulaires se mettent à l'interieur du même zip, le zip est remplacé après chaque création de fichier :s

Merci infiniment pour votre aide,
Finalement j'ai résolu ce problème, la solution était de mettre la déclaration de la variable de session à l'interieur du submit du premier formulaire, là tout marche super bien, je note comme résolu.
Merci beaucoup pour tes réponses
hardose 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 05h27.


 
 
 
 
Partenaires

Hébergement Web