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. ca ca veut dire que tu as des lignes de codes ou un espace ou une ligne vide avant le session_start();
    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. un ami m'avait dit que OVH louvrer automatiquement mais c faux
        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. 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. 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. 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. 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. Bonjour,
                    il se déconnecte ? c'est à dire ?
                    quand tu essayes de te connecter il se passe quoi ?