Réseaux 1 CORRIGE. <html><body> Hello PHP, nous sommes le <?php echo Date("j/m/Y");?> </body></html>

Documents pareils
Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé)

TP JAVASCRIPT OMI4 TP5 SRC

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Attaques applicatives

Programmation Web. Madalina Croitoru IUT Montpellier

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

Stockage du fichier dans une table mysql:

Module BD et sites WEB

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Formulaire pour envoyer un mail

Mise en place d un serveur Proxy sous Ubuntu / Debian

Techniques de Programmation pour Internet

Attaques de type. Brandon Petty

Création de formulaires interactifs

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Formulaires et Compteurs

TD HTML AVEC CORRECTION

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

Bases de Données et Internet

Mysql avec EasyPhp. 1 er mars 2006

Séance d ED n 5 : HTML et JavaScript

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068

Initiation à html et à la création d'un site web

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

STID 2ème année : TP Web/PHP

Présentation du Framework BootstrapTwitter

PDO : PHP Data Object 1/13

Introduction. Passage de sites statiques à des sites dynamiques

TIC. Réseau informatique. Historique - 1. Historique - 2. TC - IUT Montpellier Internet et le Web

Document Object Model (DOM)

SYSTÈMES D INFORMATIONS

Comment développer et intégrer un module à PhpMyLab?

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

Dans l'article précédent, vous avez appris

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Tutoriel de formation SurveyMonkey

Les services usuels de l Internet

PLATE-FORMES LIBRES *AMP CYBER PAIEMENT / CYBER PLUS PAIEMENT GUIDE DE MIGRATION FACILE ET EN UNE HEURE PLATE-FORME SYSTEMPAY

CREATION d UN SITE WEB (INTRODUCTION)

Procédure de sauvegarde - Cobian Backup

Bases de données et Interfaçage Web

FORMATION / CREATION DE SITE WEB / 4 JOURNEES Sessions Octobre 2006

CONCOURS DE L AGRÉGATION INTERNE «ÉCONOMIE ET GESTION» SESSION 2015 SECONDE ÉPREUVE

EXTENSION WORDPRESS. Contact Form 7. Proposé par :

Nouvelle plateforme disponible pour les professeurs et les élèves de la Promotion Sociale du Collège Technique «Aumôniers du travail»

CREATION WEB DYNAMIQUE

Programmation Web TP1 - HTML

Failles des applications Web. Ce document est extrait du travail de diplôme de M. DIZON dans l état.

Panel des technologies Web

HTML/CSS - Travaux Pratiques 2

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

FTP : File TRansfer Protocol => permets d envoyer des gros fichiers sur un serveur (ou de télécharger depuis le serveur)

Développement Web. Les protocoles

Environnements informatiques

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

1 Position du problème

Serveurs et environnements de développement. Serveur Web

D r o i t s D r o i t s Q u i z z : i n t e r n e t t e x t e

HTML, CSS, JS et CGI. Elanore Elessar Dimar

A. Présentation. LanScanner2006

Back up Server DOC-OEMSPP-S/6-BUS-FR-17/05/11

EPREUVE PRATIQUE DES TECHNIQUES INFORMATIQUES ACTIVITE N 1. Thème de l activité : Configuration d un firewall

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall

«Cachez-moi cette page!»

2. Cliquez Contact Directory of Public Administration. 5. Tapez le mot de passe - Hello (pour OFPA). Changez le mot de passe en cas de

Logiciel : GLPI Version : SYNCRHONISATION DE GLPI AVEC ACTIVE DIRECTORY. Auteur : Claude SANTERO Config. : Windows 2003.

SOMMAIRE. 3. Comment Faire? Description détaillée des étapes de configuration en fonction du logiciel de messagerie... 3

Thème : Création, Hébergement et référencement d un site Web

Démonstration de la mise en cache via HTML 5 sur iphone

ENVOI EN NOMBRE DE Mails PERSONNALISES

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

Module http MMS AllMySMS.com Manuel d intégration

ISPConfig Documentation

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

PHP 5. La base de données MySql. A. Belaïd 1

Aide pour les abonnés aux listes sympa du LAAS

Documentation module hosting

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

GUIDE DE PAIEMENT. Pour Bien Effectuer votre Paiement, veuillez suivre les instructions suivantes :

Documentation Ellipses Windows. Auteur : Léonard FRECHET Date : 10/01/07 Diffusion : Publique ELLIPSES Envoi Automatisé de SMS Ellipses SMS

