📚 Fiche Résumé - Séance 4 : Include/Require et $_GET/$_POST

🎯 Objectifs de la séance

đź“‚ 1. Include et Require

À quoi ça sert ?

Les fonctions include() et require() permettent d'inclure le contenu d'un fichier PHP dans un autre fichier. C'est utile pour :

include() - Inclusion souple

<?php
include('header.php');
?>

require() - Inclusion obligatoire

<?php
require('header.php');
?>
⚖️ Include vs Require :

include_once() et require_once()

<?php
require_once('config.php');
include_once('functions.php');
?>

Versions avec _once : le fichier ne sera inclus qu'une seule fois, même si appelé plusieurs fois. Évite les redéfinitions de fonctions.

Exemple pratique :
<?php
// header.php
echo "Ceci est le haut de ma page";
?>

<?php
// footer.php
echo "Ceci est le bas de ma page";
?>

<?php
// main.php
require('header.php');
echo "Ceci est le contenu central de ma page";
require('footer.php');
?>

🔗 2. $_GET - Récupération de données dans l'URL

Qu'est-ce que $_GET ?

$_GET est un tableau superglobal qui contient les données passées dans l'URL via la méthode GET.

Exemple d'URL :
page.php?prenom=Alice&nom=Dupont

Dans ce cas :

Comment utiliser $_GET ?

<?php
// URL : page.php?prenom=Bob
if (isset($_GET['prenom'])) {
    $prenom = $_GET['prenom'];
    echo "Bonjour " . $prenom;
} else {
    echo "Aucun prénom fourni";
}
?>
⚠️ Toujours utiliser isset() !

Avant d'accéder à une variable $_GET, vérifiez qu'elle existe avec isset() pour éviter les erreurs.

Plusieurs paramètres GET

On sépare les paramètres avec le symbole &

// URL : page.php?prenom=Alice&nom=Martin&age=25

<?php
if (isset($_GET['prenom']) && isset($_GET['nom'])) {
    echo "Bonjour " . $_GET['prenom'] . " " . $_GET['nom'];
}
?>

Caractéristiques de GET

📮 3. $_POST - Récupération de données de formulaire

Qu'est-ce que $_POST ?

$_POST est un tableau superglobal qui contient les données envoyées par un formulaire HTML avec la méthode POST.

Exemple de formulaire :
<form action="traitement.php" method="post">
    <input type="text" name="nom" placeholder="Nom"><br>
    <input type="text" name="prenom" placeholder="Prénom"><br>
    <input type="submit" value="Envoyer">
</form>
Traitement PHP :
<?php
// traitement.php
if (isset($_POST['nom']) && isset($_POST['prenom'])) {
    $nom = $_POST['nom'];
    $prenom = $_POST['prenom'];
    echo "Bonjour " . $prenom . " " . $nom;
}
?>

Éléments de formulaire courants

Élément Code HTML Récupération PHP
Input texte <input type="text" name="nom"> $_POST['nom']
Select <select name="sport"><option value="Tennis">...</option></select> $_POST['sport']
Radio <input type="radio" name="glace" value="chocolat"> $_POST['glace']
Checkbox <input type="checkbox" name="newsletter"> isset($_POST['newsletter'])
⚠️ Spécificité des checkboxes :

Une checkbox non cochée n'envoie aucune donnée. Il faut donc vérifier son existence avec isset() :

<?php
if (isset($_POST['programmation'])) {
    echo "Vous aimez la programmation";
} else {
    echo "Vous n'aimez pas la programmation";
}
?>

Caractéristiques de POST

🔢 4. intval() - Conversion en entier

Pourquoi utiliser intval() ?

Les données de $_GET et $_POST sont toujours des chaînes de caractères. Pour les utiliser comme nombres, il faut les convertir.

Syntaxe

<?php
$chaine = "42";
$nombre = intval($chaine);
echo $nombre; // Affiche 42 (entier)
?>
Avec un formulaire :
<form method="post">
    <input type="number" name="taille_x" placeholder="Taille">
    <input type="submit" value="Envoyer">
</form>

<?php
if (isset($_POST['taille_x'])) {
    $taille = intval($_POST['taille_x']);
    
    // Maintenant $taille est un entier
    for ($i = 0; $i < $taille; $i++) {
        echo "*";
    }
}
?>

Comportement de intval()

Valeur Résultat intval()
"42" 42
"42.7" 42 (tronque la partie décimale)
"abc" 0
"12abc" 12 (prend la partie numérique au début)
"" 0
💡 Sécurité :

Utiliser intval() est une bonne pratique de sécurité quand on attend un nombre, car cela empêche l'injection de code malveillant.

🔄 5. GET vs POST

Critère $_GET $_POST
Visibilité Visible dans l'URL Invisible (dans le corps HTTP)
Taille Limitée (~2000 caractères) Illimitée
Sécurité Moins sécurisé Plus sécurisé
Mise en favori Oui Non
Historique Oui (dans l'URL) Non
Usage typique Liens, pagination, filtres Formulaires, données sensibles
Quand utiliser GET :
Quand utiliser POST :

đź“‹ 6. Exemples complets

Exemple 1 : Formulaire simple avec POST

<form method="post">
    <input type="text" name="nom" placeholder="Nom"><br>
    <input type="text" name="prenom" placeholder="Prénom"><br>
    <input type="tel" name="telephone" placeholder="Téléphone"><br>
    <input type="submit" value="Envoyer">
</form>

<?php
if (isset($_POST['nom']) && isset($_POST['prenom']) && isset($_POST['telephone'])) {
    echo "Bonjour " . $_POST['prenom'] . " " . $_POST['nom'];
    echo ", votre numéro de téléphone est le " . $_POST['telephone'];
}
?>

Exemple 2 : Select, Radio et Checkbox

<form method="post">
    <select name="sport">
        <option value="Football">Football</option>
        <option value="Tennis">Tennis</option>
    </select><br>
    
    <input type="radio" name="glace" value="fraise"> Fraise<br>
    <input type="radio" name="glace" value="chocolat"> Chocolat<br>
    
    <input type="checkbox" name="programmation"> J'aime la programmation<br>
    
    <input type="submit" value="Envoyer">
</form>

<?php
if (isset($_POST['sport']) && isset($_POST['glace'])) {
    echo "Votre sport préféré est " . $_POST['sport'] . ".<br>";
    echo "Votre parfum de glace préféré est " . $_POST['glace'] . ".<br>";
    
    if (isset($_POST['programmation'])) {
        echo "Vous aimez la programmation";
    } else {
        echo "Vous n'aimez pas la programmation";
    }
}
?>

Exemple 3 : Formulaire auto-soumis avec intval()

<form method="post">
    <input type="number" name="taille_x" placeholder="Taille de la croix">
    <input type="submit" value="Envoyer">
</form>

<?php
if (isset($_POST['taille_x'])) {
    $taille = intval($_POST['taille_x']);
    
    for ($i = 0; $i < $taille; $i++) {
        for ($j = 0; $j < $taille; $j++) {
            if ($i == $j || $i + $j == $taille - 1) {
                echo "X";
            } else {
                echo "&nbsp;&nbsp;";
            }
        }
        echo "<br>";
    }
}
?>

✅ Points clés à retenir