Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
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 25/09/2006, 14h41   #1
Membre du Club
 
Inscription : août 2006
Messages : 340
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 340
Points : 62
Points : 62
Par défaut session et variable

Bonjour à tous,

J'ai cette variable $total mais j'aimerais la passer dans une session car je le réutilise sur une autre page.

Cependant, je ne sais pas du tout comment il faut faire. Pourriez-vous m'aider


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 <?php
		$total = $total + $qte * $prix;
		
	}
 } 
?>
  <th><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Total 
      de votre commande </font></div></th>
  <th><div align="left"><font face="Verdana, Arial, Helvetica, sans-serif"></font></div></th>
  <th><div align="left"><font face="Verdana, Arial, Helvetica, sans-serif"></font></div></th>
  <th><div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><?php echo $total;?></font></div></th>
    <th><font face="Verdana, Arial, Helvetica, sans-serif"> </font> 
      <div align="left"></div></th>
</table>
<p>&nbsp;</p>
<table width="81%" border="0">
  <tr> 
    <td width="8%">&nbsp;</td>
    <td width="44%"><a href="listeviande.php"><img src="image/back_f2.png" width="32" height="32" border="0"></a></td>
    <td width="23%">&nbsp;</td>
    <td width="25%"><div align="right"><a href="connecterCliCom.php?total=<?php echo $total;?>"><img src="image/apply_f2.png" width="32" height="32" border="0"></a></div></td>
  </tr>
kitty2006 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2006, 14h49   #2
Membre confirmé
 
Développeur Web
Inscription : septembre 2006
Messages : 215
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : septembre 2006
Messages : 215
Points : 246
Points : 246
Salut Kitty,

Pour passer ta variable, en une varriable de session, tu dois avant tout déclarer la fonction "session_start()" pour que php ouvre une session, ensuite tu utilises $_SESSION['maVar']

exemple:
Code :
1
2
3
4
5
6
7
8
 
<php
session_start() // tjrs en debut de page
 
$total = $total + $qte * $prix;
 
$SESSION['total'] = $total;
?>
tu as la doc ici

sahid
sahid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2006, 15h05   #3
Membre du Club
 
Inscription : août 2006
Messages : 340
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 340
Points : 62
Points : 62
j'ai ajouté la session et session start.

Est-ce que je peux ôter maintenant le $total sur mes autres lignes ou je l'ai mis en bleu.

Comment dois-je faire pour récupérer cette variable ?

Je suis désolée mais peux-tu m'aider, car j'ai déjà lu de la documentation mais je ne comprends pas bien comment faire

MErci
kitty2006 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2006, 15h13   #4
Membre chevronné
 
Avatar de kankrelune
 
Inscription : décembre 2005
Messages : 766
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 766
Points : 745
Points : 745
Tu trouvera la réponce à tes questions ici et ... .. .

@ tchaOo°
kankrelune est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2006, 15h16   #5
Membre du Club
 
Inscription : août 2006
Messages : 340
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 340
Points : 62
Points : 62
Ben merci je vais lire à nouveau tout cela

a+
kitty2006 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2006, 17h53   #6
Membre émérite
 
Avatar de alain31tl
 
Alain
Inscription : novembre 2005
Messages : 897
Détails du profil
Informations personnelles :
Nom : Alain
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : novembre 2005
Messages : 897
Points : 910
Points : 910
Citation:
Envoyé par kitty2006
j'ai ajouté la session et session start.

Est-ce que je peux ôter maintenant le $total sur mes autres lignes ou je l'ai mis en bleu.

Comment dois-je faire pour récupérer cette variable ?

Je suis désolée mais peux-tu m'aider, car j'ai déjà lu de la documentation mais je ne comprends pas bien comment faire

MErci
Salut

Tes différentes variables sont sauvegardées dans cette session, ce qui signifie que tu n'as plus besoin de les faire passer en get, par exemple.
Elles y resteront disponibles jusqu'à la fermeture du navigateur.
Tu peux faire appel à ces différentes variables, quand tu le souhaites et où tu le souhaites sous réserve que ta page qui va les traiter comprenne un session_start(); tout au début.
__________________
Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.
alain31tl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2006, 19h19   #7
Membre du Club
 
Inscription : août 2006
Messages : 340
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 340
Points : 62
Points : 62
Après avoir lu la doc....je ne sais pas comment faire pour récupérer la variable de session pour afficher mon total dans une autre page....
kitty2006 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2006, 19h53   #8
Membre émérite

 
Avatar de FCYPBA
 
Inscription : novembre 2004
Messages : 735
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2004
Messages : 735
Points : 924
Points : 924
Il faut activer les sessions sur cette autre page via un session_start()

Ensuite tu accèdes à tes variables dans la tableau global $_SESSION
__________________
Pierre
1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
3. Un code rapide c'est bien, un code maintenable c'est mieux
...

Why was the font tag an orphan ? Because it didn't have a font-family.
FCYPBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2006, 20h09   #9
Membre du Club
 
Inscription : août 2006
Messages : 340
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 340
Points : 62
Points : 62
je comprends pas comment faire avec ce tableau...j'ai lu de la doc et ca ne marche pas ce que j'essaie de faire...

Faut faire comment pour l'afficher?

Si on peut m'aider un peu plus....ca srait sympa...
Code :
1
2
3
$total = $total + $qte * $prix;
 
		$SESSION['total'] = $total;
j'aimerais afficher ce $total dans une autre page comment faut faire...j'ai déja start session...

Merci
kitty2006 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2006, 20h28   #10
Membre expérimenté
 
Avatar de jc_cornic
 
