CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Fonction echo/session

hayaou
hayaou
Niveau 6
28 juin 2012 à 11:44:44

Bonjour à tous,

Je viens poster ce sujet, car j'ai créé un site avec système de sessions assez soft.
J'aimerais, une fois le membre connecté, afficher par exemple "bonjour Pierre", ou d'autre choses avec le nom de la personne s'étant loguée (avec son nom de famille et son mdp).

Voici le code de verification de session qui marche tres bien :

<? session_start();
if(!isset($_SESSION['nom']))
{
echo 'Vous n\'&ecirctes pas connect&eacute au site. Vous ne pouvez donc pas acceder &agrave cette page.
Il faut vous <a href="../index.php" >identifier</a>.';
exit;
}
?>

Ensuite, ce qui me pose problème c'est que je n'arrive pas a récuperer le nom dans un premier temps.
Voici la derniere fonction que j'ai pondue sans résultat :

<?php
if(isset($_SESSION['nom']))
{
echo $nom;
}
?>

Ce nom est associé forcement à un prénom dans la BDD, et j'aimerais afficher ce prénom au lieu du nom.

J'espere avoir été assez explicite, et je vous remercie par avance en m'excusant du post assez long.

bob63
bob63
Niveau 11
28 juin 2012 à 12:55:02

Pourquoi tu fais un echo de $nom alors que tu testes la session nom ?

<?php
if(isset($_SESSION['nom']))
{
echo $_SESSION['nom'];
}
?>

Si ca affiches bien le nom, c'est bon. Ensuite tu fais un select dans ta BDD sur le nom. Par contre, c'est dangereux, car si plusieurs users ont le même nom ...

hayaou
hayaou
Niveau 6
28 juin 2012 à 13:13:59

Merci de ta réponse,

Mais justement, le nom ne s'affiche pas. Je sais que ca passe puisque la session est "ouvert".
Comment faire pour choisir le prénom associé au nom dans la BDD ?

Ne t'en fait pas il n'y aura pas de doublon de nom car c'est un site restreint à ma section de bts soit 25 personnes.

deepblue
deepblue
Niveau 16
28 juin 2012 à 13:33:14

"Comment faire pour choisir le prénom associé au nom dans la BDD ? " > tu as deux solutions (grosso modo) :
- quand l'utilisateur se connecte, tu génère la session nommée "nom" en indiquant son nom (si tu sais connecter une personne, tu sais alors récupérer son nom)
- ou quand l'utilisateur se connecte, tu stock son ID dans la session et tu récupère le nom avec une requête quand tu en as besoin

darkiron_2012
darkiron_2012
Niveau 10
28 juin 2012 à 16:06:48

Quand tu ouvre la session quand l'user s'identifie il faut récupérer le nom et le stocké dans Sessions
$_SESSION['nom'] = $nom;// ou $nom est le le nom de l'user récupérer en BD :ok:
le mieux c'est tu stock l'id et ensuite tu fait ta requête !

hayaou
hayaou
Niveau 6
28 juin 2012 à 17:18:13

D'accord, merci à vous, je vais essayer ça ! Mais la session est créée avec le code suivant :

<? session_start();
if(!isset($_SESSION['nom']))
{
echo 'Vous n\'&ecirctes pas connect&eacute au site. Vous ne pouvez donc pas acceder &agrave cette page.
Il faut vous <a href="../index.php" >identifier</a>.';
exit;
}
?>

:d) Si je comprend bien, il faut que je fasse une requete à la BDD demandant le prenom correspondant au nom. Mais je ne vois pas trop. Peut-être :

<?php
// Connexion à la base de données, puis :
// - Récupération du prenom
$reponse = $bdd->query('SELECT prenom FROM membre WHERE nom='.$nom.' ');
// - Affichage de celui-ci
while ($donnees = $reponse->fetch())
{
echo '<p><strong>' . htmlspecialchars($donnees['prenom']) . '</strong></p>';
}
$reponse->closeCursor();
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>

Par contre là je ne sais pas comment l'insérer dans la variable session.

En attendant vos conseil j'ai mené mon enquête, j'ai trouvé une explication sur comment stocker et utiliser les cookies.
J'ai bien suivis le truc, fait ce qu'il y avais a faire, mais ca m'affiche une erreur :

Parse error: syntax error, unexpected '|' in /homepages/25/d406655023/htdocs/comm.php on line 5

Et voici le code concerné (les lignes sont respectées) :

<?
if (isset($_POST['Infos_NRC13']))
{
$expire = 365*24*3600; // 1 an de durée cookie
setcookie("Infos_NRC13", $_POST['nom']&|&$_POST['prenom'], time()+$expire); // création du cookie
}
?>

