Logs
Consultez les logs.
OK
Liste des données
Consultez la liste des données.
OK
Loading...
Formulaire
Saisissez vos données.
Enregistrer
Annuler

Programmation PHP

Vues
556

Introduction


PHP est un langage de script à usage général orienté vers le développement web. Le code PHP est généralement traité sur un serveur web par un interpréteur PHP implémenté sous la forme d'un module, d'un démon ou d'un exécutable Common Gateway Interface (CGI). Sur un serveur Web, le résultat du code PHP interprété et exécuté - qui peut être n'importe quel type de données, comme du HTML généré ou des données d'image binaires - formerait tout ou partie d'une réponse HTTP. Divers systèmes de modèles web, systèmes de gestion de contenu web et cadres web existent qui peuvent être employés pour orchestrer ou faciliter la génération de cette réponse. De plus, PHP peut être utilisé pour de nombreuses tâches de programmation en dehors du contexte web, telles que les applications graphiques autonomes et le contrôle de drones robotiques. Le code PHP peut également être exécuté directement depuis la ligne de commande. L'interpréteur PHP standard, propulsé par Zend Engine, est un logiciel libre publié sous la licence PHP. PHP a été largement porté et peut être déployé sur la plupart des serveurs web sur une variété de systèmes d'exploitation et de plateformes.

image.png


Objectif


Mettre en place un système de covoiturage.

L'étalement urbain est à l'origine de la croissance continue du trafic automobile qui induit une dégradation de la qualité de l'air, des nuisances sonores importantes, une trop grande utilisation de l'espace public, un gaspillage énergétique et une augmentation des émissions de gaz à effet de serre. Dans le contexte de la transition énergétique, il convient de réduire ces impacts en agissant sur l'ensemble des déplacements et en particulier ceux contraints, tels les déplacements du quotidien domicile-travail, domicile-étude, etc. Dans de nombreux environnements, et en particulier dans les secteurs ruraux et périurbains où la densité est souvent trop faible pour mettre en place une offre de transports collectifs performante, le covoiturage apparaît comme une alternative efficace à l'autosolisme et une importante source d'économie pour les ménages. 


Recommandations techniques


Pour tester les extraits de code dans ce tutoriel, vous aurez besoin des éléments suivants:

Un server web PHP WampServer sous Windows.
Un server web PHP XAMP sous Linux.
Lien vers WampServer: https://www.wampserver.com/


Affichage d'un message



Affichage d'un message


Résultat:

image.png

Affichage d'un message: 

<?php
//===============================================
// index.php
//===============================================
echo "Bonjour tout le monde.";
//===============================================
?>


Programmation par procédure



Affichage d'un message


Résultat:

image.png

Affichage d'un message:

<?php
//===============================================
// index.php
//===============================================
echo "Bonjour tout le monde.";
//===============================================
?>

Création d'une fonction


Résultat:

image.png

Création d'une fonction:

<?php
//===============================================
// index.php
//===============================================
function main() {
    echo "Bonjour tout le monde.";
}
//===============================================
main();
//===============================================
?>
 

Programmation par objet



Affichage d'un message


Résultat:

image.png

Affichage d'un message:
 
<?php
//===============================================
// index.php
//===============================================
echo "Bonjour tout le monde.";
//===============================================
?>

Création d'une classe


Résultat:

image.png

Création d'un objet: 

<?php
//===============================================
// index.php
//===============================================
require "GProcess.php";
//===============================================
$lProcess = new GProcess();
$lProcess->run();
//===============================================
// GProcess.php
//===============================================
class GProcess {
    //===============================================
    public function __construct() {
        
    }
    //===============================================
    public function run() {
        echo "Bonjour tout le monde.";
    }
    //===============================================
}
//===============================================
?>

Gestion du chargement automatique de classes


Résultat:

image.png

Gestion du chargement automatique de classes:

<?php
//===============================================
// index.php
//===============================================
require "autoload.php";
//===============================================
$lProcess = new GProcess();
$lProcess->run();
//===============================================
// autoload.php
//===============================================
spl_autoload_register(function ($_className) {
    require $_className . ".php";
});
//===============================================
// GProcess.php
//===============================================
class GProcess {
    //===============================================
    public function __construct() {
        
    }
    //===============================================
    public function run() {
        echo "Bonjour tout le monde.";
    }
    //===============================================
}
//===============================================
?>


Programmation par sélection de projet



Affichage d'un message


Résultat:

image.png

Affichage d'un message:
 
<?php
//===============================================
// index.php
//===============================================
require "autoload.php";
//===============================================
$lProcess = new GProcess();
$lProcess->run();
//===============================================
// GProcess.php
//===============================================
class GProcess {
    //===============================================
    public function __construct() {
        
    }
    //===============================================
    public function run() {
        echo "Bonjour tout le monde.";
    }
    //===============================================
}
//===============================================
?>

Gestion du changement de projet


Résultat:

image.png

Gestion du changement de projet:

