Session détruite lors du changement de page

Fermé
Siamens_duj - 13 mai 2016 à 18:39
 Siamens_duj - 13 mai 2016 à 20:02
Bonjour,

J'ai fais un site WordPress dans lequel les utilisateurs peuvent se connecter, se déconnecter et modifier leur profil.
Pour se connecter, mon code php fonctionne correctement. Il me dit que je suis bien connecté.
Cependant, lorsque je change de page et que je vais par exemple sur ma page "Profil" à l'aide d'un bouton qui fait un lien sur une page nommé "Profil" qui contient du code php, ma session est détruite (array(0) { } ).
Pourquoi cela se produit ? et comment résoudre le problème ?


Voici mon code de connexion :

<?php
$bdd = new PDO('mysql:host=localhost;dbname=mbb','root',''); //connexion à la bdd

if(isset($_POST['formconnect']))
{
$pseudoconnect = htmlspecialchars($_POST['pseudoconnect']);
$mdpconnect = sha1($_POST['mdpconnect']);
if(!empty($pseudoconnect) AND !empty($mdpconnect))
{
$requser = $bdd->prepare("SELECT * FROM membres WHERE pseudo = ? AND motdepasse=?");
$requser->execute(array($pseudoconnect, $mdpconnect));
$userexist = $requser->rowCount();
if($userexist == 1)
{
$userinfo = $requser->fetch();
$_SESSION['id'] = $userinfo['id'];
$_SESSION['pseudo'] = $userinfo['pseudo'];
$_SESSION['mail'] = $userinfo['mail'];

echo '<a Href="http://localhost/">Cliquez sur le lien</a>' ; 'echo car je ne peux pas mettre de header car il y a conflit etant donnée que wordpress met deja le header à jour

}
else
{
$erreur = "Mauvais mail ou mot de passe!";
}
}
else
{
$erreur = "Tous les champs doivent être complétés !";
}
}

?>

<html>
<head>
<title>Connexion</title>
<meta charset="utf-8">
</head>

<body>
<div align="center">
<h2></h2>
<br /><br />
<form method="POST" action="">
<input type="text" name="pseudoconnect" placeholder="Pseudo"/>

<input type="password" name="mdpconnect" placeholder="Mot de passe"/>

<input type="submit" name="formconnect" value="Se connecter" style="padding : 5px">

</form>
<?php
if(isset($erreur))
{
echo '<font color="red">'.$erreur.'</font>';
} var_dump($_SESSION);
?>
</div>

</body>
</html>


Merci pour votre aide.
A voir également:

1 réponse

Lars68 Messages postés 2 Date d'inscription vendredi 6 juin 2014 Statut Membre Dernière intervention 13 mai 2016
13 mai 2016 à 19:03
l'appel aux variables de session nécessite éxecution de la fonction session_start() à chaque fois.
Est-ce que tu appelles session_start() dans ta nouvelle page ?
0
Siamens_duj
13 mai 2016 à 20:02
Merci pour votre réponse rapide.

Oui et il me met

Parse error: syntax error, unexpected '$bdd' (T_VARIABLE) in C:\wamp\www\wp-content\plugins\allow-php-in-posts-and-pages\allowphp.php(373) : eval()'d code on line 2
0