Vous êtes sur la page 1sur 15

Les Superglobals

Définition

 Toutes les données envoyées se retrouvent dans ce


qu’on appelle des superglobales.

 des tableaux à portée globale où qu’ils soient utilisés.

 Vous pouvez y accéder depuis un contexte global,


depuis une fonction ou une méthode de classe sans
avoir besoin de vous soucier de la portée des variables.
Types
 $_GET[] contient toutes les données envoyées via l’URL.

 $_POST[] contient les données envoyées via un formulaire

 $_FILES[] contient les informations sur les fichiers envoyés par le


visiteur.

 $_REQUEST[] est quant à lui une fusion des deux premiers avec
la superglobale $_COOKIE[].

 la priorité est donnée aux cookies, puis à la méthode POST ainsi


de suite (Si des données avec le même nom sont envoyées via plusieurs
méthodes).
L’utilisation de $_POST
 Prenons l’exemple d’un simple formulaire
<form action="form.php" method="POST">
<p> Entrez votre texte : <br>
<input type="text" name="montexte"><br>
<input type="Submit">
</p>
</form>

 Pour récupérer les variables envoyées on utilise :


echo $_POST['montexte'] ;
L’utilisation de $_GET
 Prenons l’exemple d’un simple formulaire
 Ex1:
<form action="form.php" method="GET">
<p> Entrez votre texte : <br>
<input type="text" name="montexte"><br>
<input type="Submit">
</p>
</form>
 EX2:
<a href ="form.php?var1=val1&var2=val2" > cliquez ici </a>

 Pour récupérer les variables envoyées on utilise :


// EX1
echo $_GET['montexte'];
// EX2
echo $_GET['var1'] ;
echo $_GET['var2'] ;
L’utilisation de $_REQUEST
 Prenons l’exemple d’un simple formulaire
 Ex1: POST
<form action="form.php" method="POST">
<p> Entrez votre texte : <br>
<input type="text" name="montexte"><br>
<input type="Submit">
</p>
</form>
 EX2: GET
<a href ="form.php?var1=val1&var2=val2" > cliquez ici </a>

 Pour récupérer les variables envoyées on utilise :


// EX1
echo $_REQUEST['montexte'];
// EX2
echo $_REQUEST['var1'] ;
echo $_REQUEST['var2'] ;
L’utilisation de $_FILES
 Prenons l’exemple d’un simple formulaire (avec upload de
fichier)

<form action="up.php" method="POST"


enctype="multipart/form-data">
<p>
<input type="file" name="fichier" size="40">
<input type="submit" value="Envoyer">
</p>
</form>
L’utilisation de $_FILES
 Prenons l’exemple d’un simple formulaire
Les fichiers envoyés avec un formulaire se traitent différemment des autres données.
On utilise de la superglobale $_FILES[].

<?php
// fichier est notre ‘name’ de fichier spécifié dans le formulaire
$fichier = $_FILES['fichier']['name'];
$taille = $_FILES['fichier']['size'];
$tmp = $_FILES['fichier']['tmp_name'];
$type = $_FILES['fichier']['type'];
$erreur = $_FILES['fichier']['error'];
echo "Nom d'origine => $fichier <br />";
echo "Taille => $taille <br />";
echo "Adresse temporaire sur le serveur => $tmp <br />";
echo "Type de fichier => $type <br />";
echo "Code erreur => $erreur. <br />";
?>
Les filtres
 Apparus avec la version 5.2 de PHP

 Permet de valider et de filtrer les données comme les


entrées utilisateur (source non sécurisées).

 Y a plus d’erreur possible sur le type ou le format de


données
Les filtres (Validation de mail)
 Exemple du formulaire html à filtrer

<form method='POST' action='filter.php'>


<input type='text' name='email'>
<input type="Submit" value="Soumettre la requête">
</form>

 Exemple du script php filtrant les données

<?php
// Validation
$mail = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL) ;
if ($mail === FALSE){
echo 'Le email fourni n est pas valide' ;
}elseif($mail === NULL){
echo ' email n était pas définie.' ;
}else{
echo "La variable est une adresse e-mail valide : $mail";
}
?>
Les filtres (filter une variable simple)

 Exemple filtrant une variable simple

<?php
$adresse = "Bonjour <b>Éric<b>" ;
$message = filter_var($adresse , FILTER_SANITIZE_SPECIAL_CHARS ) ;
echo $message ;
?>
Les filtres (filter une variable simple)

 Exemple filtrant une variable simple

<?php
$adresse = "Bonjour <b>Éric<b>" ;
$message = filter_var($adresse , FILTER_SANITIZE_SPECIAL_CHARS ) ;
echo $message ;
?>
Exemples des filtres les plus courants

 Les filtre de validation


Ces filtres servent à valider une donnée sans la modifier. Si la donnée est invalide,
la valeur false est renvoyée. Ils contiennent généralement le mot-clé VALIDATE :

FILTER_VALIDATE_EMAIL : s’assure que la donnée représente une adresse e-


mail.
FILTER_VALIDATE_URL s’assure que la donnée représente une URL
FILTER_VALIDATE_REGEXP s’assure que la donnée correspond à une expression
régulière.
FILTER_VALIDATE_INT s’assure que la donnée représente un nombre entier.
FILTER_VALIDATE_FLOAT s’assure que la donnée représente un nombre réel.
FILTER_VALIDATE_BOOLEAN s’assure que la donnée représente un booléen.
FILTER_VALIDATE_IP s’assure que la donnée représente une adresse IP.
Exemples des filtres les plus courants
 Les filtres de conversion :

Ces filtres servent à convertir la donnée de façon à s’assurer qu’elle respecte toujours le format
attendu. Ces filtres contiennent généralement le mot-clé SANITIZE :

FILTER_SANITIZE_STRIPPED retire les balises HTML.


FILTER_SANITIZE_EMAIL retire tous les caractères qui ne devraient pas se retrouver dans
une adresse e-mail, mais ne s’assure pas que le résultat retourné est une adresse valide.
FILTER_SANITIZE_SPECIAL_CHARS code les caractères spéciaux en HTML et XML sous
forme d’entités.
FILTER_SANITIZE_NUMBER_INT retire tous les caractères qui ne composent pas un nombre
entier.
FILTER_SANITIZE_NUMBER_FLOAT retire tous les caractères qui ne composent pas un
nombre à virgule flottante.
FILTER_SANITIZE_URL retire tous les caractères qui ne composent pas une URL, mais ne
s’assure pas que le résultat retourné est une adresse valide.
FILTER_SANITIZE_MAGIC_QUOTES applique la fonction addslashes() et opère une action
identique à la directive de configuration magic_quotes_gpc.

Vous aimerez peut-être aussi