Affichage image depuis bdd impossible

Résolu/Fermé
nestor94 Messages postés 74 Date d'inscription dimanche 28 février 2021 Statut Membre Dernière intervention 14 octobre 2021 - 8 mars 2021 à 09:39
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 - 10 mars 2021 à 23:11
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.
A voir également:

17 réponses

yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
8 mars 2021 à 12:14
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?
0
popozz Messages postés 218 Date d'inscription jeudi 5 mai 2016 Statut Membre Dernière intervention 22 mai 2021 176
Modifié le 8 mars 2021 à 14:05
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'] . '">'; ?>
0
nestor94 Messages postés 74 Date d'inscription dimanche 28 février 2021 Statut Membre Dernière intervention 14 octobre 2021
8 mars 2021 à 15:04
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 ?
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
8 mars 2021 à 15:41
partage le code HTML de la page, pas une image.
0
popozz Messages postés 218 Date d'inscription jeudi 5 mai 2016 Statut Membre Dernière intervention 22 mai 2021 176
8 mars 2021 à 16:16
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 ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nestor94 Messages postés 74 Date d'inscription dimanche 28 février 2021 Statut Membre Dernière intervention 14 octobre 2021
Modifié le 8 mars 2021 à 18:55
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
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
8 mars 2021 à 19:37
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?
0
nestor94 Messages postés 74 Date d'inscription dimanche 28 février 2021 Statut Membre Dernière intervention 14 octobre 2021
Modifié le 9 mars 2021 à 10:26
<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...
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
9 mars 2021 à 15:10
en ligne 93 de ton code HTML,
./avatars
peut-être remplacé par
avatars
.
0
nestor94 Messages postés 74 Date d'inscription dimanche 28 février 2021 Statut Membre Dernière intervention 14 octobre 2021
9 mars 2021 à 10:31
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!.....
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
9 mars 2021 à 15:02
où as-tu une instruction
$_SESSION['avatar'] = 
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
9 mars 2021 à 15:07
tu avais pourtant écrit deux fois que le contenu de $avatar était correct...
0
popozz Messages postés 218 Date d'inscription jeudi 5 mai 2016 Statut Membre Dernière intervention 22 mai 2021 176
9 mars 2021 à 15:18
La variable session est NULL.
0
nestor94 Messages postés 74 Date d'inscription dimanche 28 février 2021 Statut Membre Dernière intervention 14 octobre 2021
9 mars 2021 à 18:13
$avatar = ($_SESSION["avatar"]);



ligne 12 du scipt original (le 1er topic)

La variable session est NULL, oui pourquoi?.
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
9 mars 2021 à 18:33
as-tu une instruction qui commence ainsi:
$_SESSION['avatar'] = 
0
nestor94 Messages postés 74 Date d'inscription dimanche 28 février 2021 Statut Membre Dernière intervention 14 octobre 2021
9 mars 2021 à 20:55
ben oui.
$_SESSION['avatar'] = "$avatar";
0
popozz Messages postés 218 Date d'inscription jeudi 5 mai 2016 Statut Membre Dernière intervention 22 mai 2021 176
9 mars 2021 à 21:12
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.
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
9 mars 2021 à 21:32
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.
0
popozz Messages postés 218 Date d'inscription jeudi 5 mai 2016 Statut Membre Dernière intervention 22 mai 2021 176
9 mars 2021 à 21:59
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.
0
nestor94 Messages postés 74 Date d'inscription dimanche 28 février 2021 Statut Membre Dernière intervention 14 octobre 2021
10 mars 2021 à 01:18
"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.
0
popozz Messages postés 218 Date d'inscription jeudi 5 mai 2016 Statut Membre Dernière intervention 22 mai 2021 176
10 mars 2021 à 01:49
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.
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
10 mars 2021 à 10:24
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 )
0
nestor94 Messages postés 74 Date d'inscription dimanche 28 février 2021 Statut Membre Dernière intervention 14 octobre 2021
10 mars 2021 à 11:00
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;
?>







0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
10 mars 2021 à 11:25
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.. )
0
nestor94 Messages postés 74 Date d'inscription dimanche 28 février 2021 Statut Membre Dernière intervention 14 octobre 2021
10 mars 2021 à 12:08
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
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
10 mars 2021 à 12:12
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....
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
10 mars 2021 à 13:20
ne fais-tu jamais de SELECT dans la table membres?
0
nestor94 Messages postés 74 Date d'inscription dimanche 28 février 2021 Statut Membre Dernière intervention 14 octobre 2021
Modifié le 10 mars 2021 à 14:16
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'];



0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
10 mars 2021 à 14:53
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>
  
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471 > jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024
10 mars 2021 à 18:29
je me demande tout de même comment id est arrivé dans les variables de sessions, mais ni le pseudo ni l'avatar...
0
nestor94 Messages postés 74 Date d'inscription dimanche 28 février 2021 Statut Membre Dernière intervention 14 octobre 2021 > yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024
10 mars 2021 à 18:50
l'id et le pseudo sont les deux seules variables passées convenablement en session lors de l'inscription.
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471 > nestor94 Messages postés 74 Date d'inscription dimanche 28 février 2021 Statut Membre Dernière intervention 14 octobre 2021
10 mars 2021 à 23:11
je me demande si il n'y a pas une confusion entre l'inscription et la connexion.
0
nestor94 Messages postés 74 Date d'inscription dimanche 28 février 2021 Statut Membre Dernière intervention 14 octobre 2021
Modifié le 10 mars 2021 à 17:45
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?
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
10 mars 2021 à 17:49
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...
0
nestor94 Messages postés 74 Date d'inscription dimanche 28 février 2021 Statut Membre Dernière intervention 14 octobre 2021
10 mars 2021 à 18:29
Ok, merci pour tous ces conseils.
0