Comment créer un login pour sa page ?

Résolu/Fermé
kimi - Modifié le 20 mai 2021 à 13:20
kimi3888 Messages postés 6 Date d'inscription jeudi 20 mai 2021 Statut Membre Dernière intervention 20 mai 2021 - 20 mai 2021 à 16:21
Bonjour,
j'ai besoin d'aide, je suis entrain de créer une page web et j'aurais besoin de mettre un login pour y accéder.
Pour l'instant j'ai le codage du login mais j'ai besoin d'aide pour la base de donné, dans l'exemple que j'ai vu ils utilisaient une base de donné externe moi il m'en faut une que je puisse géré, car, quand la page web que je fait sera fini on ne sera que quelque personne a y avoir accès.
A voir également:

4 réponses

yg_be Messages postés 22719 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
20 mai 2021 à 13:26
bonjour,
as-tu choisi un langage de programmation?
peux-tu partager ton code?
merci de tenir compte de ceci: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
0
oui je les est fait en html, il est en plusieurs fichier le premier (login.php)=>

<html>
    <head>
       <meta charset="utf-8">
        <link rel="stylesheet" href="style1.css" media="screen" type="text/css" />
    </head>
    <body>
        <div id="container">
            <form action="verification.php" method="POST">
                <h1>Connexion</h1>
                
                <label><b>Nom d'utilisateur</b></label>
                <input type="text" placeholder="Entrer le nom d'utilisateur" name="username" required>

                <label><b>Mot de passe</b></label>
                <input type="password" placeholder="Entrer le mot de passe" name="password" required>

                <input type="submit" id='submit' value='LOGIN' >
                <?php
                if(isset($_GET['erreur'])){
                    $err = $_GET['erreur'];
                    if($err==1 || $err==2)
                        echo "<p style='color:red'>Utilisateur ou mot de passe incorrect</p>";
                }
                ?>
            </form>
        </div>
    </body>
</html>


le deuxième (principale.php)=>

<html>
    <head>
        <meta charset="utf-8">
        <link rel="stylesheet" href="style1.css" media="screen" type="text/css" />
    </head>
    <body style='background:#fff;'>
        <div id="content">
            <?php
                session_start();
                if($_SESSION['username'] !== ""){
                    $user = $_SESSION['username'];
                    echo "Bonjour $user, vous êtes connecté";
                }
            ?>
            
        </div>
    </body>
</html>


est le css (style1.css) =>

body{
    background: #67BE4B;
}
#container{
    width:400px;
    margin:0 auto;
    margin-top:10%;
}
/* Bordered form */
form {
    width:100%;
    padding: 30px;
    border: 1px solid #f1f1f1;
    background: #fff;
    box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24);
}
#container h1{
    width: 38%;
    margin: 0 auto;
    padding-bottom: 10px;
}

/* Full-width inputs */
input[type=text], input[type=password] {
    width: 100%;
    padding: 12px 20px;
    margin: 8px 0;
    display: inline-block;
    border: 1px solid #ccc;
    box-sizing: border-box;
}

/* Set a style for all buttons */
input[type=submit] {
    background-color: #53af57;
    color: white;
    padding: 14px 20px;
    margin: 8px 0;
    border: none;
    cursor: pointer;
    width: 100%;
}
input[type=submit]:hover {
    background-color: white;
    color: #53af57;
    border: 1px solid #53af57;
}


je ne l'ai pas encore modifier mais sa y a pas de soucis je sais faire.
et s'est pour le "verification.php" que j'aurais besoin d'aide

( Est aussi désolée pour l’orthographe la dysorthographie sa aide pas !-! )
0
Je ne sais pas comment le faire, car sur l'exemple il utiliser une base de donné externe avec un site mais moi je voudrais juste un simple avec un seul est unique identifient et mot de passe
0
yg_be Messages postés 22719 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476 > kimi
20 mai 2021 à 14:00
peux-tu préciser le nom de chacun des fichiers que tu nous montres?
si tu veux adapter un exemple, ne penses-tu pas utile de nous montrer cet exemple?

