Utiliser les champs d'un formulaire pendant une session

Résolu/Fermé
bloomingdals Messages postés 74 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 6 août 2013 - 4 juin 2013 à 16:18
bloomingdals Messages postés 74 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 6 août 2013 - 4 juin 2013 à 17:41
Bonsoir,
J'ai un formulaire dont la valeurs des champs sera utilisé par d'autres fichiers PHP.
Le problème est que lorsque j'exécute l'un de ces fichiers avec les valeurs des cjamps saisis, je rencontre un problèmes car les valeurs ne sont pas gardé en mémoire par le script.
J'ai essayé d'utiliser les sessions mais je ne sais pas le faire correctement.
Merci de votre aide.
A voir également:

8 réponses

Salut salut,

Les sessions c'est vraiment pas qqch de compliqué :
http://www.lephpfacile.com/cours/18-les-sessions
Il y a quelques exemples bien fait.

Sinon le principe c'est :
//sur une page pour lancer la session :
session_start();
//Pour enregistrer une valeur
$_SESSION['champ1']=$champ1;
//Et pour la récupérer 
echo $_SESSION['champ1'];
//Il y a aussi des methode pour détruire les session ...
 

Résolu? ===> [RESOLU]
0
bloomingdals Messages postés 74 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 6 août 2013 2
4 juin 2013 à 16:41
Est ce que c'est possible de créer des session pour des variables qui ne proviennent pas d'un formulaires (juste pour pouvoir transmettre leurs valeurs d'un fichier à un autre)?
0
Utilisateur anonyme
4 juin 2013 à 16:47
Oui c'est tout à fait pour cela qu'elles ont été faites. Les variables seront conservées d'un formulaire à l'autre sans avoir besoin de le passer en post ou get. Il faut juste bien démarrer la session sur chaque page où tu souhaites les utiliser.
0
bloomingdals Messages postés 74 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 6 août 2013 2
4 juin 2013 à 16:57
Voila ce que je fait:
- contenu de mon fichier database.connect qui permet de fixer une base de donnée à utiliser en focntion des données saisies par l'utilisateur:

 if ($instance == 'INTERNET') // si le champs 'instance' égale à 'INTERNET'
      {
        session_start();   
        $database = 'INX'; // la base de données choisie est 'INX'
        $_SESSION['database']=$database; // céer une session de cette variable
        include('IHM.php');      
      }


-contenu de mon fichier qui va utiliser la base de données 'INX'

session_start();
$db = mysql_connect('localhost', 'root', 'Orange2424')  or die('Erreur de connexion '.mysql_error());
mysql_select_db($_SESSION['database'],$db)  or die('Erreur de sélection '.mysql_error()); // ouvrir une connexion vers la base '$_SESSION['database']' dont la valeur est 'INX'



j'ai une erreur "NO database selected"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
4 juin 2013 à 17:03
Si tu fais un
echo $_SESSION['database']."<br>";
dans le script ou tu fais
mysql_select_db($_SESSION['database'],$db) or die('Erreur de sélection '.mysql_error());

Ca retourne le contenu de la variable ou pas?
0
bloomingdals Messages postés 74 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 6 août 2013 2
4 juin 2013 à 17:13
ça va j'ai réglé le problème c'était une petite faute de frappe.
Maintenant je voudrais que la connexion à la base de données ne soit réalisée qu'une seule fois.J'ai alors crée une session pour la variable '$db' et j'ai modifié les scripts de cette manière mais ça ne fonctionne pas:

-contenu du 1er fichier:
 $db = mysql_connect('localhost', 'root', 'Orange2424')  or die('Erreur de connexion '.mysql_error());
 if ($instance == 'INTERNET')
      {
        session_start();
        $database = 'INX';
        $_SESSION['database']=$database;
        $_SESSION['connection']=$db;  // voila ce que j'ai ajouté
        include('IHM.php');      


-contenu de 2emme fichier:

session_start();
mysql_select_db($_SESSION['database'],$_SESSION['$db'])  or die('Erreur de sélection '.mysql_error());
0
Re,

Je te déconseille de mettre les variables de connexion dans des sessions.
Les ressources sont fermées/vidées à la fin de l'exécution de la page, donc ta connexion avec la base de donnée n'est plus disponible lorsque la page a terminée son exécution sur le serveur. Tu peux utiliser les connexions persistantes (mysql_pconnect(...) il me semble) , ça reste possible.

Personnellement je ferais un fichier de connexion que j'inclurais dans les scripts nécessitant une connexion, ou mieux une classe Connexion avec sa méthode connect() qui renverrait l'objet de connexion.

Encore une petite chose, quand tu parles de 2e fichier tu parle de IHM.php?
Parce lorsque tu fais un include toutes les variables déclarer dans le script appelant sont accessibles dans le script inclue (c'est comme si on copiait et collait le code au milieu du script).

Résolu? ===> [RESOLU]
0
bloomingdals Messages postés 74 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 6 août 2013 2
4 juin 2013 à 17:41
D'accord merci beaucoup pour ton aide
0