Inscription : octobre 2006
Messages : 624
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : octobre 2006
Messages : 624
Points : 588
Points : 588
Envoyer un message via MSN à jc_cornic
...
On part du principe que tu as une fonction ou un fichier php qui sert d'ini cad qu'il n'est utilisé qu'un fois pour initialiser toutes tes variables.
Personnellement, dans mon index.php, j'initialise toutes mes variables et ensuite j'affiche un index2.php pour ne plus appeler index.php (et réinitialiser mes variables...) --> BREF

index.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
<?php
session_start();
 
//init
$_SESSION['total']=0;
...
 
		echo "
		<script language=\"JavaScript\">
		 document.location = \"index2.php\"
		</script>
		";
 
// L'écho précédent sert à rediriger la page vers index2.php
?>
index2.php
Code :
1
2
3
4
5
6
7
 
<?php
session_start();
 
// c'est là ou tu recalcule ton $total
$_SESSION['total'] = $_SESSION['total'] + $qte * $prix;
?>
autreFichier.php
Code :
1
2
3
4
5
6
7
 
<?php
session_start(); // toujours en premier
 
// tu retrouve ta variable
echo "total = " . $_SESSION['total'];
?>
++
JC
jc_cornic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2006, 20h50   #11
Membre du Club
 
Inscription : août 2006
Messages : 340
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 340
Points : 62
Points : 62
je fais le calcul du total à cet emplacement parce que j'en ai besoin

je ne fais pas l'initialisation...je voudrais juste afficher le résultat dans une page et ca me met une erreur
Code :
1
2
Notice: Undefined index: total in c:\program files\easyphp1-8\www\fichierphp\validcommande.php on line 31
total =
Qu'est ce que je fais de faux
kitty2006 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2006, 23h10   #12
Membre émérite
 
Inscription : juin 2002
Messages : 1 013
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 1 013
Points : 959
Points : 959
j'ai pas tout suivi, mais :

tu utilises ta variable de session dans n'importe quel page, avec un code de type suivant :
Code :
$mavariable = $_SESSION['total'];
tu dois cependant t'assurer que cette variable de session existe (à mon avis, c'est là qu'il y a une erreur chez toi), donc que tu l'as assigné avant, éventuellement dans une autre page, si tu es sûre que ton client a ouvert cette autre page avant, avec le code suivant
Code :
$_SESSION['total'] = $resultat;
comme par principe tu ne peux jamais en être sûre (ton client peut aller directement à une page sans passer par ta page d'accueil), il faut qu'au début de ta page tu testes son existence, avec
Code :
if (isset($_SESSION['total']))
N'oublie jamais que tu dois mettre session_start() en début de ton code, avant toute autre instruction html (même avant un espace !)

et dernier point : évite d'avoir une variable $total et une variable de session 'total', car selon la configuration de php, il y a confusion
francis m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2006, 21h36   #13
Membre du Club
 
Inscription : août 2006
Messages : 340
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 340
Points : 62
Points : 62
Merci pour l'aide mais c'est quoi ce qu'il faut mettre après if isset c'est quoi la usuite.....

merci
kitty2006 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2006, 21h54   #14
Membre du Club
 
Inscription : août 2006
Messages : 340
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 340
Points : 62
Points : 62
Bon j'ai essayé plein de truc et vos conseils et ca ne marche toujours pas ....

Voila la variable que j'aimerais passer en session

Code :
$total = $total + $qte * $prix;
j'aimerais ensuite afficher cette variable dans une autre page...comment faut-il faire pour que ca soit vraiment correcte...

J'ai essayé de tester pour voir si ma session est bien prise en compte mais ca ne marche pas...


Merci pour l'aide
kitty2006 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2006, 22h19   #15
Membre émérite
 
Inscription : juin 2002
Messages : 1 013
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 1 013
Points : 959
Points : 959
dans la première page :
Code :
1
2
$total = $total + $qte * $prix;
$_SESSION['letotal'] = $total;
dans la seconde page :
Code :
$total = $_SESSION['letotal'];
mais si quelqu'un va directement à la seconde page sans passer par la première, ton script va générer une erreur car $_SESSION['letotal'] n'existe pas. D'où l'intérêt de isset, qui contrôle l'existence de ta variable de session. Dans ton cas, ce serait plutôt not isset, donc
Code :
if (!isset($_SESSION['letotal'])) $_SESSION['letotal'] = lechiffrequetuchoisis;
tu peux aussi faire une redirection sur la première page, tel que
Code :
if (!isset($_SESSION['letotal'])) header ("Location: premierepage.php");
voilà
francis m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2006, 15h09   #16
Invité régulier
 
Inscription : août 2006
Messages : 23
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 23
Points : 8
Points : 8
oebdabt qu'on y est, moi j'utlise les sessions, tout marche comme je veux, sauf que j'ai 2 "warning"

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at c:\Inetpub\wwwroot\MultiLab\LoadUserData.php:4) in c:\Inetpub\wwwroot\MultiLab\LoadUserData.php on line 17

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at c:\Inetpub\wwwroot\MultiLab\LoadUserData.php:4) in c:\Inetpub\wwwroot\MultiLab\LoadUserData.php on line 17

quelqu'un aurrait un idée pourquoi ça fait cela

Désolé Kitty si j'ai mit cela dans ton Post mais peut-etre que cela va t'aider aussi!

Merci
SavageMessiah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2006, 15h27   #17
Invité régulier
 
Inscription : août 2006
Messages : 23
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 23
Points : 8
Points : 8
laisser tombé, j'ai trouver mon problème, c'Est que je ne savait pas que session start devait être déclarer avant même le html!

merci quand meme
SavageMessiah 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 22h13.


 
 
 
 
Partenaires

Hébergement Web