Afficher $id (clé primaire) sur une page PHP
Résolu
tagmc
Messages postés
20
Date d'inscription
Statut
Membre
Dernière intervention
-
tagmc Messages postés 20 Date d'inscription Statut Membre Dernière intervention -
tagmc Messages postés 20 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un problème depuis 1 semaine que je n'arrive pas à résoudre :
formulaire de login : Admin_piece.php
<HTML>
<HEAD>
<TITLE>Connectez-vous</TITLE>
</HEAD>
<BODY>
<TABLE>
<FORM method="post" action="Connexion_Piece.php">
<TR><TD>Login :<BR><INPUT name="pseudo" type="text"></TD></TR>
<TR><TD>Mot de passe :<BR><INPUT name="pass" type="password"></TD></TR>
<TR><TD><INPUT type="submit" value="ok"></TD>
</TR>
</FORM>
</TABLE>
</BODY>
</HTML>
se connecter : Connexion_Piece.php
<?php
session_start();
$pseudo = $_POST["pseudo"] ;
$pass = $_POST["pass"] ;
$Id = mysql_connect("localhost" , "root" , "mysql");
if ($Id == False)
{
echo("La connexion a échoué") ;
}
else
{
$OkS = mysql_select_db ("piece" ) ;
if ($OkS == FALSE)
{
echo("La base de donnée est inexistante.") ;
}
else
{
// on recupère le password de la table qui correspond au login du visiteur
$sql = "SELECT * FROM `membre` WHERE `pseudo`='" . $pseudo . "'" ;
$ReqSQL = mysql_query($sql) ;
$data = mysql_fetch_array($ReqSQL) ;
$Nom = $data['pass'] ;
if($pseudo =="") // On vérifie que le champs message est rempli ( > si Message = rien )
{
echo("Le champ Membre est vide !"); // On dit que le champs message n'est pas rempli
echo("<BR>");
echo ("<A Href=\"Javascript:history.go(-1)\">retour</A>");
}
else if($pass =="") // On vérifie que le champs message est rempli ( > si Message = rien )
{
echo("Le champ Mot de Passe est vide !");
echo("<BR>");
echo ("<A Href=\"Javascript:history.go(-1)\">retour</A>"); // On dit que le champs message n'est pas rempli
}
else if($pseudo != $pass)
{
include('Recommence_Piece.html');
exit;
}
else if ($data['pass'] == $pass)
//Début de la session utilisateur si le login est bon
{
$_SESSION['pseudo'] = $pseudo;
include('compte.php');
}
else
{
echo '<p>Vous avez oublié de remplir un champ.</p>';
// On inclut le formulaire d'identification
include('Recommence_Piece.html');
exit;
}
}
}
?>
Pour le moment tout est bon, je me loge bien et ça marche, mais c'est la que ça se corse, car je souhaite afficher sur la page PHP l'ID associé au membre (qui me sera utile pour la suite du site, et il me le faut absolument):
compte.php
<HTML>
<HEAD>
</HEAD>
<BODY>
<?php
@session_start();
$Id = mysql_connect("localhost" , "root" , "mysql");
mysql_select_db ("piece" ) ;
$ResSQL = " SELECT * FROM membre WHERE pseudo = '$pseudo'";
$Res = mysql_query ( $ReqSQL ) ;
echo ("Bienvenue sur votre compte $pseudo !"); // le pseudo s'affiche bien !!
echo ("<BR>");
echo ("Votre identidiant est $id_membre"); // et la, c'est le drame : Notice: Undefined variable: id_membre in C:\Documents and Settings\Franck\Bureau\Nouveau dossier\piece\compte.php on line 18
echo ("<A Href=\"Form_Inserer_Piece.php\">Modifier vos pièces</A>");
echo ("<BR>");
echo ("<A Href=\"Deco_Piece.php\">Se déconnecter</A>");
mysql_close () ;
?>
Ensuite, sur la page Form_Inserer_Piece, j'aurais également besoin de récuperer l'ID pour le mettre dans ma requête SQL mais comme je n'arrive pas à l'afficher sur compte.php, je n'arrive pas à l'afficher sur le Form_Inserer-Piece.php
j'espere que j'ai été clair
Amicalement
Franck
j'ai un problème depuis 1 semaine que je n'arrive pas à résoudre :
formulaire de login : Admin_piece.php
<HTML>
<HEAD>
<TITLE>Connectez-vous</TITLE>
</HEAD>
<BODY>
<TABLE>
<FORM method="post" action="Connexion_Piece.php">
<TR><TD>Login :<BR><INPUT name="pseudo" type="text"></TD></TR>
<TR><TD>Mot de passe :<BR><INPUT name="pass" type="password"></TD></TR>
<TR><TD><INPUT type="submit" value="ok"></TD>
</TR>
</FORM>
</TABLE>
</BODY>
</HTML>
se connecter : Connexion_Piece.php
<?php
session_start();
$pseudo = $_POST["pseudo"] ;
$pass = $_POST["pass"] ;
$Id = mysql_connect("localhost" , "root" , "mysql");
if ($Id == False)
{
echo("La connexion a échoué") ;
}
else
{
$OkS = mysql_select_db ("piece" ) ;
if ($OkS == FALSE)
{
echo("La base de donnée est inexistante.") ;
}
else
{
// on recupère le password de la table qui correspond au login du visiteur
$sql = "SELECT * FROM `membre` WHERE `pseudo`='" . $pseudo . "'" ;
$ReqSQL = mysql_query($sql) ;
$data = mysql_fetch_array($ReqSQL) ;
$Nom = $data['pass'] ;
if($pseudo =="") // On vérifie que le champs message est rempli ( > si Message = rien )
{
echo("Le champ Membre est vide !"); // On dit que le champs message n'est pas rempli
echo("<BR>");
echo ("<A Href=\"Javascript:history.go(-1)\">retour</A>");
}
else if($pass =="") // On vérifie que le champs message est rempli ( > si Message = rien )
{
echo("Le champ Mot de Passe est vide !");
echo("<BR>");
echo ("<A Href=\"Javascript:history.go(-1)\">retour</A>"); // On dit que le champs message n'est pas rempli
}
else if($pseudo != $pass)
{
include('Recommence_Piece.html');
exit;
}
else if ($data['pass'] == $pass)
//Début de la session utilisateur si le login est bon
{
$_SESSION['pseudo'] = $pseudo;
include('compte.php');
}
else
{
echo '<p>Vous avez oublié de remplir un champ.</p>';
// On inclut le formulaire d'identification
include('Recommence_Piece.html');
exit;
}
}
}
?>
Pour le moment tout est bon, je me loge bien et ça marche, mais c'est la que ça se corse, car je souhaite afficher sur la page PHP l'ID associé au membre (qui me sera utile pour la suite du site, et il me le faut absolument):
compte.php
<HTML>
<HEAD>
</HEAD>
<BODY>
<?php
@session_start();
$Id = mysql_connect("localhost" , "root" , "mysql");
mysql_select_db ("piece" ) ;
$ResSQL = " SELECT * FROM membre WHERE pseudo = '$pseudo'";
$Res = mysql_query ( $ReqSQL ) ;
echo ("Bienvenue sur votre compte $pseudo !"); // le pseudo s'affiche bien !!
echo ("<BR>");
echo ("Votre identidiant est $id_membre"); // et la, c'est le drame : Notice: Undefined variable: id_membre in C:\Documents and Settings\Franck\Bureau\Nouveau dossier\piece\compte.php on line 18
echo ("<A Href=\"Form_Inserer_Piece.php\">Modifier vos pièces</A>");
echo ("<BR>");
echo ("<A Href=\"Deco_Piece.php\">Se déconnecter</A>");
mysql_close () ;
?>
Ensuite, sur la page Form_Inserer_Piece, j'aurais également besoin de récuperer l'ID pour le mettre dans ma requête SQL mais comme je n'arrive pas à l'afficher sur compte.php, je n'arrive pas à l'afficher sur le Form_Inserer-Piece.php
j'espere que j'ai été clair
Amicalement
Franck
A voir également:
- .Php?id=1
- Id telephone - Guide
- Easy php - Télécharger - Divers Web & Internet
- Gate first id ✓ - Forum Navigateur
- Id reseau tv - Forum TNT / Satellite / Réception
- Id=108 - Forum MacOS
10 réponses
Bjr
Hum déjà pourquoi appelles-tu "@session_start();" dans compte.php sachant que la page Connexion_Piece.php
l'a déjà appellé et que compte.php est utilisé en tant qu'include ?
Ensuite si $id_membre n'est pas défini c'est tout simplement parce que tu ne l'as pas initialisé :
comment veux-tu que PHP devine qu'il doit lire cette variable depuis ta base de donnée ?
Ecrit plutôt :
Evidemment ici je suppose que le champ dans ta table se nomme "id_membre"
Hum déjà pourquoi appelles-tu "@session_start();" dans compte.php sachant que la page Connexion_Piece.php
l'a déjà appellé et que compte.php est utilisé en tant qu'include ?
Ensuite si $id_membre n'est pas défini c'est tout simplement parce que tu ne l'as pas initialisé :
comment veux-tu que PHP devine qu'il doit lire cette variable depuis ta base de donnée ?
Ecrit plutôt :
$Res = mysql_query ( $ReqSQL ) ; $row = mysql_fetch_array($Res); $id_membre = $row["id_membre"];
Evidemment ici je suppose que le champ dans ta table se nomme "id_membre"
Remplace
$Res = mysql_query ( $ReqSQL ) ;
par
$Res = mysql_query ( $ReqSQL ) or die (mysql_error());
Histoire de voir si tu n'aurais pas une erreur SQL
$Res = mysql_query ( $ReqSQL ) ;
par
$Res = mysql_query ( $ReqSQL ) or die (mysql_error());
Histoire de voir si tu n'aurais pas une erreur SQL
Merci de ton aide Php mais j'ai un autre message d'erreur :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Documents and Settings\Franck\Bureau\Nouveau dossier\piece\compte.php on line 12
mais il m'affiche bien le pseudo mais pas l'id
<?php
$Id = mysql_connect("localhost" , "root" , "mysql");
mysql_select_db ("piece" ) ;
$ResSQL = " SELECT * FROM membre WHERE pseudo = '$pseudo'";
$Res = mysql_query ( $ReqSQL ) ;
$row = mysql_fetch_array($Res);
$id_membre = $row["id_membre"];
echo ("Bienvenue sur votre compte $pseudo !");
echo ("<BR>");
echo ("Votre identidiant est $id_membre");
echo ("<A Href=\"Form_Inserer_Piece.php\">Modifier vos pièces</A>");
echo ("<A Href=\"Deco_Piece.php\">Se déconnecter</A>");
mysql_close () ;
?>
PS : oui oui, ma clé primaire auto-incrémenté est id_membre
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Documents and Settings\Franck\Bureau\Nouveau dossier\piece\compte.php on line 12
mais il m'affiche bien le pseudo mais pas l'id
<?php
$Id = mysql_connect("localhost" , "root" , "mysql");
mysql_select_db ("piece" ) ;
$ResSQL = " SELECT * FROM membre WHERE pseudo = '$pseudo'";
$Res = mysql_query ( $ReqSQL ) ;
$row = mysql_fetch_array($Res);
$id_membre = $row["id_membre"];
echo ("Bienvenue sur votre compte $pseudo !");
echo ("<BR>");
echo ("Votre identidiant est $id_membre");
echo ("<A Href=\"Form_Inserer_Piece.php\">Modifier vos pièces</A>");
echo ("<A Href=\"Deco_Piece.php\">Se déconnecter</A>");
mysql_close () ;
?>
PS : oui oui, ma clé primaire auto-incrémenté est id_membre
j'obtient le message suivant :
Erreur de syntaxe près de 'Resource id #3' à la ligne 1
Erreur de syntaxe près de 'Resource id #3' à la ligne 1
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Yes !!!
merci ça marche !!!
je vais continuer mon code, je pense que j'aurais besoin d'aide mais je te redirais d'ici 30min !
merci !!
merci ça marche !!!
je vais continuer mon code, je pense que j'aurais besoin d'aide mais je te redirais d'ici 30min !
merci !!
c'est encore moi,
je crois que j'aurais besoin de toi pour encore deux petites choses je pense :
pour le moment, les pages fonctionnent correctement, maintenant quand la personne est identifié sur son compte, on voit son pseudo et son ID, ce que je voulais, ensuite il peut enregistrer sa liste de pièces (et sur cette page, je souhaite également qu'on puisse voir son pseudo et son ID) mais ça ne marche pas :
Form_Inserer_Piece.php
<HTML>
<HEAD>
</HEAD>
<BODY>
<?php
@session_start(); utile ou pas ?
$Id = mysql_connect("localhost" , "root" , "");
mysql_select_db ("piece" ) ;
echo ( "<FORM METHOD=\"POST\" action=\"Inserer_Piece.php\">" ) ;
echo ( "<TABLE>" ) ;
echo ("l'id est : $id_membre"); Notice: Undefined variable: id_membre in C:\Documents and Settings\Franck\Bureau\Nouveau dossier\piece\Form_Inserer_Piece.php on line 16
echo ("le pseudo est : $pseudo");Notice: Undefined variable: pseudo in C:\Documents and Settings\Franck\Bureau\Nouveau dossier\piece\Form_Inserer_Piece.php on line 18
echo ( "<TR>" ) ;
echo ( "<TD>Liste des Pièces allemandes :</TD>" ) ;
echo ( "<TR>" ) ;
echo ( "<TD class=\"Libelle\">1c 2002 A</TD>" ) ;
echo ( "<TD><select name=\"Allemagne1c2002A\">
<option value=\"OUI\">OUI</option>
<option value=\"NON\">NON</option>
<option value=\"DOUBLE\">DOUBLE</option>
</select></TD>" ) ;
echo ( "</TR>" ) ;
echo ( "<TR>" ) ;
echo ( "<TD class=\"Libelle\">1c 2002 D</TD>" ) ;
echo ( "<TD><select name=\"Allemagne1c2002D\">
<option value=\"OUI\">OUI</option>
<option value=\"NON\">NON</option>
<option value=\"DOUBLE\">DOUBLE</option>
</select></TD>" ) ;
echo ( "</TR>" ) ;
echo ( "</TABLE>" ) ;
echo ( "<BR><INPUT type=\"submit\" value=\"Enregistrer\">" ) ;
echo ( "</FORM>" ) ;
mysql_close () ;
?>
je te demanderai une dernière petite chose lorsque la page la sera bien, sans erreur
et encore une fois merci !
je crois que j'aurais besoin de toi pour encore deux petites choses je pense :
pour le moment, les pages fonctionnent correctement, maintenant quand la personne est identifié sur son compte, on voit son pseudo et son ID, ce que je voulais, ensuite il peut enregistrer sa liste de pièces (et sur cette page, je souhaite également qu'on puisse voir son pseudo et son ID) mais ça ne marche pas :
Form_Inserer_Piece.php
<HTML>
<HEAD>
</HEAD>
<BODY>
<?php
@session_start(); utile ou pas ?
$Id = mysql_connect("localhost" , "root" , "");
mysql_select_db ("piece" ) ;
echo ( "<FORM METHOD=\"POST\" action=\"Inserer_Piece.php\">" ) ;
echo ( "<TABLE>" ) ;
echo ("l'id est : $id_membre"); Notice: Undefined variable: id_membre in C:\Documents and Settings\Franck\Bureau\Nouveau dossier\piece\Form_Inserer_Piece.php on line 16
echo ("le pseudo est : $pseudo");Notice: Undefined variable: pseudo in C:\Documents and Settings\Franck\Bureau\Nouveau dossier\piece\Form_Inserer_Piece.php on line 18
echo ( "<TR>" ) ;
echo ( "<TD>Liste des Pièces allemandes :</TD>" ) ;
echo ( "<TR>" ) ;
echo ( "<TD class=\"Libelle\">1c 2002 A</TD>" ) ;
echo ( "<TD><select name=\"Allemagne1c2002A\">
<option value=\"OUI\">OUI</option>
<option value=\"NON\">NON</option>
<option value=\"DOUBLE\">DOUBLE</option>
</select></TD>" ) ;
echo ( "</TR>" ) ;
echo ( "<TR>" ) ;
echo ( "<TD class=\"Libelle\">1c 2002 D</TD>" ) ;
echo ( "<TD><select name=\"Allemagne1c2002D\">
<option value=\"OUI\">OUI</option>
<option value=\"NON\">NON</option>
<option value=\"DOUBLE\">DOUBLE</option>
</select></TD>" ) ;
echo ( "</TR>" ) ;
echo ( "</TABLE>" ) ;
echo ( "<BR><INPUT type=\"submit\" value=\"Enregistrer\">" ) ;
echo ( "</FORM>" ) ;
mysql_close () ;
?>
je te demanderai une dernière petite chose lorsque la page la sera bien, sans erreur
et encore une fois merci !
@session_start(); utile ou pas ?
Bon alors là je crois qu'il va falloir que tu comprennes bien comment fonctionne les variables et les sessions avec PHP
Si tu veux développer tu dois t'affranchir de ces questions : tu dois savoir si ça sert ou non d'écrire session_start() ici et surtout pourquoi.
Pour travailler avec les sessions session_start(); doit être appelé en premier avant toute instruction qui retourne quelque chose au navigateur comme la fonction echo par ex.
Il est préférable (obligatoire ?) de n'appeler session_start() qu'une seule fois par script !
Un script est constitué par le page php qui est appelée en premier ainsi que de ses différents includes : c'est pourquoi il est préférable de na pas appeler la fonction session_start() dans les includes.
Bref ici pour répondre à la question est-ce utile ou pas ? Oui si la fonction session_start() n'a pas encore été appelée. (et seulement si tu veux utiliser les sessions bien évidemment lol)
Dans certains cas je te l'accorde savoir si session_start() a été appelée ou non n'est pas évident
Dans ce cas une solution consiste à remplacer dans TOUTES TES PAGES PHP
session_start()
par
Pour $id_membre non initialisée : d'après toi comment PHP peut-il la trouver ta variable ?
Bon alors là je crois qu'il va falloir que tu comprennes bien comment fonctionne les variables et les sessions avec PHP
Si tu veux développer tu dois t'affranchir de ces questions : tu dois savoir si ça sert ou non d'écrire session_start() ici et surtout pourquoi.
Pour travailler avec les sessions session_start(); doit être appelé en premier avant toute instruction qui retourne quelque chose au navigateur comme la fonction echo par ex.
Il est préférable (obligatoire ?) de n'appeler session_start() qu'une seule fois par script !
Un script est constitué par le page php qui est appelée en premier ainsi que de ses différents includes : c'est pourquoi il est préférable de na pas appeler la fonction session_start() dans les includes.
Bref ici pour répondre à la question est-ce utile ou pas ? Oui si la fonction session_start() n'a pas encore été appelée. (et seulement si tu veux utiliser les sessions bien évidemment lol)
Dans certains cas je te l'accorde savoir si session_start() a été appelée ou non n'est pas évident
Dans ce cas une solution consiste à remplacer dans TOUTES TES PAGES PHP
session_start()
par
// Si la variable $session_started n'est pas définie c'est qu'on a jamais démarré la session // $session_started c'est juste un ex on pourrait tout aussi bien utiliser la variable $toto mais c'est moins parlant if (!isset($session_started)) { $session_started = true; // ici on créé une variable et on lui affecte la valeur true session_start(); }
Pour $id_membre non initialisée : d'après toi comment PHP peut-il la trouver ta variable ?
ni id_membre ni pseudo n'est trouvable
pourtant dans ma requête, c'est censé retourner déjà le pseudo car la session est toujours ouverte
$ResSQL = " SELECT * FROM membre WHERE pseudo = '$pseudo'";
mais justement il ne me retourne pas le pseudo donc forcément, il ne me retourne pas l'id_membre
j'aurais bien utiliser des $POST mais bon...
pourtant dans ma requête, c'est censé retourner déjà le pseudo car la session est toujours ouverte
$ResSQL = " SELECT * FROM membre WHERE pseudo = '$pseudo'";
mais justement il ne me retourne pas le pseudo donc forcément, il ne me retourne pas l'id_membre
j'aurais bien utiliser des $POST mais bon...
Oui ta session est ouverte et donc après session_start() la tableau $_SESSION[] existe et contient très certainement $_SESSION["pseudo"]
Mais la variable $pseudo elle n'a rien à voir avec les sessions ! Elle n'existe pas encore
Si tu veux l'utiliser à la place de $_SESSION["pseudo"] parce que c'est plus simple tu dois d'abord faire
ou mieux encore
ou
Pour $id_membre c'est la même chose : il faut que tu t'assures en plus de bien l'avoir enregistrer dans la session avant donc d'avoir fait à un moment :
Conseil : Si tu veux afficher le contenu de toutes les variables contenues dans $_SESSION
Ecrit ceci dans le corps de ta page html (après <body> par ex)
Note ca fonctionne aussi avec $_GET, $_POST et plus généralement n'importe quel tableau PHP ;-)
Mais la variable $pseudo elle n'a rien à voir avec les sessions ! Elle n'existe pas encore
Si tu veux l'utiliser à la place de $_SESSION["pseudo"] parce que c'est plus simple tu dois d'abord faire
$pseudo = $_SESSION["pseudo"];
ou mieux encore
$pseudo = isset($_SESSION["pseudo"]) ? $_SESSION["pseudo"] : "";
ou
if (isset($_SESSION["pseudo"])) { $pseudo = $_SESSION["pseudo"]; } else { ... ici le code en cas d'erreur car ce n'est pas normal ! }
Pour $id_membre c'est la même chose : il faut que tu t'assures en plus de bien l'avoir enregistrer dans la session avant donc d'avoir fait à un moment :
$_SESSION["id_membre"] = $id_membre;
Conseil : Si tu veux afficher le contenu de toutes les variables contenues dans $_SESSION
Ecrit ceci dans le corps de ta page html (après <body> par ex)
<pre> <?php var_dump($_SESSION); ?> </pre>
Note ca fonctionne aussi avec $_GET, $_POST et plus généralement n'importe quel tableau PHP ;-)
toujours un problème :(
avec le code suivant :
$Id = mysql_connect("localhost" , "root" , "l");
mysql_select_db ("piece" ) ;
$pseudo = isset($_SESSION["pseudo"]) ? $_SESSION["pseudo"] : "";$pseudo = $_SESSION["pseudo"];
$_SESSION["id_membre"] = $id_membre;
var_dump($_SESSION);
j'ai ça :
Notice: Undefined variable: id_membre in C:\Documents and Settings\Franck\Bureau\Nouveau dossier\piece\Form_Inserer_Piece.php on line 22
array(2) { ["pseudo"]=> string(4) "num1" ["id_membre"]=> NULL }
le pseudo est bon mais je n'ai pas d'id
avec le code suivant :
$Id = mysql_connect("localhost" , "root" , "l");
mysql_select_db ("piece" ) ;
$pseudo = isset($_SESSION["pseudo"]) ? $_SESSION["pseudo"] : "";$pseudo = $_SESSION["pseudo"];
$_SESSION["id_membre"] = $id_membre;
var_dump($_SESSION);
j'ai ça :
Notice: Undefined variable: id_membre in C:\Documents and Settings\Franck\Bureau\Nouveau dossier\piece\Form_Inserer_Piece.php on line 22
array(2) { ["pseudo"]=> string(4) "num1" ["id_membre"]=> NULL }
le pseudo est bon mais je n'ai pas d'id
heu faut pas mettre tout en même temps !
Soit tu mets
qui est équivalent à
soit
mais pas les 2 !
A l'issue de chaque instruction tu peux voir que $pseudo contient bien une valeur
Dans le premier cas on aura pas d'erreur même si $_SESSION["pseudo"] n'est pas défini : dans ce cas $pseudo contiendra une chaîne vide
Dans le second cas on aura une erreur si $_SESSION["pseudo"] n'est pas défini : Undefined index: pseudo
Ensuite tu écris
$_SESSION["id_membre"] = $id_membre;
Mais pourquoi ici ?
$id_membre n'est pas défini ici : tu créés bien une variable de session nommée id_membre mais dont le contenu est NULL : ce que t'indique d'ailleurs le var_dump()
j'ai l'impression que tu confonds exécution d'un script PHP, session et durée de vie des variables :
entre l'accès à 2 pages PHP perd toutes ses variables. C'est pas pour rien que les sessions existent. ;-)
Bref même si l'enchaînement de la page compte.php vers la page Form_Inserer_Piece.php s'effectue rapidement te donnant une impression de continuité en fait il s'agit de 2 scripts indépendants !
Soit tu mets
$pseudo = isset($_SESSION["pseudo"]) ? $_SESSION["pseudo"] : "";
qui est équivalent à
if (isset($_SESSION["pseudo"])) { $pseudo = $_SESSION["pseudo"]; } else { $pseudo = ""; }
soit
$pseudo = $_SESSION["pseudo"];
mais pas les 2 !
A l'issue de chaque instruction tu peux voir que $pseudo contient bien une valeur
Dans le premier cas on aura pas d'erreur même si $_SESSION["pseudo"] n'est pas défini : dans ce cas $pseudo contiendra une chaîne vide
Dans le second cas on aura une erreur si $_SESSION["pseudo"] n'est pas défini : Undefined index: pseudo
Ensuite tu écris
$_SESSION["id_membre"] = $id_membre;
Mais pourquoi ici ?
$id_membre n'est pas défini ici : tu créés bien une variable de session nommée id_membre mais dont le contenu est NULL : ce que t'indique d'ailleurs le var_dump()
j'ai l'impression que tu confonds exécution d'un script PHP, session et durée de vie des variables :
entre l'accès à 2 pages PHP perd toutes ses variables. C'est pas pour rien que les sessions existent. ;-)
Bref même si l'enchaînement de la page compte.php vers la page Form_Inserer_Piece.php s'effectue rapidement te donnant une impression de continuité en fait il s'agit de 2 scripts indépendants !