<?php
//===============================================
// index.php
//===============================================
require "autoload.php";
//===============================================
$lProcess = new GProcess();
$lProcess->run("test", "string");
//===============================================
// GProcess.php
//===============================================
class GProcess {
    //===============================================
    public function __construct() {
        
    }
    //===============================================
    public function run($_module, $_method) {
        if($_module == "test") {
            $this->runTest($_module, $_method);
        }
    }
    //===============================================
    public function runTest($_module, $_method) {
        echo "Bonjour tout le monde.";
    }
    //===============================================
}
//===============================================
?>

Intégration d'un module de test


Résultat:

image.png

Intégration d'un module de test:

<?php
//===============================================
// index.php
//===============================================
require "autoload.php";
//===============================================
$lProcess = new GProcess();
$lProcess->run("test", "string");
//===============================================
// GProcess.php
//===============================================
class GProcess {
    //===============================================
    public function __construct() {
        
    }
    //===============================================
    public function run($_module, $_method) {
        if($_module == "test") {
            $this->runTest($_module, $_method);
        }
    }
    //===============================================
    public function runTest($_module, $_method) {
        $lObj = new GTest();
        $lObj->run($_module, $_method);
    }
    //===============================================
}
//===============================================
// GTest.php
//===============================================
class GTest {
    //===============================================
    public function __construct() {
        
    }
    //===============================================
    public function run($_module, $_method) {
        if($_method == "string") {
            $this->runString($_module, $_method);
        }
    }
    //===============================================
    public function runString($_module, $_method) {
        echo "Bonjour tout le monde.";
    }
    //===============================================
}
//===============================================
?>


Ajout d'une structure HTML



Affichage d'un message


Résultat:

image.png

Affichage d'un message:
 
<?php
//===============================================
// index.php
//===============================================
echo "Bonjour tout le monde.";
//===============================================
?>

Ajout d'une structure HTML


Résultat:

image.png

Ajout d'une structure HTML:
 
<?php
//===============================================
// index.php
//===============================================
echo sprintf("<!DOCTYPE html>\n");
echo sprintf("<html>\n");
echo sprintf("<head>\n");
echo sprintf("</head>\n");
echo sprintf("<body>\n");
//===============================================
echo sprintf("<p>Bonjour tout le monde.</p>\n");
//===============================================
echo sprintf("</body>\n");
echo sprintf("</html>\n");
//===============================================
?>

Ajout d'un titre de page


Résultat:

image.png

Ajout d'un titre de page:
 
<?php
//===============================================
// index.php
//===============================================
echo sprintf("<!DOCTYPE html>\n");
echo sprintf("<html>\n");
echo sprintf("<head>\n");
//===============================================
echo sprintf("<title>ReadyApp</title>\n");
//===============================================
echo sprintf("</head>\n");
echo sprintf("<body>\n");
//===============================================
echo sprintf("<p>Bonjour tout le monde.</p>\n");
//===============================================
echo sprintf("</body>\n");
echo sprintf("</html>\n");
//===============================================
?>

Ajout d'une icône de page par défaut


Résultat:

image.png

Icône placée à la racine du projet:

image.png

Ajout d'une icône de page par défaut:
 
src
|--- index.php
|--- favicon.ico

Ajout d'une icône de page à partir d'un chemin


Résultat:

image.png

Ajout d'une icône de page à partir d'un chemin:
 
<?php
//===============================================
// index.php
//===============================================
echo sprintf("<!DOCTYPE html>\n");
echo sprintf("<html>\n");
echo sprintf("<head>\n");
//===============================================
echo sprintf("<title>ReadyApp</title>\n");
echo sprintf("<link rel='icon' type='image/x-icon' href='/data/img/favicon.ico'>\n");
//===============================================
echo sprintf("</head>\n");
echo sprintf("<body>\n");
//===============================================
echo sprintf("<p>Bonjour tout le monde.</p>\n");
//===============================================
echo sprintf("</body>\n");
echo sprintf("</html>\n");
//===============================================
?>

Ajout d'un style CSS en ligne


Résultat:

image.png

Ajout d'un style CSS en ligne:

<?php
//===============================================
// index.php
//===============================================
echo sprintf("<!DOCTYPE html>\n");
echo sprintf("<html>\n");
echo sprintf("<head>\n");
//===============================================
echo sprintf("<title>ReadyApp</title>\n");
echo sprintf("<link rel='icon' type='image/x-icon' href='/data/img/favicon.ico'>\n");
//===============================================
echo sprintf("</head>\n");
echo sprintf("<body>\n");
//===============================================
echo sprintf("<p style='
background-color: lightgray;
display: inline-block;
border: 1px solid black;
padding: 10px;'>Bonjour tout le monde.</p>\n");
//===============================================
echo sprintf("</body>\n");
echo sprintf("</html>\n");
//===============================================
?>

Ajout d'un style CSS à partir de l'entête HTML


Résultat:

image.png

Ajout d'un style CSS à partir de l'entête HTML: 

<?php
//===============================================
// index.php
//===============================================
echo sprintf("<!DOCTYPE html>\n");
echo sprintf("<html>\n");
echo sprintf("<head>\n");
//===============================================
echo sprintf("<title>ReadyApp</title>\n");
echo sprintf("<link rel='icon' type='image/x-icon' href='/data/img/favicon.ico'>\n");
echo sprintf("<style>
p {
    background-color: lightgray;
    display: inline-block;
    border: 1px solid black;
    padding: 10px;
}
</style>\n");
//===============================================
echo sprintf("</head>\n");
echo sprintf("<body>\n");
//===============================================
echo sprintf("<p>Bonjour tout le monde.</p>\n");
//===============================================
echo sprintf("</body>\n");
echo sprintf("</html>\n");
//===============================================
?>

Ajout d'un style CSS à partir d'une feuille de style CSS


Résultat:

image.png

Ajout d'un style CSS à partir d'une feuille de style CSS:

<?php
//===============================================
echo sprintf("<!DOCTYPE html>\n");
echo sprintf("<html>\n");
echo sprintf("<head>\n");
//===============================================
echo sprintf("<title>ReadyApp</title>\n");
echo sprintf("<link rel='icon' type='image/x-icon' href='/data/img/favicon.ico'>\n");
echo sprintf("<link rel='stylesheet' href='/css/styles.css'>\n");
//===============================================
echo sprintf("</head>\n");
echo sprintf("<body>\n");
//===============================================
echo sprintf("<p>Bonjour tout le monde.</p>\n");
//===============================================
echo sprintf("</body>\n");
echo sprintf("</html>\n");
//===============================================
?>

Feuille de style CSS:

/* ============================================== */
/* styles.css */
/* ============================================== */
p {
    background-color: lightgray;
    display: inline-block;
    border: 1px solid black;
    padding: 10px;
}
/* ============================================== */

Ajout d'un script JavaScript en ligne


Résultat:

image.png

Ajout d'un script JavaScript en ligne:

<?php
//===============================================
// index.php
//===============================================
echo sprintf("<!DOCTYPE html>\n");
echo sprintf("<html>\n");
echo sprintf("<head>\n");
//===============================================
echo sprintf("<title>ReadyApp</title>\n");
echo sprintf("<link rel='icon' type='image/x-icon' href='/data/img/favicon.ico'>\n");
echo sprintf("<link rel='stylesheet' href='/css/styles.css'>\n");
//===============================================
echo sprintf("</head>\n");
echo sprintf("<body>\n");
//===============================================
echo sprintf("<p id='hello'>Bonjour tout le monde.</p>\n");
//===============================================
echo sprintf("<script>
var lHello = document.getElementById('hello');
lHello.innerHTML = 'Bonjour JavaScript';
</script>\n");
//===============================================
echo sprintf("</body>\n");
echo sprintf("</html>\n");
//===============================================
?>

Ajout d'un script JavaScript à partir d'un fichier JS


Résultat:

image.png

Ajout d'un script JavaScript à partir d'un fichier JS: 
 
<?php
//===============================================
// index.php
//===============================================
echo sprintf("<!DOCTYPE html>\n");
echo sprintf("<html>\n");
echo sprintf("<head>\n");
//===============================================
echo sprintf("<title>ReadyApp</title>\n");
echo sprintf("<link rel='icon' type='image/x-icon' href='/data/img/favicon.ico'>\n");
echo sprintf("<link rel='stylesheet' href='/css/styles.css'>\n");
//===============================================
echo sprintf("</head>\n");
echo sprintf("<body>\n");
//===============================================
echo sprintf("<p id='hello'>Bonjour tout le monde.</p>\n");
//===============================================
echo sprintf("<script src='/js/scripts.js'></script>\n");
//===============================================
echo sprintf("</body>\n");
echo sprintf("</html>\n");
//===============================================
?>

Script JS:

//===============================================
// scripts.js
//===============================================
var lHello = document.getElementById("hello");
lHello.innerHTML = "Bonjour JavaScript";
//===============================================

Programmation par sélection de projet


Résultat:

image.png

Programmation par sélection de projet:
 
<?php
//===============================================
// index.php
//===============================================
require "autoload.php";
//===============================================
echo sprintf("<!DOCTYPE html>\n");
echo sprintf("<html>\n");
echo sprintf("<head>\n");
//===============================================
echo sprintf("<title>ReadyApp</title>\n");
echo sprintf("<link rel='icon' type='image/x-icon' href='/data/img/favicon.ico'>\n");
echo sprintf("<link rel='stylesheet' href='/css/styles.css'>\n");
//===============================================
echo sprintf("</head>\n");
echo sprintf("<body>\n");
//===============================================
$lProcess = new GProcess();
$lProcess->run("test", "string");
//===============================================
echo sprintf("<script src='/js/scripts.js'></script>\n");
//===============================================
echo sprintf("</body>\n");
echo sprintf("</html>\n");
//===============================================
// GProcess.php
//===============================================
public function runTest($_module, $_method) {
    $lObj = new GTest();
    $lObj->run($_module, $_method);
}
//===============================================
// GTest.php
//===============================================
public function runString($_module, $_method) {
    echo sprintf("<p>Bonjour tout le monde.</p>\n");
}
//===============================================
?>


Utilisation d'un script JS



Affichage d'un message JS


Résultat:

image.png

Fichier PHP:

<?php
//===============================================
// index.php
//===============================================
echo sprintf("<script src='/js/scripts.js'></script>\n");
//===============================================
?>

Affichage d'un message JS:

//===============================================
// scripts.js
//===============================================
alert("Bonjour tout le monde.\n");
//===============================================

Création d'une fonction JS


Résultat:

image.png

Création d'une fonction JS: 

//===============================================
// scripts.js
//===============================================
function callServer() {
    alert("Bonjour tout le monde.\n");
}
//===============================================
callServer();
//===============================================

Appel d'une fonction JS en PHP


Résultat:

image.png

Appel d'une fonction JS en PHP:
  
<?php
//===============================================
// index.php
//===============================================
echo sprintf("<script src='/js/scripts.js'></script>\n");
//===============================================
echo sprintf("<script>callServer();</script>\n");
//===============================================
?>

Script JS:

//===============================================
// scripts.js
//===============================================
function callServer() {
    alert("Bonjour tout le monde.\n");
}
//===============================================

Création d'un objet JS


Résultat:

image.png

Fichier PHP:

<?php
//===============================================
// index.php
//===============================================
echo sprintf("<script src='/js/scripts.js'></script>\n");
echo sprintf("<script src='/js/GServer.js'></script>\n");
//===============================================
echo sprintf("<script>callServer();</script>\n");
//===============================================
?>

Création d'un objet JS: 

//===============================================
// scripts.js
//===============================================
function callServer() {
    var lServer = new GServer();
    lServer.run();
}
//===============================================
// GServer.js
//===============================================
class GServer {
    //===============================================
    constructor() {

    }
    //===============================================
    run() {
        alert("Bonjour tout le monde.\n");
    }
    //===============================================
}
//===============================================


Appel d'un serveur depuis un script JS



Affichage d'un message JS


Résultat:

image.png

Fichier PHP:

<?php
//===============================================
// index.php
//===============================================
echo sprintf("<script src='/js/scripts.js'></script>\n");
//===============================================
?>

Affichage d'un message JS:

//===============================================
// scripts.js
//===============================================
alert("Bonjour tout le monde.\n");
//===============================================


Création d'un formulaire de gestion des utilisateurs



Création d'une bordure de formulaire


Résultat:

image.png

Création d'une bordure de formulaire:
 
<?php
//===============================================
// GTest.php
//===============================================
public function runUser($_module, $_method) {
    $lUserUi = new GUserUi();
    $lUserUi->run();
}
//===============================================
// GUserUi.php
//===============================================
public function run() {
    echo sprintf("<form class='user1'>\n");
    echo sprintf("</form>\n");        
}
//===============================================
?>

Fichier CSS:

/* ============================================== */
/* styles.css */
/* ============================================== */
.user1 {
    border: 2px solid black;
    max-width: 450px;
    margin: auto;
    margin-top: 50px;
    height: 200px;
}
/* ============================================== */

Création d'un titre de formulaire


Résultat:

image.png

Création d'un titre de formulaire:   

<?php
//===============================================
// GTest.php
//===============================================
public function runUser($_module, $_method) {
    $lUserUi = new GUserUi();
    $lUserUi->run();
}
//===============================================
// GUserUi.php
//===============================================
public function run() {
    echo sprintf("<form class='user1'>\n");
    // title
    echo sprintf("<div class='user2'><div class='user3'>Gestion d'un utilisateur</div></div>\n");
    //
    echo sprintf("</form>\n");        
}
//===============================================
?>

Fichier CSS:

/* ============================================== */
/* styles.css */
/* ============================================== */
* {
	font-family: arial;
    font-size: 16px;
}
/* ============================================== */
.user1 {
    border: 2px solid black;
    max-width: 450px;
    margin: auto;
    margin-top: 50px;
    height: 200px;
}

.user2 {
    background-color: black;
    height: 50px;
    position: relative;
    color: white;
}

.user3 {
	position: absolute;
    top: 50%;
    left: 0px;
    transform: translate(0px, -50%);
    color: white;
    width: 100%;
    text-align: center;
}
/* ============================================== */

Gestion d'une saisie d'un nom d'utilisateur


Résultat:

image.png

Gestion d'une saisie d'un nom d'utilisateur:

<?php
//===============================================
// GTest.php
//===============================================
public function runUser($_module, $_method) {
    $lUserUi = new GUserUi();
    $lUserUi->run();
}
//===============================================
// GUserUi.php
//===============================================
public function run() {
    echo sprintf("<form class='user1'>\n");
    // title
    echo sprintf("<div class='user2'><div class='user3'>Gestion d'un utilisateur</div></div>\n");
    // body
    echo sprintf("<div class='user4'>\n");
    // username
    echo sprintf("<div class='user5'>\n");
    echo sprintf("<label class='user6' for='username'>Nom d'utilisateur:</label>\n");
    echo sprintf("<input class='user7' type='text' id='username' name='username'>\n");
    echo sprintf("</div>\n");
    //
    echo sprintf("</div>\n");
    echo sprintf("</form>\n");        
}
//===============================================
?>

Fichier CSS:

/* ============================================== */
/* styles.css */
/* ============================================== */
* {
	font-family: arial;
    font-size: 16px;
}
/* ============================================== */
.user1 {
    border: 2px solid black;
    max-width: 450px;
    margin: auto;
    margin-top: 50px;
    height: 200px;
}

.user2 {
    background-color: black;
    height: 50px;
    position: relative;
    color: white;
}

.user3 {
	position: absolute;
    top: 50%;
    left: 0px;
    transform: translate(0px, -50%);
    color: white;
    width: 100%;
    text-align: center;
}

.user4 {
    padding: 5px;
}

.user5 {
    background-color: black;
    margin: 5px;
    position: relative;
    height: 30px;
}

.user6 {
    position: absolute;
    top: 50%;
    left: 5px;
    transform: translate(0px, -50%);
    color: white;
}

.user7 {
    border: none;
    position: absolute;
    top: 50%;
    left: 150px;
    right: 3px;
    height: 25px;
    transform: translate(0px, -50%);
    padding: 0px 5px;
}
/* ============================================== */

Gestion du problème de focus sur une entrée de saisie



Problème


image.png

Résolution du problème de contour


Résultat:

image.png

Résolution du problème de contour: 

/* ============================================== */
/* styles.css */
/* ============================================== */
* {
	font-family: arial;
    font-size: 16px;
}

*:focus { 
    border: none;
    outline: none;
}
/* ============================================== */


Résolution du problème de couleur de fond


Résultat:

image.png

Résolution du problème de couleur de fond:

/* ============================================== */
/* styles.css */
/* ============================================== */
* {
	font-family: arial;
    font-size: 16px;
}

*:focus { 
    border: none;
    outline: none;
}

input:-webkit-autofill,
input:-webkit-autofill:hover, 
input:-webkit-autofill:focus, 
input:-webkit-autofill:active {
    -webkit-text-fill-color: black;
    -webkit-box-shadow: 0 0 0 30px white inset !important;
    transition: background-color 5000s ease-in-out 0s;
}
/* ============================================== */

Gestion d'une saisie d'un mot de passe


Résultat:

image.png

Gestion d'une saisie d'un mot de passe:

<?php
//===============================================
// GTest.php
//===============================================
public function runUser($_module, $_method) {
    $lUserUi = new GUserUi();
    $lUserUi->run();
}
//===============================================
// GUserUi.php
//===============================================
public function run() {
    echo sprintf("<form class='user1'>\n");
    // title
    echo sprintf("<div class='user2'><div class='user3'>Gestion d'un utilisateur</div></div>\n");
    // body
    echo sprintf("<div class='user4'>\n");
    // username
    echo sprintf("<div class='user5'>\n");
    echo sprintf("<label class='user6' for='username'>Nom d'utilisateur:</label>\n");
    echo sprintf("<input class='user7' type='text' id='username' name='username'>\n");
    echo sprintf("</div>\n");
    // password
    echo sprintf("<div class='user5'>\n");
    echo sprintf("<label class='user6' for='password'>Mot de passe:</label>\n");
    echo sprintf("<input class='user7' type='password' id='password' name='password'>\n");
    echo sprintf("</div>\n");
    //
    echo sprintf("</div>\n");
    echo sprintf("</form>\n");        
}
//===============================================
?>

Fichier CSS:

/* ============================================== */
/* styles.css */
/* ============================================== */
* {
	font-family: arial;
    font-size: 16px;
}

*:focus { 
    border: none;
    outline: none;
}

input:-webkit-autofill,
input:-webkit-autofill:hover, 
input:-webkit-autofill:focus, 
input:-webkit-autofill:active {
    -webkit-text-fill-color: black;
    -webkit-box-shadow: 0 0 0 30px white inset !important;
    transition: background-color 5000s ease-in-out 0s;
}
/* ============================================== */
.user1 {
    border: 2px solid black;
    max-width: 450px;
    margin: auto;
    margin-top: 50px;
    height: 200px;
}

.user2 {
    background-color: black;
    height: 50px;
    position: relative;
    color: white;
}

.user3 {
	position: absolute;
    top: 50%;
    left: 0px;
    transform: translate(0px, -50%);
    color: white;
    width: 100%;
    text-align: center;
}

.user4 {
    padding: 5px;
}

.user5 {
    background-color: black;
    margin: 5px;
    position: relative;
    height: 30px;
}

.user6 {
    position: absolute;
    top: 50%;
    left: 5px;
    transform: translate(0px, -50%);
    color: white;
}

.user7 {
    border: none;
    position: absolute;
    top: 50%;
    left: 150px;
    right: 3px;
    height: 25px;
    transform: translate(0px, -50%);
    padding: 0px 5px;
}
/* ============================================== */

Création d'un bouton de nettoyage de formulaire


Résultat:

image.png

Création d'un bouton de nettoyage de formulaire:

<?php
//===============================================
// GTest.php
//===============================================
public function runUser($_module, $_method) {
    $lUserUi = new GUserUi();
    $lUserUi->run();
}
//===============================================
// GUserUi.php
//===============================================
public function run() {
    echo sprintf("<form class='user1'>\n");
    // title
    echo sprintf("<div class='user2'><div class='user3'>Gestion d'un utilisateur</div></div>\n");
    // body
    echo sprintf("<div class='user4'>\n");
    // username
    echo sprintf("<div class='user5'>\n");
    echo sprintf("<label class='user6' for='username'>Nom d'utilisateur:</label>\n");
    echo sprintf("<input class='user7' type='text' id='username' name='username'>\n");
    echo sprintf("</div>\n");
    // password
    echo sprintf("<div class='user5'>\n");
    echo sprintf("<label class='user6' for='password'>Mot de passe:</label>\n");
    echo sprintf("<input class='user7' type='password' id='password' name='password'>\n");
    echo sprintf("</div>\n");
    // buttons
    echo sprintf("<div class='user8'>\n");
    echo sprintf("<div class='user9'>\n");
    //
    echo sprintf("<button class='user10' type='submit' name='action' value='new'>Nouveau</button>\n");
    //
    echo sprintf("</div>\n");
    echo sprintf("</div>\n");
    //
    echo sprintf("</div>\n");
    echo sprintf("</form>\n");        
}
//===============================================
?>

Fichier CSS:

/* ============================================== */
/* styles.css */
/* ============================================== */
* {
	font-family: arial;
    font-size: 16px;
}

*:focus { 
    border: none;
    outline: none;
}

input:-webkit-autofill,
input:-webkit-autofill:hover, 
input:-webkit-autofill:focus, 
input:-webkit-autofill:active {
    -webkit-text-fill-color: black;
    -webkit-box-shadow: 0 0 0 30px white inset !important;
    transition: background-color 5000s ease-in-out 0s;
}

button {
    background-color: black;
    border: none;
    padding: 5px 10px 5px 5px;
    font-size: 16px;
    color: white;
    cursor: pointer;
}

button:disabled,
button:disabled:hover {
      border: 1px solid #aaaaaa;
      background-color: black;
      cursor: not-allowed;
}

button:hover {
	background-color: rgba(0, 0, 0, 0.6);
}
/* ============================================== */
.user1 {
    border: 2px solid black;
    max-width: 450px;
    margin: auto;
    margin-top: 50px;
}

.user2 {
    background-color: black;
    height: 50px;
    position: relative;
    color: white;
}

.user3 {
	position: absolute;
    top: 50%;
    left: 0px;
    transform: translate(0px, -50%);
    color: white;
    width: 100%;
    text-align: center;
}

.user4 {
    padding: 5px;
}

.user5 {
    background-color: black;
    margin: 5px;
    position: relative;
    height: 30px;
}

.user6 {
    position: absolute;
    top: 50%;
    left: 5px;
    transform: translate(0px, -50%);
    color: white;
}

.user7 {
    border: none;
    position: absolute;
    top: 50%;
    left: 150px;
    right: 3px;
    height: 25px;
    transform: translate(0px, -50%);
    padding: 0px 5px;
}

.user8 {
    height: 50px;
    position: relative;
    margin: 5px;
}

.user9 {
    position: absolute;
    top: 50%;
    left: 0px;
    transform: translate(0px, -50%);
    width: 100%;
    text-align: center;
}

.user10 {
    margin: 0px 1px;
}
/* ============================================== */

Création d'un bouton de suppression d'un utilisateur


Résultat:

image.png

Création d'un bouton de suppression d'un utilisateur:

<?php
//===============================================
// GTest.php
//===============================================
public function runUser($_module, $_method) {
    $lUserUi = new GUserUi();
    $lUserUi->run();
}
//===============================================
// GUserUi.php
//===============================================
public function run() {
    echo sprintf("<form class='user1'>\n");
    // title
    echo sprintf("<div class='user2'><div class='user3'>Gestion d'un utilisateur</div></div>\n");
    // body
    echo sprintf("<div class='user4'>\n");
    // username
    echo sprintf("<div class='user5'>\n");
    echo sprintf("<label class='user6' for='username'>Nom d'utilisateur:</label>\n");
    echo sprintf("<input class='user7' type='text' id='username' name='username'>\n");
    echo sprintf("</div>\n");
    // password
    echo sprintf("<div class='user5'>\n");
    echo sprintf("<label class='user6' for='password'>Mot de passe:</label>\n");
    echo sprintf("<input class='user7' type='password' id='password' name='password'>\n");
    echo sprintf("</div>\n");
    // buttons
    echo sprintf("<div class='user8'>\n");
    echo sprintf("<div class='user9'>\n");
    //
    echo sprintf("<button class='user10' type='submit' name='action' value='new'>Nouveau</button>\n");
    echo sprintf("<button class='user10' type='submit' name='action' value='delete'>Supprimer</button>\n");
    //
    echo sprintf("</div>\n");
    echo sprintf("</div>\n");
    //
    echo sprintf("</div>\n");
    echo sprintf("</form>\n");        
}
//===============================================
?>

Création d'un bouton de recherche d'un utilisateur


Résultat:

image.png

Création d'un bouton de recherche d'un utilisateur: 

<?php
//===============================================
// GTest.php
//===============================================
public function runUser($_module, $_method) {
    $lUserUi = new GUserUi();
    $lUserUi->run();
}
//===============================================
// GUserUi.php
//===============================================
public function run() {
    echo sprintf("<form class='user1'>\n");
    // title
    echo sprintf("<div class='user2'><div class='user3'>Gestion d'un utilisateur</div></div>\n");
    // body
    echo sprintf("<div class='user4'>\n");
    // username
    echo sprintf("<div class='user5'>\n");
    echo sprintf("<label class='user6' for='username'>Nom d'utilisateur:</label>\n");
    echo sprintf("<input class='user7' type='text' id='username' name='username'>\n");
    echo sprintf("</div>\n");
    // password
    echo sprintf("<div class='user5'>\n");
    echo sprintf("<label class='user6' for='password'>Mot de passe:</label>\n");
    echo sprintf("<input class='user7' type='password' id='password' name='password'>\n");
    echo sprintf("</div>\n");
    // buttons
    echo sprintf("<div class='user8'>\n");
    echo sprintf("<div class='user9'>\n");
    //
    echo sprintf("<button class='user10' type='submit' name='action' value='new'>Nouveau</button>\n");
    echo sprintf("<button class='user10' type='submit' name='action' value='delete'>Supprimer</button>\n");
    echo sprintf("<button class='user10' type='submit' name='action' value='search'>Rechercher</button>\n");
    //
    echo sprintf("</div>\n");
    echo sprintf("</div>\n");
    //
    echo sprintf("</div>\n");
    echo sprintf("</form>\n");        
}
//===============================================
?>

Création d'un bouton d'enregistrement d'un utilisateur


Résultat:

image.png

Création d'un bouton d'enregistrement d'un utilisateur:

<?php
//===============================================
// GTest.php
//===============================================
public function runUser($_module, $_method) {
    $lUserUi = new GUserUi();
    $lUserUi->run();
}
//===============================================
// GUserUi.php
//===============================================
public function run() {
    echo sprintf("<form class='user1'>\n");
    // title
    echo sprintf("<div class='user2'><div class='user3'>Gestion d'un utilisateur</div></div>\n");
    // body
    echo sprintf("<div class='user4'>\n");
    // username
    echo sprintf("<div class='user5'>\n");
    echo sprintf("<label class='user6' for='username'>Nom d'utilisateur:</label>\n");
    echo sprintf("<input class='user7' type='text' id='username' name='username'>\n");
    echo sprintf("</div>\n");
    // password
    echo sprintf("<div class='user5'>\n");
    echo sprintf("<label class='user6' for='password'>Mot de passe:</label>\n");
    echo sprintf("<input class='user7' type='password' id='password' name='password'>\n");
    echo sprintf("</div>\n");
    // buttons
    echo sprintf("<div class='user8'>\n");
    echo sprintf("<div class='user9'>\n");
    //
    echo sprintf("<button class='user10' type='submit' name='action' value='new'>Nouveau</button>\n");
    echo sprintf("<button class='user10' type='submit' name='action' value='delete'>Supprimer</button>\n");
    echo sprintf("<button class='user10' type='submit' name='action' value='search'>Rechercher</button>\n");
    echo sprintf("<button class='user10' type='submit' name='action' value='save'>Enregistrer</button>\n");
    //
    echo sprintf("</div>\n");
    echo sprintf("</div>\n");
    //
    echo sprintf("</div>\n");
    echo sprintf("</form>\n");        
}
//===============================================
?>

Transfert de données au server par la méthode GET


Résultat:

image.png

Transfert de données au server par la méthode GET:

<?php
//===============================================
// GTest.php
//===============================================
public function runUser($_module, $_method) {
    $lUserUi = new GUserUi();
    $lUserUi->run();
}
//===============================================
// GUserUi.php
//===============================================
public function run() {
    if(!empty($_GET)) {
        echo "<pre>"; var_dump($_GET); echo "</pre>";
    }
    //
    echo sprintf("<form class='user1' method='get' action='/'>\n");
    // title
    echo sprintf("<div class='user2'><div class='user3'>Gestion d'un utilisateur</div></div>\n");
    // body
    echo sprintf("<div class='user4'>\n");
    // username
    echo sprintf("<div class='user5'>\n");
    echo sprintf("<label class='user6' for='username'>Nom d'utilisateur:</label>\n");
    echo sprintf("<input class='user7' type='text' id='username' name='username'>\n");
    echo sprintf("</div>\n");
    // password
    echo sprintf("<div class='user5'>\n");
    echo sprintf("<label class='user6' for='password'>Mot de passe:</label>\n");
    echo sprintf("<input class='user7' type='password' id='password' name='password'>\n");
    echo sprintf("</div>\n");
    // buttons
    echo sprintf("<div class='user8'>\n");
    echo sprintf("<div class='user9'>\n");
    //
    echo sprintf("<button class='user10' type='submit' name='action' value='new'>Nouveau</button>\n");
    echo sprintf("<button class='user10' type='submit' name='action' value='delete'>Supprimer</button>\n");
    echo sprintf("<button class='user10' type='submit' name='action' value='search'>Rechercher</button>\n");
    echo sprintf("<button class='user10' type='submit' name='action' value='save'>Enregistrer</button>\n");
    //
    echo sprintf("</div>\n");
    echo sprintf("</div>\n");
    //
    echo sprintf("</div>\n");
    echo sprintf("</form>\n");        
}
//===============================================
?>

Transfert de données au server par la méthode POST


Résultat:

image.png

Transfert de données au server par la méthode POST:

<?php
//===============================================
// GTest.php
//===============================================
public function runUser($_module, $_method) {
    $lUserUi = new GUserUi();
    $lUserUi->run();
}
//===============================================
// GUserUi.php
//===============================================
public function run() {
    if(!empty($_POST)) {
        echo "<pre>"; var_dump($_POST); echo "</pre>";
    }
    //
    echo sprintf("<form class='user1' method='post' action='/'>\n");
    // title
    echo sprintf("<div class='user2'><div class='user3'>Gestion d'un utilisateur</div></div>\n");
    // body
    echo sprintf("<div class='user4'>\n");
    // username
    echo sprintf("<div class='user5'>\n");
    echo sprintf("<label class='user6' for='username'>Nom d'utilisateur:</label>\n");
    echo sprintf("<input class='user7' type='text' id='username' name='username'>\n");
    echo sprintf("</div>\n");
    // password
    echo sprintf("<div class='user5'>\n");
    echo sprintf("<label class='user6' for='password'>Mot de passe:</label>\n");
    echo sprintf("<input class='user7' type='password' id='password' name='password'>\n");
    echo sprintf("</div>\n");
    // buttons
    echo sprintf("<div class='user8'>\n");
    echo sprintf("<div class='user9'>\n");
    //
    echo sprintf("<button class='user10' type='submit' name='action' value='new'>Nouveau</button>\n");
    echo sprintf("<button class='user10' type='submit' name='action' value='delete'>Supprimer</button>\n");
    echo sprintf("<button class='user10' type='submit' name='action' value='search'>Rechercher</button>\n");
    echo sprintf("<button class='user10' type='submit' name='action' value='save'>Enregistrer</button>\n");
    //
    echo sprintf("</div>\n");
    echo sprintf("</div>\n");
    //
    echo sprintf("</div>\n");
    echo sprintf("</form>\n");        
}
//===============================================
?>


Utilisation de WampServer



Autorisation des machines virtuelles


Autorisation des machines virtuelles:
 
#================================================
# C:\wamp64\bin\apache\apache2.4.54.2\conf\httpd.conf
#================================================
LoadModule vhost_alias_module modules/mod_vhost_alias.so
#================================================
Include conf/extra/httpd-vhosts.conf
#================================================

Configuration du port du serveur web


Configuration du port du serveur web:

#================================================
# C:\wamp64\bin\apache\apache2.4.54.2\conf\httpd.conf
#================================================
Listen 0.0.0.0:9052
Listen [::0]:9052
#================================================
 

Configuration du répertoire racine du serveur web


Configuration du répertoire racine du serveur web:

#================================================
# C:\wamp64\bin\apache\apache2.4.54.2\conf\extra\httpd-vhosts.conf
#================================================
<VirtualHost *:9052>
    ServerName readyphp.ovh
    ServerAlias www.readyphp.ovh 
    ServerAdmin tiakagerard@hotmail.com
    DocumentRoot "C:/ready_php/src/"

    <Directory "C:/ready_php/src/">
        Options All
        AllowOverride All
        Order allow,deny
        allow from all
        Require all granted
    </Directory>
</VirtualHost>
#================================================

Recherche des erreurs de démarrage


Recherche des erreurs de démarrage:
 
::===============================================
:: Terminal
::===============================================
cd C:\wamp64\bin\apache\apache2.4.54.2\bin
httpd -t
::===============================================

En cas d'erreurs:

image.png

Redémarrage WampServer


Redémarrage WampServer:

image.png

image.png

Configuration de Xdebug


Installation de Xdebug:

image.png

Configuration de Xdebug: 

;================================================
; phpForApache.ini
;================================================
[xdebug]
zend_extension="c:/wamp64/bin/php/php8.0.26/ext/php_xdebug.dll"
xdebug.mode=debug
xdebug.client_host=localhost
xdebug.client_port=9000
xdebug.output_dir="c:/wamp64/tmp"
xdebug.show_local_vars=0
xdebug.log="c:/wamp64/logs/xdebug.log"
xdebug.log_level=7
xdebug.profiler_output_name=trace.%H.%t.%p.cgrind
xdebug.use_compression=false
;================================================


Utilisation d'Eclipse



Création d'un projet PHP


Création d'un projet PHP:
 
image.png

image.png

image.png

Suppression d'un projet PHP


Suppression d'un projet PHP:

image.png

image.png

image.png

Importation d'un projet PHP


Copie des fichiers projet Eclipse:

image.png

Collage dans le répertoire du projet PHP à importer:

image.png

Importation d'un projet PHP:

image.png

image.png

image.png

image.png

image.png

Configuration de Xdebug


image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png


Utilisation de Xdebug



Copie de la configuration du serveur PHP


Résultat:

image.png

Copie de la configuration du serveur PHP: 

<?php
//===============================================
// index.php
//===============================================
phpinfo();
//===============================================
?>

Téléchargement de Xdebug


https://xdebug.org/

image.png

image.png

image.png

image.png

image.png

image.png


Utilisation de MySQL



Connexion en ligne de commande


::===============================================
:: Terminal
::===============================================
mysql -u root -p
::===============================================

Création d'un utilisateur


-- ==============================================
-- Terminal
-- ==============================================
create user 'admin'@'localhost' identified by 'MON_MOT_DE_PASSE';
grant all on *.* to 'admin'@'localhost' with grant option;
flush privileges;
-- ==============================================