PHP - Pages / Formulaires

Pages / Formulaires

Pierre Blarre - Florian Rodriguez

Plan

1. Inclure d’autres fichiers - exemple

<!DOCTYPE html>
<html>
  <head>
    <title>Bienvenue dans notre cours PHP</title>
  </head>
  <body>
    <h1>Test inclure</h1>
    <?php include 'test.php'; ?>
    <div>
      <p>Fin de test inclure</p>
    </div>
  </body>
</html>
<p>Le contenu de ce fichier</p>
<?php echo '<p>sera inclus dans un autre
fichier</p>'; ?>
<!DOCTYPE html>
<html>
  <head>
    <title>Bienvenue dans notre cours PHP</title>
  </head>
  <body>
    <h1>Test inclure</h1>
    <p>Le contenu de ce fichier</p>
    <p>sera inclus dans un autre fichier</p> <div>
      <p>Fin de test inclure</p>
    </div>
  </body>
</html>

Exemple: http://localhost:2023/exemple-include.php

1.1. Inclure d'autres fichiers

  • include monFichier.php va être remplacer à l’exact endroit où il est écrit par le code de monFichier.php
  • Cela est très utile pour réutiliser du code par exemple pour inclure l’en-tête ou le pied page dans toutes les pages d’un site.
  • Les différentes possibilitées pour inclure d’autres fichiers:
    • include -> inclut un fichier mais ne produit pas d’erreur en cas d’échec (ex: fichier absent)
    • require -> inclut un fichier mais produit une erreur (fatal) en cas d’échec (ex: fichier absent)
    • include_once, require_once -> idem mais n’inclut pas le fichier si il est déjà inclus

2. Passer de la donnée - $_GET

PHP inclut des variables dites “super globales”, qui sont toujours disponibles, dans n’importe quel programme PHP.

Une de ces variables superglobales est : $_GET

Elle permet de récupérer les données transmises dans une URL

Exemple: http://localhost:2023/exemple-include.php?mavariable=test

2.1. Passer de la donnée - $_GET

Exemple: http://localhost:2023/exemple-include.php?mavariable=test

Dans cet url d’exemple ?mavariable=test est appelé «query string»

La query string commence après le «?»

On a ensuite un ensemble clé/valeur séparé par des &

On peut récupérer l’information dans le fichier php exemple-include.php grâce à: $_GET[‘mavariable’]

2.2. Exemple

http://localhost:2023/exemple-get.php?maVariable=titi&maDeuxiemeVariable=toto

<!DOCTYPE html>
<html>
  <head>
    <title>Bienvenue dans notre cours PHP</title>
  </head>
  <body>
    <?php
     echo $_GET['maVariable'].'<br>';
     echo $_GET['maDeuxiemeVariable'].'<br>';
    ?>
  </body>
</html>
<!DOCTYPE html>
<html>
  <head>
    <title>Bienvenue dans notre cours PHP</title>
  </head>
  <body>
    titi<br>toto<br></body>
</html>

3. Récupérer les données d’un formulaire en PHP

Une des fonctionnalités offertes par le HTML est de pouvoir créer des formulaires qui pourront envoyer les données entrées dans le formulaire vers une URL.

Les formulaires HTML peuvent envoyer leurs données de 2 manières différentes, en get ou en post.

La méthode get va ajouter toutes les données à l’url, alors que la méthode post va envoyer les données dans la requête http.

La variable superglobale pour la méthode post est $_POST

Pour pouvoir ensuite récupérer ces données côté serveur, par exemple pour enregistrer les informations dans une base de données, on va utiliser PHP!

3.1. Un formulaire HTML avec la méthode Get

  • Formulaire simple qui enverra une requête GET

    <!-- Formulaire simple qui enverra une requête GET -->
    <form action="http://localhost:2023/exemple-form-get.php" method="get">
      <label for="GET-name">Nom :</label>
      <input id="GET-name" type="text" name="nom">
      <input type="submit" value="Enregistrer">
    </form>
    

    –> Liens vers la page de test:
    http://localhost:2023/exemple-form-get.php

    –> Enverra les données de cette manière:
    http://localhost:2023/exemple-form-get.php?nom=Toto&submit=Enregistrer

  • En PHP, on aura:
    • $_GET['nom'] -> "Toto";
    • $_GET['submit'] -> "Enregistrer";

3.2. Un formulaire HTML avec la méthode Post

  • Formulaire simple qui enverra une requête POST

    <!-- Formulaire simple qui enverra une requête POST -->
    <form action="http://localhost:2023/exemple-form-post.php" method="post">
      <label for="POST-name">Nom :</label>
      <input id="POST-name" type="text" name="name">
      <input type="submit" value="Enregistrer">
    </form>
    

    –> Liens vers la page de test:
    http://localhost:2023/exemple-form-post.php

    –> Enverra les données de cette manière:
    Les données ne seront pas visibles dans l’url mais sont dans la requête http envoyée au serveur. La méthode POST envoie l’information d’une autre manière.

  • En PHP, on aura:
    • $_POST['name'] -> "Pierre";
    • $_POST['submit'] -> "Enregistrer";

3.3. Transmission des données

Une fois des données transmises avec l’url ou bien en méthode post, il est donc possible de les récupérer depuis un script PHP.

Une fois dans un script PHP, il sera possible d’effectuer une connexion avec une base de données et de sauvegarder ensuite ces données dans la base.

4. Session

  • On sait envoyer de l’information entre page grâce à l’url mais si on charge d’autres pages cette information est «oubliée».
    → Session
  • Les sessions permettent de conserver des variables sur toutes les pages du site.

4.1. Session - création

  • Un visiteur arrive sur le site.
  • On créer une session pour lui.
  • PHP génère alors un numéro unique.
    (ex: PHPSESSID :"ampo0n7njvesjf33b7mnfqbtca”)
  • Ce numéro est sauvegardé sur un coockie

4.2. Session - utilisation

  • session_start() sur chacune des pages AVANT d'écrire le moindre code HTML ou PHP
  • On a alors accès à la variable superglobale $_SESSION .
  • On peut alors accéder à une infinité de variable de session du type $_SESSION['maVariable1']
  • session_destroy() pour détruire manuellement la session

4.3. Exemple

<?php
// Démarrer la session
session_start();

// Vérifier si le compteur de visites existe dans la session
if (!isset($_SESSION['compteur'])) {
    $_SESSION['compteur'] = 0; // Initialiser le compteur à 0
}

// Incrémenter le compteur de visites
$_SESSION['compteur']++;

// Afficher le nombre de visites
echo "Nombre de visites sur cette page : " . $_SESSION['compteur'];
?>

–> Liens vers la page de test:
http://localhost:2023/exemple-session.php