Espace membre

Résolu
Bonjour,

jai un probleme dans mon code de mon site il se déconnecté a chaque fois je suis chez OVH mutualiser et voila mon code

<div id="membre">

<?php
// on teste si le visiteur a soumis le formulaire de connexion
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {

$base = new PDO('mysql:host=mysql5.perso;dbname=filmlego, 'filmlego', 'k36hGR5D9F');
$res = $base->query("SELECT * FROM membre WHERE login='".$_POST['login']."'");
$data = $res->fetch();
if ($data['pass']!="" && $data['pass']==$_POST['pass']){
$_SESSION['login'] = $_POST['login'];
//header('Location: http://filmlego.com');
//exit();
}
else $erreur = "Identifiant ou mot de passe incorrect..";

}
else {
$erreur = 'Au moins un des champs est vide.';
}
}

if ($_SESSION['login']=="") {
?>
<p>Connexion à l'espace membre :<br />
<?php
if (isset($erreur)) echo '<span style="color:red" >'.$erreur.'</span><br />';
?>
</p>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
<p> Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>">
Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>">
<input type="submit" name="connexion" value="Connexion"></p>
</form>
<a href="inscription.php">Vous inscrire</a>
<?php }
else {
echo "Bienvenue ".htmlentities(trim($_SESSION['login'])) . "!<br />";
echo '<a href="deconnexion.php">Déconnexion</a>';
echo '<a href="moncompte.php">Mon Compte</a>';
}
?>

</div>

merci d'avance nico

18 réponses

  1. Bonjour,
    il se déconnecte ? c'est à dire ?
    quand tu essayes de te connecter il se passe quoi ?
    1. tient tu peux essayer voila le compte test mot de passe test
      tu te connecte sans prob puis va sur une autre page tu vera tu sera deconnecter
      1. hum je viens d'essayer et en faite je suis rediriger vers la page d'accueil ce qui me semble logique puisque :
        if ($data['pass']!="" && $data['pass']==$_POST['pass']){
        $_SESSION['login'] = $_POST['login'];
        //header('Location: http://filmlego.com');
        //exit();
        } 
        

        je sais pas si tes commentaires sont voulues ou pas..
        mais si le mot de passe est différent de vide et est égale au champ de ma base de données, alors je redirige vers la page d'accueil
        mais si tu as laisser les commentaires dans ton code actuel, prends pas en compte ce que je viens de te dire...
        1. ok je sais j'arrive a me connecter c pas le problème
          le problème c quand on est connecter et que le l'on va dans une page on se fait deconnecter et faut se reconnnecter
          1. normal,
            tu utilise des post !
            mais quand tu va sur une autre page, les post sont pas connu !
            solution ?
            utiliser les sessions ! qui permettant de garder des valeurs de pages en pages
            1. euh c'est un poil plus complexe que sa...
              $_SESSION['login'] = $_POST['login'];
              $_SESSION['pass'] = $_POST['pass'];
              

              et à chaque début de page(ce code est à mettre au tout début du script) :
              session_start();
              

              Je te laisse lire ce topic si tu n'a jamais vu les sessions :
              https://www.commentcamarche.net/faq/20499-fusion-de-sessions-php
              1. un ami m'avait dit que OVH louvrer automatiquement mais c faux
                1. mais il me dit sa
                  Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /homez.338/filmlego/www/internet5.php:2) in /homez.338/filmlego/www/internet5.php on line 4

                  maintenant
                  1. ca ca veut dire que tu as des lignes de codes ou un espace ou une ligne vide avant le session_start();