Connecter ses membres en PHP

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour, j'ai enfin terminer ma page d'inscription, et voila donc mon module de.. connexion !

DONC! j'ai fait le tout dans mon header.php qui est inclus dans chacune de mes pages!

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<?php
session_start();
if (isset($_POST['pseudo'], $_POST['password'])){


// Hachage du mot de passe
$pass_hache = sha1($_POST['password']);

// Vérification des identifiants
$req = $manager->db->prepare('SELECT id FROM membres WHERE pseudo = :pseudo AND pass = :pass');
$req->execute(array(
    'pseudo' => $_POST['pseudo'],
    'pass' => $pass_hache));

$resultat = $req->fetch();

if (!$resultat)
{
    $erreur = 'Mauvais identifiant ou mauvais mot de passe !';
}
else
{
    session_start();
    $_SESSION['id'] = $resultat['id'];
    $_SESSION['pseudo'] = $pseudo;
    $message_cool = 'Vous êtes connecté !';
}
}
?>
<div class="bg_header">
      <div class="container">
        <div class="header">
              <div class="row">
      <div class="logo"> <h1>Ne<b>wol</b></h1> </div>
      <ul class="topnav">
                <li><a href="" class="active">Accueil</a></li>
                <li><a href="">Tutoriels</a></li>
                <li><a href="">Forum</a></li>
                <li><a href="">Contact</a></li>
                <li><?php if (isset($_SESSION['pseudo'])) { echo $_SESSION['pseudo'];} else {?> <button class="btn btn-primary" data-toggle="modal" data-target="#myModal">
    Log in
</button><?php } ?>

<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">

      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
        <h4 class="modal-title" id="myModalLabel">Log in</h4>
      </div> <!-- /.modal-header -->

      <div class="modal-body">
        <form role="form" method="post" action="<?php echo $url; ?>">
          <div class="form-group">
            <div class="input-group">
              <input type="text" class="form-control" id="pseudo" placeholder="Votre pseudo">
              <label for="uLogin" class="input-group-addon glyphicon glyphicon-user"></label>
            </div>
          </div> <!-- /.form-group -->

          <div class="form-group">
            <div class="input-group">
              <input type="password" class="form-control" id="password" placeholder="Votre mot de passe">
              <label for="uPassword" class="input-group-addon glyphicon glyphicon-lock"></label>
            </div> <!-- /.input-group -->
          </div> <!-- /.form-group -->

           <button class="form-control btn btn-primary" type="submit" action="<?php echo $url; ?>">Ok</button>
        </form>

      </div> <!-- /.modal-body -->

      <div class="modal-footer">
        <?php if (isset($erreur)) { echo $erreur;} ?>


        <div class="progress">
          <div class="progress-bar progress-bar-primary" role="progressbar" aria-valuenow="1" aria-valuemin="1" aria-valuemax="100" style="width: 0%;">
            <span class="sr-only">progress</span>
          </div>
        </div>
      </div> <!-- /.modal-footer -->

    </div><!-- /.modal-content -->
  </div><!-- /.modal-dialog -->
</div><!-- /.modal --></li>
            </ul>
      </div>

      <div class="row">
        <div class="slider">
        <p> <?php if (isset($erreur)) { echo $erreur;} else { ?> “Ceci est une putain de citation, <br />Mais je dois la trouver d'abord.”</p> <?php } ?>
        </div> </div>


      </div>
       </div>
        </div>

Seulement voila, quand je clique sur "ok" je retourne sur mon index sans la session et sans le message d'erreur! :c ! Merci d'avance!

Édité par Coyote

+0 -0

Cette réponse a aidé l'auteur du sujet

Regarde la ligne 23 : session_start();.

Tout le code est présent ? Car $pseudo ligne 25, semble ne pas être déclaré. Même si la PDO est protégé, tu devrais mettre une limite de la taille du pseudo.

Par exemple :

1
$pseudo = substr(htmlspecialchars(ucfirst($_POST['pseudo'])),0,60);
+0 -1
Auteur du sujet

Regarde la ligne 23 : session_start();.

Tout le code est présent ? Car $pseudo ligne 25, semble ne pas être déclaré. Même si la PDO est protégé, tu devrais mettre une limite de la taille du pseudo.

Par exemple :

1
$pseudo = substr(htmlspecialchars(ucfirst($_POST['pseudo'])),0,60);

A-312

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php 
if (isset($_POST['pseudo'], $_POST['password'])){


$pseudo = $_POST['pseudo'];
$pseudo = substr(htmlspecialchars(ucfirst($_POST['pseudo'])),0,60);
// Hachage du mot de passe
$pass_hache = sha1($_POST['password']);

// Vérification des identifiants
$req = $manager->db->prepare('SELECT id FROM membres WHERE pseudo = :pseudo AND pass = :pass');
$req->execute(array(
    'pseudo' => $pseudo,
    'pass' => $pass_hache));

$resultat = $req->fetch();

if (!$resultat)
{
    $erreur = 'Mauvais identifiant ou mauvais mot de passe !';
}
else
{
    session_start();
    $_SESSION['id'] = $resultat['id'];
    $_SESSION['pseudo'] = $pseudo;
    $message_cool = 'Vous êtes connecté !';
}
}
?>

Toujours rien

+0 -0
Auteur du sujet

Supprime le session_start() en trop comme mon message précédent l'indique. Puis si ça ne fonctionne pas essaye un var_dump($_SESSION['pseudo']).

A-312

Eu, je comprend pas pour la fonction var_dump, je le fout comment?

+0 -0

Cette réponse a aidé l'auteur du sujet

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
session_start();
if (isset($_POST['pseudo'], $_POST['password'])):
    $pseudo = substr(htmlspecialchars($_POST['pseudo']),0,60);
    // Hachage du mot de passe
    $pass_hache = sha1($_POST['password']);

    // Vérification des identifiants
    $req = $manager->db->prepare('SELECT id FROM membres WHERE pseudo = :pseudo AND pass = :pass');
    $req->execute(array(
        'pseudo' => $pseudo,
        'pass' => $pass_hache
    ));

    $resultat = $req->fetch();

    if (!$resultat) {
        $erreur = 'Mauvais identifiant ou mauvais mot de passe !';
    } else {
        $_SESSION['id']     = $resultat['id'];
        $_SESSION['pseudo'] = $pseudo;
        $message_cool       = 'Vous êtes connecté !';
    }
endif;
?>

<?=(isset($erreur)) ? "Erreur : $erreur" : "Pas d'erreur, $message_cool"; ?>
+1 -0
Auteur du sujet
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
session_start();
if (isset($_POST['pseudo'], $_POST['password'])):
    $pseudo = substr(htmlspecialchars($_POST['pseudo']),0,60);
    // Hachage du mot de passe
    $pass_hache = sha1($_POST['password']);

    // Vérification des identifiants
    $req = $manager->db->prepare('SELECT id FROM membres WHERE pseudo = :pseudo AND pass = :pass');
    $req->execute(array(
        'pseudo' => $pseudo,
        'pass' => $pass_hache
    ));

    $resultat = $req->fetch();

    if (!$resultat) {
        $erreur = 'Mauvais identifiant ou mauvais mot de passe !';
    } else {
        $_SESSION['id']     = $resultat['id'];
        $_SESSION['pseudo'] = $pseudo;
        $message_cool       = 'Vous êtes connecté !';
    }
endif;
?>

<?=(isset($erreur)) ? "Erreur : $erreur" : "Pas d'erreur, $message_cool"; ?>

A-312

Aucun changement, rien ne se passe, tu as skype pour un partage d'écran? :S

+0 -5
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte