Nom et prénom dans une zone de texte

Eléphanteau du PHP | 16 Messages

25 oct. 2011, 23:01

Bonsoir,

je me permets de vous écrire pour avoir un peu d'aide:
J'ai créer un espace membre, avec mes pages voulues protégées, dans une de mes pages protégées,je voudrais que lorsque je clic sur cette pages, le nom et prénom de la personne connectée s'affiche dans une zone de texte qui servira d'identification pour l'envoi d'un formulaire.
Cordialement
Merci pour votre aide
Gregory

ViPHP
xTG
ViPHP | 7331 Messages

26 oct. 2011, 09:47

Tu as donc dans ta session des informations identifiants l'utilisateur non ? Un id ? Un login ?
Soit lors de la connexion tu stockes toutes les informations que tu souhaites réutiliser, soit tu stockes l'id permettant de les récupérer dans ta base de données.
Et dans ce dernier cas il te suffit donc d'effectuer une requête pour récupérer les informations. :)

Eléphanteau du PHP | 16 Messages

26 oct. 2011, 23:38

Bonsoir Xtg

Pourrais m'expliquer car je n'ai pas très bien compris ce que tu m'avais dit
Cordialement
Gregory

ViPHP
xTG
ViPHP | 7331 Messages

27 oct. 2011, 08:15

Ok, commençons par le début.
Qu'utilises-tu pour savoir que ton visiteur est un membre ?
Il s'est connecté via un formulaire, mais lors de cette connexion qu'as-tu enregistré dans $_SESSION ?

Eléphanteau du PHP | 16 Messages

28 oct. 2011, 19:36

Bonsoir,

ma page login contient les infos là :

<?php
session_start();
if(!empty($_SESSION['membre']))
{
header('Location: verif.php');
}

ma page vérif contient les infos là :
<?php
session_start();
if(!empty($_GET) && !empty($_GET['hash']))
{
extract($_GET);
}
else
{
header('Location: private/indexprivate.php');
}
et enfin pour protéger ma page j'utilise le script suivant :
<?php
session_start();
if(empty($_SESSION['membre']))
{
header('Location: /signup/indexprive.php');
}
?>

je souhaite bien une fois le membre connecté lorsqu'il va sur la page noté feuille de garde, son nom et prénom s'affiche sur dans une zone de texte T1 d'un formulaire, afin que lorsque le membre envoi son formulaire son nom et prénom s'affiche directement.
Cordialement Gregory

ViPHP
xTG
ViPHP | 7331 Messages

28 oct. 2011, 20:00

Et que contient l'index membre ?
Quel est le schéma de ta table sql membre ?

Eléphanteau du PHP | 16 Messages

28 oct. 2011, 20:31

re,
l'index membre contient :

<?php
session_start();
?>
<!DOCTYPE html>
<html lang="en">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="style.css" media="screen" />
<head>
<title></title>
</head>
<body>
<div id="header">
</div>

<div id="wrap">
<?php
if(empty($_SESSION['membre']))
{
?>
<h2>Bonjour, bienvenue sur l'espace privé du ...!</h2>
<p>Pour vous inscrire c'est <a href="inscription.php">ici</a></p>
<p>Pour vous identifier c'est <a href="login.php">ici</a>.</p>
<p>Si vous avez oublié votre mot de passe c'est <a href="oublie.php">ici</a>.</p>
<?php
}
else
{
?>
<h2>Vous êtes toujours connecté!</h2>
<p>Pour retourner sur l'espace privé du ... c'est <a href="/private/indexprivate.php">ici</a></p>
<div id="login"><a href="logout.php">Fermer ma session</a></div>
<?php
}
?>
</div>
</body>
</html>

ma table sql contient :

id int(2) Auto Increment
nom (vachar 100)
prenom (vachar 100
pass (vachar 255)
email (vachar 255)
hash (vachar 255)
actif int(11)

ViPHP
xTG
ViPHP | 7331 Messages

28 oct. 2011, 22:38

En parlant d'index je parlais en fait de l'index du tableau $_SESSION. ^^
Que contient la variable $_SESSION['membre'] ? Est-ce un id ? Un login ? Un booléen ?

A la vue de tes messages j'en conclu que tu ne maitrises absolument pas le sujet et que le code que tu nous montres ne te parle pas tant que cela.
Je te recommande donc par la même occasion de lire ce tutorial sur le sujet avant de répondre : faq-tutoriels/inscription-connexion-dan ... 42539.html
Il t'apportera peut être une vision neuve et claire sur le sujet et tu n'auras peut être plus besoin de mon aide. :)

Eléphanteau du PHP | 16 Messages

29 oct. 2011, 21:30

Bonsoir,

effectivement j'ai relu le tuto est j'ai trouvé la manip,mais là je buche un peu.J'ai utilisé le script suivant :
<?php
$maVar = htmlspecialchars($_SESSION['membre']);
?>
<input type="text" name="Nom Prénom extérieur" value="<?php echo $maVar;?>"size=\"25\" maxlength="255" />

Mais je voudrais que ce soit le nom et le prénom qui s'affiche et là je n'ai que le nom et je ne sais pas à quel endroit changer et quel script indiquer

Merci
Cordialement

ViPHP
xTG
ViPHP | 7331 Messages

29 oct. 2011, 21:41

Si l'index membre est la seule information enregistrée et que c'est le nom tu as un problème de conception.
Car un nom de famille n'est pas unique ! Il faut enregistrer en session (lors de la connexion) la clé primaire de la table membre.
Voire même d'autres informations si besoin est (comme le nom et le prénom pour éviter d'avoir à refaire une requête SQL pour les récupérer).

Eléphanteau du PHP | 16 Messages

29 oct. 2011, 23:40

Re,

Lorsque je met un prénom d'un membre avec un accent ça me donne ça : Grégory, je suis en encodage UTF-8(sans BOM),lorsque j'utilise l'encodage suivant : UTF-8, le nom apparait bien avec l'accent, mais j'ai une autre erreur qui apparait : Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started ...) in /homez.487....

Merci pour vote aide
Gregory

ViPHP
xTG
ViPHP | 7331 Messages

30 oct. 2011, 10:51

L'encodage doit être le même pour les points suivants :
- Encodage du fichier (voir ton éditeur de texte)
- Encodage du serveur (voir la fonction header())
- Encodage de la page HTML généré (voir la balise meta)
- Encodage du champ de la table (voir la création de la table)
- Encodage de la connexion à la base de données (voir la fonction de connexion relative au driver utilisé)

Pour ton warning cela provient du fait qu'il ne faut rien envoyer au navigateur avant un session_start(), cette fonction doit être la première dans ton script.