INFORM :: DEMARRAGE RAPIDE A service by KIS

Partager mes photos sur internet

Manuel du composant CKForms Version 1.3.2

Transfert de fichiers (ftp) avec dreamweaver cs5 hébergement et nom de domaine. MC Benveniste

Guide d implémentation Interface avec la plateforme de paiement

OCLOUD BACKUP GUIDE DE REFERENCE POUR ANDROID

Plateforme PAYZEN. Intégration du module de paiement pour la plateforme Magento version 1.3.x.x. Paiement en plusieurs fois. Version 1.

Formation Webmaster : Création de site Web Initiation + Approfondissement

MODE D EMPLOI OUTLOOK ADD-IN POUR SELECTLINE

Pratique et administration des systèmes

INSTALLATION DE PEGASUS MAIL 3.12 c FR Avec l interface Harp

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi

DOM - Document Object Model

CAHIER DES CHARGES DE REALISATION DE SITE INTERNET

Configurer la supervision pour une base MS SQL Server Viadéis Services

Transcription:

I.U.T. de Nice Côte d Azur 2004-2005 Département Informatique Réseaux 1 TP 10 - Programmation Web avec PHP (1) CORRIGE Objectif : vous introduire aux principes de base de PHP, créer des pages web dynamiques, utiliser les variables de session, utiliser les fonctionnalités Internet de PHP Note : vous placerez vos fichiers PHP sur nyx, dans un répertoire ~/web/rx1/td10 1. Scripts du côté serveur avec PHP Votre première page PHP 1.1. Créez une page hello.php qui affiche simplement la chaîne de caractères "Hello PHP, nous sommes le " suivie de la date du jour sur le serveur. Hello PHP, nous sommes le echo Date("j/m/Y"); 1.2. Créez une deuxième version permettant d afficher à la suite de la date, le message "Bon matin" ou "Bonne après midi" en fonction de l heure sur le serveur. Nous sommes le echo Date("j/m/Y"); <br> echo "il est ".Date("H:i:s")."<br>"; if ( Date("H") < 12 ) { echo "Bon matin.."; else { echo "Bonne après midi.."; Variables d environnement 1.3. Tracez le visiteur de votre site, en affichant la date et l heure suivi des renseignements disponibles : IP, nom de machine, type de navigateur. Vous utilisez les variables : $_SERVER[ HTTP_USER_AGENT ], $_SERVER[ REMOTE_ADDR ]. $datetime=date("d/m/y H:i",mktime()); $browser = $_SERVER["HTTP_USER_AGENT"]; $ip = $_SERVER["REMOTE_ADDR"]; $domaine = gethostbyaddr($ip); echo "<b>visite le $datetime</b><br>"; echo "le visiteur a cette configuration sur sa machine : $browser<br>"; echo "sa machine a pour adresse IP $ip<br>"; echo "ce qui correspond au domaine $domaine<br>"; echo "<br>"; 1.4. Affichez la liste complète des variables d environnement en appelant la fonction phpinfo() Créer simplement une page phpinfo.php, avec le contenu suivant : phpinfo();

Utiliser un formulaire 1.5. Créez un formulaire 1.5.html comportant 2 champs de texte nom, prénom, un groupe de boutons radio pour préciser le sexe de la personne (M ou F), et un menu de choix multiples vins (bordeaux, beaujolais, loire). Vous ferez appel à un script 1.5.php pour traiter les données du formulaire. Elles seront envoyées par la méthode GET. <!-- fichier 1.5.html --> <form action="1.5.php" method="get"> Nom: <input type="text" name="nom"><br> Prénom: <input type="text" name="prenom"><br> Sexe: <input type="radio" name="sexe" value="m">garçon <input type="radio" name="sexe" value="f">fille<br> Vins: <br> <select multiple name="vin[]"> <option value="bordeaux">bordeaux</option> <option value="beaujolais">beaujolais</option> <option value="côtes de provence">côte de provence</option> </select><br> <input type="submit" value="envoyer"> <!-- fichier 1.5.php --> <h1>affichage des données saisies</h1> <ul> <li>nom: print $_REQUEST['nom'] </li> <li>prenom: print $_REQUEST['prenom'] </li> <li>sexe: print $_REQUEST['sexe'] </li> <li>vins: <ul> if (isset($_request['vin'])) foreach($_request['vin'] as $v) print "<li>$v</li>"; </ul> </ul> <a href="javascript:history.back()">essayez à nouveau</a> 1.6. Créez une nouvelle version qui permettra à la fois de créer et de traiter le formulaire de l exercice précédent : - si le script est appelé sans paramètre il créera le formulaire - s il est appelé par l envoi de données (bouton submit du formulaire), il traitera les données. Utilisez le bouton d envoi «submit» pour tester si le script est appelé par l envoi de données ou pas. if (array_key_exists('action', $_REQUEST) && $_REQUEST['action'] == 'Envoyer') { print "<h1>affichage des données saisies</h1>"; print "<ul>"; print "<li>nom: ". $_REQUEST['nom']. "</li>"; print "<li>prenom: ". $_REQUEST['prenom']. "</li>"; print "<li>sexe: ". $_REQUEST['sexe']. "</li>"; print "<li>vins: "; print "<ul>"; if (isset($_request['vin'])) foreach($_request['vin'] as $v) print "<li>$v</li>"; print "</ul>"; print "</ul>"; print "<a href='javascript:history.back()'>essayez à nouveau</a>"; else { <form action=" echo $_SERVER['PHP_SELF']" method="get"> Nom: <input type="text" name="nom"><br> Prénom: <input type="text" name="prenom"><br> Sexe: <input type="radio" name="sexe" value="m">garçon <input type="radio" name="sexe" value="f">fille<br> Vins: <br> <select multiple name="vin[]"> <option value="bordeaux">bordeaux</option> <option value="beaujolais">beaujolais</option> </select><br> <input type="submit" name="action" value="envoyer"> 2

1.7. Créez un formulaire 1.7.html comportant une zone de texte, et ensuite créez le script 1.7.php qui renvoie le texte saisi en remplaçant les caractères nouvelle ligne par des balises <br>. Utilisez la fonction nl2br de PHP. <!-- Fichier 1.7.html --> <form action="1.7.php" method="get"> <textarea rows="20" cols="40" name="texte">vos commentaires</textarea> <br><input type="submit" value="envoyer"> <!-- Fichier 1.7.php --> <h1>affichage des données saisies</h1> echo nl2br($_request['texte']) Fichiers et tableaux 1.8. Reprendre l exercice 3.1 sur les capitales du TP précédent, le programmer en PHP. Pour récupérer dans un tableau, les différents champs sur une ligne du fichier de texte QCM, utilisez la fonction split() de PHP, ainsi que la fonction count pour obtenir le nombre d éléments transférés dans le tableau. <head> <title>qcm capitales</title> <link rel="stylesheet" href="qcm.css" type="text/css"> <script langage="javascript" src="qcm.js"></script> </head> /* ouvrir le fichier contenant le qcm*/ $fichier = fopen ("qcm.dat", "r") ; if (array_key_exists('action', $_REQUEST) && $_REQUEST['action'] == 'Envoyer') { // traiter QCM /* on parcourt le fichier QCM */ $question=0; while ( $ligne = fgets($fichier,500) ) { $question++; // on récupère les différents champs dans un tableau $tab_ligne = split (":", $ligne); echo ("<h1>question Q$question : Quelle est la capitale de la $tab_ligne[0]?</h1>\n"); $bonne_reponse=$tab_ligne[count($tab_ligne)-1]; echo ("<ul>"); // on parcourt les propositions de villes for ( $i=1; $i < count($tab_ligne)-1; $i++) { //la ville est celle qui a été choisie et c est la bonne réponse if ( $_REQUEST["Q$question"] == $i && $i == $bonne_reponse ) echo ("<li class='vrai'>$tab_ligne[$i] BRAVO!</li>\n") ; //la ville est celle qui a été choisie et ce n est pas la bonne réponse if ( $_REQUEST["Q$question"] == $i &&! ($i == $bonne_reponse) ) echo ("<li class='faux'>$tab_ligne[$i]</li>\n") ; //la ville n est pas celle qui a été choisie et c est la bonne réponse if (! ($_REQUEST["Q$question"] == $i ) && ($i == $bonne_reponse) ) echo ("<li class='vrai'>$tab_ligne[$i]</li>\n") ; //la ville n est pas celle choisie et ce n est pas la bonne réponse if (! ($_REQUEST["Q$question"] == $i ) &&! ($i == $bonne_reponse) ) echo ("<li>$tab_ligne[$i]</li>\n") ; echo ("</ul>\n"); else { <!-- créer QCM --> <form action=" echo $_SERVER['PHP_SELF']" method="get" onsubmit="return verifform(this);"> /* on parcourt le fichier QCM */ $question=0; while ( $ligne = fgets($fichier,500) ) { $question++; // on récupère les différents champs dans un tableau $tab_ligne = split (":", $ligne); 3

echo ("<h1>question Q$question : Quelle est la capitale de la $tab_ligne[0]?</h1>\n"); // on parcourt les différentes propositions de villes for ( $i=1; $i < count($tab_ligne)-1; $i++) { echo ("<input type=radio name=q$question value=$i>$tab_ligne[$i]<br>\n") ; <input type="submit" name="action" value="envoyer"> 2. Sessions PHP 2.1. Afin de tester les variables de session, commencez par créez la page menu.html ci-dessous : <h1>test de variables de session</h1> <a href="ouvrir_session.php">ouvrir une session</a> <br> <a href="afficher_session.php">afficher variables de session</a> <br> <a href="detruire_session.php">détruire variables de session</a> <br> 2.2. Créer le script ouvrir_session.php qui : crée une nouvelle session si aucune session n existe (un SID est engendré et transmis dans un cookie) ou bien restaure la session en cours (connue par son identifiant de session SID) Pour cela il faudra appeler en début de script la fonction PHP session_start(). Afficher ensuite un formulaire permettant de saisir le nom et le prénom de l utilisateur. Ces deux informations seront conservées dans des variables de session lorsque le formulaire est envoyé. <h1>ouvrir une session</h1> echo "<br>id session: ". session_id() ; echo "<br>nom session: ". session_name() ; <hr> <form action="creer_session.php" method="get"> Nom: <input type="text" name="nom"><br> Prénom: <input type="text" name="prenom"><br> <input type="submit" value="envoyer"> 2.3. Créer le script créer_session.php qui enregistre les données du formulaire en variables de session Ce script renverra une page html affichant les variables de session, un lien en bas de page permettra de retourner au menu principal. // enregistrer les variables de session $_SESSION['nom'] = $_REQUEST['nom'] ; 4

$_SESSION['prenom'] = $_REQUEST['prenom'] ; <h1>variables de session créées</h1> echo "<br>id session: ". session_id(); echo "<br>nom session: ". session_name(); echo "<br>nom: ". $_SESSION['nom']; echo "<br>prénom: ". $_SESSION['prenom']; <br><a href="menu.html">retour menu</a> 2.4. Créer le script afficher_session.php affichant les variables de session, vous ajouterez un compteur en variable de session afin d afficher le nombre de fois que la page a été vue, ainsi que le temps écoulé depuis la dernière visite. // recharge le tableau $_SESSION avec les variables de sessions enregistrées // compte le nombre de fois que la page a été visitée if (!isset($_session['compteur'])) { $_SESSION['compteur'] = 1; else { $_SESSION['compteur']++; // affiche le temps écoulé depuis la dernière visite $heurecourante = time() ; if (!isset($_session['dernierpassage'])) { $tempsecoule = 0 ; else { $tempsecoule = $heurecourante - $_SESSION['dernierPassage']; $_SESSION['dernierPassage'] = $heurecourante; <h1>affichage des variables de session</h1> echo "<b>vous avez vu cette page ". $_SESSION['compteur']. " fois</b><br>"; if ( $tempsecoule > 0 ) echo "<b>vous êtes passé par ici il y a ". $tempsecoule. " secondes</b><p>"; echo "<br>id session: ". session_id(); echo "<br>nom session: ". session_name(); echo "<br>nom: ". $_SESSION['nom']; echo "<br>prénom: ". $_SESSION['prenom']; echo "<hr>"; print_r($_session); <br><a href="menu.html">retour menu</a> 2.5. Créer le script detruire_session.php qui détruit les variables de session, utiliser la fonction PHP session_destroy(). $sid = session_id(); session_destroy(); <h1>détruire les variables de session</h1> echo "<br>variables de la session '$sid' détruites!\n" ; <br><a href="menu.html">retour menu</a> 5

3. Fonctionnalités Internet Envoi d email 3.1. Créez un script permettant de tester l envoi d un message très simple, à vous-même, avec PHP. // parametres du message $adresse = "toto@nyx.unice.fr" ; $sujet = "test de mail avec php" ; $message = "ceci est un essai.. " ; $headers = "From: toto@nyx.unice.fr\r\n" ; $headers.= "Reply-To: toto@nyx.unice.fr " ; // envoi du message if ( mail($adresse, $sujet, $message, $headers) ) { echo " Message envoyé avec succès à $adresse <br>" ; else { echo "L'envoi du message à $adresse a échoué <br>" ; 6