Vous êtes sur la page 1sur 16

Envoi des données

1 Développement PHP-ISET Rades Walid BEYAOUI


I. Envoie des données via un formulaire

2 Développement PHP-ISET Rades Walid BEYAOUI


I. Envoie des données via un formulaire
Principaux attributs d’un formulaire
<form action="script" method="post" name ="nom_form">
➢ Action: URL de la page cible pour traiter les données transmises (action= "chemin_script").
Peut être aussi l’dresse mail à laquelle les données du formulaire seront envoyés
(action="mailto : destinataire@serveur.com" )
➢ Method: méthode d’envoi des données GET ou POST
GET : données du formulaire envoyées avec l’URL du script (limitée, données visibles)
POST: données du formulaire envoyées séparément de l’URL (meilleure, données
masquées)
➢Name: nom du formulaire (utile si la page contient plusieurs formulaires)

3 Développement PHP-ISET Rades Walid BEYAOUI


I. Envoie des données via un formulaire
Eléments de formulaire
➢INPUT : une zone de saisie
Principaux attributs
NAME : nom du champ
MAXLENTH: longueur du texte
TYPE: (text, password, radio, checkbox, submit, reset, file, email, url, number,
range, date, …)
VALUE : La valeur du champ
➢ TEXTAREA: une zone de texte multiligne
➢SELECT: une liste de sélection
➢…
4 Développement PHP-ISET Rades Walid BEYAOUI
I. Envoie des données via un formulaire
Exemple:
<form action="resultat.php" method="post">
<h3>Inscription</h3>
Votre nom: <input type="text" name="nom"><br>
Votre prénom: <input type="text" name="prenom"><br>
Votre genre:
<input type="radio" name="genre" value=“H" checked>homme
<input type="radio" name="genre " value=“F"> femme <br>
Pays:
<select name="pays">
<option value="TUN">Tunisie</option>
<option value="ALG">Algérie</option>
<option value="MAR">Maroc</option>
</select> <br><br>
Connaissances en informatique:<br>
<input type="checkbox" name="connaissances[]" value="PROG"> Programmation<br>
<input type="checkbox" name="connaissances[]" value="SYS"> Systèmes <br>
<input type="checkbox" name="connaissances[]" value="RES"> Réseaux<br>
<input type="submit" name="ok" value="Envoyer">
<input type="reset" name="effacer" value="Annuler">
</form>

5 Développement PHP-ISET Rades Walid BEYAOUI


I. Envoie des données via un formulaire
Récupération des données de formulaire
➢Lorsqu’un formulaire est rempli et envoyé, le contenu des champs saisies est
transféré à la page destination sous forme de variables.
➢En fonction de la méthode utilisé (get ou post), ces variable seront accédées par la
page destination dans un tableau géré par le serveur:
▪$_POST[]: en cas de soumission par post
▪$_GET[]: en cas de soumission par get
Exemple:
exemple.php
<form action="destination.php" method="post">
Votre nom: <input type="text" name="nom"><br>
Votre prénom: <input type="text" name="prenom"><br>
<input type="submit" name="ok" value="Envoyer">
<input type="reset" name="effacer" value="Annuler">
</form>

6 Développement PHP-ISET Rades Walid BEYAOUI


I. Envoie des données via un formulaire
➢Avec la méthode post:
- les données seront empaquetées et envoyées au serveurs
- les données ne sont pas visibles par l’internaute

destination.php
<?php
echo "Bonjour " . $_POST['nom'] ." ". $_POST['prenom'];
echo "<a href='exemple.php'>retour</a><br>“;
?>

7 Développement PHP-ISET Rades Walid BEYAOUI


I. Envoie des données via un formulaire
➢Avec la méthode get:
- les variables et les données sont passées au serveur dans l’url.

destination.php
<?php
echo "Bonjour " . $_GET['nom'] ." ". $_ GET['prenom'];
echo "<a href='exemple.php'>retour</a><br>“;
?>

8 Développement PHP-ISET Rades Walid BEYAOUI


I. Envoie des données via un formulaire
Exercice1:
1- Reprenez l’exemple de la page 5 et créer un fichier inscription.php contenant le
formulaire.
2- Créer le fichier resultat.php qui affiche les données envoyées par le formulaire.

9 Développement PHP-ISET Rades Walid BEYAOUI


I. Envoie des données via un formulaire
Un formulaire qui envoie les données à lui-même :
Un formulaire peut tenir dans un seul fichier qui s’enverrait à lui même les paramètres
Fichier exemple.php
<form action="exemple.php" method="POST">
Votre nom: <input type="text" name="nom"><br>
Votre prénom: <input type="text" name="prenom"><br>
<input type="submit" name="ok" value="Envoyer">
<input type="reset" name="effacer" value="Annuler">
</form>
<?php
if (array_key_exists('ok',$_POST)) //Le formulaire a été transmis. Récupération des paramètres
passés
{
echo "Bonjour " . $_ POST['nom'] ." ". $_ POST['prenom'];
} // sinon 1er chargement du formulaire
?>

