Bonjour tout le monde,

Voila je rencontre un petit problème avec mon code.

Je cherche à afficher les données sotckées dans la base de données d'un utilisateur connecté sur mon site web.
Voici le code de la page

<?php
if (session_id() == "")
{
   session_start();
}
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['form_name']) && $_POST['form_name'] == 'logoutform')
{
   if (session_id() == "")
   {
      session_start();
   }
   unset($_SESSION['extra1']);
   unset($_SESSION['extra2']);
   header('Location: ./index.php');
   exit;
}
if (session_id() == "")
{
   session_start();
}
?>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['form_name']) && $_POST['form_name'] == 'logoutform')
{
   if (session_id() == "")
   {
      session_start();
   }
   unset($_SESSION['username']);
   unset($_SESSION['fullname']);
   header('Location: ./index.php');
   exit;
}
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Page Sans Titre</title>
<meta name="generator" content="WYSIWYG Web Builder 12 - http://www.wysiwygwebbuilder.com">
<link href="test.css" rel="stylesheet">
<link href="welcome.css" rel="stylesheet">
</head>
<body>
<div id="space"><br></div>
<div id="container">
<div id="wb_Logout1" style="position:absolute;left:564px;top:83px;width:94px;height:23px;z-index:0;">
<form name="logoutform" method="post" action="<?php echo basename(__FILE__); ?>" id="logoutform">
<input type="hidden" name="form_name" value="logoutform">
<input type="submit" name="logout" value="Logout" id="Logout1">
</form>
</div>
<!-- aaa -->
<div id="Html3" style="position:absolute;left:93px;top:312px;width:333px;height:35px;z-index:1">
<?php
//
$mysql_server = 'localhost';
$mysql_username = 'root';
$mysql_password = '';
$mysql_database = 'usine';
$mysql_table = 'usine1';
$db = mysqli_connect($mysql_server, $mysql_username, $mysql_password);
//
var_dump($_SESSION)
?></div>
</div>
</body>
</html>

Voici mon code pour afficher les données utilisateur stockées en ''extra1'' et ''extra2''

<?php
//
$mysql_server = 'localhost';
$mysql_username = 'root';
$mysql_password = '';
$mysql_database = 'usine';
$mysql_table = 'usine1';
$db = mysqli_connect($mysql_server, $mysql_username, $mysql_password);
//
if (isset($_SESSION['username']))
{
   echo $_SESSION['extra1'];
}
?>

Mon problème est que ce code ne m'affiche aucune donnée

Quand je fais

var_dump($_SESSION)

J'obtiens

array(6) { ["username"]=> string(4) "open" ["fullname"]=> string(4) "iset" ["extra1"]=> NULL ["extra2"]=> NULL ["expires_by"]=> int(1521367525) ["expires_timeout"]=> int(600) }

Alors que dans ma base de données ''extra1'' et ''extra2'' ne sont pas ''NULL''

Je ne sais plus où se trouve mon problème...
J'espère vraiment que vous pourrez m'aider à résoudre ce problème.
Merci d'avance....

5 réponses


Bonjour,
Pourquoi retrouve-t-on du code en double voir en triple au début ? Il serait bien de tout regrouper car il y a plusieurs fois la même conditions.

A aucun moment je vois une requête sur la BDD pour récupérer les valeurs que tu souhaites.

diasvore
Auteur

Mon code est généré automatiquement par le logiciel de conception, donc si je veux ajouter des variables, je dois le faire en haut du code généré.
C'est pour cela que les variables "extra1" et "extra2" sont définies sur la page avait toutes les autres.
Voila ma requête pour récupérer les valeurs

<?php
//
$mysql_server = 'localhost';
$mysql_username = 'root';
$mysql_password = '';
$mysql_database = 'usine';
$mysql_table = 'usine1';
$db = mysqli_connect($mysql_server, $mysql_username, $mysql_password);
//
if (isset($_SESSION['username']))
{
   echo $_SESSION['extra1'];
}
?>

Puisque vous répondez à la moitié de la question, on va faire simple.
Quand faites vous un :

$_SESSION['extra1'] = "ma données";
diasvore
Auteur

Quand je fais

$_SESSION['extra1'] = "ma données";

Ca me renvoie une erreur

Notice: Array to string conversion in C:\xampp\htdocs\test\welcome.php on line 67
Arrayarray(6) { ["username"]=> string(4) "open" ["fullname"]=> string(4) "iset" ["extra1"]=> array(1) { [0]=> string(7) "my_data" } ["expires_by"]=> int(1521376026) ["expires_timeout"]=> int(600) }

Salut,

je ne comprends pratiquement rien,
mais le message d'erreur dit que $_SESSION['extra1'] est un tableau.
Et on ne peut pas echo un tableau.

Essaies
echo $_SESSION['extra1'][0];

ou même (si pour du debug) :

echo '<pre>';
print_r($_SESSION['extra1'];
echo '</pre>';