Affichage image depuis bdd impossible [Résolu]

Signaler
Messages postés
73
Date d'inscription
dimanche 28 février 2021
Statut
Membre
Dernière intervention
6 mai 2021
-
Messages postés
16033
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 juin 2021
-
Bonjour, je suis face à un problème inextricable. Auriez-vous une piste pour que $_SESSION ['avatar'] s'affiche dans une partie HTML?

<?php
session_start();
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
// connexion a la bdd
require_once 'config.php';
$id = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL;
$avatar = !empty($_SESSION['avatar']) ? $_SESSION['avatar'] : NULL;
$pseudo = !empty($_SESSION['pseudo']) ? $_SESSION['pseudo'] : NULL;
$id = ($_SESSION['id']);
$pseudo = ($_SESSION["pseudo"]);
$avatar = ($_SESSION["avatar"]);
?>
<table>
<td><?php echo $_SESSION['pseudo'];?>
<?php
if($avatar){
  try{
//echo $_SESSION['avatar'];
  echo '<img src='./avatars/ $_SESSION['avatar']'>';
  }

  catch(Exception $e){
    // en cas d'erreur :
    echo " Erreur ! ".$e->getMessage();
  }
}else{
   echo " Aucun AVATAR n'est présent !! ";
   var_dump($_SESSION); // le temps des tests pour voir si tu as bien qq chose en  SESSION !!
 } 
?>
</td>
</table>


j'ai des parse error ligne 21 bien sur.
la ligne 20 lorsque "validée" fonctionne mais n'affiche que le nom du chemin en bdd.

17 réponses

Messages postés
16033
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 juin 2021
867
bonjour,
qu'appeles-tu "parse error ligne 21", et pourquoi "bien sur"?
peux-tu partager le code HTML de la page?
pourquoi cet espace avant la variable en ligne 21?
Messages postés
218
Date d'inscription
jeudi 5 mai 2016
Statut
Membre
Dernière intervention
22 mai 2021
169
Bonjour,

Une erreur parse n'est jamais normale. Si il y a une erreur parse alors l’exécution du code cesse. Vous avez fait une grosse erreur à la ligne 21 :

echo '<img src='./avatars/ $_SESSION['avatar']'>';


Vous devrez revoir la concatenation. Le bon code est le suivant :

<?php echo '<img src="./avatars/' . $_SESSION['avatar'] . '">'; ?>
Messages postés
73
Date d'inscription
dimanche 28 février 2021
Statut
Membre
Dernière intervention
6 mai 2021

Merci pour la correction, popozz. Mais il demeure un soucis. Voilà ce qui s'affiche dans mon exemple de test:


un pb dans la session ?
Messages postés
16033
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 juin 2021
867
partage le code HTML de la page, pas une image.
Messages postés
218
Date d'inscription
jeudi 5 mai 2016
Statut
Membre
Dernière intervention
22 mai 2021
169
Il y a seulement 2 erreurs possibles : L'images appelée ne se trouve pas dans le dossier avatars, ou la variable session n'est pas bien remplit. Il faut qu'elle soit remplit avec le nom et l'extension de l'image. Il se passe quoi quand vous faites un echo de la variable session ?
Messages postés
73
Date d'inscription
dimanche 28 février 2021
Statut
Membre
Dernière intervention
6 mai 2021

c'est le meme resultat.

<?php
session_start();
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
// connexion a la bdd
require_once 'config.php';
$id = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL;
$avatar = !empty($_SESSION['avatar']) ? $_SESSION['avatar'] : NULL;
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>page membre</title>
<style type="text/css">
bla bla bla
<table>
<td>
<b><?php echo $_SESSION['pseudo'];?></b>
<br><br>
<?php echo '<img src="./avatars/' . $_SESSION['avatar'] . '">'; ?>
</td>


la variable $avatar c'est 0014.png qui est bien dans le dossier avatars. en bdd, c'est le chemin vers le repertoire qui est: /avatars/0014.png
Messages postés
16033
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 juin 2021
867
merci de partager la source HTML de la page, que tu obtiens dans le navigateur en cliquant à droite dans la page.
dans quel répertoire se trouve le script?
quell es l'url du script?
si, via le navigateur, dans cet url, tu remplaces le nom du script par avatars/0014.png, qu'obtiens-tu?
Messages postés
73
Date d'inscription
dimanche 28 février 2021
Statut
Membre
Dernière intervention
6 mai 2021

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>page membre</title>
<style type="text/css">
body {
color:black;
background-color:white;
background-image:url(images/fond1.jpg);
background-attachment:fixed;
}

