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 30/05/2007, 10h34   #1
Membre du Club
 
Inscription : mai 2007
Messages : 188
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 188
Points : 56
Points : 56
Par défaut J'ai un soucis de variables :(

Bonjour,

J'ai un soucis avec les variables, je vais essayer d'expliquer. Il existe les méthodes GET et les méthodes POST. Les méthodes POST à ce que j'ai compris pour récupérer les valeurs d'un formulaire, par leur Nom. La méthode GET pour récupérer ce qu'est passé en paramètre dans l'URL. Arettez moi si je me trompe

Voici les actions que j'effectue : Index php > action.php > tchat.php

Je récupérer bien mes variables, saisi dans le formulaire principal (index.php) dans action.php, ca ne pose pas de problème. J'ai ensuite utlisé des "Session_Registrer" pour recupérer mes variables cette fois dans tchat.php, ca foncitonne aussi...

Code :
session_register("Departement_user");
Seulement cela est possible si j'utlise la méthode "include("tchat.php") dans le fichier action.php. Si je remplace ça par un "header(location:tchat.php") je ne récupére plus rien du tout et je perds toute mes informations. Comment résoudre ce problème ? Y a t-il des variables global comme il existe en VB par exemple qui serait visible d'un formulaire à un autre sans être écrasé à chaque fois qu'on change de feuille ??

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
 
(...)
 
switch ($RecupIDURL)
{
	case 1:	
		//Recupérer les valeurs des formulaires
		$Nom_user = ValeurFormulaire('Chp_User');
		$Age = ValeurFormulaire('Chp_Message');
		$Departement = ValeurFormulaire('Chp_Departements');	
		//Executer la requete d'insertion	
		mysql_query("INSERT INTO `utilisateur` (`Nom_user`,`Age`,`Departement`) VALUES ('".$Nom_user."','".$Age."','".$Departement."')");
 
                        session_register("Utilisateur"); 
                        session_register("Age_user"); 
                        session_register("Departement_user"); 
                        session_register("Nb_unique_MAX");
 
		//Recupérer le dernier numero
		$resultat  = mysql_query("SELECT id_utilisateur FROM utilisateur ORDER BY id_utilisateur desc LIMIT 1");	
		$row = mysql_fetch_array($resultat);
		extract($row);	
		$Nb_unique_MAX =  $id_utilisateur;
 
		$Utilisateur=$Nom_user;
		$Age_user=$Age;
		$Departement_user=$Departement;
 
                         //je récupérer pas mes valeurs dans tchat.php
                         //header("location:tchat.php"); 
 
		// Je recupére mes valeurs dans tchat.php
		include("tchat.php"); 
 
 
	break;	
(...)

Tchat.php

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
(...)
 
<div id="page">
 
	 <div id="colonne0">
			<H2>TCHAT</H2>
			<blockquote class="centrer">
			<?php
			$Utilisateur = ValeurFormulaire('Chp_User');
			echo '| Nom: ' . $Utilisateur.' | Age: '. $Age_user.' | Departement: '. $Departement_user.' | '. $Nb_unique_MAX . '|';
			?>
 
			</blockquote>			
	  </div>

D'avance merci
Bien Cordialement,
Marc
Cvbdev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 11h56   #2
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
session_register est déprécié (pour $_SESSION[<nom de la vriable de session>] = <valeur>;) et votre code n'est pas assez complet pour trouver une éventuelle erreur : on ne sait pas à quoi correspondent les variables Utilisateur, Age_user, Departement_user et Nb_unique_MAX ni si vous avez bien fait appel à session_start dans votre page.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 12h00   #3
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Si ca fonctionne avec un include("tchat.php") mais pas avec une redirection c'est surement que vous ne redéfinissez pas vos variables.
Est-ce que vous faites bien appel à session_start() au début de tchat.php ?
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 14h41   #4
Membre du Club
 
Inscription : mai 2007
Messages : 188
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 188
Points : 56
Points : 56
Citation:
Envoyé par julp
session_register est déprécié (pour $_SESSION[<nom de la vriable de session>] = <valeur> et votre code n'est pas assez complet pour trouver une éventuelle erreur : on ne sait pas à quoi correspondent les variables Utilisateur, Age_user, Departement_user et Nb_unique_MAX ni si vous avez bien fait appel à session_start dans votre page.
Bonjour,

Merci pour l'information je vais vous mettre mon code j'ai effectivement remplacé les session_register par des $_SESSION !
  • $Nom_user = Champ de saisie dans la feuille index.php
  • $Age = Champ de saisie dans la feuille index.php
  • $Departement = Champ de saisie dans la feuille index.php

    Je récupére les valeurs par la méthode GET_POST, tout ça fonctionne correctement.


Page Action.php

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
 
session_start();
 
(...)
 
switch ($RecupIDURL)
{
	case 1:	
 
 
		//Recupérer les valeurs des formulaires
		$Nom_user = ValeurFormulaire('Chp_User');
		$Age = ValeurFormulaire('Chp_Message');
		$Departement = ValeurFormulaire('Chp_Departements');	
		//Executer la requete d'insertion	
		mysql_query("INSERT INTO `utilisateur` (`Nom_user`,`Age`,`Departement`) VALUES ('".$Nom_user."','".$Age."','".$Departement."')");
 
		//Recupérer le dernier numero
 
		$resultat  = mysql_query("SELECT id_utilisateur FROM utilisateur ORDER BY id_utilisateur desc LIMIT 1");	
		$row = mysql_fetch_array($resultat);
		extract($row);	
		$Nb_unique_MAX =  $id_utilisateur;
 
		$_SESSION['Utilisateur']=$Nom_user;
		$_SESSION['Age_user']=$Age;
		$_SESSION['Departement_user']=$Departement;
		header("location:tchat.php");
 
 
	break;	
}

Page HTML :

Code :
1
2
3
4
5
6
7
8
9
10
	 <div id="colonne0">
			<H2>TCHAT</H2>
			<blockquote class="centrer">
			<?
			echo '| Nom: ' . $_SESSION['Utilisateur'] . ' | Age: '.$_SESSION['Age_user'].' | Departement: '. $_SESSION['Departement_user'] .' |';// '. $Nb_unique_MAX . '|';
			?>
 
 
			</blockquote>			
	  </div>
Cordialement,
Marc
Cvbdev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 15h13   #5
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
  • On ne sait toujours pas si session_start figure dans tchat.php
  • Vous écrivez : "Page HTML" mais si le fichier correspondant porte cette extension, le code PHP n'est probablement pas interprété.
  • Les balises courtes (<?) sont déconseillées

Pourriez-vous ajouter au début (après session_start quand même) et/ou à la fin de vos scripts le code suivant :
Code :
1
2
3
4
5
<?php
echo '<pre>';
print_r($_SESSION);
echo '</pre>';
?>
Voyez-vous vos variables de session (normalement à la fin de action.php et aux début/fin de tchat.php) ?
julp 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 07h09.


 
 
 
 
Partenaires

Hébergement Web