DEV Community

salma bourrahim
salma bourrahim

Posted on

Hackathon PHP

1/
Image description

connexion base de donnée
2/
<?php
session_start();
?>
<!DOCTYPE html>





Register
<br> .error {<br> color: red;<br> }<br>




<?php
include("php/config.php");
    // Variables pour stocker les messages d'erreur
    $usernameErr = $emailErr = $ageErr = $passwordErr = "";
    $username = $email = $age = $password = "";

    // Fonction de validation de l'email
    function validateEmail($email) {
        return filter_var($email, FILTER_VALIDATE_EMAIL);
    }

    // Fonction de validation du mot de passe (minimum 8 caractères)
    function validatePassword($password) {
        return strlen($password) >= 8;
    }

    // Fonction de validation de l'âge (doit être un nombre entre 0 et 120)
    function validateAge($age) {
        return is_numeric($age) && $age >= 0 && $age <= 120;
    }

    if(isset($_POST['submit'])){
        $username = htmlspecialchars($_POST['username']);
        $email = htmlspecialchars($_POST['email']);
        $age = htmlspecialchars($_POST['age']);
        $password = $_POST['password']; // Le mot de passe ne doit pas être échappé pour le hashage

        // Validation des entrées
        $isValid = true;
        if (empty($username)) {
            $usernameErr = "Ce champ est obligatoire";
            $isValid = false;
        }
        if (empty($email) || !validateEmail($email)) {
            $emailErr = empty($email) ? "Ce champ est obligatoire" : "Format d'email invalide";
            $isValid = false;
        }
        if (empty($age) || !validateAge($age)) {
            $ageErr = empty($age) ? "Ce champ est obligatoire" : "Âge invalide";
            $isValid = false;
        }
        if (empty($password) || !validatePassword($password)) {
            $passwordErr = empty($password) ? "Ce champ est obligatoire" : "Le mot de passe doit contenir au moins 8 caractères";
            $isValid = false;
        }

        if ($isValid) {
            // Vérification de l'email unique
            $verify_query = $pdo->prepare("SELECT Email FROM users WHERE Email = ?");
            $verify_query->execute([$email]);

            if($verify_query->rowCount() != 0 ){
                echo "<div class='message'><p>This email is already used, please try another one!</p></div><br>";
                echo "<a href='javascript:self.history.back()'><button class='btn'>Go Back</button>";
            } else {
                // Hashage du mot de passe pour la sécurité
                $hashed_password = password_hash($password, PASSWORD_BCRYPT);
                $insert_query = $pdo->prepare("INSERT INTO users (Username, Email, Age, Password) VALUES (?, ?, ?, ?)");
                $insert_query->execute([$username, $email, $age, $hashed_password]);

                // Redirection vers la page de succès
                header("Location: success.php");
                exit;
            }
        }
    } 
    ?>

        <header>Sign Up</header>
        <form action="" method="post">
            <div class="field input">
                <label for="username">Username</label>
                <input type="text" name="username" id="username" autocomplete="off" value="<?= htmlspecialchars($username) ?>" required>
                <span class="error"><?= $usernameErr ?></span>
            </div>
            <div class="field input">
                <label for="email">Email</label>
                <input type="text" name="email" id="email" autocomplete="off" value="<?= htmlspecialchars($email) ?>" required>
                <span class="error"><?= $emailErr ?></span>
            </div>
            <div class="field input">
                <label for="age">Age</label>
                <input type="number" name="age" id="age" autocomplete="off" value="<?= htmlspecialchars($age) ?>" required>
                <span class="error"><?= $ageErr ?></span>
            </div>
            <div class="field input">
                <label for="password">Password</label>
                <input type="password" name="password" id="password" autocomplete="off" required>
                <span class="error"><?= $passwordErr ?></span>
            </div>
            <div class="field">
                <input type="submit" class="btn" name="submit" value="Register">
            </div>
            <div class="links">
                Already a member? <a href="index.php">Sign In</a>
            </div>
        </form>
    </div>
    <?php ?>
</div>



Ce code PHP et HTML constitue une page d'inscription pour un site web. Voici ce qu'il fait :

  • L'instruction session_start(); initialise une session PHP pour stocker des informations utilisateur.
  • La page HTML présente un formulaire d'inscription avec des champs pour le nom d'utilisateur, l'e-mail, l'âge et le mot de passe.
  • Des fonctions de validation sont définies pour vérifier si l'e-mail est valide, si le mot de passe a au moins 8 caractères et si l'âge est un nombre valide.
  • Lorsque le formulaire est soumis (avec le bouton "Register"), le code PHP vérifie les données entrées par l'utilisateur.
  • S'il y a des erreurs de validation, des messages d'erreur appropriés sont affichés à côté des champs correspondants.
  • Si les données sont valides, le code vérifie si l'e-mail est unique dans la base de données.
  • Si l'e-mail est unique, le mot de passe est hashé pour des raisons de sécurité, puis les informations de l'utilisateur sont insérées dans la base de données.
  • Enfin, l'utilisateur est redirigé vers une page de succès.