ul#menu
 {
 display:table; /* contexte de formatage : alternative = inline-block */
 margin:auto;   /* centrage pour élément similaire a block, si inline-block, alors text-align:center; sur le parent  */
 padding:0;  /* reset marge interne */
 }

ul {
    font-family: Arial, Verdana;
    font-size: 14px;
    margin: 0;
    padding: 0;
    list-style: none;
}
ul li {
    display: block;
    position: relative;
    float: left;
}
li ul {
    display: none;
}
ul li a {
    display: block;
    text-decoration: none;
    color: #ffffff;
    border-top: 1px solid #ffffff;
    padding: 5px 15px 5px 15px;
    background: #1e7c9a;
    margin-left: 1px;
    white-space: nowrap;
}
ul li a:hover {
background: #3b3b3b;
}
li:hover ul {
    display: block;
    position: absolute;
}
li:hover li {
    float: none;
    font-size: 11px;
}
li:hover a { background: #3b3b3b; }
li:hover li a:hover {
    background: #1e7c9a;
}
table {
 border-width:3px;
 border-style:solid;
 border-color:black;
 width:80%;
 background-image:url(images/fond1.jpg);
background-attachment:fixed;
color:#000000;
text-align:center;
margin: auto;
 }
td {
 border-width:1px;
 border-style:solid;
 border-color:black;
 width:10%;
 }
</style>
<body>
<div id="entete">
<center><img src="images/logo.jpg"></center>
</div>
<ul id="menu">
<li><a href="accueil.php"><b>ACCUEIL</b></a></li>
<li><a href="base.html"><b>A PROPOS</b></a></li>
<li><a href="inscription.php"><b>INSCRIPTION</b></a></li>
<li><a href="connexion.php"><b>CONNEXION</b></a></li>
<li><a href="#"><b>BONUS</b></a></li>
<li><a href="logout.php"><b>QUITTER</b></a></li>
</ul>
<table>
<td>
<b>YVES LE ROUGE</b>
<br><br><img src="./avatars/"></td>
<td><b>Boulot</b>
<br>
<br><img src="images/billet.gif">
<br>
 </td>
 <td><b>LOCALISATION</b>
  <br>
  </td>
</table>
   <style type="text/css">
table {
 border-width:3px;
 border-style:solid;
 border-color:black;
 width:80%;
 background-image:url(images/fond1.jpg);
background-attachment:fixed;
color:#000000;
text-align:center;
margin: auto;
 }
td {
 border-width:1px;
 border-style:solid;
 border-color:black;
 width:10%;
 }
</style>
<table>
<td><img src="images/pa_action.jpg">
<br><br><b></b>
</td>
<td><img src="images/vie.jpg">
<br><br><b></b>
<br><img src="images/vie.gif">
<br></td>
<td><img src="images/force.jpg">
<br><img src="images/force.gif">
<br></td>
<td><img src="images/habilete.jpg">
<br><img src="images/habilete.gif">
<br></td>
<td><img src="images/reputation.jpg">
<br><img src="images/reputation.gif">
<br></td>
<td><img src="images/experience.jpg">
<br><img src="images/experience.gif">
<br></td>
<td><img src="images/sexe.jpg">
<br><img src="images/sexe.gif">
<br></td>
</table>
<style type="text/css">
table {
 border-width:3px;
 border-style:solid;
 border-color:black;
 width:80%;
 background-image:url(images/fond1.jpg);
background-attachment:fixed;
color:#000000;
text-align:center;
margin: auto;
 }
td {
 border-width:1px;
 border-style:solid;
 border-color:black;
 width:10%;
  }
a  {
text-decoration: none;
color: black;
 }
</style>
<table>
<td><a href="boire_menu.php"><img src="images/BOIRE.gif" alt="" width="100" height="80"></a>
<br>BOIRE</td>
<td><a href="manger_menu.php"><img src="images/MANGER.gif" alt="" width="100" height="80"></a>
<br>MANGER</td>
<td><a href="dormir_menu.php"><img src="images/DORMIR.gif" alt="" width="100" height="80"></a>
<br>DORMIR</td>
<td><a href="soigner_menu.php"><img src="images/SOIGNER.gif" alt="" width="100" height="80"></a>
<br>SE SOIGNER</td>
</table>
<style type="text/css">
table {
 border-width:3px;
 border-style:solid;
 border-color:black;
 width:80%;
 background-image:url(images/fond1.jpg);
background-attachment:fixed;
color:#000000;
text-align:center;
margin: auto;
 }
td {
 border-width:1px;
 border-style:solid;
 border-color:black;
 width:10%;
  }
a  {
text-decoration: none;
color: black;
 }
</style>
<table>
<td><a href="action_contenant.php"><img src="images/contenant.jpg">
<br>
<br><b>Usure:</b> <b>%</b>
</td>
<td><a href="action_contenu.php"><img src="images/contenu.jpg">
<br>quantité contenant
<br>
</td>
<td><a href="action_objet1.php"><img src="images/objet1.jpg">
<br>
<br><b>Usure:</b> ;<b>%</b>
</td>
<td><a href="action_objet2.php"><img src="images/objet2.jpg">
<br>
<br><b>Usure:</b> <b>% </b>
</td>
<td><a href="action_objet3.php"><img src="images/objet3.jpg">
<br>
<br><b>Usure:</b> <b>% </b>
</td>
<td><a href="action_vehicule.php"><img src="images/vehicule.jpg">
<br>
<br><b><b>Usure:</b></b> <b>%</b>
</td>
<td><img src="images/deplacement.jpg">
<br><a href="affiche_map.php"><img src="images/boussole.gif" alt="" width="100" height="80"></a>
</td>
</table>
<table>
<td>
<a href="maboutiquenligne.php"><img src="images/MABOUTIQUE.gif" alt="" width="100" height="80"></a>
</td>
</body>


le script est dans wamp64/www
url= http://localhost/page_membre.php
dans cet url, remplaces le nom du script par avatars/0014.png, l'avatar s'affiche bien...
Messages postés
16033
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 juin 2021
867
en ligne 93 de ton code HTML,
./avatars
peut-être remplacé par
avatars
.
Messages postés
73
Date d'inscription
dimanche 28 février 2021
Statut
Membre
Dernière intervention
6 mai 2021

j'ai refait un test avec ceci:

<?php
session_start();
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
// connexion a la bdd
require_once 'config.php';
$id = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL;
$avatar = !empty($_SESSION['avatar']) ? $_SESSION['avatar'] : NULL;
$pseudo = !empty($_SESSION['pseudo']) ? $_SESSION['pseudo'] : NULL;
$id = ($_SESSION['id']);
$pseudo = ($_SESSION["pseudo"]);
$avatar = ($_SESSION["avatar"]);
?>
<table>
<td><?php echo $_SESSION['pseudo'];?>
<td>
<?php
if($avatar){
  try{
//echo $_SESSION['avatar'];
  echo '<img src="./avatars/' . $_SESSION['avatar'] . '">'; 
  }

  catch(Exception $e){
    // en cas d'erreur :
    echo " Erreur ! ".$e->getMessage();
  }
}else{
   echo " Aucun AVATAR n'est présent !! ";
   var_dump($_SESSION); // le temps des tests pour voir si tu as bien qq chose en  SESSION !!
 } 
?>
</td>
</table>


C:\wamp64\www\page_membre_encour.php:31:
array (size=3)
'id' => string '2' (length=1)
'pseudo' => string 'YVES LE ROUGE' (length=13)
'avatar' => null
Aucun AVATAR n'est présent !!

Mon avatar n'est donc pas en session malgré ces deux lignes:

$avatar = !empty($_SESSION['avatar']) ? $_SESSION['avatar'] : NULL;
$avatar = ($_SESSION["avatar"]);


Si quelqu'un a la solution!.....
Messages postés
16033
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 juin 2021
867
où as-tu une instruction
$_SESSION['avatar'] = 
Messages postés
16033
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 juin 2021
867
tu avais pourtant écrit deux fois que le contenu de $avatar était correct...
Messages postés
218
Date d'inscription
jeudi 5 mai 2016
Statut
Membre
Dernière intervention
22 mai 2021
169
La variable session est NULL.
Messages postés
73
Date d'inscription
dimanche 28 février 2021
Statut
Membre
Dernière intervention
6 mai 2021

$avatar = ($_SESSION["avatar"]);



ligne 12 du scipt original (le 1er topic)

La variable session est NULL, oui pourquoi?.
Messages postés
16033
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 juin 2021
867
as-tu une instruction qui commence ainsi:
$_SESSION['avatar'] = 
Messages postés
73
Date d'inscription
dimanche 28 février 2021
Statut
Membre
Dernière intervention
6 mai 2021

ben oui.
$_SESSION['avatar'] = "$avatar";
Messages postés
218
Date d'inscription
jeudi 5 mai 2016
Statut
Membre
Dernière intervention
22 mai 2021
169
Vous avez comprit qu'en faisant ça, la variable de session est égale à "$avatar" ? Il faut qu'elle soit égale au nom de l'image ou si vous voulez qu'elle soit égale à une variable vous devez enlever les guillemets.
Messages postés
16033
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 juin 2021
867
ah bon? je n'avais pas vu cette ligne. es tu certain de nous l'avoir montré? où et quand?
as-tu choisi de ne pas nous montrer tout ton code?
ou bine modifies-tu ton code sans nous tenir au courant?
si tu as plusieurs fichiers de code, n'oublie pas de préciser le nom de chaque fichier, avec son contenu.
Messages postés
218
Date d'inscription
jeudi 5 mai 2016
Statut
Membre
Dernière intervention
22 mai 2021
169
Pour faire simple voici ce qu'il faut faire parce que ce n'est pas compliqué et que le sujet traine.

- Vous devez créer la variable qui contiendra le nom de l'image et son extension. Pour vérifier qu'elle soit bien remplie, vous pouvez faire un echo.

- Assurez vous que l'image soit bien présente dans le bon dossier.

- Ensuite entrer ce code pour faire apparaitre l'image :

<?php echo '<img src="avatars/' . $_SESSION['avatar'] . '">'; ?>


Il n'y a rien de plus à faire.
Messages postés
73
Date d'inscription
dimanche 28 février 2021
Statut
Membre
Dernière intervention
6 mai 2021

"Vous devez créer la variable qui contiendra le nom de l'image et son extension" ??

Je ne comprends pas comment faire cela, ma variable avatar vient de la table et est différente selon le membre.
Messages postés
218
Date d'inscription
jeudi 5 mai 2016
Statut
Membre
Dernière intervention
22 mai 2021
169
Comme l'a déjà dit plusieurs fois yg_be vous devez utiliser

$_SESSION['avatar'] = 'Valeur de la variable'


Je trouve que c'est la base, vous devrez revoir les variables et comment les utiliser. D'autant plus que votre premier problème était la concaténation qui est du niveau du débutant. Je vous conseil donc de lire des cours sur le sujet.
Messages postés
32967
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 juin 2021
3 559
Bonjour,

On va reprendre depuis le début ... dans l'ordre .....

Donc .. à quel moment ( et avec quel code COMPLET ) ajoutes tu le chemin de l'avatar dans ta variable de session.
En gros.. quelles lignes ( dans quel fichier ? ) précèdent l'instruction
$_SESSION['avatar'] = "$avatar";




PS: pour popoz : pour info ...
$_SESSION['avatar'] = "$avatar";

Revient au même que de faire
$_SESSION['avatar'] = $avatar;
 


... les variables se trouvant entre double quote étant "comprises" et interprétées par le php ... (sauf lorsqu'on veut manipuler des objets ou des array )
Messages postés
73
Date d'inscription
dimanche 28 février 2021
Statut
Membre
Dernière intervention
6 mai 2021

c'est en amont, après l'inscription. le fichier est register_avatar.php


<?php
session_start();
require_once 'config.php';
$id = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL;
if($id){
$avatar= '/avatars/0015.png';
    $pdostat = $bdd->prepare('UPDATE membres SET avatar = :avatar WHERE id = :id');
    $pdostat->bindValue(':avatar', $avatar, PDO::PARAM_STR);
    $pdostat->bindValue(':id', $id, PDO::PARAM_INT);
    $pdostat->execute();
    $_SESSION['avatar'] = "$avatar"; 

				}		
 	header('Location:position_aleatoire_map_debut_jeu.php');
        exit;
?>







Messages postés
32967
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 juin 2021
3 559
Donc, cette variable est remplie lors de l'enregistrement du user ... mais ensuite .....
Si tu fermes le navigateur et que tu reviens ensuite sur ta page.. normal qu'elle soit vide.

Vu que tu stockes les infos en BDD .. c'est là qu'il faut aller les chercher.

A quel moment vas tu rechercher les infos du user ?
As tu fais un script de connexion ? (car c'est là .. qu'il faut "remplir" la variable de session.. )
Messages postés
73
Date d'inscription
dimanche 28 février 2021
Statut
Membre
Dernière intervention
6 mai 2021

J'ai du mal à comprendre.
dans le cas qui nous occupe, le navigateur n'est pas fermé.
1) soit on est en phase inscription qui dirige ensuite vers la page membre.
2) soit on est en phase connexion qui dirige ensuite vers page membre...

