Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
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 06/09/2007, 00h05   #1
Candidat au titre de Membre du Club
 
Inscription : septembre 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 36
Points : 10
Points : 10
Par défaut include fait disparaitre les $variable récupèrées précédemment

bonjour,
session_start() a été déclarée en page 1 du formulaire, lors du traitement en page 2 tout va bien. les variables $nomp , $email sont remplies.
A l'appel d'une page 3 par include cela va bien encore, avant l'enregistrement les variables sont encore là remplies. (vérif par :
$nomp=$_POST["nomp"];
$email=$_POST["email"]; echo " nomp email " .$nomp . $email
après un include de la requete d'insertion, les variables sont vides !
est-ce un include ou une requete qui élimine la valeur ?
que faut-il faire pour conserver cette valeur tout au long de la session ?
je fais une modif, je declare les variables de session
Code :
1
2
 
$_SESSION['nomp']= "nomp"; // nom naissance
après avoir recupéré les données de la page 1 - et cela ne marche pas plus.

MERCI
webasso est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2007, 07h07   #2
Membre régulier
 
Avatar de B.Moncef
 
Étudiant
Inscription : août 2007
Messages : 75
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2007
Messages : 75
Points : 83
Points : 83
Bonjour,

Personnellement je ne comprends pas tres bien ton probleme, pourrais-tu nous montrer du code pour mieux comprendre ?
B.Moncef est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2007, 10h20   #3
Expert Confirmé
 
Avatar de trotters213
 
Inscription : janvier 2005
Messages : 2 572
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : janvier 2005
Messages : 2 572
Points : 2 605
Points : 2 605

$_POST te permet de récupérer les valeurs d'un formulaire utilisant la méthode post donc tu auras accès au info du formulaire que dans le script appelé par le formulaire (et dans les includes de ce script si include il y a) par contre si après tu ouvres d'autres pages tu perdras tes données.
De même tu dis faire des includes mais si tu includes des fonctions, elles n'auront pas accès à tes variables à moins de les déclarer comme étant globale.

Le plus simple reste d'affecter dès le début de ton script tes $_POST à des variables (de session ou pas) et d'utiliser ensuite ces variables.
__________________
Pensez au tag
Les règles du Forum

Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS

PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5

SQL : Cours SQL
trotters213 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2007, 14h52   #4
Candidat au titre de Membre du Club
 
Inscription : septembre 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 36
Points : 10
Points : 10
Par défaut variables en session affectation

bonjour,
j'ai affecté ces variables de cette manière (cela ne permet pas de récupérer) en page 1
Code :
1
2
 
$_SESSION['nomp']= $_POST["nomp"]; ; // nom naissance
mais je les utilise peut être mal après, c-a-d que je les utilise 'normalement'
$nomp=$_post["nomp"];
en fait les variables sont vidées après le changement de page. Il s'agit d'un appel de la suite du formulaire, donc un autre form !!!
Merci de me donner un exemple si possible.
webasso est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2007, 17h45   #5
Expert Confirmé
 
Avatar de trotters213
 
Inscription : janvier 2005
Messages : 2 572
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : janvier 2005
Messages : 2 572
Points : 2 605
Points : 2 605
Tu fais bien un session_start au début de chacune de tes pages ?
Tu fais :
Code :
$_SESSION['nomp']= $_POST["nomp"]; ; // nom naissance
mais après tu dis que le code ci-dessous ne marche plus la page suivante : C'est normal, il faut que tu utilise la session :
Code :
$nomp=$_SESSION["nomp"];
PS : respecte la caste dans le code.
__________________
Pensez au tag
Les règles du Forum

Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS

PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5

SQL : Cours SQL
trotters213 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2007, 22h09   #6
Candidat au titre de Membre du Club
 
Inscription : septembre 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 36
Points : 10
Points : 10
Par défaut session et variables

re-bjr,
ce que je fais sur la 1ere page :
Code :
1
2
3
4
5
6
7
8
9
10
11
 
<?php
session_start(); 
// creation et initialisation des variables non fournies par le participant ?  
$_SESSION['mt']= 0; 
$_SESSION['mtp']= "mtp"; // montant pour le participant
$_SESSION['mta']= "mta"; // montant pour l'accompagnant (optionnel)
$_SESSION['mtd']= "mtd"; // montant pour le don (optionnel)
// $_SESSION['mteuros']= .$mt; // equivalence
$_SESSION['nomp']= "nomp"; // nom naissance   // utilise dans le reglement et controle si existant
// etc ... autant de variables que nécessaire.
// mais pour les variables de calcul est-ce valable ? mt ou mtp..
puis sur chaque page :
Code :
1
2
3
4
 
<?php
session_start(); 
?>
pour recuperer une variable en cours de page : ?
Code :
1
2
3
4
 
$nomp=$_SESSION["nomp"];
$mt=$_SESSION["mtp"];
$mtp=$_SESSION["mtp"];
pour effectuer des opération : ?
Code :
1
2
3
4
5
6
7
8
9
10
 
if ($agea_$_SESSION["agea" > 24) {  
  $mtp = 10  }         // ou bien  ...
  $mt=$_SESSION["mtp"] = 10 }  // ???
 
// ou autre opération
 
$mt=$_SESSION["mtp"] = $mtp=$_SESSION["mtp"] + $mtd=$_SESSION["mtd"];
// ?? ou bien est-ce 
$mt=$mtp + $ mtd;
Merci de nous communiquer un peu de votre science !
webasso est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2007, 22h48   #7
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Quelle est la valeur de la directive register_globals ? On peut effectuer des opérations directement sur les variables de session comme toute variable "normale", exemple $_SESSION['c'] = $_SESSION['a'] + $_SESSION['b']. Par contre, le code ci-dessus présente de nombreuses erreurs : il est illisible et incompréhensible en l'état.

Si le problème persiste pourriez-vous nous donner deux dump des variables de sessions (var_dump($_SESSION)) : un en temps normal et un où vous constatez les pertes ?
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2007, 00h00   #8
Candidat au titre de Membre du Club
 
Inscription : septembre 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 36
Points : 10
Points : 10
Par défaut session variables perte variables

bjr,
je n'ai pas de register_globals.
le code qui a été mis est une question ? comment additionner des variables de session.
la réponse apportée me convient, une variable de session se traite comme une variable normale. merci.
mais je ne récupère pas les variables de calcul en derniere page, ni celle du prénom, alors qu'elle est traitée exactement comme celle du nom.
je vais revérifier le tout.
merci et à bientôt.
webasso est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2007, 03h51   #9
Membre régulier
 
Avatar de B.Moncef
 
Étudiant
Inscription : août 2007
Messages : 75
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2007
Messages : 75
Points : 83
Points : 83
Citation:
je n'ai pas de register_globals.
julp te demandais la valeur de ta directive register_globals, presente dans le fichier php.ini (fais un phpinfo() pour savoir).
B.Moncef est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h35.


 
 
 
 
Partenaires

Hébergement Web