ton site fonctionne bien, tes pages avec le code php répondent bien?
0
kimi3888 Messages postés 6 Date d'inscription jeudi 20 mai 2021 Statut Membre Dernière intervention 20 mai 2021
20 mai 2021 à 14:24
exacte je vient de mettre les nom correspondant a chaque fichier et voici l'exemple en question =>

login.php
<html>
    <head>
       <meta charset="utf-8">
        <!-- importer le fichier de style -->
        <link rel="stylesheet" href="style.css" media="screen" type="text/css" />
    </head>
    <body>
        <div id="container">
            <!-- zone de connexion -->
            
            <form action="verification.php" method="POST">
                <h1>Connexion</h1>
                
                <label><b>Nom d'utilisateur</b></label>
                <input type="text" placeholder="Entrer le nom d'utilisateur" name="username" required>

                <label><b>Mot de passe</b></label>
                <input type="password" placeholder="Entrer le mot de passe" name="password" required>

                <input type="submit" id='submit' value='LOGIN' >
                <?php
                if(isset($_GET['erreur'])){
                    $err = $_GET['erreur'];
                    if($err==1 || $err==2)
                        echo "<p style='color:red'>Utilisateur ou mot de passe incorrect</p>";
                }
                ?>
            </form>
        </div>
    </body>
</html>


style.css

body{
    background: #67BE4B;
}
#container{
    width:400px;
    margin:0 auto;
    margin-top:10%;
}
/* Bordered form */
form {
    width:100%;
    padding: 30px;
    border: 1px solid #f1f1f1;
    background: #fff;
    box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24);
}
#container h1{
    width: 38%;
    margin: 0 auto;
    padding-bottom: 10px;
}

/* Full-width inputs */
input[type=text], input[type=password] {
    width: 100%;
    padding: 12px 20px;
    margin: 8px 0;
    display: inline-block;
    border: 1px solid #ccc;
    box-sizing: border-box;
}

/* Set a style for all buttons */
input[type=submit] {
    background-color: #53af57;
    color: white;
    padding: 14px 20px;
    margin: 8px 0;
    border: none;
    cursor: pointer;
    width: 100%;
}
input[type=submit]:hover {
    background-color: white;
    color: #53af57;
    border: 1px solid #53af57;
}


verification.php
<?php
session_start();
if(isset($_POST['username']) && isset($_POST['password']))
{
    // connexion à la base de données
    $db_username = 'root';
    $db_password = 'mot_de_passe_bdd';
    $db_name     = 'nom_bdd';
    $db_host     = 'localhost';
    $db = mysqli_connect($db_host, $db_username, $db_password,$db_name)
           or die('could not connect to database');
    
    // on applique les deux fonctions mysqli_real_escape_string et htmlspecialchars
    // pour éliminer toute attaque de type injection SQL et XSS
    $username = mysqli_real_escape_string($db,htmlspecialchars($_POST['username'])); 
    $password = mysqli_real_escape_string($db,htmlspecialchars($_POST['password']));
    
    if($username !== "" && $password !== "")
    {
        $requete = "SELECT count(*) FROM utilisateur where 
              nom_utilisateur = '".$username."' and mot_de_passe = '".$password."' ";
        $exec_requete = mysqli_query($db,$requete);
        $reponse      = mysqli_fetch_array($exec_requete);
        $count = $reponse['count(*)'];
        if($count!=0) // nom d'utilisateur et mot de passe correctes
        {
           $_SESSION['username'] = $username;
           header('Location: principale.php');
        }
        else
        {
           header('Location: login.php?erreur=1'); // utilisateur ou mot de passe incorrect
        }
    }
    else
    {
       header('Location: login.php?erreur=2'); // utilisateur ou mot de passe vide
    }
}
else
{
   header('Location: login.php');
}
mysqli_close($db); // fermer la connexion
?>


principale.php

