Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Bug sur connexion


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Bug sur connexion
    Bonjour à tous,

    je poste ici car je rencontre un bug lors de la connexion du mode patient de mon application elle est aléatoire aucune erreur détecter.
    Aucune erreur en revanche pour le mode docteur.
    il me faut me connecter une premiere fois e mode docteur puis me deconnecter pour que le mode patient fonctionne.

    Merci d'avance pour votre aide.

    je vous laisse mon code pour mieux comprendre.

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    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
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
     
    <?php
    session_start();
    $clepat = "######";
    ?>
    <!DOCTYPE html>
    <html lang="fr">
        <head>
            <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">        
            <link type="text/css" rel="stylesheet" href="style.css">
            <link href="https://fonts.googleapis.com/css?family=Montserrat&display=swap" rel="stylesheet"> 
            <title>Patient</title>
            <meta charset="utf-8">
            <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
        </head>
        <body>
            <section class="container" style="padding-top:100px">
                <form method="post" action="index.php">
                    <div class="form-group row">
                        <div class="col-sm-4"></div>
                        <div class="col-sm-4">
                                <input class="form-control" type="text" id="id_user" name="nom" placeholder="Nom" required="yes" style="text-align:center">
                            <div style="padding-top : 5px">
                                <input class="form-control" type="password" id="mdp" name="mdp" placeholder="Mot de passe" required="yes" style="text-align:center" >
                            </div>
                            <div style="padding-top : 10px ">
                                <input type="submit"  class=" btn btn-outline-success form-control" value="valider" onclick="valider" name="valider">
                            </div>
                            <?php 
                            echo '<H2 style=" margin-top:15px ; text-align: center">&copy Obierti.com '.date("Y").'</H2>';
                            ?>
                        </div>
                        <div class="col-sm-4"></div>
                    </div> <!-- fin de row -->
                </form>
            </section>
        </body>
        <footer>
        </footer>
        <script type="text/javascript" src="dist/jquery.js"></script>
        <script type="text/javascript" src="dist/bootstrap-4.3.1-dist/js/bootstrap.js"></script>
     
        <?php
     
        if(isset($_POST['valider'])){
     
            include('fonc/connect.php');
     
            //récupération des variable et traitement
            $nom = $_POST['nom'];
            $nom = trim($nom);
            $nom = mysqli_real_escape_string($conn, $nom);
     
            $mdp = $_POST['mdp'];
            $mdp = trim($mdp);
            $mdp = mysqli_real_escape_string($conn, $mdp);
     
     
        //requete medecin
     
            $sql = "SELECT `id_medecin`, `medecin_nom`, `medecin_prenom`, `medecin_mdp`, `cabinet_id_cabinet` 
                    FROM medecin
                    WHERE medecin_nom = '$nom' AND medecin_mdp = MD5('$mdp')";
     
            $requete = mysqli_query($conn, $sql); 
     
        //requete patient
     
            $sqlpat = "SELECT id_patient, 
                    convert(aes_decrypt(patient_nom , '$clepat') using utf8) as nompat,
                    convert(aes_decrypt(patient_prenom,'$clepat')using utf8)as prenom,
                    date_format(patient_date_naiss,'%d/%m/%Y') as dte,
                    convert(aes_decrypt(patient_prenote,'$clepat')using utf8)as note
                    from patient
                    where convert(aes_decrypt(patient_nom , '$clepat') using utf8) = '$nom' 
                    and patient_mdp = md5('$mdp')";
     
     
            $requetepat = mysqli_query($conn2, $sqlpat);
     
        // requete secretaire
     
            $sqlsecretaire = "SELECT id_secretaire, secretaire_nom, secretaire_prenom, secretaire_mdp, cabinet_id_cabinet 
                            from secretaire 
                            where secretaire_nom = '$nom' and secretaire_mdp = md5('$mdp')";
     
            $requetesecretaire = mysqli_query($conn3,$sqlsecretaire);
     
            $header = 0;
            $headerstring = 'index';
     
            if (mysqli_num_rows($requete) == 1)
            {
                $donne = mysqli_fetch_assoc($requete);
     
                echo $sqlpat;
     
                $_SESSION['id_medecin'] = $donne['id_medecin'];
                $_SESSION['nom'] = $donne['medecin_nom'];
                $_SESSION['prenom'] = $donne['medecin_prenom'];
                $_SESSION['cabinet'] = $donne['cabinet_id_cabinet'];
     
                $header = 1;
                $headerstring = 'accueil';
     
            }
            elseif (mysqli_num_rows($requetepat) == 1 )
            {
                $donnepat = mysqli_fetch_assoc($requetepat);
     
                $_SESSION['id_pat'] = $donnepat['id_patient'];
                $_SESSION['nompat'] = $donnepat['nompat'];
                $_SESSION['prepat'] = $donnepat['prenom'];
                $_SESSION['prenote'] = $donnepat['note'];
     
                $header = 1;
                $headerstring = 'accueilpat';
     
            }
            elseif (mysqli_num_rows($requetesecretaire) == 1){
                $donnesecretaire = mysqli_fetch_assoc($requetesecretaire);
     
                $_SESSION['idsecraitaire'] = $donnesecretaire['id_secretaire'];
                $_SESSION['nom'] = $donnesecretaire['secretaire_nom'];
                $_SESSION['prenom'] = $donnesecretaire['secretaire_prenom'];
                $_SESSION['id_cab'] = $donnesecretaire['cabinet_id_cabinet'];
     
                $header = 1;
                $headerstring = 'accueilsec';
     
            }
            else
            {
                echo '<h4 class="text-center text-danger">Identifiant ou mot de passe incorrect !</h4>';
            }
            if ($header > 0){
                header('location:'.$headerstring.'.php');
     
            }
     
        }
     
        ?>
    </html>

  2. #2
    Expert éminent sénior
    salut,

    quand tu dis bug de connexion, ça veut dire quoi ? La connexion à la base de données échoue ? La requête SQL du patient échoue ?
    Tu ne devrais plus utiliser md5(), cet algo de hash a été enfoncé à de maintes reprises, il est très fortement déconseillé de l'utiliser. D'ailleurs il est question qu'il soit supprimé pour des raisons de sécurité

  3. #3
    Membre chevronné
    Salut,

    Comme l'a dit @rawsrc, tu ne devrais plus utiliser md5() mais plutôt voir pour valider tes passwords côté PHP en utilisant password_hash()

    Effectivement, difficile de répondre avec si peu d'informations
    As-tu bien vérifier que session_start() était présent dans TOUS les chargements de page ?
    As-tu essayé de tester l'afficher des données envoyées par le formulaire et les comparer à celles trouvées en DB pour savoir à quel moment le problème de connexion se passe ?
    As-tu vérifié que le navigateur ne mettrait pas en cache une redirection ? Ce qui ferait en sorte d'être automatiquement redirigé vers le formulaire de connexion même après une connexion réussie ?

  4. #4
    Nouveau membre du Club
    Bonjour et merci de votre aide.

    Pour vous apporter plus de précision, le bug concerne le chargement du mode patient. cette erreur n'est pas une erreur de connexion à la base de donnée. et elle n est pas du au cache de mon navigateur. si il s'agissait d'une erreur de requete j'aurais eu un message d'erreur (identifiant ou mot de passe incorrect.). Lorsque je tente de me connecter en patient le bug est que rien ne se passe.

    Cordialement.

  5. #5
    Nouveau membre du Club
    Bonjour à tous,
    Je viens de modifier et j'ai créer un page de connexion pour chaque secteur et tout fonctionne bien.

  6. #6
    Nouveau membre du Club
    Bug de redirection
    Bonjour à tous,
    Je me permet de reouvrir ce post car je rencontre encore des problème de connexion malgré qu'il n'y ai qu' un seul header dans la page.
    Le bug est qu' apres avoir renseigné les identifiant de connexions en validant il n'y a pas de message d'erreur mais une redirection sur la page index du site.

    Voici le code.

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    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
     
    <?php
    session_start();
    ob_start();
    $clepat = "xxxxxxxxxx";
    ?>
    <!DOCTYPE html>
    <html lang="fr">
        <head>
            <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">        
            <link type="text/css" rel="stylesheet" href="style.css">
            <link href="https://fonts.googleapis.com/css?family=Montserrat&display=swap" rel="stylesheet"> 
            <title>Patient</title>
            <meta charset="utf-8">
            <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
        </head>
        <body>
            <section class="container" style="padding-top:100px">
                <form method="post" action="connpat.php">
                    <div class="form-group row">
                        <div class="col-sm-4"></div>
                        <div class="col-sm-4">
                                <input class="form-control" type="text" id="id_user" name="nom" placeholder="Nom" required="yes" style="text-align:center">
                            <div style="padding-top : 5px">
                                <input class="form-control" type="password" id="mdp" name="mdp" placeholder="Mot de passe" required="yes" style="text-align:center" >
                            </div>
                            <div style="padding-top : 10px ">
                                <input type="submit"  class=" btn btn-outline-success form-control" value="valider" onclick="valider" name="valider">
                            </div>
                            <?php 
                            echo '<H2 style=" margin-top:15px ; text-align: center">&copy Obierti.com '.date("Y").'</H2>';
                            ?>
                        </div>
                        <div class="col-sm-4"></div>
                    </div> <!-- fin de row -->
                </form>
            </section>
        </body>
        <footer>
        </footer>
        <script type="text/javascript" src="dist/jquery.js"></script>
        <script type="text/javascript" src="dist/bootstrap-4.3.1-dist/js/bootstrap.js"></script>
     
        <?php
     
        if(isset($_POST['valider'])){
     
            include('fonc/connect.php');
     
            //récupération des variable et traitement
            $nom = $_POST['nom'];
            $nom = trim($nom);
            $nom = mysqli_real_escape_string($conn, $nom);
     
            $mdp = $_POST['mdp'];
            $mdp = trim($mdp);
            $mdp = mysqli_real_escape_string($conn, $mdp);
     
     
     
            //requete patient
     
            $sqlpat = "SELECT id_patient, 
                    convert(aes_decrypt(patient_nom , '$clepat') using utf8) as nompat,
                    convert(aes_decrypt(patient_prenom,'$clepat')using utf8)as prenom,
                    date_format(patient_date_naiss,'%d/%m/%Y') as dte,
                    convert(aes_decrypt(patient_prenote,'$clepat')using utf8)as note
                    from patient
                    where convert(aes_decrypt(patient_nom , '$clepat') using utf8) = '$nom' 
                    and patient_mdp = sha('$mdp')";
     
     
            $requetepat = mysqli_query($conn, $sqlpat);
     
     
            if (mysqli_num_rows($requetepat) == 1 )
            {
                $donnepat = mysqli_fetch_assoc($requetepat);
     
                $_SESSION['id_pat'] = $donnepat['id_patient'];
                $_SESSION['nompat'] = $donnepat['nompat'];
                $_SESSION['prepat'] = $donnepat['prenom'];
                $_SESSION['prenote'] = $donnepat['note'];
     
                header('location:accueilpat.php');
                ob_end_flush();
            }
     
            else
            {
                echo '<h4 class="text-center text-danger">Identifiant ou mot de passe incorrect !</h4>';
            }    
        }
     
        ?>
    </html>


    Merci de votre aide.

  7. #7
    Nouveau membre du Club
    Bonjour il s'agit d'une erreur de coper coller.
    Merci pour votre aide.

###raw>template_hook.ano_emploi###