toutes mes pages incluent le config.php

<?php
$dbname= 'mondeideal';
$user = 'root';
$password = '';
$host = '127.0.0.1';

try {
    $bdd = new PDO('mysql:host='.$host .';dbname='.$dbname, $user, $password );
    $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $bdd->exec("SET CHARACTER SET utf8");
} catch (PDOException $e) {
    echo "<p>Erreur : " . $e->getMessage() . "</p>";
    exit();
}
?>


après cette phase register de l'avatar je pointe vers:
<?php
session_start();
require_once 'config.php';

$pos_x_min = 0;
$pos_x_max = 500;
$pos_y_min = 0;
$pos_y_max = 500;

$pos_x = mt_rand($pos_x_min,$pos_x_max);
$pos_y = mt_rand($pos_y_min,$pos_y_max);
$id = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL;
$avatar = !empty($_SESSION['avatar']) ? $_SESSION['avatar'] : NULL;

    $pdostat = $bdd->prepare('UPDATE membres SET pos_x= :pos_x, pos_y= :pos_y WHERE id= :id');
    $pdostat->bindvalue(':pos_x',$pos_x, PDO::PARAM_INT);
    $pdostat->bindvalue(':pos_y',$pos_y, PDO::PARAM_INT);
    $pdostat->bindValue(':id', $id, PDO::PARAM_INT);
    $pdostat->execute();
    $_SESSION['pos_x'] = $pos_x; 
    $_SESSION['pos_y'] = $pos_y;
	
	$sql = "INSERT INTO map (pos_x, pos_y) VALUES(:pos_x, :pos_y);";

    $prep =  $bdd->prepare($sql);
    $prep ->bindvalue(':pos_x',$pos_x, PDO::PARAM_INT);
    $prep->bindvalue(':pos_y',$pos_y, PDO::PARAM_INT);
	$prep->execute();
	
	header('Location: page_membre.php');
    exit; 
