Back
Close

PHP Intégration HTML-PHP

profThiernesse
4,113 views

Formulaires - Sessions - Fichiers

Pour cet exercice, il s'agit de :

  • Créer une page d’inscription permettant à un utilisateur de fournir un login (qui devra être unique) et un mot de passe.
  • Créer une page de login permettant à un utilisateur préalablement inscrit de se connecter.
  • Créer une page profil à laquelle l’utilisateur accède lorsqu’il se connecte. Dans celle-ci : un rappel du login de l’utilisateur, l’avatar de l’utilisateur, un formulaire permettant d’uploader une nouvelle image d’avatar, un bouton permettant à l’utilisateur de supprimer son profil (après confirmation). Enfin, un lien vers une page reprenant la liste des utilisateurs existants.
  • Créer une page listing reprenant la liste des utilisateurs existants. Les utilisateurs seront présentés par ordre alphabétique de login. Si l’utilisateur connecté est un superuser, il a la possibilité pour chaque utilisateur de modifier ses droits (user=>superuser ou l’inverse).
  • Créer une page de déconnexion permettant à un utilisateur préalablement connecté de se déconnecter.

L’ensemble des informations sur les utilisateurs sera stocké dans un fichier users.dat situé à la racine du site. Dans le fichier, on stockera un tableau sérialisé contenant en clé principale le nom d’utilisateur et en valeur un tableau avec mot de passe, genre, droits et avatar de l’utilisateur.

Le login sera unique, le mot de passe stocké sous forme de hash, le genre sera soit M soit F ; Les droits seront par défaut 0 (user), ils pourront être positionnés à 1 (superuser) par un administrateur. L’avatar de l’utilisateur consiste en une image de 100 pixels sur 100 au format JPG ou PNG, stockée sous forme base64_encodée dans le tableau sérialisé.

Références

Encoder un image base64

function base64_encode_image ($filename,$filetype)
{
    if ($filename)
    {
        $imgbinary = fread(fopen($filename, "r"), filesize($filename));
        return 'data:image/' . $filetype . ';base64,' . base64_encode($imgbinary);
    }
}
Create your playground on Tech.io
This playground was created on Tech.io, our hands-on, knowledge-sharing platform for developers.
Go to tech.io
codingame x discord
Join the CodinGame community on Discord to chat about puzzle contributions, challenges, streams, blog articles - all that good stuff!
JOIN US ON DISCORD
Online Participants