include et require$_GET et $_POSTintval()Les fonctions include() et require() permettent d'inclure le contenu d'un fichier PHP dans un autre fichier. C'est utile pour :
<?php
include('header.php');
?>
<?php
require('header.php');
?>
require() pour les fichiers essentiels (config, fonctions critiques)include() pour les fichiers optionnels (widgets, publicités)<?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.
<?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');
?>
$_GET est un tableau superglobal qui contient les données passées dans l'URL via la méthode GET.
page.php?prenom=Alice&nom=Dupont
Dans ce cas :
$_GET['prenom'] vaut "Alice"$_GET['nom'] vaut "Dupont"<?php
// URL : page.php?prenom=Bob
if (isset($_GET['prenom'])) {
$prenom = $_GET['prenom'];
echo "Bonjour " . $prenom;
} else {
echo "Aucun prénom fourni";
}
?>
Avant d'accéder à une variable $_GET, vérifiez qu'elle existe avec isset() pour éviter les erreurs.
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'];
}
?>
$_POST est un tableau superglobal qui contient les données envoyées par un formulaire HTML avec la méthode POST.
<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>
<?php
// traitement.php
if (isset($_POST['nom']) && isset($_POST['prenom'])) {
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
echo "Bonjour " . $prenom . " " . $nom;
}
?>
| É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']) |
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";
}
?>
Les données de $_GET et $_POST sont toujours des chaînes de caractères. Pour les utiliser comme nombres, il faut les convertir.
<?php
$chaine = "42";
$nombre = intval($chaine);
echo $nombre; // Affiche 42 (entier)
?>
<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 "*";
}
}
?>
| 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 |
Utiliser intval() est une bonne pratique de sécurité quand on attend un nombre, car cela empêche l'injection de code malveillant.
| 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 |
page.php?page=2search.php?q=phpproduits.php?categorie=sport<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'];
}
?>
<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";
}
}
?>
<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 " ";
}
}
echo "<br>";
}
}
?>
require() : inclusion obligatoire (erreur fatale si fichier absent)include() : inclusion souple (warning si fichier absent)require_once() et include_once() : inclure une seule fois$_GET : données dans l'URL (visible, limité)$_POST : données de formulaire (invisible, illimité)isset() avant d'accéder à $_GET ou $_POSTintval() : convertir une chaîne en entierisset() (non cochée = pas de donnée)name du HTML = clé dans $_GET ou $_POST