?> 

ensuite c'est la page membre
Messages postés
32967
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 juin 2021
3 559
Est-ce que en base de données tu as bien l'avatar qui est renseigné ?

En plus, dans tes tests, actuellement tu es en phase "register" ou en phase "connexion" ??
Car on n'a toujours pas vu le code de ta connexion... et je suppose que c'est là que tu as oublié de renseigner la variable de session....
Messages postés
16033
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 juin 2021
867
ne fais-tu jamais de SELECT dans la table membres?
Messages postés
73
Date d'inscription
dimanche 28 février 2021
Statut
Membre
Dernière intervention
6 mai 2021

oui, l'avatar est ok en bdd.
La connexion à la base de données se fait via le config.php sur chaque page...
là ou ça coince c'est sur la page membre pour afficher l'avatar. Dans les scripts présentés ci-dessus, je dirai que je suis en phase post inscription.

"script de connexion ? (car c'est là .. qu'il faut "remplir" la variable de session.. ) "
"Car on n'a toujours pas vu le code de ta connexion... et je suppose que c'est là que tu as oublié de renseigner la variable de session.... "

Je ne vois pas comment réaliser cela. Je pensais que avec le config.php (connexion à la base) plus les sessions start, cela emmenait toutes les infos sur les pages suivantes. Je suis preneur pour un début de piste niveau code, car j'ai encore 15 autres variables à mettre en session qui sont des données par défaut en table et qu'il me faudra afficher !

Et désolé si je vous parais obtus mais je bloque vraiment sur ce schéma de fonctionnement.

faudrait-il que je rajoute sur la page membre un truc de ce genre?

$id = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL;
// INIT VARIABLE
$pdostat = $bdd->prepare("SELECT id, pseudo FROM membres WHERE avatar = :avatar");
$pdostat->bindvalue(':avatar',$_SESSION['avatar'],PDO::PARAM_STR);
$pdostat->execute();
$resultat = $pdostat->fetch();    
  if ($resultat == 0)
    { 
// MISE EN SESSION
$_SESSION['avatar'] = $resultat['avatar'];



Messages postés
32967
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 juin 2021
3 559
Je ne vois pas comment réaliser cela. Je pensais que avec le config.php (connexion à la base) plus les sessions start, cela emmenait toutes les infos sur les pages suivantes

Ne confond pas la connexion à la bdd ( qui permet à tes scripts php d'aller manipuler la bdd )
et la connexion ( l'authentification ) de tes utilisateurs à ton site .


faudrait-il que je rajoute sur la page membre un truc de ce genre?

Oui !
Il faut, en effet, que tu ailles chercher les infos dans la bdd.
Mais ta requête est fausse !

Essaye un truc du genre
<?php
//démarrage session 
session_start();

//Afficahge des erreurs PHP
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// connexion a la bdd
require_once 'config.php';

//récupération PROPRE des variables AVANT de les utiliser !
$id = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL;

//requête pour récupérer les infos de l'utilisateur
try{ 
  $sql = "SELECT id, pseudo, avatar FROM membres WHERE id = :id"
  $pdostat = $bdd->prepare($sql);
  $pdostat->bindvalue(':id',$id ,PDO::PARAM_STR);
  $pdostat->execute();
  $resultat = $pdostat->fetch();    
}catch(Exception $e){
  //en cas d'erreur dans la requête
  echo "Erreur : " . $e->getMessage();
}

if (!empty($resultat )) { 
  // MISE EN SESSION
  $avatar = $resultat['avatar'];
  $pseudo = $resultat['pseudo'];
}else{
 echo " Erreur : L'utilisateur n'existe pas !";
}  
  
  ?>
 <!Doctype html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>page membre</title>
    <style type="text/css">
    
    </style>
  </head>
  <body>
  bla bla bla
  <table>
    <tr>
      <td>
        <b><?php echo $pseudo;?></b>
        <br><br>
        <?php echo '<img src="'.$avatar.'">'; ?>
      </td>
    </tr>
  </table>
  </body>
</html>
  
Messages postés
16033
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 juin 2021
867 >
Messages postés
32967
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 juin 2021

je me demande tout de même comment id est arrivé dans les variables de sessions, mais ni le pseudo ni l'avatar...
Messages postés
73
Date d'inscription
dimanche 28 février 2021
Statut
Membre
Dernière intervention
6 mai 2021
>
Messages postés
16033
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 juin 2021

l'id et le pseudo sont les deux seules variables passées convenablement en session lors de l'inscription.
Messages postés
16033
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 juin 2021
867 >
Messages postés
73
Date d'inscription
dimanche 28 février 2021
Statut
Membre
Dernière intervention
6 mai 2021

je me demande si il n'y a pas une confusion entre l'inscription et la connexion.
Messages postés
73
Date d'inscription
dimanche 28 février 2021
Statut
Membre
Dernière intervention
6 mai 2021

1000 mercis, Jordane c'est beaucoup mieux...

quelques questions

1) Pourquoi on ne fait pas un echo avec "$_SESSION" dans la partie html sachant que pas mal de variables vont évoluer?

2) est-ce possible d'isoler cette partie du script et la mettre à part pour l'appeler avec un include ?

3) ca sera donc la meme démarche pour CHAQUE valeur en table que je souhaiterais afficher?
Messages postés
32967
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 juin 2021
3 559
1 _ Tu ne stockes en session que ce que tu veux passer d'une page à une autre.
Mais pour les avoir en session, il faut les récupérer déjà dans la bdd...

2 - Oui

3 - Si tu es sur la même page... toutes les données sont déjà dans la variable $resultat ....


Je t'invite fortement à apprendre à coder en php ... ce qu'est un ARRAY ... un ARRAY ASSOCIATIF ... à apprendre à les manipuler ... Et aussi.. à faire des requêtes SQL .. à utiliser le résultat de celles ci ...
Sans ce minimum de connaissances... tu n'arriveras jamais à coder tes pages sans qu'on fasse le boulot à ta place.. ce qui n'est pas la vocation de ce forum...
Messages postés
73
Date d'inscription
dimanche 28 février 2021
Statut
Membre
Dernière intervention
6 mai 2021

Ok, merci pour tous ces conseils.