<html>
    <head>
        <meta charset="utf-8">
        <!-- importer le fichier de style -->
        <link rel="stylesheet" href="style.css" media="screen" type="text/css" />
    </head>
    <body style='background:#fff;'>
        <div id="content">
            <!-- tester si l'utilisateur est connecté -->
            <?php
                session_start();
                if($_SESSION['username'] !== ""){
                    $user = $_SESSION['username'];
                    // afficher un message
                    echo "Bonjour $user, vous êtes connecté";
                }
            ?>
            
        </div>
    </body>
</html>
0
kimi3888 Messages postés 6 Date d'inscription jeudi 20 mai 2021 Statut Membre Dernière intervention 20 mai 2021
Modifié le 20 mai 2021 à 14:36
le site fonctionne parfaitement, il n'y a que le login qui ne fonctionne pas car il manque encore le fichier "verification.php" a concevoir

si nécessaire je peu transmettre une partie du code de la page, seule quelques morceaux de texte seront retiré, car mon site a pour bute de répertorier un maximum d'urbex et leur emplacement doive resté au maximume confidentiel d’où l'utilité du login.
0
yg_be Messages postés 22719 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
20 mai 2021 à 14:39
ton site fonctionne bien, tes pages avec le code php répondent bien?

tu expliques que tu as choisi de travailler sans base de données.
pourquoi? presque partout, si tu peux faire du php, tu peux utiliser une base de données.

si tu n'utilises pas de base de données, où veux tu mémoriser les identifiants et mots de passe?
dans le fichier verification.php?
0
kimi3888 Messages postés 6 Date d'inscription jeudi 20 mai 2021 Statut Membre Dernière intervention 20 mai 2021 > yg_be Messages postés 22719 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024
20 mai 2021 à 14:56
oui l'idée serai de mémoriser les identifiant dans le fichier verification.php car l'utilisation de base de données ne me permet pas d'avoir l'ensemble des fichier répertorier au même endroit.
je travaille avec site atspace qui eberge mon site et me permet de le codée tous les fichier concernant le site s'y trouve.

un bref aperçu =>

0
yg_be Messages postés 22719 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476 > kimi3888 Messages postés 6 Date d'inscription jeudi 20 mai 2021 Statut Membre Dernière intervention 20 mai 2021
20 mai 2021 à 15:14
un exemple de ce que tu peux faire dans verification.php:
<?php
session_start();
if(isset($_POST['username']) && isset($_POST['password']))
{
    $username = $_POST['username']; 
    $password = $_POST['password'];
    if($username !== "" && $password !== "")
    {
        if(   ($username == "moi" && $password == "monmdpsecret")
              OR ($username == "toi" && $password == "tonmdpsecret")
              OR ($username == "lui" && $password == "sonmdpsecret")
           )
        {   // nom d'utilisateur et mot de passe corrects
           $_SESSION['username'] = $username;
           header('Location: principale.php');
        }
        else
        {  // utilisateur ou mot de passe incorrect
           header('Location: login.php?erreur=1'); 
        }
    }
    else
    {
       header('Location: login.php?erreur=2'); // utilisateur ou mot de passe vide
    }
}
else
{
   header('Location: login.php');
}
?>
0
kimi3888 Messages postés 6 Date d'inscription jeudi 20 mai 2021 Statut Membre Dernière intervention 20 mai 2021 > yg_be Messages postés 22719 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024
Modifié le 20 mai 2021 à 15:31
sa fonction !! j'ai juste du oublier dans un des fichier de rediriger ver mon site sans doute dans principale.php .

mais je viens de remarquer (une erreur de ma par dans la construction du site) lors de la connexion au site il suffit de retiré /login.php a l'adresse complète pour y accédé sans se connecté.
0
kimi3888 Messages postés 6 Date d'inscription jeudi 20 mai 2021 Statut Membre Dernière intervention 20 mai 2021
20 mai 2021 à 15:45
en tout cas un grand merci pour l'aide
0