10 Développement PHP-ISET Rades Walid BEYAOUI


I. Envoie des données via un formulaire
Variable d’environnement: $_SERVER['PHP_SELF']
▪$_SERVER['PHP_SELF'] retourne le nom du fichier en cours d’exécution.
▪La définition de la destination du formulaire (action="formulaire.php") aurait pu
ne pas être nominative mais exploiter une variable serveur PHP_SELF puisque les
paramètres sont envoyées à la page elle même. Ainsi $_SERVER['PHP_SELF']
retournera naturellement formulaire.php.
Cela donnera donc :
<form method="post" action="<?= $_SERVER['PHP_SELF'] ?>" >

A la place de
<form method="post" action="formulaire.php">

11 Développement PHP-ISET Rades Walid BEYAOUI


I. Envoie des données via un formulaire
Utilisation de la fonction: htmlspecialchars():
▪XSS (Cross-Site- Scripting): est une faille permettant d’injecter du code html ou du
javascript dans les champs du formulaire.
▪Exemple: soit le formulaire suivant
<form action="connexion.php" method="post ">
Votre pseudo: <input type="text" name="pseudo"><br>
<input type="submit" name="ok" value="Envoyer">
</form>

qui envoie à la page connexion.php:


<?php echo "Bonjour " . $_ POST['pseudo'] ?>
L’utilisateur peur entrer dans le formulaire <h1>Walid</h1> ou <script> ….</script>
→solution utiliser la fonction htmlspecialchars() qui permet de filtrer les symboles
de type <, &, ",.. En les remplaçant par les entités html équivalentes:
& → &amp; " →&quot; ' →&#39
<?php echo "Bonjour " . htmlspecialchars ($_ POST['pseudo']) ?>

12 Développement PHP-ISET Rades Walid BEYAOUI


II. Transmission des données via l’URL
▪Des paramètres et des données peuvent être envoyées d’une page source à une page
destination sans utiliser une soumission par formulaire. Ceci peut être réalisé par les
liens auxquels s’ajoutent les paramètres et leurs valeurs.
Syntaxe:

<a href="desination.php? Variable1=valeur1&variable2=valeur2&…&variableN=valeurN" >


lien</a>
▪La récupération des variables dans la page destination se fait par le tableau $_GET

Exercice2:
Tester le passage de paramètre par URL en créant:
-une page Ex2.html contenant uniquement un lien vers affichage.php à travers lequel
vous passez votre nom et votre prénom.
- une page affichage.php qui affiche les données envoyées par la 1ère page.

13 Développement PHP-ISET Rades Walid BEYAOUI


III. Envoi d’un fichier
<input type="file" name="photo">
▪Les informations concernant les champs de type file sont enregistrées dans le
tableaux superglobal $_FILES[]
▪Les fichiers sont temporairement placés dans le dossier temporaire du serveur.

Pour supporter l’envoi de fichier l’entête du formulaire doit être modifié comme suit:
<form method="post" action="page.php" enctype="multipart/form-data">

- enctype: le type d’ecodage des données


-multipart/form-data: spécifie que le formulaire envoi des données binaires
(fichier) et du texte (champs de formulaire)

14 Développement PHP-ISET Rades Walid BEYAOUI


III. Envoi d’un fichier
<?php
$nom=$_FILES['photo']['name'];
$taille=$_FILES['photo']['size'];
$type=$_FILES['photo']['type'];
$nom_tmp=$_FILES['photo']['tmp_name'];
if(is_uploaded_file($_FILES['photo']['tmp_name’])){
move_uploaded_file($nom_tmp, $nom);//déplacement du fichier
}
else {
echo "Problème d’envoi de fichier";
exit();
}
?>

Exercice 3:
Réaliser un formulaire envoi_fichier.php qui permet d’envoyer une image au serveur.
Le serveur retourne une page affichage_image.php qui contient l’image envoyée.
(vous pouvez également réaliser un seul fichier)

15 Développement PHP-ISET Rades Walid BEYAOUI


Exercice
Reprendre les exercices précédent pour effectuer un formulaire avec envoi de photo.
Le résultat sera l’affichage du résumé des données envoyés comme le montrent les
figures ci-dessous. Utiliser un seul fichier (.php + .phtml) et des styles Bootstrap pour la
mise en forme.

16 Développement PHP-ISET Rades Walid BEYAOUI

Vous aimerez peut-être aussi