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 27/09/2008, 22h26   #1
Membre confirmé
 
Inscription : mars 2004
Messages : 1 187
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 187
Points : 233
Points : 233
Par défaut Écraser une session

Bonjour,

j'aimerais savoir si on est obligé de supprimer une session avec unset avant de lui donner une autre valeur.

Je m'explique :

A plusieurs reprise je donne une valeur différente à ma session :

Code :
1
2
3
4
5
6
7
8
 
 
$_SESSION['totalttc_port'] = $data_null['total_ttc_ref'];
 
 
 
 
$_SESSION['totalttc_port'] = $data_null['total_ttc_ind'];
pour que la deuxième valeur de la soit prise en compte est-on obligé de coder de cette façon :

Code :
1
2
3
4
5
6
7
 
 
$_SESSION['totalttc_port'] = $data_null['total_ttc_ref'];
 
unset($_SESSION['totalttc_port']);
 
$_SESSION['totalttc_port'] = $data_null['total_ttc_ind'];
Merci d'avance pour vos réponses.
sam01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2008, 22h44   #2
Membre éprouvé
 
Inscription : juin 2007
Messages : 350
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 350
Points : 407
Points : 407
a pirori, non ,
Code :
1
2
3
 
 $_SESSION['toto']=1;//je défini une variable avec une valeur
$_SESSION['toto']=2;//je redéfini la valeur de la variable
mais pour ce qui est de la persistance au niveau serveur des mémoires de la variable $_SESSION je n'en sais pas plus.

ce dont je suis sur, c qu'a temps=t, la variable vaut 1 pour ton script, et qu'a temps=t+1 elle vaut 2,

ce qui est sur aussi ,est que la $_SESSION, se détruit naturelement, ou avec unset , volontairement,

a +
ascito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2008, 00h33   #3
Membre confirmé
 
Inscription : mars 2004
Messages : 1 187
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 187
Points : 233
Points : 233
ben alors je ne comprends pas, d'une page à l'autre la valeur de ma session :

$_SESSION['totalttc_port']

est différente ?

Et je n'arrive pas à savoir pourquoi, un vrai casse-tête ?

Connaissez une astuce afin que je puisse débugger mon problème.
sam01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2008, 11h03   #4
Rédacteur/Modérateur
 
Avatar de 12monkeys
 
Homme Dr. Peters
Webmaster
Inscription : novembre 2006
Messages : 3 630
Détails du profil
Informations personnelles :
Nom : Homme Dr. Peters
Âge : 35
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Webmaster
Secteur : Service public

Informations forums :
Inscription : novembre 2006
Messages : 3 630
Points : 6 232
Points : 6 232
Bonjour

C'est à dire "différente" ? Elle reprend la première valeur voulue ou une autre valeur ?

Est ce que register_globals est à on ou off ? S'il est à on, il se peut qu'une variable $totalttc_port à qui tu attribut une valeur après avoir donné une autre valeur à $_SESSION['totalttc_port'] modifie cette dernière.

Sinon on peut voir ton code ?
__________________
Vous débutez dans la creation de sites web : les bases du html et débuter avec les CSS
Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
Votez pour les messages qui vous ont aidés...
12monkeys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2008, 22h08   #5
Membre confirmé
 
Inscription : mars 2004
Messages : 1 187
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 187
Points : 233
Points : 233
le code en lui-même est très long.
J'ai fait des echo et je sais que juste avant le changement de page la valeur de ma session est encore bonne :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
 
if (!empty($_GET['dir']) and ($_GET['dir'] == 'paiement'))
{
include ('connect.php');
 
$sqlp = sprintf("update lldiffusion_commande set frais_port=%s,total_ttc=%s,etat=%s  where id=%s", quote_smart($_SESSION["frais_port"]), quote_smart($_SESSION['totalttc_port']), quote_smart('paiement'), quote_smart($_SESSION["commande"]));
$reqp = mysql_query($sqlp) or die('Erreur SQLP !<br>'.$sqlf.'<br>'.mysql_error());
 
mysql_close();
 
header("Location: http://www.lldiffusion.com/paiement.php?pro=livraison");
 
}
ensuite dès je pase à l'autre page, elle prends une autre valeur.

elle prends la valeur de data['total_ht']...
sam01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2008, 22h32   #6
Rédacteur/Modérateur
 
Avatar de 12monkeys
 
Homme Dr. Peters
Webmaster
Inscription : novembre 2006
Messages : 3 630
Détails du profil
Informations personnelles :
Nom : Homme Dr. Peters
Âge : 35
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Webmaster
Secteur : Service public

Informations forums :
Inscription : novembre 2006
Messages : 3 630
Points : 6 232
Points : 6 232
As tu regardé la valeur de register_globals ?

Sinon pour débugger tu peut désactiver ton code par des commentaires et en réactiver par petits bouts pour ainsi voir de quelle partie du code peut provenir le problème...
__________________
Vous débutez dans la creation de sites web : les bases du html et débuter avec les CSS
Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
Votez pour les messages qui vous ont aidés...
12monkeys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2008, 23h18   #7
Membre confirmé
 
Inscription : mars 2004
Messages : 1 187
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 187
Points : 233
Points : 233
quelle doit être la valeur de register_globals ?
Comment connaître cette valeur ?
sam01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2008, 23h28   #8
Membre confirmé
 
Inscription : mars 2004
Messages : 1 187
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 187
Points : 233
Points : 233
la valeur est à 1.
Est-ce la bonne valeur ?
sam01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 14h43   #9
Membre confirmé
 
Inscription : mars 2004
Messages : 1 187
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 187
Points : 233
Points : 233
j'ai entendu dire que lorsque l'on change de page en spécifiant l'adresse absolue,
php ne passait pas la session car il considère que c'est une faille de sécurité.

Etes-vous au courant.

C'est exactement ce que je fais dans mon code :

Code :
1
2
3
 
 
header("Location: http://www.testn.com/paiement.php?pro=livraison");
Croyez-vous que ça peut venir de là ?
sam01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 17h49   #10
Rédacteur/Modérateur
 
Avatar de 12monkeys
 
Homme Dr. Peters
Webmaster
Inscription : novembre 2006
Messages : 3 630
Détails du profil
Informations personnelles :
Nom : Homme Dr. Peters
Âge : 35
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Webmaster
Secteur : Service public

Informations forums :
Inscription : novembre 2006
Messages : 3 630
Points : 6 232
Points : 6 232
La valeur de register_globals devrait être à Off (pour moi 1 signifierait plutôt On ?).

Pour l'histoire du header je n'en ai jamais entendu parler, en tout cas le manuel php précise qu'il faut une URI absolue comme argument de Location mais que certains navigateurs acceptent une URI relative.

Par contre l'appel à header(Location: ...) permet de remettre à zéro la variable surperglobale $_POST -> http://php.developpez.com/faq/?page=...s-form-refresh.

Essaye avec une URI relative pour tester...
__________________
Vous débutez dans la creation de sites web : les bases du html et débuter avec les CSS
Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
Votez pour les messages qui vous ont aidés...
12monkeys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2008, 23h16   #11
Membre confirmé
 
Inscription : mars 2004
Messages : 1 187
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 187
Points : 233
Points : 233
ça y est.
On m'a donné la réponse sur un autre forum.
Une erreur de débutant on va dire...

Il manquait juste l'exit() après le header...
Le php continuait au fait à exécuter du code après le header...
sam01 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 06h33.


 
 
 
 
Partenaires

Hébergement Web