C'est un code complet pour créer un système d'inscription sécurisé et convivial pour les utilisateurs.
3/
<?php
session_start();
?>
<!DOCTYPE html>





Login
<br> .error {<br> color: red;<br> }<br>




<?php
         include("php/config.php");

         // Variables pour stocker les messages d'erreur
         $emailErr = $passwordErr = $loginErr = "";
         $email = $password = "";

         // Fonction de validation de l'email
         function validateEmail($email) {
             return filter_var($email, FILTER_VALIDATE_EMAIL);
         }

         // Fonction de validation du mot de passe (minimum 8 caractères)
         function validatePassword($password) {
             return strlen($password) >= 8;
         }

         if(isset($_POST['submit'])){
           $email = htmlspecialchars($_POST['email']);
           $password = $_POST['password']; // Le mot de passe ne doit pas être échappé pour la vérification

           // Validation des entrées
           $isValid = true;
           if (!validateEmail($email)) {
               $emailErr = "Format d'email invalide";
               $isValid = false;
           }
           if (!validatePassword($password)) {
               $passwordErr = "Le mot de passe doit contenir au moins 8 caractères";
               $isValid = false;
           }

           if ($isValid) {
               // Si les validations sont correctes, vérifier les informations d'identification
               $query = $pdo->prepare("SELECT * FROM users WHERE Email = ?");
               $query->execute([$email]);
               $row = $query->fetch(PDO::FETCH_ASSOC);

               if($row && password_verify($password, $row['Password'])){
                   $_SESSION['valid'] = $row['Email'];
                   $_SESSION['username'] = $row['Username'];
                   $_SESSION['age'] = $row['Age'];
                   $_SESSION['id'] = $row['Id'];

                   header("Location: home.php");
                   exit; // Arrêter l'exécution du script après la redirection
               } else {
                   $loginErr = "Email ou mot de passe incorrect";
               }
           }
         }
       ?>
        <header>Login</header>
        <form action="" method="post">
            <div class="field input">
                <label for="email">Email</label>
                <input type="text" name="email" id="email" value="<?= htmlspecialchars($email) ?>" >
                <span class="error"><?= $emailErr ?></span>
            </div>
            <div class="field input">
                <label for="password">Password</label>
                <input type="password" name="password" id="password" >
                <span class="error"><?= $passwordErr ?></span>
            </div>
            <div class="field">
                <input type="submit" class="btn" name="submit" value="Login">
            </div>
            <div class="error"><?= $loginErr ?></div>
            <div class="links">
                Don't have an account? <a href="register.php">Sign Up Now</a>
            </div>
        </form>
    </div>
</div>

Ce code PHP et HTML constitue une page de connexion pour un site web. Voici un résumé :

  • L'instruction session_start(); initialise une session PHP pour stocker des informations utilisateur.
  • La page HTML présente un formulaire de connexion avec des champs pour l'e-mail et le mot de passe.
  • Des fonctions de validation sont définies pour vérifier si l'e-mail est valide et si le mot de passe a au moins 8 caractères.
  • Lorsque le formulaire est soumis (avec le bouton "Login"), le code PHP vérifie les données entrées par l'utilisateur.
  • S'il y a des erreurs de validation, des messages d'erreur appropriés sont affichés à côté des champs correspondants.
  • Si les données sont valides, le code interroge la base de données pour trouver l'utilisateur correspondant à l'e-mail entré.
  • Si un utilisateur correspondant est trouvé et si le mot de passe correspond, les informations de l'utilisateur sont stockées dans la session et l'utilisateur est redirigé vers la page d'accueil.
  • Sinon, un message d'erreur est affiché pour informer l'utilisateur que l'e-mail ou le mot de passe est incorrect.
  • En bas du formulaire, un lien est fourni pour rediriger les utilisateurs vers la page d'inscription s'ils n'ont pas encore de compte.

C'est un code complet pour créer un système de connexion sécurisé et convivial pour les utilisateurs.

4/
<!DOCTYPE html>





Registration Successful





Registration successful!




Login Now



Ce code PHP et HTML constitue une page de connexion pour un site web. Voici un résumé :

  • La fonction session_start(); initialise une session PHP pour stocker des informations utilisateur, ce qui permet de maintenir la connexion de l'utilisateur entre différentes pages du site.
  • La page HTML présente un formulaire de connexion avec des champs pour l'e-mail et le mot de passe, permettant aux utilisateurs de saisir leurs identifiants.
  • Des fonctions de validation sont définies pour vérifier si l'e-mail est au bon format et si le mot de passe a au moins 8 caractères. Cela garantit que les données entrées par l'utilisateur sont correctes et sécurisées.
  • Lorsque le formulaire est soumis en cliquant sur le bouton "Login", le code PHP vérifie les données saisies par l'utilisateur.
  • Si des erreurs de validation surviennent, des messages d'erreur appropriés sont affichés à côté des champs correspondants, aidant ainsi l'utilisateur à corriger ses erreurs.
  • Si les données sont valides, le code interroge la base de données pour trouver l'utilisateur correspondant à l'e-mail entré.
  • Si un utilisateur correspondant est trouvé et si le mot de passe correspond également, les informations de l'utilisateur sont stockées dans la session, ce qui signifie qu'il est authentifié et peut accéder aux pages protégées.
  • Sinon, si l'e-mail ou le mot de passe est incorrect, un message d'erreur est affiché pour informer l'utilisateur.
  • En bas du formulaire, un lien est fourni pour rediriger les utilisateurs vers la page d'inscription s'ils n'ont pas encore de compte, les encourageant ainsi à s'inscrire s'ils ne sont pas déjà membres.

En résumé, ce code offre un système de connexion sécurisé et convivial pour les utilisateurs, avec des fonctionnalités de validation des données et des messages d'erreur explicites en cas de problème.
5/ <?php
session_start();
session_destroy();
header("Location: ../index.php");
?>
logout
6/
<?php
session_start();
include("php/config.php");
if(!isset($_SESSION['valid'])){
header("Location: index.php");
exit; // Arrêter l'exécution du script après la redirection
}
$id = $_SESSION['id'];
$query = $pdo->prepare("SELECT * FROM users WHERE Id = ?");
$query->execute([$id]);
$result = $query->fetch(PDO::FETCH_ASSOC);

$res_Uname = $result['Username'];
$res_Email = $result['Email'];
$res_Age = $result['Age'];
$res_id = $result['Id'];
?>
<!DOCTYPE html>





Home




Logo




Log Out






Hello <?php echo $res_Uname ?>, Welcome




Your email is <?php echo $res_Email ?>.






And you are <?php echo $res_Age ?> years old.








Ce code PHP et HTML constitue une page d'accueil sécurisée pour un site web. Voici un résumé de son fonctionnement :
  • La fonction session_start(); initialise une session PHP, ce qui permet de stocker des informations utilisateur et de maintenir leur connexion entre différentes pages du site.
  • Le code inclut un fichier de configuration qui probablement contient les détails de connexion à la base de données.
  • Il vérifie si l'utilisateur est authentifié en vérifiant s'il a une session valide. Si l'utilisateur n'est pas authentifié, il est redirigé vers la page d'index (probablement la page de connexion) et le script s'arrête.
  • Une fois l'utilisateur authentifié, le script récupère les informations de l'utilisateur à partir de la base de données en utilisant son ID stocké dans la session.
  • Les informations de l'utilisateur (nom d'utilisateur, e-mail et âge) sont récupérées et stockées dans des variables.
  • Ces informations sont ensuite affichées dans la page HTML, souhaitant la bienvenue à l'utilisateur et affichant son nom d'utilisateur, son e-mail et son âge.

En résumé, ce code assure que seuls les utilisateurs authentifiés peuvent accéder à la page d'accueil, et il affiche des informations personnalisées une fois qu'ils sont connectés.
7/
<!DOCTYPE html>





Registration Successful





Registration successful!




Login Now




Ce code HTML représente une page de confirmation d'inscription réussie pour un site web. Voici un résumé de son contenu :
  • La page est structurée en HTML5 avec des balises standard pour définir le contenu et le style.
  • Elle affiche un message de confirmation indiquant que l'inscription a été réalisée avec succès.
  • Un bouton "Login Now" est fourni, permettant à l'utilisateur de se connecter immédiatement après son inscription.
  • Le lien du bouton dirige l'utilisateur vers la page de connexion (index.php) où il peut saisir ses identifiants nouvellement créés.

En résumé, cette page informe l'utilisateur que son inscription a été traitée avec succès et lui propose une option pour se connecter immédiatement à son compte nouvellement créé.

Top comments (0)