Vous me l'accorderais, j'ai suivis bêtement le tuto mais pas sans comprendre. J'ai bien compris les éléments. Vérifié etc.
Merci à vous.

bob63
bob63
Niveau 11
28 juin 2012 à 19:24:29

Avec ca :

<? session_start();
if(!isset($_SESSION['nom']))
{
echo 'Vous n\'&ecirctes pas connect&eacute au site. Vous ne pouvez donc pas acceder &agrave cette page.
Il faut vous <a href="../index.php" >identifier</a>.';
exit;
}
?>

Tu affectes aucune valeur. Tu testes juste si la session est vide.

Quel est ton code qui affectes le nom à la session ?

hayaou
hayaou
Niveau 6
29 juin 2012 à 09:47:41

Bonjour à toi en cette belle matinée.

Alors, je sais que ce code teste juste si la session est vide.

Je n'ai auncun code qui affecte le nom à la session, en gros, il suffit juste d'avoir un nom + mdp pour entrer sur le site. Et c'est moi qui valide les inscriptions avant de pouvoir y acceder.

hayaou
hayaou
Niveau 6
29 juin 2012 à 09:59:10

Je doit rajouter ça à mon code pour nommer la session ?

$_SESSION['login']='$nom';

(login = le nom de la session, $nom = la valeur contenue dans la session)

Si oui, doit-je le rajouter à la suite du session_start, apres le } en dessous du exit ?
Si non, à quel endroit ?

bob63
bob63
Niveau 11
29 juin 2012 à 12:44:51

Si tu fais pas d'affectation, comment veux-tu que ta session contienne le nom ??

Oui il faut que tu le rajoutes lorsque tu peux récupérer ce nom. Tu dois avoir un $_POST['nom'] quelque part j'imagine. Et bien a cet endroit tu stockes le POST dans la SESSION

hayaou
hayaou
Niveau 6
29 juin 2012 à 14:48:38

Voici le code associé au formulaire de connexion :

<?php
mysql_connect("XXX", "XXX", "XXX");
mysql_select_db("XXX");

if(isset($_POST) && !empty($_POST['nom']) && !empty($_POST['passe'])) {
extract($_POST);
// on recupère le password de la table qui correspond au nom du visiteur
$sql = "select passe from connexion where nom='".$nom."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

$data = mysql_fetch_assoc($req);

if($data['passe'] != sha1($passe)) {
echo '<p>Mauvais nom / mot de passe. Merci de recommencer en retournant &agrave la page de <a href="http://XXX.FR" >connexion</a>.</p>';
exit;
}
else {
session_start();
$_SESSION['nom'] = $nom;
echo '<p>Vous &ecirctes bien identifi&eacute</p>';
// Renvois vers l'accueil
echo '</br></br><p><div style="text-align:center;"><a href="../accueil.php"> <img src="../images/entrer.gif" /> </a></div></p>';
}
}
else {
echo '<p>Veuillez vous identifier, ou vous inscrire : <a href="XXX/inscription.php" >ICI</a></p>';
include(XXX/login.htm'); // On inclut le formulaire d'identification
exit;
}
?>

Vous comprendrez que j'ai mis des XXX là où les info sont confidentielles (code de connexion, et structure du site), la folle la guêpe. :banzai:

hayaou
hayaou
Niveau 6
29 juin 2012 à 14:51:40

Donc je n'avais pas vu mais il y est bien ce $_POST et le $_SESSION.
Donc la session est nommée, l'info est dedans. Reste plus qu'à l'associer au prénom correspondant dans la BDD.

bob63
bob63
Niveau 11
29 juin 2012 à 16:48:51

L'info n'est pas dedans du tout.

Tu devrais revoir les bases complètes de PHP.

Quand tu fais ca :
$sql = "select passe from connexion where nom='".$nom."'";

Ton $nom n'est jamais affecté. Tu dois faire un $nom = $_POST['nom'] tu crois pas ? Et pareil pour la session.

hayaou
hayaou
Niveau 6
02 juillet 2012 à 09:27:52

Ah d'accord ...

Oui je vais faire cela, car j'ai un peu appris sur le tas, au fur et à mesure de la construction du site.

Merci pour ta patience et ton aide.

Tu as un conseil à me donner sur quel support apprendre ? Un site, un livre ?

bob63
bob63
Niveau 11
02 juillet 2012 à 13:18:59

Les tutoriels du siteduzero suffisent pour avoir des bases solides en PHP :)

hayaou
hayaou
Niveau 6
02 juillet 2012 à 14:49:01

C'est ceux-là que j'ai suivis, mais j'ai du sauter des étapes :ok:
Mais c'est vrai que une fois fini le html, le passage au php est compliqué sur certains points, ma grande difficulté c'est bien les variables/sessions, pourtant ça n'a pas l'air si difficile que ça !

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment